/**
 * @package 	WordPress
 * @subpackage 	Magazilla
 * @version		1.0.0
 * 
 * Design CSS Rules
 * Created by CMSMasters
 * 
 */
/*-------------------------------------------------------------------------*/
/*	Globally Applied Styles
/*-------------------------------------------------------------------------*/
body #page:not(.cmsmasters_content_composer) .middle_content,
body #page:not(.cmsmasters_content_composer) .headline_outer .headline_content {
  padding-left: 22%;
  padding-right: 22%;
  margin: 0 auto;
}
.formError {
  margin: 1px 1px 0px -100px !important;
}
.formError .formErrorContent {
  width: 142px !important;
  margin: 0 !important;
  padding: 6px 10px;
  border-width: 0;
  border-style: solid;
}
.center-inline {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.center-inline-after::after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.center-inline-before::before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.widget_sp_location_weather_widget_content {
  z-index: 1;
}
.widget_sp_location_weather_widget_content + .mid_nav_wrap,
.widget_sp_location_weather_widget_content + .slogan_wrap {
  padding-right: 30px;
}
.header_top .widget_sp_location_weather_widget_content,
.header_mid .widget_sp_location_weather_widget_content,
.header_bot .widget_sp_location_weather_widget_content {
  padding: 0;
}
.header_top .widget_sp_location_weather_widget_content .weather-type,
.header_mid .widget_sp_location_weather_widget_content .weather-type,
.header_bot .widget_sp_location_weather_widget_content .weather-type {
  position: static;
}
.header_top .widget_sp_location_weather_widget_content div.sp-location-weather-widget,
.header_mid .widget_sp_location_weather_widget_content div.sp-location-weather-widget,
.header_bot .widget_sp_location_weather_widget_content div.sp-location-weather-widget {
  padding: 0;
  border-width: 0;
  border-style: solid;
  background-color: rgba(0, 0, 0, 0);
}
.header_top .widget_sp_location_weather_widget_content div.sp-location-weather-widget > div,
.header_mid .widget_sp_location_weather_widget_content div.sp-location-weather-widget > div,
.header_bot .widget_sp_location_weather_widget_content div.sp-location-weather-widget > div {
  padding: 0;
}
.header_top .widget_sp_location_weather_widget_content .weather-temp,
.header_mid .widget_sp_location_weather_widget_content .weather-temp,
.header_bot .widget_sp_location_weather_widget_content .weather-temp {
  position: relative;
  top: 0;
  left: 0;
  width: auto;
  text-align: left;
  background-color: rgba(0, 0, 0, 0);
  float: none;
  padding: 0;
}
.header_top .widget_sp_location_weather_widget_content .weather-region::before,
.header_mid .widget_sp_location_weather_widget_content .weather-region::before,
.header_bot .widget_sp_location_weather_widget_content .weather-region::before {
  display: none;
}
.header_top .widget_sp_location_weather_widget_content div[id^="location-weather-widget"] span {
  display: inline-block;
  vertical-align: middle;
  margin: 0 7px -2px 0;
}
.header_top .widget_sp_location_weather_widget_content div[id^="location-weather-widget"] span:last-child {
  margin-right: 0;
}
.header_top .widget_sp_location_weather_widget_content div[id^="location-weather-widget"] .weather-date {
  display: none;
}
.header_mid .widget_sp_location_weather_widget_content {
  float: right;
  height: 100%;
}
.header_mid .widget_sp_location_weather_widget_content::after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .widget_sp_location_weather_widget_content div.sp-location-weather-widget {
  display: inline-block;
  vertical-align: middle;
}
.header_mid .widget_sp_location_weather_widget_content .weather-temp {
  font-size: 32px;
  line-height: 1;
}
.header_mid .widget_sp_location_weather_widget_content .weather-region {
  opacity: .7;
}
.header_mid .widget_sp_location_weather_widget_content .weather-type,
.header_mid .widget_sp_location_weather_widget_content .weather-date {
  display: none;
}
div.sp-location-weather-widget {
  position: relative;
  padding: 15px;
  max-width: 400px;
  border-width: 1px;
  border-style: solid;
  overflow: hidden;
}
div.sp-location-weather-widget > div {
  position: relative;
  padding: 0px 0 0 106px;
}
div.sp-location-weather-widget .weather-image {
  display: none;
}
div.sp-location-weather-widget .weather-date {
  margin: 0 0 0px;
  display: block;
}
div.sp-location-weather-widget .weather-region {
  display: block;
}
div.sp-location-weather-widget .weather-type {
  position: relative;
  top: -2px;
  margin: 0;
  display: block;
}
div.sp-location-weather-widget .weather-temp {
  position: absolute;
  font-size: 22px;
  line-height: 1;
  top: 0;
  left: 0;
  width: 90px;
  padding: 19px 0;
  text-align: center;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_titles_info {
  padding: 0 10px 0 0;
  float: left;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_marquee {
  -webkit-animation: marquee_loop 10s infinite linear;
  animation: marquee_loop 10s infinite linear;
  display: inline-block;
  white-space: nowrap;
  padding: 0 0 0 100%;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_marquee:hover {
  -webkit-animation: marquee_loop 10s infinite linear;
  animation: marquee_loop 10s infinite linear;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_titles_post {
  display: inline-block;
  position: relative;
  padding: 0 10px;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_titles_post::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 1px;
  height: 12px;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_titles_post:first-child {
  padding-left: 0;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_titles_post:last-child {
  padding-right: 0;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_titles_post:last-child::before {
  display: none;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_titles_info_title {
  margin-bottom: 0;
}
.cmsmasters_roll_titles_wrap .cmsmasters_roll_titles_slider_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_roll_titles_wrap .cmsmasters_slider_post_header {
  display: inline-block;
}
.cmsmasters_roll_titles_wrap .cmsmasters_slider_post_title {
  margin-bottom: 0;
}
.cmsmasters_roll_titles_wrap .owl-carousel.navigation {
  padding: 0px 80px 0px 0;
}
.cmsmasters_roll_titles_wrap .owl-carousel .owl-buttons {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}
.cmsmasters_roll_titles_wrap .owl-carousel .owl-buttons > div > span {
  width: 30px;
  height: 25px;
}
.cmsmasters_roll_titles_wrap .owl-carousel .owl-buttons > div > span > span::before {
  font-size: 24px;
}
.header_top .cmsmasters_roll_titles_wrap {
  width: 60%;
  max-width: 100%;
}
.separating > * {
  display: inline-block;
  vertical-align: middle;
  margin-right: 1% !important;
}
.separating > *[class*="icon"]::before {
  margin-right: .35em;
}
.separating > *:last-child {
  margin-right: 0 !important;
}
.clearfix:after {
  content: "";
  display: table;
  clear: both;
}
.circle-shape {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  overflow: hidden;
}
img {
  image-rendering: auto;
}
.text-line-inside > * {
  display: inline;
}
body {
  text-align: left;
}
div {
  text-align: left;
}
p {
  padding: 0 0 20px;
  margin: 0;
}
pre {
  margin: 0 0 20px;
}
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;
  display: inline;
}
ul + h2,
ol + h2 {
  margin-top: 20px;
}
ul {
  list-style-type: none;
}
ul > li {
  display: block;
  position: relative;
}
ul > li:before {
  content: '\e801';
  font-family: 'fontello-custom';
  font-size: 4px;
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  padding: 0;
  margin: 0 10px 0 0;
  text-align: center;
  font-variant: normal;
  text-transform: none;
  line-height: 1em;
  position: relative;
  bottom: 2px;
  vertical-align: middle;
}
.cmsmasters_cat_color {
  padding: 0 9px;
  margin: 0 5px 5px 0;
  text-align: center;
  overflow: hidden;
  float: left;
  display: block;
  clear: both;
}
.widget_most_popular_widget_list {
  margin: 0;
  max-width: 580px;
}
.widget_most_popular_widget_list li {
  padding: 0px 0 0;
  margin: -1px 0 0;
}
.widget_most_popular_widget_list li::before {
  content: none;
}
.widget_most_popular_widget_list .cmsmasters_most_img {
  margin-bottom: -1px;
}
.widget_most_popular_widget_list .cmsmasters_most_img .cmsmasters_img_wrap {
  text-align: left;
}
.widget_most_popular_widget_list .cmsmasters_post_header {
  padding: 0 0 0px;
}
.widget_most_popular_widget_list .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0 0 0;
}
.widget_most_popular_widget_list .cmsmasters_most_wrap {
  padding: 22px 22px 27px;
  border-width: 1px;
  border-style: solid;
}
.widget_most_popular_widget_list .cmsmasters_most_cont {
  padding: 5px 0 0 20px;
  overflow: hidden;
}
.widget_most_popular_widget_list .cmsmasters_most_index {
  font-size: 48px;
  line-height: 1;
  float: left;
}
#page .cmsmasters_share::before {
  font-size: 12px;
  margin: 0 0.5em 0 0;
}
.apsc-icons-wrapper .apsc-each-profile > a {
  -webkit-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 0;
  border-radius: 0;
}
.apsc-icons-wrapper .apsc-each-profile > a[href="javascript:void(0);"] {
  cursor: default;
}
.apsc-icons-wrapper .apsc-each-profile > a:hover {
  -webkit-transform: none;
  -moz-transform: none;
  -o-transform: none;
  transform: none;
}
.apsc-icons-wrapper .apsc-each-profile > a:hover .social-icon > i {
  -webkit-transform: none;
  -moz-transform: none;
  -o-transform: none;
  transform: none;
  line-height: 1;
}
.apsc-icons-wrapper .apsc-each-profile > a:hover::before {
  -webkit-transform: none;
  -moz-transform: none;
  -o-transform: none;
  transform: none;
  opacity: 0.1;
}
.apsc-icons-wrapper .apsc-each-profile > a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  background: #000000;
  display: block;
  opacity: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.apsc-icons-wrapper .apsc-each-profile > a::after {
  content: none;
}
.apsc-icons-wrapper .apsc-each-profile > a .apsc-count {
  line-height: 1;
}
.apsc-icons-wrapper .apsc-each-profile > a.apsc-facebook-icon .apsc-inner-block,
.apsc-icons-wrapper .apsc-each-profile > a.apsc-facebook-icon .apsc-count {
  background-color: #4071ba;
}
.apsc-icons-wrapper .apsc-each-profile > a.apsc-twitter-icon .apsc-inner-block,
.apsc-icons-wrapper .apsc-each-profile > a.apsc-twitter-icon .apsc-count {
  background-color: #3fb1d1;
}
.apsc-icons-wrapper .apsc-each-profile > a.apsc-google-plus-icon .apsc-inner-block,
.apsc-icons-wrapper .apsc-each-profile > a.apsc-google-plus-icon .apsc-count {
  background-color: #e9513a;
}
.apsc-icons-wrapper .apsc-each-profile > a.apsc-dribble-icon .apsc-inner-block,
.apsc-icons-wrapper .apsc-each-profile > a.apsc-dribble-icon .apsc-count {
  background-color: #f7659c;
}
.apsc-icons-wrapper .apsc-each-profile > a.apsc-youtube-icon .apsc-inner-block,
.apsc-icons-wrapper .apsc-each-profile > a.apsc-youtube-icon .apsc-count {
  background-color: #e52d27;
}
.apsc-icons-wrapper .apsc-each-profile > a.apsc-soundcloud-icon .apsc-inner-block,
.apsc-icons-wrapper .apsc-each-profile > a.apsc-soundcloud-icon .apsc-count {
  background-color: #ff8800;
}
.apsc-icons-wrapper .apsc-each-profile > a.apsc-comment-icon .apsc-inner-block,
.apsc-icons-wrapper .apsc-each-profile > a.apsc-comment-icon .apsc-count {
  background-color: #464646;
}
.apsc-icons-wrapper .apsc-each-profile > a.apsc-edit-icon .apsc-inner-block,
.apsc-icons-wrapper .apsc-each-profile > a.apsc-edit-icon .apsc-count {
  background-color: #837d7d;
}
.apsc-icons-wrapper .apsc-each-profile > a.apsc-instagram-icon .apsc-inner-block,
.apsc-icons-wrapper .apsc-each-profile > a.apsc-instagram-icon .apsc-count {
  background-color: #3f729b;
}
.apsc-icons-wrapper .apsc-each-profile > a .apsc-inner-block {
  position: relative;
  z-index: 1;
  height: 100%;
}
.apsc-icons-wrapper .apsc-each-profile > a .social-icon::after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.apsc-icons-wrapper .apsc-each-profile > a .social-icon i {
  display: inline-block;
  vertical-align: middle;
  font-size: 15px;
}
.apsc-icons-wrapper .apsc-each-profile > a .social-icon i.fa-google-plus::before {
  content: '\ea64';
  font-family: "fontello";
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile {
  max-width: 175px;
  width: 50%;
  height: 60px;
  min-height: 0;
  margin: 0 0 6px 0;
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile:nth-child(2n) {
  padding-left: 6px;
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile:nth-child(2n + 1) {
  clear: both;
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile > a {
  height: 100%;
  padding: 0;
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile > a:hover .social-icon::before {
  height: 42px;
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile > a .social-icon {
  position: relative;
  width: 46px;
  height: 100%;
  margin-right: 15px;
  text-align: center;
  float: left;
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile > a .social-icon i {
  display: inline-block;
  vertical-align: middle;
  line-height: 1;
  font-size: 15px;
  text-indent: 0.3em;
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile > a .social-icon i.fa-google-plus::before {
  content: '\ea64';
  font-family: "fontello";
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile > a .social-icon::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  height: 30px;
  margin: auto;
  background-color: #fff;
  opacity: 0.25;
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile > a .apsc-count {
  padding: 13px 0 0 0;
  margin-bottom: -5px;
}
.apsc-icons-wrapper.apsc-theme-1 .apsc-each-profile > a .apsc-media-type {
  display: block;
  line-height: 1;
}
.apsc-icons-wrapper.apsc-theme-5 .apsc-each-profile {
  width: 36px;
  margin: 2px;
  min-height: auto;
  float: left;
}
.apsc-icons-wrapper.apsc-theme-5 .apsc-each-profile:nth-child(5n + 1) {
  clear: both;
}
.apsc-icons-wrapper.apsc-theme-5 .apsc-each-profile > a {
  padding: 0;
}
.apsc-icons-wrapper.apsc-theme-5 .apsc-each-profile > a:hover .apsc-count {
  -webkit-transform: translate(-50%, 0px);
  transform: translate(-50%, 0px);
  opacity: 1;
}
.apsc-icons-wrapper.apsc-theme-5 .social-icon {
  height: auto;
  line-height: 36px;
}
.apsc-icons-wrapper.apsc-theme-5 .apsc-inner-block {
  text-align: center;
}
.apsc-icons-wrapper.apsc-theme-5 .apsc-count {
  position: absolute;
  bottom: 100%;
  left: 50%;
  z-index: 30;
  padding: 3px 5px 2px;
  margin: 0 0 3px 0;
  background-color: #ccc;
  opacity: 0;
  -webkit-transform: translate(-50%, 20px);
  transform: translate(-50%, 20px);
  pointer-events: none;
  -webkit-border-radius: 11px;
  border-radius: 11px;
}
.apsc-icons-wrapper.apsc-theme-3 .social-icon::after {
  display: none !important;
}
.apsc-icons-wrapper.apsc-theme-4 .apsc-each-profile {
  margin: 0;
}
.apsc-icons-wrapper.apsc-theme-4 .apsc-each-profile > a {
  display: inline-block;
  padding: 9px 15px 9px 15px;
  min-width: 170px;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  overflow: hidden;
}
.apsc-icons-wrapper.apsc-theme-4 .apsc-each-profile > a:not(.apsc-edit-icon):not(.apsc-comment-icon) .apsc-count {
  display: none;
}
.apsc-icons-wrapper.apsc-theme-4 .apsc-each-profile .social-icon i {
  margin: 0 10px 0 0;
}
.widget_mailpoet_form {
  position: relative;
}
.widget_mailpoet_form.widget {
  padding: 35px 23px 15px;
  margin-bottom: 40px;
}
.widget_mailpoet_form .mailpoet_text {
  width: 100% !important;
}
.widget_mailpoet_form .widgettitle {
  text-align: center;
}
.widget_mailpoet_form .widgettitle span {
  background-image: none !important;
}
.widget_mailpoet_form .wysija-paragraph {
  padding-bottom: 10px;
}
.widget_mailpoet_form .mailpoet_form_widget {
  position: relative;
  max-width: 400px;
  margin: auto;
  text-align: center;
}
.widget_mailpoet_form .mailpoet_submit {
  width: 100%;
}
.cmsmasters_column.one_first .widget_mailpoet_form .mailpoet_submit,
.cmsmasters_column.one_half .widget_mailpoet_form .mailpoet_submit {
  position: absolute;
  right: 0;
  top: 0px;
  padding: 0px 7% 0px;
  display: inline-block;
  width: auto;
}
.widget_mailpoet_form .formError {
  left: auto!important;
  right: 0%!important;
  top: 0 !important;
}
.cmsmasters_post_read_more,
.cmsmasters_slider_post_read_more {
  display: inline-block;
  padding: 0 25px;
}
.cmsmasters_post_author .cmsmasters_post_author_avatar,
.cmsmasters_slider_post_author .cmsmasters_post_author_avatar {
  display: inline-block;
  vertical-align: middle;
  margin-right: 10px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  overflow: hidden;
}
.esg-grid ul {
  padding: 0;
  margin: 0;
}
.esg-grid ul li:before {
  display: none;
}
blockquote {
  margin: 0 0 30px 0;
  border-left-width: 3px;
  border-left-style: solid;
}
blockquote > p:only-child {
  padding-bottom: 0;
}
table {
  margin: 0 0 20px;
  border-collapse: separate;
  border-spacing: 15px;
  width: 100%;
}
table caption {
  text-align: center;
  padding: 20px;
}
table:not([class]):not([id]) {
  border-spacing: 0;
  border-collapse: collapse;
  margin-bottom: 25px;
}
table:not([class]):not([id]) th,
table:not([class]):not([id]) td {
  padding: 10px;
  border-width: 1px;
  border-style: solid;
}
table tbody tr {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
table tbody tr:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
table tfoot tr {
  border-width: 1px;
  border-style: solid;
}
.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,
select,
option {
  padding: 8px 16px;
  max-width: 100%;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 0px;
  border-radius: 0px;
}
textarea {
  overflow: auto;
  background-color: rgba(0, 0, 0, 0);
}
select {
  line-height: 1em;
  text-indent: 0.01px;
  text-overflow: '';
  padding: 8px 40px 8px 16px;
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none !important;
  background-image: url('../../../img/select.png');
  background-position: right 5px center;
  background-repeat: no-repeat;
}
select[multiple] {
  height: auto;
  background-image: none;
}
select[multiple] option {
  padding-left: 0;
  padding-right: 0;
  background: none !important;
}
select::-ms-expand {
  display: none;
}
input[type=text],
input[type=search],
input[type=password],
input[type=email],
input[type=tel],
input[type=url],
input[type=number],
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: 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]) {
  height: 50px;
}
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])[name="post_password"] {
  height: 38px;
}
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;
}
select {
  outline: none;
}
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_mailpoet_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]) {
  width: 100% !important;
  padding: 0 16px !important;
}
#page .mailpoet_submit {
  display: inline-block !important;
  margin: 0 !important;
  padding: 4px 10px;
  border-width: 1px;
  border-style: solid;
}
.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: 0 16px !important;
}
.gform_wrapper select {
  padding: 8px 16px !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: 20px 0 0;
  padding: 14px 0 12px;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 204;
  opacity: 0;
  border-width: 1px;
  border-style: solid;
}
.header_top nav > div > ul ul {
  width: 170px;
  margin: 20px 0 0;
  padding: 10px 0 10px;
}
.header_bot nav > div > ul ul {
  width: 206px;
  margin: 20px 0 0;
  padding: 14px 0 14px;
}
nav > div > ul ul ul {
  margin: 0 0 0 20px;
  left: 100%;
  top: -15px;
}
.header_top nav > div > ul ul ul {
  margin: 0 0 0 20px;
  top: -11px;
}
.header_bot nav > div > ul ul ul {
  margin: 0 0 0 20px;
  top: -15px;
}
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 20px 0 0;
  left: auto;
  right: 100%;
}
.header_bot nav > div > ul li.menu-item-dropdown-right > ul ul {
  margin: 0 20px 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: 24px 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: 1px 0 0;
}
nav > div > ul li:hover > ul:before {
  content: '';
  width: 100%;
  height: 24px;
  position: absolute;
  left: 0;
  top: -25px;
}
.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: 1px;
  top: -2px;
}
nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 24px 0 0;
  visibility: visible;
  opacity: 1;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 1px 0 0;
}
nav > div > ul li:hover > div.menu-item-mega-container:before {
  content: '';
  width: 100%;
  height: 24px;
  position: absolute;
  left: 0;
  top: -25px;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container:before {
  width: 100%;
  height: 1px;
  top: -2px;
}
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 1px;
}
.header_top nav > div > ul li li:hover > ul {
  margin: 0 0 0 0px;
}
.header_bot nav > div > ul li li:hover > ul {
  margin: 0 0 0 3px;
}
nav > div > ul li li:hover > ul:before {
  width: 1px;
  height: 100%;
  top: 0;
  left: -2px;
}
.header_top nav > div > ul li li:hover > ul:before {
  width: 0px;
  height: 100%;
  left: -1px;
}
.header_bot nav > div > ul li li:hover > ul:before {
  width: 3px;
  height: 100%;
  left: -4px;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 1px 0 0;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 3px 0 0;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  left: auto;
  right: -2px;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  right: -4px;
}
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;
  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 10px 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 .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.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: 20px 0 0;
  padding: 20px 0 22px;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 203;
  opacity: 0;
  border-width: 1px;
  border-style: solid;
}
.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 14px;
  border-right-width: 1px;
  border-right-style: solid;
  border-left-width: 0;
  border-left-style: solid;
}
nav > div > ul div.menu-item-mega-container > ul > li:last-child {
  border-right-width: 0;
  border-right-style: solid;
}
nav > div > ul div.menu-item-mega-container > ul > li > a {
  margin-bottom: 5px;
}
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;
}
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.4%;
  position: relative;
  float: left;
}
.one_sixth {
  width: 13.87%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_sixth {
  width: 16.67%;
}
.one_fifth {
  width: 17.2%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_fifth {
  width: 20%;
}
.one_fourth {
  width: 22.2%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_fourth {
  width: 25%;
}
.one_third {
  width: 30.53%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_third {
  width: 33.33%;
}
.one_half {
  width: 47.2%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_half {
  width: 50%;
}
.two_third {
  width: 63.87%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .two_third {
  width: 66.67%;
}
.three_fourth {
  width: 72.2%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .three_fourth {
  width: 75%;
}
.one_first {
  width: 97.2%;
  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;
}
.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: 98%;
  margin: 0 auto;
}
#page.cmsmasters_boxed #header,
#page.cmsmasters_boxed #footer {
  width: 98%;
}
#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,
.error_inner {
  position: relative;
  width: 98%;
  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: .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.47%;
  position: relative;
}
.content_wrap > .middle_content:empty {
  display: none;
}
.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: 50px 0;
}
.profile_page .middle_content {
  padding: 30px 0;
}
.middle_content:empty {
  display: none;
}
.content {
  width: 72%;
  padding: 60px 0;
  position: relative;
  float: left;
}
.content.fr {
  float: right;
}
.sidebar {
  width: 28%;
  padding: 60px 0 60px 50px;
  position: relative;
  float: right;
}
.sidebar.fl {
  padding: 60px 80px 60px 0;
  float: left;
}
.bottom_bg {
  padding-top: 0px;
  padding-bottom: 40px;
}
.bottom_inner {
  margin: 0 -1.4%;
  padding-top: 100px;
  border-top-width: 1px;
  border-top-style: solid;
}
.bottom_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.bottom_inner aside {
  position: relative;
  float: left;
  margin: 0 1.4%;
}
.bottom_inner aside .widget .widgettitle span {
  background-image: none !important;
}
/* Instagram */
#sbi_load {
  padding-top: 0 !important;
}
/***************** Icons ******************/
/* global */
.cmsmasters_theme_icon_comment:before {
  content: '\e87c';
}
.cmsmasters_theme_icon_like:before {
  content: '\e889';
}
.cmsmasters_theme_icon_view:before {
  content: '\e886';
}
.cmsmasters_theme_icon_search:before {
  content: '\e8a4';
}
body .cmsmasters_theme_icon_resp_nav:before {
  content: '\e925';
  font-family: 'fontello';
}
body .cmsmasters_theme_icon_resp_nav.active:before {
  content: '\e802';
  font-family: 'fontello-custom';
}
.cmsmasters_theme_icon_person:before {
  content: '\e813';
}
.cmsmasters_theme_icon_image:before {
  content: '\e831';
}
.cmsmasters_theme_icon_check:before {
  content: '\eabb';
}
.cmsmasters_theme_icon_spinner:before {
  content: '\e9fd';
}
body .cmsmasters_theme_icon_cancel:before {
  content: '\e802';
  font-family: 'fontello-custom';
}
/* arrows */
.cmsmasters_theme_icon_pagination_prev:before,
.cmsmasters_theme_icon_slide_prev:before,
.cmsmasters_theme_icon_comments_nav_prev:before,
.cmsmasters_prev_arrow span:before {
  content: '\e80b';
  font-family: "fontello-custom" !important;
}
.cmsmasters_theme_icon_pagination_next:before,
.cmsmasters_theme_icon_slide_next:before,
.cmsmasters_theme_icon_comments_nav_next:before,
.cmsmasters_next_arrow span:before {
  content: '\e80c';
  font-family: "fontello-custom" !important;
}
.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: '\eb22';
}
.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: 30px;
  height: 30px;
  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;
  vertical-align: middle;
}
.cmsmasters_prev_arrow span:before,
.cmsmasters_next_arrow span:before {
  font-family: 'fontello';
  font-size: 25px;
  line-height: 15px;
  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;
}
.post-password-form p:first-child {
  font-weight: bold;
}
.post-password-form label {
  display: inline-block;
}
.post-password-form input[type="password"] {
  display: block;
}
.post-password-form input[type=submit] {
  display: inline-block;
  vertical-align: middle;
  height: 38px;
  line-height: 38px;
}
/* Prelodaer */
.preloader {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 58.1%;
  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: 58.1%;
  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: left;
  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: 40px;
  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: 58.1%;
  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: 40px;
  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: 58.1%;
  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;
  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: 58.1%;
  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: none;
  height: 100%;
  margin-bottom: 0;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap iframe * {
  display: none;
}
.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 {
  position: relative;
  z-index: 5;
  background: none;
  width: 60px;
  height: auto;
  text-indent: 4px;
  border-width: 3px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_video_wrap .wp-video-shortcode .mejs-overlay-button::before,
.cmsmasters_video_wrap .mejs-layer .mejs-overlay-button::before {
  content: '\e976';
  font-family: "fontello";
  font-size: 25px;
  line-height: 54px;
}
.cmsmasters_video_wrap .mejs-overlay-play:hover .mejs-overlay-button {
  opacity: 0.5;
}
/* 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: 16px;
  padding-right: 36px;
}
.search_bar_wrap .search_button {
  padding: 0;
  margin: 0;
  width: 50px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden;
}
.search_bar_wrap .search_button button {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  cursor: pointer;
  position: relative;
  -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;
}
/* Social Icons */
.social_wrap {
  display: block;
  height: 100%;
  position: relative;
  z-index: 1;
  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 3px 1px;
  text-indent: -9999px;
  cursor: pointer;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  border-width: 1px;
  border-style: solid;
}
.owl-pagination .owl-page.active {
  cursor: default;
}
.owl-buttons {
  display: block;
  text-align: center;
}
.owl-buttons > div {
  display: inline-block;
  cursor: pointer;
  position: relative;
}
.owl-buttons > div.disabled {
  pointer-events: none;
  opacity: 0.35;
}
/* Slide Top Button */
#slide_top {
  text-align: center;
  width: 50px;
  height: 50px;
  position: fixed;
  bottom: 110px;
  right: 20px;
  z-index: 99999;
  display: none;
}
#slide_top:before {
  font-size: 25px;
  line-height: 48px;
}
#slide_top > span {
  display: inline-block;
  text-indent: -9999px;
}
.headline.headline_disabled ~ .middle_inner .opened-article.blog {
  padding-left: 10%;
  padding-right: 10%;
}
.headline:not(.headline_disabled) ~ .middle_inner .opened-article.blog {
  padding-right: 20%;
}
.headline ~ .middle_inner .content_wrap .opened-article.blog {
  padding-left: 0;
  padding-right: 0;
}
/* Opened Article */
.middle_content .opened-article {
  padding: 0 0 50px;
}
.middle_content .opened-article.portfolio,
.middle_content .opened-article.profiles {
  padding: 0;
}
#page .cmsmasters_post_date::before {
  font-size: 13px;
  margin-right: 5px;
  vertical-align: middle;
}
/* Likes and Comments */
.cmsmasters_likes,
.cmsmasters_comments {
  display: inline-block;
}
.cmsmasters_likes > a,
.cmsmasters_comments > a {
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  position: relative;
}
.cmsmasters_likes > a:before,
.cmsmasters_comments > a:before {
  font-size: 14px;
  line-height: 16px;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_likes > a.active,
.cmsmasters_comments > a.active {
  cursor: default;
}
.cmsmasters_likes > a span,
.cmsmasters_comments > a span {
  margin: 0 0 0 4px;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_likes + .cmsmasters_comments {
  padding-left: 13px;
}
.cmsmasters_comments + .cmsmasters_likes {
  padding-left: 13px;
}
.cmsmasters_comments > a::before {
  font-size: 14px;
}
.cmsmasters_comments + .cmsmasters_likes {
  padding-left: 13px;
}
/* Views */
.cmsmasters_views + .cmsmasters_comments,
.cmsmasters_views + .cmsmasters_likes {
  padding-left: 13px;
}
.cmsmasters_views > span {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}
.cmsmasters_views > span:before {
  font-size: 16px;
  line-height: 18px;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_views > span span {
  margin: 0 0 0 6px;
  display: inline-block;
  vertical-align: middle;
}
/* Button */
.button,
input[type=submit],
input[type=button],
button {
  display: inline-block;
  padding: 0 25px;
  position: relative;
  text-align: center;
  border-width: 0;
  border-style: solid;
  -webkit-border-radius: 0px;
  border-radius: 0px;
  white-space: nowrap;
}
/* Items Filter */
.cmsmasters_items_filter_wrap {
  padding: 0 0 40px;
  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;
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but {
  min-width: 120px;
  display: block;
  margin: 0 0 0 5px;
  padding: 0 32px 0 16px;
  float: left;
  text-align: left;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:before {
  font-size: 22px;
  width: 10px;
  height: 6px;
  line-height: 6px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: auto;
  right: 16px;
  margin: auto;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed {
  position: relative;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed:before {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  transform: rotate(180deg);
}
.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;
  text-align: left;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li {
  display: block;
  margin: 0 5px 5px 0;
  padding: 0;
  overflow: hidden;
  float: left;
}
.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 22px;
  cursor: pointer;
}
.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 {
  position: relative;
  margin: 45px 0 0;
  padding: 0 0 45px;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_wrap_items_loader:before {
  content: '';
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
.cmsmasters_wrap_items_loader .cmsmasters_items_loader {
  display: inline-block;
  padding: 5px 15px;
  border-width: 0;
  border-style: solid;
}
div.subpage_nav {
  position: relative;
}
div.subpage_nav > strong {
  font-weight: bold;
  display: inline-block;
  padding: 0 5px 0 0;
  vertical-align: middle;
}
div.subpage_nav > span,
div.subpage_nav > a {
  display: inline-block;
  padding: 0 5px;
  vertical-align: middle;
}
.cmsmasters_wrap_pagination {
  margin: 60px 0 0;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_wrap_pagination ul {
  position: relative;
  display: block;
  padding: 0;
  margin: 0;
  font-size: 0;
}
.cmsmasters_wrap_pagination ul:before {
  content: '';
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}
.cmsmasters_wrap_pagination ul li {
  display: block;
  margin: 0 -1px 0 0;
  padding: 0;
  border-width: 1px;
  border-style: solid;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_wrap_pagination ul li:last-child {
  margin-right: 0;
}
.cmsmasters_wrap_pagination ul li:before {
  content: none;
}
.cmsmasters_wrap_pagination ul li .page-numbers {
  line-height: 44px;
  display: block;
  min-width: 44px;
  height: 44px;
  position: relative;
}
.cmsmasters_wrap_pagination:empty {
  display: none;
}
/* Post Navigation */
.post_nav {
  padding: 30px 0;
  margin: 30px 0 0;
  position: relative;
  overflow: hidden;
}
.post_nav > div {
  display: block;
  position: relative;
  width: 50%;
}
.post_nav > div > a {
  display: block;
  position: relative;
  min-height: 60px;
  overflow: hidden;
}
.post_nav > div > a .cmsmasters_img_wrap {
  width: 60px;
  height: 60px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.post_nav > div .post_nav_cont {
  position: relative;
  padding: 0px 0;
  overflow: hidden;
  text-align: left;
}
.post_nav > div .post_nav_cont span {
  display: inline-block;
}
.post_nav > div .post_nav_cont span::before {
  margin: 0 6px 0 0;
  font-size: 12px;
  vertical-align: middle;
}
.post_nav > div.cmsmasters_prev_post {
  padding-left: 0;
  padding-right: 10px;
  float: left;
}
.post_nav > div.cmsmasters_prev_post > a {
  padding-left: 18px;
  border-left-width: 4px;
  border-left-style: solid;
}
.post_nav > div.cmsmasters_prev_post > a .cmsmasters_img_wrap {
  right: auto;
  left: 0;
}
.post_nav > div.cmsmasters_prev_post .cmsmasters_img_wrap + .post_nav_cont {
  padding: 10px 0 10px 80px;
}
.post_nav > div.cmsmasters_prev_post .post_nav_cont {
  text-align: left;
}
.post_nav > div.cmsmasters_next_post {
  padding-left: 10px;
  padding-right: 0;
  float: right;
}
.post_nav > div.cmsmasters_next_post > a {
  padding-right: 18px;
  border-right-width: 4px;
  border-right-style: solid;
}
.post_nav > div.cmsmasters_next_post > a .cmsmasters_img_wrap {
  left: auto;
  right: 0;
}
.post_nav > div.cmsmasters_next_post .cmsmasters_img_wrap + .post_nav_cont {
  padding: 10px 80px 10px 0;
}
.post_nav > div.cmsmasters_next_post .post_nav_cont {
  text-align: right;
}
.post_nav > div.cmsmasters_next_post .post_nav_cont span::before {
  margin: 4px 0 0 6px;
  float: right;
}
.post_nav > div .post_nav_title {
  margin-bottom: 0;
}
.post_nav > div span {
  padding-bottom: 14px;
  letter-spacing: -0.8px;
}
.post_nav > div img {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
/* Share Posts */
.share_posts,
.cmsmasters_sharing {
  padding: 50px 0 0;
  position: relative;
  overflow: hidden;
}
.share_posts .share_posts_title,
.cmsmasters_sharing .share_posts_title {
  position: relative;
}
.share_posts .cmsmasters_info_wrap,
.cmsmasters_sharing .cmsmasters_info_wrap {
  margin-bottom: 25px;
}
.share_posts .cmsmasters_info_wrap::before,
.cmsmasters_sharing .cmsmasters_info_wrap::before {
  font-size: 24px;
  margin: 1px 30px 0 0;
  display: inline-block;
}
.share_posts .cmsmasters_share,
.cmsmasters_sharing .cmsmasters_share {
  display: inline-block;
  vertical-align: middle;
  margin: 0 25px 0 0;
}
.share_posts .cmsmasters_share .name,
.cmsmasters_sharing .cmsmasters_share .name {
  display: block;
  line-height: 1;
}
.share_posts .cmsmasters_share::before,
.cmsmasters_sharing .cmsmasters_share::before {
  display: none;
}
.share_posts .cmsmasters_views_wrap,
.cmsmasters_sharing .cmsmasters_views_wrap {
  display: inline-block;
  vertical-align: middle;
}
.share_posts .cmsmasters_views_wrap .name,
.cmsmasters_sharing .cmsmasters_views_wrap .name {
  display: block;
  line-height: 1;
}
.share_posts .cmsmastersView::before,
.cmsmasters_sharing .cmsmastersView::before {
  display: none;
}
.share_posts .cmsmastersView span,
.cmsmasters_sharing .cmsmastersView span {
  margin: 0;
}
.share_posts .share_posts_inner,
.cmsmasters_sharing .share_posts_inner {
  position: relative;
  overflow: hidden;
}
.share_posts a,
.cmsmasters_sharing a {
  display: inline-block;
  margin: 0 6px 6px 0;
  position: relative;
  font-size: 0px;
  width: 40px;
  line-height: 40px;
  height: 40px;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  overflow: hidden;
  float: left;
  text-align: center;
}
.share_posts a span,
.cmsmasters_sharing a span {
  position: relative;
  z-index: 1;
}
.social_text_link.share_posts a,
.social_text_link.cmsmasters_sharing a {
  padding: 5px 20px 4px 12px;
  height: auto;
  width: auto;
}
.social_text_link.share_posts a::before,
.social_text_link.cmsmasters_sharing a::before {
  width: 1em;
  height: 1em;
  top: 0;
  bottom: 0;
  margin: 0 10px 0 0;
  line-height: 1;
}
.social_vertical.share_posts a,
.social_vertical.cmsmasters_sharing a {
  clear: both;
}
.share_posts a:last-child,
.cmsmasters_sharing a:last-child {
  margin-right: 0;
}
.share_posts a.facebook,
.cmsmasters_sharing a.facebook {
  background-color: #3d5996;
}
.share_posts a.google,
.cmsmasters_sharing a.google {
  background-color: #dc4b3f;
}
.share_posts a.twitter,
.cmsmasters_sharing a.twitter {
  background-color: #24a1ef;
}
.share_posts a.pinterest,
.cmsmasters_sharing a.pinterest {
  background-color: #df2433;
}
.share_posts a.linkedin,
.cmsmasters_sharing a.linkedin {
  background-color: #0977b2;
}
.share_posts a.tumblr,
.cmsmasters_sharing a.tumblr {
  background-color: #36465b;
}
.share_posts a.reddit,
.cmsmasters_sharing a.reddit {
  background-color: #fe441e;
}
.share_posts a.stumbleupon,
.cmsmasters_sharing a.stumbleupon {
  background-color: #ea492f;
}
.share_posts a:hover::after,
.cmsmasters_sharing a:hover::after {
  opacity: 0.15;
}
.share_posts a::before,
.cmsmasters_sharing a::before {
  position: relative;
  z-index: 1;
  line-height: inherit;
  font-size: 13px;
  margin: 0;
}
.share_posts a::after,
.cmsmasters_sharing a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background-color: #000;
  opacity: 0.0;
}
.share_posts a:last-child,
.cmsmasters_sharing a:last-child {
  margin-left: 0;
  margin-right: 0;
}
/* About Author */
.about_author {
  padding: 44px 0 0;
  position: relative;
}
.about_author .about_author_title {
  margin-bottom: 28px;
}
.about_author .about_author_inner {
  padding: 30px;
  overflow: hidden;
}
.about_author .about_author_avatar {
  margin: 0 38px 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: 46px 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .preloader {
  padding-bottom: 68%;
}
.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-bottom: 30px;
  padding: 0 110px 0 0;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner {
  margin: 0 -10px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner .owl-buttons {
  padding: 0 10px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item {
  min-width: 200px;
  padding: 0 10px;
  position: relative;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item .cmsmasters_post_date .published {
  vertical-align: baseline;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item .cmsmasters_post_date:before {
  vertical-align: middle;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_post_category {
  position: absolute;
  top: 15px;
  left: 15px;
  z-index: 5;
  width: auto;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_inner {
  padding: 14px 0 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_title {
  margin: 10px 0 0;
  padding: 0;
}
.cmsmasters_single_slider .owl-buttons {
  position: absolute;
  right: 0;
  top: -64px;
}
/* Single Pings List */
.cmsmasters_pings_list {
  padding: 46px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_pings_list .pingslist .pingback {
  position: relative;
  padding: 8px 50px 8px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pings_list .pingslist .pingback:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body {
  display: inline;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body .edit-link {
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body .edit-link:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body .edit-link .comment-edit-link {
  display: inline-block;
  vertical-align: middle;
}
/* Post Comments */
.post_comments {
  padding: 30px 0 0;
  position: relative;
}
.post_comments + .comment-respond {
  margin: 0;
}
.post_comments:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.post_comments .post_comments_title {
  margin: 0 0 40px;
}
.post_comments .cmsmasters_comment_item_content > ul,
.post_comments .cmsmasters_comment_item_content > ol {
  margin: 0 0 20px;
  padding: 0;
}
.post_comments img {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_comments_closed {
  margin: 20px 0;
}
/* Post Categories */
.cmsmasters_post_category {
  position: relative;
  padding: 0 0 8px;
  width: 100%;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_post_category .cmsmasters_cat_color {
  display: block;
  padding: 2px 13px 1px;
  margin: 0 5px 5px 0;
  overflow: hidden;
  float: left;
  clear: none;
}
.comments_nav {
  padding: 30px 0;
  overflow: hidden;
}
.comments_nav > span {
  float: left;
}
.comments_nav > span a {
  position: relative;
}
.comments_nav > span a::before {
  content: '\e80f';
  font-family: "fontello-custom" !important;
  margin: 0 15px 0 0;
}
.comments_nav > span::before {
  display: none;
}
.comments_nav .comments_nav_next {
  float: right;
}
.comments_nav .comments_nav_next a::after {
  content: '\e810';
  font-family: "fontello-custom" !important;
  margin: 0 0 0 15px;
}
.comments_nav .comments_nav_next a::before {
  display: none;
}
.commentlist {
  list-style: none;
  margin: 0;
  padding: 2.5% 5%;
}
.commentlist:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.commentlist .children {
  list-style: none;
  margin: 0;
  padding: 0 0 0 70px;
}
.commentlist > .comment:last-child > .comment-body > .comment-content {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.commentlist .comment {
  margin: 0;
  padding: 26px 0 0;
}
.commentlist .comment:before {
  content: none;
}
.commentlist .comment:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_comment_item {
  position: relative;
}
.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 18px 0 0;
  float: left;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_avatar img {
  outline: none;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont {
  padding: 15px 0 25px;
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info {
  position: relative;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info .cmsmasters_comment_item_date {
  display: block;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info > * {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  padding: 0 24px 0 0;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info > *:last-child {
  padding: 0;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info > *:last-child:before {
  content: none;
}
.cmsmasters_comment_item .cmsmasters_comment_item_content {
  padding-top: 25px;
  padding-bottom: 12px;
}
.cmsmasters_comment_item .cmsmasters_comment_item_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_comment_item .comment-reply-link {
  margin-right: 10px;
}
/* Comment Respond */
.comment-respond {
  padding: 4%;
  margin: 50px 0 0;
  position: relative;
  display: block;
  clear: both;
}
.commentlist .comment-respond {
  padding: 0;
}
.comment-respond .comment-form-cookies-consent {
  float: none;
  display: block;
  clear: both;
}
.comment-respond .comment-form-cookies-consent input,
.comment-respond .comment-form-cookies-consent label {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 10px;
}
.comment-respond .comment-form-cookies-consent label {
  margin-left: 5px;
}
.comment-respond #reply-title {
  padding: 0 10px 0px;
}
.comment-respond .comment-reply-title {
  position: relative;
}
.comment-respond .comment-reply-title small {
  float: right;
}
.comment-respond form {
  display: block;
  padmargin: 15px 0 0;
}
.comment-respond form label {
  margin-bottom: 10px;
  display: block;
}
.comment-respond form label span {
  margin-left: 2px;
}
.comment-respond form textarea {
  min-height: 186px;
  width: 100%;
}
.comment-respond form p {
  display: block;
  padding: 0 10px 10px;
}
.comment-respond form .comment-form {
  position: relative;
}
.comment-respond form .comment-form-author,
.comment-respond form .comment-form-email {
  width: 50%;
  float: left;
}
.comment-respond form .comment-form-author input,
.comment-respond form .comment-form-email input {
  width: 100%;
}
.comment-respond form .comment-form-comment {
  padding-bottom: 20px;
  display: block;
  clear: both;
}
.comment-respond form .comment-form-comment,
.comment-respond form .form-submit {
  padding-top: 12px;
}
.comment-respond form .form-submit {
  position: relative;
  overflow: hidden;
  padding-top: 26px;
  padding-bottom: 0;
}
/* Default square separator */
.cmsmasters_project_grid .cmsmasters_project_footer > span:before,
.cmsmasters_project_puzzle .cmsmasters_project_meta > span:before,
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul > li a:before,
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li a:before,
.cmsmasters_archive_type .cmsmasters_archive_item_info > span:before {
  content: '\e801';
  font-family: 'fontello-custom';
  display: block;
  width: 4px;
  height: 4px;
  font-size: 4px;
  line-height: 4px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 10px;
  left: auto;
  margin: auto;
}
.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 .header_top_but {
  width: 100%;
  height: 32px;
  position: relative;
  cursor: pointer;
  border-top-width: 1px;
  border-top-style: solid;
  display: none;
}
.header_top .header_top_but > span {
  font-size: 24px;
  line-height: 24px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  top: -4px;
}
.header_top .header_top_outer {
  height: 100%;
  position: relative;
}
.cmsmasters_liquid .header_top .header_top_outer {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.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 .header_top_inner_cont {
  height: 100%;
}
.cmsmasters_boxed .header_top .header_top_inner_cont {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.header_top .header_top_right {
  height: 100%;
  float: right;
}
.header_top .social_wrap {
  outline: none;
}
.header_top .social_wrap li {
  margin-left: 0;
  margin-right: 12px;
}
.header_top .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.header_top .social_wrap a {
  font-size: 18px;
  line-height: 18px;
  width: 18px;
  height: 18px;
}
.header_top .top_nav_wrap {
  display: block;
  height: 100%;
}
.header_top .responsive_top_nav {
  font-size: 16px;
  width: 30px;
  height: 30px;
  position: relative;
  display: none;
  margin: 0 auto;
}
.header_top .responsive_top_nav:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_top .responsive_top_nav.active:before {
  content: '\e802';
  font-size: 14px;
  font-family: "fontello-custom";
}
.header_top .header_top_left {
  height: 100%;
  padding: 0 20px 0 0;
  overflow: hidden;
}
.header_top .header_top_left:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_top .meta_wrap {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  width: 100%;
  max-width: 100%;
}
.header_top .meta_wrap > * {
  margin: 0 10px 0 0;
  display: inline-block;
  vertical-align: middle;
}
.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-right-width: 1px;
  border-right-style: solid;
  border-left-width: 0;
  border-left-style: solid;
}
.top_line_nav > li:last-child {
  border-right-width: 0;
  border-right-style: solid;
}
.top_line_nav > li > a {
  padding: 0 7px;
  height: 100%;
}
.top_line_nav > li > a:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.top_line_nav ul a {
  padding: 4px 15px;
}
/***************** Header Mid ******************/
.header_mid {
  display: block;
  clear: both;
}
.header_mid.header_mid_scroll {
  margin-top: -1px;
}
.header_mid .header_mid_inner_cont {
  height: 100%;
}
.cmsmasters_boxed .header_mid .header_mid_inner_cont {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.header_mid .header_mid_inner_cont:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.header_mid .header_mid_outer {
  height: 100%;
  position: relative;
}
.cmsmasters_liquid .header_mid .header_mid_outer {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.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;
  letter-spacing: -3px;
}
.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 20px;
  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 {
  font-size: 14px;
  line-height: 14px;
  display: inline-block;
  vertical-align: middle;
  width: 28px;
  height: 28px;
  position: relative;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav.active:before {
  content: '\e802';
  font-size: 14px;
  font-family: "fontello-custom";
}
.header_mid .mid_search_but_wrap {
  height: 100%;
  margin: 0 0 0 5px;
  position: relative;
  float: right;
}
.header_mid .mid_search_but_wrap + .mid_nav_wrap {
  padding-right: 5px;
}
.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: 16px;
  line-height: 16px;
  width: 17px;
  height: 28px;
  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;
}
.enable_header_centered .header_mid .social_wrap {
  float: left;
}
.header_mid .social_wrap .social_wrap_inner {
  text-align: right;
}
.header_mid .social_wrap .social_wrap_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .social_wrap li {
  margin-left: 0;
  margin-right: 12px;
}
.header_mid .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.header_mid .social_wrap a {
  font-size: 18px;
  line-height: 18px;
  width: 26px;
  height: 26px;
}
.header_mid .slogan_wrap {
  display: block;
  max-width: 65%;
  height: 100%;
  position: relative;
  z-index: 1;
  float: right;
  overflow: hidden;
}
.header_mid .slogan_wrap + .widget_sp_location_weather_widget_content {
  padding-right: 60px;
}
.enable_header_centered .header_mid .slogan_wrap {
  float: right;
}
.header_mid .slogan_wrap .slogan_wrap_inner {
  height: 100%;
  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:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.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 Navigation ******************/
.mid_nav {
  position: relative;
  display: inline-block;
  width: auto;
  height: auto;
  vertical-align: middle;
}
.mid_nav > li {
  float: none;
  display: inline-block;
  vertical-align: middle;
  margin: 0 5px 0 0;
  border-right-width: 0;
  border-right-style: solid;
  border-left-width: 0;
  border-left-style: solid;
}
.mid_nav > li:hover > a .nav_item_wrap::before,
.mid_nav > li.current-menu-ancestor > a .nav_item_wrap::before,
.mid_nav > li.current-menu-item > a .nav_item_wrap::before {
  width: 100%;
}
.mid_nav > li:last-child {
  margin: 0;
}
.mid_nav > li > a {
  position: relative;
  height: 100%;
  padding: 0px 12px 0px;
  border-width: 1px;
  border-style: solid;
}
.mid_nav > li > a:hover .nav_item_wrap::before {
  width: 100%;
}
.mid_nav > li > a > .nav_item_wrap {
  display: inline-block;
  position: relative;
}
.mid_nav > li > a > .nav_item_wrap:before {
  content: '';
  width: 0;
  height: 3px;
  position: absolute;
  bottom: -4px;
  left: -1px;
  right: -1px;
}
.mid_nav > li > a:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.mid_nav .nav_tag {
  display: inline-block;
  vertical-align: top;
  margin: 0 0 0 5px;
}
.mid_nav .nav_subtitle {
  display: block;
  padding: 3px 0;
}
/***************** Header Bot ******************/
.header_bot {
  display: block;
  clear: both;
}
.header_bot .header_bot_outer {
  height: 100%;
  position: relative;
}
.cmsmasters_liquid .header_bot .header_bot_outer {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.header_bot .header_bot_inner_cont {
  height: 100%;
}
.cmsmasters_boxed .header_bot .header_bot_inner_cont {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.header_bot .header_bot_inner_cont:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.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%;
  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 {
  font-size: 14px;
  line-height: 14px;
  display: inline-block;
  vertical-align: middle;
  width: 28px;
  height: 28px;
  position: relative;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav:hover,
.header_bot .resp_bot_nav_wrap .resp_bot_nav.active {
  outline: none;
}
.header_bot .bot_search_but_wrap {
  height: 100%;
  margin: 0 0 0 5px;
  position: relative;
  float: right;
}
.header_bot .bot_search_but_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_bot .bot_search_but_wrap .bot_search_but {
  font-size: 16px;
  line-height: 16px;
  width: 28px;
  height: 28px;
  font-weight: bold;
  margin: 0;
  cursor: pointer;
  display: inline-block;
  position: relative;
  vertical-align: middle;
}
.header_bot .bot_search_but_wrap .bot_search_but:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.enable_header_right .header_bot .bot_search_but_wrap {
  margin: 0 5px 0 0;
  float: left;
}
.enable_header_centered .header_bot .bot_search_but_wrap {
  display: inline-block;
  float: none;
}
.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 {
  position: relative;
}
.bot_nav > li {
  height: 100%;
  margin: 0 0px 0 0;
  border-right-width: 0;
  border-right-style: solid;
  border-left-width: 0;
  border-left-style: solid;
}
.bot_nav > li:hover > a .nav_item_wrap::before,
.bot_nav > li.current-menu-ancestor > a .nav_item_wrap::before,
.bot_nav > li.current-menu-item > a .nav_item_wrap::before {
  width: 100%;
}
.bot_nav > li:first-child > a {
  padding-left: 0;
}
.bot_nav > li:last-child {
  margin: 0;
}
.bot_nav > li > a {
  display: inline-block;
  position: relative;
  padding: 3px 12px 0;
  height: 100%;
  border-width: 1px;
  border-style: solid;
}
.bot_nav > li > a:hover .nav_item_wrap::before {
  width: 100%;
}
.bot_nav > li > a > .nav_item_wrap {
  position: relative;
  display: block;
  height: 100%;
}
.bot_nav > li > a > .nav_item_wrap::after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.bot_nav > li > a > .nav_item_wrap:before {
  content: '';
  width: 0;
  height: 3px;
  position: absolute;
  bottom: -2px;
  left: -1px;
}
.bot_nav > li:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.bot_nav .nav_tag {
  display: inline-block;
  vertical-align: top;
  margin: 0 0 0 5px;
}
.bot_nav .nav_subtitle {
  display: block;
  padding: 3px 0;
}
/***************** Header Search Form ******************/
.cmsmasters_header_search_form {
  width: 100%;
  height: 100%;
  visibility: hidden;
  position: fixed;
  z-index: 100000;
  opacity: 0;
}
.cmsmasters_header_search_form.cmsmasters_show {
  visibility: visible;
  opacity: 1;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_close {
  font-size: 20px;
  line-height: 20px;
  display: block;
  cursor: pointer;
  width: 20px;
  height: 20px;
  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.7;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field {
  max-width: 90%;
  width: 680px;
  height: 98px;
  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]) {
  background-color: transparent;
  padding: 0 50px 0 0;
  width: 100%;
  height: 100%;
  font-size: 60px;
  line-height: 98px;
  font-weight: bold;
  border-width: 0;
  border-style: solid;
  border-bottom-width: 3px;
  border-bottom-style: solid;
}
.cmsmasters_header_search_form button {
  display: none;
  visibility: hidden;
}
/*-------------------------------------------------------------------------*/
/*	Content + Sidebar Styles */
/*-------------------------------------------------------------------------*/
body .headline {
  background-color: transparent;
}
.cmsmasters_breadcrumbs {
  position: relative;
  overflow: hidden;
}
.cmsmasters_breadcrumbs + .headline_text {
  padding-top: 0px;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_aligner {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  display: inline-block;
  padding-top: 6px;
  padding-bottom: 6px;
  vertical-align: middle;
  overflow: hidden;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner > * {
  display: inline-block;
  vertical-align: middle;
  letter-spacing: -0.75px;
}
.cmsmasters_breadcrumbs .breadcrumbs_sep {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_breadcrumbs .breadcrumbs_sep:before {
  content: '/';
  padding: 0 .25em 0;
  vertical-align: middle;
  display: inline-block;
}
.headline_outer {
  position: relative;
  background-position: top center;
  z-index: 1;
}
.headline_outer .headline_color {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.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_content {
  width: 100%;
  display: inline-block;
  vertical-align: top;
  position: relative;
  padding: 20px 0 0;
}
.headline_outer .headline_inner .headline_content.cmsmasters_breadcrumbs_disabled {
  vertical-align: middle;
}
.headline_outer .headline_inner .headline_content .headline_text:before {
  line-height: 1em;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  top: 30px;
}
.headline_outer .headline_inner .headline_content .headline_text .entry-title {
  word-wrap: break-word;
  margin: 0;
  padding: 0 0 0px;
}
.headline_outer .headline_inner .headline_content .headline_text .entry-subtitle {
  margin: 5px 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_center {
  text-align: center;
}
.headline_outer .headline_inner.align_center .headline_text {
  text-align: center;
}
.headline_outer .headline_inner.align_center .headline_text:before {
  bottom: auto;
}
.headline_outer .headline_inner.align_center .headline_text.headline_icon > *:first-child {
  padding-top: 15px;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs {
  text-align: center;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_aligner {
  display: none;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  padding: 20px 0;
}
.headline_outer.cmsmasters_headline_disabled {
  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_cont {
  border-top-width: 1px;
  border-top-style: solid;
}
/***************** Footer Default ******************/
.cmsmasters_footer_default .footer_inner_cont {
  padding-top: 80px;
  padding-bottom: 80px;
}
.cmsmasters_footer_default .footer_inner_cont > 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_custom_html_wrap {
  padding: 20px 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 .footer_nav_wrap {
  padding: 60px 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;
}
.cmsmasters_footer_default .footer_nav > li {
  padding: 0 14px 0;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_footer_default .footer_nav > li:before {
  content: '';
  display: block;
  width: 4px;
  height: 4px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: -2px;
  left: auto;
  margin: auto;
}
.cmsmasters_footer_default .footer_nav > li:last-child:before {
  content: none;
}
.cmsmasters_footer_default .footer_nav > li ul {
  display: none !important;
}
.cmsmasters_footer_default .social_wrap {
  padding: 44px 0 0;
}
.cmsmasters_footer_default .social_wrap .social_wrap_inner {
  text-align: center;
}
.cmsmasters_footer_default .social_wrap li {
  margin-left: 0;
  margin-right: 30px;
}
.cmsmasters_footer_default .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_footer_default .social_wrap a {
  font-size: 20px;
  line-height: 20px;
  width: 30px;
  height: 30px;
}
.cmsmasters_footer_default .footer_copyright {
  display: block;
  padding: 22px 0;
  margin: 22px 0 0;
  text-align: center;
  border-top-width: 1px;
  border-top-style: solid;
}
/***************** Footer Small ******************/
.cmsmasters_footer_small .footer_inner_cont {
  padding-top: 18px;
  padding-bottom: 18px;
}
.cmsmasters_footer_small .footer_nav_wrap {
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_nav {
  margin: 0 -8px;
  width: auto;
}
.cmsmasters_footer_small .footer_nav > li {
  padding: 0 8px;
  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: 5px;
}
.cmsmasters_footer_small .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_footer_small .social_wrap a {
  font-size: 16px;
  line-height: 16px;
  width: 28px;
  height: 28px;
}
.cmsmasters_footer_small .footer_custom_html_wrap {
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_copyright {
  display: block;
  padding: 1px 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: 58.1%;
}
.blog .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog .post .cmsmasters_video_wrap,
.blog .post .resizable_block {
  padding-bottom: 58.1%;
}
.blog.columns {
  margin: -50px -10px 0;
}
.blog.columns .post {
  min-width: 260px;
  padding: 50px 10px 0;
  float: left;
  opacity: 0;
}
.blog.columns .post.cmsmasters_post_masonry {
  min-width: 200px;
}
.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: 68.9%;
}
.blog.columns .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog.timeline {
  overflow: visible !important;
}
.blog.timeline:before {
  content: '';
  width: 1px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.blog.timeline .post {
  width: 50%;
  overflow: visible;
  float: left;
  opacity: 0;
}
.blog.timeline .post:before {
  content: '';
  width: 100%;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 36px;
  bottom: auto;
}
.blog.timeline .post.cmsmasters_timeline_left .cmsmasters_timeline_margin {
  margin-right: 16%;
}
.blog.timeline .post.cmsmasters_timeline_right .cmsmasters_timeline_margin {
  margin-left: 16%;
}
.blog.timeline .post.shortcode_animated {
  opacity: 1;
}
.blog.timeline .post .preloader {
  padding-bottom: 58.1%;
}
.blog.timeline .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog.timeline .post .cmsmasters_video_wrap,
.blog.timeline .post .resizable_block {
  padding-bottom: 58.1%;
}
.blog .owl-pagination {
  width: auto;
  left: 18px;
  right: auto;
  top: auto;
  bottom: 18px;
}
.cmsmasters_title_small .cmsmasters_post_title,
.cmsmasters_title_small .cmsmasters_slider_post_title,
.cmsmasters_title_small .cmsmasters_project_title {
  line-height: 1;
}
.cmsmasters_title_small .cmsmasters_post_title a,
.cmsmasters_title_small .cmsmasters_slider_post_title a,
.cmsmasters_title_small .cmsmasters_project_title a {
  font-size: .65em;
  line-height: 1;
}
/***************** Blog Default ******************/
.cmsmasters_post_default {
  padding: 7% 0 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_author .avatar {
  width: 20px;
  display: block;
}
.cmsmasters_post_default .cmsmasters_video_preview {
  text-align: center;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_video_preview img {
  width: 100%;
}
.cmsmasters_post_default .cmsmasters_video_preview::before {
  content: "";
  position: absolute;
  text-align: center;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
}
.cmsmasters_post_default .cmsmasters_video_preview::after {
  content: "\e803";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 1em;
  height: 1em;
  margin: auto;
  z-index: 2;
  font-size: 65px;
  line-height: 1;
  font-family: "fontello-custom";
  color: #fff;
  pointer-events: none;
  will-change: transform;
}
#page .cmsmasters_post_default .cmsmasters_video_preview .cmsmasters_post_title a:hover {
  background-image: none;
}
#page .cmsmasters_post_default .cmsmasters_video_preview + .cmsmasters_post_cont {
  padding-top: 20px;
}
#page .cmsmasters_post_default.content_side .cmsmasters_post_img_wrap,
.content_wrap.fullwidth .cmsmasters_post_default .cmsmasters_post_img_wrap,
.content_wrap.fullwidth + .cmsmasters_column.one_first .cmsmasters_post_default .cmsmasters_post_img_wrap {
  width: 45%;
  float: left;
}
#page .cmsmasters_post_default.content_side .cmsmasters_post_img_wrap + .cmsmasters_post_cont,
.content_wrap.fullwidth .cmsmasters_post_default .cmsmasters_post_img_wrap + .cmsmasters_post_cont,
.content_wrap.fullwidth + .cmsmasters_column.one_first .cmsmasters_post_default .cmsmasters_post_img_wrap + .cmsmasters_post_cont {
  width: 55%;
  padding: 0 0 0 3%;
  overflow: hidden;
}
.cmsmasters_post_default:first-child {
  padding-top: 0;
}
.cmsmasters_post_default .cmsmasters_post_cont_wrap {
  position: relative;
  display: block;
  clear: both;
}
.cmsmasters_post_default .cmsmasters_video_preview {
  position: relative;
}
.cmsmasters_post_default .cmsmasters_video_preview .cmsmasters_post_category,
.cmsmasters_post_default .cmsmasters_video_preview .cmsmasters_video_preview_bottom {
  -webkit-transition: opacity .25s ease;
  -moz-transition: opacity .25s ease;
  -ms-transition: opacity .25s ease;
  -o-transition: opacity .25s ease;
  transition: opacity .25s ease;
}
.cmsmasters_post_default .cmsmasters_video_preview .cmsmasters_video_wrap .mejs-overlay-play::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 5;
  pointer-events: none;
}
.cmsmasters_post_default .cmsmasters_video_preview .cmsmasters_post_category {
  position: absolute;
  top: 25px;
  left: 25px;
  width: auto;
  z-index: 5;
}
.cmsmasters_post_default .cmsmasters_video_preview_bottom {
  position: absolute;
  left: 0px;
  bottom: 0px;
  padding: 20px 25px 10px;
  z-index: 5;
  pointer-events: none;
}
.cmsmasters_post_default .cmsmasters_video_preview_bottom .cmsmasters_post_header {
  pointer-events: auto;
}
.cmsmasters_post_default .cmsmasters_video_preview_bottom .cmsmasters_post_info {
  padding-bottom: 10px;
}
.cmsmasters_post_default .cmsmasters_video_preview_bottom a:hover {
  opacity: 0.7;
}
.cmsmasters_post_default .cmsmasters_post_img_wrap {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_img_wrap img {
  width: 100%;
}
.cmsmasters_post_default .cmsmasters_post_cont {
  padding: 14px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_info {
  padding: 0 0 6px;
  position: relative;
}
.post_format-post-format-video.cmsmasters_post_default .cmsmasters_post_info {
  padding-top: 15px;
}
.cmsmasters_post_default .cmsmasters_post_info .cmsmasters_post_date::before {
  margin-right: 5px;
}
.cmsmasters_post_default .cmsmasters_post_info > * {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  padding: 0 24px 0 0;
}
.cmsmasters_post_default .cmsmasters_post_info > *:last-child {
  padding: 0;
}
.cmsmasters_post_default .cmsmasters_video_preview .cmsmasters_img_wrap {
  width: 100%;
}
.cmsmasters_post_default .cmsmasters_video_preview:hover .cmsmasters_img_wrap {
  -webkit-transform: scale(1.05);
  -moz-transform: scale(1.05);
  transform: scale(1.05);
}
.cmsmasters_post_default .cmsmasters_video_preview:hover::after {
  -webkit-transform: scale(0.95);
  -moz-transform: scale(0.95);
  transform: scale(0.95);
}
.cmsmasters_post_default .cmsmasters_img_wrap {
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_owl_slider {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_audio {
  padding: 22px 0 12px;
}
.cmsmasters_post_default .cmsmasters_audio .mejs-container.wp-audio-shortcode {
  margin: 0;
}
.cmsmasters_post_default .cmsmasters_post_header {
  padding: 0 0 12px;
}
.cmsmasters_post_default .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
  -ms-word-wrap: break-word;
  word-wrap: break-word;
}
.format-video.cmsmasters_post_default .cmsmasters_post_header .cmsmasters_post_title a {
  display: block;
}
.cmsmasters_post_default .cmsmasters_post_content {
  padding: 0 0 4px;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_default .cmsmasters_post_footer {
  padding: 12px 0 0;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_interface {
  padding-bottom: 20px;
  text-align: right;
}
.cmsmasters_post_default .cmsmasters_post_interface .cmsmasters_post_author {
  float: left;
}
.cmsmasters_post_default .cmsmasters_post_read_more {
  display: inline-block;
  float: left;
}
.cmsmasters_post_default.has-post-thumbnail:not(.format-video) .cmsmasters_post_category {
  position: absolute;
  width: auto;
  left: auto;
  left: 20px;
  top: 20px;
  bottom: auto;
  overflow: hidden;
}
.cmsmasters_post_default.has-post-thumbnail:not(.format-video) .cmsmasters_post_category .cmsmasters_cat_color {
  padding: 0 9px;
  margin: 0 0 5px;
  text-align: center;
  overflow: hidden;
  float: left;
  display: block;
  clear: both;
}
.cmsmasters_post_default.has-post-thumbnail .cmsmasters_post_img_wrap {
  width: 100%;
}
.cmsmasters_post_default.has-post-thumbnail .cmsmasters_post_img_wrap + .cmsmasters_post_cont {
  padding: 15px 0 0 0px;
}
.cmsmasters_post_default.has-post-thumbnail .cmsmasters_post_cont {
  padding: 0px 0 0;
}
.cmsmasters_post_default.sticky .cmsmasters_post_cont_wrap {
  padding: 32px;
  overflow: hidden;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_post_default.sticky .cmsmasters_post_cont_wrap:before {
  content: '\ead1';
  font-family: 'fontello';
  position: absolute;
  top: -4px;
  right: 20px;
  left: auto;
  font-size: 50px;
  line-height: 46px;
  z-index: 10;
}
.cmsmasters_post_date .published {
  display: inline-block;
  vertical-align: middle;
}
.blog.cmsmasters_with_featured {
  overflow: visible !important;
}
.blog.cmsmasters_with_featured .cmsmasters_post_default {
  overflow: visible;
}
/***************** Blog Masonry ******************/
.cmsmasters_post_masonry {
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_post_author .avatar {
  width: 20px;
  display: block;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_wrap {
  position: relative;
  display: block;
  clear: both;
}
.cmsmasters_post_masonry .cmsmasters_post_img_wrap {
  margin: 0 0 16px;
  position: relative;
  display: block;
  width: 100%;
}
.cmsmasters_post_masonry .cmsmasters_post_cont {
  padding: 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_post_info {
  padding: 0 0 12px;
  text-align: right;
}
.cmsmasters_post_masonry .cmsmasters_post_info .cmsmasters_post_date {
  padding-top: 3px;
  float: left;
}
.cmsmasters_post_masonry .cmsmasters_post_category {
  padding: 0;
}
.cmsmasters_post_masonry .cmsmasters_img_wrap {
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_img_wrap a {
  display: inline-block;
}
.cmsmasters_post_masonry .cmsmasters_img_wrap a:hover {
  -webkit-transform: scale(1.05);
  -moz-transform: scale(1.05);
  transform: scale(1.05);
}
.cmsmasters_post_masonry .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_audio {
  padding-top: 22px;
}
.cmsmasters_post_masonry .cmsmasters_video_wrap {
  margin: 0 0 20px;
}
.cmsmasters_post_masonry .cmsmasters_post_header {
  padding: 0 0 10px;
}
.cmsmasters_post_masonry .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
  -ms-word-wrap: break-word;
  word-wrap: break-word;
}
.cmsmasters_post_masonry .cmsmasters_post_content {
  padding: 0 0 4px;
  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_footer {
  padding: 12px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_post_footer .cmsmasters_post_interface {
  padding: 0 0 20px;
}
.cmsmasters_post_masonry .cmsmasters_post_footer > * {
  position: relative;
}
.cmsmasters_post_masonry .cmsmasters_post_footer > *:last-child:before {
  content: none;
}
.cmsmasters_post_masonry.has-post-thumbnail:not(.format-video) .cmsmasters_post_category {
  position: absolute;
  padding: 0;
  width: auto;
  left: 20px;
  top: auto;
  top: 20px;
  overflow: hidden;
}
.cmsmasters_post_masonry.has-post-thumbnail:not(.format-video) .cmsmasters_post_category .cmsmasters_cat_color {
  padding: 0 16px;
  margin: 0 0 3px;
  text-align: center;
  overflow: hidden;
  float: left;
  display: block;
  clear: both;
}
.cmsmasters_post_masonry.has-post-thumbnail.format-video .cmsmasters_post_cont {
  padding: 0;
}
.blog.columns.cmsmasters_with_featured .cmsmasters_post_default {
  width: 100% !important;
}
/***************** Blog Timeline ******************/
.cmsmasters_post_timeline {
  position: relative;
}
.cmsmasters_post_timeline .cmsmasters_post_info {
  display: block;
  position: absolute;
  z-index: 1;
}
.cmsmasters_post_timeline.cmsmasters_timeline_left .cmsmasters_post_info {
  left: auto;
  right: -60px;
}
.cmsmasters_post_timeline.cmsmasters_timeline_right .cmsmasters_post_info {
  left: -60px;
  right: auto;
}
.cmsmasters_post_timeline .cmsmasters_post_date {
  display: block;
  width: 120px;
  padding: 10px 0;
  margin: -15px 0 0;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_date::before {
  display: none;
}
.cmsmasters_post_timeline .cmsmasters_post_date .published {
  position: relative;
}
.cmsmasters_post_timeline .cmsmasters_post_date .cmsmasters_day {
  display: block;
  margin-bottom: 2px;
}
.cmsmasters_post_timeline .cmsmasters_post_date .cmsmasters_mon_year {
  display: block;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_wrap {
  position: relative;
  display: block;
  clear: both;
}
.cmsmasters_post_timeline .cmsmasters_post_img_wrap {
  margin: 0 0 20px;
  position: relative;
  display: block;
  width: 100%;
}
.cmsmasters_post_timeline .cmsmasters_post_cont {
  padding: 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_category {
  padding: 0;
}
.cmsmasters_post_timeline .cmsmasters_img_wrap {
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_img_wrap a:hover img {
  -webkit-transform: scale(1.05);
  -moz-transform: scale(1.05);
  transform: scale(1.05);
}
.cmsmasters_post_timeline .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_audio {
  padding-top: 22px;
}
.cmsmasters_post_timeline .cmsmasters_video_wrap {
  margin: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_header {
  padding: 0 0 10px;
}
.cmsmasters_post_timeline .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
  -ms-word-wrap: break-word;
  word-wrap: break-word;
}
.cmsmasters_post_timeline .cmsmasters_post_content {
  padding: 0 0 4px;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_read_more {
  display: inline-block;
}
.cmsmasters_post_timeline .cmsmasters_post_footer {
  padding: 12px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_footer > * {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  padding: 0 24px 0 0;
}
.cmsmasters_post_timeline .cmsmasters_post_footer > *:last-child {
  padding: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_footer > *:last-child:before {
  content: none;
}
.cmsmasters_post_timeline.has-post-thumbnail:not(.format-video) .cmsmasters_post_category {
  position: absolute;
  padding: 0;
  width: auto;
  left: 25px;
  top: 25px;
  overflow: hidden;
}
.cmsmasters_post_timeline.has-post-thumbnail:not(.format-video) .cmsmasters_post_category .cmsmasters_cat_color {
  text-align: center;
  overflow: hidden;
  float: right;
  display: block;
  clear: both;
}
.cmsmasters_post_timeline.has-post-thumbnail.format-video .cmsmasters_post_cont {
  padding: 0;
}
.cmsmasters_post_timeline.format-video .cmsmasters_post_category {
  padding: 0 0 20px;
}
/***************** Blog Post ******************/
.cmsmasters_open_post {
  padding: 0 0 18px;
  overflow: hidden;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_open_post .cmsmasters_img_wrap {
  text-align: left;
}
.cmsmasters_open_post .preloader {
  padding-bottom: 58.1%;
}
.cmsmasters_open_post .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_post .cmsmasters_post_content_wrap .share_posts {
  width: 185px;
  float: left;
}
.cmsmasters_open_post .cmsmasters_post_content_wrap .share_posts + .cmsmasters_post_content {
  padding-left: 4%;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_top {
  position: relative;
  overflow: hidden;
  padding-bottom: 20px;
  display: block;
  clear: both;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_top .cmsmasters_post_category {
  display: inline-block;
  width: 75%;
  margin: 0 20px 0 0;
  padding: 0;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_top .cmsmasters_post_cont_info_meta {
  position: relative;
  padding: 7px 0 0;
  margin: 0;
  float: right;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_top .cmsmasters_post_cont_info_meta > * {
  position: relative;
  display: inline-block;
  padding: 0 15px 0 0;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_top .cmsmasters_post_cont_info_meta > *:last-child {
  padding: 0;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_top .cmsmasters_post_cont_info_meta > *:last-child:before {
  content: none;
}
.cmsmasters_open_post .share_posts {
  padding: 0;
}
.cmsmasters_open_post .cmsmasters_post_header {
  padding: 0 0 20px;
}
.cmsmasters_open_post .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_bottom {
  position: relative;
  overflow: hidden;
  padding: 0 25px 0px 0;
  float: left;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_bottom .cmsmasters_post_cont_about_author {
  position: relative;
  overflow: hidden;
  padding: 0 0px 0 0;
  float: left;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_bottom .cmsmasters_post_cont_about_author + .cmsmasters_post_category {
  padding: 0 0 0 20px;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_bottom .cmsmasters_post_author {
  display: inline-block;
  margin: 0 15px 0px 0;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_bottom .cmsmasters_post_author_avatar {
  width: 40px;
  display: inline-block;
  vertical-align: middle;
  margin: 0 0px 0 0;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_bottom .cmsmasters_post_author_avatar img {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  width: 30px;
  display: block;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_bottom .cmsmasters_post_cont_about_author_info {
  position: relative;
  overflow: hidden;
  float: left;
}
.cmsmasters_open_post .cmsmasters_post_cont_info_bottom .share_posts {
  padding: 15px 0;
  float: right;
}
.cmsmasters_open_post .cmsmasters_video_wrap,
.cmsmasters_open_post .resizable_block {
  padding-bottom: 58.1%;
}
.cmsmasters_open_post > div:first-child {
  margin-top: 0;
}
.cmsmasters_open_post > .cmsmasters_img_wrap,
.cmsmasters_open_post .cmsmasters_owl_slider,
.cmsmasters_open_post .cmsmasters_video_wrap,
.cmsmasters_open_post .cmsmasters_audio {
  margin: 0 0 40px;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_audio .mejs-container {
  margin: 0;
}
.cmsmasters_open_post .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons {
  display: block;
}
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons > div {
  width: 56px;
  height: 56px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  display: block;
  overflow: hidden;
  background-color: rgba(0, 0, 0, 0.5);
  text-align: center;
}
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons > div > span {
  line-height: 56px;
  height: 56px;
  width: 100%;
}
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons > div.owl-prev {
  left: 15px;
  right: auto;
}
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons > div.owl-next {
  left: auto;
  right: 15px;
}
.cmsmasters_open_post .cmsmasters_post_cont_info {
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_cont_info > span {
  display: inline-block;
}
.cmsmasters_open_post .cmsmasters_post_date {
  display: inline-block;
}
.cmsmasters_open_post .cmsmasters_post_content {
  padding-bottom: 44px;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_open_post .cmsmasters_post_footer {
  clear: both;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_footer .cmsmasters_post_tags {
  display: block;
  position: relative;
  padding: 12px 0 0;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_footer .cmsmasters_post_tags > a {
  display: inline-block;
  margin: 0 0px 5px 20px;
  letter-spacing: -0.8px;
  text-align: center;
}
.cmsmasters_open_post .cmsmasters_post_footer .cmsmasters_post_tags > a::before {
  content: "#";
}
/*-------------------------------------------------------------------------*/
/*	Portfolio (Grid, Puzzle) + Article Styles */
/*-------------------------------------------------------------------------*/
/***************** Portfolio ******************/
.portfolio {
  position: relative;
}
.portfolio:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.portfolio .cmsmasters_project_grid .cmsmasters_img_rollover_wrap {
  position: relative;
}
.portfolio .cmsmasters_project_grid .cmsmasters_img_rollover_wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);
}
.portfolio .cmsmasters_project_grid,
.portfolio .cmsmasters_project_puzzle {
  min-width: 280px;
  float: left;
}
.portfolio .cmsmasters_project_grid .preloader,
.portfolio .cmsmasters_project_puzzle .preloader {
  padding-bottom: 74%;
}
.portfolio .cmsmasters_project_grid .preloader.highImg,
.portfolio .cmsmasters_project_puzzle .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.portfolio.large_gap {
  margin: 0 -10px;
  overflow: hidden;
}
.portfolio.large_gap .project {
  padding-left: 10px;
  padding-right: 10px;
  padding-bottom: 20px;
}
.portfolio.small_gap .project {
  overflow: visible;
}
.portfolio.small_gap .project .project_outer {
  padding-left: 0px;
  padding-right: 1px;
}
.portfolio.small_gap .project .project_outer .project_inner {
  right: 1px;
  top: auto;
  bottom: 1px;
}
.portfolio.small_gap .project .project_outer .cmsmasters_img_rollover_wrap {
  position: relative;
  top: -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 .project_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_date {
  padding: 20px 20px 0 0;
}
.cmsmasters_project_grid .cmsmasters_project_date::before {
  margin-right: 0.5em;
}
.cmsmasters_project_grid .project_outer_image_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_grid .project_outer_image_wrap.with_rollover .cmsmasters_img_rollover {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
  opacity: 0.6;
}
.cmsmasters_project_grid .project_outer_image_wrap.with_rollover .cmsmasters_img_rollover:before {
  content: '';
  width: 100%;
  height: 100%;
  z-index: 4;
  position: absolute;
  left: 0;
  top: 0;
  -webkit-box-shadow: inset 0px -106px 92px -35px #000000;
  -moz-box-shadow: inset 0px -106px 92px -35px #000000;
  box-shadow: inset 0px -106px 92px -35px #000000;
}
.cmsmasters_project_grid .project_outer_image_wrap.with_rollover:hover .cmsmasters_img_rollover {
  opacity: 0.7;
}
.cmsmasters_project_grid .project_outer_image_wrap.with_rollover:hover img {
  -webkit-transform: scale(1.05);
  -moz-transform: scale(1.05);
  transform: scale(1.05);
}
.cmsmasters_project_grid .project_outer_image_wrap_meta {
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 5;
  overflow: hidden;
}
.cmsmasters_project_grid .project_outer_image_wrap_meta_bottom {
  padding: 0 20px 18px;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_category {
  position: absolute;
  left: 20px;
  top: 20px;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_project_grid .cmsmasters_project_category a {
  margin: 2px 2px 0 0;
  display: block;
  padding: 0 16px;
  float: left;
}
.cmsmasters_project_grid .cmsmasters_project_header {
  padding: 0;
  margin: 0px 0 0;
}
.cmsmasters_project_grid .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_project_grid .cmsmasters_project_header .cmsmasters_project_title a:hover {
  opacity: 0.7;
}
.cmsmasters_project_grid .project_outer_image_wrap + .project_inner {
  margin: 16px 0 0;
}
.cmsmasters_project_grid .project_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_content {
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_project_grid .cmsmasters_project_footer {
  padding: 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_footer > * {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  padding: 0 24px 0 0;
}
.cmsmasters_project_grid .cmsmasters_project_footer > *:last-child {
  padding: 0;
}
.cmsmasters_project_grid .cmsmasters_project_footer > *:last-child:before {
  content: none;
}
/***************** Portfolio Puzzle ******************/
.cmsmasters_project_puzzle {
  position: relative;
}
.cmsmasters_project_puzzle .project_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_puzzle .project_outer.with_rollover .project_inner {
  display: block;
}
.cmsmasters_project_puzzle .project_outer.with_rollover .project_inner:before {
  content: '';
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 1;
}
.cmsmasters_project_puzzle .project_outer.with_rollover:hover .project_inner {
  opacity: 1;
}
.cmsmasters_project_puzzle .project_inner {
  padding: 30px 30px 20px;
  position: absolute;
  top: 0;
  left: 0px;
  right: 0px;
  height: 100%;
  text-align: center;
  display: none;
}
.cmsmasters_project_puzzle .project_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_project_puzzle .project_inner .project_inner_aligner {
  width: 100%;
  height: 100%;
  display: inline-block;
  position: relative;
  vertical-align: middle;
  overflow: hidden;
}
.cmsmasters_project_puzzle .cmsmasters_project_meta {
  position: relative;
  margin: 0 0 8px;
  overflow: hidden;
}
.cmsmasters_project_puzzle .cmsmasters_project_meta > * {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  padding: 0 24px 0 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_meta > *:last-child {
  padding: 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_meta > *:last-child:before {
  content: none;
}
.cmsmasters_project_puzzle .cmsmasters_project_category {
  display: block;
  position: relative;
  margin: 0 0 10px;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_project_puzzle .cmsmasters_project_category a {
  clear: none;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_project_puzzle .cmsmasters_project_header {
  padding: 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_date {
  padding-right: 20px;
}
.cmsmasters_project_puzzle .cmsmasters_project_date::before {
  margin-right: 0.5em;
}
.cmsmasters_project_puzzle .cmsmasters_project_interface_wrap {
  padding-bottom: 10px;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer {
  position: absolute;
  left: 0;
  bottom: 0;
}
/***************** Portfolio Open Article ******************/
.cmsmasters_open_project {
  padding: 0 ;
  margin: 0 0 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .preloader {
  padding-bottom: 48.2%;
}
.cmsmasters_open_project .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_project .cmsmasters_video_wrap,
.cmsmasters_open_project .resizable_block {
  padding-bottom: 48.2%;
}
.cmsmasters_open_project .owl-pagination {
  width: auto;
  position: absolute;
  left: auto;
  right: 10px;
  top: 10px;
  bottom: auto;
}
.cmsmasters_open_project .cmsmasters_project_header {
  padding: 0 0 30px;
  text-align: left;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_open_project .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_open_project .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons {
  display: block;
}
.cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons > div {
  width: 56px;
  height: 56px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  display: block;
  overflow: hidden;
}
.cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons > div.owl-prev {
  left: 15px;
  right: auto;
}
.cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons > div.owl-next {
  left: auto;
  right: 15px;
}
.cmsmasters_open_project .project_content {
  width: 100%;
  padding: 14px 0 0;
  overflow: hidden;
}
.cmsmasters_open_project .project_content.with_sidebar {
  width: 72%;
  float: left;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row {
  margin: 0 -1.4%;
  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.8%;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_third .preloader,
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_half .preloader {
  padding-bottom: 74%;
}
.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 .cmsmasters_img_wrap {
  margin-bottom: 40px;
  overflow: hidden;
}
.cmsmasters_open_project .cmsmasters_project_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .project_sidebar {
  width: 28%;
  padding: 14px 0 0 40px;
  float: right;
}
.cmsmasters_open_project .project_details,
.cmsmasters_open_project .project_features {
  padding: 0 0 28px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .project_details > div,
.cmsmasters_open_project .project_features > div {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_open_project .project_details > div:last-child,
.cmsmasters_open_project .project_features > div:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_open_project .project_details_title,
.cmsmasters_open_project .project_features_title {
  margin: 0 0 18px;
}
.cmsmasters_open_project .project_details_title span,
.cmsmasters_open_project .project_features_title span {
  display: inline;
}
.cmsmasters_open_project .project_details_item,
.cmsmasters_open_project .project_features_item {
  padding: 10px 0;
  position: relative;
  overflow: hidden;
}
.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;
}
#page .cmsmasters_open_project .project_details_item_desc .cmsmasters_project_category a,
#page .cmsmasters_open_project .project_features_item_desc .cmsmasters_project_category a {
  background: transparent;
  display: inline-block;
  padding: 0;
  float: none;
  vertical-align: middle;
  margin: 0;
}
.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 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_posts_slider.cmsmasters_control.cmsmasters_slide_post {
  padding: 70px 0 0;
}
.cmsmasters_posts_slider .owl-buttons {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.cmsmasters_slide_nav.cmsmasters_posts_slider .owl-buttons {
  top: -70px;
  left: auto;
  right: 20px;
  bottom: auto;
  height: auto;
  width: auto;
}
.cmsmasters_slide_nav.cmsmasters_posts_slider .owl-buttons > div > span {
  position: relative;
}
.cmsmasters_posts_slider .owl-buttons > div {
  position: static;
  pointer-events: auto;
}
.cmsmasters_posts_slider .owl-buttons > div > span {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 28px;
  height: 28px;
}
.cmsmasters_slide_project.cmsmasters_posts_slider .owl-buttons > div > span {
  width: 50px;
  height: 50px;
}
.cmsmasters_posts_slider .owl-buttons > div > span.cmsmasters_next_arrow {
  left: auto;
  right: 0;
}
.cmsmasters_posts_slider .preloader {
  padding-bottom: 68%;
}
.cmsmasters_posts_slider .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_posts_slider .cmsmasters_owl_slider {
  padding: 0px 0 0;
}
.cmsmasters_posts_slider .cmsmasters_owl_slider_item {
  min-width: 250px;
  max-width: 100%;
}
.cmsmasters_posts_slider .cmsmasters_slider_post,
.cmsmasters_posts_slider .cmsmasters_slider_project {
  width: 100%;
  padding: 0 0 0px;
}
.cmsmasters_posts_slider .cmsmasters_slider_post {
  width: 100%;
}
/***************** Posts Slider Blog ******************/
.cmsmasters_posts_slider.cmsmasters_slide_post .cmsmasters_owl_slider {
  width: auto;
  margin: 0px -20px;
}
.cmsmasters_slider_post {
  position: relative;
}
.cmsmasters_slider_post .cmsmasters_slider_post_outer {
  position: relative;
  padding: 0 20px;
  display: block;
  clear: both;
}
.cmsmasters_slider_post .cmsmasters_slider_post_outer.image_check {
  padding: 0 30px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_outer.image_check::before {
  content: "";
  position: absolute;
  top: 0;
  right: -2px;
  height: 100%;
  width: auto;
  border-right-width: 1px;
  border-right-style: solid;
  border-color: inherit;
}
.cmsmasters_slider_post .cmsmasters_slider_post_img_wrap {
  margin: 0 0 15px;
  position: relative;
  display: block;
  width: 100%;
}
.cmsmasters_slider_post .cmsmasters_slider_post_img_wrap .cmsmasters_slider_post_category {
  position: absolute;
  padding: 0;
  width: auto;
  left: auto;
  left: 20px;
  top: 20px;
  z-index: 10;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_img_wrap .cmsmasters_slider_post_category .cmsmasters_cat_color {
  text-align: center;
  overflow: hidden;
  float: left;
  display: block;
  clear: both;
}
.cmsmasters_slider_post .cmsmasters_slider_post_category {
  display: block;
}
.cmsmasters_slider_post .cmsmasters_slider_post_category:after {
  content: "";
  display: table;
  clear: both;
}
.cmsmasters_slider_post .cmsmasters_img_rollover_wrap {
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_img_rollover_wrap:hover img {
  -webkit-transform: scale(1.05);
  -moz-transform: scale(1.05);
  transform: scale(1.05);
}
.cmsmasters_slider_post .cmsmasters_slider_post_inner {
  padding: 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date {
  display: block;
  padding: 0 0 10px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date::before {
  margin-left: 0em;
  margin-right: 0.5em;
  font-size: 12px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_header {
  padding: 0 0 10px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_header .cmsmasters_slider_post_title {
  margin: 0;
  -ms-word-wrap: break-word;
  word-wrap: break-word;
}
.cmsmasters_slider_post .cmsmasters_slider_post_content {
  padding: 0 0 20px;
  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_footer {
  padding: 0px 0 20px;
  position: relative;
  text-align: right;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer .cmsmasters_slider_post_author {
  float: left;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer > * {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  padding: 0 15px 0 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer > *:last-child {
  padding: 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer > *:last-child:before {
  content: none;
}
/***************** 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_inner_wrap {
  opacity: 1;
}
.cmsmasters_slider_project .cmsmasters_slider_project_inner_wrap {
  padding: 30px 30px 20px;
  z-index: 10;
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_inner_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_slider_project .cmsmasters_slider_project_inner {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_meta {
  position: absolute;
  left: 0;
  bottom: 0;
  margin: 0 0 0px;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_meta > span {
  position: relative;
  display: inline-block;
  padding: 0 0 0 20px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_meta > span:last-child {
  padding: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_meta > span:last-child:before {
  content: none;
}
.cmsmasters_slider_project .cmsmasters_project_date {
  padding: 0 15px 0 0;
}
.cmsmasters_slider_project .cmsmasters_project_date::before {
  font-size: 14px;
  margin: 0 5px 0 1px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_cont_info {
  margin: 0 0 8px;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_cont_info .cmsmasters_slider_project_category {
  display: block;
}
.cmsmasters_slider_project .cmsmasters_slider_project_cont_info .cmsmasters_slider_project_category > a {
  float: none;
  display: inline-block;
  padding: 0 10px;
  margin: 0 3px 0 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_interface {
  padding: 0 0 5px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_header {
  padding: 0;
  margin: 0 0 0px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_header .cmsmasters_slider_project_title {
  margin: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_header .cmsmasters_slider_project_title a {
  display: block;
}
.cmsmasters_slider_project .cmsmasters_slider_project_content {
  padding: 0 0 15px;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_content p {
  margin: 0;
  padding: 0;
}
/*-------------------------------------------------------------------------*/
/*	Profiles + Profile Styles */
/*-------------------------------------------------------------------------*/
/***************** Profiles ******************/
.cmsmasters_profile {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile.horizontal {
  margin: -40px -1.4% 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;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_profile_horizontal .profile_image_wrap {
  position: relative;
  overflow: hidden;
  display: inline-block;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap {
  display: block;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap img {
  width: 220px;
  max-width: 100%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_subtitle {
  display: inline-block;
  padding: 0 33px 0px;
  margin: 0 0 15px;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_subtitle:only-child {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap + .profile_inner {
  padding: 25px 0 0;
}
.cmsmasters_profile_horizontal .profile_inner {
  position: relative;
  padding: 15px 0 0;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header {
  padding: 0 0 5px;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header .cmsmasters_profile_subtitle {
  margin: 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_content {
  position: relative;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_horizontal .profile_social_icons {
  position: relative;
  padding: 15px 0 0;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_profile_horizontal .profile_social_icons_list {
  list-style: none;
  display: block;
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_horizontal .profile_social_icons_list li {
  display: inline-block;
  vertical-align: middle;
  margin: 0 12px 0 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: 16px;
  line-height: 16px;
  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;
}
/***************** Profiles Vertical ******************/
.cmsmasters_profile_vertical {
  margin: 0 0 60px;
  padding: 0;
  position: relative;
}
.cmsmasters_profile_vertical:last-child {
  margin: 0;
}
.cmsmasters_profile_vertical .profile_outer {
  padding: 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_vertical .cmsmasters_profile_subtitle {
  display: inline-block;
  padding: 0 18px;
  margin: 10px 0 0;
}
.cmsmasters_profile_vertical .profile_image_wrap {
  position: relative;
  display: inline-block;
  width: 30%;
  padding: 0 5%;
  float: left;
  overflow: hidden;
}
.cmsmasters_profile_vertical .profile_image_wrap + .profile_inner {
  padding: 0 0 0 2.5%;
}
.cmsmasters_profile_vertical .profile_image_wrap .cmsmasters_profile_subtitle {
  margin: 0;
  position: absolute;
  top: 15px;
  bottom: auto;
  right: 40px;
  left: auto;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap {
  display: inline-block;
  width: 100%;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap img {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile_vertical .profile_inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.cmsmasters_profile_vertical .profile_image_wrap + .profile_inner {
  width: 70%;
  float: left;
}
.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;
  vertical-align: middle;
  margin: 0 12px 0 0;
  padding: 0;
  position: relative;
}
.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;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header {
  padding: 0;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_profile_vertical .cmsmasters_profile_content {
  position: relative;
  margin-top: 12px;
  word-wrap: break-word;
  overflow: hidden;
}
.cmsmasters_profile_vertical .cmsmasters_profile_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_vertical .profile_social_icons {
  position: relative;
  padding: 0 0 0 20px;
  overflow: hidden;
  float: right;
}
/***************** Profiles Open Profile ******************/
.cmsmasters_open_profile {
  margin: 0 0 40px;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .cmsmasters_profile_header {
  padding: 0;
  text-align: left;
  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: -5px 0 0;
}
.cmsmasters_open_profile .profile_content {
  width: 100%;
  padding: 35px 0 0;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_content.with_sidebar {
  width: 72%;
  float: left;
}
.cmsmasters_open_profile .cmsmasters_profile_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .cmsmasters_profile_content .cmsmasters_row:last-of-type .cmsmasters_row_outer_parent {
  padding-bottom: 0 !important;
}
.cmsmasters_open_profile .profile_sidebar {
  width: 28%;
  padding: 35px 0 0 40px;
  float: right;
}
.cmsmasters_open_profile .profile_details,
.cmsmasters_open_profile .profile_features {
  padding: 0 0 28px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details > div,
.cmsmasters_open_profile .profile_features > div {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_open_profile .profile_details > div:last-child,
.cmsmasters_open_profile .profile_features > div:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_open_profile .profile_details_title,
.cmsmasters_open_profile .profile_features_title {
  margin: 0 0 18px;
}
.cmsmasters_open_profile .profile_details_title span,
.cmsmasters_open_profile .profile_features_title span {
  display: inline;
}
.cmsmasters_open_profile .profile_details_item,
.cmsmasters_open_profile .profile_features_item {
  padding: 7px 0;
  position: relative;
  overflow: hidden;
}
.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;
}
#page .cmsmasters_open_profile .profile_details_item_desc .cmsmasters_profile_category a,
#page .cmsmasters_open_profile .profile_features_item_desc .cmsmasters_profile_category a {
  background: transparent;
  display: inline-block;
  float: none;
  padding: 0;
  margin: 0;
  vertical-align: middle;
}
.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: 0 0 36px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_social_icons_title {
  margin: 0 0 34px;
}
.cmsmasters_open_profile .profile_social_icons_title span {
  display: inline;
}
.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;
  margin: 0 8px 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 {
  position: relative;
  font-size: 18px;
  line-height: 18px;
}
.cmsmasters_open_profile .share_posts,
.cmsmasters_open_project .share_posts {
  padding: 0px 0 0;
}
.cmsmasters_open_profile .share_posts a,
.cmsmasters_open_project .share_posts a {
  width: 35px;
  height: 35px;
  line-height: 35px;
}
/*-------------------------------------------------------------------------*/
/*	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.4% 40px;
  width: 97.2%;
}
.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;
  display: block;
  clear: both;
}
.cmsmasters_heading_wrap .button {
  margin-bottom: 20px;
  float: right;
}
.cmsmasters_heading_wrap.cmsmasters_heading_align_right .button {
  float: left;
}
.cmsmasters_heading_wrap.cmsmasters_heading_align_center .cmsmasters_heading {
  vertical-align: middle;
}
.cmsmasters_heading_wrap.cmsmasters_heading_align_center .button {
  display: inline-block;
  vertical-align: middle;
  float: none;
}
.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_longbottom .cmsmasters_heading {
  padding-bottom: 14px;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_longbottom .cmsmasters_heading_divider {
  width: 100%;
  top: auto;
  bottom: 0;
  left: 0;
  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;
  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%;
  padding: 20px 20px 0;
  position: relative;
  overflow: hidden;
}
/***************** Table ******************/
.cmsmasters_table {
  width: 100%;
}
.cmsmasters_table caption {
  outline: none;
}
.cmsmasters_table tr td,
.cmsmasters_table tr th {
  padding: 12px 28px;
}
.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;
}
.cmsmasters_table thead tr td,
.cmsmasters_table thead tr th {
  padding-top: 20px;
  padding-bottom: 20px;
}
.cmsmasters_table tfoot tr td,
.cmsmasters_table tfoot tr th {
  padding-top: 20px;
  padding-bottom: 20px;
}
/***************** Notice ******************/
.cmsmasters_notice {
  display: block;
  width: 100%;
  padding: 0 20px;
  margin-bottom: 30px;
  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: 28px;
}
.cmsmasters_notice:before {
  font-size: 32px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 28px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_notice .notice_content {
  position: relative;
  padding: 22px 0 0;
}
.cmsmasters_notice .notice_content p {
  padding-bottom: 22px;
}
.cmsmasters_notice .notice_close {
  font-size: 8px;
  line-height: 8px;
  display: block;
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -15px;
  top: -15px;
  bottom: auto;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  border-width: 1px;
  border-style: solid;
}
.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_success {
  background-color: #fdfff9;
  border-color: #8bc34a;
}
.cmsmasters_notice.cmsmasters_notice_success:before {
  color: #8bc34a;
}
.cmsmasters_notice.cmsmasters_notice_error {
  background-color: #fffdfd;
  border-color: #ea5151;
}
.cmsmasters_notice.cmsmasters_notice_error:before {
  color: #ea5151;
}
.cmsmasters_notice.cmsmasters_notice_info {
  background-color: #fafcff;
  border-color: #6e95d1;
}
.cmsmasters_notice.cmsmasters_notice_info:before {
  color: #6e95d1;
}
.cmsmasters_notice.cmsmasters_notice_warning {
  background-color: #fffdf9;
  border-color: #fdb543;
}
.cmsmasters_notice.cmsmasters_notice_warning:before {
  color: #fdb543;
}
.cmsmasters_notice.cmsmasters_notice_download {
  background-color: #f9fffa;
  border-color: #63b698;
}
.cmsmasters_notice.cmsmasters_notice_download:before {
  color: #63b698;
}
/***************** 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;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item:before {
  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:before {
  left: -32px;
}
.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: 1;
}
.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;
  display: block;
  clear: both;
  overflow: hidden;
}
.cmsmasters_toggles .cmsmasters_toggles_filter a {
  display: block;
  cursor: pointer;
  margin: 0 5px 5px 0;
  padding: 5px 15px;
  float: left;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_toggles .cmsmasters_toggles_filter a.current_filter {
  cursor: default;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle .cmsmasters_toggle_plus:before {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.cmsmasters_toggles .cmsmasters_toggle_title {
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_toggles .cmsmasters_toggle_title a {
  padding: 14px 40px 14px 20px;
  display: block;
  position: relative;
  z-index: 2;
}
.cmsmasters_toggles .cmsmasters_toggle_plus {
  display: block;
  z-index: 1;
  width: 16px;
  height: 16px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  font-size: 20px;
  line-height: 20px;
  text-align: center;
}
.cmsmasters_toggles .cmsmasters_toggle_plus:before {
  content: '\e951';
  font-family: 'fontello';
  display: block;
}
.cmsmasters_toggles .cmsmasters_toggle_plus span {
  display: none;
}
.cmsmasters_toggles .cmsmasters_toggle {
  display: none;
}
.cmsmasters_toggles .cmsmasters_toggle_inner {
  position: relative;
  padding: 22px 20px 20px;
  overflow: hidden;
}
.cmsmasters_toggles .cmsmasters_toggle_inner > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle > .cmsmasters_toggle {
  display: block;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_wrap:last-child .cmsmasters_toggle_title,
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_wrap.current_toggle .cmsmasters_toggle_title {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_title {
  border-width: 1px;
  border-style: solid;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_plus {
  left: auto;
  right: 20px;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_plus {
  left: auto;
  right: 20px;
}
/***************** Tabs ******************/
.cmsmasters_tabs {
  position: relative;
}
.cmsmasters_tabs:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_list {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  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;
  width: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
}
.tabs_pos_left.cmsmasters_tabs .cmsmasters_tabs_list_item {
  text-align: left;
}
.tabs_pos_right.cmsmasters_tabs .cmsmasters_tabs_list_item {
  text-align: right;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item:before {
  display: none;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a {
  padding: 7px 0px;
  position: relative;
  cursor: pointer;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a > span {
  display: inline-block;
  margin-bottom: -3px;
  border-bottom-width: 3px;
  border-bottom-style: solid;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.cmsmasters_tabs .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  padding: 5px 15px;
  display: inline-block;
  text-align: center;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a:before {
  font-size: 17px;
  line-height: 20px;
  margin: 0 .5em;
  vertical-align: middle;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item.current_tab a,
.cmsmasters_tabs .cmsmasters_tabs_list_item:hover a {
  outline: none;
}
.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_item {
  display: inline-block;
  margin: 0 14px 14px 0;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item:last-child {
  margin: 0;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tab_inner {
  padding: 0;
}
.cmsmasters_tabs.tabs_mode_tour {
  display: table;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list {
  display: table-cell;
  width: 25%;
  vertical-align: top;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item {
  margin: 0;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item a {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_wrap {
  display: table-cell;
  width: 75%;
  vertical-align: top;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tab_inner {
  padding: 0 0 0 38px;
}
.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 a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  padding: 7px 20px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a:before {
  float: right;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_wrap {
  direction: ltr;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tab_inner {
  padding: 0 38px 0 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 .cmsmasters_stat_container {
  width: 100%;
  height: 220px;
  margin: 0 0 20px;
  position: relative;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat {
  width: 0;
  overflow: hidden;
}
.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: 20px;
  margin: 0;
  position: absolute;
  left: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title {
  position: absolute;
  left: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  position: absolute;
  left: auto;
  right: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat canvas {
  display: none;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical {
  margin: 0 -1.4%;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat {
  width: 70%;
  height: 0;
  position: absolute;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  height: 100%;
  text-align: center;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before {
  font-size: 40px;
  line-height: 40px;
  display: inline-block;
  vertical-align: middle;
  position: static;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title_counter_wrap {
  width: 100%;
  padding: 0 0 13px;
  position: absolute;
  left: 0;
  bottom: 100%;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title {
  display: block;
  padding: 0 10px 0 0;
  position: static;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  float: none;
  position: absolute;
  top: -34px;
  left: 0;
  right: auto;
  text-align: left;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap:before {
  font-size: 20px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap:before,
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap * {
  margin: 0;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: block;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap {
  padding-bottom: 15px;
  position: relative;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap:last-child {
  padding-bottom: 0;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap:before {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  top: 45px;
  left: 0;
  -webkit-border-radius: 0px;
  border-radius: 0px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat {
  min-height: 46px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  width: 100%;
  height: 3px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  left: auto;
  right: 0;
  top: auto;
  bottom: 8px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title {
  left: 0;
  top: auto;
  bottom: 8px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters-icon-"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters-icon-"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters_theme_icon_"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters_theme_icon_"] .cmsmasters_stat_title {
  left: 30px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: inline-block;
  padding: 20px 0 5px;
}
.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: 178px;
  height: 178px;
  margin: 0 0 14px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  width: 176px;
  height: 176px;
  padding-top: 60px;
  position: absolute;
  left: 1px;
  top: 1px;
  z-index: 2;
  text-align: center;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  border-width: 4px;
  border-style: solid;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before {
  font-size: 38px;
  line-height: 38px;
}
.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: 178px;
  height: 178px;
  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: 48px;
}
.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: 10px 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 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner {
  display: block;
  margin: 20px 0 0;
  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_title_wrap {
  display: block;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  display: block;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap {
  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;
  padding-bottom: 20px;
  margin-top: -2px;
}
.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: 0;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  padding: 7px 0 0;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter_subtitle {
  display: block;
  text-align: center;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  margin: auto !important;
  left: 0;
  right: auto;
  top: 0;
  bottom: auto;
}
.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_title_wrap {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_subtitle {
  margin-top: -5px;
}
/***************** CMSMASTERS Button ******************/
.cmsmasters_button {
  display: inline-block;
  padding: 0 25px;
  cursor: pointer;
  position: relative;
  -webkit-border-radius: 0px;
  border-radius: 0px;
  white-space: nowrap;
}
.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: 0px;
  border-radius: 0px;
  -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%;
}
/***************** 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 58.1%;
  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.9;
}
.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.9;
}
.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 {
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_content_slider img {
  width: 100%;
}
.cmsmasters_content_slider .owl-buttons {
  display: block;
}
.cmsmasters_content_slider .owl-buttons > div {
  width: 56px;
  height: 56px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  display: block;
  overflow: hidden;
}
.cmsmasters_content_slider .owl-buttons > div.owl-prev {
  left: 1px;
  right: auto;
}
.cmsmasters_content_slider .owl-buttons > div.owl-next {
  left: auto;
  right: 1px;
}
.cmsmasters_content_slider .owl-pagination {
  bottom: 15px;
}
/***************** 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: 20px 20px 15px;
}
.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: 0 30px 50px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider .owl-buttons > div {
  z-index: 10;
  display: block;
  width: 25px;
  height: 25px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  padding-right: 1px;
  opacity: 0;
}
.cmsmasters_quotes_slider .owl-buttons > div > span {
  font-family: "fontello-custom";
  font-size: 25px;
  line-height: 25px;
  background: none;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_quotes_slider .owl-buttons > div.owl-prev {
  left: 1px;
}
.cmsmasters_quotes_slider .owl-buttons > div.owl-prev span:before {
  content: '\e80b';
}
.cmsmasters_quotes_slider .owl-buttons > div.owl-next {
  right: 1px;
}
.cmsmasters_quotes_slider .owl-buttons > div.owl-next span:before {
  content: '\e80c';
}
.cmsmasters_quotes_slider:hover .owl-buttons > div {
  opacity: 1;
}
.cmsmasters_quotes_slider .cmsmasters_quote {
  position: relative;
  padding: 0 0;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_image {
  margin: 0 0 22px;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_image img {
  width: 118px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_slider .cmsmasters_quote_image.cmsmasters_quote_placeholder {
  display: block;
  position: relative;
  width: 110px;
  height: 110px;
  font-size: 120px;
  line-height: 120px;
  font-style: italic;
  margin: 0 auto;
  background: orange;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_slider .cmsmasters_quote_image.cmsmasters_quote_placeholder:before {
  content: '\0022';
  width: 40px;
  height: 40px;
  margin: auto !important;
  position: absolute;
  left: -0.33em;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_quotes_slider .cmsmasters_quote_header {
  padding: 0;
  margin: 32px 0 0;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_title {
  margin: 0;
  text-align: center;
}
.cmsmasters_quotes_slider .cmsmasters_quote_subtitle_wrap {
  margin-top: -2px;
  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: '\002D';
  display: inline-block;
  margin: 0 4px;
}
.cmsmasters_quotes_slider .cmsmasters_quote_content {
  padding: 20px 10% 0;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_quotes_grid {
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_vert {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  z-index: 1;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  display: block;
  width: 1px;
  height: 100%;
  position: absolute;
  top: 0;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before {
  left: 25%;
  right: auto;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  left: 75%;
  right: auto;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  left: 50%;
  right: auto;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before {
  left: 33.33%;
  right: auto;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  left: 66.66%;
  right: auto;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  display: none;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before,
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  content: none;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  left: 50%;
  right: auto;
}
.quote_one.cmsmasters_quotes_grid .cmsmasters_quotes_vert {
  display: none;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list {
  position: relative;
  margin: 0 -1.05%;
  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: 20px;
}
.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 97.9%;
  position: relative;
  margin: 1.05%;
  float: left;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 22.9%;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 31.23%;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 47.9%;
}
.quote_one.cmsmasters_quotes_grid .cmsmasters_quote {
  float: none;
  margin-bottom: 2.1%;
}
.cmsmasters_quotes_grid .cmsmasters_quote_inner {
  padding: 24px 11% 30px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap {
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap {
  padding: 0;
}
.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,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_image {
  padding: 0 0 20px;
  display: block;
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_image img {
  width: 68px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap {
  display: inline-block;
  vertical-align: middle;
  padding: 0;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap {
  display: block;
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_image + .cmsmasters_quote_info_wrap {
  padding: 0;
}
.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 {
  margin-top: -4px;
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_subtitle_wrap,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_subtitle_wrap {
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_subtitle {
  display: inline-block;
  margin: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_site {
  display: inline-block;
}
.cmsmasters_quotes_grid .cmsmasters_quote_subtitle + .cmsmasters_quote_site:before {
  content: '\002D';
  display: inline-block;
  margin: 0 4px;
}
.cmsmasters_quotes_grid .cmsmasters_quote_content {
  margin: 0;
  position: relative;
  padding: 0 0 24px 0;
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_content,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_content {
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
/***************** Pricing tables ******************/
.cmsmasters_pricing_table {
  margin: 0 -10px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item {
  display: block;
  padding: 0 10px 20px;
  position: relative;
  float: left;
  overflow: hidden;
}
.pricing_four.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 25%;
}
.pricing_three.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 33.33%;
}
.pricing_two.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 50%;
}
.pricing_one.cmsmasters_pricing_table .cmsmasters_pricing_item {
  float: none;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item_inner {
  position: relative;
  border-width: 1px;
  border-style: solid;
  border-bottom-width: 0;
  border-bottom-style: solid;
  display: block;
  clear: both;
}
.cmsmasters_pricing_table .cmsmasters_pricing_info_wrap {
  padding: 30px 10px 25px;
  overflow: hidden;
}
.cmsmasters_pricing_table .pricing_title {
  margin: 0;
  padding: 20px 42px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pricing_table .cmsmasters_price_wrap {
  padding: 40px 42px 42px;
  overflow: hidden;
  display: block;
  clear: both;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pricing_table .cmsmasters_price_wrap span {
  float: left;
}
.cmsmasters_pricing_table .cmsmasters_price {
  display: inline-block;
}
.cmsmasters_pricing_table .cmsmasters_period {
  margin-top: 4px;
  display: block;
}
.cmsmasters_pricing_table .feature_list {
  list-style: none;
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pricing_table .feature_list li {
  margin: 0;
  padding: 10px 42px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pricing_table .feature_list li:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_pricing_table .feature_list li:before {
  content: none;
}
.cmsmasters_pricing_table .cmsmasters_pricing_but_wrap {
  padding: 30px 42px;
  position: relative;
  overflow: hidden;
  display: block;
  clear: both;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pricing_table .cmsmasters_button {
  overflow: hidden;
  float: left;
}
.cmsmasters_pricing_table .pricing_best .cmsmasters_price_wrap {
  margin: 0 -1px;
}
/***************** 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: 20px 20px 0 20px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_img .cmsmasters_img_caption {
  padding: 15px 0;
  text-align: center;
}
.wp-caption {
  max-width: 100%;
  padding: 16px 16px 0;
  margin-bottom: 20px;
  overflow: hidden;
  border-width: 1px;
  border-style: solid;
}
.wp-caption.aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.wp-caption.alignleft {
  margin-right: 25px;
}
.wp-caption.alignright {
  margin-left: 25px;
}
.wp-caption > a {
  display: block;
}
.wp-caption .wp-caption-text {
  padding: 16px 0;
  text-align: center;
}
/***************** WP Gallery ******************/
.gallery {
  position: relative;
  margin: 0 -1.4% 20px;
}
.gallery img {
  width: 100%;
  border: none;
}
.gallery .gallery-item {
  position: relative;
  float: left;
  margin: 0 1.4% 20px;
}
.gallery .gallery-item .wp-caption-text {
  padding: 5px;
  text-align: center;
}
.gallery.gallery-columns-1 .gallery-item {
  width: 97.2%;
  position: relative;
  float: none;
  display: block;
  clear: both;
}
.gallery.gallery-columns-2 .gallery-item {
  width: 47.2%;
}
.gallery.gallery-columns-2 .gallery-item:nth-child(2n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-3 .gallery-item {
  width: 30.533%;
}
.gallery.gallery-columns-3 .gallery-item:nth-child(3n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-4 .gallery-item {
  width: 22.2%;
}
.gallery.gallery-columns-4 .gallery-item:nth-child(4n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-5 .gallery-item {
  width: 17.2%;
}
.gallery.gallery-columns-5 .gallery-item:nth-child(5n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-6 .gallery-item {
  width: 13.867%;
}
.gallery.gallery-columns-6 .gallery-item:nth-child(6n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-7 .gallery-item {
  width: 11.486%;
}
.gallery.gallery-columns-7 .gallery-item:nth-child(7n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-8 .gallery-item {
  width: 9.7%;
}
.gallery.gallery-columns-8 .gallery-item:nth-child(8n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-9 .gallery-item {
  width: 8.311%;
}
.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 {
  padding: 16px 20px;
}
/***************** Sidebar ******************/
.cmsmasters_sidebar {
  margin: 0 -1.4%;
}
.cmsmasters_sidebar aside {
  margin: 0 1.4%;
  float: left;
}
.sidebar_layout_14141414 aside {
  width: 22.2%;
}
.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.2%;
}
.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.2%;
}
.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.2%;
}
.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.2%;
}
.sidebar_layout_121414 > aside:first-child,
.sidebar_layout_121414 > div.cl + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside {
  width: 47.2%;
}
.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.2%;
}
.sidebar_layout_131313 aside {
  width: 30.53%;
}
.sidebar_layout_3414 > aside:first-child,
.sidebar_layout_3414 > div.cl + aside,
.sidebar_layout_3414 > div.cmsmasters_widget_divider + aside {
  width: 72.2%;
}
.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.2%;
}
.sidebar_layout_1434 > aside:first-child,
.sidebar_layout_1434 > div.cl + aside,
.sidebar_layout_1434 > div.cmsmasters_widget_divider + aside {
  width: 22.2%;
}
.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.2%;
}
.sidebar_layout_2313 > aside:first-child,
.sidebar_layout_2313 > div.cl + aside,
.sidebar_layout_2313 > div.cmsmasters_widget_divider + aside {
  width: 63.87%;
}
.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.53%;
}
.sidebar_layout_1323 > aside:first-child,
.sidebar_layout_1323 > div.cl + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside {
  width: 30.53%;
}
.sidebar_layout_1323 > aside:first-child + aside,
.sidebar_layout_1323 > div.cl + aside + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside + aside {
  width: 63.87%;
}
.sidebar_layout_1212 aside {
  width: 47.2%;
}
.sidebar_layout_11 aside {
  width: 97.2%;
}
/***************** Share ******************/
.cmsmasters_sharing {
  overflow: hidden;
}
.share_wrap {
  float: left;
  margin-bottom: 20px;
  margin-right: 20px;
}
.share_wrap:last-child {
  margin-right: 0;
}
.social_vertical .share_wrap {
  float: none;
  margin-right: 0;
}
/***************** Twitter Stripe ******************/
.cmsmasters_twitter_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_twitter_wrap .owl-pagination {
  visibility: hidden;
  display: none;
}
.cmsmasters_twitter_wrap .owl-buttons {
  width: 60px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_twitter_wrap .owl-buttons > div {
  margin: 0 -1px;
}
.cmsmasters_twitter_wrap .owl-buttons span {
  width: 30px;
  height: 40px;
}
.cmsmasters_twitter_wrap .owl-buttons span:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_twitter_wrap .twr_icon {
  font-size: 22px;
  line-height: 22px;
  display: block;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_twitter_wrap .twr_icon:before {
  margin: 0 !important;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter {
  position: relative;
  padding: 0 85px 0 30px;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter_item {
  padding: 9px 80px 9px 150px;
  position: relative;
}
.cmsmasters_twitter_wrap .published {
  padding: 0;
  width: 110px;
  height: 20px;
  margin: auto !important;
  position: absolute;
  left: 25px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter_item_content {
  display: block;
}
/***************** Dropcap ******************/
.cmsmasters_dropcap {
  margin: 5px 26px 5px 22px;
  line-height: 62px;
  float: left;
}
.cmsmasters_dropcap.type2 {
  width: 62px;
  height: 62px;
  line-height: 56px;
  margin: 0px 20px 5px 5px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  text-align: center;
  border-width: 1px;
  border-style: solid;
}
/***************** Clients ******************/
.cmsmasters_clients_slider_wrap {
  padding: 0 36px;
}
.cmsmasters_clients_slider {
  margin: 0;
  padding: 25px 0;
}
.cmsmasters_clients_slider.enable_slides_control {
  padding-bottom: 25px;
}
.cmsmasters_clients_slider.enable_arrow_control {
  padding-top: 55px;
}
.cmsmasters_clients_slider .cmsmasters_owl_slider_item {
  min-width: 170px;
}
.cmsmasters_clients_slider .owl-buttons {
  display: block;
}
.cmsmasters_clients_slider .owl-buttons > div {
  width: 56px;
  height: 56px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  display: block;
  overflow: hidden;
}
.cmsmasters_clients_slider .owl-buttons > div.owl-prev {
  left: -56px;
  right: auto;
}
.cmsmasters_clients_slider .owl-buttons > div.owl-next {
  left: auto;
  right: -56px;
}
.cmsmasters_clients_item {
  line-height: 180px;
  height: 180px;
  vertical-align: middle;
  position: relative;
  text-align: center;
}
.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 {
  display: block;
  line-height: 180px;
  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;
}
/***************** CMSMasters Mailpoet ******************/
.cmsmasters_mailpoet_form form {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
}
.cmsmasters_mailpoet_form form label {
  display: block;
  padding-bottom: 6px;
}
.cmsmasters_mailpoet_form form .wysija-paragraph {
  padding: 0;
  margin: 0 0 20px 0;
  flex: 0 1 100%;
  -webkit-flex: 0 1 100%;
  -moz-flex: 0 1 100%;
  -ms-flex: 0 1 100%;
}
.cmsmasters_mailpoet_form form .mailpoet_submit {
  margin: 0 0 20px !important;
  align-self: flex-end;
  -webkit-align-self: flex-end;
  -moz-align-self: flex-end;
  -ms-align-self: flex-end;
}
.cmsmasters_mailpoet_form form .formError {
  left: auto!important;
  right: 0%!important;
}
.cmsmasters_mailpoet_form 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]) {
  height: 44px;
}
/*-------------------------------------------------------------------------*/
/*	Widgets Styles */
/*-------------------------------------------------------------------------*/
.widget {
  position: relative;
  padding: 0 0 40px;
}
.widget .widgettitle {
  margin-bottom: 32px;
  padding: 0px 0 0;
}
.widget .widgettitle > span {
  display: inline;
}
.widget:last-child {
  padding-bottom: 0;
}
/***************** Widget Search ******************/
#page .widget_search .widgettitle {
  margin-bottom: -5px;
  padding: 20px 20px 0 20px;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
#page .widget_search .widgettitle + .search_bar_wrap {
  padding: 20px;
  border-width: 0;
  border-style: solid;
}
#page .widget_search .widgettitle + .search_bar_wrap .search_button {
  right: 20px;
  left: auto;
}
#page .widget_search .widgettitle + .search_bar_wrap .search_field input {
  padding: 10px 50px 10px 20px;
}
#page .widget_search .search_button,
#page .widget_search input {
  height: 50px;
}
/***************** 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,
.widget_nav_menu ul,
.widget_rss ul {
  margin: 0;
  padding: 10px 30px;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  overflow: hidden;
}
.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,
.widget_nav_menu ul ul,
.widget_rss ul ul {
  padding: 0px 0 0 10px;
}
.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,
.widget_nav_menu ul li,
.widget_rss ul li {
  padding: 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.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,
.widget_nav_menu ul li:before,
.widget_rss ul li:before {
  display: none;
}
.widget_pages ul li:after,
.widget_categories ul li:after,
.widget_archive ul li:after,
.widget_meta ul li:after,
.widget_recent_comments ul li:after,
.widget_recent_entries ul li:after,
.widget_nav_menu ul li:after,
.widget_rss ul li:after {
  display: 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,
.widget_nav_menu ul li a,
.widget_rss ul li a {
  padding: 15px 0;
  display: inline-block;
}
.widget_pages ul li a:empty,
.widget_categories ul li a:empty,
.widget_archive ul li a:empty,
.widget_meta ul li a:empty,
.widget_recent_comments ul li a:empty,
.widget_recent_entries ul li a:empty,
.widget_nav_menu ul li a:empty,
.widget_rss ul li a:empty {
  display: none;
}
.widget_pages ul li a + ul,
.widget_categories ul li a + ul,
.widget_archive ul li a + ul,
.widget_meta ul li a + ul,
.widget_recent_comments ul li a + ul,
.widget_recent_entries ul li a + ul,
.widget_nav_menu ul li a + ul,
.widget_rss ul li a + ul {
  -webkit-border-radius: 0;
  border-radius: 0;
  border-top-width: 1px;
  border-top-style: solid;
}
.widget_pages ul li a + ul > li:first-child,
.widget_categories ul li a + ul > li:first-child,
.widget_archive ul li a + ul > li:first-child,
.widget_meta ul li a + ul > li:first-child,
.widget_recent_comments ul li a + ul > li:first-child,
.widget_recent_entries ul li a + ul > li:first-child,
.widget_nav_menu ul li a + ul > li:first-child,
.widget_rss ul li a + ul > li:first-child {
  padding-top: 0;
}
.widget_pages ul li:last-child,
.widget_categories ul li:last-child,
.widget_archive ul li:last-child,
.widget_meta ul li:last-child,
.widget_recent_comments ul li:last-child,
.widget_recent_entries ul li:last-child,
.widget_nav_menu ul li:last-child,
.widget_rss ul li:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.widget_pages ul li li:before,
.widget_categories ul li li:before,
.widget_archive ul li li:before,
.widget_meta ul li li:before,
.widget_recent_comments ul li li:before,
.widget_recent_entries ul li li:before,
.widget_nav_menu ul li li:before,
.widget_rss ul li li:before {
  content: none;
}
.widget_pages label,
.widget_categories label,
.widget_archive label,
.widget_meta label,
.widget_recent_comments label,
.widget_recent_entries label,
.widget_nav_menu label,
.widget_rss label {
  display: block;
  margin-bottom: 10px;
}
.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,
.widget_nav_menu .post-date,
.widget_rss .post-date {
  display: block;
  margin: -3px 0 0;
}
.widget_nav_menu ul li a:empty {
  padding: 0;
  line-height: 0;
  font-size: 0;
  margin: 0;
  overflow: hidden;
  display: block;
  margin: -1px 0;
}
.widget_recent_entries ul li {
  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;
}
.widget_recent_entries ul li a + .post-date {
  margin: 13px 0 -17px;
}
.widget_recent_entries ul li .post-date:last-child {
  order: -1;
}
.widget_text ul li:before {
  display: none;
}
.widget_recent_comments .recentcomments {
  padding: 15px 0;
}
.widget_recent_comments .recentcomments a {
  padding: 0;
}
.widget_categories .screen-reader-text,
.widget_archive .screen-reader-text {
  display: none;
}
/***************** Widget Calendar ******************/
#wp-calendar {
  border-spacing: 0;
  width: 100%;
  min-width: 200px;
  max-width: 450px;
  text-align: center;
}
#wp-calendar caption {
  margin: 0 0 12px;
  padding: 0 10px;
  text-align: center;
  border-width: 1px;
  border-style: solid;
}
#wp-calendar th {
  padding: 5px 0;
}
#wp-calendar td {
  padding: 9px 0;
}
#wp-calendar tfoot #prev {
  text-align: left;
}
#wp-calendar tfoot #next {
  text-align: right;
}
#wp-calendar tfoot a {
  display: inline-block;
  padding-top: 10px;
}
/***************** 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;
  margin: 20px 0 0;
  padding: 0 0 0 30px;
  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 {
  font-size: 20px;
  line-height: 22px;
  text-align: center;
  width: 20px;
  height: 22px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.widget_custom_contact_info_entries .adress_wrap span {
  display: block;
}
.widget_custom_contact_info_entries .adress_wrap:before {
  top: 0;
  bottom: auto;
}
/***************** Widget Custom Menu ******************/
selector {
  position: relative;
  overflow: hidden;
}
selector ul {
  margin: 0;
  padding: 0;
}
selector ul li {
  margin: 0;
  padding: 0;
}
selector ul li:before {
  left: 0;
  right: auto;
  top: 0;
  bottom: auto;
  height: auto;
  padding: 12px 0;
}
selector ul li a {
  padding: 10px 0 9px;
  display: block;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
selector .menu {
  position: relative;
}
selector .menu > li {
  padding: 0 0 0 15px;
}
selector .menu > li > a {
  position: relative;
}
selector .menu > li:last-child a {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
selector .menu ul {
  padding: 0 0 0 22px;
}
selector .menu ul li:before {
  content: none;
}
selector .menu ul ul {
  padding: 0 0 0 5px;
}
/***************** Widget Facebook ******************/
.widget_custom_facebook_entries .fb_iframe_widget_fluid {
  display: block;
  max-width: 100%;
}
.widget_custom_facebook_entries .fb_iframe_widget_fluid span {
  width: 100% !important;
  max-width: 100%;
}
.widget_custom_facebook_entries iframe {
  margin-bottom: 0;
}
/***************** Widget Flickr ******************/
.widget_custom_flickr_entries .wrap {
  margin: 0 -4px;
}
.widget_custom_flickr_entries .more_button {
  display: none;
}
.widget_custom_flickr_entries .flickr_badge_image {
  margin: 0 4px 8px;
  float: left;
}
/***************** Widget Latest and Popular Articles ******************/
.widget_custom_popular_projects_entries,
.widget_custom_latest_projects_entries {
  position: relative;
}
.widget_custom_popular_projects_entries .widgettitle,
.widget_custom_latest_projects_entries .widgettitle {
  padding: 0px 55px 0px 0px;
}
.widget_custom_popular_projects_entries .widget_custom_projects_entries_slides,
.widget_custom_latest_projects_entries .widget_custom_projects_entries_slides {
  padding: 40px 0 0;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides {
  padding: 0;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-controls,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-controls {
  position: absolute;
  top: -66px;
  right: -4px;
  bottom: auto;
  left: auto;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-controls .cmsmasters_prev_arrow,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-controls .cmsmasters_prev_arrow,
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-controls .cmsmasters_next_arrow,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-controls .cmsmasters_next_arrow {
  width: 28px;
  height: 35px;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-controls .owl-pagination,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-controls .owl-pagination {
  display: none;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_image_wrap,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_image_wrap {
  position: relative;
  overflow: hidden;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_image_wrap .cmsmasters_img_rollover,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_image_wrap .cmsmasters_img_rollover {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
  opacity: 0.6;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_image_wrap .cmsmasters_img_rollover:before,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_image_wrap .cmsmasters_img_rollover:before {
  content: '';
  width: 100%;
  height: 100%;
  z-index: 4;
  position: absolute;
  left: 0;
  top: 0;
  -webkit-box-shadow: inset 0px -106px 92px -35px #000000;
  -moz-box-shadow: inset 0px -106px 92px -35px #000000;
  box-shadow: inset 0px -106px 92px -35px #000000;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_image_wrap:hover img,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_image_wrap:hover img {
  -webkit-transform: scale(1.05);
  -moz-transform: scale(1.05);
  transform: scale(1.05);
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_image_meta,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_image_meta {
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 5;
  overflow: hidden;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_image_meta_bottom,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_image_meta_bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 0px 20px 15px;
  overflow: hidden;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_image_meta_bottom .cmsmasters_slider_project_category,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_image_meta_bottom .cmsmasters_slider_project_category {
  position: static;
  display: none;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_category,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_category {
  position: absolute;
  top: 25px;
  left: 25px;
  right: 25px;
  overflow: hidden;
  display: block;
  clear: both;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_category::before,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_category::before {
  font-size: 14px;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_category a,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_category a {
  margin: 0px 5px 5px 0;
  display: block;
  padding: 0 16px;
  clear: none;
  float: left;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_post_date::before,
.widget_custom_latest_projects_entries .cmsmasters_slider_post_date::before {
  font-size: 14px;
  margin-right: 5px;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_header,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_header {
  padding: 0;
  margin: 5px 0 0;
  text-align: left;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_header .cmsmasters_slider_project_title,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_header .cmsmasters_slider_project_title {
  margin: 0;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_image_wrap + .cmsmasters_slider_project_inner,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_image_wrap + .cmsmasters_slider_project_inner {
  margin: 16px 0 0;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_inner,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_inner {
  position: relative;
  padding-left: 0;
  padding-right: 0;
  overflow: hidden;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_content,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_content {
  overflow: hidden;
  text-align: left;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_content p,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_content p {
  margin: 0;
  padding: 0;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_footer,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_footer {
  padding: 5px 0 0;
  position: relative;
  overflow: hidden;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_footer > *,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_footer > * {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  padding: 0 24px 0 0;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_footer > *:last-child,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_footer > *:last-child {
  padding: 0;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_footer > *:last-child:before,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_footer > *:last-child:before {
  content: none;
}
/***************** 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 {
  max-width: 300px;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item {
  margin: 0 5px 5px 0;
  text-align: left;
  float: left;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item a > span {
  padding: 0px 0px 0px;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_wrap {
  margin: 15px 0 0;
  padding: 0px 0;
  position: relative;
  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: -20px 0 0 -20px;
  padding: 0;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li {
  margin: 20px 0 0;
  padding: 0 0px 0 20px;
  position: relative;
  float: left;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li:before {
  content: none;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li:after {
  content: none;
  display: none !important;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li p {
  margin: 0;
  padding: 0;
}
.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: 70px;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_comments li {
  margin: 20px 0 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_comments li::after {
  content: "";
  display: block !important;
  width: 100%;
  padding-top: 12px;
  border-color: inherit;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_comments li:last-child::after {
  display: none !important;
}
.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_tab.tab_comments li small {
  display: block;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_img {
  width: 45%;
  max-width: 120px;
  min-width: 80px;
  margin-right: 15px;
  z-index: 1;
  float: left;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_img > * {
  display: block;
  margin: -17% 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .img_placeholder_small {
  height: 120px;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont {
  display: block;
  vertical-align: middle;
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont a {
  display: inline-block;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont > .published {
  margin-top: 0px;
  display: block;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont > .published::before {
  margin-right: 5px;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont > .published::after {
  display: none;
}
/***************** Widget RSS ******************/
.widget_rss img {
  display: none;
}
.widget_rss ul li:first-child {
  border-top-width: 0;
  border-top-style: solid;
}
.widget_rss ul li:last-child {
  margin: 0;
}
.widget_rss ul li:before {
  content: none;
}
.widget_rss ul li .rss-date {
  display: block;
  margin-top: 2px;
}
.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 .tagcloud {
  overflow: hidden;
  display: block;
  clear: both;
}
.widget_tag_cloud a {
  padding: 0 0px;
  display: inline-block;
  vertical-align: middle;
}
.widget_tag_cloud a .tag-link-count {
  font-size: 0.65em;
  display: inline-block;
  vertical-align: middle;
}
.widget_tag_cloud a::before {
  content: "#";
}
.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 24px;
  padding: 0;
  position: relative;
}
.widget_custom_twitter_entries ul li:last-child {
  margin: 0;
}
.widget_custom_twitter_entries ul li:before {
  content: none;
}
.widget_custom_twitter_entries .tweet_time {
  display: block;
  padding: 0 0 0 44px;
  position: relative;
  overflow: hidden;
}
.widget_custom_twitter_entries .tweet_time:before {
  font-size: 18px;
  line-height: 32px;
  width: 32px;
  height: 32px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.widget_custom_twitter_entries .tweet_text {
  display: block;
  padding: 12px 0 0;
  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 {
  padding: 0 0 50px;
}
.cmsmasters_search > .cmsmasters_wrap_pagination,
.cmsmasters_archive > .cmsmasters_wrap_pagination {
  padding: 50px 0 0;
}
.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 40px 0 0;
  width: 34%;
  position: relative;
  float: left;
}
.cmsmasters_archive_type .cmsmasters_archive_item_img_wrap .cmsmasters_img_wrap {
  overflow: hidden;
}
.cmsmasters_archive_type.has-post-thumbnail .cmsmasters_archive_item_type {
  position: absolute;
  margin: 0;
  width: auto;
  left: auto;
  right: -5px;
  top: 12px;
  bottom: auto;
  z-index: 10;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_type {
  margin: 0 0 10px;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_type span {
  display: inline-block;
  padding: 0 16px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_cont_wrap {
  padding-top: 16px;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info {
  padding: 0 0 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info > * {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  padding: 0 24px 0 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info > *:last-child {
  padding: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info > *:last-child:before {
  content: none;
}
.cmsmasters_archive_type .cmsmasters_archive_item_category a {
  display: inline-block;
  float: none;
  vertical-align: middle;
  margin: 0 5px 0px 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_category a:first-child {
  margin-left: 6px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_header {
  padding: 0 0 15px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_title {
  margin: 0;
  word-wrap: break-word;
}
.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;
}
/***************** Sitemap ******************/
.middle_content .cmsmasters_sitemap_wrap {
  padding: 0 0 50px;
}
.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:before,
.cmsmasters_sitemap_wrap ol:before,
.cmsmasters_sitemap_wrap li:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul > li a,
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li a {
  display: inline-block;
  position: relative;
  padding-left: 15px;
  padding-right: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul > li a:before,
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li a:before {
  left: 0;
  right: auto;
}
.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: 2px;
  position: absolute;
  left: 0;
  top: 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: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 0;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li {
  width: 25%;
  padding-right: 20px;
  margin-bottom: 40px;
  float: left;
}
.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 20px;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li {
  width: 25%;
  margin-bottom: 20px;
  padding-right: 20px;
  float: left;
}
.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: 105px 0 200px;
}
.error .error_title {
  font-size: 158px;
  line-height: 1em;
  margin: 0;
  padding: 0 0 30px;
  text-align: center;
}
.error .error_subtitle {
  margin: 0;
  padding: 0;
  text-align: center;
}
.error .error_cont {
  padding: 22px 0;
  text-align: center;
  display: block;
  clear: both;
  overflow: hidden;
}
.error .error_cont .search_bar_wrap {
  width: 270px;
  max-width: 100%;
  margin: 0 -1px 10px 0;
  z-index: 2;
  display: inline-block;
}
.error .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: 44px;
  background: transparent;
}
.error .error_cont .error_button_wrap {
  margin: 0;
  float: left;
}
/***************** 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 16px;
}
#lang_sel ul {
  overflow: visible;
}
#lang_sel_footer {
  display: none;
}
/*-------------------------------------------------------------------------*/
/*	Contact Forms Styles */
/*-------------------------------------------------------------------------*/
.cmsmasters-form-builder {
  margin: 0 -1.4%;
}
.cmsmasters-form-builder .success_box {
  margin: 0 1.4% 10px;
  width: 97.2%;
}
.cmsmasters-form-builder .form_info {
  margin: 0 1.4%;
}
.cmsmasters-form-builder .form_info #page {
  padding-bottom: 20px;
}
.cmsmasters-form-builder .form_info.submit_wrap {
  padding-top: 0px;
}
.cmsmasters-form-builder [class*="one_"] input[type="text"],
.cmsmasters-form-builder [class*="one_"] select,
.cmsmasters-form-builder [class*="one_"] textarea {
  width: 100%;
}
select {
  min-width: 100px;
  height: 40px;
}
select::-ms-expand {
  display: none;
}
select[multiple] {
  height: auto;
}
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: 17px;
  height: 17px;
  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: 5px;
  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 .navigation li a .nav_tag,
html.csstransitions .cmsmasters_likes a:before,
html.csstransitions .cmsmasters_comments a:before,
html.csstransitions .cmsmasters_views span:before,
html.csstransitions .cmsmasters_likes > a span,
html.csstransitions .cmsmasters_comments > a span,
html.csstransitions .cmsmasters_post_timeline a .cmsmasters_day,
html.csstransitions .post_nav span,
html.csstransitions .post_nav .post_nav_title,
html.csstransitions .cmsmasters_post_date abbr {
  -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 .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 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 .25s ease;
  -moz-transition: border-color .25s ease;
  -ms-transition: border-color .25s ease;
  -o-transition: border-color .25s ease;
  transition: border-color .25s ease;
}
html.csstransitions .mid_nav ul a > span:before,
html.csstransitions .bot_nav ul a > span:before,
html.csstransitions .bot_nav > li > a > .nav_item_wrap::before,
html.csstransitions .mid_nav > li > a > .nav_item_wrap::before {
  -webkit-transition: width .3s ease-in-out;
  -moz-transition: width .3s ease-in-out;
  -ms-transition: width .3s ease-in-out;
  -o-transition: width .3s ease-in-out;
  transition: width .3s ease-in-out;
}
html.csstransitions .cmsmasters_header_search_form .cmsmasters_header_search_form_close,
html.csstransitions .search_wrap:before,
html.csstransitions .cmsmasters_project_grid .cmsmasters_img_rollover,
html.csstransitions .cmsmasters_project_puzzle .project_inner,
html.csstransitions .cmsmasters_slider_project .cmsmasters_slider_project_inner_wrap,
html.csstransitions .widget_custom_popular_projects_entries .cmsmasters_img_rollover,
html.csstransitions .widget_custom_latest_projects_entries .cmsmasters_img_rollover,
html.csstransitions .cmsmasters_sharing a::after,
html.csstransitions .share_posts a::after {
  -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 .cmsmasters_header_search_form {
  -webkit-transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
  -moz-transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
  -ms-transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
  -o-transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
  transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
}
html.csstransitions .button,
html.csstransitions input[type=submit],
html.csstransitions input[type=button],
html.csstransitions button,
html.csstransitions #slide_top,
html.csstransitions .cmsmasters_post_tags > a,
html.csstransitions .cmsmasters_prev_arrow,
html.csstransitions .cmsmasters_next_arrow,
html.csstransitions .cmsmasters_project_puzzle .cmsmasters_project_category a,
html.csstransitions .cmsmasters_toggles .cmsmasters_toggle_title,
html.csstransitions .cmsmasters_toggles .cmsmasters_toggles_filter a,
html.csstransitions .cmsmasters_tabs .cmsmasters_tabs_list_item a,
html.csstransitions .cmsmasters_tabs .cmsmasters_tabs_list_item a span,
html.csstransitions .cmsmasters_notice .notice_close,
html.csstransitions .widget_tag_cloud a {
  -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 .cmsmasters_toggles .cmsmasters_toggle_plus:before,
html.csstransitions .cmsmasters_post_default .cmsmasters_img_wrap a img,
html.csstransitions .cmsmasters_post_masonry .cmsmasters_img_wrap a,
html.csstransitions .cmsmasters_post_timeline .cmsmasters_img_wrap a img,
html.csstransitions .cmsmasters_project_grid .cmsmasters_img_rollover_wrap img,
html.csstransitions .cmsmasters_slider_post .cmsmasters_img_rollover_wrap img,
html.csstransitions .widget_custom_popular_projects_entries .cmsmasters_img_rollover_wrap img,
html.csstransitions .widget_custom_latest_projects_entries .cmsmasters_img_rollover_wrap img,
html.csstransitions .cmsmasters_items_sort_but:before,
html.csstransitions .cmsmasters_post_default .cmsmasters_video_preview::after,
html.csstransitions .cmsmasters_post_default .cmsmasters_video_preview .cmsmasters_img_wrap {
  -webkit-transition: transform .3s ease-in-out;
  -moz-transition: transform .3s ease-in-out;
  -ms-transition: transform .3s ease-in-out;
  -o-transition: transform .3s ease-in-out;
  transition: transform .3s ease-in-out;
}
html.csstransitions .apsc-icons-wrapper.apsc-theme-5 .apsc-count {
  -webkit-transition: transform .4s ease, opacity .4s ease;
  -moz-transition: transform .4s ease, opacity .4s ease;
  -ms-transition: transform .4s ease, opacity .4s ease;
  -o-transition: transform .4s ease, opacity .4s ease;
  transition: transform .4s ease, opacity .4s ease;
}
html.csstransitions .cmsmasters_quotes_slider .owl-buttons > div {
  -webkit-transition: color .3s ease-in-out, opacity .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, opacity .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, opacity .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -o-transition: color .3s ease-in-out, opacity .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  transition: color .3s ease-in-out, opacity .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
}
html.csstransitions a,
html.csstransitions .cmsmasters_icon_wrap .cmsmasters_simple_icon_title,
html.csstransitions .img_placeholder_small,
html.csstransitions .cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li a:before {
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions .header_mid,
html.csstransitions .header_bot {
  -webkit-transition: background-color .2s ease-in-out, padding .25s ease;
  -moz-transition: background-color .2s ease-in-out, padding .25s ease;
  -ms-transition: background-color .2s ease-in-out, padding .25s ease;
  -o-transition: background-color .2s ease-in-out, padding .25s ease;
  transition: background-color .2s ease-in-out, padding .25s ease;
}
html.csstransitions #page .cmsmasters_social_icon,
html.csstransitions .edge_only .cmsmasters_but_icon_inverse {
  -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 nav > div > ul ul,
html.csstransitions nav > div > ul div,
html.csstransitions .apsc-icons-wrapper .apsc-each-profile > a::before {
  -webkit-transition: opacity .3s ease .1s, margin-top .3s ease .1s;
  -moz-transition: opacity .3s ease .1s, margin-top .3s ease .1s;
  -ms-transition: opacity .3s ease .1s, margin-top .3s ease .1s;
  -o-transition: opacity .3s ease .1s, margin-top .3s ease .1s;
  transition: opacity .3s ease .1s, margin-top .3s ease .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 #page .cmsmasters_cat_color a {
  -webkit-transition: color .3s ease-in-out !important;
  -moz-transition: color .3s ease-in-out !important;
  -ms-transition: color .3s ease-in-out !important;
  -o-transition: color .3s ease-in-out !important;
  transition: color .3s ease-in-out !important;
}
html.csstransitions .search_wrap ~ div {
  -webkit-transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
  -moz-transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
  -ms-transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
  -o-transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
  transition: opacity .2s ease-in-out, visibility .2s 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 .apsc-icons-wrapper .apsc-each-profile > a .social-icon::before {
  -webkit-transition: height .25s ease;
  -moz-transition: height .25s ease;
  -ms-transition: height .25s ease;
  -o-transition: height .25s ease;
  transition: height .25s ease;
}
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,
html.csstransitions .cmsmasters_post_default .cmsmasters_video_preview .cmsmasters_video_wrap .mejs-overlay-play::before,
html.csstransitions .mejs-overlay-button,
html.csstransitions .owl-buttons > div {
  -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,
html.csstransitions [data-animation] {
  -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 .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 .3s ease;
  -moz-transition: all .3s ease;
  -ms-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
}
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_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_slider_post .cmsmasters_slider_post_title a,
html.csstransitions .cmsmasters_post_default:not(.format-video) .cmsmasters_post_title a,
html.csstransitions .cmsmasters_post_timeline .cmsmasters_post_title a,
html.csstransitions .cmsmasters_post_masonry .cmsmasters_post_title a,
html.csstransitions .cmsmasters_archive_item_title a {
  -webkit-transition: color .3s ease, background-color .3s ease, background-image .3s ease, background-position .3s ease;
  -moz-transition: color .3s ease, background-color .3s ease, background-image .3s ease, background-position .3s ease;
  -ms-transition: color .3s ease, background-color .3s ease, background-image .3s ease, background-position .3s ease;
  -o-transition: color .3s ease, background-color .3s ease, background-image .3s ease, background-position .3s ease;
  transition: color .3s ease, background-color .3s ease, background-image .3s ease, background-position .3s ease;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_horizontal.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.stats_type_vertical.shortcode_animated .cmsmasters_stat_inner {
  -webkit-animation: bar_up 2s ease-in;
  -moz-animation: bar_up 2s ease-in;
  -ms-animation: bar_up 2s ease-in;
  -o-animation: bar_up 2s ease-in;
  animation: bar_up 2s ease-in;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_horizontal.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.stats_type_vertical.shortcode_animated .cmsmasters_stat_inner:before {
  -webkit-animation: bar_icon 2.2s ease-out;
  -moz-animation: bar_icon 2.2s ease-out;
  -ms-animation: bar_icon 2.2s ease-out;
  -o-animation: bar_icon 2.2s ease-out;
  animation: bar_icon 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;
}
@-webkit-keyframes autofill {
  to {
    color: inherit;
    background: transparent;
  }
}
html.csstransitions #slide_top {
  -webkit-animation: slide_top .5s ease;
  -moz-animation: slide_top .5s ease;
  -ms-animation: slide_top .5s ease;
  -o-animation: slide_top .5s ease;
  animation: slide_top .5s ease;
}
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 slide_top {
  from {
    -webkit-transform: translate(0, 100%);
    -moz-transform: translate(0, 100%);
    -o-transform: translate(0, 100%);
    transform: translate(0, 100%);
  }
  to {
    -webkit-transform: translate(0, 0%);
    -moz-transform: translate(0, 0%);
    -o-transform: translate(0, 0%);
    transform: translate(0, 0%);
  }
}
@-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_up {
  from {
    -webkit-transform: translate(0, 100%);
  }
  to {
    -webkit-transform: translate(0, 0%);
  }
}
@-moz-keyframes bar_up {
  from {
    -moz-transform: translate(0, 100%);
  }
  to {
    -moz-transform: translate(0, 0%);
  }
}
@-o-keyframes bar_up {
  from {
    -o-transform: translate(0, 100%);
  }
  to {
    -o-transform: translate(0, 0%);
  }
}
@keyframes bar_up {
  from {
    transform: translate(0, 100%);
  }
  to {
    transform: translate(0, 0%);
  }
}
@-webkit-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-moz-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0;
  }
}
@-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_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@-moz-keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@-o-keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 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;
  }
}
@keyframes marquee_loop {
  0% {
    -webkit-transform: translate3d(0%, 0, 0);
    -moz-transform: translate3d(0%, 0, 0);
    -o-transform: translate3d(0%, 0, 0);
    transform: translate3d(0%, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(-100%, 0, 0);
    -moz-transform: translate3d(-100%, 0, 0);
    -o-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmxlc3MiLCJnZW5lcmFsLmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBZ0JBLElBQUssTUFBSyxJQUFJLDhCQUNiO0FBREQsSUFBSyxNQUFLLElBQUksOEJBRWIsZ0JBQWdCO0VBQ2YsaUJBQUE7RUFDQSxrQkFBQTtFQ3NGRCxjQUFBOztBRGpGRDtFQUNDLDBCQUFBOztBQURELFVBR0M7RUFDQyx1QkFBQTtFQUNBLG9CQUFBO0VBQ0EsaUJBQUE7RUMrRUQsZUFBQTtFQUNBLG1CQUFBOztBRDNFRDtFQUNDLFNBQVMsRUFBVDtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQUFBOztBQUlBLG9CQUFDO0VBUEQsU0FBUyxFQUFUO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFlBQUE7O0FBVUEscUJBQUM7RUFiRCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTs7QUFlRDtFQUNDLFVBQUE7O0FBRUEsMENBQUU7QUFDRiwwQ0FBRTtFQUNELG1CQUFBOztBQUdELFdBQVk7QUFDWixXQUFZO0FBQ1osV0FBWTtFQUNYLFVBQUE7O0FBSEQsV0FBWSwyQ0FLWDtBQUpELFdBQVksMkNBSVg7QUFIRCxXQUFZLDJDQUdYO0VBQ0MsZ0JBQUE7O0FBTkYsV0FBWSwyQ0FTWCxJQUFHO0FBUkosV0FBWSwyQ0FRWCxJQUFHO0FBUEosV0FBWSwyQ0FPWCxJQUFHO0VBQ0YsVUFBQTtFQ3FDRixlQUFBO0VBQ0EsbUJBQUE7RURwQ0Usa0NBQUE7O0FBWkYsV0FBWSwyQ0FTWCxJQUFHLDJCQUtGO0FBYkYsV0FBWSwyQ0FRWCxJQUFHLDJCQUtGO0FBWkYsV0FBWSwyQ0FPWCxJQUFHLDJCQUtGO0VBQ0MsVUFBQTs7QUFmSCxXQUFZLDJDQW1CWDtBQWxCRCxXQUFZLDJDQWtCWDtBQWpCRCxXQUFZLDJDQWlCWDtFQUNDLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxr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QUNDO0lBQ0MsVUFBQTs7RUFHRDtJQUNDLFVBQUE7OztBQUlGO0VBQ0M7SUFDQyxVQUFBOztFQUdEO0lBQ0MsVUFBQTs7O0FBSUY7RUFDQztJQUNDLFVBQUE7O0VBR0Q7SUFDQyxVQUFBOzs7QUFJRjtFQUNDO0lBQ0MsbUJBQW1CLHFCQUFuQjtJQUNBLGdCQUFnQixxQkFBaEI7SUFDQSxjQUFjLHFCQUFkO0lBQ0EsV0FBVyxxQkFBWDs7RUFHRDtJQUNDLG1CQUFtQix3QkFBbkI7SUFDQSxnQkFBZ0Isd0JBQWhCO0lBQ0EsY0FBYyx3QkFBZDtJQUNBLFdBQVcsd0JBQVgiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQHBhY2thZ2UgXHRXb3JkUHJlc3NcclxuICogQHN1YnBhY2thZ2UgXHRNYWdhemlsbGFcclxuICogQHZlcnNpb25cdFx0MS4wLjBcclxuICogXHJcbiAqIERlc2lnbiBDU1MgUnVsZXNcclxuICogQ3JlYXRlZCBieSBDTVNNYXN0ZXJzXHJcbiAqIFxyXG4gKi9cclxuXHJcbkBpbXBvcnQgXCJnZW5lcmFsLmxlc3NcIjtcclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRHbG9iYWxseSBBcHBsaWVkIFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuYm9keSAjcGFnZTpub3QoLmNtc21hc3RlcnNfY29udGVudF9jb21wb3Nlcikge1xyXG5cdC5taWRkbGVfY29udGVudCxcclxuXHQuaGVhZGxpbmVfb3V0ZXIgLmhlYWRsaW5lX2NvbnRlbnQge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjIyJTtcclxuXHRcdHBhZGRpbmctcmlnaHQ6MjIlO1xyXG5cdFx0Lm0wYTtcclxuXHR9XHJcbn1cclxuXHJcbi5mb3JtRXJyb3J7XHJcblx0bWFyZ2luOiAxcHggMXB4IDBweCAtMTAwcHggIWltcG9ydGFudDtcclxuXHJcblx0LmZvcm1FcnJvckNvbnRlbnR7XHJcblx0XHR3aWR0aDogMTQycHggIWltcG9ydGFudDtcclxuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG5cdFx0cGFkZGluZzogNnB4IDEwcHg7XHJcblx0XHQuYmQoMCk7XHJcblx0fVxyXG59XHJcblxyXG4uY2VudGVyLWlubGluZSB7XHJcblx0Y29udGVudDogJyc7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uY2VudGVyLWlubGluZS1hZnRlciB7XHJcblx0Jjo6YWZ0ZXJ7XHJcblx0XHQuY2VudGVyLWlubGluZTtcclxuXHR9XHJcbn1cclxuXHJcbi5jZW50ZXItaW5saW5lLWJlZm9yZSB7XHJcblx0Jjo6YmVmb3Jle1xyXG5cdFx0LmNlbnRlci1pbmxpbmU7XHJcblx0fVxyXG59XHJcblxyXG4ud2lkZ2V0X3NwX2xvY2F0aW9uX3dlYXRoZXJfd2lkZ2V0X2NvbnRlbnQge1xyXG5cdHotaW5kZXg6IDE7XHJcblxyXG5cdCYgKyAubWlkX25hdl93cmFwLFxyXG5cdCYgKyAuc2xvZ2FuX3dyYXAge1xyXG5cdFx0cGFkZGluZy1yaWdodDogMzBweDtcclxuXHR9XHJcblxyXG5cdC5oZWFkZXJfdG9wICYsXHJcblx0LmhlYWRlcl9taWQgJixcclxuXHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcclxuXHRcdC53ZWF0aGVyLXR5cGV7XHJcblx0XHRcdHBvc2l0aW9uOiBzdGF0aWM7XHJcblx0XHR9XHJcblxyXG5cdFx0ZGl2LnNwLWxvY2F0aW9uLXdlYXRoZXItd2lkZ2V0IHtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0LmJkKDApO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAdHJhbnNwYXJlbnRfcmdiYTtcclxuXHJcblx0XHRcdD4gZGl2e1xyXG5cdFx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQud2VhdGhlci10ZW1we1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdHRvcDogMDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0d2lkdGg6IGF1dG87XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XHJcblx0XHRcdGZsb2F0OiBub25lO1xyXG5cdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdC53ZWF0aGVyLXJlZ2lvbntcclxuXHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuaGVhZGVyX3RvcCAmIHtcclxuXHRcdGRpdltpZF49XCJsb2NhdGlvbi13ZWF0aGVyLXdpZGdldFwiXSB7XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcdG1hcmdpbjogMCA3cHggLTJweCAwO1xyXG5cclxuXHRcdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHJcblx0XHRcdC53ZWF0aGVyLWRhdGUge1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5oZWFkZXJfbWlkICYge1xyXG5cdFx0LmNlbnRlci1pbmxpbmUtYWZ0ZXI7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcclxuXHRcdGRpdi5zcC1sb2NhdGlvbi13ZWF0aGVyLXdpZGdldHtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC53ZWF0aGVyLXRlbXB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMzJweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHR9XHJcblxyXG5cdFx0LndlYXRoZXItcmVnaW9ue1xyXG5cdFx0XHRvcGFjaXR5OiAuNztcclxuXHRcdH1cclxuXHJcblx0XHQud2VhdGhlci10eXBlLFxyXG5cdFx0LndlYXRoZXItZGF0ZSB7XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5kaXYuc3AtbG9jYXRpb24td2VhdGhlci13aWRnZXR7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdHBhZGRpbmc6IDE1cHg7XHJcblx0bWF4LXdpZHRoOiA0MDBweDtcclxuXHQuYmQoMXB4KTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdD4gZGl2e1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0cGFkZGluZzogMHB4IDAgMCAxMDZweDtcclxuXHR9XHJcblxyXG5cdC53ZWF0aGVyLWltYWdlIHtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC53ZWF0aGVyLWRhdGUge1xyXG5cdFx0bWFyZ2luOiAwIDAgMHB4O1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0fVxyXG5cclxuXHQud2VhdGhlci1yZWdpb257XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHR9XHJcblxyXG5cdC53ZWF0aGVyLXR5cGUge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0dG9wOiAtMnB4O1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0fVxyXG5cclxuXHQud2VhdGhlci10ZW1wIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGZvbnQtc2l6ZTogMjJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHdpZHRoOiA5MHB4O1xyXG5cdFx0cGFkZGluZzogMTlweCAwO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm9sbF90aXRsZXNfd3JhcCB7XHJcblx0LmNtc21hc3RlcnNfcm9sbF90aXRsZXNfaW5mbyB7XHJcblx0XHRwYWRkaW5nOiAwIDEwcHggMCAwO1xyXG5cdFx0LmZsO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcm9sbF9tYXJxdWVlIHtcclxuXHRcdC13ZWJraXQtYW5pbWF0aW9uOiBtYXJxdWVlX2xvb3AgMTBzIGluZmluaXRlIGxpbmVhcjtcclxuXHRcdGFuaW1hdGlvbjogbWFycXVlZV9sb29wIDEwcyBpbmZpbml0ZSBsaW5lYXI7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0cGFkZGluZzogMCAwIDAgMTAwJTtcclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdC13ZWJraXQtYW5pbWF0aW9uOiBtYXJxdWVlX2xvb3AgMTBzIGluZmluaXRlIGxpbmVhcjtcclxuXHRcdFx0YW5pbWF0aW9uOiBtYXJxdWVlX2xvb3AgMTBzIGluZmluaXRlIGxpbmVhcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3JvbGxfdGl0bGVzX3Bvc3Qge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRyaWdodDogMDtcclxuXHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHRtYXJnaW46IGF1dG87XHJcblx0XHRcdHdpZHRoOiAxcHg7XHJcblx0XHRcdGhlaWdodDogMTJweDtcclxuXHRcdH1cclxuXHJcblx0XHQmOmZpcnN0LWNoaWxke1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0JjpsYXN0LWNoaWxke1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xyXG5cclxuXHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3JvbGxfdGl0bGVzX2luZm9fdGl0bGV7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcm9sbF90aXRsZXNfc2xpZGVyX3dyYXB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9oZWFkZXIge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF90aXRsZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdH1cclxuXHRcclxuXHQub3dsLWNhcm91c2Vse1xyXG5cdFx0Ji5uYXZpZ2F0aW9ue1xyXG5cdFx0XHRwYWRkaW5nOiAwcHggODBweCAwcHggMDtcclxuXHRcdH1cclxuXHJcblx0XHQub3dsLWJ1dHRvbnN7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdHRvcDogMDtcclxuXHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHRtYXJnaW46IGF1dG87XHJcblxyXG5cdFx0XHQ+IGRpdntcclxuXHRcdFx0XHQ+IHNwYW57XHJcblx0XHRcdFx0XHR3aWR0aDogMzBweDtcclxuXHRcdFx0XHRcdGhlaWdodDogMjVweDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PiBzcGFue1xyXG5cdFx0XHRcdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAyNHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuaGVhZGVyX3RvcCAme1xyXG5cdFx0d2lkdGg6IDYwJTtcclxuXHRcdG1heC13aWR0aDogMTAwJTtcclxuXHR9XHJcbn1cclxuXHJcbi5zZXBhcmF0aW5ne1xyXG5cdD4gKntcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDElICFpbXBvcnRhbnQ7XHJcblx0XHRcclxuXHRcdCZbY2xhc3MqPVwiaWNvblwiXXtcclxuXHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogLjM1ZW07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNsZWFyZml4e1xyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG59XHJcblxyXG4uY2lyY2xlLXNoYXBle1xyXG5cdC5iZHJzKDUwJSk7XHJcblx0Lm92aDtcclxufVxyXG5cclxuaW1ne1xyXG5cdGltYWdlLXJlbmRlcmluZzogYXV0bztcclxufVxyXG5cclxuLnRleHQtbGluZS1pbnNpZGV7XHJcblx0PiAqe1xyXG5cdFx0ZGlzcGxheTogaW5saW5lO1xyXG5cdH1cclxufVxyXG5cclxuYm9keSB7XHJcblx0dGV4dC1hbGlnbjpsZWZ0O1xyXG59XHJcblxyXG5kaXYge1xyXG5cdHRleHQtYWxpZ246bGVmdDtcclxufVxyXG5cclxucCB7XHJcblx0cGFkZGluZzowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRtYXJnaW46MDtcclxufVxyXG5cclxucHJle1xyXG5cdG1hcmdpbjogMCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcbn1cclxuXHJcbmgxLCBcclxuaDIsIFxyXG5oMywgXHJcbmg0LCBcclxuaDUsIFxyXG5oNiB7XHJcblx0cGFkZGluZzowO1xyXG5cdG1hcmdpbjowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxufVxyXG5cclxuaDEgYSwgXHJcbmgyIGEsIFxyXG5oMyBhLCBcclxuaDQgYSwgXHJcbmg1IGEsIFxyXG5oNiBhIHtcclxuXHRmb250LWZhbWlseTppbmhlcml0O1xyXG5cdGZvbnQtc2l6ZTppbmhlcml0O1xyXG5cdGZvbnQtd2VpZ2h0OmluaGVyaXQ7XHJcblx0Zm9udC1zdHlsZTppbmhlcml0O1xyXG5cdGxpbmUtaGVpZ2h0OmluaGVyaXQ7XHJcblx0ZGlzcGxheTogaW5saW5lO1xyXG59XHJcblxyXG51bCwgb2wge1xyXG5cdCYgKyBoMntcclxuXHRcdG1hcmdpbi10b3A6IEBsaW5lX2hlaWdodF9wYWQ7XHJcblx0fVxyXG59XHJcblxyXG51bCB7XHJcblx0bGlzdC1zdHlsZS10eXBlOm5vbmU7XHJcblxyXG5cdD4gbGkge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6ICdcXGU4MDEnO1xyXG5cdFx0XHRmb250LWZhbWlseTonZm9udGVsbG8tY3VzdG9tJztcclxuXHRcdFx0Zm9udC1zaXplOjRweDtcclxuXHRcdFx0Zm9udC1zdHlsZTpub3JtYWw7XHJcblx0XHRcdGZvbnQtd2VpZ2h0Om5vcm1hbDtcclxuXHRcdFx0c3BlYWs6bm9uZTtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHRleHQtZGVjb3JhdGlvbjppbmhlcml0O1xyXG5cdFx0XHR3aWR0aDoxZW07XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0bWFyZ2luOjAgMTBweCAwIDA7XHJcblx0XHRcdHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdFx0XHRmb250LXZhcmlhbnQ6bm9ybWFsO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTpub25lO1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxZW07XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRib3R0b206MnB4O1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19jYXRfY29sb3Ige1xyXG5cdHBhZGRpbmc6MCA5cHg7XHJcblx0bWFyZ2luOjAgNXB4IDVweCAwO1xyXG5cdC50YWM7XHJcblx0Lm92aDtcclxuXHQuZmw7XHJcblx0LmNsO1xyXG59XHJcblxyXG4ud2lkZ2V0X21vc3RfcG9wdWxhcl93aWRnZXRfbGlzdHtcclxuXHRtYXJnaW46IDA7XHJcblx0bWF4LXdpZHRoOiA1ODBweDtcclxuXHJcblx0bGl7XHJcblx0XHRwYWRkaW5nOiAwcHggMCAwO1xyXG5cdFx0bWFyZ2luOiAtMXB4IDAgMDtcclxuXHJcblx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdGNvbnRlbnQ6IG5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX21vc3RfaW1ne1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogLTFweDtcclxuXHJcblx0XHQuY21zbWFzdGVyc19pbWdfd3JhcHtcclxuXHRcdFx0LnRhbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzogMCAwIDBweDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XHJcblx0XHRcdG1hcmdpbjogMCAwIDA7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19tb3N0X3dyYXB7XHJcblx0XHRwYWRkaW5nOiAyMnB4IDIycHggMjdweDtcclxuXHRcdC5iZDtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX21vc3RfY29udHtcclxuXHRcdHBhZGRpbmc6IDVweCAwIDAgMjBweDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19tb3N0X2luZGV4e1xyXG5cdFx0Zm9udC1zaXplOiA0OHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHQuZmw7XHJcblx0fVxyXG59XHJcblxyXG4jcGFnZSAuY21zbWFzdGVyc19zaGFyZXtcclxuXHQmOjpiZWZvcmV7XHJcblx0XHRmb250LXNpemU6IDEycHg7XHJcblx0XHRtYXJnaW46IDAgMC41ZW0gMCAwO1xyXG5cdH1cclxufVxyXG5cclxuLmFwc2MtaWNvbnMtd3JhcHBlcntcclxuXHQuYXBzYy1lYWNoLXByb2ZpbGV7XHJcblx0XHQ+IGF7XHJcblx0XHRcdC5ieHNoX25vbmU7XHJcblx0XHRcdC5iZHJzKDApO1xyXG5cclxuXHRcdFx0JltocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXXtcclxuXHRcdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06IG5vbmU7XHJcblx0XHRcdFx0LW8tdHJhbnNmb3JtOiBub25lO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogbm9uZTtcclxuXHJcblx0XHRcdFx0LnNvY2lhbC1pY29ue1xyXG5cdFx0XHRcdFx0PiBpe1xyXG5cdFx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcclxuXHRcdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06IG5vbmU7XHJcblx0XHRcdFx0XHRcdC1vLXRyYW5zZm9ybTogbm9uZTtcclxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiBub25lO1xyXG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcclxuXHRcdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06IG5vbmU7XHJcblx0XHRcdFx0XHRcdC1vLXRyYW5zZm9ybTogbm9uZTtcclxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiBub25lO1xyXG5cdFx0XHRcdFx0XHRvcGFjaXR5OiAwLjE7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0bGVmdDogMDtcclxuXHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdFx0ei1pbmRleDogMjtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjMDAwMDAwO1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdFx0LmJ4c2hfbm9uZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YWZ0ZXJ7XHJcblx0XHRcdFx0Y29udGVudDogbm9uZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmFwc2MtY291bnR7XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuYXBzYy1mYWNlYm9vay1pY29uIHtcclxuXHRcdFx0XHQuYXBzYy1pbm5lci1ibG9jayxcclxuXHRcdFx0XHQuYXBzYy1jb3VudCB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNDA3MWJhO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5hcHNjLXR3aXR0ZXItaWNvbiB7XHJcblx0XHRcdFx0LmFwc2MtaW5uZXItYmxvY2ssXHJcblx0XHRcdFx0LmFwc2MtY291bnQge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzNmYjFkMTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cdFxyXG5cclxuXHRcdFx0Ji5hcHNjLWdvb2dsZS1wbHVzLWljb24ge1xyXG5cdFx0XHRcdC5hcHNjLWlubmVyLWJsb2NrLFxyXG5cdFx0XHRcdC5hcHNjLWNvdW50IHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNlOTUxM2E7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLmFwc2MtZHJpYmJsZS1pY29uIHtcclxuXHRcdFx0XHQuYXBzYy1pbm5lci1ibG9jayxcclxuXHRcdFx0XHQuYXBzYy1jb3VudCB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjc2NTljO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5hcHNjLXlvdXR1YmUtaWNvbntcclxuXHRcdFx0XHQuYXBzYy1pbm5lci1ibG9jayxcclxuXHRcdFx0XHQuYXBzYy1jb3VudCB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNlNTJkMjc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLmFwc2Mtc291bmRjbG91ZC1pY29ue1xyXG5cdFx0XHRcdC5hcHNjLWlubmVyLWJsb2NrLFxyXG5cdFx0XHRcdC5hcHNjLWNvdW50IHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6I2ZmODgwMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYuYXBzYy1jb21tZW50LWljb257XHJcblx0XHRcdFx0LmFwc2MtaW5uZXItYmxvY2ssXHJcblx0XHRcdFx0LmFwc2MtY291bnQge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjojNDY0NjQ2O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5hcHNjLWVkaXQtaWNvbntcclxuXHRcdFx0XHQuYXBzYy1pbm5lci1ibG9jayxcclxuXHRcdFx0XHQuYXBzYy1jb3VudCB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiM4MzdkN2Q7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLmFwc2MtaW5zdGFncmFtLWljb257XHJcblx0XHRcdFx0LmFwc2MtaW5uZXItYmxvY2ssXHJcblx0XHRcdFx0LmFwc2MtY291bnQge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjojM2Y3MjliO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmFwc2MtaW5uZXItYmxvY2t7XHJcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdHotaW5kZXg6IDE7XHJcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQuc29jaWFsLWljb257XHJcblxyXG5cdFx0XHRcdCY6OmFmdGVye1xyXG5cdFx0XHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aXtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDE1cHg7XHJcblxyXG5cdFx0XHRcdFx0Ji5mYS1nb29nbGUtcGx1c3tcclxuXHRcdFx0XHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6ICdcXGVhNjQnO1xyXG5cdFx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvXCI7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5hcHNjLWljb25zLXdyYXBwZXJ7XHJcblx0Ji5hcHNjLXRoZW1lLTF7XHJcblx0XHQuYXBzYy1lYWNoLXByb2ZpbGV7XHJcblx0XHRcdG1heC13aWR0aDogMTc1cHg7XHJcblx0XHRcdHdpZHRoOiA1MCU7XHJcblx0XHRcdGhlaWdodDogNjBweDtcclxuXHRcdFx0bWluLWhlaWdodDogMDtcclxuXHRcdFx0bWFyZ2luOiAwIDAgNnB4IDA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOm50aC1jaGlsZCgybil7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiA2cHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6bnRoLWNoaWxkKDJuICsgMSl7XHJcblx0XHRcdFx0Y2xlYXI6IGJvdGg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdD4gYXtcclxuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdFx0cGFkZGluZzogMDtcclxuXHJcblx0XHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRcdC5zb2NpYWwtaWNvbjo6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDQycHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQuc29jaWFsLWljb257XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHR3aWR0aDogNDZweDtcclxuXHRcdFx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMTVweDtcclxuXHRcdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHQuZmw7XHJcblxyXG5cdFx0XHRcdFx0aXtcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxNXB4O1xyXG5cdFx0XHRcdFx0XHR0ZXh0LWluZGVudDogMC4zZW07XHJcblxyXG5cdFx0XHRcdFx0XHQmLmZhLWdvb2dsZS1wbHVze1xyXG5cdFx0XHRcdFx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnRlbnQ6ICdcXGVhNjQnO1xyXG5cdFx0XHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6IFwiZm9udGVsbG9cIjtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogMXB4O1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDMwcHg7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjogYXV0bztcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC4yNTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC5hcHNjLWNvdW50e1xyXG5cdFx0XHRcdFx0cGFkZGluZzogMTNweCAwIDAgMDtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IC01cHg7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQuYXBzYy1tZWRpYS10eXBle1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuYXBzYy10aGVtZS01e1xyXG5cdFx0LmFwc2MtZWFjaC1wcm9maWxle1xyXG5cdFx0XHR3aWR0aDogMzZweDtcclxuXHRcdFx0bWFyZ2luOiAycHg7XHJcblx0XHRcdG1pbi1oZWlnaHQ6IGF1dG87XHJcblx0XHRcdC5mbDtcclxuXHJcblx0XHRcdCY6bnRoLWNoaWxkKDVuICsgMSl7XHJcblx0XHRcdFx0Y2xlYXI6IGJvdGg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdD4gYXtcclxuXHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cclxuXHRcdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdFx0LmFwc2MtY291bnR7XHJcblx0XHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMHB4KTtcclxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMHB4KTtcclxuXHRcdFx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuc29jaWFsLWljb257XHJcblx0XHRcdGhlaWdodDogYXV0bztcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDM2cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LmFwc2MtaW5uZXItYmxvY2t7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblxyXG5cdFx0LmFwc2MtY291bnR7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0Ym90dG9tOiAxMDAlO1xyXG5cdFx0XHRsZWZ0OiA1MCU7XHJcblx0XHRcdHotaW5kZXg6IDMwO1xyXG5cdFx0XHRwYWRkaW5nOiAzcHggNXB4IDJweDtcclxuXHRcdFx0bWFyZ2luOiAwIDAgM3B4IDA7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNjY2M7XHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwyMHB4KTtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwyMHB4KTtcclxuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRcdC5iZHJzKDExcHgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5hcHNjLXRoZW1lLTN7XHJcblx0XHQuc29jaWFsLWljb257XHJcblx0XHRcdCY6OmFmdGVye1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5hcHNjLXRoZW1lLTR7XHJcblx0XHQuYXBzYy1lYWNoLXByb2ZpbGV7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHJcblx0XHRcdD4gYXtcclxuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzogOXB4IDE1cHggOXB4IDE1cHg7XHJcblx0XHRcdFx0bWluLXdpZHRoOiAxNzBweDtcclxuXHRcdFx0XHQuYmRycygzcHgpO1xyXG5cdFx0XHRcdC5vdmg7XHJcblxyXG5cdFx0XHRcdCY6bm90KC5hcHNjLWVkaXQtaWNvbik6bm90KC5hcHNjLWNvbW1lbnQtaWNvbil7XHJcblx0XHRcdFx0XHQuYXBzYy1jb3VudHtcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5zb2NpYWwtaWNvbntcclxuXHRcdFx0XHRpe1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLndpZGdldF9tYWlscG9ldF9mb3Jte1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcclxuXHQmLndpZGdldHtcclxuXHRcdHBhZGRpbmc6IDM1cHggMjNweCAxNXB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcclxuXHR9XHJcblxyXG5cdC5tYWlscG9ldF90ZXh0e1xyXG5cdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuXHR9XHJcblxyXG5cdC53aWRnZXR0aXRsZXtcclxuXHRcdC50YWM7XHJcblxyXG5cdFx0c3BhbntcclxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Lnd5c2lqYS1wYXJhZ3JhcGh7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuXHR9XHJcblxyXG5cdC5tYWlscG9ldF9mb3JtX3dpZGdldHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdG1heC13aWR0aDogNDAwcHg7XHJcblx0XHRtYXJnaW46IGF1dG87XHJcblx0XHQudGFjO1xyXG5cdH1cclxuXHJcblx0Lm1haWxwb2V0X3N1Ym1pdHtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX2NvbHVtbi5vbmVfZmlyc3QgJixcclxuXHRcdC5jbXNtYXN0ZXJzX2NvbHVtbi5vbmVfaGFsZiAme1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHR0b3A6IDBweDtcclxuXHRcdFx0cGFkZGluZzogMHB4IDclIDBweDtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR3aWR0aDogYXV0bztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5mb3JtRXJyb3J7XHJcblx0XHRsZWZ0OiBhdXRvIWltcG9ydGFudDtcclxuXHRcdHJpZ2h0OiAwJSFpbXBvcnRhbnQ7XHJcblx0XHR0b3A6IDAgIWltcG9ydGFudDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Bvc3RfcmVhZF9tb3JlLFxyXG4uY21zbWFzdGVyc19zbGlkZXJfcG9zdF9yZWFkX21vcmV7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdHBhZGRpbmc6MCAyNXB4O1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19wb3N0X2F1dGhvcixcclxuLmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfYXV0aG9yIHtcclxuXHQuY21zbWFzdGVyc19wb3N0X2F1dGhvcl9hdmF0YXIge1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxufVxyXG5cclxuLmVzZy1ncmlkIHtcclxuXHR1bCB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5ibG9ja3F1b3RlIHtcclxuXHRtYXJnaW46MCAwIDMwcHggMDtcclxuXHQuYmRsKDNweCk7XHJcblxyXG5cdD4gcDpvbmx5LWNoaWxkIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0fVxyXG59XHJcblxyXG50YWJsZSB7XHJcblx0bWFyZ2luOiAwIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7XHJcblx0Ym9yZGVyLXNwYWNpbmc6MTVweDtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdFxyXG5cdGNhcHRpb24ge1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRwYWRkaW5nOjIwcHg7XHJcblx0fVxyXG5cdFxyXG5cdCY6bm90KFtjbGFzc10pOm5vdChbaWRdKSB7XHJcblx0XHRib3JkZXItc3BhY2luZzowO1xyXG5cdFx0Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xyXG5cdFx0bWFyZ2luLWJvdHRvbToyNXB4O1xyXG5cdFx0XHJcblx0XHR0aCwgXHJcblx0XHR0ZCB7XHJcblx0XHRcdHBhZGRpbmc6MTBweDtcclxuXHRcdFx0LmJkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHR0Ym9keSB7XHJcblx0XHR0ciB7XHJcblx0XHRcdC5iZGI7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdC5iZGIoMCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0dGZvb3QgdHIge1xyXG5cdFx0LmJkO1xyXG5cdH1cclxufVxyXG5cclxuLnBscy1jb250YWluZXIsXHJcbi5wbHMtY29udGFpbmVyIHRhYmxlLFxyXG4uY21zbWFzdGVyc190YWJsZSxcclxuLnRyaWJlLW1pbmktY2FsZW5kYXIsXHJcbi50cmliZS1ldmVudHMtY2FsZW5kYXIsXHJcbi5zaG9wX3RhYmxlLFxyXG4uZ3JvdXBfdGFibGUsXHJcbi52YXJpYXRpb25zLFxyXG4uc2hvcF9hdHRyaWJ1dGVzIHtcclxuXHRib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7XHJcblx0Ym9yZGVyLXNwYWNpbmc6MDtcclxuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcbn1cclxuXHJcbkB7aW5wdXRfdGV4dH0sXHJcbnRleHRhcmVhLFxyXG5zZWxlY3QsXHJcbm9wdGlvbiB7XHJcblx0cGFkZGluZzpAaW5wdXRfcGFkIEBpbnB1dF9wYWQgKiAyO1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG5cdC5iZDtcclxuXHQuYmRycyhAYmRyc193aWR0aCk7XHJcbn1cclxuXHJcbnRleHRhcmVhIHtcclxuXHRvdmVyZmxvdzphdXRvO1xyXG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XHJcbn1cclxuXHJcbnNlbGVjdCB7XHJcblx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdHRleHQtaW5kZW50OjAuMDFweDtcclxuXHR0ZXh0LW92ZXJmbG93OicnO1xyXG5cdHBhZGRpbmc6QGlucHV0X3BhZCA0MHB4IEBpbnB1dF9wYWQgKEBpbnB1dF9wYWQgKiAyKTtcclxuXHQtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcclxuXHQtbW96LWFwcGVhcmFuY2U6bm9uZTtcclxuXHQtbXMtYXBwZWFyYW5jZTpub25lO1xyXG5cdGFwcGVhcmFuY2U6bm9uZSAhaW1wb3J0YW50O1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi8uLi8uLi9pbWcvc2VsZWN0LnBuZycpO1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDVweCBjZW50ZXI7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG59XHJcblxyXG5zZWxlY3RbbXVsdGlwbGVdIHtcclxuXHRoZWlnaHQ6YXV0bztcclxuXHRiYWNrZ3JvdW5kLWltYWdlOm5vbmU7XHJcblx0XHJcblx0b3B0aW9uIHtcclxuXHRcdHBhZGRpbmctbGVmdDowO1xyXG5cdFx0cGFkZGluZy1yaWdodDowO1xyXG5cdFx0YmFja2dyb3VuZDpub25lICFpbXBvcnRhbnQ7XHJcblx0fVxyXG59XHJcblxyXG5zZWxlY3Q6Oi1tcy1leHBhbmQge1xyXG4gIGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuaW5wdXRbdHlwZT10ZXh0XSxcclxuaW5wdXRbdHlwZT1zZWFyY2hdLFxyXG5pbnB1dFt0eXBlPXBhc3N3b3JkXSxcclxuaW5wdXRbdHlwZT1lbWFpbF0sXHJcbmlucHV0W3R5cGU9dGVsXSxcclxuaW5wdXRbdHlwZT11cmxdLFxyXG5pbnB1dFt0eXBlPW51bWJlcl0sXHJcbnRleHRhcmVhIHtcclxuXHQtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcclxuXHQtbW96LWFwcGVhcmFuY2U6bm9uZTtcclxuXHRhcHBlYXJhbmNlOm5vbmU7XHJcbn1cclxuXHJcbkB7aW5wdXRfdGV4dH0ge1xyXG5cdGhlaWdodDo1MHB4O1xyXG5cclxuXHQmW25hbWU9XCJwb3N0X3Bhc3N3b3JkXCJde1xyXG5cdFx0aGVpZ2h0OjM4cHg7XHJcblx0fVxyXG59XHJcblxyXG5Ae2lucHV0X3RleHR9OmZvY3VzLFxyXG50ZXh0YXJlYTpmb2N1cyB7XHJcblx0b3V0bGluZTpub25lO1xyXG59XHJcblxyXG5pbnB1dDotd2Via2l0LWF1dG9maWxsIHtcclxuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmF1dG9maWxsO1xyXG5cdC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPXN1Ym1pdF0sIFxyXG5pbnB1dFt0eXBlPWJ1dHRvbl0sIFxyXG5idXR0b24ge1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG5cdGN1cnNvcjpwb2ludGVyO1xyXG59XHJcblxyXG5zZWxlY3Qge1xyXG5cdG91dGxpbmU6bm9uZTtcclxufVxyXG5cclxub3B0aW9uIHtcclxuXHRvdXRsaW5lOm5vbmU7XHJcbn1cclxuXHJcbi5qZXRwYWNrX3N1YnNjcmlwdGlvbl93aWRnZXQgI3N1YnNjcmliZS1lbWFpbCBAe2lucHV0X3RleHR9LFxyXG4ud2lkZ2V0X21haWxwb2V0X2Zvcm0gQHtpbnB1dF90ZXh0fSB7XHJcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xyXG5cdHBhZGRpbmc6MCBAaW5wdXRfcGFkICogMiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jcGFnZSAubWFpbHBvZXRfc3VibWl0IHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50O1xyXG5cdG1hcmdpbjowICFpbXBvcnRhbnQ7XHJcblx0cGFkZGluZzogNHB4IDEwcHg7XHJcblx0LmJkKCk7XHJcbn1cclxuXHJcbi5zaW5nbGUuc2luZ2xlLXd5c2lqYXAgLmNtc21hc3RlcnNfb3Blbl9wb3N0IHtcclxuXHQ+ICoge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG4uZ2Zvcm1fd3JhcHBlciBAe2lucHV0X3RleHR9LFxyXG4uZ2Zvcm1fd3JhcHBlciB0ZXh0YXJlYSB7XHJcblx0cGFkZGluZzowIEBpbnB1dF9wYWQgKiAyICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5nZm9ybV93cmFwcGVyIHNlbGVjdCB7XHJcblx0cGFkZGluZzpAaW5wdXRfcGFkIEBpbnB1dF9wYWQgKiAyICFpbXBvcnRhbnQ7XHJcblx0bWFyZ2luOjAgIWltcG9ydGFudDtcclxufVxyXG5cclxubmF2IHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdGhlaWdodDoxMDAlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdHVsIHsgLyogY2xlYXIgdWwgc3R5bGVzICovXHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQ+IGRpdiB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdD4gZGl2ID4gdWwge1xyXG5cdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHotaW5kZXg6MjAyO1xyXG5cdFx0em9vbToxO1xyXG5cdFx0XHJcblx0XHR1bCB7XHJcblx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdFx0d2lkdGg6QG1pZF9uYXZfZHJvcGRvd25fd2lkdGg7XHJcblx0XHRcdG1hcmdpbjpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydCAwIDA7XHJcblx0XHRcdHBhZGRpbmc6QG1pZF9uYXZfZHJvcGRvd25fcGFkX3RvcCAwIEBtaWRfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q7XHJcblx0XHRcdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MTAwJTtcclxuXHRcdFx0ei1pbmRleDoyMDQ7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHRcclxuXHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0d2lkdGg6QHRvcF9uYXZfZHJvcGRvd25fd2lkdGg7XHJcblx0XHRcdFx0bWFyZ2luOkB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0IDAgMDtcclxuXHRcdFx0XHRwYWRkaW5nOkB0b3BfbmF2X2Ryb3Bkb3duX3BhZF90b3AgMCBAdG9wX25hdl9kcm9wZG93bl9wYWRfYm90O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHR3aWR0aDpAYm90X25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0XHRtYXJnaW46QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRcdHBhZGRpbmc6QGJvdF9uYXZfZHJvcGRvd25fcGFkX3RvcCAwIEBib3RfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHVsIHtcclxuXHRcdFx0XHRtYXJnaW46MCAwIDAgQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDtcclxuXHRcdFx0XHRsZWZ0OjEwMCU7XHJcblx0XHRcdFx0dG9wOi0oQG1pZF9uYXZfZHJvcGRvd25fcGFkX3RvcCArIDEpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5oZWFkZXJfdG9wICYge1xyXG5cdFx0XHRcdFx0bWFyZ2luOjAgMCAwIEB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ7XHJcblx0XHRcdFx0XHR0b3A6LShAdG9wX25hdl9kcm9wZG93bl9wYWRfdG9wICsgMSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0bWFyZ2luOjAgMCAwIEBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ7XHJcblx0XHRcdFx0XHR0b3A6LShAYm90X25hdl9kcm9wZG93bl9wYWRfdG9wICsgMSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpLm1lbnUtaXRlbS1kcm9wZG93bi1yaWdodCB7XHJcblx0XHRcdC50YXI7XHJcblx0XHRcdFxyXG5cdFx0XHQqIHtcclxuXHRcdFx0XHQudGFyO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRtYXJnaW46MCBAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0IDAgMDtcclxuXHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdHJpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MCBAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0IDAgMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciB7XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0dWwge1xyXG5cdFx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRsaSB7XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0bWFyZ2luOkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHR2aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHRcdFx0XHRvcGFjaXR5OjE7XHJcblxyXG5cdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjpAdG9wX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgMCAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kIDAgMDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0XHRcdGhlaWdodDpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRcdHRvcDotKEBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6QHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDotKEB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdFx0dG9wOi0oQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyIHtcclxuXHRcdFx0XHRcdG1hcmdpbjpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgMCAwO1xyXG5cdFx0XHRcdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xyXG5cdFx0XHRcdFx0b3BhY2l0eToxO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0dG9wOi0oQG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdFx0dG9wOi0oQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0dWwge1xyXG5cdFx0XHRcdFx0XHR2aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHRcdFx0XHRcdG9wYWNpdHk6MTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGxpOmhvdmVyIHtcclxuXHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOjAgMCAwIEBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdHdpZHRoOkBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0XHRcdGxlZnQ6LShAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6QHRvcF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHRcdFx0bGVmdDotKEB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOkBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6LShAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm1lbnUtaXRlbS1kcm9wZG93bi1yaWdodCB7XHJcblx0XHRcdFx0bGk6aG92ZXIge1xyXG5cdFx0XHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIEBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kIDAgMDtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbjowIEBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kIDAgMDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdFx0XHRyaWdodDotKEBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdFx0XHRyaWdodDotKEBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHotaW5kZXg6MjAzO1xyXG5cdFx0XHRcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0ei1pbmRleDoyMDQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHotaW5kZXg6MjA0O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQubWVudS1pdGVtLW1lZ2EtZGVzY3JpcHRpb24tY29udGFpbmVyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZzoxMHB4IDE1cHg7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5uYXZfdGl0bGUge1xyXG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcclxuXHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUge1xyXG5cdFx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5tZW51LWl0ZW0taGlkZS10ZXh0IHtcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHQubmF2X3RpdGxlIHtcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxyXG5cdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MCAuM2VtO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Jjpub3QoLm1lbnUtaXRlbS1pY29uKSB7XHJcblx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0LmJkcjtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0LmJkcigwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaS5tZW51LWl0ZW0tbWVnYSB1bCB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcblx0XHRcdGJvcmRlcjowO1xyXG5cdFx0XHR3aWR0aDphdXRvO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHR0b3A6YXV0bztcclxuXHRcdFx0Ym90dG9tOmF1dG87XHJcblx0XHRcdHotaW5kZXg6MjAzO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6YXV0bztcclxuXHRcdFx0bWFyZ2luOkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0IDAgMDtcclxuXHRcdFx0cGFkZGluZzoyMHB4IDAgMjJweDtcclxuXHRcdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDoxMDAlO1xyXG5cdFx0XHR6LWluZGV4OjIwMztcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0XHQuYmQ7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRtYXJnaW46QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRkaXNwbGF5OnRhYmxlO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MCAxNHB4O1xyXG5cdFx0XHRcdFx0LmJkcjtcclxuXHRcdFx0XHRcdC5iZGwoMCk7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRcdC5iZHIoMCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdD4gYSB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206NXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdFx0d2lkdGg6QG1pZF9uYXZfZHJvcGRvd25fd2lkdGg7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDpAYm90X25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmhvdmVyID4gdWwge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGE6ZW1wdHkge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaS5tZW51LWl0ZW0tbWVnYS1mdWxsd2lkdGgge1xyXG5cdFx0XHQ+IGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpIGEsIFxyXG5cdFx0XHQ+IGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpIHVsIHtcclxuXHRcdFx0XHR3aWR0aDphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm1lbnUtaXRlbS1tZWdhLWNvbHMtdHdvID4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkge1xyXG5cdFx0XHRcdHdpZHRoOjUwJTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5tZW51LWl0ZW0tbWVnYS1jb2xzLXRocmVlID4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkge1xyXG5cdFx0XHRcdHdpZHRoOjMzLjMzJTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5tZW51LWl0ZW0tbWVnYS1jb2xzLWZvdXIgPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XHJcblx0XHRcdFx0d2lkdGg6MjUlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm1lbnUtaXRlbS1tZWdhLWNvbHMtZml2ZSA+IGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpIHtcclxuXHRcdFx0XHR3aWR0aDoyMCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5mdWxsLXdpZHRoIHtcclxuXHRtaW4td2lkdGg6MTAwJTtcclxufVxyXG5cclxuYXVkaW8uZnVsbC13aWR0aCB7XHJcblx0d2lkdGg6MTAwJTtcclxufVxyXG5cclxuLmFsaWdubGVmdCwgXHJcbi5mbCB7XHJcblx0LmZsO1xyXG59XHJcblxyXG4uYWxpZ25yaWdodCwgXHJcbi5mciB7XHJcblx0LmZyO1xyXG59XHJcblxyXG4uYWxpZ25jZW50ZXIge1xyXG5cdC50YWM7XHJcbn1cclxuXHJcbmltZyB7XHJcblx0Ji5hbGlnbmxlZnQsIFxyXG5cdCYuZmwge1xyXG5cdFx0bWFyZ2luLXJpZ2h0OkBibG9ja3NfaG9yX3BhZDtcclxuXHRcdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHR9XHJcblx0XHJcblx0Ji5hbGlnbnJpZ2h0LCBcclxuXHQmLmZyIHtcclxuXHRcdG1hcmdpbi1sZWZ0OkBibG9ja3NfaG9yX3BhZDtcclxuXHRcdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHR9XHJcblx0XHJcblx0Ji5hbGlnbmNlbnRlciB7XHJcblx0XHRtYXJnaW46MCBhdXRvIEBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQmLmFsaWdubm9uZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0fVxyXG59XHJcblxyXG4uZG4ge1xyXG5cdC5kbjtcclxufVxyXG5cclxuLnRhbCwgXHJcbi50YV9sZWZ0IHtcclxuXHQudGFsO1xyXG59XHJcblxyXG4udGFjLCBcclxuLnRhX2NlbnRlciB7XHJcblx0LnRhYztcclxufVxyXG5cclxuLnRhciwgXHJcbi50YV9yaWdodCB7XHJcblx0LnRhcjtcclxufVxyXG5cclxuLmNsLCBcclxuLmNsZWFyIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdC5jbDtcclxufVxyXG5cclxuLm92aCB7XHJcblx0Lm92aDtcclxufVxyXG5cclxuLmxvd19jYXNlIHtcclxuXHR0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2U7XHJcbn1cclxuXHJcbi51cF9jYXNlIHtcclxuXHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jlc3BvbnNpdmVfd2lkdGgge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0d2lkdGg6YXV0bztcclxuXHR2aXNpYmlsaXR5OmhpZGRlbjtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfY29sdW1uIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRtaW4taGVpZ2h0OjFweDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfY29sdW1uX3N0aWNreSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdHRvcDogMDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfY29sdW1uX2lubmVyIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdG1pbi1oZWlnaHQ6MXB4O1xyXG59XHJcblxyXG4ub25lX2ZpcnN0LCBcclxuLm9uZV9oYWxmLCBcclxuLm9uZV90aGlyZCwgXHJcbi50d29fdGhpcmQsIFxyXG4ub25lX2ZvdXJ0aCwgXHJcbi50aHJlZV9mb3VydGgsIFxyXG4ub25lX2ZpZnRoLCBcclxuLm9uZV9zaXh0aCB7XHJcblx0bWFyZ2luOjAgQGNvbF9tYXI7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmZsO1xyXG59XHJcblxyXG4ub25lX3NpeHRoIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDYpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC5vbmVfc2l4dGgge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNiksIDIpO1xyXG59XHJcblxyXG4ub25lX2ZpZnRoIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDUpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC5vbmVfZmlmdGgge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNSksIDIpO1xyXG59XHJcblxyXG4ub25lX2ZvdXJ0aCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm93X25vX21hcmdpbiA+IC5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4gPiAub25lX2ZvdXJ0aCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSwgMik7XHJcbn1cclxuXHJcbi5vbmVfdGhpcmQge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV90aGlyZCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSwgMik7XHJcbn1cclxuXHJcbi5vbmVfaGFsZiB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm93X25vX21hcmdpbiA+IC5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4gPiAub25lX2hhbGYge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gMiksIDIpO1xyXG59XHJcblxyXG4udHdvX3RoaXJkIHtcclxuXHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAyKSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC50d29fdGhpcmQge1xyXG5cdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDIpIC8gMyksIDIpO1xyXG59XHJcblxyXG4udGhyZWVfZm91cnRoIHtcclxuXHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAzKSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC50aHJlZV9mb3VydGgge1xyXG5cdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDMpIC8gNCksIDIpO1xyXG59XHJcblxyXG4ub25lX2ZpcnN0IHtcclxuXHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdGZsb2F0Om5vbmU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmNsO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC5vbmVfZmlyc3Qge1xyXG5cdHdpZHRoOnJvdW5kKDEwMCUsIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbWFyZ2luIHtcclxuXHQmLmNtc21hc3RlcnNfcm93X2NvbHVtbnNfYmVoYXZpb3Ige1xyXG5cdFx0LmRpc3BsYXlfZmxleDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzXzEzMTMxMyB7XHJcblx0XHRcdHdpZHRoOjk5Ljk5JTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfY29sdW1uIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfY29sdW1uX2lubmVyIHtcclxuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHQuZGlzcGxheV9mbGV4O1xyXG5cdFx0XHRcdC5mbGV4X2RpcmVjdGlvbihjb2x1bW4pO1xyXG5cdFx0XHRcdC5hbGlnbl9jb250ZW50KGZsZXgtc3RhcnQpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IC5jbXNtYXN0ZXJzX2ZlYXR1cmVkX2Jsb2NrIHtcclxuXHRcdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnNhZmFyaV9vbmx5ICYsIFxyXG5cdFx0XHQuc2FmYXJpX21vYmlsZV9vbmx5ICYge1xyXG5cdFx0XHRcdC5kaXNwbGF5X2ZsZXg7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY29sdW1uX2lubmVyIHtcclxuXHRcdFx0XHRcdG1pbi13aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdFx0XHQuZmxleF9kaXJlY3Rpb24ocm93KTtcclxuXHRcdFx0XHRcdC5mbGV4X3dyYXAod3JhcCk7XHJcblx0XHRcdFx0XHQuYWxpZ25fY29udGVudChmbGV4LXN0YXJ0KTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PiAuY21zbWFzdGVyc19mZWF0dXJlZF9ibG9jayB7XHJcblx0XHRcdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuW2RhdGEtYW5pbWF0aW9uXSB7XHJcblx0Lm9wKDApO1xyXG59XHJcblxyXG5bZGF0YS1hbmltYXRpb25dLmFuaW1hdGVkIHtcclxuXHQub3AoMSk7XHJcbn1cclxuXHJcbiNwYWdlIHtcclxuXHQmLmNtc21hc3RlcnNfYm94ZWQge1xyXG5cdFx0d2lkdGg6QGNvbnRfd2lkdGhfZGVmO1xyXG5cdFx0bWFyZ2luOjAgYXV0bztcclxuXHJcblx0XHQjaGVhZGVyLCBcclxuXHRcdCNmb290ZXIge1xyXG5cdFx0XHR3aWR0aDpAY29udF93aWR0aF9kZWY7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4jcGFnZSwgXHJcbiNtYWluLCBcclxuI21pZGRsZSwgXHJcbi5taWRkbGVfY29udGVudCwgXHJcbiNib3R0b20sIFxyXG4jZm9vdGVyLCBcclxuLmhlYWRsaW5lLCBcclxuLmhlYWRsaW5lX291dGVyLCBcclxuLm1pZGRsZV9pbm5lciwgXHJcbi5jbXNtYXN0ZXJzX3JvdywgXHJcbi5jbXNtYXN0ZXJzX3Jvd19vdXRlciwgXHJcbi5jbXNtYXN0ZXJzX3Jvd19vdXRlcl9wYXJlbnQge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcbn1cclxuXHJcbi5wb3N0LXBhc3N3b3JkLWZvcm0sXHJcbi5oZWFkZXJfdG9wX2lubmVyLCBcclxuLmhlYWRlcl9taWRfaW5uZXIsIFxyXG4uaGVhZGVyX2JvdF9pbm5lciwgXHJcbi5jb250ZW50X3dyYXAsIFxyXG4uaGVhZGxpbmVfaW5uZXIsIFxyXG4uYm90dG9tX291dGVyLCBcclxuLmZvb3Rlcl9pbm5lciwgXHJcbi5jbXNtYXN0ZXJzX3Jvd19pbm5lciwgXHJcbi5lcnJvcl9pbm5lciB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0d2lkdGg6QGNvbnRfd2lkdGhfZGVmO1xyXG5cdHBhZGRpbmc6MCBAYmxvY2tzX2hvcl9wYWQ7XHJcblx0Lm0wYTtcclxufVxyXG5cclxuLmNvbnRlbnRfd3JhcCAucG9zdC1wYXNzd29yZC1mb3JtIHtcclxuXHR3aWR0aDphdXRvO1xyXG5cdHBhZGRpbmc6MDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm93IHtcclxuXHQmLmNtc21hc3RlcnNfcm93X3RvcF9kZWZhdWx0LmNtc21hc3RlcnNfcm93X2JvdF9kZWZhdWx0IHtcclxuXHRcdHotaW5kZXg6MDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfbGVmdF9kaWFnb25hbDpiZWZvcmUsIFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X2xlZnRfZGlhZ29uYWw6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDonJztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6aW5oZXJpdDtcclxuXHRcdHdpZHRoOjE1MCU7XHJcblx0XHRoZWlnaHQ6MTUwcHg7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjA7XHJcblx0XHR0b3A6MDtcclxuXHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XHJcblx0XHR0cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtcclxuXHRcdC1tb3otdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7XHJcblx0XHQtbXMtdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7XHJcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfbGVmdF9kaWFnb25hbDphZnRlciB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbTowO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0XHR0cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfcmlnaHRfZGlhZ29uYWw6YmVmb3JlLCBcclxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF9yaWdodF9kaWFnb25hbDphZnRlciB7XHJcblx0XHRjb250ZW50OicnO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O1xyXG5cdFx0d2lkdGg6MTUwJTtcclxuXHRcdGhlaWdodDoxNTBweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0cmlnaHQ6YXV0bztcclxuXHRcdHRvcDowO1xyXG5cdFx0Ym90dG9tOmF1dG87XHJcblx0XHR6LWluZGV4OjE7XHJcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdHRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDtcclxuXHRcdC1tb3otdHJhbnNmb3JtLW9yaWdpbjowIDA7XHJcblx0XHQtbXMtdHJhbnNmb3JtLW9yaWdpbjowIDA7XHJcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOjAgMDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfcmlnaHRfZGlhZ29uYWw6YWZ0ZXIge1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206MDtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0dHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfemlnemFnOmJlZm9yZSwgXHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfemlnemFnOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6MTBweCA1cHg7XHJcblx0XHRoZWlnaHQ6NXB4O1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0cmlnaHQ6MDtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjEwMCU7XHJcblx0XHR6LWluZGV4OjE7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3ppZ3phZzphZnRlciB7XHJcblx0XHR0b3A6MTAwJTtcclxuXHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcblx0XHR0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfdG9wX3RyaWFuZ2xlOmJlZm9yZSwgXHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfdHJpYW5nbGU6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDonJztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6aW5oZXJpdDtcclxuXHRcdHotaW5kZXg6MTtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHQucG9zX2FicygzMHB4LCAzMHB4LCAwLCAwLCAtMTVweCwgYXV0byk7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3RyaWFuZ2xlOmFmdGVyIHtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOi0xNXB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19yb3dfb3V0ZXJfcGFyZW50IHtcclxuXHRcdHBhZGRpbmc6LjFweCAwO1xyXG5cdFx0ei1pbmRleDoyO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19yb3dfaW5uZXIge1xyXG5cdFx0Ji5jbXNtYXN0ZXJzX3Jvd19mdWxsd2lkdGgge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRwYWRkaW5nOjAgQGJsb2Nrc19ob3JfcGFkICogMjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4ge1xyXG5cdFx0XHQ+IC5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4ge1xyXG5cdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gLmNtc21hc3RlcnNfY29sdW1uIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19yb3dfb3ZlcmxheSB7XHJcblx0XHQuZnVsbHdpZHRoX2luX2Jsb2NrO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm93X21hcmdpbiB7XHJcblx0bWFyZ2luOjAgLUBjb2xfbWFyIC0gMC4wNztcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxufVxyXG5cclxuLmNvbnRlbnRfd3JhcCB7XHJcblx0PiAubWlkZGxlX2NvbnRlbnQge1xyXG5cdFx0JjplbXB0eXtcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYucl9zaWRlYmFyLCBcclxuXHQmLmxfc2lkZWJhciwgXHJcblx0Lm9wZW5lZC1hcnRpY2xlLCBcclxuXHQuY21zbWFzdGVyc190YWJzIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3JvdyB7XHJcblx0XHRcdC5jdGJ4O1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfcm93X2lubmVyIHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNvbnRlbnRfd3JhcC5jbXNtYXN0ZXJzX3NldF9mdWxsd2lkdGgge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cGFkZGluZzowO1xyXG59XHJcblxyXG4jcGFnZSwgXHJcbiNtaWRkbGUsIFxyXG4ubWlkZGxlX2lubmVyLCBcclxuLm1pZGRsZV9jb250ZW50LCBcclxuI2JvdHRvbSwgXHJcbi5ib3R0b21fYmcsIFxyXG4uY29udGVudF93cmFwLCBcclxuLmNtc21hc3RlcnNfcm93X2lubmVyLCBcclxuLmNtc21hc3RlcnNfcm93X21hcmdpbiwgXHJcbi5jbXNtYXN0ZXJzX2NvbHVtbl9pbm5lciB7XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG59XHJcblxyXG4jbWlkZGxlIHtcclxuXHR6LWluZGV4OjE7XHJcbn1cclxuXHJcbi5taWRkbGVfY29udGVudCB7XHJcblx0cGFkZGluZzo1MHB4IDA7XHJcblxyXG5cdC5wcm9maWxlX3BhZ2UgJiB7XHJcblx0XHRwYWRkaW5nOjMwcHggMDtcclxuXHR9XHJcbn1cclxuXHJcbi5taWRkbGVfY29udGVudDplbXB0eSB7XHJcblx0LmRuO1xyXG59XHJcblxyXG4uY29udGVudCB7XHJcblx0d2lkdGg6QGNvbnRlbnRfd2lkdGg7XHJcblx0cGFkZGluZzpAY29udF92ZXJ0X3BhZCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5mbDtcclxuXHJcblx0Ji5mciB7XHJcblx0XHQuZnI7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhciB7XHJcblx0d2lkdGg6QHNpZGViYXJfd2lkdGg7XHJcblx0cGFkZGluZzpAY29udF92ZXJ0X3BhZCAwIDYwcHggNTBweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuZnI7XHJcblxyXG5cdCYuZmwge1xyXG5cdFx0cGFkZGluZzpAY29udF92ZXJ0X3BhZCA4MHB4IEBjb250X3ZlcnRfcGFkIDA7XHJcblx0XHQuZmw7XHJcblx0fVxyXG59XHJcblxyXG4uYm90dG9tX2JnIHtcclxuXHRwYWRkaW5nLXRvcDowcHg7XHJcblx0cGFkZGluZy1ib3R0b206NDBweDtcclxufVxyXG5cclxuLmJvdHRvbV9pbm5lciB7XHJcblx0bWFyZ2luOjAgLUBjb2xfbWFyO1xyXG5cdHBhZGRpbmctdG9wOiAxMDBweDtcclxuXHQuYmR0KCk7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cclxuXHRhc2lkZSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGZsb2F0OmxlZnQ7XHJcblx0XHRtYXJnaW46MCBAY29sX21hcjtcclxuXHJcblx0XHQud2lkZ2V0IHtcclxuXHRcdFx0LndpZGdldHRpdGxle1xyXG5cdFx0XHRcdHNwYW57XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vKiBJbnN0YWdyYW0gKi9cclxuI3NiaV9sb2FkIHtcclxuXHRwYWRkaW5nLXRvcDowICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSWNvbnMgKioqKioqKioqKioqKioqKioqL1xyXG4vKiBnbG9iYWwgKi9cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jb21tZW50OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4N2MnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fbGlrZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg5JzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3ZpZXc6YmVmb3JlIHsgY29udGVudDogJ1xcZTg4Nic7IH1cclxuXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc2VhcmNoOmJlZm9yZSB7IFxyXG5cdGNvbnRlbnQ6ICdcXGU4YTQnOyBcclxufVxyXG5cclxuYm9keSAuY21zbWFzdGVyc190aGVtZV9pY29uX3Jlc3BfbmF2OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MjUnOyBmb250LWZhbWlseTonZm9udGVsbG8nOyB9XHJcbmJvZHkgLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9yZXNwX25hdi5hY3RpdmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMic7IGZvbnQtZmFtaWx5Oidmb250ZWxsby1jdXN0b20nOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcGVyc29uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTMnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25faW1hZ2U6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzMSc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jaGVjazpiZWZvcmUgeyBjb250ZW50OiAnXFxlYWJiJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NwaW5uZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTlmZCc7IH1cclxuYm9keSAuY21zbWFzdGVyc190aGVtZV9pY29uX2NhbmNlbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAyJzsgZm9udC1mYW1pbHk6J2ZvbnRlbGxvLWN1c3RvbSc7IH1cclxuXHJcbi8qIGFycm93cyAqL1xyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3BhZ2luYXRpb25fcHJldjpiZWZvcmUsIFxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NsaWRlX3ByZXY6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jb21tZW50c19uYXZfcHJldjpiZWZvcmUsIFxyXG4uY21zbWFzdGVyc19wcmV2X2Fycm93IHNwYW46YmVmb3JlIHsgXHJcblx0Y29udGVudDogJ1xcZTgwYic7IFxyXG5cdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvLWN1c3RvbVwiICFpbXBvcnRhbnQ7XHJcbn1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9wYWdpbmF0aW9uX25leHQ6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zbGlkZV9uZXh0OmJlZm9yZSwgXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fY29tbWVudHNfbmF2X25leHQ6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfbmV4dF9hcnJvdyBzcGFuOmJlZm9yZSB7IFxyXG5cdGNvbnRlbnQ6ICdcXGU4MGMnOyBcclxuXHRmb250LWZhbWlseTogXCJmb250ZWxsby1jdXN0b21cIiAhaW1wb3J0YW50O1xyXG59XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc2xpZGVfdG9wOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMjMnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc2xpZGVfYm90dG9tOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMjAnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcmVzcF9uYXZfc2xpZGVfdXA6YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMic7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9yZXNwX25hdl9zbGlkZV9kb3duOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMjAnOyB9XHJcblxyXG5cclxuLyogV2lkZ2V0IEFkZCBJbmZvICovXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fdXNlcl9tYWlsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4ODUnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fdXNlcl93ZWJzaXRlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MzYnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fdXNlcl9waG9uZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA1JzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfYWRkcmVzczpiZWZvcmUgeyBjb250ZW50OiAnXFxlODk1JzsgfVxyXG5cclxuLyogVHdpdHRlciBzdHJpcGUgKi9cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl91c2VyX3R3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZWI5YSc7IH1cclxuXHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEVsZW1lbnRzICoqKioqKioqKioqKioqKioqKi9cclxuLyogSWNvbiBBcnJvdyBHbG9iYWwgU3R5bGVzICovXHJcbi5jbXNtYXN0ZXJzX3ByZXZfYXJyb3csIFxyXG4uY21zbWFzdGVyc19uZXh0X2Fycm93IHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR3aWR0aDozMHB4O1xyXG5cdGhlaWdodDozMHB4O1xyXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQudGFjO1xyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LnZhbGlnbl9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0c3BhbiB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LWZhbWlseTonZm9udGVsbG8nO1xyXG5cdFx0XHRmb250LXNpemU6MjVweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MTVweDtcclxuXHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHNwZWFrOm5vbmU7XHJcblx0XHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7XHJcblx0XHRcdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBQaXhlbCBBcnJvdyBnbG9iYWwgc3R5bGVzICovXHJcbi5jbXNtYXN0ZXJzX3ByZXZfYXJyb3dfcGl4ZWwsXHJcbi5jbXNtYXN0ZXJzX25leHRfYXJyb3dfcGl4ZWwge1xyXG5cdGJhY2tncm91bmQ6IzAwMDAwMDtcclxuXHQucG9zX2FicygxcHgsIDFweCwgMCwgYXV0byk7XHJcblxyXG5cdCY6YmVmb3JlLCBcclxuXHQmOmFmdGVyLCBcclxuXHRzcGFuOmJlZm9yZSwgXHJcblx0c3BhbjphZnRlciB7XHJcblx0XHRjb250ZW50OicnO1xyXG5cdFx0YmFja2dyb3VuZDp0cmFuc3BhcmVudDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0d2lkdGg6MXB4O1xyXG5cdFx0LmJkdDtcclxuXHRcdC5iZGI7XHJcblx0fVxyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGhlaWdodDozcHg7XHJcblx0XHRsZWZ0OjFweDtcclxuXHRcdHRvcDotMXB4O1xyXG5cdH1cclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdGhlaWdodDo1cHg7XHJcblx0XHRsZWZ0OjJweDtcclxuXHRcdHRvcDotMnB4O1xyXG5cdH1cclxuXHRcclxuXHRzcGFuOmJlZm9yZSB7XHJcblx0XHRoZWlnaHQ6N3B4O1xyXG5cdFx0bGVmdDozcHg7XHJcblx0XHR0b3A6LTNweDtcclxuXHR9XHJcblx0XHJcblx0c3BhbjphZnRlciB7XHJcblx0XHRoZWlnaHQ6OXB4O1xyXG5cdFx0bGVmdDo0cHg7XHJcblx0XHR0b3A6LTRweDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX25leHRfYXJyb3dfcGl4ZWwge1xyXG5cdHJpZ2h0OjA7XHJcblx0bGVmdDphdXRvO1xyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjFweDtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0bGVmdDphdXRvO1xyXG5cdFx0cmlnaHQ6MnB4O1xyXG5cdH1cclxuXHRcclxuXHRzcGFuOmJlZm9yZSB7XHJcblx0XHRsZWZ0OmF1dG87XHJcblx0XHRyaWdodDozcHg7XHJcblx0fVxyXG5cdFxyXG5cdHNwYW46YWZ0ZXIge1xyXG5cdFx0bGVmdDphdXRvO1xyXG5cdFx0cmlnaHQ6NHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfdG9wX2Fycm93X3BpeGVsLCBcclxuLmNtc21hc3RlcnNfYm90X2Fycm93X3BpeGVsIHtcclxuXHRiYWNrZ3JvdW5kOiMwMDAwMDA7XHJcblx0LnBvc19hYnMoMXB4LCAxcHgsIDAsIDAsIC00cHgpO1xyXG5cclxuXHQmOmJlZm9yZSwgXHJcblx0JjphZnRlciwgXHJcblx0c3BhbjpiZWZvcmUsIFxyXG5cdHNwYW46YWZ0ZXIge1xyXG5cdFx0Y29udGVudDonJztcclxuXHRcdGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGhlaWdodDoxcHg7XHJcblx0XHQuYmRsO1xyXG5cdFx0LmJkcjtcclxuXHR9XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdHdpZHRoOjNweDtcclxuXHRcdHRvcDoxcHg7XHJcblx0XHRsZWZ0Oi0xcHg7XHJcblx0fVxyXG5cclxuXHQmOmFmdGVyIHtcclxuXHRcdHdpZHRoOjVweDtcclxuXHRcdHRvcDoycHg7XHJcblx0XHRsZWZ0Oi0ycHg7XHJcblx0fVxyXG5cclxuXHRzcGFuOmJlZm9yZSB7XHJcblx0XHR3aWR0aDo3cHg7XHJcblx0XHR0b3A6M3B4O1xyXG5cdFx0bGVmdDotM3B4O1xyXG5cdH1cclxuXHJcblx0c3BhbjphZnRlciB7XHJcblx0XHR3aWR0aDo5cHg7XHJcblx0XHR0b3A6NHB4O1xyXG5cdFx0bGVmdDotNHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfYm90X2Fycm93X3BpeGVsIHtcclxuXHR0b3A6NHB4O1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbToxcHg7XHJcblx0fVxyXG5cclxuXHQmOmFmdGVyIHtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjJweDtcclxuXHR9XHJcblxyXG5cdHNwYW46YmVmb3JlIHtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjNweDtcclxuXHR9XHJcblxyXG5cdHNwYW46YWZ0ZXIge1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206NHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFBvc3QgUGFzc3dvcmQgRm9ybSAqL1xyXG4ucG9zdC1wYXNzd29yZC1mb3JtIHtcclxuXHRwYWRkaW5nLXRvcDo0MHB4O1xyXG5cclxuXHRwOmZpcnN0LWNoaWxkIHtcclxuXHRcdGZvbnQtd2VpZ2h0OmJvbGQ7XHJcblx0fVxyXG5cclxuXHRsYWJlbCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR9XHJcblxyXG5cdGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdH1cclxuXHJcblx0aW5wdXRbdHlwZT1zdWJtaXRdIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0aGVpZ2h0OjM4cHg7XHJcblx0XHRsaW5lLWhlaWdodDozOHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFByZWxvZGFlciAqL1xyXG4ucHJlbG9hZGVyIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0aGVpZ2h0OjA7XHJcblx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQudGFjO1xyXG5cdFxyXG5cdC5mdWxsLXdpZHRoIHtcclxuXHRcdC5mdWxsd2lkdGhfaW5fYmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdCYuaGlnaEltZyB7XHJcblx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0LmZ1bGwtd2lkdGgge1xyXG5cdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHRvcDphdXRvO1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogUmVzaXphYmxlIEJsb2NrICovXHJcbi5yZXNpemFibGVfYmxvY2sge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6MDtcclxuXHRwYWRkaW5nLWJvdHRvbTpAcmVzcF9ibG9ja3NfcGFkO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdC5mdWxsLXdpZHRoIHtcclxuXHRcdC5mdWxsd2lkdGhfaW5fYmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogSW1nIFdyYXBwZXIgKi9cclxuLmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhbDtcclxuXHQub3ZoO1xyXG5cclxuXHQuaW1nX3BsYWNlaG9sZGVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1zaXplOjQwcHg7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGlnaEltZyB7XHJcblx0XHQuaW1nX3BsYWNlaG9sZGVyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogSW1nIFJvbGxvdmVyICovXHJcbi5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdC5pbWdfcGxhY2Vob2xkZXIge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6NDBweDtcclxuXHRcdFx0LnBvc19hYnM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuaGlnaEltZyB7XHJcblx0XHQuaW1nX3BsYWNlaG9sZGVyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0LnRhYztcclxuXHRcdC5vcCgwKTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX29wZW5fbGluaywgXHJcblx0XHQuY21zbWFzdGVyc19pbWFnZV9saW5rIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmOmhvdmVyIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XHJcblx0XHRcdC5vcCgxKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBQbGFjZWhvbGRlciBTbWFsbCAqL1xyXG4uaW1nX3BsYWNlaG9sZGVyX3NtYWxsIHtcclxuXHRoZWlnaHQ6NjBweDtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRmb250LXNpemU6MThweDtcclxuXHRcdC5wb3NfYWJzO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFZpZGVvIFdyYXBwZXIgKi9cclxuLndwLXZpZGVvLXNob3J0Y29kZSwgXHJcbi5tZWpzLWxheWVyIHtcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxufVxyXG5cclxuLm1lanMtY29udGFpbmVyIHtcclxuXHQmLndwLXZpZGVvLXNob3J0Y29kZSwgXHJcblx0Ji53cC1hdWRpby1zaG9ydGNvZGUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc192aWRlb193cmFwIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG5cdGhlaWdodDowO1xyXG5cdHBhZGRpbmctYm90dG9tOkByZXNwX2Jsb2Nrc19wYWQ7XHJcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQ+IGRpdiB7XHJcblx0XHR3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0fVxyXG5cdFxyXG5cdGlmcmFtZSB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0bWF4LXdpZHRoOm5vbmU7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdG1hcmdpbi1ib3R0b206MDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblxyXG5cdFx0KntcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LndwLXZpZGVvLXNob3J0Y29kZSwgXHJcblx0Lm1lanMtbGF5ZXIge1xyXG5cdFx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xyXG5cdFx0aGVpZ2h0OjEwMCUgIWltcG9ydGFudDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHRcclxuXHRcdC5tZWpzLW92ZXJsYXktYnV0dG9uIHtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHR6LWluZGV4OiA1O1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xyXG5cdFx0XHR3aWR0aDogNjBweDtcclxuXHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdFx0XHR0ZXh0LWluZGVudDogNHB4O1xyXG5cdFx0XHQuYmQoM3B4KTtcclxuXHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0LnRhYztcclxuXHJcblx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRjb250ZW50OiAnXFxlOTc2JztcclxuXHRcdFx0XHRmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMjVweDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDogNTRweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Lm1lanMtb3ZlcmxheS1wbGF5e1xyXG5cdFx0Jjpob3ZlcntcclxuXHRcdFx0Lm1lanMtb3ZlcmxheS1idXR0b24ge1xyXG5cdFx0XHRcdG9wYWNpdHk6IDAuNTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFNlYXJjaCBCYXIgKi9cclxuLnNlYXJjaF9iYXJfd3JhcCB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQuc2VhcmNoX2ZpZWxkIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0aW5wdXQge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcclxuXHRcdFx0I21pZGRsZSAmLCBcclxuXHRcdFx0I2JvdHRvbSAmIHtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6QGlucHV0X3BhZCAqIDI7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDozNnB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5zZWFyY2hfYnV0dG9uIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0LnBvc19hYnMoNTBweCwgMTAwJSwgYXV0bywgMCk7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRidXR0b24ge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQuYnhzaF9ub25lO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZToxOHB4O1xyXG5cdFx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogU29jaWFsIEljb25zICovXHJcbi5zb2NpYWxfd3JhcCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRoZWlnaHQ6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR6LWluZGV4OiAxO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LnNvY2lhbF93cmFwX2lubmVyIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0dWwge1xyXG5cdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHR9XHJcblx0XHJcblx0bGkge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MCA1cHggMCAwO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcclxuXHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0YSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6MzBweDtcclxuXHRcdGhlaWdodDozMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIENvcmUgT3dsIENhcm91c2VsIENTUyB2MS4zLjIgKi9cclxuLmNtc21hc3RlcnNfb3dsX3NsaWRlcjpub3QoLm93bC1jYXJvdXNlbCkge1xyXG5cdD4gZGl2IHtcclxuXHRcdHdpZHRoOjA7XHJcblx0XHRoZWlnaHQ6MDtcclxuXHRcdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdH1cclxufVxyXG5cclxuLm93bC1jYXJvdXNlbCB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQtbXMtdG91Y2gtYWN0aW9uOnBhbi15O1xyXG5cdC5kbjtcclxuXHRcclxuXHQub3dsLXdyYXBwZXItb3V0ZXIge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcclxuXHRcdCYuYXV0b0hlaWdodCB7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNpdGlvbjpoZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHQtbW96LXRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcclxuXHRcdFx0LW1zLXRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcclxuXHRcdFx0LW8tdHJhbnNpdGlvbjpoZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHR0cmFuc2l0aW9uOmhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHR9XHJcblx0XHJcblx0XHQub3dsLXdyYXBwZXIge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0LmRuO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudDonLic7XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6MDtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdGhlaWdodDowO1xyXG5cdFx0XHRcdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdFx0XHRcdC5jbDtcclxuXHRcdFx0fVxyXG5cdFx0XHJcblx0XHRcdC5vd2wtaXRlbSB7XHJcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm93bC13cmFwcGVyLCBcclxuXHRcdC5vd2wtaXRlbSB7XHJcblx0XHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7XHJcblx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuaWVfb25seSAmIHtcclxuXHRcdFx0Lm93bC13cmFwcGVyLCBcclxuXHRcdFx0Lm93bC1pdGVtIHtcclxuXHRcdFx0XHQtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtY29udHJvbHMge1xyXG5cdFx0LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO1xyXG5cdFx0LWtodG1sLXVzZXItc2VsZWN0Om5vbmU7XHJcblx0XHQtbW96LXVzZXItc2VsZWN0Om5vbmU7XHJcblx0XHQtbXMtdXNlci1zZWxlY3Q6bm9uZTtcclxuXHRcdHVzZXItc2VsZWN0Om5vbmU7XHJcblx0XHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwKTtcclxuXHR9XHJcbn1cclxuXHJcbi5vd2wtcGFnaW5hdGlvbiB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdGxlZnQ6MDtcclxuXHRib3R0b206MDtcclxuXHQudGFjO1xyXG5cdFxyXG5cdC5vd2wtcGFnZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOjEwcHg7XHJcblx0XHRoZWlnaHQ6MTBweDtcclxuXHRcdG1hcmdpbjowIDNweCAxcHg7XHJcblx0XHR0ZXh0LWluZGVudDotOTk5OXB4O1xyXG5cdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHQuYmRycyg1MCUpO1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmLmFjdGl2ZSB7XHJcblx0XHRcdGN1cnNvcjpkZWZhdWx0O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLm93bC1idXR0b25zIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdC50YWM7XHJcblx0XHJcblx0PiBkaXYge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cclxuXHRcdCYuZGlzYWJsZWR7XHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0XHRvcGFjaXR5OiAwLjM1O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFNsaWRlIFRvcCBCdXR0b24gKi9cclxuI3NsaWRlX3RvcCB7XHJcblx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0d2lkdGg6NTBweDtcclxuXHRoZWlnaHQ6NTBweDtcclxuXHRwb3NpdGlvbjpmaXhlZDtcclxuXHRib3R0b206MTEwcHg7XHJcblx0cmlnaHQ6MjBweDtcclxuXHR6LWluZGV4Ojk5OTk5O1xyXG5cdC5kbjtcclxuXHRcclxuXHQmOmJlZm9yZSB7XHJcblx0XHRmb250LXNpemU6MjVweDtcclxuXHRcdGxpbmUtaGVpZ2h0OjQ4cHg7XHJcblx0fVxyXG5cdFxyXG5cdD4gc3BhbiB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHRleHQtaW5kZW50Oi05OTk5cHg7XHJcblx0fVxyXG59XHJcblxyXG4uaGVhZGxpbmV7XHJcblx0Ji5oZWFkbGluZV9kaXNhYmxlZHtcclxuXHRcdCYgfiAubWlkZGxlX2lubmVyICAub3BlbmVkLWFydGljbGUuYmxvZ3tcclxuXHRcdFx0cGFkZGluZy1sZWZ0OiAxMCU7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwJTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCY6bm90KC5oZWFkbGluZV9kaXNhYmxlZCl7XHJcblx0XHQmIH4gLm1pZGRsZV9pbm5lciAgLm9wZW5lZC1hcnRpY2xlLmJsb2d7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwJTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYgfiAubWlkZGxlX2lubmVyIC5jb250ZW50X3dyYXAgIC5vcGVuZWQtYXJ0aWNsZS5ibG9ne1xyXG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xyXG5cdFx0cGFkZGluZy1yaWdodDogMDtcclxuXHR9XHJcbn1cclxuXHJcbi8qIE9wZW5lZCBBcnRpY2xlICovXHJcbi5vcGVuZWQtYXJ0aWNsZSB7XHJcblx0Lm1pZGRsZV9jb250ZW50ICYge1xyXG5cdFx0cGFkZGluZzowIDAgNTBweDtcclxuXHJcblx0XHQmLnBvcnRmb2xpbywgXHJcblx0XHQmLnByb2ZpbGVzIHtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuI3BhZ2UgLmNtc21hc3RlcnNfcG9zdF9kYXRle1xyXG5cdCY6OmJlZm9yZXtcclxuXHRcdGZvbnQtc2l6ZTogMTNweDtcclxuXHRcdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHR9XHJcbn1cclxuXHJcbi8qIExpa2VzIGFuZCBDb21tZW50cyAqL1xyXG4uY21zbWFzdGVyc19saWtlcywgXHJcbi5jbXNtYXN0ZXJzX2NvbW1lbnRzIHtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG5cdD4gYSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE2cHg7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0Y3Vyc29yOmRlZmF1bHQ7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRtYXJnaW46MCAwIDAgNHB4O1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfbGlrZXN7XHJcblx0JiArIC5jbXNtYXN0ZXJzX2NvbW1lbnRze1xyXG5cdFx0cGFkZGluZy1sZWZ0OiAxM3B4O1xyXG5cdH1cclxuXHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2NvbW1lbnRze1xyXG5cdCYgKyAuY21zbWFzdGVyc19saWtlc3tcclxuXHRcdHBhZGRpbmctbGVmdDogMTNweDtcclxuXHR9XHJcblxyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb21tZW50cyB7XHJcblx0PiBhIHtcclxuXHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmICsgLmNtc21hc3RlcnNfbGlrZXMgIHtcclxuXHRcdHBhZGRpbmctbGVmdDogMTNweDtcclxuXHR9XHJcbn1cclxuXHJcbi8qIFZpZXdzICovXHJcbi5jbXNtYXN0ZXJzX3ZpZXdzIHtcclxuXHQmICsgLmNtc21hc3RlcnNfY29tbWVudHMgLFxyXG5cdCYgKyAuY21zbWFzdGVyc19saWtlcyB7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDEzcHg7XHJcblx0fVxyXG5cclxuXHQ+IHNwYW4ge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MTZweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MThweDtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdG1hcmdpbjowIDAgMCA2cHg7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogQnV0dG9uICovXHJcbi5idXR0b24sIFxyXG5pbnB1dFt0eXBlPXN1Ym1pdF0sIFxyXG5pbnB1dFt0eXBlPWJ1dHRvbl0sIFxyXG5idXR0b24ge1xyXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdHBhZGRpbmc6MCAyNXB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC50YWM7XHJcblx0LmJkKDApO1xyXG5cdC5iZHJzKEBiZHJzX3dpZHRoKTtcclxuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHJcbn1cclxuXHJcblxyXG4vKiBJdGVtcyBGaWx0ZXIgKi9cclxuLmNtc21hc3RlcnNfaXRlbXNfZmlsdGVyX3dyYXAge1xyXG5cdHBhZGRpbmc6MCAwIDQwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19zb3J0X2Jsb2NrIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX3NvcnRfYnV0IHtcclxuXHRcdG1pbi13aWR0aDoxMjBweDtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MCAwIDAgNXB4O1xyXG5cdFx0cGFkZGluZzowIDMycHggMCAxNnB4O1xyXG5cdFx0LmZsO1xyXG5cdFx0LnRhbDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MjJweDtcclxuXHRcdFx0d2lkdGg6MTBweDtcclxuXHRcdFx0aGVpZ2h0OjZweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6NnB4O1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdHJpZ2h0OjE2cHg7XHJcblx0XHRcdG1hcmdpbjphdXRvO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnJldmVyc2VkIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl9ibG9jayB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl9idXQge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfbGlzdCB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MCAyMHB4IDAgMDtcclxuXHRcdC50YWw7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmNsO1xyXG5cclxuXHRcdGxpIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0bWFyZ2luOjAgNXB4IDVweCAwO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzowIDIycHg7XHJcblx0XHRcdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY3VycmVudCBhIHtcclxuXHRcdFx0XHRjdXJzb3I6ZGVmYXVsdDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIE1vcmUgSXRlbXMgTG9hZGVyIGFuZCBQYWdpbmF0aW9uICovXHJcbi5jbXNtYXN0ZXJzX3dyYXBfbW9yZV9pdGVtcyB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19sb2FkaW5nIHtcclxuXHRcdG1pbi1oZWlnaHQ6NjBweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MzBweDtcclxuXHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIDAsIGF1dG8sIDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfd3JhcF9pdGVtc19sb2FkZXIge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdG1hcmdpbjo0NXB4IDAgMDtcclxuXHRwYWRkaW5nOiAwIDAgNDVweDtcclxuXHQudGFjO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDonJztcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6MXB4O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHRyaWdodDowO1xyXG5cdFx0Ym90dG9tOjA7XHJcblx0XHRtYXJnaW46YXV0bztcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2xvYWRlciB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHBhZGRpbmc6IDVweCAxNXB4O1xyXG5cdFx0LmJkKDApO1xyXG5cdH1cclxufVxyXG5cclxuZGl2LnN1YnBhZ2VfbmF2IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQ+IHN0cm9uZyB7XHJcblx0XHRmb250LXdlaWdodDpib2xkO1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgNXB4IDAgMDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHR9XHJcblx0XHJcblx0PiBzcGFuLFxyXG5cdD4gYSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHBhZGRpbmc6MCA1cHg7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc193cmFwX3BhZ2luYXRpb24ge1xyXG5cdG1hcmdpbjo2MHB4IDAgMDtcclxuXHQub3ZoO1xyXG5cdC50YWM7XHJcblxyXG5cdHVsIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Zm9udC1zaXplOiAwO1xyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjFweDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRtYXJnaW46YXV0bztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRtYXJnaW46MCAtMXB4IDAgMDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHQuYmQ7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucGFnZS1udW1iZXJzIHtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDo0NHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0bWluLXdpZHRoOjQ0cHg7XHJcblx0XHRcdFx0aGVpZ2h0OjQ0cHg7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCY6ZW1wdHkge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFBvc3QgTmF2aWdhdGlvbiAqL1xyXG4ucG9zdF9uYXYge1xyXG5cdHBhZGRpbmc6IDMwcHggMDtcclxuXHRtYXJnaW46IDMwcHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0PiBkaXYge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHJcblx0XHQ+IGEge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0bWluLWhlaWdodDo2MHB4O1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0XHRcdC5wb3NfYWJzKDYwcHgsIDYwcHgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wb3N0X25hdl9jb250IHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHBhZGRpbmc6MHB4IDA7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdC50YWw7XHJcblxyXG5cdFx0XHRzcGFue1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcblx0XHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAwIDZweCAwIDA7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDEycHg7XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfcHJldl9wb3N0IHtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OjA7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6MTBweDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0XHRcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDE4cHg7XHJcblx0XHRcdFx0LmJkbCg0cHgpO1xyXG5cclxuXHRcdFx0XHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfaW1nX3dyYXAgKyAucG9zdF9uYXZfY29udCB7XHJcblx0XHRcdFx0cGFkZGluZzoxMHB4IDAgMTBweCA4MHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucG9zdF9uYXZfY29udCB7XHJcblx0XHRcdFx0LnRhbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfbmV4dF9wb3N0IHtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OjEwcHg7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6MDtcclxuXHRcdFx0LmZyO1xyXG5cdFx0XHRcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAxOHB4O1xyXG5cdFx0XHRcdC5iZHIoNHB4KTtcclxuXHJcblx0XHRcdFx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2ltZ193cmFwICsgLnBvc3RfbmF2X2NvbnQge1xyXG5cdFx0XHRcdHBhZGRpbmc6MTBweCA4MHB4IDEwcHggMDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnBvc3RfbmF2X2NvbnQge1xyXG5cdFx0XHRcdC50YXI7XHJcblxyXG5cdFx0XHRcdHNwYW57XHJcblx0XHRcdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjogNHB4IDAgMCA2cHg7XHJcblx0XHRcdFx0XHRcdC5mcjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnBvc3RfbmF2X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRzcGFuIHtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MTRweDtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC0wLjhweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBTaGFyZSBQb3N0cyAqL1xyXG4uc2hhcmVfcG9zdHMsXHJcbi5jbXNtYXN0ZXJzX3NoYXJpbmcge1xyXG5cdHBhZGRpbmc6NTBweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHJcblx0LnNoYXJlX3Bvc3RzX3RpdGxlIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfaW5mb193cmFwIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDI1cHg7XHJcblxyXG5cdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRmb250LXNpemU6IDI0cHg7XHJcblx0XHRcdG1hcmdpbjogMXB4IDMwcHggMCAwO1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19zaGFyZSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0bWFyZ2luOiAwIDI1cHggMCAwO1xyXG5cclxuXHRcdC5uYW1le1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHR9XHJcblxyXG5cdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc192aWV3c193cmFwe1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdFxyXG5cdFx0Lm5hbWV7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNWaWV3IHtcclxuXHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHJcblx0XHRzcGFue1xyXG5cdFx0XHRtYXJnaW46IDA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5zaGFyZV9wb3N0c19pbm5lciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowIDZweCA2cHggMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Zm9udC1zaXplOjBweDtcclxuXHRcdHdpZHRoOiA0MHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDQwcHg7XHJcblx0XHRoZWlnaHQ6IDQwcHg7XHJcblx0XHQuYmRycygzcHgpO1xyXG5cdFx0Lm92aDtcclxuXHRcdC5mbDtcclxuXHRcdC50YWM7XHJcblxyXG5cdFx0c3BhbntcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHR6LWluZGV4OiAxO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5zb2NpYWxfdGV4dF9saW5rJntcclxuXHRcdFx0cGFkZGluZzogNXB4IDIwcHggNHB4IDEycHg7XHJcblx0XHRcdGhlaWdodDogYXV0bztcclxuXHRcdFx0d2lkdGg6IGF1dG87XHJcblx0XHRcdFxyXG5cdFx0XHQmLmxpbmtlZGlue1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0d2lkdGg6IDFlbTtcclxuXHRcdFx0XHRoZWlnaHQ6IDFlbTtcclxuXHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHRcdG1hcmdpbjogMCAxMHB4IDAgMDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5zb2NpYWxfdmVydGljYWwme1xyXG5cdFx0XHRjbGVhcjogYm90aDtcclxuXHRcdH1cclxuXHJcblx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5mYWNlYm9va3tcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzNkNTk5NjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5nb29nbGV7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNkYzRiM2Y7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYudHdpdHRlcntcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzI0YTFlZjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5waW50ZXJlc3R7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNkZjI0MzM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYubGlua2VkaW57XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICMwOTc3YjI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYudHVtYmxye1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMzY0NjViO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnJlZGRpdHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZlNDQxZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zdHVtYmxldXBvbntcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2VhNDkyZjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlcntcclxuXHRcdFx0Jjo6YWZ0ZXJ7XHJcblx0XHRcdFx0b3BhY2l0eTogMC4xNTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0ei1pbmRleDogMTtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTNweDtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOjphZnRlcntcclxuXHRcdFx0Y29udGVudDogXCJcIjtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHR0b3A6IDA7XHJcblx0XHRcdGJvdHRvbTogMDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdHotaW5kZXg6IDA7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDA7XHJcblx0XHRcdG9wYWNpdHk6IDAuMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogQWJvdXQgQXV0aG9yICovXHJcbi5hYm91dF9hdXRob3Ige1xyXG5cdHBhZGRpbmc6NDRweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LmFib3V0X2F1dGhvcl90aXRsZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOjI4cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5hYm91dF9hdXRob3JfaW5uZXIge1xyXG5cdFx0cGFkZGluZzozMHB4O1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmFib3V0X2F1dGhvcl9hdmF0YXIge1xyXG5cdFx0bWFyZ2luOjAgMzhweCAwIDA7XHJcblx0XHQuZmw7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuYWJvdXRfYXV0aG9yX2NvbnQge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0cGFkZGluZzowIDAgMTBweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5hYm91dF9hdXRob3JfY29udF90aXRsZSB7XHJcblx0XHRtYXJnaW46MCAwIDEwcHg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogU2luZ2xlIFBvc3QgU2xpZGVyICovXHJcbi5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXIge1xyXG5cdHBhZGRpbmc6NDZweCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LnByZWxvYWRlciB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3Bvc3RzX3NsaWRlcl9wYWQ7XHJcblx0XHRcclxuXHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX3RpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MzBweDtcclxuXHRcdHBhZGRpbmc6MCAxMTBweCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaW5uZXIge1xyXG5cdFx0bWFyZ2luOjAgLTEwcHg7XHJcblx0XHRcclxuXHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdHBhZGRpbmc6MCAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW0ge1xyXG5cdFx0bWluLXdpZHRoOjIwMHB4O1xyXG5cdFx0cGFkZGluZzowIDEwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2RhdGV7XHJcblx0XHRcdC5wdWJsaXNoZWR7XHJcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW1fb3V0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcG9zdF9jYXRlZ29yeXtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMTVweDtcclxuXHRcdGxlZnQ6IDE1cHg7XHJcblx0XHR6LWluZGV4OiA1O1xyXG5cdFx0d2lkdGg6IGF1dG87XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaXRlbV9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjE0cHggMCAyMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW1fdGl0bGUge1xyXG5cdFx0bWFyZ2luOjEwcHggMCAwO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdH1cclxuXHRcclxuXHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRyaWdodDowO1xyXG5cdFx0dG9wOi02NHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFNpbmdsZSBQaW5ncyBMaXN0ICovXHJcbi5jbXNtYXN0ZXJzX3BpbmdzX2xpc3Qge1xyXG5cdHBhZGRpbmc6NDZweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQucGluZ3NsaXN0IHtcclxuXHRcdC5waW5nYmFjayB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRwYWRkaW5nOjhweCA1MHB4IDhweCAwO1xyXG5cdFx0XHQuYmRiO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmRiKDApO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY29tbWVudC1ib2R5IHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuZWRpdC1saW5rIHtcclxuXHRcdFx0XHRcdC5wb3NfYWJzKGF1dG8sYXV0byxhdXRvLDAsMCwwKTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jb21tZW50LWVkaXQtbGluayB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogUG9zdCBDb21tZW50cyAqL1xyXG4ucG9zdF9jb21tZW50cyB7XHJcblx0cGFkZGluZzozMHB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQmICsgLmNvbW1lbnQtcmVzcG9uZCB7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0fVxyXG5cclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0LnBvc3RfY29tbWVudHNfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCA0MHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fY29udGVudCB7XHJcblx0XHQ+IHVsLFxyXG5cdFx0PiBvbCB7XHJcblx0XHRcdG1hcmdpbjowIDAgMjBweDtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0aW1nIHtcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb21tZW50c19jbG9zZWQge1xyXG5cdG1hcmdpbjoyMHB4IDA7XHJcbn1cclxuXHJcblxyXG4vKiBQb3N0IENhdGVnb3JpZXMgKi9cclxuLmNtc21hc3RlcnNfcG9zdF9jYXRlZ29yeSB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0cGFkZGluZzowIDAgOHB4O1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHQub3ZoO1xyXG5cdC5jbDtcclxuXHRcclxuXHQuY21zbWFzdGVyc19jYXRfY29sb3Ige1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBhZGRpbmc6MnB4IDEzcHggMXB4O1xyXG5cdFx0bWFyZ2luOjAgNXB4IDVweCAwO1xyXG5cdFx0Lm92aDtcclxuXHRcdC5mbDtcclxuXHRcdGNsZWFyOiBub25lO1xyXG5cdH1cclxufVxyXG5cclxuLmNvbW1lbnRzX25hdiB7XHJcblx0cGFkZGluZzozMHB4IDA7XHJcblx0Lm92aDtcclxuXHJcblx0PiBzcGFuIHtcclxuXHRcdC5mbDtcclxuXHJcblx0XHRhIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblxyXG5cdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6ICdcXGU4MGYnO1xyXG5cdFx0XHRcdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvLWN1c3RvbVwiICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0bWFyZ2luOiAwIDE1cHggMCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudHNfbmF2X25leHQge1xyXG5cdFx0LmZyO1xyXG5cclxuXHRcdGEge1xyXG5cdFx0XHQmOjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudDogJ1xcZTgxMCc7XHJcblx0XHRcdFx0Zm9udC1mYW1pbHk6IFwiZm9udGVsbG8tY3VzdG9tXCIgIWltcG9ydGFudDtcclxuXHRcdFx0XHRtYXJnaW46IDAgMCAwIDE1cHg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY29tbWVudGxpc3Qge1xyXG5cdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRtYXJnaW46MDtcclxuXHRwYWRkaW5nOiAyLjUlIDUlO1xyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LmNsX2FmdGVyO1xyXG5cdH1cclxuXHRcclxuXHQuY2hpbGRyZW4ge1xyXG5cdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjAgMCAwIDcwcHg7XHJcblx0fVxyXG5cdFxyXG5cdD4gLmNvbW1lbnQge1xyXG5cdFx0JjpsYXN0LWNoaWxke1xyXG5cdFx0XHQ+IC5jb21tZW50LWJvZHkgPiAuY29tbWVudC1jb250ZW50e1xyXG5cdFx0XHRcdC5iZGIoMCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jb21tZW50IHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzoyNnB4IDAgMDtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbSB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9kYXRlIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2F2YXRhciB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luOjAgMThweCAwIDA7XHJcblx0XHQuZmw7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9jb250IHtcclxuXHRcdHBhZGRpbmc6MTVweCAwIDI1cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5iZGI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9jb250X2luZm8ge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9kYXRle1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiAqIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdHBhZGRpbmc6MCAyNHB4IDAgMDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0cGFkZGluZzowOyBcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9jb250ZW50IHtcclxuXHRcdHBhZGRpbmctdG9wOjI1cHg7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTJweDtcclxuXHRcdFxyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY29tbWVudC1yZXBseS1saW5re1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIENvbW1lbnQgUmVzcG9uZCAqL1xyXG4uY29tbWVudC1yZXNwb25kIHtcclxuXHRwYWRkaW5nOjQlO1xyXG5cdG1hcmdpbjogNTBweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmNsO1xyXG5cclxuXHQuY29tbWVudGxpc3QgJntcclxuXHRcdHBhZGRpbmc6IDA7XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50LWZvcm0tY29va2llcy1jb25zZW50IHtcclxuXHRcdGZsb2F0Om5vbmU7XHJcblx0XHQuY2w7XHJcblx0XHRcclxuXHRcdGlucHV0LCBcclxuXHRcdGxhYmVsIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0bWFyZ2luOiAwIDAgMTBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGFiZWwge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDo1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCNyZXBseS10aXRsZXtcclxuXHRcdHBhZGRpbmc6MCAxMHB4IDBweDtcclxuXHR9XHJcblxyXG5cdC5jb21tZW50LXJlcGx5LXRpdGxlIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHRzbWFsbCB7XHJcblx0XHRcdC5mcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Zm9ybSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cGFkXHJcblx0XHRtYXJnaW46MTVweCAwIDA7XHJcblx0XHJcblx0XHRsYWJlbCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206MTBweDtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjJweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0ZXh0YXJlYSB7XHJcblx0XHRcdG1pbi1oZWlnaHQ6MTg2cHg7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nOjAgMTBweCAxMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY29tbWVudC1mb3JtIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jb21tZW50LWZvcm0tYXV0aG9yLCBcclxuXHRcdC5jb21tZW50LWZvcm0tZW1haWwge1xyXG5cdFx0XHR3aWR0aDo1MCU7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdGlucHV0IHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jb21tZW50LWZvcm0tY29tbWVudCB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjIwcHg7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNvbW1lbnQtZm9ybS1jb21tZW50LCBcclxuXHRcdC5mb3JtLXN1Ym1pdCB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjEycHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5mb3JtLXN1Ym1pdCB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRvdmVyZmxvdzpoaWRkZW47XHJcblx0XHRcdHBhZGRpbmctdG9wOjI2cHg7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogRGVmYXVsdCBzcXVhcmUgc2VwYXJhdG9yICovXHJcbi5jbXNtYXN0ZXJzX3Byb2plY3RfZ3JpZCAuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciA+IHNwYW4sIFxyXG4uY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZSAuY21zbWFzdGVyc19wcm9qZWN0X21ldGEgPiBzcGFuLCBcclxuLmNtc21hc3RlcnNfc2l0ZW1hcF93cmFwIC5jbXNtYXN0ZXJzX3NpdGVtYXAgPiBsaSA+IHVsID4gbGkgPiB1bCA+IGxpIGEsIFxyXG4uY21zbWFzdGVyc19zaXRlbWFwX3dyYXAgLmNtc21hc3RlcnNfc2l0ZW1hcF9hcmNoaXZlID4gbGkgYSwgXHJcbi5jbXNtYXN0ZXJzX2FyY2hpdmVfdHlwZSAuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1faW5mbyA+IHNwYW4ge1xyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6J1xcZTgwMSc7XHJcblx0XHRmb250LWZhbWlseTonZm9udGVsbG8tY3VzdG9tJztcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR3aWR0aDo0cHg7XHJcblx0XHRoZWlnaHQ6NHB4O1xyXG5cdFx0Zm9udC1zaXplOjRweDtcclxuXHRcdGxpbmUtaGVpZ2h0OjRweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0dG9wOjA7XHJcblx0XHRib3R0b206MDtcclxuXHRcdHJpZ2h0OjEwcHg7XHJcblx0XHRsZWZ0OmF1dG87XHJcblx0XHRtYXJnaW46YXV0bztcclxuXHR9XHJcbn1cclxuXHJcbi5ub2NvbW1lbnRzIHtcclxuXHRtYXJnaW46NTBweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKlx0SGVhZGVyICsgQ2VudGVyZWQgKyBSaWdodCArIEZpeGVkIFZlcnNpb25zICovXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyICoqKioqKioqKioqKioqKioqKi9cclxuI2hlYWRlciB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHR6LWluZGV4Ojk5OTk7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIFRvcCAqKioqKioqKioqKioqKioqKiovXHJcbi5oZWFkZXJfdG9wIHtcclxuXHQuaGVhZGVyX3RvcF9idXQge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDozMnB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdC5iZHQ7XHJcblx0XHQuZG47XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdGZvbnQtc2l6ZToyNHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoyNHB4O1xyXG5cdFx0XHQucG9zX2FicztcclxuXHRcdFx0dG9wOi00cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wX291dGVyIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfbGlxdWlkICZ7XHJcblx0XHRcdC5iZGI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wX2lubmVyIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmhlYWRlcl90b3BfaW5uZXJfY29udHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX2JveGVkICZ7XHJcblx0XHRcdC5iZGI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wX3JpZ2h0IHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0LmZyO1xyXG5cdH1cclxuXHRcclxuXHQuc29jaWFsX3dyYXAge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdG1hcmdpbi1yaWdodDoxMnB4O1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRmb250LXNpemU6MThweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MThweDtcclxuXHRcdFx0d2lkdGg6MThweDtcclxuXHRcdFx0aGVpZ2h0OjE4cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC50b3BfbmF2X3dyYXAge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdH1cclxuXHRcclxuXHQucmVzcG9uc2l2ZV90b3BfbmF2IHtcclxuXHRcdGZvbnQtc2l6ZToxNnB4O1xyXG5cdFx0d2lkdGg6MzBweDtcclxuXHRcdGhlaWdodDozMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZG47XHJcblx0XHQubTBhO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmFjdGl2ZTpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OidcXGU4MDInO1xyXG5cdFx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdFx0Zm9udC1mYW1pbHk6XCJmb250ZWxsby1jdXN0b21cIjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmhlYWRlcl90b3BfbGVmdCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBhZGRpbmc6MCAyMHB4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQubWV0YV93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1heC13aWR0aDogMTAwJTtcclxuXHRcdFxyXG5cdFx0PiAqIHtcclxuXHRcdFx0bWFyZ2luOjAgMTBweCAwIDA7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSwgXHJcblx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcclxuXHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdOmJlZm9yZSwgXHJcblx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl06YmVmb3JlIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDowLjVlbTtcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBwIHtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuYWRyIHtcclxuXHRcdFx0d2hpdGUtc3BhY2U6bm93cmFwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgVG9wIE5hdmlnYXRpb24gKioqKioqKioqKioqKioqKioqL1xyXG4udG9wX2xpbmVfbmF2IHtcclxuXHR6LWluZGV4OjIwNTtcclxuXHRcclxuXHQ+IGxpIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0LmJkcjtcclxuXHRcdC5iZGwoMCk7XHJcblx0XHRcclxuXHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdC5iZHIoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gYSB7XHJcblx0XHRcdHBhZGRpbmc6MCA3cHg7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHR1bCB7XHJcblx0XHRhIHtcclxuXHRcdFx0cGFkZGluZzo0cHggMTVweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIE1pZCAqKioqKioqKioqKioqKioqKiovXHJcbi5oZWFkZXJfbWlkIHtcclxuXHQuY2w7XHJcblx0XHJcblx0Ji5oZWFkZXJfbWlkX3Njcm9sbHtcclxuXHRcdG1hcmdpbi10b3A6IC0xcHg7XHJcblx0fVxyXG5cclxuXHQuaGVhZGVyX21pZF9pbm5lcl9jb250IHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX2JveGVkICZ7XHJcblx0XHRcdC5iZGI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuaGVhZGVyX21pZF9vdXRlciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX2xpcXVpZCAme1xyXG5cdFx0XHQuYmRiO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX21pZF9pbm5lciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmxvZ29fd3JhcCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHQuZW5hYmxlX2hlYWRlcl9jZW50ZXJlZCAmIHtcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdFx0Lm0wYTtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5sb2dvX3RleHRfd3JhcCB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC50aXRsZSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjFlbTtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC0zcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC50aXRsZV90ZXh0IHtcclxuXHRcdFx0cGFkZGluZzowIDAgMCAzcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5sb2dvIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdGltZyB7XHJcblx0XHRcdFx0bWF4LWhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdC5wb3NfYWJzKGF1dG8sIGF1dG8sIDAsIGF1dG8pO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5lbmFibGVfaGVhZGVyX2NlbnRlcmVkICYge1xyXG5cdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5sb2dvX3JldGluYSB7XHJcblx0XHRcdFx0LmRuO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5yZXNwX21pZF9uYXZfd3JhcCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdG1hcmdpbjowIDAgMCAyMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZG47XHJcblx0XHQuZnI7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucmVzcF9taWRfbmF2X291dGVyIHtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5yZXNwX21pZF9uYXYge1xyXG5cdFx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MTRweDtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0d2lkdGg6MjhweDtcclxuXHRcdFx0aGVpZ2h0OjI4cHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmFjdGl2ZTpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6J1xcZTgwMic7XHJcblx0XHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHRcdFx0Zm9udC1mYW1pbHk6XCJmb250ZWxsby1jdXN0b21cIjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcdFxyXG5cdC5taWRfc2VhcmNoX2J1dF93cmFwIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0bWFyZ2luOjAgMCAwIDVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZyO1xyXG5cclxuXHRcdCYgKyAubWlkX25hdl93cmFwe1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQubWlkX3NlYXJjaF9idXQge1xyXG5cdFx0XHRmb250LXNpemU6MTZweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MTZweDtcclxuXHRcdFx0d2lkdGg6MTdweDtcclxuXHRcdFx0aGVpZ2h0OjI4cHg7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LnBvc19hYnM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNvY2lhbF93cmFwIHtcclxuXHRcdC5lbmFibGVfaGVhZGVyX2NlbnRlcmVkICYge1xyXG5cdFx0XHQuZmw7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5zb2NpYWxfd3JhcF9pbm5lciB7XHJcblx0XHRcdC50YXI7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjEycHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToxOHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxOHB4O1xyXG5cdFx0XHR3aWR0aDoyNnB4O1xyXG5cdFx0XHRoZWlnaHQ6MjZweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNsb2dhbl93cmFwIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXgtd2lkdGg6NjUlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHotaW5kZXg6IDE7XHJcblx0XHQuZnI7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdCYgKyAud2lkZ2V0X3NwX2xvY2F0aW9uX3dlYXRoZXJfd2lkZ2V0X2NvbnRlbnR7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDYwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5lbmFibGVfaGVhZGVyX2NlbnRlcmVkICYge1xyXG5cdFx0XHQuZnI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5zbG9nYW5fd3JhcF9pbm5lciB7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHQudGFyO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuc2xvZ2FuX3dyYXBfdGV4dCB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFxyXG5cdFx0XHQ+ICoge1xyXG5cdFx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSwgXHJcblx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxyXG5cdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXTpiZWZvcmUsIFxyXG5cdFx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl06YmVmb3JlIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6MC41ZW07XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHAge1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmFkciB7XHJcblx0XHRcdFx0d2hpdGUtc3BhY2U6bm93cmFwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5taWRfbmF2X3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIE1pZCBOYXZpZ2F0aW9uICoqKioqKioqKioqKioqKioqKi9cclxuLm1pZF9uYXYge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdHdpZHRoOmF1dG87XHJcblx0aGVpZ2h0OmF1dG87XHJcblx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFxyXG5cdD4gbGkge1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0bWFyZ2luOjAgNXB4IDAgMDtcclxuXHRcdC5iZHIoMCk7XHJcblx0XHQuYmRsKDApO1xyXG5cclxuXHRcdCY6aG92ZXIsXHJcblx0XHQmLmN1cnJlbnQtbWVudS1hbmNlc3RvcixcclxuXHRcdCYuY3VycmVudC1tZW51LWl0ZW17XHJcblx0XHRcdD4gYSAubmF2X2l0ZW1fd3JhcDo6YmVmb3Jle1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cclxuXHRcdD4gYSB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cGFkZGluZzowcHggMTJweCAwcHg7XHJcblx0XHRcdC5iZDtcclxuXHJcblx0XHRcdFxyXG5cdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdC5uYXZfaXRlbV93cmFwOjpiZWZvcmV7XHJcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gLm5hdl9pdGVtX3dyYXAge1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdFx0XHRoZWlnaHQ6M3B4O1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRib3R0b206LTRweDtcclxuXHRcdFx0XHRcdGxlZnQ6LTFweDtcclxuXHRcdFx0XHRcdHJpZ2h0Oi0xcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5uYXZfdGFnIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246dG9wO1xyXG5cdFx0bWFyZ2luOjAgMCAwIDVweDtcclxuXHR9XHJcblx0XHJcblx0Lm5hdl9zdWJ0aXRsZSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cGFkZGluZzozcHggMDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIEJvdCAqKioqKioqKioqKioqKioqKiovXHJcbi5oZWFkZXJfYm90IHtcclxuXHQuY2w7XHJcblx0XHJcblx0LmhlYWRlcl9ib3Rfb3V0ZXIge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHJcblx0XHQuY21zbWFzdGVyc19saXF1aWQgJntcclxuXHRcdFx0LmJkYjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5oZWFkZXJfYm90X2lubmVyX2NvbnQge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfYm94ZWQgJntcclxuXHRcdFx0LmJkYjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmhlYWRlcl9ib3RfaW5uZXIge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5lbmFibGVfaGVhZGVyX2NlbnRlcmVkICYge1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucmVzcF9ib3RfbmF2X3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5kbjtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdC5yZXNwX2JvdF9uYXZfb3V0ZXIge1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnJlc3BfYm90X25hdiB7XHJcblx0XHRcdGZvbnQtc2l6ZToxNHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxNHB4O1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHR3aWR0aDoyOHB4O1xyXG5cdFx0XHRoZWlnaHQ6MjhweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LnBvc19hYnM7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6aG92ZXIsIFxyXG5cdFx0XHQmLmFjdGl2ZSB7XHJcblx0XHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5ib3Rfc2VhcmNoX2J1dF93cmFwIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0bWFyZ2luOjAgMCAwIDVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZyO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmJvdF9zZWFyY2hfYnV0IHtcclxuXHRcdFx0Zm9udC1zaXplOjE2cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE2cHg7XHJcblx0XHRcdHdpZHRoOjI4cHg7XHJcblx0XHRcdGhlaWdodDoyOHB4O1xyXG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQucG9zX2FicztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuZW5hYmxlX2hlYWRlcl9yaWdodCAmIHtcclxuXHRcdFx0bWFyZ2luOjAgNXB4IDAgMDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuZW5hYmxlX2hlYWRlcl9jZW50ZXJlZCAmIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdGZsb2F0Om5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5ib3RfbmF2X3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mbDtcclxuXHRcdFxyXG5cdFx0LmVuYWJsZV9oZWFkZXJfcmlnaHQgJiB7XHJcblx0XHRcdC5mcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmVuYWJsZV9oZWFkZXJfY2VudGVyZWQgJiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRmbG9hdDpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgQm90IE5hdmlnYXRpb24gKioqKioqKioqKioqKioqKioqL1xyXG4uYm90X25hdiB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0PiBsaSB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdG1hcmdpbjowIDBweCAwIDA7XHJcblx0XHQuYmRyKDApO1xyXG5cdFx0LmJkbCgwKTtcclxuXHJcblx0XHRcdFxyXG5cdFx0Jjpob3ZlcixcclxuXHRcdCYuY3VycmVudC1tZW51LWFuY2VzdG9yLFxyXG5cdFx0Ji5jdXJyZW50LW1lbnUtaXRlbXtcclxuXHRcdFx0PiBhIC5uYXZfaXRlbV93cmFwOjpiZWZvcmV7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdD4gYXtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gYSB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0cGFkZGluZzozcHggMTJweCAwO1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdC5iZDtcclxuXHJcblx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0Lm5hdl9pdGVtX3dyYXA6OmJlZm9yZXtcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiAubmF2X2l0ZW1fd3JhcCB7XHJcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6OmFmdGVye1xyXG5cdFx0XHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdFx0XHRoZWlnaHQ6M3B4O1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRib3R0b206LTJweDtcclxuXHRcdFx0XHRcdGxlZnQ6LTFweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5uYXZfdGFnIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246dG9wO1xyXG5cdFx0bWFyZ2luOjAgMCAwIDVweDtcclxuXHR9XHJcblx0XHJcblx0Lm5hdl9zdWJ0aXRsZSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cGFkZGluZzozcHggMDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIFNlYXJjaCBGb3JtICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDoxMDAlO1xyXG5cdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdHBvc2l0aW9uOmZpeGVkO1xyXG5cdHotaW5kZXg6MTAwMDAwO1xyXG5cdC5vcCgwKTtcclxuXHRcclxuXHQmLmNtc21hc3RlcnNfc2hvdyB7XHJcblx0XHR2aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHQub3AoMSk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRlcl9zZWFyY2hfZm9ybV9jbG9zZSB7XHJcblx0XHRmb250LXNpemU6MjBweDtcclxuXHRcdGxpbmUtaGVpZ2h0OjIwcHg7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHQucG9zX2FicygyMHB4LCAyMHB4LCBhdXRvLCA1MHB4LCA1MHB4LCBhdXRvKTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQucG9zX2FicztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdC5vcCguNyk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRlcl9zZWFyY2hfZm9ybV9maWVsZCB7XHJcblx0XHRtYXgtd2lkdGg6OTAlO1xyXG5cdFx0LnBvc19hYnMoNjgwcHgsIDk4cHgpO1xyXG5cdH1cclxuXHRcclxuXHRAe2lucHV0X3RleHR9IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcblx0XHRwYWRkaW5nOjAgNTBweCAwIDA7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRmb250LXNpemU6NjBweDtcclxuXHRcdGxpbmUtaGVpZ2h0Ojk4cHg7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdC5iZCgwKTtcclxuXHRcdC5iZGIoM3B4KTtcclxuXHR9XHJcblx0XHJcblx0YnV0dG9uIHtcclxuXHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKlx0Q29udGVudCArIFNpZGViYXIgU3R5bGVzICovXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG5ib2R5IC5oZWFkbGluZSB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfYnJlYWRjcnVtYnMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdCYgKyAuaGVhZGxpbmVfdGV4dHtcclxuXHRcdHBhZGRpbmctdG9wOiAwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzX2FsaWduZXIge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzX2lubmVyIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZy10b3A6NnB4O1xyXG5cdFx0cGFkZGluZy1ib3R0b206NnB4O1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiAqIHtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiAtMC43NXB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmJyZWFkY3J1bWJzX3NlcCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OiAnLyc7XHJcblx0XHRcdHBhZGRpbmc6IDAgLjI1ZW0gMDtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmhlYWRsaW5lX291dGVyIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOnRvcCBjZW50ZXI7XHJcblx0ei1pbmRleDoxO1xyXG5cdFxyXG5cdC5oZWFkbGluZV9jb2xvciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGxpbmVfaW5uZXIge1xyXG5cdFx0cGFkZGluZzowIEBibG9ja3NfaG9yX3BhZDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdFx0Lm92aDtcclxuXHJcblx0XHQuaGVhZGxpbmVfYWxpZ25lciB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5oZWFkbGluZV9jb250ZW50IHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHBhZGRpbmc6IDIwcHggMCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzX2Rpc2FibGVkIHtcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5oZWFkbGluZV90ZXh0IHtcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdFx0XHRcdFx0LnBvc19hYnM7XHJcblx0XHRcdFx0XHR0b3A6MzBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmVudHJ5LXRpdGxlIHtcclxuXHRcdFx0XHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAwIDAgMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuZW50cnktc3VidGl0bGUge1xyXG5cdFx0XHRcdFx0bWFyZ2luOjVweCAwIDA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuYWxpZ25fbGVmdCB7XHJcblx0XHRcdC50YWw7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGxpbmVfdGV4dCB7XHJcblx0XHRcdFx0LnRhbDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmFsaWduX3JpZ2h0IHtcclxuXHRcdFx0LnRhcjtcclxuXHRcdFx0XHJcblx0XHRcdC5oZWFkbGluZV90ZXh0IHtcclxuXHRcdFx0XHQudGFyO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5hbGlnbl9jZW50ZXIge1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0XHRcclxuXHRcdFx0LmhlYWRsaW5lX3RleHQge1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Ym90dG9tOmF1dG87XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYuaGVhZGxpbmVfaWNvbiB7XHJcblx0XHRcdFx0XHQ+ICo6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDoxNXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnMge1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfYWxpZ25lciB7XHJcblx0XHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzX2lubmVyIHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MjBweCAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRsaW5lX2Rpc2FibGVkIHtcclxuXHRcdC5kbjtcclxuXHR9XHJcbn1cclxuXHJcbi5jb250ZW50X3dyYXAge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0bWluLXdpZHRoOmluaGVyaXQ7XHJcbn1cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRCb3R0b20gKyBGb290ZXIgU3R5bGVzICovXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQm90dG9tICoqKioqKioqKioqKioqKioqKi9cclxuLmJvdHRvbV9pbm5lciB7XHJcblx0LndpZGdldHRpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MzVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBGb290ZXIgKioqKioqKioqKioqKioqKioqL1xyXG4jZm9vdGVyIHtcclxuXHQub3ZoO1xyXG59XHJcblxyXG4uZm9vdGVyX2lubmVyIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG59XHJcblxyXG4uZm9vdGVyX2lubmVyX2NvbnQge1xyXG5cdC5iZHQ7XHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBGb290ZXIgRGVmYXVsdCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2Zvb3Rlcl9kZWZhdWx0IHtcclxuXHQuZm9vdGVyX2lubmVyX2NvbnQge1xyXG5cdFx0cGFkZGluZy10b3A6ODBweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOjgwcHg7XHJcblx0XHRcclxuXHRcdD4gZGl2OmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9sb2dvX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LmZvb3Rlcl9sb2dvIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IC5mb290ZXJfbG9nb19yZXRpbmEge1xyXG5cdFx0XHRcdC5kbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX2N1c3RvbV9odG1sX3dyYXAge1xyXG5cdFx0cGFkZGluZzoyMHB4IDAgMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfY3VzdG9tX2h0bWwge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHQub3ZoO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9uYXZfd3JhcCB7XHJcblx0XHRwYWRkaW5nOjYwcHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRkaXYge1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX25hdiB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOmF1dG87XHJcblx0XHRcclxuXHRcdD4gbGkge1xyXG5cdFx0XHRwYWRkaW5nOjAgMTRweCAwO1xyXG5cdFx0XHQuYmQoMCk7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjRweDtcclxuXHRcdFx0XHRoZWlnaHQ6NHB4O1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRcdHJpZ2h0Oi0ycHg7XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdG1hcmdpbjphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQ6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHVsIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuc29jaWFsX3dyYXAge1xyXG5cdFx0cGFkZGluZzo0NHB4IDAgMDtcclxuXHRcdFxyXG5cdFx0LnNvY2lhbF93cmFwX2lubmVyIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MzBweDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0Zm9udC1zaXplOjIwcHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjIwcHg7XHJcblx0XHRcdHdpZHRoOjMwcHg7XHJcblx0XHRcdGhlaWdodDozMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX2NvcHlyaWdodCB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cGFkZGluZzoyMnB4IDA7XHJcblx0XHRtYXJnaW46IDIycHggMCAwO1xyXG5cdFx0LnRhYztcclxuXHRcdC5iZHQ7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEZvb3RlciBTbWFsbCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2Zvb3Rlcl9zbWFsbCB7XHJcblx0LmZvb3Rlcl9pbm5lcl9jb250IHtcclxuXHRcdHBhZGRpbmctdG9wOjE4cHg7XHJcblx0XHRwYWRkaW5nLWJvdHRvbToxOHB4O1xyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX25hdl93cmFwIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZyO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9uYXYge1xyXG5cdFx0bWFyZ2luOiAwIC04cHg7XHJcblx0XHR3aWR0aDogYXV0bztcclxuXHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0cGFkZGluZzowIDhweDtcclxuXHRcdFx0LmJkKDApO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0dWwge1xyXG5cdFx0XHRcdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5zb2NpYWxfd3JhcCB7XHJcblx0XHQuZnI7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjVweDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0Zm9udC1zaXplOjE2cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE2cHg7XHJcblx0XHRcdHdpZHRoOjI4cHg7XHJcblx0XHRcdGhlaWdodDoyOHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX2N1c3RvbV9odG1sX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZnI7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX2NvcHlyaWdodCB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cGFkZGluZzoxcHggMjBweCAxcHggMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcbn1cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRCbG9nIChEZWZhdWx0LCBNYXNvbnJ5LCBUaW1lbGluZSkgKyBQb3N0IFN0eWxlcyAqL1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqIEJsb2cgKioqKioqKioqKioqKioqKioqL1xyXG4uYmxvZyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5wb3N0IHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdFxyXG5cdFx0LnByZWxvYWRlciB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ19kZWZhdWx0X3BhZDtcclxuXHRcdFx0XHJcblx0XHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc192aWRlb193cmFwLCBcclxuXHRcdC5yZXNpemFibGVfYmxvY2sge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfZGVmYXVsdF9wYWQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY29sdW1ucyB7XHJcblx0XHRtYXJnaW46LTUwcHggLTEwcHggMDtcclxuXHRcdFxyXG5cdFx0LnBvc3Qge1xyXG5cdFx0XHRtaW4td2lkdGg6MjYwcHg7XHJcblx0XHRcdHBhZGRpbmc6NTBweCAxMHB4IDA7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0Lm9wKDApO1xyXG5cclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3Bvc3RfbWFzb25yeSB7XHJcblx0XHRcdFx0bWluLXdpZHRoOiAyMDBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfNCYge1xyXG5cdFx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfMyYge1xyXG5cdFx0XHRcdHdpZHRoOjMzLjMzJTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfMiYge1xyXG5cdFx0XHRcdHdpZHRoOjUwJTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnByZWxvYWRlciB7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9ibG9nX21hc29ucnlfcGFkO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYudGltZWxpbmUge1xyXG5cdFx0b3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50OyBcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHQucG9zX2FicygxcHgsIDEwMCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucG9zdCB7XHJcblx0XHRcdHdpZHRoOjUwJTtcclxuXHRcdFx0b3ZlcmZsb3c6dmlzaWJsZTtcclxuXHRcdFx0LmZsO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHQucG9zX2FicygxMDAlLCAxcHgsIDAsIDAsIDM2cHgsIGF1dG8pO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNtc21hc3RlcnNfdGltZWxpbmVfbGVmdCB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfdGltZWxpbmVfbWFyZ2luIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDoxNiU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNtc21hc3RlcnNfdGltZWxpbmVfcmlnaHQge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3RpbWVsaW5lX21hcmdpbiB7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDoxNiU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucHJlbG9hZGVyIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfdGltZWxpbmVfcGFkO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc192aWRlb193cmFwLCBcclxuXHRcdFx0LnJlc2l6YWJsZV9ibG9jayB7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9ibG9nX3RpbWVsaW5lX3BhZDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQub3dsLXBhZ2luYXRpb24ge1xyXG5cdFx0d2lkdGg6YXV0bztcclxuXHRcdGxlZnQ6MThweDtcclxuXHRcdHJpZ2h0OmF1dG87XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbToxOHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfdGl0bGVfc21hbGx7XHJcblx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSxcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF90aXRsZSxcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X3RpdGxle1xyXG5cdFx0bGluZS1oZWlnaHQ6IDE7XHJcblxyXG5cdFx0YXtcclxuXHRcdFx0Zm9udC1zaXplOiAuNjVlbTtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKiogQmxvZyBEZWZhdWx0ICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcG9zdF9kZWZhdWx0IHtcclxuXHRwYWRkaW5nOjclIDAgMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHJcblx0LmNtc21hc3RlcnNfcG9zdF9hdXRob3J7XHJcblx0XHQuYXZhdGFye1xyXG5cdFx0XHR3aWR0aDogMjBweDtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc192aWRlb19wcmV2aWV3e1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblxyXG5cdFx0aW1ne1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHJcblx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHR6LWluZGV4OiAxO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20sIHJnYmEoMCwgMCwgMCwgMC42KSAwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcclxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjYpIDAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuNikgMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7XHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDogXCJcXGU4MDNcIjtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHR0b3A6IDA7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHRib3R0b206IDA7XHJcblx0XHRcdHdpZHRoOiAxZW07XHJcblx0XHRcdGhlaWdodDogMWVtO1xyXG5cdFx0XHRtYXJnaW46IGF1dG87XHJcblx0XHRcdHotaW5kZXg6IDI7XHJcblx0XHRcdGZvbnQtc2l6ZTogNjVweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHRcdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvLWN1c3RvbVwiO1xyXG5cdFx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRcdHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc192aWRlb19wcmV2aWV3e1xyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XHJcblx0XHRcdGE6aG92ZXJ7XHJcblx0XHRcdFx0I3BhZ2UgJntcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0JiArIC5jbXNtYXN0ZXJzX3Bvc3RfY29udHtcclxuXHRcdFx0I3BhZ2UgJntcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDogMjBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0I3BhZ2UgJi5jb250ZW50X3NpZGUsXHJcblx0LmNvbnRlbnRfd3JhcC5mdWxsd2lkdGggJixcclxuXHQuY29udGVudF93cmFwLmZ1bGx3aWR0aCArIC5jbXNtYXN0ZXJzX2NvbHVtbi5vbmVfZmlyc3QgICYge1xyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9pbWdfd3JhcHtcclxuXHRcdFx0d2lkdGg6IDQ1JTtcclxuXHRcdFx0LmZsO1xyXG5cclxuXHRcdFx0JiArIC5jbXNtYXN0ZXJzX3Bvc3RfY29udHtcclxuXHRcdFx0XHR3aWR0aDogNTUlO1xyXG5cdFx0XHRcdHBhZGRpbmc6IDAgMCAwIDMlO1xyXG5cdFx0XHRcdC5vdmg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0cGFkZGluZy10b3A6MDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuY2w7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc192aWRlb19wcmV2aWV3IHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5LFxyXG5cdFx0LmNtc21hc3RlcnNfdmlkZW9fcHJldmlld19ib3R0b20ge1xyXG5cdFx0XHQudHJhbnMoflwib3BhY2l0eSAuMjVzIGVhc2VcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCAubWVqcy1vdmVybGF5LXBsYXk6OmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdHotaW5kZXg6IDU7XHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY2F0ZWdvcnl7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiAyNXB4O1xyXG5cdFx0XHRsZWZ0OjI1cHg7XHJcblx0XHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0XHR6LWluZGV4OiA1O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfdmlkZW9fcHJldmlld19ib3R0b20ge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0bGVmdDogMHB4O1xyXG5cdFx0Ym90dG9tOiAwcHg7XHJcblx0XHRwYWRkaW5nOiAyMHB4IDI1cHggMTBweDtcclxuXHRcdHotaW5kZXg6IDU7XHJcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9oZWFkZXJ7XHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfaW5mb3tcclxuXHRcdFx0cGFkZGluZy1ib3R0b206IDEwcHg7XHJcblx0XHR9XHJcblxyXG5cdFx0YXtcclxuXHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRvcGFjaXR5OiAwLjc7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9pbWdfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0Lm92aDtcclxuXHJcblx0XHRpbWd7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnQge1xyXG5cdFx0cGFkZGluZzoxNHB4IDAgMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcG9zdF9pbmZvIHtcclxuXHRcdHBhZGRpbmc6MCAwIDZweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cclxuXHRcdC5wb3N0X2Zvcm1hdC1wb3N0LWZvcm1hdC12aWRlbyZ7XHJcblx0XHRcdHBhZGRpbmctdG9wOiAxNXB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdD4gKiB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRwYWRkaW5nOjAgMjRweCAwIDA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdHBhZGRpbmc6MDsgXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdmlkZW9fcHJldmlld3tcclxuXHRcdC5jbXNtYXN0ZXJzX2ltZ193cmFwe1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxLjA1KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YWZ0ZXJ7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC45NSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMC45NSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDAuOTUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFxyXG5cdFx0ZmlndXJlIHtcclxuXHRcdFx0Lm92aDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXVkaW8ge1xyXG5cdFx0cGFkZGluZzoyMnB4IDAgMTJweDtcclxuXHRcdFxyXG5cdFx0Lm1lanMtY29udGFpbmVyLndwLWF1ZGlvLXNob3J0Y29kZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjAgMCAxMnB4O1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdC1tcy13b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcblxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHQuZm9ybWF0LXZpZGVvJntcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udGVudCB7XHJcblx0XHRwYWRkaW5nOjAgMCA0cHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9mb290ZXIge1xyXG5cdFx0cGFkZGluZzoxMnB4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cclxuXHQuY21zbWFzdGVyc19wb3N0X2ludGVyZmFjZXtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cdFx0LnRhcjtcclxuXHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2F1dGhvcntcclxuXHRcdFx0LmZsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X3JlYWRfbW9yZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdC5mbDtcclxuXHR9XHJcblxyXG5cdCYuaGFzLXBvc3QtdGh1bWJuYWlsIHtcdFx0XHJcblx0XHQmOm5vdCguZm9ybWF0LXZpZGVvKSB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY2F0ZWdvcnkge1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdGxlZnQ6MjBweDtcclxuXHRcdFx0XHR0b3A6MjBweDtcclxuXHRcdFx0XHRib3R0b206YXV0bztcclxuXHRcdFx0XHQub3ZoO1xyXG5cclxuXHRcdFx0XHQuY21zbWFzdGVyc19jYXRfY29sb3Ige1xyXG5cdFx0XHRcdFx0cGFkZGluZzowIDlweDtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDAgNXB4O1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcdC5vdmg7XHJcblx0XHRcdFx0XHQuZmw7XHJcblx0XHRcdFx0XHQuY2w7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9pbWdfd3JhcCB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfaW1nX3dyYXAgKyAuY21zbWFzdGVyc19wb3N0X2NvbnQge1xyXG5cdFx0XHRwYWRkaW5nOjE1cHggMCAwIDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9jb250IHtcclxuXHRcdFx0cGFkZGluZzowcHggMCAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnN0aWNreSB7XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2NvbnRfd3JhcCB7XHJcblx0XHRcdHBhZGRpbmc6MzJweDtcclxuXHRcdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdFx0XHQuYmQ7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonXFxlYWQxJztcclxuXHRcdFx0XHRmb250LWZhbWlseTonZm9udGVsbG8nO1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDotNHB4O1xyXG5cdFx0XHRcdHJpZ2h0OjIwcHg7XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTo1MHB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjQ2cHg7XHJcblx0XHRcdFx0ei1pbmRleDoxMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfcG9zdF9kYXRlIHtcclxuXHQucHVibGlzaGVke1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHR9XHJcbn1cclxuXHJcbi5ibG9nLmNtc21hc3RlcnNfd2l0aF9mZWF0dXJlZCB7XHJcblx0b3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50O1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGVmYXVsdCB7XHJcblx0XHRvdmVyZmxvdzp2aXNpYmxlO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBCbG9nIE1hc29ucnkgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wb3N0X21hc29ucnkge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2F1dGhvciB7XHJcblx0XHQuYXZhdGFyIHtcclxuXHRcdFx0d2lkdGg6IDIwcHg7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuY2w7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfaW1nX3dyYXAge1xyXG5cdFx0bWFyZ2luOjAgMCAxNnB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250IHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcG9zdF9pbmZve1xyXG5cdFx0cGFkZGluZzogMCAwIDEycHg7XHJcblx0XHQudGFyO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZXtcclxuXHRcdFx0cGFkZGluZy10b3A6IDNweDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5IHtcclxuXHQgICBwYWRkaW5nOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGF7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcblx0XHRcdCY6aG92ZXJ7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wNSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMS4wNSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1x0XHRcclxuXHRcdGZpZ3VyZSB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F1ZGlvIHtcclxuXHRcdHBhZGRpbmctdG9wOjIycHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAge1xyXG5cdFx0bWFyZ2luOjAgMCAyMHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjAgMCAxMHB4O1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdC1tcy13b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udGVudCB7XHJcblx0XHRwYWRkaW5nOjAgMCA0cHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9yZWFkX21vcmUge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZm9vdGVyIHtcclxuXHRcdHBhZGRpbmc6MTJweCAwIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9pbnRlcmZhY2V7XHJcblx0XHRcdHBhZGRpbmc6IDAgMCAyMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+ICoge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmhhcy1wb3N0LXRodW1ibmFpbCB7XHJcblx0XHQmOm5vdCguZm9ybWF0LXZpZGVvKSB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY2F0ZWdvcnkge1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHR3aWR0aDphdXRvO1xyXG5cdFx0XHRcdGxlZnQ6MjBweDtcclxuXHRcdFx0XHR0b3A6YXV0bztcclxuXHRcdFx0XHR0b3A6MjBweDtcclxuXHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NhdF9jb2xvciB7XHJcblx0XHRcdFx0XHRwYWRkaW5nOjAgMTZweDtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDAgM3B4O1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcdC5vdmg7XHJcblx0XHRcdFx0XHQuZmw7XHJcblx0XHRcdFx0XHQuY2w7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuZm9ybWF0LXZpZGVvIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfcG9zdF9jb250IHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5ibG9nLmNvbHVtbnMuY21zbWFzdGVyc193aXRoX2ZlYXR1cmVkIHtcclxuXHQuY21zbWFzdGVyc19wb3N0X2RlZmF1bHQge1xyXG5cdFx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBCbG9nIFRpbWVsaW5lICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcG9zdF90aW1lbGluZSB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9pbmZvIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6MTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3RpbWVsaW5lX2xlZnQge1xyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9pbmZvIHtcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRyaWdodDotNjBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3RpbWVsaW5lX3JpZ2h0IHtcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfaW5mbyB7XHJcblx0XHRcdGxlZnQ6LTYwcHg7XHJcblx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6MTIwcHg7XHJcblx0XHRwYWRkaW5nOjEwcHggMDtcclxuXHRcdG1hcmdpbjotMTVweCAwIDA7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHJcblx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wdWJsaXNoZWQge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfZGF5IHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0bWFyZ2luLWJvdHRvbToycHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX21vbl95ZWFyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuY2w7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfaW1nX3dyYXAge1xyXG5cdFx0bWFyZ2luOjAgMCAyMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250IHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5IHtcclxuXHQgICBwYWRkaW5nOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGE6aG92ZXIgaW1nIHtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wNSk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xyXG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoMS4wNSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1x0XHRcclxuXHRcdGZpZ3VyZSB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F1ZGlvIHtcclxuXHRcdHBhZGRpbmctdG9wOjIycHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfaGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6MCAwIDEwcHg7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0LW1zLXdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdHBhZGRpbmc6MCAwIDRweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X3JlYWRfbW9yZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9mb290ZXIge1xyXG5cdFx0cGFkZGluZzoxMnB4IDAgMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcclxuXHRcdD4gKiB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRwYWRkaW5nOjAgMjRweCAwIDA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdHBhZGRpbmc6MDsgXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmhhcy1wb3N0LXRodW1ibmFpbCB7XHRcdFxyXG5cdFx0Jjpub3QoLmZvcm1hdC12aWRlbykge1xyXG5cdFx0XHQuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5IHtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0d2lkdGg6YXV0bztcclxuXHRcdFx0XHRsZWZ0OjI1cHg7XHJcblx0XHRcdFx0dG9wOjI1cHg7XHJcblx0XHRcdFx0Lm92aDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19jYXRfY29sb3Ige1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcdC5vdmg7XHJcblx0XHRcdFx0XHQuZnI7XHJcblx0XHRcdFx0XHQuY2w7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuZm9ybWF0LXZpZGVvIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfcG9zdF9jb250IHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5mb3JtYXQtdmlkZW8ge1xyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9jYXRlZ29yeSB7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKiogQmxvZyBQb3N0ICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfb3Blbl9wb3N0IHtcclxuXHRwYWRkaW5nOiAwIDAgMThweDtcclxuXHQub3ZoO1xyXG5cdC5iZGI7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXB7XHJcblx0XHQudGFsO1xyXG5cdH1cclxuXHJcblx0LnByZWxvYWRlciB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX29wZW5fcG9zdF9wYWQ7XHJcblx0XHRcclxuXHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRlbnRfd3JhcHtcclxuXHRcdC5zaGFyZV9wb3N0c3tcclxuXHRcdFx0d2lkdGg6IDE4NXB4O1xyXG5cdFx0XHQuZmw7XHJcblxyXG5cdFx0XHQmICsgLmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDQlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mb190b3Age1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRvdmVyZmxvdzpoaWRkZW47XHJcblx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xyXG5cdFx0LmNsO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5IHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHdpZHRoOjc1JTtcclxuXHRcdFx0bWFyZ2luOjAgMjBweCAwIDA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mb19tZXRhIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHBhZGRpbmc6IDdweCAwIDA7XHJcblx0XHRcdG1hcmdpbjowOyBcclxuXHRcdFx0LmZyO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0PiAqIHtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjAgMTVweCAwIDA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MDsgXHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnNoYXJlX3Bvc3Rze1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMjBweDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mb19ib3R0b20ge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRvdmVyZmxvdzpoaWRkZW47XHJcblx0XHRwYWRkaW5nOiAwIDI1cHggMHB4IDA7XHJcblx0XHQuZmw7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9hYm91dF9hdXRob3Ige1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdFx0XHRwYWRkaW5nOjAgMHB4IDAgMDtcclxuXHRcdFx0LmZsO1xyXG5cclxuXHRcdFx0JiArIC5jbXNtYXN0ZXJzX3Bvc3RfY2F0ZWdvcnl7XHJcblx0XHRcdFx0cGFkZGluZzogMCAwIDAgMjBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfYXV0aG9ye1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdG1hcmdpbjogMCAxNXB4IDBweCAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2F1dGhvcl9hdmF0YXIge1xyXG5cdFx0XHR3aWR0aDogNDBweDtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRtYXJnaW46MCAwcHggMCAwO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHRcdHdpZHRoOiAzMHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9hYm91dF9hdXRob3JfaW5mbyB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRvdmVyZmxvdzpoaWRkZW47XHJcblx0XHRcdC5mbDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnNoYXJlX3Bvc3RzIHtcclxuXHRcdFx0cGFkZGluZzoxNXB4IDA7XHJcblx0XHRcdC5mcjtcclxuXHRcdH1cdFxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc192aWRlb193cmFwLCBcclxuXHQucmVzaXphYmxlX2Jsb2NrIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfb3Blbl9wb3N0X3BhZDtcclxuXHR9XHJcblx0XHJcblx0PiBkaXY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0bWFyZ2luLXRvcDowO1xyXG5cdH1cclxuXHRcclxuXHQ+IC5jbXNtYXN0ZXJzX2ltZ193cmFwLCBcclxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyLCBcclxuXHQuY21zbWFzdGVyc192aWRlb193cmFwLCBcclxuXHQuY21zbWFzdGVyc19hdWRpbyB7XHJcblx0XHRtYXJnaW46MCAwIDQwcHg7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hdWRpbyAubWVqcy1jb250YWluZXIge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1x0XHRcclxuXHRcdGZpZ3VyZSB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0d2lkdGg6NTZweDtcclxuXHRcdFx0XHRoZWlnaHQ6NTZweDtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0XHRtYXJnaW46YXV0bztcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdG92ZXJmbG93OmhpZGRlbjtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjUpO1xyXG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IHNwYW57XHJcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogNTZweDtcclxuXHRcdFx0XHRcdGhlaWdodDogNTZweDtcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji5vd2wtcHJldiB7XHJcblx0XHRcdFx0XHRsZWZ0OjE1cHg7XHJcblx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLm93bC1uZXh0IHtcclxuXHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdHJpZ2h0OjE1cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbmZvIHtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2RhdGUge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udGVudCB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTo0NHB4O1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZm9vdGVyIHtcclxuXHRcdGNsZWFyOiBib3RoO1xyXG5cdFx0Lm92aDtcclxuXHJcblx0XHQuY21zbWFzdGVyc19wb3N0X3RhZ3Mge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0cGFkZGluZzogMTJweCAwIDA7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGEge1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbjowIDBweCA1cHggMjBweDtcclxuXHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLTAuOHB4O1xyXG5cdFx0XHRcdC50YWM7XHJcblxyXG5cdFx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6IFwiI1wiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKlx0UG9ydGZvbGlvIChHcmlkLCBQdXp6bGUpICsgQXJ0aWNsZSBTdHlsZXMgKi9cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gKioqKioqKioqKioqKioqKioqL1xyXG4ucG9ydGZvbGlvIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2dyaWQge1xyXG5cdFx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAge1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0Y29udGVudDogXCJcIjtcclxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdHotaW5kZXg6IDE7XHJcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNikgMCUsIHJnYmEoMCwgMCwgMCwgMCkgMTAwJSk7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjYpIDAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpO1xyXG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgMC42KSAwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9ncmlkLFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIHtcclxuXHRcdG1pbi13aWR0aDoyODBweDtcclxuXHRcdC5mbDtcclxuXHRcdFxyXG5cdFx0LnByZWxvYWRlciB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfcG9ydGZvbGlvX2dyaWRfcGFkO1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYubGFyZ2VfZ2FwIHtcclxuXHRcdG1hcmdpbjogMCAtMTBweDtcclxuXHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdFx0LnByb2plY3Qge1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6MTBweDtcclxuXHRcdFx0cGFkZGluZy1yaWdodDoxMHB4O1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnNtYWxsX2dhcCB7XHJcblx0XHQucHJvamVjdCB7XHJcblx0XHRcdG92ZXJmbG93OnZpc2libGU7XHJcblx0XHRcdFxyXG5cdFx0XHQucHJvamVjdF9vdXRlciB7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OjBweDtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjFweDtcclxuXHJcblx0XHRcdFx0LnByb2plY3RfaW5uZXJ7XHJcblx0XHRcdFx0XHRyaWdodDogMXB4O1xyXG5cdFx0XHRcdFx0dG9wOiBhdXRvO1xyXG5cdFx0XHRcdFx0Ym90dG9tOiAxcHg7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0XHR0b3A6IC0xcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ3JpZC5wZXJmZWN0IC5wcm9qZWN0IHtcclxuXHRcdGZpZ3VyZSB7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHRmaWd1cmUge1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmdyaWQubWFzb25yeSAucHJvamVjdCwgXHJcblx0Ji5wdXp6bGUgLnByb2plY3Qge1xyXG5cdFx0Lm9wKDApO1xyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdC5vcCgxKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzXzUgLnByb2plY3Qge1xyXG5cdFx0bWF4LXdpZHRoOjIwJTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzXzQgLnByb2plY3Qge1xyXG5cdFx0bWF4LXdpZHRoOjI1JTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzXzMgLnByb2plY3Qge1xyXG5cdFx0bWF4LXdpZHRoOjMzJTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzXzIgLnByb2plY3Qge1xyXG5cdFx0bWF4LXdpZHRoOjUwJTtcclxuXHR9XHJcblx0XHJcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfNSAucHJvamVjdCwgXHJcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfNCAucHJvamVjdCwgXHJcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfMyAucHJvamVjdCwgXHJcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfMiAucHJvamVjdCB7XHJcblx0XHRtYXgtd2lkdGg6bm9uZTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9ydGZvbGlvIEdyaWQgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wcm9qZWN0X2dyaWQge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5wcm9qZWN0X291dGVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfZGF0ZSB7XHJcblx0XHRwYWRkaW5nOiAyMHB4IDIwcHggMCAwO1xyXG5cclxuXHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwLjVlbTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2plY3Rfb3V0ZXJfaW1hZ2Vfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCYud2l0aF9yb2xsb3ZlciB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHQub3AoLjYpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHR6LWluZGV4OjQ7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDBweCAtMTA2cHggOTJweCAtMzVweCByZ2JhKDAsMCwwLDEpO1xyXG5cdFx0XHRcdFx0LW1vei1ib3gtc2hhZG93OiBpbnNldCAwcHggLTEwNnB4IDkycHggLTM1cHggcmdiYSgwLDAsMCwxKTtcclxuXHRcdFx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDBweCAtMTA2cHggOTJweCAtMzVweCByZ2JhKDAsMCwwLDEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyIHtcclxuXHRcdFx0XHRcdC5vcCguNyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGltZyB7XHJcblx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjA1KTtcclxuXHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xyXG5cdFx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcdFxyXG5cdC5wcm9qZWN0X291dGVyX2ltYWdlX3dyYXBfbWV0YSB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6NTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdC5wcm9qZWN0X291dGVyX2ltYWdlX3dyYXBfbWV0YV9ib3R0b20ge1xyXG5cdFx0cGFkZGluZzowIDIwcHggMThweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0Ym90dG9tOjA7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9jYXRlZ29yeSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OiAyMHB4O1xyXG5cdFx0dG9wOiAyMHB4O1xyXG5cdFx0Lm92aDtcclxuXHRcdC5jbDtcclxuXHJcblx0XHRhIHtcclxuXHRcdFx0bWFyZ2luOjJweCAycHggMCAwO1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nOjAgMTZweDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRtYXJnaW46MHB4IDAgMDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvamVjdF90aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cclxuXHRcdFx0YXtcclxuXHRcdFx0XHQmOmhvdmVye1xyXG5cdFx0XHRcdFx0b3BhY2l0eTogMC43O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9vdXRlcl9pbWFnZV93cmFwICsgLnByb2plY3RfaW5uZXIge1xyXG5cdFx0bWFyZ2luOjE2cHggMCAwO1xyXG5cdH1cclxuXHRcdFxyXG5cdC5wcm9qZWN0X2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9jb250ZW50IHtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHJcblx0XHQ+ICoge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0cGFkZGluZzowIDI0cHggMCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7IFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9ydGZvbGlvIFB1enpsZSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQucHJvamVjdF9vdXRlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCYud2l0aF9yb2xsb3ZlciB7XHRcclxuXHRcdFx0LnByb2plY3RfaW5uZXIge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdC5wb3NfYWJzKDEwMCUsIDEwMCUpO1xyXG5cdFx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQmOmhvdmVyIHtcdFx0XHRcclxuXHRcdFx0XHQucHJvamVjdF9pbm5lciB7XHJcblx0XHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0X2lubmVyIHtcclxuXHRcdHBhZGRpbmc6MzBweCAzMHB4IDIwcHg7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwcHg7XHJcblx0XHRyaWdodDogMHB4O1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0LnRhYztcclxuXHRcdC8vLm9wKDApO1xyXG5cdFx0LmRuO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcigpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJvamVjdF9pbm5lcl9hbGlnbmVyIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0Lm92aDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9tZXRhIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0bWFyZ2luOjAgMCA4cHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQ+ICoge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0cGFkZGluZzowIDI0cHggMCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7IFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9jYXRlZ29yeSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRtYXJnaW46MCAwIDEwcHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0LnRhYztcclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGNsZWFyOiBub25lO1xyXG5cdFx0XHQuYmQoMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfZGF0ZSB7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG5cclxuXHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwLjVlbTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9pbnRlcmZhY2Vfd3JhcHtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlcntcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFBvcnRmb2xpbyBPcGVuIEFydGljbGUgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19vcGVuX3Byb2plY3Qge1xyXG5cdHBhZGRpbmc6MCA7XHJcblx0bWFyZ2luOiAwIDAgNDBweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5wcmVsb2FkZXIge1xyXG5cdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9vcGVuX3Byb2plY3RfcGFkO1xyXG5cdFx0XHJcblx0XHQmLmhpZ2hJbWcge1xyXG5cdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc192aWRlb193cmFwLCBcclxuXHQucmVzaXphYmxlX2Jsb2NrIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfb3Blbl9wcm9qZWN0X3BhZDtcclxuXHR9XHJcblx0XHJcblx0Lm93bC1wYWdpbmF0aW9uIHtcclxuXHRcdHdpZHRoOmF1dG87XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjEwcHg7XHJcblx0XHR0b3A6MTBweDtcclxuXHRcdGJvdHRvbTphdXRvO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjAgMCAzMHB4O1xyXG5cdFx0LnRhbDtcclxuXHRcdC5vdmg7XHJcblx0XHQuY2w7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRmaWd1cmUge1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcclxuXHRcdFx0PiBkaXYge1xyXG5cdFx0XHRcdHdpZHRoOjU2cHg7XHJcblx0XHRcdFx0aGVpZ2h0OjU2cHg7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdFx0bWFyZ2luOmF1dG87XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRvdmVyZmxvdzpoaWRkZW47XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5vd2wtcHJldiB7XHJcblx0XHRcdFx0XHRsZWZ0OjE1cHg7XHJcblx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLm93bC1uZXh0IHtcclxuXHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdHJpZ2h0OjE1cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBhZGRpbmc6MTRweCAwIDA7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmLndpdGhfc2lkZWJhciB7XHJcblx0XHRcdHdpZHRoOkBjb250ZW50X3dpZHRoO1xyXG5cdFx0XHQuZmw7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2dhbGxlcnlfcm93IHtcclxuXHRcdFx0bWFyZ2luOjAgLUBjb2xfbWFyO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdGZpZ3VyZSB7XHJcblx0XHRcdFx0Lm92aDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Lm9uZV90aGlyZCwgXHJcblx0XHRcdC5vbmVfaGFsZiwgXHJcblx0XHRcdC5vbmVfZmlyc3Qge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206KEBjb2xfbWFyICogMik7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5vbmVfdGhpcmQsIFxyXG5cdFx0XHQub25lX2hhbGYge1xyXG5cdFx0XHRcdC5wcmVsb2FkZXIge1xyXG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9wb3J0Zm9saW9fZ3JpZF9wYWQ7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdG1hcmdpbi1ib3R0b206NDBweDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfY29udGVudCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0X3NpZGViYXIge1xyXG5cdFx0d2lkdGg6QHNpZGViYXJfd2lkdGg7XHJcblx0XHRwYWRkaW5nOjE0cHggMCAwIDQwcHg7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0X2RldGFpbHMsIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzIHtcclxuXHRcdHBhZGRpbmc6MCAwIDI4cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gZGl2IHtcclxuXHRcdFx0LmJkYjtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0LmJkYigwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9kZXRhaWxzX3RpdGxlLCBcclxuXHQucHJvamVjdF9mZWF0dXJlc190aXRsZSB7XHJcblx0XHRtYXJnaW46MCAwIDE4cHg7XHJcblx0XHRcclxuXHRcdHNwYW57XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2plY3RfZGV0YWlsc19pdGVtLCBcclxuXHQucHJvamVjdF9mZWF0dXJlc19pdGVtIHtcclxuXHRcdHBhZGRpbmc6MTBweCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9kZXRhaWxzX2l0ZW1fdGl0bGUsIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fdGl0bGUge1xyXG5cdFx0bWF4LXdpZHRoOjUwJTtcclxuXHRcdC5mbDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0X2RldGFpbHNfb25lX2l0ZW0gLnByb2plY3RfZGV0YWlsc19pdGVtX3RpdGxlLCBcclxuXHQucHJvamVjdF9mZWF0dXJlc19vbmVfaXRlbSAucHJvamVjdF9mZWF0dXJlc19pdGVtX3RpdGxlIHtcclxuXHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LnByb2plY3RfZGV0YWlsc19pdGVtX2Rlc2MsIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fZGVzYyB7XHJcblx0XHRwYWRkaW5nOjAgMCAwIDE1cHg7XHJcblx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdC50YXI7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9qZWN0X2NhdGVnb3J5IGEge1xyXG5cdFx0XHQjcGFnZSAmIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHRcdGZsb2F0OiBub25lO1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQucHJvamVjdF9kZXRhaWxzX29uZV9pdGVtIC5wcm9qZWN0X2RldGFpbHNfaXRlbV9kZXNjLCBcclxuXHQucHJvamVjdF9mZWF0dXJlc19vbmVfaXRlbSAucHJvamVjdF9mZWF0dXJlc19pdGVtX2Rlc2Mge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjA7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLypcdFBvc3RzIFNsaWRlciBTdHlsZXMgKi9cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3N0cyBTbGlkZXIgKioqKioqKioqKioqKioqKioqL1xyXG5Ac2xpZGVyX3Bvc3Rfb3V0ZXJfcGFkOiAyMHB4O1xyXG5cclxuLmNtc21hc3RlcnNfcG9zdHNfc2xpZGVyIHtcclxuXHRtYXJnaW46MCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdCYuY21zbWFzdGVyc19jb250cm9sLmNtc21hc3RlcnNfc2xpZGVfcG9zdCB7XHJcblx0XHRwYWRkaW5nOiA3MHB4IDAgMDtcclxuXHR9XHJcblxyXG5cdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdHRvcDowO1xyXG5cdFx0Ym90dG9tOjA7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3NsaWRlX25hdiZ7XHJcblx0XHRcdHRvcDogLTcwcHg7XHJcblx0XHRcdGxlZnQ6IGF1dG87XHJcblx0XHRcdHJpZ2h0OiBAc2xpZGVyX3Bvc3Rfb3V0ZXJfcGFkO1xyXG5cdFx0XHRib3R0b206IGF1dG87XHJcblx0XHRcdGhlaWdodDogYXV0bztcclxuXHRcdFx0d2lkdGg6IGF1dG87XHJcblxyXG5cdFx0XHQ+IGRpdntcclxuXHRcdFx0XHQ+IHNwYW57XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0PiBkaXZ7XHJcblx0XHRcdHBvc2l0aW9uOiBzdGF0aWM7XHJcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG5cdFxyXG5cdFx0XHQ+IHNwYW57XHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdGJvdHRvbTogMDtcclxuXHRcdFx0XHRtYXJnaW46IGF1dG87XHJcblx0XHRcdFx0d2lkdGg6IDI4cHg7XHJcblx0XHRcdFx0aGVpZ2h0OiAyOHB4O1xyXG5cclxuXHRcdFx0XHQuY21zbWFzdGVyc19zbGlkZV9wcm9qZWN0JntcclxuXHRcdFx0XHRcdHdpZHRoOiA1MHB4O1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiA1MHB4O1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji5jbXNtYXN0ZXJzX25leHRfYXJyb3d7XHJcblx0XHRcdFx0XHRsZWZ0OiBhdXRvO1xyXG5cdFx0XHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcmVsb2FkZXIge1xyXG5cdFx0cGFkZGluZy1ib3R0b206IEBwcmVsb2FkZXJfcG9zdHNfc2xpZGVyX3BhZDtcclxuXHRcdFxyXG5cdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRwYWRkaW5nOjBweCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXJfaXRlbSB7XHJcblx0XHRtaW4td2lkdGg6MjUwcHg7XHJcblx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3QsIFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0IHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwYWRkaW5nOjAgMCAwcHg7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0fVxyXG59XHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9zdHMgU2xpZGVyIEJsb2cgKioqKioqKioqKioqKioqKioqL1xyXG5cclxuLmNtc21hc3RlcnNfcG9zdHNfc2xpZGVyLmNtc21hc3RlcnNfc2xpZGVfcG9zdCB7XHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHR3aWR0aDogYXV0bztcclxuXHRcdG1hcmdpbjogMHB4IC1Ac2xpZGVyX3Bvc3Rfb3V0ZXJfcGFkO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfc2xpZGVyX3Bvc3Qge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X291dGVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0cGFkZGluZzogMCBAc2xpZGVyX3Bvc3Rfb3V0ZXJfcGFkO1xyXG5cdFx0LmNsO1xyXG5cclxuXHRcdCYuaW1hZ2VfY2hlY2t7XHJcblx0XHRcdHBhZGRpbmc6IDAgMzBweDtcclxuXHJcblx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IDA7XHJcblx0XHRcdFx0cmlnaHQ6IC0ycHg7XHJcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0XHRcdC5iZHI7XHJcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBpbmhlcml0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2ltZ193cmFwIHtcclxuXHRcdG1hcmdpbjowIDAgMTVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHJcblx0XHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9jYXRlZ29yeSB7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0bGVmdDoyMHB4O1xyXG5cdFx0XHR0b3A6MjBweDtcclxuXHRcdFx0ei1pbmRleDoxMDtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2NhdF9jb2xvciB7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdC5mbDtcclxuXHRcdFx0XHQuY2w7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2NhdGVnb3J5e1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHQuY2xlYXJmaXg7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcCB7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyIGltZyB7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjA1KTtcclxuXHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9pbm5lciB7XHRcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfZGF0ZSB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdHBhZGRpbmc6IDAgMCAxMHB4O1xyXG5cclxuXHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDBlbTtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwLjVlbTtcclxuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMTBweDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0LW1zLXdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfY29udGVudCB7XHJcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0cCB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X3JlYWRfbW9yZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfZm9vdGVyIHtcclxuXHRcdHBhZGRpbmc6MHB4IDAgMjBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LnRhcjtcclxuXHRcdC5vdmg7XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfYXV0aG9ye1xyXG5cdFx0XHQuZmw7XHJcblx0XHR9XHJcblx0XHJcblx0XHQ+ICoge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0cGFkZGluZzowIDE1cHggMCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7IFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9zdHMgU2xpZGVyIFBvcnRmb2xpbyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9vdXRlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1x0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9pbm5lcl93cmFwIHtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaW5uZXJfd3JhcCB7XHJcblx0XHRwYWRkaW5nOjMwcHggMzBweCAyMHB4O1xyXG5cdFx0ei1pbmRleDoxMDtcclxuXHRcdC5wb3NfYWJzKDEwMCUsIDEwMCUpO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9tZXRhIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRtYXJnaW46MCAwIDBweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZzowIDAgMCAyMHB4O1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7IFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfZGF0ZXtcclxuXHRcdHBhZGRpbmc6IDAgMTVweCAwIDA7XHJcblxyXG5cdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRmb250LXNpemU6IDE0cHg7XHJcblx0XHRcdG1hcmdpbjogMCA1cHggMCAxcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRfaW5mbyB7XHJcblx0XHRtYXJnaW46MCAwIDhweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NhdGVnb3J5IHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHJcblx0XHRcdD4gYSB7XHJcblx0XHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjAgMTBweDtcclxuXHRcdFx0XHRtYXJnaW46MCAzcHggMCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9pbnRlcmZhY2V7XHJcblx0XHRwYWRkaW5nOiAwIDAgNXB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0bWFyZ2luOjAgMCAwcHg7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblxyXG5cdFx0XHRhe1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0cGFkZGluZzogMCAwIDE1cHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLypcdFByb2ZpbGVzICsgUHJvZmlsZSBTdHlsZXMgKi9cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQcm9maWxlcyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3Byb2ZpbGUge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0Ji5ob3Jpem9udGFsIHtcclxuXHRcdG1hcmdpbjotNDBweCAtQGNvbF9tYXIgMDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV9ob3Jpem9udGFsIHtcclxuXHRcdFx0bWFyZ2luLXRvcDo0MHB4O1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5vbmVfaGFsZjpudGgtY2hpbGQoMm4rMSksXHJcblx0XHRcdCYub25lX3RoaXJkOm50aC1jaGlsZCgzbisxKSxcclxuXHRcdFx0Ji5vbmVfZm91cnRoOm50aC1jaGlsZCg0bisxKSB7XHJcblx0XHRcdFx0Y2xlYXI6bGVmdDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQcm9maWxlcyBIb3Jpem9udGFsICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcHJvZmlsZV9ob3Jpem9udGFsIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQucHJvZmlsZV9vdXRlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdG92ZXJmbG93OmhpZGRlbjtcclxuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9pbWFnZV93cmFwIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdHdpZHRoOjIyMHB4O1xyXG5cdFx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9zdWJ0aXRsZSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMzNweCAwcHg7XHJcblx0XHRtYXJnaW46MCAwIDE1cHg7XHJcblx0XHRcclxuXHRcdCY6b25seS1jaGlsZCB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pbWdfd3JhcCArIC5wcm9maWxlX2lubmVyIHtcclxuXHRcdHBhZGRpbmc6MjVweCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0cGFkZGluZzogMTVweCAwIDA7XHJcblx0XHQub3ZoO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgNXB4O1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9maWxlX3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfc3VidGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdC50YWM7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9zb2NpYWxfaWNvbnMge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nOjE1cHggMCAwO1xyXG5cdFx0Lm92aDtcclxuXHRcdC50YWM7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29uc19saXN0IHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRtYXJnaW46MCAxMnB4IDAgMDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToxNnB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxNnB4O1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoyNnB4O1xyXG5cdFx0XHRoZWlnaHQ6MjZweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LnBvc19hYnM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUHJvZmlsZXMgVmVydGljYWwgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wcm9maWxlX3ZlcnRpY2FsIHtcclxuXHRtYXJnaW46MCAwIDYwcHg7XHJcblx0cGFkZGluZzowO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRtYXJnaW46MDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfb3V0ZXIge1xyXG5cdFx0cGFkZGluZzowIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfc3VidGl0bGUge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMThweDtcclxuXHRcdG1hcmdpbjoxMHB4IDAgMDtcclxuXHR9XHJcblxyXG5cdC5wcm9maWxlX2ltYWdlX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOjMwJTtcclxuXHRcdHBhZGRpbmc6MCA1JTtcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0Lm92aDtcclxuXHJcblx0XHQmICsgLnByb2ZpbGVfaW5uZXJ7XHJcblx0XHRcdHBhZGRpbmc6IDAgMCAwIDIuNSU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfc3VidGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHRvcDoxNXB4O1xyXG5cdFx0XHRib3R0b206YXV0bztcclxuXHRcdFx0cmlnaHQ6NDBweDtcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cclxuXHQucHJvZmlsZV9pbWFnZV93cmFwICsgLnByb2ZpbGVfaW5uZXIge1xyXG5cdFx0d2lkdGg6NzAlO1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29uc19saXN0IHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRtYXJnaW46MCAxMnB4IDAgMDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToxNnB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxNnB4O1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoyNnB4O1xyXG5cdFx0XHRoZWlnaHQ6MjZweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LnBvc19hYnM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9maWxlX3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfY29udGVudCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdG1hcmdpbi10b3A6MTJweDtcclxuXHRcdHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9zb2NpYWxfaWNvbnMge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nOjAgMCAwIDIwcHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmZyO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQcm9maWxlcyBPcGVuIFByb2ZpbGUgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19vcGVuX3Byb2ZpbGUge1xyXG5cdG1hcmdpbjowIDAgNDBweDtcclxuXHRwYWRkaW5nOjA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9maWxlX2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHQudGFsO1xyXG5cdFx0Lm92aDtcclxuXHRcdC5jbDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV90aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9maWxlX3N1YnRpdGxlIHtcclxuXHRcdFx0bWFyZ2luOi01cHggMCAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9jb250ZW50IHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwYWRkaW5nOjM1cHggMCAwO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0Ji53aXRoX3NpZGViYXIge1xyXG5cdFx0XHR3aWR0aDpAY29udGVudF93aWR0aDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9maWxlX2NvbnRlbnQge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3JvdzpsYXN0LW9mLXR5cGV7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3Jvd19vdXRlcl9wYXJlbnR7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9zaWRlYmFyIHtcclxuXHRcdHdpZHRoOkBzaWRlYmFyX3dpZHRoO1xyXG5cdFx0cGFkZGluZzozNXB4IDAgMCA0MHB4O1xyXG5cdFx0LmZyO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9kZXRhaWxzLCBcclxuXHQucHJvZmlsZV9mZWF0dXJlcyB7XHJcblx0XHRwYWRkaW5nOjAgMCAyOHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdD4gZGl2IHtcclxuXHRcdFx0LmJkYjtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0LmJkYigwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9kZXRhaWxzX3RpdGxlLCBcclxuXHQucHJvZmlsZV9mZWF0dXJlc190aXRsZSB7XHJcblx0XHRtYXJnaW46MCAwIDE4cHg7XHJcblxyXG5cdFx0c3BhbntcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9kZXRhaWxzX2l0ZW0sIFxyXG5cdC5wcm9maWxlX2ZlYXR1cmVzX2l0ZW0ge1xyXG5cdFx0cGFkZGluZzo3cHggMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfZGV0YWlsc19pdGVtX3RpdGxlLCBcclxuXHQucHJvZmlsZV9mZWF0dXJlc19pdGVtX3RpdGxlIHtcclxuXHRcdG1heC13aWR0aDo1MCU7XHJcblx0XHQuZmw7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9kZXRhaWxzX29uZV9pdGVtIC5wcm9maWxlX2RldGFpbHNfaXRlbV90aXRsZSwgXHJcblx0LnByb2ZpbGVfZmVhdHVyZXNfb25lX2l0ZW0gLnByb2ZpbGVfZmVhdHVyZXNfaXRlbV90aXRsZSB7XHJcblx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdGZsb2F0Om5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX2RldGFpbHNfaXRlbV9kZXNjLCBcclxuXHQucHJvZmlsZV9mZWF0dXJlc19pdGVtX2Rlc2Mge1xyXG5cdFx0cGFkZGluZzowIDAgMCAxNXB4O1xyXG5cdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XHJcblx0XHQudGFyO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV9jYXRlZ29yeSBhIHtcclxuXHRcdFx0I3BhZ2UgJiB7XHJcblx0XHRcdFx0YmFja2dyb3VuZDp0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XHJcblx0XHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9kZXRhaWxzX29uZV9pdGVtIC5wcm9maWxlX2RldGFpbHNfaXRlbV9kZXNjLCBcclxuXHQucHJvZmlsZV9mZWF0dXJlc19vbmVfaXRlbSAucHJvZmlsZV9mZWF0dXJlc19pdGVtX2Rlc2Mge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjA7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjA7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29ucyB7XHJcblx0XHRwYWRkaW5nOjAgMCAzNnB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9zb2NpYWxfaWNvbnNfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCAzNHB4O1xyXG5cclxuXHRcdHNwYW57XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfc29jaWFsX2ljb25zX2xpc3Qge1xyXG5cdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRtYXJnaW46MCA4cHggMCAwO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdGZvbnQtc2l6ZToxOHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxOHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfb3Blbl9wcm9maWxlLFxyXG4uY21zbWFzdGVyc19vcGVuX3Byb2plY3Qge1xyXG5cdC5zaGFyZV9wb3N0cyB7XHJcblx0XHRwYWRkaW5nOjBweCAwIDA7XHJcblxyXG5cdFx0YXtcclxuXHRcdFx0d2lkdGg6IDM1cHg7XHJcblx0XHRcdGhlaWdodDogMzVweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDM1cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKlx0U2hvcnRjb2RlcyBTdHlsZXMgKi9cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBEaXZpZGVyICoqKioqKioqKioqKioqKioqKi9cclxuaHIge1xyXG5cdGJvcmRlcjowO1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcblx0bWFyZ2luOihAbGluZV9oZWlnaHRfcGFkICogMikgMDtcclxufVxyXG5cclxuaHIsIFxyXG4uY21zbWFzdGVyc193aWRnZXRfZGl2aWRlcixcclxuLmNtc21hc3RlcnNfZGl2aWRlciB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOjFweDtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDoxcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmNsO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciB7XHJcblx0bWFyZ2luOjAgQGNvbF9tYXIgKEBsaW5lX2hlaWdodF9wYWQgKiAyKTtcclxuXHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciB7XHJcblx0Ji5zb2xpZCB7XHJcblx0XHRib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO1xyXG5cdH1cclxuXHRcclxuXHQmLmRhc2hlZCB7XHJcblx0XHRib3JkZXItYm90dG9tLXN0eWxlOmRhc2hlZDtcclxuXHR9XHJcblx0XHJcblx0Ji5kb3R0ZWQge1xyXG5cdFx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpkb3R0ZWQ7XHJcblx0fVxyXG5cdFxyXG5cdCYudHJhbnNwYXJlbnQge1xyXG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDowO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfZGl2aWRlciB7XHJcblx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfd2lkdGhfc2hvcnQge1xyXG5cdFx0d2lkdGg6MjAlO1xyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfZGl2aWRlcl9wb3NfY2VudGVyIHtcclxuXHRcdFx0bGVmdDo0MCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19kaXZpZGVyX3Bvc19yaWdodCB7XHJcblx0XHRcdGxlZnQ6ODAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfZGl2aWRlcl93aWR0aF9tZWRpdW0ge1xyXG5cdFx0d2lkdGg6NDAlO1xyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfZGl2aWRlcl9wb3NfY2VudGVyIHtcclxuXHRcdFx0bGVmdDozMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19kaXZpZGVyX3Bvc19yaWdodCB7XHJcblx0XHRcdGxlZnQ6NjAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfZGl2aWRlcl93aWR0aF9sb25nIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFNwZWNpYWwgSGVhZGluZyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2hlYWRpbmdfd3JhcCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmNsO1xyXG5cdFxyXG5cdC5idXR0b24ge1xyXG5cdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0LmZyO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19hbGlnbl9yaWdodCB7XHJcblx0XHQuYnV0dG9uIHtcclxuXHRcdFx0LmZsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19hbGlnbl9jZW50ZXIge1xyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZyB7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmJ1dHRvbiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdGZsb2F0Om5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlciB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdGhlaWdodDoycHg7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdHRvcDo1MCU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9sZWZ0X3dyYXAsIFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9yaWdodF93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6MDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9zaG9ydCB7XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXIge1xyXG5cdFx0XHR3aWR0aDoxMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9sZWZ0IHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6LTEwJTtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbWVkaXVtIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlciB7XHJcblx0XHRcdHdpZHRoOjIwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xlZnQge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDotMjAlO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9sb25nIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlciB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9sZWZ0IHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6LTEwMCU7XHJcblx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xvbmdib3R0b20ge1xyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZyB7XHRcdFx0XHRcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MTRweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0dG9wOmF1dG87XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHJpZ2h0OjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfc2hvcnQsIFxyXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbWVkaXVtLCBcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xvbmcge1xyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZyB7XHJcblx0XHRcdG1heC13aWR0aDo4MCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRpbmcge1xyXG5cdFx0ZGlzcGxheTppbmxpbmU7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUsIFxyXG5cdFx0YTpiZWZvcmUge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MC41ZW07XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEZlYXR1cmVkIEJsb2NrICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfZmVhdHVyZWRfYmxvY2sge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHRcclxuXHJcblx0LmZlYXR1cmVkX2Jsb2NrX2xpbmsge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHR6LWluZGV4OjE7XHJcblx0fVxyXG5cdFxyXG5cdC5mZWF0dXJlZF9ibG9ja19pbm5lciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0cGFkZGluZzoyMHB4IDIwcHggMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogVGFibGUgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc190YWJsZSB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRcclxuXHRjYXB0aW9uIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0dHIge1xyXG5cdFx0dGQsIFxyXG5cdFx0dGgge1xyXG5cdFx0XHRwYWRkaW5nOjEycHggMjhweDtcclxuXHRcdFx0XHJcblx0XHRcdCYuY21zbWFzdGVyc190YWJsZV9jZWxsX2FsaWduY2VudGVyIHtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3RhYmxlX2NlbGxfYWxpZ25sZWZ0IHtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmxlZnQ7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY21zbWFzdGVyc190YWJsZV9jZWxsX2FsaWducmlnaHQge1xyXG5cdFx0XHRcdHRleHQtYWxpZ246cmlnaHQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHRcclxuXHR0aGVhZCB0ciB7XHJcblx0XHR0ZCwgXHJcblx0XHR0aCB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjIwcHg7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHRmb290IHRyIHtcclxuXHRcdHRkLCBcclxuXHRcdHRoIHtcclxuXHRcdFx0cGFkZGluZy10b3A6MjBweDtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MjBweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogTm90aWNlICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfbm90aWNlIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cGFkZGluZzowIDIwcHg7XHJcblx0bWFyZ2luLWJvdHRvbTozMHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5iZDtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRwYWRkaW5nLWxlZnQ6OTBweDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6MjhweDtcclxuXHR9XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Zm9udC1zaXplOjMycHg7XHJcblx0XHQucG9zX2FicygxZW0sIDFlbSwgMjhweCwgYXV0byk7XHJcblx0fVxyXG5cdFxyXG5cdC5ub3RpY2VfY29udGVudCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHBhZGRpbmc6MjJweCAwIDA7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbToyMnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQubm90aWNlX2Nsb3NlIHtcclxuXHRcdGZvbnQtc2l6ZTo4cHg7XHJcblx0XHRsaW5lLWhlaWdodDo4cHg7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0LnBvc19hYnMoMzBweCwgMzBweCwgYXV0bywgLTE1cHgsIC0xNXB4LCBhdXRvKTtcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnBvc19hYnM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19ub3RpY2Vfc3VjY2VzcyB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNmZGZmZjk7XHJcblx0XHRib3JkZXItY29sb3I6IzhiYzM0YTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb2xvcjojOGJjMzRhO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfbm90aWNlX2Vycm9yIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6I2ZmZmRmZDtcclxuXHRcdGJvcmRlci1jb2xvcjojZWE1MTUxO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbG9yOiNlYTUxNTE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19ub3RpY2VfaW5mbyB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNmYWZjZmY7XHJcblx0XHRib3JkZXItY29sb3I6IzZlOTVkMTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb2xvcjojNmU5NWQxO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfbm90aWNlX3dhcm5pbmcge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjojZmZmZGY5O1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiNmZGI1NDM7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29sb3I6I2ZkYjU0MztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX25vdGljZV9kb3dubG9hZCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNmOWZmZmE7XHJcblx0XHRib3JkZXItY29sb3I6IzYzYjY5ODtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb2xvcjojNjNiNjk4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaWNvbl93cmFwIHtcclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW1wbGVfaWNvbl90aXRsZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jazsgXHJcblx0XHRtYXJnaW4tbGVmdDo4cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbXBsZV9pY29uIHtcclxuXHRcdGJvcmRlci1zdHlsZTpzb2xpZDtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uIExpc3QgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMge1xyXG5cdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRwYWRkaW5nOjA7XHJcblx0bWFyZ2luOjA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0bGk6YmVmb3JlIHtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSB7XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0bGVmdDo1MHB4O1xyXG5cdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XHJcblx0XHRcdHdpZHRoOjEwMHB4O1xyXG5cdFx0XHRoZWlnaHQ6MTAwcHg7XHJcblx0XHRcdG1hcmdpbjoxcHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTozMnB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjgwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOjEwcHg7XHJcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdFx0XHRcdHdpZHRoOjEwMnB4O1xyXG5cdFx0XHRcdGhlaWdodDoxMDJweDtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6LTFweDtcclxuXHRcdFx0XHRsZWZ0Oi0xcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1fdGl0bGUge1xyXG5cdFx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfY29sb3JfdHlwZV9pY29uIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIHtcclxuXHRcdFx0Lm92aDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF9wb3NfcmlnaHQge1xyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0ge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdHJpZ2h0OjUwcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2xpc3Qge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjMwcHg7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGxlZnQ6LTMycHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2Jsb2NrIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDUwcHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR3aWR0aDoxcHg7XHJcblx0XHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDo0MHB4O1xyXG5cdFx0XHRcdHotaW5kZXg6MTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHQuZG47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNtc21hc3RlcnNfaWNvbl90eXBlX2ltYWdlIHtcclxuXHRcdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdFx0XHR6LWluZGV4OjI7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKC41KTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHRcdC5vcCguMyk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb24ge1xyXG5cdFx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1fY29udGVudCB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19pY29uX2xpc3RfcG9zX2xlZnQge1xyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV9jb250ZW50IHtcclxuXHRcdFx0XHQudGFsO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtX3RleHQge1xyXG5cdFx0XHRcdFx0LnRhbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uX3dyYXAge1xyXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6MzBweDtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF9wb3NfcmlnaHQge1xyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV9jb250ZW50IHtcclxuXHRcdFx0XHQudGFyO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtX3RleHQge1xyXG5cdFx0XHRcdFx0LnRhcjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uX3dyYXAge1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDozMHB4O1xyXG5cdFx0XHRcdC5mcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uIEJveCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2ljb25fYm94IHtcclxuXHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdCY6YmVmb3JlLCBcclxuXHQuaWNvbl9ib3hfaGVhZGluZzpiZWZvcmUge1xyXG5cdFx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0fVxyXG5cdFxyXG5cdCYuYm94X2ljb25fdHlwZV9pbWFnZSwgXHJcblx0Ji5ib3hfaWNvbl90eXBlX251bWJlciB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcclxuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5pY29uX2JveF9oZWFkaW5nIHtcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50OidcXDAwYTAnO1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyO1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOmNvdmVyO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHQudGFjO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl90b3Age1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6MzBweDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuaWNvbl9ib3hfaW5uZXIge1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0XHRcclxuXHRcdFx0Lmljb25fYm94X3RleHQge1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fYm94X3RvcCB7XHJcblx0XHRib3JkZXItd2lkdGg6MXB4O1xyXG5cdFx0cGFkZGluZzoyMHB4IDIwcHggMzBweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6MzVweDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcclxuXHRcdFx0cGFkZGluZy10b3A6MTIwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lmljb25fYm94X2lubmVyIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0XHJcblx0XHRcdC5pY29uX2JveF90ZXh0IHtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19pY29uX2JveF9sZWZ0IHtcclxuXHRcdGJvcmRlci13aWR0aDoxcHg7XHJcblx0XHRwYWRkaW5nOjIwcHggMjBweCAzMHB4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGZvbnQtc2l6ZToyNHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDo0NXB4O1xyXG5cdFx0XHR3aWR0aDo0NXB4O1xyXG5cdFx0XHRoZWlnaHQ6NDVweDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDo1MCU7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fYm94X2xlZnRfdG9wIHtcclxuXHRcdHBhZGRpbmctbGVmdDo2MHB4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGZvbnQtc2l6ZToyNHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDo0NXB4O1xyXG5cdFx0XHR3aWR0aDo0NXB4O1xyXG5cdFx0XHRoZWlnaHQ6NDVweDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCB7XHJcblx0XHRoMSwgXHJcblx0XHRoMiwgXHJcblx0XHRoMywgXHJcblx0XHRoNCwgXHJcblx0XHRoNSwgXHJcblx0XHRoNiB7XHJcblx0XHRcdGRpc3BsYXk6ZmxleDtcclxuXHRcdFx0YWxpZ24taXRlbXM6Y2VudGVyO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDoxNXB4O1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOmluaGVyaXQ7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHRcdC5vcCgwKTtcdFxyXG5cdFx0XHRcdC5wb3NfYWJzKGF1dG8sYXV0bywwLGF1dG8sMCwwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdGgxLCBcclxuXHRcdFx0aDIsIFxyXG5cdFx0XHRoMywgXHJcblx0XHRcdGg0LCBcclxuXHRcdFx0aDUsIFxyXG5cdFx0XHRoNiB7XHJcblx0XHRcdFx0ZGlzcGxheTpmbGV4O1xyXG5cdFx0XHRcdGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHRcdC5wb3NfYWJzKGF1dG8sYXV0bywwLGF1dG8sMCwwKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lmljb25fYm94X3RleHQge1xyXG5cdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBUb2dnbGVzICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfdG9nZ2xlcyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdG9nZ2xlc19maWx0ZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMTVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmNsO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0XHRtYXJnaW46MCA1cHggNXB4IDA7XHJcblx0XHRcdHBhZGRpbmc6NXB4IDE1cHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHRcclxuXHRcdFx0XHJcblx0XHRcdCYuY3VycmVudF9maWx0ZXIge1xyXG5cdFx0XHRcdGN1cnNvcjpkZWZhdWx0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZV93cmFwIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQmLmN1cnJlbnRfdG9nZ2xlIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfdG9nZ2xlX3BsdXM6YmVmb3JlIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfdGl0bGUge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuYmRiO1xyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0cGFkZGluZzoxNHB4IDQwcHggMTRweCAyMHB4O1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfcGx1cyB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdFx0LnBvc19hYnMoMTZweCwgMTZweCk7XHJcblx0XHRmb250LXNpemU6MjBweDtcclxuXHRcdGxpbmUtaGVpZ2h0OjIwcHg7XHJcblx0XHQudGFjO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6J1xcZTk1MSc7XHJcblx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsbyc7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHNwYW4ge1xyXG5cdFx0XHQuZG47XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZSB7XHJcblx0XHQuZG47XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZV9pbm5lciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHBhZGRpbmc6MjJweCAyMHB4IDIwcHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQ+ICo6bGFzdC1jaGlsZCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206MDtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdG9nZ2xlX3dyYXAuY3VycmVudF90b2dnbGUge1x0XHRcclxuXHRcdD4gLmNtc21hc3RlcnNfdG9nZ2xlIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji50b2dnbGVzX21vZGVfdG9nZ2xlIHtcdFxyXG5cdFx0LmNtc21hc3RlcnNfdG9nZ2xlX3dyYXAge1xyXG5cdFx0XHQmOmxhc3QtY2hpbGQsIFxyXG5cdFx0XHQmLmN1cnJlbnRfdG9nZ2xlIHtcclxuXHRcdFx0XHQuY21zbWFzdGVyc190b2dnbGVfdGl0bGUge1xyXG5cdFx0XHRcdFx0LmJkYjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZV90aXRsZSB7XHJcblx0XHRcdC5iZDtcclxuXHRcdFx0LmJkYigwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdG9nZ2xlX3BsdXMge1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdHJpZ2h0OjIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYudG9nZ2xlc19tb2RlX2FjY29yZGlvbiB7XHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdG9nZ2xlX3BsdXMge1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdHJpZ2h0OjIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFRhYnMgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc190YWJzIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCB7XHJcblx0XHQuZGlzcGxheV9mbGV4O1xyXG5cdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHRcclxuXHQuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFxyXG5cdFx0LnRhYnNfcG9zX2xlZnQme1xyXG5cdFx0XHQudGFsO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQudGFic19wb3NfcmlnaHQme1xyXG5cdFx0XHQudGFyO1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LmRuO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0cGFkZGluZzo3cHggMHB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblxyXG5cdFx0XHQ+IHNwYW57XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IC0zcHg7XHJcblx0XHRcdFx0LmJkYigzcHgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0ge1xyXG5cdFx0XHRcdHBhZGRpbmc6NXB4IDE1cHg7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRmb250LXNpemU6MTdweDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDoyMHB4O1xyXG5cdFx0XHRcdG1hcmdpbjogMCAuNWVtO1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jdXJyZW50X3RhYiwgXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnNfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYiB7XHJcblx0XHQuZG47XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuYWN0aXZlX3RhYiB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYl9pbm5lciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gKjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnRhYnNfbW9kZV90YWIge1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRtYXJnaW46MCAxNHB4IDE0cHggMDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdGFiX2lubmVyIHtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnRhYnNfbW9kZV90b3VyIHtcclxuXHRcdGRpc3BsYXk6dGFibGU7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCB7XHJcblx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdFx0d2lkdGg6MjUlO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHQuYmRiKDApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfd3JhcCB7XHJcblx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdFx0d2lkdGg6NzUlO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYl9pbm5lciB7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDAgMzhweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji50YWJzX3Bvc19yaWdodCB7XHJcblx0XHRcdGRpcmVjdGlvbjpydGw7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xyXG5cdFx0XHRcdHRleHQtYWxpZ246cmlnaHQ7XHJcblx0XHRcdFx0ZGlyZWN0aW9uOmx0cjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6N3B4IDIwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdGFic193cmFwIHtcclxuXHRcdFx0XHRkaXJlY3Rpb246bHRyO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc190YWJfaW5uZXIge1xyXG5cdFx0XHRcdHBhZGRpbmc6MCAzOHB4IDAgMDtcclxuXHRcdFx0XHQudGFyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFN0YXRzICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfc3RhdHMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC50YWM7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XHJcblx0XHQuY21zbWFzdGVyc19zdGF0IHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuc3RhdHNfbW9kZV9iYXJzIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY29udGFpbmVyIHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdGhlaWdodDoyMjBweDtcclxuXHRcdFx0XHRtYXJnaW46MCAwIDIwcHg7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xyXG5cdFx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdFx0Lm92aDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSwgXHJcblx0XHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZToyMHB4O1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MTVweDtcclxuXHRcdFx0XHRcdFx0XHR0b3A6MTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6MTVweDtcclxuXHRcdFx0XHRcdFx0dG9wOjEwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY291bnRlcl93cmFwIHtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdFx0cmlnaHQ6MTVweDtcclxuXHRcdFx0XHRcdFx0dG9wOjEwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGNhbnZhcyB7XHJcblx0XHRcdFx0XHQuZG47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc3RhdHNfdHlwZV92ZXJ0aWNhbCB7XHJcblx0XHRcdG1hcmdpbjowIC1AY29sX21hcjtcclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdCB7XHJcblx0XHRcdFx0XHR3aWR0aDo3MCU7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOjQwcHg7XHJcblx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6NDBweDtcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246c3RhdGljO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRcdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlX2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOjAgMCAxM3B4O1xyXG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0XHRib3R0b206MTAwJTtcclxuXHRcdFx0XHRcdFx0XHQub3ZoO1x0XHRcdFx0XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xyXG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHRcdFx0cGFkZGluZzowIDEwcHggMCAwO1xyXG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOnN0YXRpYztcclxuXHRcdFx0XHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0XHR0b3A6LTM0cHg7XHJcblx0XHRcdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdFx0XHRcdFx0LnRhbDtcclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6MjBweDtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0JjpiZWZvcmUsIFxyXG5cdFx0XHRcdFx0XHRcdCoge1xyXG5cdFx0XHRcdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9zdWJ0aXRsZSB7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnN0YXRzX3R5cGVfaG9yaXpvbnRhbCB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MTVweDtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjFweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0dG9wOjQ1cHg7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHQuYmRycztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdCB7XHJcblx0XHRcdFx0XHRtaW4taGVpZ2h0OjQ2cHg7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6M3B4O1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY291bnRlcl93cmFwIHtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHRcdFx0XHR0b3A6YXV0bztcclxuXHRcdFx0XHRcdFx0XHRib3R0b206OHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSwgXHJcblx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0XHR0b3A6YXV0bztcclxuXHRcdFx0XHRcdFx0XHRib3R0b206OHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdLCBcclxuXHRcdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF90aXRsZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsZWZ0OjMwcHg7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfc3VidGl0bGUge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHRwYWRkaW5nOjIwcHggMCA1cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuc3RhdHNfbW9kZV9jaXJjbGVzIHtcclxuXHRcdG1hcmdpbi10b3A6LTQwcHg7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRmbG9hdDpub25lO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzo0MHB4IDEwcHggMDtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5vbmVfZmlmdGgge1xyXG5cdFx0XHRcdHdpZHRoOjIwJTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5vbmVfZm91cnRoIHtcclxuXHRcdFx0XHR3aWR0aDoyNSU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub25lX3RoaXJkIHtcclxuXHRcdFx0XHR3aWR0aDozMy4zJTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5vbmVfaGFsZiB7XHJcblx0XHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm9uZV9maXJzdCB7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdCB7XHJcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0d2lkdGg6MTc4cHg7XHJcblx0XHRcdFx0aGVpZ2h0OjE3OHB4O1xyXG5cdFx0XHRcdG1hcmdpbjowIDAgMTRweDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRcdHdpZHRoOjE3NnB4O1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjE3NnB4O1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6NjBweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0bGVmdDoxcHg7XHJcblx0XHRcdFx0XHR0b3A6MXB4O1xyXG5cdFx0XHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdFx0XHQuYmQoNHB4KTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRmb250LXNpemU6MzhweDtcclxuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6MzhweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xyXG5cdFx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0XHQudGFjO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRjYW52YXMge1xyXG5cdFx0XHRcdFx0d2lkdGg6MTc4cHg7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MTc4cHg7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRcdHotaW5kZXg6MjtcclxuXHRcdFx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYuc3RhdF9oYXNfdGl0bGVpY29uIHtcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDo0OHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF90aXRsZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF9zdWJ0aXRsZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjEwcHggMCAwO1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQ291bnRlcnMgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19jb3VudGVycyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0Y2FudmFzIHtcclxuXHRcdC5kbjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY291bnRlcl93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDJweDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdC50YWM7XHJcblx0XHRcclxuXHRcdCYub25lX2ZpZnRoIHtcclxuXHRcdFx0d2lkdGg6MjAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLm9uZV9mb3VydGgge1xyXG5cdFx0XHR3aWR0aDoyNSU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX3RoaXJkIHtcclxuXHRcdFx0d2lkdGg6MzMuMyU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX2hhbGYge1xyXG5cdFx0XHR3aWR0aDo1MCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX2ZpcnN0IHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfY291bnRlciB7XHJcblx0XHRcdG1pbi1oZWlnaHQ6MTAwcHg7XHJcblx0XHRcdHBhZGRpbmc6MCAyMHB4O1xyXG5cdFx0XHRtYXJnaW46MCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9pbm5lciB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRtYXJnaW46MjBweCAwIDA7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl90aXRsZV93cmFwIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfdGl0bGUge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9jb3VudGVyX3dyYXAge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNvdW50ZXJfaGFzX2ljb24ge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfaW5uZXIge1xyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY291bnRlcl9oYXNfaW1hZ2Uge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfaW5uZXIge1xyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOmNvdmVyO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19jb3VudGVyX3N1YnRpdGxlIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MjBweDtcclxuXHRcdFx0bWFyZ2luLXRvcDotMnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNvdW50ZXJzX3R5cGVfdmVydGljYWwge1xyXG5cdFx0LmNtc21hc3RlcnNfY291bnRlcl93cmFwIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfY291bnRlciB7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcclxuXHRcdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0bGVmdDo1MCU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfY291bnRlcl93cmFwIHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX3RpdGxlIHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzo3cHggMCAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9zdWJ0aXRsZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY291bnRlcnNfdHlwZV9ob3Jpem9udGFsIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXIge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfaW5uZXIge1xyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdFx0XHRib3R0b206YXV0bztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfdGl0bGVfd3JhcCB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfc3VidGl0bGUge1xyXG5cdFx0XHRcdFx0bWFyZ2luLXRvcDotNXB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBDTVNNQVNURVJTIEJ1dHRvbiAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2J1dHRvbiB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0cGFkZGluZzowIDI1cHg7XHJcblx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmJkcnMoQGJkcnNfd2lkdGgpO1xyXG5cdHdoaXRlLXNwYWNlOm5vd3JhcDtcclxuXHRcclxuXHQmOmJlZm9yZSB7XHJcblx0XHRsaW5lLWhlaWdodDppbmhlcml0ICFpbXBvcnRhbnQ7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHotaW5kZXg6MTA7XHJcblx0fVxyXG5cdFxyXG5cdHNwYW4ge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OjEwO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2NsZWFyX3N0eWxlcyB7XHJcblx0XHRiYWNrZ3JvdW5kOm5vbmU7XHJcblx0XHRib3JkZXI6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowIEBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmJkcnMoQGJkcnNfd2lkdGgpO1xyXG5cdFx0LmJ4c2hfbm9uZTtcclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHQuYnhzaF9ub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfaG92ZXIge1xyXG5cdFx0LmJkO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JkX3VuZGVybGluZSB7XHJcblx0XHQuYmRsKDApO1xyXG5cdFx0LmJkcigwKTtcclxuXHRcdC5iZHQoMCk7XHJcblx0XHQuYmRiO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdCNwYWdlICYge1xyXG5cdFx0XHRcdC50cmFucyh+J25vbmUnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX2xlZnQge1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdGxlZnQ6LTEwMCU7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0bGVmdDowJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX3JpZ2h0IHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRyaWdodDotMTAwJTtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRyaWdodDowJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX3RvcCB7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MDtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfc2xpZGVfYm90dG9tIHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDowO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19leHBhbmRfdmVydCB7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHR3aWR0aDowO1xyXG5cdFx0XHRoZWlnaHQ6MTA1JTtcclxuXHRcdFx0bGVmdDo1MCU7XHJcblx0XHRcdHRvcDo1MCU7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0d2lkdGg6OTAlO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX2V4cGFuZF9ob3Ige1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6MTA1JTtcclxuXHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGhlaWdodDo3NSU7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfZXhwYW5kX2RpYWcge1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6NTAwJTtcclxuXHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0aGVpZ2h0OjE3MCU7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfc2hhZG93IHtcclxuXHRcdHBhZGRpbmctYm90dG9tOjNweDtcclxuXHRcdC5ieHNoaSgwLCAtM3B4LCAwLCAwLCAuMik7XHJcblx0XHRcclxuXHRcdCNwYWdlICYge1xyXG5cdFx0XHQudHJhbnMofidub25lJyk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHRtYXJnaW4tdG9wOjNweDtcclxuXHRcdFx0LmJ4c2hpKDAsIDAsIDAsIDAsIC4wMik7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kYXJrX2JnLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fbGlnaHRfYmcsIFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kaXZpZGVyLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faW52ZXJzZSB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdG1hcmdpbjphdXRvICFpbXBvcnRhbnQ7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIC4yKTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGFya19iZywgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGl2aWRlciB7XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMS4zKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0LW8tdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnIHtcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgLjIpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGl2aWRlciB7XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdFx0LmJkcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2ludmVyc2Uge1xyXG5cdFx0LmJkO1xyXG5cdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9sZWZ0LCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfcmlnaHQge1xyXG5cdFx0cGFkZGluZy1sZWZ0OihAbGluZV9oZWlnaHRfcGFkICogMik7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OihAbGluZV9oZWlnaHRfcGFkICogMik7XHJcblx0XHQuYmQ7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9sZWZ0IHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnBvc19hYnMoKEBsaW5lX2hlaWdodF9wYWQgKiAyKSwgYXV0bywgLShAbGluZV9oZWlnaHRfcGFkICogMiksIGF1dG8pO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfcmlnaHQge1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQucG9zX2FicygoQGxpbmVfaGVpZ2h0X3BhZCAqIDIpLCBhdXRvLCBhdXRvLCAtKEBsaW5lX2hlaWdodF9wYWQgKiAyKSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfbGVmdCwgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3JpZ2h0LCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfdG9wLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfYm90dG9tIHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQucG9zX2FicygxMDAlLCBhdXRvKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQudHJhbnMofidhbGwgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9sZWZ0IHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0bGVmdDotMjAwJTtcclxuXHRcdH1cclxuXHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9yaWdodCB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHJpZ2h0Oi0yMDAlO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdFx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3RvcCB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHRvcDotMjAwJTtcclxuXHRcdH1cclxuXHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX2JvdHRvbSB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHRvcDoyMDAlO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcclxuXHRcdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIENvbnRhY3QgRm9ybSA3ICoqKioqKioqKioqKioqKioqKi9cclxuLndwY2Y3LWZvcm0ge1xyXG5cdEB7aW5wdXRfdGV4dH0sXHJcblx0c2VsZWN0LCBcclxuXHR0ZXh0YXJlYSxcclxuXHRvcHRpb24ge1xyXG5cdFx0bWluLXdpZHRoOjEwMHB4O1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSG92ZXIgc2xpZGVyICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdGxpOmJlZm9yZSB7XHJcblx0XHQuZG47XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9pdGVtcyB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjFweDtcclxuXHRcdHBhZGRpbmc6MCAwIEByZXNwX2Jsb2Nrc19wYWQ7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9mdWxsX2ltZyB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0bWF4LWhlaWdodDoxMDAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdG1heC1oZWlnaHQ6MTAwJTtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMge1xyXG5cdFx0Zm9udC1zaXplOjA7XHJcblx0XHRsaW5lLWhlaWdodDowO1xyXG5cdFx0bWFyZ2luOjAgLTVweDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHdvcmQtc3BhY2luZzotMXB4O1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdHdvcmQtc3BhY2luZzpub3JtYWw7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRkaXNwbGF5Oi1tb3otaW5saW5lLXN0YWNrO1xyXG5cdFx0XHRwYWRkaW5nOjEwcHggNXB4IDA7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdFx0XHJcblx0XHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIGEge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuaG92ZXJlZF9pdGVtIGE6YmVmb3JlIHtcclxuXHRcdFx0XHQub3AoLjkpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdGltYWdlLXJlbmRlcmluZzphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdC5vcCguMyk7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Jjpob3ZlcjpiZWZvcmUge1xyXG5cdFx0XHRcdC5vcCguOSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MTAwcHg7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmpzX2JvZHkgLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX2l0ZW1zID4gbGkgPiBmaWd1cmUuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfZnVsbF9pbWcgaW1nIHtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBDb250ZW50IHNsaWRlciAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2NvbnRlbnRfc2xpZGVyIHtcclxuXHRtYXJnaW4tYm90dG9tOjIwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHRpbWcge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcclxuXHRcdD4gZGl2IHtcclxuXHRcdFx0d2lkdGg6NTZweDtcclxuXHRcdFx0aGVpZ2h0OjU2cHg7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdG1hcmdpbjphdXRvO1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRvdmVyZmxvdzpoaWRkZW47XHJcblx0XHRcdFxyXG5cdFx0XHQmLm93bC1wcmV2IHtcclxuXHRcdFx0XHRsZWZ0OjFweDtcclxuXHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm93bC1uZXh0IHtcclxuXHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0cmlnaHQ6MXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbiB7XHJcblx0XHRib3R0b206MTVweDtcdFxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBHYWxsZXJ5ICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfZ2FsbGVyeSB7XHJcblx0bWFyZ2luOjAgMCAwIC0xMHB4O1xyXG5cdHBhZGRpbmc6MDtcclxuXHRcclxuXHQuY21zbWFzdGVyc19nYWxsZXJ5X2l0ZW0ge1xyXG5cdFx0bWluLXdpZHRoOjE4MHB4O1xyXG5cdFx0cGFkZGluZzowIDAgMTBweCAxMHB4O1xyXG5cdFx0LmZsO1xyXG5cdFx0Lm9wKDApO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHQub3AoMSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19jYXB0aW9uIHtcclxuXHRcdFx0ZmlndXJlIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBhZGRpbmc6MjBweCAyMHB4IDE1cHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGZpZ2NhcHRpb24ge1xyXG5cdFx0XHRcdHBhZGRpbmc6MTVweCAwIDA7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmlsaWdodGJveC10aHVtYm5haWxzLmRhcmsgLmlsaWdodGJveC10aHVtYm5haWxzLWdyaWQgLmlsaWdodGJveC10aHVtYm5haWwgaW1nIHtcclxuXHRpbWFnZS1yZW5kZXJpbmc6YXV0bztcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFF1b3RlcyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3F1b3Rlc19zbGlkZXIge1xyXG5cdHBhZGRpbmc6MCAzMHB4IDUwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHR6LWluZGV4OjEwO1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoyNXB4O1xyXG5cdFx0XHRoZWlnaHQ6MjVweDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHRib3R0b206MDtcclxuXHRcdFx0bWFyZ2luOmF1dG87XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDFweDtcclxuXHRcdFx0Lm9wKDApO1xyXG5cclxuXHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRmb250LWZhbWlseTpcImZvbnRlbGxvLWN1c3RvbVwiO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZToyNXB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjI1cHg7XHJcblx0XHRcdFx0YmFja2dyb3VuZDpub25lO1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdFx0LmJkKDApO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm93bC1wcmV2IHtcclxuXHRcdFx0XHRsZWZ0OiAxcHg7XHJcblxyXG5cdFx0XHRcdHNwYW46YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6J1xcZTgwYic7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm93bC1uZXh0IHtcclxuXHRcdFx0XHRyaWdodDoxcHg7XHJcblxyXG5cdFx0XHRcdHNwYW46YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6J1xcZTgwYyc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCY6aG92ZXIge1xyXG5cdFx0Lm93bC1idXR0b25zIHtcclxuXHRcdFx0PiBkaXYge1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHBhZGRpbmc6IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfaW1hZ2Uge1xyXG5cdFx0bWFyZ2luOjAgMCAyMnB4O1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdHdpZHRoOjExOHB4O1xyXG5cdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfcXVvdGVfcGxhY2Vob2xkZXIge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0d2lkdGg6MTEwcHg7XHJcblx0XHRcdGhlaWdodDoxMTBweDtcclxuXHRcdFx0Zm9udC1zaXplOjEyMHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxMjBweDtcclxuXHRcdFx0Zm9udC1zdHlsZTppdGFsaWM7XHJcblx0XHRcdG1hcmdpbjowIGF1dG87XHJcblx0XHRcdGJhY2tncm91bmQ6b3JhbmdlO1xyXG5cdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6J1xcMDAyMic7XHJcblx0XHRcdFx0LnBvc19hYnMoNDBweCwgNDBweCwgLTAuMzNlbSwgMCwgMCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfaGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjozMnB4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3RpdGxlIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfc3VidGl0bGVfd3JhcCB7XHJcblx0XHRtYXJnaW4tdG9wOi0ycHg7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfc3VidGl0bGUge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfc2l0ZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfc3VidGl0bGUgKyAuY21zbWFzdGVyc19xdW90ZV9zaXRlOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OidcXDAwMkQnO1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MCA0cHg7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19xdW90ZV9jb250ZW50IHtcclxuXHRcdHBhZGRpbmc6MjBweCAxMCUgMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gKjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfcXVvdGVzX2dyaWQge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVzX3ZlcnQge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR0b3A6MDtcclxuXHRcdHotaW5kZXg6MTtcclxuXHRcdFxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjFweDtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnF1b3RlX2ZvdXImIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGxlZnQ6MjUlO1xyXG5cdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGxlZnQ6NzUlO1xyXG5cdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRsZWZ0OjMzLjMzJTtcclxuXHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRsZWZ0OjY2LjY2JTtcclxuXHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHQuZG47XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnF1b3RlX3R3byYge1xyXG5cdFx0XHQmOmJlZm9yZSwgXHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0bGVmdDo1MCU7XHJcblx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucXVvdGVfb25lJiB7XHJcblx0XHRcdC5kbjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QGNvbF9tYXJfcXVvdGVzOiBAY29sX21hciAqIDMgLyAyO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3Rlc19saXN0IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0bWFyZ2luOjAgLShAY29sX21hcl9xdW90ZXMgLyAyKTtcclxuXHRcdHotaW5kZXg6MjtcclxuXHRcdFxyXG5cdFx0JjpmaXJzdC1vZi10eXBlIHtcclxuXHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjpsYXN0LW9mLXR5cGUge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZSB7XHJcblx0XHR3aWR0aDooMTAwJSAtIEBjb2xfbWFyX3F1b3Rlcyk7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdG1hcmdpbjooQGNvbF9tYXJfcXVvdGVzIC8gMik7XHJcblx0XHQuZmw7XHJcblx0XHRcclxuXHRcdC5xdW90ZV9mb3VyJiB7XHJcblx0XHRcdHdpZHRoOigyNSUgLSBAY29sX21hcl9xdW90ZXMpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucXVvdGVfdGhyZWUmIHtcclxuXHRcdFx0d2lkdGg6KDMzLjMzJSAtIEBjb2xfbWFyX3F1b3Rlcyk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV90d28mIHtcclxuXHRcdFx0d2lkdGg6KDUwJSAtIEBjb2xfbWFyX3F1b3Rlcyk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV9vbmUmIHtcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTpAY29sX21hcl9xdW90ZXM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2lubmVyIHtcclxuXHRcdHBhZGRpbmc6MjRweCAxMSUgMzBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfaW1nX2luZm9fd3JhcCB7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYsIFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfaW1hZ2Uge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMjBweCAwIDA7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYsIFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDIwcHg7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdHdpZHRoOjY4cHg7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2luZm9fd3JhcCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0LnF1b3RlX2ZvdXImLCBcclxuXHRcdC5xdW90ZV90aHJlZSYge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9pbWFnZSArIC5jbXNtYXN0ZXJzX3F1b3RlX2luZm9fd3JhcCB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV90aXRsZSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfc3VidGl0bGVfd3JhcCB7XHJcblx0XHRtYXJnaW4tdG9wOi00cHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYsIFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3NpdGUge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlICsgLmNtc21hc3RlcnNfcXVvdGVfc2l0ZTpiZWZvcmUge1xyXG5cdFx0Y29udGVudDonXFwwMDJEJztcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjAgNHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9jb250ZW50IHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nOjAgMCAyNHB4IDA7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYsIFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gKjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQcmljaW5nIHRhYmxlcyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3ByaWNpbmdfdGFibGUge1xyXG5cdG1hcmdpbjowIC0xMHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2luZ19pdGVtIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMTBweCAyMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZmw7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucHJpY2luZ19mb3VyJiB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByaWNpbmdfdGhyZWUmIHtcclxuXHRcdFx0d2lkdGg6MzMuMzMlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJpY2luZ190d28mIHtcclxuXHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJpY2luZ19vbmUmIHtcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2luZ19pdGVtX2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmJkO1xyXG5cdFx0LmJkYigwKTtcclxuXHRcdC5jbDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2luZ19pbmZvX3dyYXAge1xyXG5cdFx0cGFkZGluZzozMHB4IDEwcHggMjVweDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcmljaW5nX3RpdGxlIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzoyMHB4IDQycHg7XHJcblx0XHQuYmRiO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcmljZV93cmFwIHtcclxuXHRcdHBhZGRpbmc6NDBweCA0MnB4IDQycHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmNsO1xyXG5cdFx0LmJkYjtcclxuXHRcdFxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdC5mbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2Uge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3BlcmlvZCB7XHJcblx0XHRtYXJnaW4tdG9wOjRweDtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdC5mZWF0dXJlX2xpc3Qge1xyXG5cdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdC5iZGI7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MTBweCA0MnB4O1xyXG5cdFx0XHQuYmRiO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmRiKDApO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ByaWNpbmdfYnV0X3dyYXAge1xyXG5cdFx0cGFkZGluZzozMHB4IDQycHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHQuY2w7XHJcblx0XHQuYmRiO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19idXR0b24ge1xyXG5cdFx0Lm92aDtcclxuXHRcdC5mbDtcclxuXHR9XHJcblx0XHJcblx0LnByaWNpbmdfYmVzdCB7XHJcblx0XHQuY21zbWFzdGVyc19wcmljZV93cmFwIHtcclxuXHRcdFx0bWFyZ2luOjAgLTFweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogR29vZ2xlIE1hcHMgKioqKioqKioqKioqKioqKioqL1xyXG4ucmVzaXphYmxlX2Jsb2NrIC5nb29nbGVfbWFwIHtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGxlZnQ6MDtcclxuXHR0b3A6MDtcclxuXHRoZWlnaHQ6MTAwJTtcclxufVxyXG5cclxuLmdvb2dsZV9tYXAgaW1nIHtcclxuXHRtYXgtd2lkdGg6bm9uZTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBDYXB0aW9uICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaW1nIHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaW1hZ2VfbCB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRcdC5mbDtcclxuXHR9XHJcblxyXG5cdCYuY21zbWFzdGVyc19pbWFnZV9yIHtcclxuXHRcdG1hcmdpbi1sZWZ0OkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdCYud2l0aF9jYXB0aW9uIHtcclxuXHRcdHBhZGRpbmc6MjBweCAyMHB4IDAgMjBweDtcclxuXHRcdGJvcmRlci13aWR0aDoxcHg7XHJcblx0XHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ19jYXB0aW9uIHtcclxuXHRcdHBhZGRpbmc6MTVweCAwO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcbn1cclxuXHJcbi53cC1jYXB0aW9uIHtcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHRwYWRkaW5nOjE2cHggMTZweCAwO1xyXG5cdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdC5iZDtcclxuXHRcclxuXHQmLmFsaWduY2VudGVyIHtcclxuXHRcdG1hcmdpbi1sZWZ0OmF1dG87XHJcblx0XHRtYXJnaW4tcmlnaHQ6YXV0bztcclxuXHR9XHJcblx0XHJcblx0Ji5hbGlnbmxlZnQge1xyXG5cdFx0bWFyZ2luLXJpZ2h0OjI1cHg7XHJcblx0fVxyXG5cdFxyXG5cdCYuYWxpZ25yaWdodCB7XHJcblx0XHRtYXJnaW4tbGVmdDoyNXB4O1xyXG5cdH1cclxuXHRcclxuXHQ+IGEge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHR9XHJcblx0XHJcblx0LndwLWNhcHRpb24tdGV4dCB7XHJcblx0XHRwYWRkaW5nOjE2cHggMDtcclxuXHRcdC50YWM7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdQIEdhbGxlcnkgKioqKioqKioqKioqKioqKioqL1xyXG4uZ2FsbGVyeSB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0bWFyZ2luOjAgLUBjb2xfbWFyIDIwcHg7XHJcblx0XHJcblx0aW1nIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRib3JkZXI6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmdhbGxlcnktaXRlbSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGZsb2F0OmxlZnQ7XHJcblx0XHRtYXJnaW46MCBAY29sX21hciAyMHB4O1xyXG5cdFx0XHJcblx0XHQud3AtY2FwdGlvbi10ZXh0IHtcclxuXHRcdFx0cGFkZGluZzo1cHg7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTEgLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRmbG9hdDpub25lO1xyXG5cdFx0LmNsO1xyXG5cdH1cclxuXHRcclxuXHQmLmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAzKTtcclxuXHRcdFxyXG5cdFx0JjpudGgtY2hpbGQoMm4rMSkge1xyXG5cdFx0XHQuY2w7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTMgLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCgzbisxKSB7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRcclxuXHRcdCY6bnRoLWNoaWxkKDRuKzEpIHtcclxuXHRcdFx0LmNsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmdhbGxlcnktY29sdW1ucy01IC5nYWxsZXJ5LWl0ZW0ge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA1KSAtIChAY29sX21hciAqIDIpLCAzKTtcclxuXHRcdFxyXG5cdFx0JjpudGgtY2hpbGQoNW4rMSkge1xyXG5cdFx0XHQuY2w7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTYgLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDYpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCg2bisxKSB7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtNyAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNykgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRcclxuXHRcdCY6bnRoLWNoaWxkKDduKzEpIHtcclxuXHRcdFx0LmNsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmdhbGxlcnktY29sdW1ucy04IC5nYWxsZXJ5LWl0ZW0ge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA4KSAtIChAY29sX21hciAqIDIpLCAzKTtcclxuXHRcdFxyXG5cdFx0JjpudGgtY2hpbGQoOG4rMSkge1xyXG5cdFx0XHQuY2w7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTkgLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDkpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCg5bisxKSB7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5nYWxsZXJ5OmFmdGVyLCBcclxuLmdhbGxlcnktaXRlbTphZnRlciB7XHJcblx0LmNsX2FmdGVyO1xyXG59XHJcblxyXG4uZ2FsbGVyeS1jYXB0aW9uIHtcclxuXHRwYWRkaW5nOjE2cHggMjBweDtcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFNpZGViYXIgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19zaWRlYmFyIHtcclxuXHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblx0XHJcblx0YXNpZGUge1xyXG5cdFx0bWFyZ2luOjAgQGNvbF9tYXI7XHJcblx0XHRmbG9hdDpsZWZ0O1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzE0MTQxNDE0IHtcclxuXHRhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzE0MTQxMiB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTQxMjE0IHtcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xMjE0MTQge1xyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzEzMTMxMyB7XHJcblx0YXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8zNDE0IHtcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKCgxMDAlICogMykgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTQzNCB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAzKSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzIzMTMge1xyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAyKSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xMzIzIHtcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDIpIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTIxMiB7XHJcblx0YXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xMSB7XHJcblx0YXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoMTAwJSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogU2hhcmUgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19zaGFyaW5nIHtcclxuXHQub3ZoO1xyXG59XHJcblxyXG4uc2hhcmVfd3JhcCB7XHJcblx0ZmxvYXQ6bGVmdDtcclxuXHRtYXJnaW4tYm90dG9tOjIwcHg7XHJcblx0bWFyZ2luLXJpZ2h0OjIwcHg7XHJcblx0XHJcblx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdH1cclxuXHRcclxuXHQuc29jaWFsX3ZlcnRpY2FsICYge1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBUd2l0dGVyIFN0cmlwZSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3R3aXR0ZXJfd3JhcCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQub3dsLXBhZ2luYXRpb24ge1xyXG5cdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHQuZG47XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtYnV0dG9ucyB7XHJcblx0XHQucG9zX2Ficyg2MHB4LCAzMHB4LCBhdXRvLCAwKTtcclxuXHRcdFxyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHRtYXJnaW46MCAtMXB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRzcGFuIHtcclxuXHRcdFx0d2lkdGg6MzBweDtcclxuXHRcdFx0aGVpZ2h0OjQwcHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LnBvc19hYnM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC50d3JfaWNvbiB7XHJcblx0XHRmb250LXNpemU6MjJweDtcclxuXHRcdGxpbmUtaGVpZ2h0OjIycHg7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIGF1dG8pO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdG1hcmdpbjowICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3R3aXR0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nOiAwIDg1cHggMCAzMHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190d2l0dGVyX2l0ZW0ge1xyXG5cdFx0cGFkZGluZzo5cHggODBweCA5cHggMTUwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR9XHJcblx0XHJcblx0LnB1Ymxpc2hlZCB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHQucG9zX2FicygxMTBweCwgMjBweCwgMjVweCwgYXV0byk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3R3aXR0ZXJfaXRlbV9jb250ZW50IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIERyb3BjYXAgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19kcm9wY2FwIHtcclxuXHRtYXJnaW46NXB4IDI2cHggNXB4IDIycHg7XHJcblx0bGluZS1oZWlnaHQ6NjJweDtcclxuXHQuZmw7XHJcblx0XHJcblx0Ji50eXBlMiB7XHJcblx0XHR3aWR0aDo2MnB4O1xyXG5cdFx0aGVpZ2h0OjYycHg7XHJcblx0XHRsaW5lLWhlaWdodDo1NnB4O1xyXG5cdFx0bWFyZ2luOjBweCAyMHB4IDVweCA1cHg7XHJcblx0XHQuYmRycyg1MCUpO1xyXG5cdFx0LnRhYztcclxuXHRcdC5iZDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQ2xpZW50cyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2NsaWVudHNfc2xpZGVyX3dyYXAge1xyXG5cdHBhZGRpbmc6MCAzNnB4O1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19jbGllbnRzX3NsaWRlciB7XHJcblx0bWFyZ2luOjA7XHJcblx0cGFkZGluZzoyNXB4IDA7XHJcblx0XHJcblx0Ji5lbmFibGVfc2xpZGVzX2NvbnRyb2wge1xyXG5cdFx0cGFkZGluZy1ib3R0b206MjVweDtcclxuXHR9XHJcblx0XHJcblx0Ji5lbmFibGVfYXJyb3dfY29udHJvbCB7XHJcblx0XHRwYWRkaW5nLXRvcDo1NXB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyX2l0ZW0ge1xyXG5cdFx0bWluLXdpZHRoOjE3MHB4O1xyXG5cdH1cclxuXHRcclxuXHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFxyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHR3aWR0aDo1NnB4O1xyXG5cdFx0XHRoZWlnaHQ6NTZweDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHRib3R0b206MDtcclxuXHRcdFx0bWFyZ2luOmF1dG87XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdG92ZXJmbG93OmhpZGRlbjtcclxuXHRcdFx0XHJcblx0XHRcdCYub3dsLXByZXYge1xyXG5cdFx0XHRcdGxlZnQ6LTU2cHg7XHJcblx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5vd2wtbmV4dCB7XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdHJpZ2h0Oi01NnB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdGxpbmUtaGVpZ2h0OjE4MHB4O1xyXG5cdGhlaWdodDoxODBweDtcclxuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHRcclxuXHRpbWcge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMjBweDtcclxuXHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0bWF4LWhlaWdodDoxMDAlO1xyXG5cdFx0aGVpZ2h0OmF1dG87XHJcblx0XHR3aWR0aDphdXRvO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdH1cclxuXHRcclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRsaW5lLWhlaWdodDoxODBweDtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdH1cclxuXHRcclxuXHQmOmhvdmVyIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4uY21zbWFzdGVyc19jbGllbnRzX2dyaWQge1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHRcclxuXHQmLmNsaWVudHNfZml2ZSAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6MjAlO1xyXG5cdH1cclxuXHRcclxuXHQmLmNsaWVudHNfZm91ciAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6MjUlO1xyXG5cdH1cclxuXHRcclxuXHQmLmNsaWVudHNfdGhyZWUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcclxuXHRcdHdpZHRoOjMzLjMzJTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbGllbnRzX3R3byAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6NTAlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jbGllbnRzX2l0ZW1zIHtcclxuXHRcdGhlaWdodDphdXRvO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0ZmxvYXQ6bGVmdDtcclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdC5vcCguMSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY2xpZW50c19vbmUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOmxhc3QtY2hpbGQsXHJcblx0Ji5jbGllbnRzX29uZSAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGZsb2F0Om5vbmU7XHJcblx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdGxpbmUtaGVpZ2h0OjA7XHJcblx0fVxyXG5cdFxyXG5cdCYuY2xpZW50c190d28gLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCgybisxKSxcclxuXHQmLmNsaWVudHNfdGhyZWUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCgzbisxKSxcclxuXHQmLmNsaWVudHNfZm91ciAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW06bnRoLWNoaWxkKDRuKzEpLFxyXG5cdCYuY2xpZW50c19maXZlIC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbTpudGgtY2hpbGQoNW4rMSkge1xyXG5cdFx0Y2xlYXI6Ym90aDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIENNU01hc3RlcnMgTWFpbHBvZXQgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19tYWlscG9ldF9mb3JtIHtcclxuXHRmb3JtIHtcclxuXHRcdC5kaXNwbGF5X2ZsZXg7XHJcblx0XHRcclxuXHRcdGxhYmVsIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZy1ib3R0b206NnB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQud3lzaWphLXBhcmFncmFwaCB7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0bWFyZ2luOjAgMCAyMHB4IDA7XHJcblx0XHRcdGZsZXg6MCAxIDEwMCU7XHJcblx0XHRcdC13ZWJraXQtZmxleDowIDEgMTAwJTtcclxuXHRcdFx0LW1vei1mbGV4OjAgMSAxMDAlO1xyXG5cdFx0XHQtbXMtZmxleDowIDEgMTAwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm1haWxwb2V0X3N1Ym1pdCB7XHJcblx0XHRcdG1hcmdpbjowIDAgMjBweCAhaW1wb3J0YW50O1xyXG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuXHRcdFx0LXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuXHRcdFx0LW1vei1hbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxuXHRcdFx0LW1zLWFsaWduLXNlbGY6IGZsZXgtZW5kO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5mb3JtRXJyb3J7XHJcblx0XHRcdGxlZnQ6IGF1dG8haW1wb3J0YW50O1xyXG5cdFx0XHRyaWdodDogMCUhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRAe2lucHV0X3RleHR9IHtcclxuXHRcdFx0aGVpZ2h0OjQ0cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRXaWRnZXRzIFN0eWxlcyAqL1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLndpZGdldCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0cGFkZGluZzowIDAgKEBsaW5lX2hlaWdodF9wYWQgKiAyKTtcclxuXHRcclxuXHQud2lkZ2V0dGl0bGUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTozMnB4O1xyXG5cdFx0cGFkZGluZzowcHggMCAwO1xyXG5cclxuXHRcdD4gc3BhbntcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0JjpsYXN0LWNoaWxke1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBTZWFyY2ggKioqKioqKioqKioqKioqKioqL1xyXG4jcGFnZSAud2lkZ2V0X3NlYXJjaCB7XHJcblx0LndpZGdldHRpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206LTVweDtcclxuXHRcdHBhZGRpbmc6MjBweCAyMHB4IDAgMjBweDtcclxuXHRcdC5iZGIoMCk7XHJcblx0fVxyXG5cdFxyXG5cdC53aWRnZXR0aXRsZSArIC5zZWFyY2hfYmFyX3dyYXAge1xyXG5cdFx0cGFkZGluZzoyMHB4O1xyXG5cdFx0LmJkKDApO1xyXG5cdFx0XHJcblx0XHQuc2VhcmNoX2J1dHRvbiB7XHJcblx0XHRcdHJpZ2h0OjIwcHg7XHJcblx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnNlYXJjaF9maWVsZCBpbnB1dCB7XHJcblx0XHRcdHBhZGRpbmc6MTBweCA1MHB4IDEwcHggMjBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNlYXJjaF9idXR0b24sIFxyXG5cdGlucHV0IHtcclxuXHRcdGhlaWdodDo1MHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IEFkdmVydGlzZW1lbnQgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9hZHZlcnRpc2VtZW50X2VudHJpZXMge1xyXG5cdC53aWRnZXR0aXRsZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOjI1cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5hZHZfaW1hZ2Vfd3JhcCB7XHJcblx0XHRtYXJnaW46LTVweDtcclxuXHRcdG92ZXJmbG93OmhpZGRlbjtcclxuXHRcdFxyXG5cdFx0LmFkdl93aWRnZXRfaW1hZ2Uge1xyXG5cdFx0XHR3aWR0aDoxMjVweDtcclxuXHRcdFx0aGVpZ2h0OjEyNXB4O1xyXG5cdFx0XHRmbG9hdDpsZWZ0O1xyXG5cdFx0XHRtYXJnaW46NXB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgTGlzdHMgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X3BhZ2VzLCBcclxuLndpZGdldF9jYXRlZ29yaWVzLCBcclxuLndpZGdldF9hcmNoaXZlLCBcclxuLndpZGdldF9tZXRhLCBcclxuLndpZGdldF9yZWNlbnRfY29tbWVudHMsIFxyXG4ud2lkZ2V0X3JlY2VudF9lbnRyaWVzLFxyXG4ud2lkZ2V0X25hdl9tZW51LFxyXG4ud2lkZ2V0X3Jzc3tcclxuXHR1bCB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MTBweCAzMHB4O1xyXG5cdFx0LmJkcnMoM3B4KTtcclxuXHRcdC5vdmg7XHJcblxyXG5cdFx0dWwge1xyXG5cdFx0XHRwYWRkaW5nOjBweCAwIDAgMTBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHQuYmRiO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGF7XHJcblx0XHRcdFx0cGFkZGluZzoxNXB4IDA7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuXHRcdFx0XHQmOmVtcHR5IHtcclxuXHRcdFx0XHRcdC5kbjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCYgKyB1bCB7XHJcblx0XHRcdFx0XHQuYmRycygwKTtcclxuXHRcdFx0XHRcdC5iZHQ7XHJcblxyXG5cdFx0XHRcdFx0PiBsaTpmaXJzdC1jaGlsZHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy10b3A6IDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdC5iZGIoMCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkgbGk6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRsYWJlbCB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xyXG5cdH1cclxuXHRcclxuXHQucG9zdC1kYXRlIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46LTNweCAwIDA7XHJcblx0fVxyXG59XHJcblxyXG4ud2lkZ2V0X25hdl9tZW51IHtcclxuXHR1bHtcclxuXHRcdGxpe1xyXG5cdFx0XHRhe1xyXG5cdFx0XHRcdCY6ZW1wdHl7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDA7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDA7XHJcblx0XHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0XHRtYXJnaW46IC0xcHggMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi53aWRnZXRfcmVjZW50X2VudHJpZXN7XHJcblx0dWx7XHJcblx0XHRsaXtcclxuXHRcdFx0LmRpc3BsYXlfZmxleDtcclxuXHRcdFx0LmZsZXhfZGlyZWN0aW9uKGNvbHVtbik7XHJcblx0XHRcdFxyXG5cdFx0XHRhe1xyXG5cdFx0XHRcdCYgKyAucG9zdC1kYXRle1xyXG5cdFx0XHRcdFx0bWFyZ2luOiAxM3B4IDAgLTE3cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdC5wb3N0LWRhdGU6bGFzdC1jaGlsZHtcclxuXHRcdFx0XHRvcmRlcjogLTE7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi53aWRnZXRfdGV4dHtcclxuXHR1bHtcclxuXHRcdGxpe1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLndpZGdldF9yZWNlbnRfY29tbWVudHN7XHJcblx0LnJlY2VudGNvbW1lbnRze1xyXG5cdFx0cGFkZGluZzogMTVweCAwO1xyXG5cclxuXHRcdGF7XHJcblx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4ud2lkZ2V0X2NhdGVnb3JpZXMsIFxyXG4ud2lkZ2V0X2FyY2hpdmUge1xyXG5cdC5zY3JlZW4tcmVhZGVyLXRleHQge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQ2FsZW5kYXIgKioqKioqKioqKioqKioqKioqL1xyXG4jd3AtY2FsZW5kYXIge1xyXG5cdGJvcmRlci1zcGFjaW5nOjA7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRtaW4td2lkdGg6MjAwcHg7XHJcblx0bWF4LXdpZHRoOiA0NTBweDtcclxuXHQudGFjO1xyXG5cdFxyXG5cdGNhcHRpb24ge1xyXG5cdFx0bWFyZ2luOjAgMCAxMnB4O1xyXG5cdFx0cGFkZGluZzowIDEwcHg7XHJcblx0XHQudGFjO1xyXG5cdFx0LmJkO1xyXG5cdH1cclxuXHRcclxuXHR0aCB7XHJcblx0XHRwYWRkaW5nOjVweCAwO1xyXG5cdH1cclxuXHRcclxuXHR0ZCB7XHJcblx0XHRwYWRkaW5nOjlweCAwO1xyXG5cdH1cclxuXHRcclxuXHR0Zm9vdCB7XHJcblx0XHRcclxuXHRcdCNwcmV2IHtcclxuXHRcdFx0LnRhbDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0I25leHQge1xyXG5cdFx0XHQudGFyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBDb250YWN0IEZvcm0gKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9jb250YWN0X2Zvcm1fZW50cmllcyB7XHJcblx0QHtpbnB1dF90ZXh0fSxcclxuXHR0ZXh0YXJlYSxcclxuXHRzZWxlY3Qge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0LmZvcm1faW5mby5zdWJtaXRfd3JhcCB7XHJcblx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQ29udGFjdCBJbmZvICoqKioqKioqKioqKioqKioqKi9cclxuLndpZGdldF9jdXN0b21fY29udGFjdF9pbmZvX2VudHJpZXMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0PiBzcGFuLCBcclxuXHQuYWRyZXNzX3dyYXAge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdG1hcmdpbjoyMHB4IDAgMDtcclxuXHRcdHBhZGRpbmc6MCAwIDAgMzBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1zaXplOjIwcHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjIycHg7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdC5wb3NfYWJzKDIwcHgsIDIycHgsIDAsIGF1dG8pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuYWRyZXNzX3dyYXAge1xyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQ3VzdG9tIE1lbnUgKioqKioqKioqKioqKioqKioqL1xyXG5zZWxlY3RvciB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHR1bCB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdHBhZGRpbmc6MTJweCAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRwYWRkaW5nOjEwcHggMCA5cHg7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHQuYmRiO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5tZW51IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQ+IGxpIHtcdFxyXG5cdFx0XHRwYWRkaW5nOjAgMCAwIDE1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGEge1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQgYSB7XHJcblx0XHRcdFx0LmJkYigwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR1bCB7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDAgMjJweDtcclxuXHRcdFx0XHJcblx0XHRcdGxpIHtcdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHVsIHtcclxuXHRcdFx0XHRwYWRkaW5nOjAgMCAwIDVweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgRmFjZWJvb2sgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9mYWNlYm9va19lbnRyaWVzIHtcclxuXHQuZmJfaWZyYW1lX3dpZGdldF9mbHVpZCB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdG1heC13aWR0aDogMTAwJTtcclxuXHJcblx0XHRzcGFue1xyXG5cdFx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRpZnJhbWUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IEZsaWNrciAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX2ZsaWNrcl9lbnRyaWVzIHtcclxuXHQud3JhcCB7XHJcblx0XHRtYXJnaW46MCAtNHB4O1xyXG5cdH1cclxuXHRcclxuXHQubW9yZV9idXR0b24ge1xyXG5cdFx0ZGlzcGxheTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuZmxpY2tyX2JhZGdlX2ltYWdlIHtcclxuXHRcdG1hcmdpbjowIDRweCA4cHg7XHJcblx0XHQuZmw7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBMYXRlc3QgYW5kIFBvcHVsYXIgQXJ0aWNsZXMgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9wb3B1bGFyX3Byb2plY3RzX2VudHJpZXMsXHJcbi53aWRnZXRfY3VzdG9tX2xhdGVzdF9wcm9qZWN0c19lbnRyaWVzIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQud2lkZ2V0dGl0bGUge1xyXG5cdFx0cGFkZGluZzowcHggNTVweCAwcHggMHB4O1xyXG5cdH1cclxuXHRcclxuXHQud2lkZ2V0X2N1c3RvbV9wcm9qZWN0c19lbnRyaWVzX3NsaWRlcyB7XHJcblx0XHRwYWRkaW5nOjQwcHggMCAwO1xyXG5cdH1cclxuXHRcclxuXHQud2lkZ2V0dGl0bGUgKyAud2lkZ2V0X2N1c3RvbV9wcm9qZWN0c19lbnRyaWVzX3NsaWRlcyB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdC5vd2wtY29udHJvbHMge1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0dG9wOi02NnB4O1xyXG5cdFx0XHRyaWdodDotNHB4O1xyXG5cdFx0XHRib3R0b206YXV0bztcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfcHJldl9hcnJvdywgXHJcblx0XHRcdC5jbXNtYXN0ZXJzX25leHRfYXJyb3cge1xyXG5cdFx0XHRcdHdpZHRoOjI4cHg7XHJcblx0XHRcdFx0aGVpZ2h0OjM1cHg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5vd2wtcGFnaW5hdGlvbntcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2ltYWdlX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0Lm9wKC42KTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0ei1pbmRleDo0O1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDBweCAtMTA2cHggOTJweCAtMzVweCByZ2JhKDAsMCwwLDEpO1xyXG5cdFx0XHRcdC1tb3otYm94LXNoYWRvdzogaW5zZXQgMHB4IC0xMDZweCA5MnB4IC0zNXB4IHJnYmEoMCwwLDAsMSk7XHJcblx0XHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMHB4IC0xMDZweCA5MnB4IC0zNXB4IHJnYmEoMCwwLDAsMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdGltZyB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wNSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMS4wNSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2ltYWdlX21ldGEge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OjU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaW1hZ2VfbWV0YV9ib3R0b20ge1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRib3R0b206MDtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwYWRkaW5nOjBweCAyMHB4IDE1cHg7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NhdGVnb3J5e1xyXG5cdFx0XHRwb3NpdGlvbjogc3RhdGljO1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfY2F0ZWdvcnkge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0dG9wOiAyNXB4O1xyXG5cdFx0bGVmdDogMjVweDtcclxuXHRcdHJpZ2h0OiAyNXB4O1xyXG5cdFx0Lm92aDtcclxuXHRcdC5jbDtcclxuXHJcblx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdH1cclxuXHJcblx0XHRhIHtcclxuXHRcdFx0bWFyZ2luOjBweCA1cHggNXB4IDA7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBhZGRpbmc6MCAxNnB4O1xyXG5cdFx0XHRjbGVhcjogbm9uZTtcclxuXHRcdFx0LmZsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfZGF0ZSB7XHJcblx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRtYXJnaW46NXB4IDAgMDtcclxuXHRcdC50YWw7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2ltYWdlX3dyYXAgKyAuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9pbm5lciB7XHJcblx0XHRtYXJnaW46MTZweCAwIDA7XHJcblx0fVxyXG5cdFx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaW5uZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nLWxlZnQ6MDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6MDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0Lm92aDtcclxuXHRcdC50YWw7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9mb290ZXIge1xyXG5cdFx0cGFkZGluZzo1cHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFxyXG5cdFx0PiAqIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdHBhZGRpbmc6MCAyNHB4IDAgMDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0cGFkZGluZzowOyBcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBQb3N0cyBUYWJzICoqKioqKioqKioqKioqKioqKi9cclxuLndpZGdldF9jdXN0b21fcG9zdHNfdGFic19lbnRyaWVzIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cclxuXHQuY21zbWFzdGVyc190YWJzIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdHtcclxuXHRcdFx0bWF4LXdpZHRoOiAzMDBweDtcclxuXHRcdH1cclxuXHJcblx0XHQuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSB7XHJcblx0XHRcdG1hcmdpbjowIDVweCA1cHggMDtcclxuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0XHRcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0PiBzcGFue1xyXG5cdFx0XHRcdFx0cGFkZGluZzowcHggMHB4IDBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdGFic193cmFwIHtcclxuXHRcdFx0bWFyZ2luOjE1cHggMCAwO1xyXG5cdFx0XHRwYWRkaW5nOjBweCAwO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0XHJcblx0XHRcdD4gLmNtc21hc3RlcnNfdGFiOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHJcblx0XHQuY21zbWFzdGVyc190YWIge1xyXG5cdFx0XHR1bCB7XHJcblx0XHRcdFx0bWFyZ2luOi0yMHB4IDAgMCAtMjBweDtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdG1hcmdpbjoyMHB4IDAgMDtcclxuXHRcdFx0XHRwYWRkaW5nOjAgMHB4IDAgMjBweDtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdFx0Lm92aDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRwIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji50YWJfbGF0ZXN0LCBcclxuXHRcdFx0Ji50YWJfcG9wdWxhciB7XHJcblx0XHRcdFx0bGk6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0XHRcdGhlaWdodDo3MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji50YWJfY29tbWVudHMge1xyXG5cdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdG1hcmdpbjoyMHB4IDAgMDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0Jjo6YWZ0ZXJ7XHJcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDoxMnB4O1xyXG5cdFx0XHRcdFx0XHRib3JkZXItY29sb3I6IGluaGVyaXQ7XHJcblx0XHRcdFx0XHRcdC5iZGI7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0JjpsYXN0LWNoaWxkOjphZnRlcntcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQ+IHAge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzoxMHB4IDAgMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0c21hbGwge1xyXG5cdFx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19scHJfdGFic19pbWcge1xyXG5cdFx0XHR3aWR0aDogNDUlO1xyXG5cdFx0XHRtYXgtd2lkdGg6IDEyMHB4O1xyXG5cdFx0XHRtaW4td2lkdGg6IDgwcHg7XHJcblx0XHRcdG1hcmdpbi1yaWdodDoxNXB4O1xyXG5cdFx0XHR6LWluZGV4OjE7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRcdD4gKntcclxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0XHRtYXJnaW46IC0xNyUgMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5pbWdfcGxhY2Vob2xkZXJfc21hbGx7XHJcblx0XHRcdGhlaWdodDogMTIwcHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfbHByX3RhYnNfY29udCB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHRhe1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0PiAucHVibGlzaGVkIHtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOjBweDtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cclxuXHRcdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCY6OmFmdGVye1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFJTUyAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfcnNzIHtcclxuXHRpbWcge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHJcblx0dWwge1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmR0KDApO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucnNzLWRhdGUge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDoycHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5yc3NTdW1tYXJ5IHtcclxuXHRcdFx0XHRwYWRkaW5nOjVweCAwIDA7XHJcblx0XHRcdFx0Lm92aDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Y2l0ZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjdweCAwIDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFRhZyBDbG91ZCAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfdGFnX2Nsb3VkIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC50YWdjbG91ZCB7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmNsO1xyXG5cdH1cclxuXHJcblx0YSB7XHJcblx0XHRwYWRkaW5nOjAgMHB4O1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcblx0XHQudGFnLWxpbmstY291bnR7XHJcblx0XHRcdGZvbnQtc2l6ZTogMC42NWVtO1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHR9XHJcblxyXG5cdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRjb250ZW50OiBcIiNcIjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBUd2l0dGVyICoqKioqKioqKioqKioqKioqKi9cclxuLndpZGdldF9jdXN0b21fdHdpdHRlcl9lbnRyaWVzIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdHVsIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbjowIDAgMjRweDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnR3ZWV0X3RpbWUge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBhZGRpbmc6MCAwIDAgNDRweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MThweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MzJweDtcclxuXHRcdFx0LnBvc19hYnMoMzJweCwgMzJweCwgMCwgYXV0byk7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC50d2VldF90ZXh0IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwYWRkaW5nOjEycHggMCAwO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLypcdFNlYXJjaCArIEFyY2hpdmVzICsgU2l0ZW1hcCArIEVycm9yICsgT3RoZXIgU3R5bGVzICovXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQXJjaGl2ZXMgKyBTZWFyY2ggKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19zZWFyY2gsIFxyXG4uY21zbWFzdGVyc19hcmNoaXZlIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cclxuXHQ+IC5hYm91dF9hdXRob3Ige1xyXG5cdFx0cGFkZGluZzowIDAgNTBweDtcclxuXHR9XHJcblx0XHJcblx0PiAuY21zbWFzdGVyc193cmFwX3BhZ2luYXRpb24ge1xyXG5cdFx0cGFkZGluZzo1MHB4IDAgMDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2FyY2hpdmVfdHlwZSB7XHJcblx0cGFkZGluZzo1MHB4IDAgMDtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdCY6Zmlyc3Qtb2YtdHlwZSB7XHJcblx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdH1cclxuXHRcclxuXHQucHJlbG9hZGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYXJjaGl2ZXNfcGFkO1xyXG5cdFx0XHJcblx0XHQmLmhpZ2hJbWcge1xyXG5cdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1faW1nX3dyYXAge1xyXG5cdFx0bWFyZ2luOjAgNDBweCAwIDA7XHJcblx0XHR3aWR0aDozNCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mbDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmhhcy1wb3N0LXRodW1ibmFpbCB7XHJcblx0XHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fdHlwZSB7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0d2lkdGg6YXV0bztcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRyaWdodDotNXB4O1xyXG5cdFx0XHR0b3A6MTJweDtcclxuXHRcdFx0Ym90dG9tOmF1dG87XHJcblx0XHRcdHotaW5kZXg6MTA7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV90eXBlIHtcclxuXHRcdG1hcmdpbjowIDAgMTBweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZzowIDE2cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9jb250X3dyYXAge1xyXG5cdFx0cGFkZGluZy10b3A6MTZweDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9pbmZvIHtcclxuXHRcdHBhZGRpbmc6MCAwIDIwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHJcblx0XHQ+ICoge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0cGFkZGluZzowIDI0cHggMCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7IFxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9jYXRlZ29yeXtcclxuXHRcdGF7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0ZmxvYXQ6IG5vbmU7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdG1hcmdpbjogMCA1cHggMHB4IDA7XHJcblxyXG5cdFx0XHQmOmZpcnN0LWNoaWxke1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA2cHg7XHJcblx0XHRcdFx0XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMTVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX3RpdGxlIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0d29yZC13cmFwOiBicmVhay13b3JkO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fY29udGVudCB7XHJcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBTaXRlbWFwICoqKioqKioqKioqKioqKioqKi9cclxuLm1pZGRsZV9jb250ZW50IC5jbXNtYXN0ZXJzX3NpdGVtYXBfd3JhcCB7XHJcblx0cGFkZGluZzowIDAgNTBweDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfc2l0ZW1hcF93cmFwIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cclxuXHR1bCwgXHJcblx0b2wsIFxyXG5cdGxpIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2l0ZW1hcCA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGkgYSwgXHJcblx0LmNtc21hc3RlcnNfc2l0ZW1hcF9hcmNoaXZlID4gbGkgYSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0cGFkZGluZy1sZWZ0OjE1cHg7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjA7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19kaXZpZGVyIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MzBweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2l0ZW1hcCB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gbGkge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRwYWRkaW5nLXRvcDozMHB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6MnB4O1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDowO1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjM1cHg7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0KyB1bCB7XHJcblx0XHRcdFx0XHRtYXJnaW4tdG9wOi0xMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0d2lkdGg6MjUlO1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6MjBweDtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206NDBweDtcclxuXHRcdFx0XHRcdC5mbDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoNSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMTMpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDE3KSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMjUpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDI5KSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMzcpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDQxKSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdFx0XHRjbGVhcjpib3RoO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy10b3A6MjBweDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDoyMHB4O1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaXRlbWFwX2NhdGVnb3J5IHtcclxuXHRcdHBhZGRpbmc6NXB4IDAgMDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0cGFkZGluZy1yaWdodDoyMHB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjQwcHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyNSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0MSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdGNsZWFyOmJvdGg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjIwcHg7XHJcblx0XHRcdFxyXG5cdFx0XHRcdHVsIHtcclxuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0XHRsaSB7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDoyMHB4O1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2l0ZW1hcF9hcmNoaXZlIHtcclxuXHRcdHBhZGRpbmc6NXB4IDAgMjBweDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyNSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0MSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdGNsZWFyOmJvdGg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRXJyb3IgKioqKioqKioqKioqKioqKioqL1xyXG4uZXJyb3Ige1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmVycm9yX2lubmVyIHtcclxuXHRcdHBhZGRpbmc6MTA1cHggMCAyMDBweDtcclxuXHR9XHJcblx0XHJcblx0LmVycm9yX3RpdGxlIHtcclxuXHRcdGZvbnQtc2l6ZToxNThweDtcclxuXHRcdGxpbmUtaGVpZ2h0OjFlbTtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowIDAgMzBweDtcclxuXHRcdC50YWM7XHJcblx0fVxyXG5cdFxyXG5cdC5lcnJvcl9zdWJ0aXRsZSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdC50YWM7XHJcblx0fVxyXG5cdFxyXG5cdC5lcnJvcl9jb250IHtcclxuXHRcdHBhZGRpbmc6MjJweCAwO1xyXG5cdFx0LnRhYztcclxuXHRcdC5jbDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdC5zZWFyY2hfYmFyX3dyYXAge1xyXG5cdFx0XHR3aWR0aDoyNzBweDtcclxuXHRcdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0XHRcdG1hcmdpbjowIC0xcHggMTBweCAwO1xyXG5cdFx0XHR6LWluZGV4OjI7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcclxuXHRcdFx0QHtpbnB1dF90ZXh0fSB7XHJcblx0XHRcdFx0aGVpZ2h0OjQ0cHg7XHJcblx0XHRcdFx0YmFja2dyb3VuZDp0cmFuc3BhcmVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuZXJyb3JfYnV0dG9uX3dyYXAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBBdHRhY2htZW50IFBhZ2UgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19hdHRhY2hfaW1nIHtcclxuXHRwYWRkaW5nOjQwcHggMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdfaW5mbyB7XHJcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xyXG5cdFx0bWFyZ2luOjAgMCAzMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hdHRhY2hfaW1nX2VkaXQge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdfbWV0YSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIE90aGVyICoqKioqKioqKioqKioqKioqKi9cclxuI21haW4ge1xyXG5cdC53aXRoX2ZybV9zdHlsZSAuZnJtX2Zvcm1fZmllbGRzIGlucHV0LCBcclxuXHQjd3Bjb250ZW50IC53aXRoX2ZybV9zdHlsZSAuZnJtX2Zvcm1fZmllbGRzIHNlbGVjdCwgXHJcblx0LndpdGhfZnJtX3N0eWxlIC5mcm1fZm9ybV9maWVsZHMgc2VsZWN0LCBcclxuXHQud2l0aF9mcm1fc3R5bGUgLmZybV9mb3JtX2ZpZWxkcyB0ZXh0YXJlYSB7XHJcblx0XHRwYWRkaW5nOkBpbnB1dF9wYWQgQGlucHV0X3BhZCAqIDI7XHJcblx0fVxyXG59XHJcblxyXG4jbGFuZ19zZWwgdWwge1xyXG5cdG92ZXJmbG93OnZpc2libGU7XHJcbn1cclxuXHJcbiNsYW5nX3NlbF9mb290ZXIge1xyXG5cdGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRDb250YWN0IEZvcm1zIFN0eWxlcyAqL1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIHtcclxuXHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblx0XHJcblx0LnN1Y2Nlc3NfYm94IHtcclxuXHRcdG1hcmdpbjowIEBjb2xfbWFyIDEwcHg7XHJcblx0XHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQuZm9ybV9pbmZvIHtcclxuXHRcdG1hcmdpbjowIEBjb2xfbWFyO1xyXG5cclxuXHRcdCYgI3BhZ2V7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjIwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc3VibWl0X3dyYXAge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDowcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdFtjbGFzcyo9XCJvbmVfXCJdIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG5cdFtjbGFzcyo9XCJvbmVfXCJdIHNlbGVjdCxcclxuXHRbY2xhc3MqPVwib25lX1wiXSB0ZXh0YXJlYSB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxufVxyXG5cclxuc2VsZWN0IHtcclxuXHRtaW4td2lkdGg6MTAwcHg7XHJcblx0aGVpZ2h0OjQwcHg7XHJcbn1cclxuXHJcbnNlbGVjdDo6LW1zLWV4cGFuZCB7XHJcblx0ZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuc2VsZWN0W211bHRpcGxlXSB7XHJcblx0aGVpZ2h0OmF1dG87XHJcbn1cclxuXHJcbnNwYW4ud3BjZjctbGlzdC1pdGVtIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG59XHJcblxyXG4ud3BjZjctbGlzdC1pdGVtLWxhYmVsLFxyXG5ib2R5IC5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLCBcclxuYm9keSAuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbCB7XHJcblx0cGFkZGluZy1sZWZ0OjI1cHg7XHJcblx0cGFkZGluZy1yaWdodDowO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdGN1cnNvcjpwb2ludGVyO1xyXG5cdC5mbDtcclxufVxyXG5cclxuLndwY2Y3LWxpc3QtaXRlbSBsYWJlbCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRvdmVyZmxvdzpoaWRkZW47XHJcblx0cGFkZGluZzo1cHggMDtcclxufVxyXG5cclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG5cdC5mbDtcclxuXHQub3AoMCk7XHJcblx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIGF1dG8pO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmJlZm9yZSwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmJlZm9yZSxcclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDpiZWZvcmUsIFxyXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDpiZWZvcmUge1xyXG5cdGNvbnRlbnQ6Jyc7XHJcblx0LmJkO1xyXG5cdC5wb3NfYWJzKDE3cHgsIDE3cHgsIDFweCwgYXV0byk7XHJcbn1cclxuXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YmVmb3JlLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YmVmb3JlIHtcclxuXHQuYmRycyg1MCUpO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWw6YWZ0ZXIsXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsIFxyXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDphZnRlciB7XHJcblx0Y29udGVudDonJztcclxuXHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHR0cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0LnBvc19hYnMoOXB4LCA5cHgsIDVweCwgYXV0byk7XHJcblx0Lm9wKDApO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YWZ0ZXIge1xyXG5cdC5iZHJzKDUwJSk7XHJcbn1cclxuXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlcixcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XHJcblx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0dHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdC5vcCgxKTtcclxufVxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLypcdENTUzMgQW5pbWF0aW9ucyAqL1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuaHRtbC5jc3N0cmFuc2l0aW9ucyB7XHJcblx0LyogQ3VzdG9tIEFuaW1hdGlvbnMgKi9cclxuXHQubmF2aWdhdGlvbiBsaSBhIC5uYXZfdGFnLCBcclxuXHQuY21zbWFzdGVyc19saWtlcyBhOmJlZm9yZSwgXHJcblx0LmNtc21hc3RlcnNfY29tbWVudHMgYTpiZWZvcmUsIFxyXG5cdC5jbXNtYXN0ZXJzX3ZpZXdzIHNwYW46YmVmb3JlLCBcclxuXHQuY21zbWFzdGVyc19saWtlcyA+IGEgc3BhbiwgXHJcblx0LmNtc21hc3RlcnNfY29tbWVudHMgPiBhIHNwYW4sIFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfdGltZWxpbmUgYSAuY21zbWFzdGVyc19kYXksIFxyXG5cdC5wb3N0X25hdiBzcGFuLCBcclxuXHQucG9zdF9uYXYgLnBvc3RfbmF2X3RpdGxlLFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSBhYmJye1xyXG5cdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbiAub3dsLXBhZ2Uge1xyXG5cdFx0LnRyYW5zKH4nYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0QHtpbnB1dF90ZXh0fSxcclxuXHR0ZXh0YXJlYSwgXHJcblx0c2VsZWN0IHtcclxuXHRcdC50cmFucyh+J2JvcmRlci1jb2xvciAuMjVzIGVhc2UnKTtcclxuXHR9XHJcblx0XHJcblx0Lm1pZF9uYXYgdWwgYSA+IHNwYW46YmVmb3JlLCBcclxuXHQuYm90X25hdiB1bCBhID4gc3BhbjpiZWZvcmUsXHJcblx0LmJvdF9uYXY+bGk+YT4ubmF2X2l0ZW1fd3JhcDo6YmVmb3JlICxcclxuXHQubWlkX25hdj5saT5hPi5uYXZfaXRlbV93cmFwOjpiZWZvcmUge1xyXG5cdFx0LnRyYW5zKH4nd2lkdGggLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRlcl9zZWFyY2hfZm9ybSAuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm1fY2xvc2UsIFxyXG5cdC5zZWFyY2hfd3JhcDpiZWZvcmUsIFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfZ3JpZCAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIsIFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIC5wcm9qZWN0X2lubmVyLCBcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdCAuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9pbm5lcl93cmFwLCBcclxuXHQud2lkZ2V0X2N1c3RvbV9wb3B1bGFyX3Byb2plY3RzX2VudHJpZXMgLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyLCBcclxuXHQud2lkZ2V0X2N1c3RvbV9sYXRlc3RfcHJvamVjdHNfZW50cmllcyAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIsXHJcblx0LmNtc21hc3RlcnNfc2hhcmluZyBhOjphZnRlcixcclxuXHQuc2hhcmVfcG9zdHMgYTo6YWZ0ZXIge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHRcclxuXHQuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm0ge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuMjVzIGVhc2UtaW4tb3V0LCB2aXNpYmlsaXR5IC4yNXMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmJ1dHRvbiwgXHJcblx0aW5wdXRbdHlwZT1zdWJtaXRdLCBcclxuXHRpbnB1dFt0eXBlPWJ1dHRvbl0sIFxyXG5cdGJ1dHRvbiwgXHJcblx0I3NsaWRlX3RvcCwgXHJcblx0LmNtc21hc3RlcnNfcG9zdF90YWdzID4gYSwgXHJcblx0LmNtc21hc3RlcnNfcHJldl9hcnJvdywgXHJcblx0LmNtc21hc3RlcnNfbmV4dF9hcnJvdywgXHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGUgLmNtc21hc3RlcnNfcHJvamVjdF9jYXRlZ29yeSBhLCBcclxuXHQuY21zbWFzdGVyc190b2dnbGVzIC5jbXNtYXN0ZXJzX3RvZ2dsZV90aXRsZSwgXHJcblx0LmNtc21hc3RlcnNfdG9nZ2xlcyAuY21zbWFzdGVyc190b2dnbGVzX2ZpbHRlciBhLCBcclxuXHQuY21zbWFzdGVyc190YWJzIC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtIGEsIFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnMgLmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0gYSBzcGFuLCBcclxuXHQuY21zbWFzdGVyc19ub3RpY2UgLm5vdGljZV9jbG9zZSwgXHJcblx0LndpZGdldF90YWdfY2xvdWQgYSB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZXMgLmNtc21hc3RlcnNfdG9nZ2xlX3BsdXM6YmVmb3JlLCBcclxuXHQuY21zbWFzdGVyc19wb3N0X2RlZmF1bHQgLmNtc21hc3RlcnNfaW1nX3dyYXAgYSBpbWcsIFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfbWFzb25yeSAuY21zbWFzdGVyc19pbWdfd3JhcCBhLCBcclxuXHQuY21zbWFzdGVyc19wb3N0X3RpbWVsaW5lIC5jbXNtYXN0ZXJzX2ltZ193cmFwIGEgaW1nLCBcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2dyaWQgLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAgaW1nLCBcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdCAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcCBpbWcsIFxyXG5cdC53aWRnZXRfY3VzdG9tX3BvcHVsYXJfcHJvamVjdHNfZW50cmllcyAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcCBpbWcsIFxyXG5cdC53aWRnZXRfY3VzdG9tX2xhdGVzdF9wcm9qZWN0c19lbnRyaWVzIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwIGltZywgXHJcblx0LmNtc21hc3RlcnNfaXRlbXNfc29ydF9idXQ6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGVmYXVsdCAuY21zbWFzdGVyc192aWRlb19wcmV2aWV3OjphZnRlcixcclxuXHQuY21zbWFzdGVyc19wb3N0X2RlZmF1bHQgLmNtc21hc3RlcnNfdmlkZW9fcHJldmlldyAuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHQudHJhbnMofid0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cclxuXHQuYXBzYy1pY29ucy13cmFwcGVyLmFwc2MtdGhlbWUtNSAuYXBzYy1jb3VudCB7XHJcblx0XHQudHJhbnMofid0cmFuc2Zvcm0gLjRzIGVhc2UsIG9wYWNpdHkgLjRzIGVhc2UnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVzX3NsaWRlciAub3dsLWJ1dHRvbnMgPiBkaXYge1xyXG5cdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IC4zcyBlYXNlLWluLW91dCwgbGVmdCAuM3MgZWFzZS1pbi1vdXQsIHJpZ2h0IC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQvKiBHbG9iYWwgQW5pbWF0aW9ucyAqL1xyXG5cdGEsIFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fd3JhcCAuY21zbWFzdGVyc19zaW1wbGVfaWNvbl90aXRsZSwgXHJcblx0LmltZ19wbGFjZWhvbGRlcl9zbWFsbCxcclxuXHQuY21zbWFzdGVyc19zaXRlbWFwX3dyYXAgLmNtc21hc3RlcnNfc2l0ZW1hcCA+IGxpID4gdWwgPiBsaSA+IHVsIGxpIGE6YmVmb3JlIHtcclxuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQsIG9wYWNpdHkgLjNzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfbWlkLCBcclxuXHQuaGVhZGVyX2JvdCB7XHJcblx0XHQudHJhbnMofidiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dCwgcGFkZGluZyAuMjVzIGVhc2UnKTtcclxuXHR9XHJcblx0XHJcblx0I3BhZ2UgLmNtc21hc3RlcnNfc29jaWFsX2ljb24sIFxyXG5cdC5lZGdlX29ubHkgLmNtc21hc3RlcnNfYnV0X2ljb25faW52ZXJzZSB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0bmF2ID4gZGl2ID4gdWwgdWwsXHJcblx0bmF2ID4gZGl2ID4gdWwgZGl2LFxyXG5cdC5hcHNjLWljb25zLXdyYXBwZXIgLmFwc2MtZWFjaC1wcm9maWxlID5hOjpiZWZvcmUge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZSAuMXMsIG1hcmdpbi10b3AgLjNzIGVhc2UgLjFzJyk7XHJcblx0fVxyXG5cdFxyXG5cdG5hdiA+IGRpdiA+IHVsIHVsIHVsIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjNzIGVhc2UtaW4tb3V0IC4xcywgbWFyZ2luLWxlZnQgLjNzIGVhc2UtaW4tb3V0IC4xcywgbWFyZ2luLXJpZ2h0IC4zcyBlYXNlLWluLW91dCAuMXMnKTtcclxuXHR9XHJcblx0XHJcblx0bmF2ID4gZGl2ID4gdWwgbGkgYSxcclxuXHQuY21zbWFzdGVyc19pY29uX3dyYXAgLmNtc21hc3RlcnNfc2ltcGxlX2ljb24ge1xyXG5cdFx0LnRyYW5zKH4nYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQsIGNvbG9yIC4zcyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHRuYXYgPiBkaXYgPiB1bCBsaSBhIC5uYXZfc3VidGl0bGV7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0I3BhZ2UgLmNtc21hc3RlcnNfY2F0X2NvbG9yIGF7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQgIWltcG9ydGFudCcpO1xyXG5cdH1cclxuXHRcclxuXHQuc2VhcmNoX3dyYXAgfiBkaXYge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsIHZpc2liaWxpdHkgLjJzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wIC5oZWFkZXJfdG9wX2J1dCB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdG9nZ2xlcyAuY21zbWFzdGVyc190b2dnbGVfcGx1cyBzcGFuIHtcclxuXHRcdC50cmFucyh+J2JhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBoZWlnaHQgLjFzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5hcHNjLWljb25zLXdyYXBwZXIgLmFwc2MtZWFjaC1wcm9maWxlPmEgLnNvY2lhbC1pY29uOjpiZWZvcmV7XHJcblx0XHQudHJhbnMofidoZWlnaHQgLjI1cyBlYXNlJyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMgPiBsaSBpbWcge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQsIHdpZHRoIC4zcyBlYXNlLWluLW91dCwgbGVmdCAuM3MgZWFzZS1pbi1vdXQsIHJpZ2h0IC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfaXRlbXMgPiBsaSB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC41cyBlYXNlLWluLW91dCwgdmlzaWJpbGl0eSAuNXMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX3RodW1icyA+IGxpIGEge1xyXG5cdFx0LnRyYW5zKGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXIgLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX3RodW1icyA+IGxpIGE6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGVmYXVsdCAuY21zbWFzdGVyc192aWRlb19wcmV2aWV3IC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAgLm1lanMtb3ZlcmxheS1wbGF5OjpiZWZvcmUsXHJcblx0Lm1lanMtb3ZlcmxheS1idXR0b24sXHJcblx0Lm93bC1idXR0b25zID4gZGl2IHtcclxuXHRcdC50cmFucyhvcGFjaXR5IC40cyBlYXNlLWluLW91dCk7XHJcblx0fVxyXG5cdFxyXG5cdC5pc290b3BlID4gKiB7XHJcblx0XHQudHJhbnMob3BhY2l0eSAuOHMgZWFzZS1pbi1vdXQpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19idXR0b24sIFxyXG5cdC5jbXNtYXN0ZXJzX2J1dHRvbi5jbXNtYXN0ZXJzX2J1dF9jbGVhcl9zdHlsZXM6YmVmb3JlLCBcclxuXHQuY21zbWFzdGVyc19idXR0b24uY21zbWFzdGVyc19idXRfY2xlYXJfc3R5bGVzOmFmdGVyLFxyXG5cdFtkYXRhLWFuaW1hdGlvbl0ge1xyXG5cdFx0LnRyYW5zKH4nYWxsIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLFxyXG5cdC5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmFmdGVyLFxyXG5cdC53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsIFxyXG5cdC5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmFmdGVye1xyXG5cdFx0LnRyYW5zKH4nYWxsIC4zcyBlYXNlJyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl90b3A6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9ib3hfdG9wOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25fYm94X2xlZnRfdG9wOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25fYm94X2xlZnQ6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDE6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDI6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDM6YmVmb3JlLCBcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IGg0OmJlZm9yZSwgXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCBoNTpiZWZvcmUsIFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDY6YmVmb3JlIHtcclxuXHRcdC50cmFucyh+J2FsbCAxcyBjdWJpYy1iZXppZXIoLjU1LCAuMywgLjUsIDEuNjUpJyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtcy5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2Jsb2NrIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtOmJlZm9yZSB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IDVzIGVhc2UtaW4tb3V0LCBoZWlnaHQgLjhzIGVhc2UtaW4nKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfYmxvY2sgLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0gLmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb24sIFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtcy5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2Jsb2NrIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uOmFmdGVyIHtcclxuXHRcdC50cmFucyh+J2FsbCAuNXMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfYmxvY2sgLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0gLmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb246YmVmb3JlIHtcclxuXHRcdC50cmFucyh+J2NvbG9yIC40cyBlYXNlLWluLW91dCwgZm9udC1zaXplIC40cyBlYXNlLWluLW91dCwgbGluZS1oZWlnaHQgLjRzIGVhc2UtaW4nKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY2xpZW50c19pdGVtIGltZywgXHJcblx0LmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyIC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMgYSB7XHJcblx0XHQudHJhbnMofidhbGwgLjVzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLnByb2ZpbGUgaW1nIHtcclxuXHRcdC50cmFucyh+J2FsbCAuN3MgY3ViaWMtYmV6aWVyKC41NSwgLjMsIC41LCAxLjY1KScpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9maWxlIC5wcm9maWxlIC5wbF9zb2NpYWxfbGlzdCB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC41cyBlYXNlLW91dCwgbWFyZ2luIC41cyBlYXNlLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2dyaWQgZmlndXJlIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjdzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0IC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X3RpdGxlIGEsXHJcblx0LmNtc21hc3RlcnNfcG9zdF9kZWZhdWx0Om5vdCguZm9ybWF0LXZpZGVvKSAuY21zbWFzdGVyc19wb3N0X3RpdGxlIGEsXHJcblx0LmNtc21hc3RlcnNfcG9zdF90aW1lbGluZSAuY21zbWFzdGVyc19wb3N0X3RpdGxlIGEsXHJcblx0LmNtc21hc3RlcnNfcG9zdF9tYXNvbnJ5IC5jbXNtYXN0ZXJzX3Bvc3RfdGl0bGUgYSxcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fdGl0bGUgYXtcclxuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLCBiYWNrZ3JvdW5kLWltYWdlIC4zcyBlYXNlLCBiYWNrZ3JvdW5kLXBvc2l0aW9uIC4zcyBlYXNlJyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zdGF0c190eXBlX2hvcml6b250YWwuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX21vdmUgMnMgZWFzZS1pbjtcclxuXHRcdC1tb3otYW5pbWF0aW9uOmJhcl9tb3ZlIDJzIGVhc2UtaW47XHJcblx0XHQtbXMtYW5pbWF0aW9uOmJhcl9tb3ZlIDJzIGVhc2UtaW47XHJcblx0XHQtby1hbmltYXRpb246YmFyX21vdmUgMnMgZWFzZS1pbjtcclxuXHRcdGFuaW1hdGlvbjpiYXJfbW92ZSAycyBlYXNlLWluO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc3RhdHNfdHlwZV92ZXJ0aWNhbC5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XHJcblx0XHQtd2Via2l0LWFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcclxuXHRcdC1tb3otYW5pbWF0aW9uOmJhcl91cCAycyBlYXNlLWluO1xyXG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcclxuXHRcdC1vLWFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcclxuXHRcdGFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc3RhdHMuc3RhdHNfbW9kZV9iYXJzLnN0YXRzX3R5cGVfaG9yaXpvbnRhbC5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9pbm5lcjpiZWZvcmUsXHJcblx0LmNtc21hc3RlcnNfc3RhdHMuc3RhdHNfbW9kZV9iYXJzLnNob3J0Y29kZV9hbmltYXRlZCAuY21zbWFzdGVyc19zdGF0X2lubmVyIC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHQtbW96LWFuaW1hdGlvbjpiYXJfdGl0bGUgMi4ycyBlYXNlLW91dDtcclxuXHRcdC1tcy1hbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHQtby1hbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHRhbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zdGF0c190eXBlX3ZlcnRpY2FsLnNob3J0Y29kZV9hbmltYXRlZCAuY21zbWFzdGVyc19zdGF0X2lubmVyOmJlZm9yZSB7XHJcblx0XHQtd2Via2l0LWFuaW1hdGlvbjpiYXJfaWNvbiAyLjJzIGVhc2Utb3V0O1xyXG5cdFx0LW1vei1hbmltYXRpb246YmFyX2ljb24gMi4ycyBlYXNlLW91dDtcclxuXHRcdC1tcy1hbmltYXRpb246YmFyX2ljb24gMi4ycyBlYXNlLW91dDtcclxuXHRcdC1vLWFuaW1hdGlvbjpiYXJfaWNvbiAyLjJzIGVhc2Utb3V0O1xyXG5cdFx0YW5pbWF0aW9uOmJhcl9pY29uIDIuMnMgZWFzZS1vdXQ7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9pbm5lciAuY21zbWFzdGVyc19zdGF0X2NvdW50ZXJfd3JhcCB7XHJcblx0XHQtd2Via2l0LWFuaW1hdGlvbjpiYXJfaW5uZXIgMXMgZWFzZS1pbi1vdXQ7XHJcblx0XHQtbW96LWFuaW1hdGlvbjpiYXJfaW5uZXIgMXMgZWFzZS1pbi1vdXQ7XHJcblx0XHQtbXMtYW5pbWF0aW9uOmJhcl9pbm5lciAxcyBlYXNlLWluLW91dDtcclxuXHRcdC1vLWFuaW1hdGlvbjpiYXJfaW5uZXIgMXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRhbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdH1cclxuXHRcclxuXHRcclxuXHRALXdlYmtpdC1rZXlmcmFtZXMgYXV0b2ZpbGwge1xyXG5cdFx0dG8ge1xyXG5cdFx0XHRjb2xvcjppbmhlcml0O1xyXG5cdFx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQjc2xpZGVfdG9wIHtcclxuXHRcdC13ZWJraXQtYW5pbWF0aW9uOnNsaWRlX3RvcCAuNXMgZWFzZTtcclxuXHRcdC1tb3otYW5pbWF0aW9uOnNsaWRlX3RvcCAuNXMgZWFzZTtcclxuXHRcdC1tcy1hbmltYXRpb246c2xpZGVfdG9wIC41cyBlYXNlO1xyXG5cdFx0LW8tYW5pbWF0aW9uOnNsaWRlX3RvcCAuNXMgZWFzZTtcclxuXHRcdGFuaW1hdGlvbjpzbGlkZV90b3AgLjVzIGVhc2U7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NvbHVtbl9zdGlja3l7XHJcblx0XHQudHJhbnMofictd2Via2l0LXRyYW5zZm9ybSAuM3MgZWFzZSwgdHJhbnNmb3JtIC4zcyBlYXNlJyk7XHJcblx0fVxyXG5cdFxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBzbGlkZV90b3Age1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwJSk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwJSk7XHJcblx0XHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDAlKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDAlKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwJSk7XHJcblx0XHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDAlKTtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRcclxuXHRALXdlYmtpdC1rZXlmcmFtZXMgYmFyX21vdmUge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdHdpZHRoOiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW1vei1rZXlmcmFtZXMgYmFyX21vdmUge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdHdpZHRoOiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW8ta2V5ZnJhbWVzIGJhcl9tb3ZlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHR3aWR0aDogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QGtleWZyYW1lcyBiYXJfbW92ZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0d2lkdGg6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdFxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBiYXJfdXAge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwJSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtbW96LWtleWZyYW1lcyBiYXJfdXAge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwJSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtby1rZXlmcmFtZXMgYmFyX3VwIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDAlKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdEBrZXlmcmFtZXMgYmFyX3VwIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDAlKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdFxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBiYXJfdGl0bGUge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMjAwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1tb3ota2V5ZnJhbWVzIGJhcl90aXRsZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IC0yMDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1vLWtleWZyYW1lcyBiYXJfdGl0bGUge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMjAwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QGtleWZyYW1lcyBiYXJfdGl0bGUge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMjAwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0XHJcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl9pY29uIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IC0yMDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1tb3ota2V5ZnJhbWVzIGJhcl9pY29uIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IC0yMDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1vLWtleWZyYW1lcyBiYXJfaWNvbiB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtMjAwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEBrZXlmcmFtZXMgYmFyX2ljb24ge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogLTIwMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRcclxuXHRALXdlYmtpdC1rZXlmcmFtZXMgYmFyX2lubmVyIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtbW96LWtleWZyYW1lcyBiYXJfaW5uZXIge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1vLWtleWZyYW1lcyBiYXJfaW5uZXIge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QGtleWZyYW1lcyBiYXJfaW5uZXIge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QGtleWZyYW1lcyBtYXJxdWVlX2xvb3Age1xyXG5cdFx0MCUge1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xyXG5cdFx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCwgMCk7XHJcblx0XHR9XHJcblxyXG5cdFx0MTAwJSB7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XHJcblx0XHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbiIsIlxyXG5AaW5wdXRfcGFkOiA4cHg7XHJcblxyXG5AbGluZV9oZWlnaHRfcGFkOiAyMHB4O1xyXG5AYmxvY2tzX2hvcl9wYWQ6IDIwcHg7XHJcbkBjb250X3ZlcnRfcGFkOiA2MHB4O1xyXG5cclxuQGJkcnNfd2lkdGg6IDBweDtcclxuXHJcbkBjb2xfbWFyOiAxLjQlO1xyXG5cclxuQHJlc3BfYmxvY2tzX3BhZDogNTguMSU7XHJcblxyXG5AcHJlbG9hZGVyX2Jsb2dfZGVmYXVsdF9wYWQ6IDU4LjElO1xyXG5AcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ6IDY4LjklO1xyXG5AcHJlbG9hZGVyX2Jsb2dfdGltZWxpbmVfcGFkOiA1OC4xJTtcclxuQHByZWxvYWRlcl9vcGVuX3Bvc3RfcGFkOiA1OC4xJTtcclxuQHByZWxvYWRlcl9wb3J0Zm9saW9fZ3JpZF9wYWQ6IDc0LjAlO1xyXG5AcHJlbG9hZGVyX29wZW5fcHJvamVjdF9wYWQ6IDQ4LjIlO1xyXG5AcHJlbG9hZGVyX3Bvc3RzX3NsaWRlcl9wYWQ6IDY4LjAlO1xyXG5AcHJlbG9hZGVyX2FyY2hpdmVzX3BhZDogMTAwJTtcclxuXHJcbkBzaWRlYmFyX3dpZHRoOiAyOCU7XHJcbkBjb250ZW50X3dpZHRoOiAxMDAlIC0gQHNpZGViYXJfd2lkdGg7XHJcblxyXG5AbWlkX25hdl9kcm9wZG93bl93aWR0aDogMjA2cHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3BhZF90b3A6IDE0cHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q6IDEycHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ6IDI0cHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ6IDIwcHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kOiAxcHg7XHJcblxyXG5AYm90X25hdl9kcm9wZG93bl93aWR0aDogMjA2cHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX3BhZF90b3A6IDE0cHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q6IDE0cHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ6IDFweDtcclxuQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDogMjBweDtcclxuQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQ6IDNweDtcclxuXHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3dpZHRoOiAxNzBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25fcGFkX3RvcDogMTBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25fcGFkX2JvdDogMTBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQ6IDIwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDogMHB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDogMHB4O1xyXG5cclxuQGNvbnRfd2lkdGhfZGVmOiA5OCU7XHJcbkBjb250X3dpZHRoX2xhcmdlOiAxMzYwcHg7XHJcbkBjb250X3dpZHRoX2Z1bGw6IDEwMCU7XHJcbkBjb250X3dpZHRoX21pbjogMzIwcHg7XHJcblxyXG5AaW5wdXRfdGV4dDogZSgnaW5wdXQ6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1maWxlXSk6bm90KFt0eXBlPWhpZGRlbl0pOm5vdChbdHlwZT1pbWFnZV0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1yZXNldF0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9Y29sb3JdKTpub3QoW3R5cGU9cmFuZ2VdKScpO1xyXG5cclxuQG1vbml0b3JfbGFyZ2U6IH4nKG1pbi13aWR0aDogMTQ0MHB4KSc7XHJcbkBtb25pdG9yX21lZGl1bTogficobWluLXdpZHRoOiAxMDI1cHgpJztcclxuQG1vbml0b3JfdGFibGV0OiB+JyhtYXgtd2lkdGg6IDEwMjRweCknO1xyXG5AbW9uaXRvcl90YWJsZXRfOTUwOiB+JyhtYXgtd2lkdGg6IDk1MHB4KSc7XHJcbkBtb25pdG9yX3RhYmxldF9zbWFsbDogficobWF4LXdpZHRoOiA3NjhweCknO1xyXG5AbW9uaXRvcl90YWJsZXRfNjAwOiB+JyhtYXgtd2lkdGg6IDYwMHB4KSc7XHJcbkBtb25pdG9yX3Bob25lOiB+JyhtYXgtd2lkdGg6IDU0MHB4KSc7XHJcbkBtb25pdG9yX3Bob25lX3NtYWxsOiB+JyhtYXgtd2lkdGg6IDMyMHB4KSc7XHJcblxyXG4vLyBjb2xvclxyXG5AdHJhbnNwYXJlbnRfcmdiYTogcmdiYSgwLCAwLCAwLCAwKTtcclxuXHJcbi5wYWRkaW5nLXkgKEBweDowKSB7XHJcblx0cGFkZGluZy1sZWZ0OiBAcHg7XHJcblx0cGFkZGluZy1yaWdodDogQHB4O1xyXG59XHJcblxyXG4uZmwgKCkge1xyXG5cdGZsb2F0OmxlZnQ7XHJcbn1cclxuXHJcbi5mciAoKSB7XHJcblx0ZmxvYXQ6cmlnaHQ7XHJcbn1cclxuXHJcbi5kbiAoKSB7XHJcblx0ZGlzcGxheTpub25lO1xyXG59XHJcblxyXG4udGFsICgpIHtcclxuXHR0ZXh0LWFsaWduOmxlZnQ7XHJcbn1cclxuXHJcbi50YWMgKCkge1xyXG5cdHRleHQtYWxpZ246Y2VudGVyO1xyXG59XHJcblxyXG4udGFyICgpIHtcclxuXHR0ZXh0LWFsaWduOnJpZ2h0O1xyXG59XHJcblxyXG4uY2wgKCkge1xyXG5cdGNsZWFyOmJvdGg7XHJcbn1cclxuXHJcbi5vdmggKCkge1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxufVxyXG5cclxuLm0wYSAoKSB7XHJcblx0bWFyZ2luOjAgYXV0bztcclxufVxyXG5cclxuLmJkIChAdzoxcHg7IEB0OnNvbGlkKSB7XHJcblx0Ym9yZGVyLXdpZHRoOkB3O1xyXG5cdGJvcmRlci1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkdCAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci10b3Atd2lkdGg6QHc7XHJcblx0Ym9yZGVyLXRvcC1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkYiAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci1ib3R0b20td2lkdGg6QHc7XHJcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkciAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci1yaWdodC13aWR0aDpAdztcclxuXHRib3JkZXItcmlnaHQtc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZGwgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItbGVmdC13aWR0aDpAdztcclxuXHRib3JkZXItbGVmdC1zdHlsZTpAdDtcclxufVxyXG5cclxuLmNvbG9yX3doaXRlX29wYWNpdHkgKEBvcDouNSkge1xyXG5cdGNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgQG9wKTtcclxufVxyXG5cclxuLmJnX3doaXRlX29wYWNpdHkgKEBvcDouNSkge1xyXG5cdGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCBAb3ApO1xyXG59XHJcblxyXG4uZnVsbHdpZHRoX2luX2Jsb2NrICgpIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDoxMDAlO1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdHRvcDowO1xyXG5cdGxlZnQ6MDtcclxufVxyXG5cclxuLm9wIChAb3A6LjUpIHtcclxuXHRvcGFjaXR5OkBvcDtcclxufVxyXG5cclxuLmRpc3BsYXlfZmxleCAoKSB7XHJcblx0ZGlzcGxheTotd2Via2l0LWZsZXg7XHJcblx0ZGlzcGxheTotbW96LWZsZXg7XHJcblx0ZGlzcGxheTotbXMtZmxleDtcclxuXHRkaXNwbGF5OmZsZXg7XHJcbn1cclxuXHJcbi5kaXNwbGF5X2lubGluZV9mbGV4ICgpIHtcclxuXHRkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7XHJcblx0ZGlzcGxheTotbW96LWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6LW1zLWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6aW5saW5lLWZsZXg7XHJcbn1cclxuXHJcbi5mbGV4X2RpcmVjdGlvbiAoQGQ6cm93KSB7XHJcblx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpAZDtcclxuXHQtbW96LWZsZXgtZGlyZWN0aW9uOkBkO1xyXG5cdC1tcy1mbGV4LWRpcmVjdGlvbjpAZDtcclxuXHRmbGV4LWRpcmVjdGlvbjpAZDtcclxufVxyXG5cclxuLmZsZXhfd3JhcCAoQGQ6bm93cmFwKSB7XHJcblx0LXdlYmtpdC1mbGV4LXdyYXA6QGQ7XHJcblx0LW1vei1mbGV4LXdyYXA6QGQ7XHJcblx0LW1zLWZsZXgtd3JhcDpAZDtcclxuXHRmbGV4LXdyYXA6QGQ7XHJcbn1cclxuXHJcbi5qdXN0aWZ5X2NvbnRlbnQgKEBkOmZsZXgtc3RhcnQpIHtcclxuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDpAZDtcclxuXHQtbW96LWp1c3RpZnktY29udGVudDpAZDtcclxuXHQtbXMtanVzdGlmeS1jb250ZW50OkBkO1xyXG5cdGp1c3RpZnktY29udGVudDpAZDtcclxufVxyXG5cclxuLmFsaWduX2l0ZW1zIChAZDpzdHJldGNoKSB7XHJcblx0LXdlYmtpdC1hbGlnbi1pdGVtczpAZDtcclxuXHQtbW96LWFsaWduLWl0ZW1zOkBkO1xyXG5cdC1tcy1hbGlnbi1pdGVtczpAZDtcclxuXHRhbGlnbi1pdGVtczpAZDtcclxufVxyXG5cclxuLmFsaWduX2NvbnRlbnQgKEBkOnN0cmV0Y2gpIHtcclxuXHQtd2Via2l0LWFsaWduLWNvbnRlbnQ6QGQ7XHJcblx0LW1vei1hbGlnbi1jb250ZW50OkBkO1xyXG5cdC1tcy1hbGlnbi1jb250ZW50OkBkO1xyXG5cdGFsaWduLWNvbnRlbnQ6QGQ7XHJcbn1cclxuXHJcbi5jbF9hZnRlciAoKSB7XHJcblx0Y29udGVudDonLic7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRjbGVhcjpib3RoO1xyXG5cdGhlaWdodDowO1xyXG5cdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxufVxyXG5cclxuLnZhbGlnbl9hZnRlciAoKSB7XHJcblx0Y29udGVudDonJztcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0aGVpZ2h0OjEwMCU7XHJcbn1cclxuXHJcbi5wb3NfYWJzIChAdzoxZW07IEBoOjFlbTsgQGw6MDsgQHI6MDsgQHQ6MDsgQGI6MCkge1xyXG5cdHdpZHRoOkB3O1xyXG5cdGhlaWdodDpAaDtcclxuXHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdGxlZnQ6QGw7XHJcblx0cmlnaHQ6QHI7XHJcblx0dG9wOkB0O1xyXG5cdGJvdHRvbTpAYjtcclxufVxyXG5cclxuLmJkYnggKCkge1xyXG5cdC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O1xyXG5cdC1tb3otYm94LXNpemluZzpib3JkZXItYm94O1xyXG5cdGJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxufVxyXG5cclxuLmN0YnggKCkge1xyXG5cdC13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtcclxuXHQtbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7XHJcblx0Ym94LXNpemluZzpjb250ZW50LWJveDtcclxufVxyXG5cclxuLmJkcnMgKEByYWRpdXM6QGJkcnNfd2lkdGgpIHtcclxuXHQtd2Via2l0LWJvcmRlci1yYWRpdXM6QHJhZGl1cztcclxuXHRib3JkZXItcmFkaXVzOkByYWRpdXM7XHJcbn1cclxuXHJcbi5ieHNoIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93OkB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaF93aGl0ZSAoQHg6MDsgQHk6MDsgQGJsdXI6NXB4OyBAc3ByZWQ6MDsgQGFscGhhOi4wNSkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCBAYWxwaGEpO1xyXG5cdGJveC1zaGFkb3c6QHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxufVxyXG5cclxuLmJ4c2hpIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzppbnNldCBAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaGlfd2hpdGUgKEB4OjA7IEB5OjA7IEBibHVyOjVweDsgQHNwcmVkOjA7IEBhbHBoYTouMDUpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgQHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxuXHRib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIEBhbHBoYSk7XHJcbn1cclxuXHJcbi5ieHNoX25vbmUgKCkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzpub25lO1xyXG5cdGJveC1zaGFkb3c6bm9uZTtcclxufVxyXG5cclxuLnRyYW5zKEB0cmFuczowKSB3aGVuIG5vdCAoQHRyYW5zID0gMCkge1xyXG5cdC13ZWJraXQtdHJhbnNpdGlvbjpAdHJhbnM7XHJcblx0LW1vei10cmFuc2l0aW9uOkB0cmFucztcclxuXHQtbXMtdHJhbnNpdGlvbjpAdHJhbnM7XHJcblx0LW8tdHJhbnNpdGlvbjpAdHJhbnM7XHJcblx0dHJhbnNpdGlvbjpAdHJhbnM7XHJcbn1cclxuXHJcbi5hcnJvd190b3AgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLXRvcDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOkBoO1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19ib3R0b20gKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLWJvdHRvbTowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wLXdpZHRoOkBoO1xyXG5cdGJvcmRlci10b3Atc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19sZWZ0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1sZWZ0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodC13aWR0aDpAaDtcclxuXHRib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19yaWdodCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3A6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQtd2lkdGg6QGg7XHJcblx0Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd190b3BfbGVmdCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItcmlnaHQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcC13aWR0aDpAaDtcclxuXHRib3JkZXItdG9wLXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfdG9wX3JpZ2h0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1ib3R0b206QGggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0LXdpZHRoOkB3O1xyXG5cdGJvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X2JvdHRvbV9sZWZ0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci10b3A6QGggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b206MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0LXdpZHRoOkB3O1xyXG5cdGJvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfYm90dG9tX3JpZ2h0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1sZWZ0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOkBoO1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcblxyXG4vLy9jb2xvcnNcclxuQGZhY2Vib29rOiAjNDA3MWJhO1xyXG5AdHdpdHRlcjogIzNmYjFkMTtcclxuQGdwbHVzOiAjZTk1MTNhO1xyXG5AZHJpYmJsZTogI2Y3NjU5YztcclxuXHJcbiJdLCJmaWxlIjoic3R5bGUuY3NzIn0= */
