/**
 * @package 	WordPress
 * @subpackage 	Salvation
 * @version 	1.0.0
 * 
 * CMSMasters Donations CSS Rules
 * Created by CMSMasters
 * 
 */
/*-------------------------------------------------------------------------*/
/* Donation Global Styles
/*-------------------------------------------------------------------------*/
/***************** Donations Icons ******************/
.cmsmasters_donation_notice.cmsmasters_donation_notice_success:before {
  content: '\eabb';
}
.cmsmasters_donation_notice.cmsmasters_donation_notice_info:before {
  content: '\e8cf';
}
/***************** Donations Header Button ******************/
.header_top_donation_but {
  display: inline-block;
  padding: 1px 25px 0;
  margin: 0 0 0 20px;
  vertical-align: middle;
}
.header_top_donation_but:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.header_top_donation_but span {
  display: inline-block;
  vertical-align: middle;
}
.header_donation_but_wrap {
  display: block;
  height: 100%;
  margin: 0 0 0 20px;
  position: relative;
  float: right;
  overflow: hidden;
}
.header_donation_but_wrap .header_donation_but_wrap_inner {
  display: table;
  height: 100%;
}
.header_donation_but_wrap .header_donation_but {
  display: table-cell;
  vertical-align: middle;
}
.header_donation_but_wrap .header_donation_but .cmsmasters_button {
  border-width: 0;
  border-style: solid;
  line-height: 38px;
  padding-left: 15px;
  padding-right: 15px;
}
/*-------------------------------------------------------------------------*/
/* Campaigns + Campaign Styles
/*-------------------------------------------------------------------------*/
/***************** Campaign Donated ******************/
.cmsmasters_campaign_donated .cmsmasters_stats.stats_mode_bars.stats_type_horizontal {
  overflow: hidden;
}
.cmsmasters_campaign_donated .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap {
  padding: 0 40px 0 0;
}
.cmsmasters_campaign_donated .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat {
  overflow: visible;
  min-height: 12px;
}
.cmsmasters_campaign_donated .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  padding-top: 8px;
}
/***************** Featured Campaign ******************/
.cmsmasters_featured_campaign {
  position: relative;
  overflow: hidden;
}
.cmsmasters_featured_campaign .campaign {
  position: relative;
  overflow: hidden;
}
.cmsmasters_featured_campaign .campaign > div {
  margin-left: -4px;
}
.cmsmasters_featured_campaign .campaign > div:first-child {
  margin-left: 0;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap {
  display: inline-block;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  -webkit-transform: translateZ(0);
}
.cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap.preloader {
  padding-bottom: 100%;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap img {
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover {
  opacity: 1;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap .cmsmasters_open_post_link {
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  display: block;
  font-size: 32px;
  opacity: 0;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap .cmsmasters_open_post_link:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  bottom: -40px;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap:hover img {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  transform: scale(1.1);
}
.cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link {
  opacity: 1;
  -webkit-transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  transform: rotateY(180deg);
}
.cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link:before {
  bottom: 0;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_wrap_img {
  width: 25%;
  max-width: 220px;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_wrap_img + .cmsmasters_campaign_cont {
  width: 50%;
  padding-left: 5%;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_donated_percent {
  width: 25%;
  padding: 0;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_donated_percent .cmsmasters_stats.stats_mode_circles {
  margin-top: 0;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_donated_percent .cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap {
  padding: 0;
  text-align: right;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_donated_percent .cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat {
  margin: 0;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_donated_percent .cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  outline: none;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_donated_percent .cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat canvas {
  outline: none;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_cont {
  width: 75%;
  padding: 0 5% 0 0;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_wrap_heading {
  padding: 0;
  position: relative;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_rest_amount {
  display: block;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_header {
  position: relative;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_title {
  margin: 0;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_content {
  padding: 25px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_content p {
  padding: 0;
}
.cmsmasters_featured_campaign .campaign .cmsmasters_campaign_donate_button {
  padding: 25px 0 0;
  position: relative;
  overflow: hidden;
}
/***************** Campaigns Page ******************/
.cmsmasters_campaigns {
  margin: 0 -20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_archive .cmsmasters_campaigns {
  padding-top: 0;
}
.cmsmasters_campaigns .owl-buttons {
  text-align: center;
  padding: 50px 0 20px;
}
.cmsmasters_campaigns .owl-buttons > div {
  position: relative;
  top: auto;
  margin: 0 2px;
}
.cmsmasters_campaigns .owl-pagination {
  display: none;
}
.cmsmasters_campaigns .cmsmasters_owl_slider_item {
  min-width: 250px;
}
.cmsmasters_campaigns .campaign {
  min-width: 200px;
  padding: 0 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_campaigns .campaign .cmsmasters_img_wrap .preloader {
  padding-bottom: 100%;
}
.cmsmasters_archive .cmsmasters_campaigns .campaign .cmsmasters_img_wrap .preloader {
  padding-bottom: 58.14%;
}
.cmsmasters_campaigns .campaign .cmsmasters_img_wrap .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_campaigns .campaign .cmsmasters_img_wrap .preloader:before {
  font-size: 38px;
  z-index: 10;
  opacity: 0;
  width: 40px;
  height: 40px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  bottom: -30px;
}
.cmsmasters_campaigns .campaign .cmsmasters_img_wrap .preloader:after {
  content: '';
  background-color: transparent;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
}
.cmsmasters_campaigns .campaign .cmsmasters_img_wrap .preloader:hover:before {
  opacity: 0;
  bottom: 0;
}
.cmsmasters_campaigns .campaign .cmsmasters_img_wrap .preloader:hover:after {
  opacity: 1;
}
.cmsmasters_campaigns .campaign .cmsmasters_img_wrap .preloader:hover img {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  transform: scale(1.1);
}
.cmsmasters_campaigns .campaign .cmsmasters_campaign_header {
  padding: 30px 0 0;
  position: relative;
}
.cmsmasters_campaigns .campaign .cmsmasters_campaign_title {
  margin: 0;
}
.cmsmasters_campaigns .campaign .cmsmasters_campaign_content {
  padding: 18px 0 0;
  position: relative;
}
.cmsmasters_campaigns .campaign .cmsmasters_campaign_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_campaigns .campaign .cmsmasters_campaign_donated_percent {
  padding: 20px 0 0;
}
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap {
  padding: 0;
}
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap:before {
  height: 1px;
  top: auto;
  bottom: 39px;
}
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_title_wrap {
  padding: 0;
  padding-bottom: 6px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_title_wrap .cmsmasters_stat_counter_wrap {
  float: right;
  top: 0;
}
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_title_wrap .cmsmasters_stat_title {
  display: block;
  word-wrap: break-word;
  overflow: hidden;
}
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat {
  min-height: 4px;
}
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  height: 3px;
}
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before,
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title,
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  bottom: 6px;
}
.cmsmasters_campaigns .campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  padding-top: 5px;
}
.cmsmasters_single_slider_campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  padding-top: 0;
}
.cmsmasters_single_slider_campaign .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat {
  min-height: 10px;
}
/***************** Single Campaign ******************/
.opened-article > .campaign .campaign_meta_wrap {
  display: table;
  width: 100%;
  position: relative;
  border-collapse: collapse;
  margin-bottom: 35px;
}
.opened-article > .campaign .campaign_meta_wrap > div {
  display: table-cell;
  padding: 25px 20px;
  vertical-align: middle;
  border-width: 1px;
  border-style: solid;
}
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_target,
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_donations_count {
  width: 21%;
}
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_target_number,
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_donations_count_number {
  margin-bottom: 5px;
}
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_target_title,
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_donations_count_title {
  margin-bottom: 0;
}
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_donated {
  width: 35%;
}
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_donate_button {
  width: 23%;
}
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_donate_button > div {
  text-align: center;
}
.opened-article > .campaign .campaign_meta_wrap .cmsmasters_campaign_donate_button > div a {
  -webkit-border-radius: 0;
  border-radius: 0;
}
.opened-article > .campaign .cmsmasters_campaign_header {
  padding: 0 0 25px;
  position: relative;
}
.opened-article > .campaign .cmsmasters_campaign_title {
  margin: 0;
  position: relative;
}
.opened-article > .campaign .cmsmasters_campaign_cont_info {
  padding: 13px 0;
  position: relative;
  border-top-width: 1px;
  border-top-style: solid;
  overflow: hidden;
}
.opened-article > .campaign .cmsmasters_campaign_cont_info > span {
  display: inline-block;
  margin-right: 10px;
  white-space: nowrap;
}
.opened-article > .campaign .cmsmasters_img_wrap {
  margin-bottom: 20px;
}
.opened-article > .campaign .cmsmasters_campaign_meta_info {
  position: relative;
  float: right;
  padding-right: 3px;
  overflow: hidden;
}
.opened-article > .campaign .cmsmasters_campaign_meta_info > a {
  margin-left: 10px;
}
.opened-article > .campaign .cmsmasters_campaign_meta_info > a:first-child {
  margin-left: 0;
}
.opened-article > .campaign .cmsmasters_campaign_meta_info > a.cmsmasters_post_comments:before {
  position: relative;
  font-size: 12px;
  line-height: 16px;
  top: 1px;
  width: 14px;
}
.opened-article > .campaign .cmsmasters_campaign_meta_info > a.cmsmasters_post_comments span {
  margin-left: 5px;
}
.related_posts_tabs_campaign .one_half .rel_post_content .related_posts_campaign_wrap {
  display: table-cell;
  vertical-align: middle;
}
.related_posts_tabs_campaign .one_half .rel_post_content .related_posts_campaign_wrap .related_posts_item_title {
  display: block;
  padding-bottom: 2px;
  margin-top: -5px;
}
.related_posts_tabs_campaign .one_half .rel_post_content .related_posts_campaign_wrap .related_posts_campaign_togo {
  display: inline-block;
  padding-bottom: 7px;
}
.related_posts_tabs_campaign .one_half .rel_post_content .related_posts_campaign_wrap .cmsmasters_campaign_donated .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap {
  padding: 0 35px 0 0;
}
.related_posts_tabs_campaign .one_half .rel_post_content .related_posts_campaign_wrap .cmsmasters_campaign_donated .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat {
  min-height: 34px;
}
.related_posts_tabs_campaign .one_half .rel_post_content .related_posts_campaign_wrap .cmsmasters_campaign_donated .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_title {
  bottom: 10px;
}
.related_posts_tabs_campaign .one_half .rel_post_content .related_posts_campaign_wrap .cmsmasters_campaign_donated .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  bottom: -7px;
  right: -37px;
}
.related_posts_tabs_campaign .one_half .rel_post_content .related_posts_campaign_wrap .cmsmasters_campaign_donated .cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  padding-top: 5px;
}
/*-------------------------------------------------------------------------*/
/* Donations + Donation Styles
/*-------------------------------------------------------------------------*/
/***************** Donations Page ******************/
.cmsmasters_donations {
  margin-top: -30px;
  position: relative;
}
.cmsmasters_donations:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_donations .donation {
  padding: 30px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_donations .donation .cmsmasters_donation_cont_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_donations .donation .cmsmasters_img_rollover_wrap {
  display: block;
}
.cmsmasters_donations .donation .cmsmasters_img_rollover_wrap.preloader {
  padding-bottom: 100%;
}
.cmsmasters_donations .donation .cmsmasters_img_rollover_wrap img {
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_donations .donation .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover {
  opacity: 1;
}
.cmsmasters_donations .donation .cmsmasters_img_rollover_wrap .cmsmasters_open_post_link {
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: block;
  font-size: 32px;
  opacity: 0;
}
.cmsmasters_donations .donation .cmsmasters_img_rollover_wrap .cmsmasters_open_post_link:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  bottom: -40px;
}
.cmsmasters_donations .donation .cmsmasters_img_rollover_wrap:hover img {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  transform: scale(1.1);
}
.cmsmasters_donations .donation .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link {
  opacity: 1;
  -webkit-transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  transform: rotateY(180deg);
}
.cmsmasters_donations .donation .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link:before {
  bottom: 0;
}
.cmsmasters_donations .donation .cmsmasters_donation_cont {
  padding: 17px 0 20px;
}
.cmsmasters_donations .donation .cmsmasters_donation_header {
  position: relative;
}
.cmsmasters_donations .donation .cmsmasters_donation_title {
  margin: 0;
}
.cmsmasters_donations .donation .cmsmasters_donation_campaign {
  display: block;
}
.cmsmasters_donations .donation .cmsmasters_donation_footer {
  padding: 10px 0;
  position: relative;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_donations .donation .cmsmasters_donation_amount_title {
  display: inline-block;
  width: 50%;
  padding: 3px 2px 0 5px;
  vertical-align: middle;
  text-align: right;
}
.cmsmasters_donations .donation .cmsmasters_donation_amount_currency {
  display: inline-block;
  width: 50%;
  padding: 0 5px 0 0;
  vertical-align: middle;
  word-wrap: break-word;
}
/***************** Single Donation ******************/
.donations.opened-article:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.donations.opened-article > .donation {
  padding: 0 0 30px;
  position: relative;
  clear: both;
}
.donations.opened-article > .donation:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.donations.opened-article > .donation .cmsmasters_donation_info {
  margin-bottom: 45px;
  overflow: hidden;
}
.donations.opened-article > .donation .cmsmasters_donation_info_img {
  display: inline-block;
  width: 35%;
  padding: 0 90px 0 0;
  vertical-align: middle;
}
.donations.opened-article > .donation .cmsmasters_donation_info_img figure {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  overflow: hidden;
}
.donations.opened-article > .donation .cmsmasters_donation_info_cont {
  display: inline-block;
  max-width: 100%;
  vertical-align: middle;
  position: relative;
  overflow: hidden;
}
.donations.opened-article > .donation .cmsmasters_donation_header {
  position: relative;
  padding: 0 0 40px;
}
.donations.opened-article > .donation .cmsmasters_donation_title {
  margin: 0;
  position: relative;
}
.donations.opened-article > .donation .cmsmasters_donation_amount_currency {
  display: block;
  position: relative;
  word-wrap: break-word;
}
.donations.opened-article > .donation .cmsmasters_donation_campaign {
  display: block;
  margin: 12px 0 0;
  position: relative;
}
.donations.opened-article > .donation .cmsmasters_donation_content {
  padding: 0;
  position: relative;
  overflow: hidden;
}
.donations.opened-article > .donation .cmsmasters_donation_details {
  padding: 20px 0 0;
  position: relative;
  overflow: hidden;
}
.donations.opened-article > .donation .cmsmasters_donation_info + .cmsmasters_donation_details {
  padding: 35px 0 0;
}
.donations.opened-article > .donation .cmsmasters_donation_details_item {
  padding: 5px 0;
  border-top-width: 1px;
  border-top-style: solid;
}
.donations.opened-article > .donation .cmsmasters_donation_details_item:first-child {
  border-top-width: 0;
  border-top-style: solid;
}
.donations.opened-article > .donation .cmsmasters_donation_details_item_title,
.donations.opened-article > .donation .cmsmasters_donation_details_item_value {
  width: 50%;
  display: inline-block;
  vertical-align: middle;
}
.donations.opened-article > .donation .cmsmasters_donation_details_item_title {
  padding: 0 15px 0 0;
  text-align: left;
}
.donations.opened-article > .donation .cmsmasters_donation_details_item_value {
  padding: 0 0 0 15px;
  text-align: right;
}
/***************** Donation Confirm ******************/
#page .content .cmsmasters_row.cmsmasters_donation_form_wrapper:first-of-type .cmsmasters_row_outer_parent {
  padding-top: 0;
  padding-bottom: 0;
}
#page .middle_content .cmsmasters_row.cmsmasters_donation_form_wrapper:first-of-type .cmsmasters_row_outer_parent {
  padding-bottom: 70px;
  padding-top: 60px;
}
#page .middle_content .cmsmasters_row.cmsmasters_donation_form_wrapper:first-of-type .cmsmasters_row_inner {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}
.donation_confirm {
  position: relative;
  padding: 0 0 35px;
}
.donation_confirm:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.donation_confirm .donation_confirm_title {
  margin-bottom: 30px;
}
.donation_confirm .donation_confirm_info {
  display: table;
  width: 100%;
  max-width: 100%;
  position: relative;
  border-width: 1px;
  border-style: solid;
}
.donation_confirm .donation_confirm_info_item {
  display: table-cell;
  position: relative;
  width: 20%;
}
.donation_confirm .donation_confirm_info_title {
  display: block;
  padding: 15px 10px 15px 25px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.donation_confirm .donation_confirm_info_value {
  display: block;
  padding: 15px 10px 15px 25px;
}
.donation_confirm .donation_confirm_anonymous {
  padding: 10px 0 0;
}
.donation_confirm .donation_confirm_cont_title {
  margin: 30px 0 10px;
}
.donation_confirm .donation_confirm_cont {
  position: relative;
  overflow: hidden;
}
.donation_confirm .donation_confirm_cont > p:last-child {
  padding: 0;
  margin: 0;
}
/*-------------------------------------------------------------------------*/
/* CSS3 Animations
/*-------------------------------------------------------------------------*/
html.csstransitions .header_top_donation_but {
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out;
}
html.csstransitions .cmsmasters_campaigns .campaign .cmsmasters_img_wrap .preloader:after {
  -webkit-transition: opacity 0.3s ease-in-out;
  -moz-transition: opacity 0.3s ease-in-out;
  -ms-transition: opacity 0.3s ease-in-out;
  -o-transition: opacity 0.3s ease-in-out;
  transition: opacity 0.3s ease-in-out;
}
html.csstransitions .cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover,
html.csstransitions .cmsmasters_donations .donation .cmsmasters_img_rollover {
  -webkit-transition: background-color .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out;
  transition: background-color .3s ease-in-out;
}
html.csstransitions .cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover .cmsmasters_open_post_link,
html.csstransitions .cmsmasters_donations .donation .cmsmasters_img_rollover .cmsmasters_open_post_link {
  -webkit-transition: opacity .3s ease-in-out .1s, transform .5s ease-in-out .1s;
  -moz-transition: opacity .3s ease-in-out .1s, transform .5s ease-in-out .1s;
  -ms-transition: opacity .3s ease-in-out .1s, transform .5s ease-in-out .1s;
  -o-transition: opacity .3s ease-in-out .1s, transform .5s ease-in-out .1s;
  transition: opacity .3s ease-in-out .1s, transform .5s ease-in-out .1s;
}
html.csstransitions .cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover .cmsmasters_open_post_link:before,
html.csstransitions .cmsmasters_donations .donation .cmsmasters_img_rollover .cmsmasters_open_post_link:before {
  -webkit-transition: bottom .5s cubic-bezier(.55, .3, .5, 1.65);
  -moz-transition: bottom .5s cubic-bezier(.55, .3, .5, 1.65);
  -ms-transition: bottom .5s cubic-bezier(.55, .3, .5, 1.65);
  -o-transition: bottom .5s cubic-bezier(.55, .3, .5, 1.65);
  transition: bottom .5s cubic-bezier(.55, .3, .5, 1.65);
}
html.csstransitions .cmsmasters_campaigns .campaign .cmsmasters_img_wrap .cmsmasters_img_link:before {
  -webkit-transition: opacity .3s ease-in-out, bottom .4s cubic-bezier(.55, .3, .5, 1.65);
  -moz-transition: opacity .3s ease-in-out, bottom .4s cubic-bezier(.55, .3, .5, 1.65);
  -ms-transition: opacity .3s ease-in-out, bottom .4s cubic-bezier(.55, .3, .5, 1.65);
  -o-transition: opacity .3s ease-in-out, bottom .4s cubic-bezier(.55, .3, .5, 1.65);
  transition: opacity .3s ease-in-out, bottom .4s cubic-bezier(.55, .3, .5, 1.65);
}
html.csstransitions .cmsmasters_featured_campaign .campaign .cmsmasters_img_rollover_wrap img,
html.csstransitions .cmsmasters_campaigns .campaign .cmsmasters_img_wrap img,
html.csstransitions .cmsmasters_donations .donation .cmsmasters_img_rollover_wrap img {
  -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;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsdWdpbi1zdHlsZS5sZXNzIiwiLi4vLi4vLi4vLi4vLi4vdGhlbWUtZnJhbWV3b3JrL3RoZW1lLXN0eWxlL2Nzcy9sZXNzL2dlbmVyYWwubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBLDJCQUEyQixtQ0FBbUM7RUFBVSxTQUFTLE9BQVQ7O0FBQ3hFLDJCQUEyQixnQ0FBZ0M7RUFBVSxTQUFTLE9BQVQ7OztBQUlyRTtFQUNDLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBOztBQUVBLHdCQUFDO0VBQ0EsU0FBUSxFQUFSO0VBQ0EscUJBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7O0FBVkYsd0JBYUM7RUFDQyxxQkFBQTtFQUNBLHNCQUFBOztBQUlGO0VBQ0MsY0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VDK0JBLFlBQUE7RUF3QkEsZ0JBQUE7O0FEM0RELHlCQVFDO0VBQ0MsY0FBQTtFQUNBLFlBQUE7O0FBVkYseUJBYUM7RUFDQyxtQkFBQTtFQUNBLHNCQUFBOztBQWZGLHlCQWFDLHFCQUlDO0VDa0RELGVBQUE7RUFDQSxtQkFBQTtFRGpERSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7Ozs7OztBQVlILDRCQUNDLGtCQUFpQixnQkFBZ0I7RUN5QmpDLGdCQUFBOztBRDFCRCw0QkFDQyxrQkFBaUIsZ0JBQWdCLHNCQUdoQztFQUNDLG1CQUFBOztBQUxILDRCQUNDLGtCQUFpQixnQkFBZ0Isc0JBR2hDLHNCQUdDO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUFUSiw0QkFDQyxrQkFBaUIsZ0JBQWdCLHNCQUdoQyxzQkFRQztFQUNDLGdCQUFBOzs7QUFRSjtFQUNDLGtCQUFBO0VDSUEsZ0JBQUE7O0FETEQsNkJBSUM7RUFDQyxrQkFBQTtFQ0FELGdCQUFBOztBRExELDZCQUlDLFVBSUM7RUFDQyxpQkFBQTs7QUFFQSw2QkFQRixVQUlDLE1BR0U7RUFDQSxjQUFBOztB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ZUFLSCxzQkFBc0IsVUFBVSxxQkFBcUIsV0FBVTtFQzVsQjVELDRDQUFBO0VBQ0EseUNBQUE7RUFDQSx3Q0FBQTtFQUNBLHVDQUFBO0VBQ0Esb0NBQUE7O0FEbWxCSixJQUFJLGVBU0gsOEJBQThCLFVBQVU7QUFUekMsSUFBSSxlQVVILHNCQUFzQixVQUFXO0VDam1COUIsb0RBQUE7RUFDQSxpREFBQTtFQUNBLGdEQUFBO0VBQ0EsK0NBQUE7RUFDQSw0Q0FBQTs7QURtbEJKLElBQUksZUFjSCw4QkFBOEIsVUFBVSx5QkFBeUI7QUFkbEUsSUFBSSxlQWVILHNCQUFzQixVQUFXLHlCQUF5QjtFQ3RtQnZELDhFQUFBO0VBQ0EsMkVBQUE7RUFDQSwwRUFBQTtFQUNBLHlFQUFBO0VBQ0Esc0VBQUE7O0FEbWxCSixJQUFJLGVBbUJILDhCQUE4QixVQUFVLHlCQUEwQiwyQkFBMEI7QUFuQjdGLElBQUksZUFvQkgsc0JBQXNCLFVBQVcseUJBQXlCLDJCQUEwQjtFQzNtQmpGLDhEQUFBO0VBQ0EsMkRBQUE7RUFDQSwwREFBQTtFQUNBLHlEQUFBO0VBQ0Esc0RBQUE7O0FEbWxCSixJQUFJLGVBd0JILHNCQUFzQixVQUFVLHFCQUFxQixxQkFBb0I7RUMvbUJ0RSx1RkFBQTtFQUNBLG9GQUFBO0VBQ0EsbUZBQUE7RUFDQSxrRkFBQTtFQUNBLCtFQUFBOztBRG1sQkosSUFBSSxlQTRCSCw4QkFBOEIsVUFBVSw4QkFBOEI7QUE1QnZFLElBQUksZUE2Qkgsc0JBQXNCLFVBQVUscUJBQXFCO0FBN0J0RCxJQUFJLGVBOEJILHNCQUFzQixVQUFXLDhCQUE4QjtFQ3JuQjVELDZDQUFBO0VBQ0EsMENBQUE7RUFDQSx5Q0FBQTtFQUNBLHdDQUFBO0VBQ0EscUNBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlIFx0V29yZFByZXNzXG4gKiBAc3VicGFja2FnZSBcdFNhbHZhdGlvblxuICogQHZlcnNpb24gXHQxLjAuMFxuICogXG4gKiBDTVNNYXN0ZXJzIERvbmF0aW9ucyBDU1MgUnVsZXNcbiAqIENyZWF0ZWQgYnkgQ01TTWFzdGVyc1xuICogXG4gKi9cblxuXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi8uLi90aGVtZS1mcmFtZXdvcmsvdGhlbWUtc3R5bGUvY3NzL2xlc3MvZ2VuZXJhbC5sZXNzXCI7XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERvbmF0aW9uIEdsb2JhbCBTdHlsZXNcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKioqKioqKioqKioqKioqKiBEb25hdGlvbnMgSWNvbnMgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfZG9uYXRpb25fbm90aWNlLmNtc21hc3RlcnNfZG9uYXRpb25fbm90aWNlX3N1Y2Nlc3M6YmVmb3JlIHsgY29udGVudDogJ1xcZWFiYic7IH1cbi5jbXNtYXN0ZXJzX2RvbmF0aW9uX25vdGljZS5jbXNtYXN0ZXJzX2RvbmF0aW9uX25vdGljZV9pbmZvOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4Y2YnOyB9XG5cblxuLyoqKioqKioqKioqKioqKioqIERvbmF0aW9ucyBIZWFkZXIgQnV0dG9uICoqKioqKioqKioqKioqKioqKi9cbi5oZWFkZXJfdG9wX2RvbmF0aW9uX2J1dCB7XG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOjFweCAyNXB4IDA7XG5cdG1hcmdpbjowIDAgMCAyMHB4O1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OicnO1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0fVxuXHRcblx0c3BhbiB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHR9XG59XG5cbi5oZWFkZXJfZG9uYXRpb25fYnV0X3dyYXAge1xuXHRkaXNwbGF5OmJsb2NrO1xuXHRoZWlnaHQ6MTAwJTtcblx0bWFyZ2luOjAgMCAwIDIwcHg7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQuZnI7XG5cdC5vdmg7XG5cdFxuXHQuaGVhZGVyX2RvbmF0aW9uX2J1dF93cmFwX2lubmVyIHtcblx0XHRkaXNwbGF5OnRhYmxlO1xuXHRcdGhlaWdodDoxMDAlO1xuXHR9XG5cdFxuXHQuaGVhZGVyX2RvbmF0aW9uX2J1dCB7XG5cdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcblx0XHQuY21zbWFzdGVyc19idXR0b24ge1xuXHRcdFx0LmJkKDApO1xuXHRcdFx0bGluZS1oZWlnaHQ6MzhweDtcblx0XHRcdHBhZGRpbmctbGVmdDoxNXB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDoxNXB4O1xuXHRcdH1cblx0fVxufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENhbXBhaWducyArIENhbXBhaWduIFN0eWxlc1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqKioqKioqKioqKioqKioqIENhbXBhaWduIERvbmF0ZWQgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfY2FtcGFpZ25fZG9uYXRlZCB7XG5cdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zdGF0c190eXBlX2hvcml6b250YWwge1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfc3RhdF93cmFwIHtcblx0XHRcdHBhZGRpbmc6MCA0MHB4IDAgMDtcblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdCB7XG5cdFx0XHRcdG92ZXJmbG93OnZpc2libGU7XG5cdFx0XHRcdG1pbi1oZWlnaHQ6MTJweDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF9zdWJ0aXRsZSB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOjhweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogRmVhdHVyZWQgQ2FtcGFpZ24gKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfZmVhdHVyZWRfY2FtcGFpZ24ge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdC5jYW1wYWlnbiB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQ+IGRpdiB7XG5cdFx0XHRtYXJnaW4tbGVmdDotNHB4O1xuXHRcdFx0XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHQuYmRycyg1MCUpO1xuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTtcblx0XHRcdFxuXHRcdFx0Ji5wcmVsb2FkZXIge1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbToxMDAlO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRpbWcge1xuXHRcdFx0XHQucG9zX2FicygxMDAlLDEwMCUpO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIge1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rIHtcblx0XHRcdFx0LnBvc19hYnMoMTAwJSwxMDAlKTtcblx0XHRcdFx0LmJkcnMoNTAlKTtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0Zm9udC1zaXplOjMycHg7XG5cdFx0XHRcdC5vcCgwKTtcblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHQucG9zX2Ficztcblx0XHRcdFx0XHRib3R0b206LTQwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xKTtcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjEpO1xuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxLjEpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluayB7XG5cdFx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGVZKDE4MGRlZyk7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRib3R0b206MDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25fd3JhcF9pbWcge1xuXHRcdFx0d2lkdGg6MjUlO1xuXHRcdFx0bWF4LXdpZHRoOjIyMHB4O1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdFxuXHRcdFx0KyAuY21zbWFzdGVyc19jYW1wYWlnbl9jb250IHtcblx0XHRcdFx0d2lkdGg6NTAlO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6NSU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2NhbXBhaWduX2RvbmF0ZWRfcGVyY2VudCB7XG5cdFx0XHR3aWR0aDoyNSU7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2NpcmNsZXMge1xuXHRcdFx0XHRtYXJnaW4tdG9wOjA7XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3dyYXAge1xuXHRcdFx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdFx0XHQudGFyO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xuXHRcdFx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xuXHRcdFx0XHRcdFx0XHRvdXRsaW5lOm5vbmU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdGNhbnZhcyB7XG5cdFx0XHRcdFx0XHRcdG91dGxpbmU6bm9uZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25fY29udCB7XG5cdFx0XHR3aWR0aDo3NSU7XG5cdFx0XHRwYWRkaW5nOjAgNSUgMCAwO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25fd3JhcF9oZWFkaW5nIHtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19jYW1wYWlnbl9yZXN0X2Ftb3VudCB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19jYW1wYWlnbl9oZWFkZXIge1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2NhbXBhaWduX3RpdGxlIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19jYW1wYWlnbl9jb250ZW50IHtcblx0XHRcdHBhZGRpbmc6MjVweCAwIDA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC5vdmg7XG5cdFx0XHRcblx0XHRcdHAge1xuXHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2NhbXBhaWduX2RvbmF0ZV9idXR0b24ge1xuXHRcdFx0cGFkZGluZzoyNXB4IDAgMDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogQ2FtcGFpZ25zIFBhZ2UgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfY2FtcGFpZ25zIHtcblx0bWFyZ2luOjAgLTIwcHg7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0LmNtc21hc3RlcnNfYXJjaGl2ZSAmIHtcblx0XHRwYWRkaW5nLXRvcDowO1xuXHR9XG5cdFxuXHQub3dsLWJ1dHRvbnMge1xuXHRcdC50YWM7XG5cdFx0cGFkZGluZzo1MHB4IDAgMjBweDtcblx0XHRcblx0XHQ+IGRpdiB7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHRvcDphdXRvO1xuXHRcdFx0bWFyZ2luOjAgMnB4O1xuXHRcdH1cblx0fVxuXG5cdC5vd2wtcGFnaW5hdGlvbiB7XG5cdFx0LmRuO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyX2l0ZW0ge1xuXHRcdG1pbi13aWR0aDoyNTBweDtcblx0fVxuXHRcblx0LmNhbXBhaWduIHtcblx0XHRtaW4td2lkdGg6MjAwcHg7XG5cdFx0cGFkZGluZzowIDIwcHg7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XG5cdFx0XHQucHJlbG9hZGVyIHtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MTAwJTtcblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2FyY2hpdmUgJiB7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Ji5oaWdoSW1nIHtcblx0XHRcdFx0XHRoZWlnaHQ6YXV0bztcblx0XHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRmb250LXNpemU6MzhweDtcblx0XHRcdFx0XHR6LWluZGV4OjEwO1xuXHRcdFx0XHRcdC5vcCgwKTtcblx0XHRcdFx0XHQucG9zX2Ficyg0MHB4LCA0MHB4KTtcblx0XHRcdFx0XHRib3R0b206LTMwcHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0XHRcdGhlaWdodDoxMDAlO1xuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHRcdGxlZnQ6MDtcblx0XHRcdFx0XHR0b3A6MDtcblx0XHRcdFx0XHQub3AoMCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdC5vcCgwKTtcblx0XHRcdFx0XHRcdGJvdHRvbTowO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdC5vcCgxKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMSk7XG5cdFx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjEpO1xuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2NhbXBhaWduX2hlYWRlciB7XG5cdFx0XHRwYWRkaW5nOjMwcHggMCAwO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2NhbXBhaWduX3RpdGxlIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19jYW1wYWlnbl9jb250ZW50IHtcblx0XHRcdHBhZGRpbmc6MThweCAwIDA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdFxuXHRcdFx0cCB7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2NhbXBhaWduX2RvbmF0ZWRfcGVyY2VudCB7XG5cdFx0XHRwYWRkaW5nOjIwcHggMCAwO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc3RhdHNfdHlwZV9ob3Jpem9udGFsIC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0aGVpZ2h0OjFweDtcblx0XHRcdFx0dG9wOmF1dG87XG5cdFx0XHRcdGJvdHRvbTozOXB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlX3dyYXAge1xuXHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiA2cHg7XG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XHQub3ZoO1xuXHRcdFx0XHRcblx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xuXHRcdFx0XHRcdC5mcjtcblx0XHRcdFx0XHR0b3A6MDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF90aXRsZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcblx0XHRcdFx0XHQub3ZoO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xuXHRcdFx0XHRtaW4taGVpZ2h0OjRweDtcblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xuXHRcdFx0XHRcdGhlaWdodDozcHg7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0JjpiZWZvcmUsIFxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUsIFxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY291bnRlcl93cmFwIHtcblx0XHRcdFx0XHRcdGJvdHRvbTo2cHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfc3VidGl0bGUge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDo1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfY2FtcGFpZ24ge1xuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc3RhdHNfdHlwZV9ob3Jpem9udGFsIC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XG5cdFx0LmNtc21hc3RlcnNfc3RhdF9zdWJ0aXRsZSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHR9XG5cdFx0LmNtc21hc3RlcnNfc3RhdCB7XG5cdFx0XHRtaW4taGVpZ2h0OiAxMHB4O1xuXHRcdH1cblx0fVx0IFxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBTaW5nbGUgQ2FtcGFpZ24gKioqKioqKioqKioqKioqKioqL1xuLm9wZW5lZC1hcnRpY2xlIHtcblx0PiAuY2FtcGFpZ24ge1x0XHRcblx0XHQuY2FtcGFpZ25fbWV0YV93cmFwIHtcblx0XHRcdGRpc3BsYXk6dGFibGU7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7XG5cdFx0XHRtYXJnaW4tYm90dG9tOjM1cHg7XG5cdFx0XHRcblx0XHRcdD4gZGl2IHtcblx0XHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xuXHRcdFx0XHRwYWRkaW5nOjI1cHggMjBweDtcblx0XHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0XHQuYmQ7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX2NhbXBhaWduX3RhcmdldCwgXG5cdFx0XHQuY21zbWFzdGVyc19jYW1wYWlnbl9kb25hdGlvbnNfY291bnQge1xuXHRcdFx0XHR3aWR0aDoyMSU7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX2NhbXBhaWduX3RhcmdldF9udW1iZXIsIFxuXHRcdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25fZG9uYXRpb25zX2NvdW50X251bWJlciB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206NXB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19jYW1wYWlnbl90YXJnZXRfdGl0bGUsIFxuXHRcdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25fZG9uYXRpb25zX2NvdW50X3RpdGxlIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTowO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19jYW1wYWlnbl9kb25hdGVkIHtcblx0XHRcdFx0d2lkdGg6MzUlO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19jYW1wYWlnbl9kb25hdGVfYnV0dG9uIHtcblx0XHRcdFx0d2lkdGg6MjMlO1xuXHRcdFx0XHRcblx0XHRcdFx0PiBkaXYge1xuXHRcdFx0XHRcdC50YWM7XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHQuYmRycygwKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25faGVhZGVyIHtcblx0XHRcdHBhZGRpbmc6MCAwIDI1cHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25fdGl0bGUge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25fY29udF9pbmZvIHtcblx0XHRcdHBhZGRpbmc6MTNweCAwO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQuYmR0O1xuXHRcdFx0Lm92aDtcblx0XHRcdFxuXHRcdFx0PiBzcGFuIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDoxMHB4O1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTpub3dyYXA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcblx0XHRcdG1hcmdpbi1ib3R0b206MjBweDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25fbWV0YV9pbmZvIHtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0LmZyO1xuXHRcdFx0cGFkZGluZy1yaWdodDozcHg7XG5cdFx0XHQub3ZoO1xuXHRcdFx0XG5cdFx0XHQ+IGEge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDoxMHB4O1xuXHRcdFx0XHRcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Ji5jbXNtYXN0ZXJzX3Bvc3RfY29tbWVudHMge1xuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOjEycHg7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDoxNnB4O1xuXHRcdFx0XHRcdFx0dG9wOjFweDtcblx0XHRcdFx0XHRcdHdpZHRoOjE0cHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6NXB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ucmVsYXRlZF9wb3N0c190YWJzX2NhbXBhaWduIHtcblx0Lm9uZV9oYWxmIC5yZWxfcG9zdF9jb250ZW50IHtcblx0XHQucmVsYXRlZF9wb3N0c19jYW1wYWlnbl93cmFwIHtcblx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdFxuXHRcdFx0LnJlbGF0ZWRfcG9zdHNfaXRlbV90aXRsZSB7XG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOjJweDtcblx0XHRcdFx0bWFyZ2luLXRvcDotNXB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQucmVsYXRlZF9wb3N0c19jYW1wYWlnbl90b2dvIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOjdweDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfY2FtcGFpZ25fZG9uYXRlZCB7XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zdGF0c190eXBlX2hvcml6b250YWwge1xuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOjAgMzVweCAwIDA7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xuXHRcdFx0XHRcdFx0XHRtaW4taGVpZ2h0OjM0cHg7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcblx0XHRcdFx0XHRcdFx0XHRib3R0b206MTBweDtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XG5cdFx0XHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xuXHRcdFx0XHRcdFx0XHRcdFx0Ym90dG9tOi03cHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRyaWdodDotMzdweDtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9zdWJ0aXRsZSB7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjVweDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEb25hdGlvbnMgKyBEb25hdGlvbiBTdHlsZXNcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKioqKioqKioqKioqKioqKiBEb25hdGlvbnMgUGFnZSAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19kb25hdGlvbnMge1xuXHRtYXJnaW4tdG9wOi0zMHB4O1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XG5cdCY6YWZ0ZXIge1xuXHRcdC5jbF9hZnRlcjtcblx0fVxuXHRcblx0LmRvbmF0aW9uIHtcblx0XHRwYWRkaW5nOjMwcHggMCAwO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfZG9uYXRpb25fY29udF93cmFwIHtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFxuXHRcdFx0Ji5wcmVsb2FkZXIge1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbToxMDAlO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRpbWcge1xuXHRcdFx0XHQucG9zX2FicygxMDAlLDEwMCUpO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIge1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rIHtcblx0XHRcdFx0LnBvc19hYnMoMTAwJSwxMDAlKTtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0Zm9udC1zaXplOjMycHg7XG5cdFx0XHRcdC5vcCgwKTtcblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHQucG9zX2Ficztcblx0XHRcdFx0XHRib3R0b206LTQwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xKTtcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjEpO1xuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxLjEpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluayB7XG5cdFx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGVZKDE4MGRlZyk7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRib3R0b206MDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfZG9uYXRpb25fY29udCB7XG5cdFx0XHRwYWRkaW5nOjE3cHggMCAyMHB4O1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19kb25hdGlvbl9oZWFkZXIge1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2RvbmF0aW9uX3RpdGxlIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19kb25hdGlvbl9jYW1wYWlnbiB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19kb25hdGlvbl9mb290ZXIge1xuXHRcdFx0cGFkZGluZzoxMHB4IDA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC5iZHQ7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2RvbmF0aW9uX2Ftb3VudF90aXRsZSB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdHdpZHRoOjUwJTtcblx0XHRcdHBhZGRpbmc6M3B4IDJweCAwIDVweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdC50YXI7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2RvbmF0aW9uX2Ftb3VudF9jdXJyZW5jeSB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdHdpZHRoOjUwJTtcblx0XHRcdHBhZGRpbmc6MCA1cHggMCAwO1xuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFNpbmdsZSBEb25hdGlvbiAqKioqKioqKioqKioqKioqKiovXG4uZG9uYXRpb25zLm9wZW5lZC1hcnRpY2xlIHtcblx0JjphZnRlciB7XG5cdFx0LmNsX2FmdGVyO1xuXHR9XG5cdFxuXHQ+IC5kb25hdGlvbiB7XG5cdFx0cGFkZGluZzowIDAgMzBweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuY2w7XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHQuY2xfYWZ0ZXI7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2RvbmF0aW9uX2luZm8ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTo0NXB4O1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfZG9uYXRpb25faW5mb19pbWcge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR3aWR0aDozNSU7XG5cdFx0XHRwYWRkaW5nOjAgOTBweCAwIDA7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XHRcblx0XHRcdGZpZ3VyZSB7XG5cdFx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0XHRcdC5vdmg7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2RvbmF0aW9uX2luZm9fY29udCB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdG1heC13aWR0aDoxMDAlO1xuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQub3ZoO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19kb25hdGlvbl9oZWFkZXIge1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRwYWRkaW5nOjAgMCA0MHB4O1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19kb25hdGlvbl90aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19kb25hdGlvbl9hbW91bnRfY3VycmVuY3kge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2RvbmF0aW9uX2NhbXBhaWduIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRtYXJnaW46MTJweCAwIDA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfZG9uYXRpb25fY29udGVudCB7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC5vdmg7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2RvbmF0aW9uX2RldGFpbHMge1xuXHRcdFx0cGFkZGluZzoyMHB4IDAgMDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfZG9uYXRpb25faW5mbyArIC5jbXNtYXN0ZXJzX2RvbmF0aW9uX2RldGFpbHMge1xuXHRcdFx0cGFkZGluZzozNXB4IDAgMDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfZG9uYXRpb25fZGV0YWlsc19pdGVtIHtcblx0XHRcdHBhZGRpbmc6NXB4IDA7XG5cdFx0XHQuYmR0O1xuXHRcdFx0XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0LmJkdCgwKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfZG9uYXRpb25fZGV0YWlsc19pdGVtX3RpdGxlLCBcblx0XHQuY21zbWFzdGVyc19kb25hdGlvbl9kZXRhaWxzX2l0ZW1fdmFsdWUge1xuXHRcdFx0d2lkdGg6NTAlO1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2RvbmF0aW9uX2RldGFpbHNfaXRlbV90aXRsZSB7XG5cdFx0XHRwYWRkaW5nOjAgMTVweCAwIDA7XG5cdFx0XHQudGFsO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19kb25hdGlvbl9kZXRhaWxzX2l0ZW1fdmFsdWUge1xuXHRcdFx0cGFkZGluZzowIDAgMCAxNXB4O1xuXHRcdFx0LnRhcjtcblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogRG9uYXRpb24gQ29uZmlybSAqKioqKioqKioqKioqKioqKiovXG4jcGFnZSAuY29udGVudCAuY21zbWFzdGVyc19yb3cuY21zbWFzdGVyc19kb25hdGlvbl9mb3JtX3dyYXBwZXI6Zmlyc3Qtb2YtdHlwZSAuY21zbWFzdGVyc19yb3dfb3V0ZXJfcGFyZW50IHtcblx0cGFkZGluZy10b3A6MDtcblx0cGFkZGluZy1ib3R0b206MDtcbn1cblxuI3BhZ2UgLm1pZGRsZV9jb250ZW50IC5jbXNtYXN0ZXJzX3Jvdy5jbXNtYXN0ZXJzX2RvbmF0aW9uX2Zvcm1fd3JhcHBlcjpmaXJzdC1vZi10eXBlIC5jbXNtYXN0ZXJzX3Jvd19vdXRlcl9wYXJlbnQge1xuXHRwYWRkaW5nLWJvdHRvbTo3MHB4O1xuXHRwYWRkaW5nLXRvcDogNjBweDtcbn1cblxuI3BhZ2UgLm1pZGRsZV9jb250ZW50IC5jbXNtYXN0ZXJzX3Jvdy5jbXNtYXN0ZXJzX2RvbmF0aW9uX2Zvcm1fd3JhcHBlcjpmaXJzdC1vZi10eXBlIC5jbXNtYXN0ZXJzX3Jvd19pbm5lciB7XG5cdHdpZHRoOjEwMCU7XG5cdHBhZGRpbmctbGVmdDowO1xuXHRwYWRkaW5nLXJpZ2h0OjA7XG59XG5cbi5kb25hdGlvbl9jb25maXJtIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHBhZGRpbmc6MCAwIDM1cHg7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdC5kb25hdGlvbl9jb25maXJtX3RpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOjMwcHg7XG5cdH1cblx0XG5cdC5kb25hdGlvbl9jb25maXJtX2luZm8ge1xuXHRcdGRpc3BsYXk6dGFibGU7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRtYXgtd2lkdGg6MTAwJTtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuYmQ7XG5cdH1cblx0XG5cdC5kb25hdGlvbl9jb25maXJtX2luZm9faXRlbSB7XG5cdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHdpZHRoOjIwJTtcblx0fVxuXHRcblx0LmRvbmF0aW9uX2NvbmZpcm1faW5mb190aXRsZSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRwYWRkaW5nOjE1cHggMTBweCAxNXB4IDI1cHg7XG5cdFx0LmJkYjtcblx0fVxuXHRcblx0LmRvbmF0aW9uX2NvbmZpcm1faW5mb192YWx1ZSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRwYWRkaW5nOjE1cHggMTBweCAxNXB4IDI1cHg7XG5cdH1cblx0XG5cdC5kb25hdGlvbl9jb25maXJtX2Fub255bW91cyB7XG5cdFx0cGFkZGluZzoxMHB4IDAgMDtcblx0fVxuXHRcblx0LmRvbmF0aW9uX2NvbmZpcm1fY29udF90aXRsZSB7XG5cdFx0bWFyZ2luOjMwcHggMCAxMHB4O1xuXHR9XG5cdFxuXHQuZG9uYXRpb25fY29uZmlybV9jb250IHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdD4gcDpsYXN0LWNoaWxkIHtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdH1cblx0fVxufVxuXG5cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDU1MzIEFuaW1hdGlvbnNcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmh0bWwuY3NzdHJhbnNpdGlvbnMge1xuXHQuaGVhZGVyX3RvcF9kb25hdGlvbl9idXQge1xuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfY2FtcGFpZ25zIC5jYW1wYWlnbiAuY21zbWFzdGVyc19pbWdfd3JhcCAucHJlbG9hZGVyOmFmdGVyIHtcblx0XHQudHJhbnMob3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19mZWF0dXJlZF9jYW1wYWlnbiAuY2FtcGFpZ24gLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyLFxuXHQuY21zbWFzdGVyc19kb25hdGlvbnMgLmRvbmF0aW9uICAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIge1xuXHRcdC50cmFucyh+J2JhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2ZlYXR1cmVkX2NhbXBhaWduIC5jYW1wYWlnbiAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIgLmNtc21hc3RlcnNfb3Blbl9wb3N0X2xpbmssXG5cdC5jbXNtYXN0ZXJzX2RvbmF0aW9ucyAuZG9uYXRpb24gIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciAuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluayB7XG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQgLjFzLCB0cmFuc2Zvcm0gLjVzIGVhc2UtaW4tb3V0IC4xcycpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19mZWF0dXJlZF9jYW1wYWlnbiAuY2FtcGFpZ24gLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyICAuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluazpiZWZvcmUsXG5cdC5jbXNtYXN0ZXJzX2RvbmF0aW9ucyAuZG9uYXRpb24gIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciAuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluazpiZWZvcmUge1xuXHRcdC50cmFucyh+J2JvdHRvbSAuNXMgY3ViaWMtYmV6aWVyKC41NSwgLjMsIC41LCAxLjY1KScpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19jYW1wYWlnbnMgLmNhbXBhaWduIC5jbXNtYXN0ZXJzX2ltZ193cmFwIC5jbXNtYXN0ZXJzX2ltZ19saW5rOmJlZm9yZSB7XG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQsIGJvdHRvbSAuNHMgY3ViaWMtYmV6aWVyKC41NSwgLjMsIC41LCAxLjY1KScpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19mZWF0dXJlZF9jYW1wYWlnbiAuY2FtcGFpZ24gLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAgaW1nLFxuXHQuY21zbWFzdGVyc19jYW1wYWlnbnMgLmNhbXBhaWduIC5jbXNtYXN0ZXJzX2ltZ193cmFwIGltZyxcblx0LmNtc21hc3RlcnNfZG9uYXRpb25zIC5kb25hdGlvbiAgLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAgaW1nIHtcblx0XHQudHJhbnMofid0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cbn1cblxuIiwiXHJcbkBpbnB1dF9wYWQ6IDEwcHg7XHJcbkBpbnB1dF9oZWlnaHQ6IDQycHg7XHJcblxyXG5AbGluZV9oZWlnaHRfcGFkOiAyMnB4O1xyXG5AZGVmYXVsdF9saXN0X3RvcF9wYWQ6IDEwcHg7XHJcbkBkZWZhdWx0X2xpc3RfbGVmdF9wYWQ6IDIwcHg7XHJcbkBibG9ja3NfaG9yX3BhZDogMjBweDtcclxuQGNvbnRfc2lkZWJhcl9wYWQ6IDQwcHg7XHJcbkBjb250X3ZlcnRfcGFkOiA2MHB4O1xyXG5cclxuQGJkcnNfd2lkdGg6IDRweDtcclxuXHJcbkBidXRfYmRyc193aWR0aDogMjJweDtcclxuQGJ1dF9iZF93aWR0aDogMXB4O1xyXG5cclxuQGNvbF9tYXI6IDEuNyU7XHJcblxyXG5AcmVzcF9ibG9ja3NfcGFkOiA1OC4xNCU7XHJcblxyXG5AcHJlbG9hZGVyX2Jsb2dfZGVmYXVsdF9wYWQ6IDU4LjE0JTtcclxuQHByZWxvYWRlcl9ibG9nX21hc29ucnlfcGFkOiA3Mi40MSU7XHJcbkBwcmVsb2FkZXJfYmxvZ190aW1lbGluZV9wYWQ6IDU4LjE0JTtcclxuQHByZWxvYWRlcl9vcGVuX3Bvc3RfcGFkOiA1OC4xNCU7XHJcbkBwcmVsb2FkZXJfcG9ydGZvbGlvX2dyaWRfcGFkOiAxMDAlO1xyXG5AcHJlbG9hZGVyX29wZW5fcHJvamVjdF9wYWQ6IDU4LjE0JTtcclxuQHByZWxvYWRlcl9wb3N0c19zbGlkZXJfcGFkOiA3Mi40MSU7XHJcbkBwcmVsb2FkZXJfYXJjaGl2ZXNfcGFkOiAxMDAlO1xyXG5cclxuQHNpZGViYXJfd2lkdGg6IDI2JTtcclxuQGNvbnRlbnRfd2lkdGg6IDEwMCUgLSBAc2lkZWJhcl93aWR0aDtcclxuXHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3dpZHRoOiAxODRweDtcclxuQG1pZF9uYXZfZHJvcGRvd25fcGFkX3RvcDogMTBweDtcclxuQG1pZF9uYXZfZHJvcGRvd25fcGFkX2JvdDogMTBweDtcclxuQG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQ6IDIwcHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDogMXB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDogMTJweDtcclxuXHJcbkBib3RfbmF2X2Ryb3Bkb3duX3dpZHRoOiAxODRweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fcGFkX3RvcDogMTBweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fcGFkX2JvdDogMTBweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQ6IDIwcHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDogMXB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDogMTJweDtcclxuXHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3dpZHRoOiAxMjZweDtcclxuQHRvcF9uYXZfZHJvcGRvd25fcGFkX3RvcDogMTBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25fcGFkX2JvdDogMTBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQ6IDIwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDogMXB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDogMXB4O1xyXG5cclxuQGNvbnRfd2lkdGhfZGVmOiA5ODBweDtcclxuQGNvbnRfd2lkdGhfbGFyZ2U6IDEyMDBweDtcclxuQGNvbnRfd2lkdGhfZnVsbDogMTAwJTtcclxuQGNvbnRfd2lkdGhfbWluOiAzMjBweDtcclxuXHJcbkBpbnB1dF90ZXh0OiBlKCdpbnB1dDpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPWZpbGVdKTpub3QoW3R5cGU9aGlkZGVuXSk6bm90KFt0eXBlPWltYWdlXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPXJlc2V0XSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1jb2xvcl0pOm5vdChbdHlwZT1yYW5nZV0pJyk7XHJcblxyXG5AbW9uaXRvcl9sYXJnZTogficobWluLXdpZHRoOiAxNDQwcHgpJztcclxuQG1vbml0b3JfbWVkaXVtOiB+JyhtaW4td2lkdGg6IDEwMjVweCknO1xyXG5AbW9uaXRvcl90YWJsZXQ6IH4nKG1heC13aWR0aDogMTAyNHB4KSc7XHJcbkBtb25pdG9yX3RhYmxldF85NTA6IH4nKG1heC13aWR0aDogOTUwcHgpJztcclxuQG1vbml0b3JfdGFibGV0X3NtYWxsOiB+JyhtYXgtd2lkdGg6IDc2OHB4KSc7XHJcbkBtb25pdG9yX3RhYmxldF82MDA6IH4nKG1heC13aWR0aDogNjAwcHgpJztcclxuQG1vbml0b3JfcGhvbmU6IH4nKG1heC13aWR0aDogNTQwcHgpJztcclxuQG1vbml0b3JfcGhvbmVfc21hbGw6IH4nKG1heC13aWR0aDogMzIwcHgpJztcclxuXHJcblxyXG5cclxuLmZsICgpIHtcclxuXHRmbG9hdDpsZWZ0O1xyXG59XHJcblxyXG4uZnIgKCkge1xyXG5cdGZsb2F0OnJpZ2h0O1xyXG59XHJcblxyXG4uZG4gKCkge1xyXG5cdGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuLnRhbCAoKSB7XHJcblx0dGV4dC1hbGlnbjpsZWZ0O1xyXG59XHJcblxyXG4udGFjICgpIHtcclxuXHR0ZXh0LWFsaWduOmNlbnRlcjtcclxufVxyXG5cclxuLnRhciAoKSB7XHJcblx0dGV4dC1hbGlnbjpyaWdodDtcclxufVxyXG5cclxuLmNsICgpIHtcclxuXHRjbGVhcjpib3RoO1xyXG59XHJcblxyXG4ub3ZoICgpIHtcclxuXHRvdmVyZmxvdzpoaWRkZW47XHJcbn1cclxuXHJcbi5tMGEgKCkge1xyXG5cdG1hcmdpbjowIGF1dG87XHJcbn1cclxuXHJcbi5iZCAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci13aWR0aDpAdztcclxuXHRib3JkZXItc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZHQgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItdG9wLXdpZHRoOkB3O1xyXG5cdGJvcmRlci10b3Atc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZGIgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOkB3O1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZHIgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItcmlnaHQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLXJpZ2h0LXN0eWxlOkB0O1xyXG59XHJcblxyXG4uYmRsIChAdzoxcHg7IEB0OnNvbGlkKSB7XHJcblx0Ym9yZGVyLWxlZnQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLWxlZnQtc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5jb2xvcl93aGl0ZV9vcGFjaXR5IChAb3A6LjUpIHtcclxuXHRjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIEBvcCk7XHJcbn1cclxuXHJcbi5iZ193aGl0ZV9vcGFjaXR5IChAb3A6LjUpIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgQG9wKTtcclxufVxyXG5cclxuLmZ1bGx3aWR0aF9pbl9ibG9jayAoKSB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6MTAwJTtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHR0b3A6MDtcclxuXHRsZWZ0OjA7XHJcbn1cclxuXHJcbi5vcCAoQG9wOi41KSB7XHJcblx0b3BhY2l0eTpAb3A7XHJcbn1cclxuXHJcbi5kaXNwbGF5X2ZsZXggKCkge1xyXG5cdGRpc3BsYXk6LXdlYmtpdC1mbGV4O1xyXG5cdGRpc3BsYXk6LW1vei1mbGV4O1xyXG5cdGRpc3BsYXk6LW1zLWZsZXg7XHJcblx0ZGlzcGxheTpmbGV4O1xyXG59XHJcblxyXG4uZGlzcGxheV9pbmxpbmVfZmxleCAoKSB7XHJcblx0ZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6LW1vei1pbmxpbmUtZmxleDtcclxuXHRkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleDtcclxuXHRkaXNwbGF5OmlubGluZS1mbGV4O1xyXG59XHJcblxyXG4uZmxleF9kaXJlY3Rpb24gKEBkOnJvdykge1xyXG5cdC13ZWJraXQtZmxleC1kaXJlY3Rpb246QGQ7XHJcblx0LW1vei1mbGV4LWRpcmVjdGlvbjpAZDtcclxuXHQtbXMtZmxleC1kaXJlY3Rpb246QGQ7XHJcblx0ZmxleC1kaXJlY3Rpb246QGQ7XHJcbn1cclxuXHJcbi5mbGV4X3dyYXAgKEBkOm5vd3JhcCkge1xyXG5cdC13ZWJraXQtZmxleC13cmFwOkBkO1xyXG5cdC1tb3otZmxleC13cmFwOkBkO1xyXG5cdC1tcy1mbGV4LXdyYXA6QGQ7XHJcblx0ZmxleC13cmFwOkBkO1xyXG59XHJcblxyXG4uanVzdGlmeV9jb250ZW50IChAZDpmbGV4LXN0YXJ0KSB7XHJcblx0LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcblx0LW1vei1qdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcblx0LW1zLWp1c3RpZnktY29udGVudDpAZDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcbn1cclxuXHJcbi5hbGlnbl9pdGVtcyAoQGQ6c3RyZXRjaCkge1xyXG5cdC13ZWJraXQtYWxpZ24taXRlbXM6QGQ7XHJcblx0LW1vei1hbGlnbi1pdGVtczpAZDtcclxuXHQtbXMtYWxpZ24taXRlbXM6QGQ7XHJcblx0YWxpZ24taXRlbXM6QGQ7XHJcbn1cclxuXHJcbi5hbGlnbl9jb250ZW50IChAZDpzdHJldGNoKSB7XHJcblx0LXdlYmtpdC1hbGlnbi1jb250ZW50OkBkO1xyXG5cdC1tb3otYWxpZ24tY29udGVudDpAZDtcclxuXHQtbXMtYWxpZ24tY29udGVudDpAZDtcclxuXHRhbGlnbi1jb250ZW50OkBkO1xyXG59XHJcblxyXG4uY2xfYWZ0ZXIgKCkge1xyXG5cdGNvbnRlbnQ6Jy4nO1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0Y2xlYXI6Ym90aDtcclxuXHRoZWlnaHQ6MDtcclxuXHR2aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRvdmVyZmxvdzpoaWRkZW47XHJcbn1cclxuXHJcbi52YWxpZ25fYWZ0ZXIgKCkge1xyXG5cdGNvbnRlbnQ6Jyc7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdGhlaWdodDoxMDAlO1xyXG59XHJcblxyXG4ucG9zX2FicyAoQHc6MWVtOyBAaDoxZW07IEBsOjA7IEByOjA7IEB0OjA7IEBiOjApIHtcclxuXHR3aWR0aDpAdztcclxuXHRoZWlnaHQ6QGg7XHJcblx0bWFyZ2luOmF1dG8gIWltcG9ydGFudDtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRsZWZ0OkBsO1xyXG5cdHJpZ2h0OkByO1xyXG5cdHRvcDpAdDtcclxuXHRib3R0b206QGI7XHJcbn1cclxuXHJcbi5iZGJ4ICgpIHtcclxuXHQtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxuXHQtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxuXHRib3gtc2l6aW5nOmJvcmRlci1ib3g7XHJcbn1cclxuXHJcbi5jdGJ4ICgpIHtcclxuXHQtd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7XHJcblx0LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O1xyXG5cdGJveC1zaXppbmc6Y29udGVudC1ib3g7XHJcbn1cclxuXHJcbi5iZHJzIChAcmFkaXVzOkBiZHJzX3dpZHRoKSB7XHJcblx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOkByYWRpdXM7XHJcblx0Ym9yZGVyLXJhZGl1czpAcmFkaXVzO1xyXG59XHJcblxyXG4uYnhzaCAoQHg6MDsgQHk6MDsgQGJsdXI6NXB4OyBAc3ByZWQ6MDsgQGFscGhhOi4wNSkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG5cdGJveC1zaGFkb3c6QHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMCwgMCwgMCwgQGFscGhhKTtcclxufVxyXG5cclxuLmJ4c2hfd2hpdGUgKEB4OjA7IEB5OjA7IEBibHVyOjVweDsgQHNwcmVkOjA7IEBhbHBoYTouMDUpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6QHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxuXHRib3gtc2hhZG93OkB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIEBhbHBoYSk7XHJcbn1cclxuXHJcbi5ieHNoaSAoQHg6MDsgQHk6MDsgQGJsdXI6NXB4OyBAc3ByZWQ6MDsgQGFscGhhOi4wNSkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzppbnNldCBAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG5cdGJveC1zaGFkb3c6aW5zZXQgQHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMCwgMCwgMCwgQGFscGhhKTtcclxufVxyXG5cclxuLmJ4c2hpX3doaXRlIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzppbnNldCBAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaF9ub25lICgpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6bm9uZTtcclxuXHRib3gtc2hhZG93Om5vbmU7XHJcbn1cclxuXHJcbi50cmFucyhAdHJhbnM6MCkgd2hlbiBub3QgKEB0cmFucyA9IDApIHtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjpAdHJhbnM7XHJcbiAgICAtbW96LXRyYW5zaXRpb246QHRyYW5zO1xyXG4gICAgLW1zLXRyYW5zaXRpb246QHRyYW5zO1xyXG4gICAgLW8tdHJhbnNpdGlvbjpAdHJhbnM7XHJcbiAgICB0cmFuc2l0aW9uOkB0cmFucztcclxufVxyXG5cclxuLmFycm93X3RvcCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItdG9wOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b20td2lkdGg6QGg7XHJcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X2JvdHRvbSAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItYm90dG9tOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3Atd2lkdGg6QGg7XHJcblx0Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X2xlZnQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLWxlZnQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3A6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0LXdpZHRoOkBoO1xyXG5cdGJvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X3JpZ2h0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1yaWdodDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b206QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdC13aWR0aDpAaDtcclxuXHRib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X3RvcF9sZWZ0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1yaWdodDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wLXdpZHRoOkBoO1xyXG5cdGJvcmRlci10b3Atc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd190b3BfcmlnaHQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLWJvdHRvbTpAaCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3A6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfYm90dG9tX2xlZnQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLXRvcDpAaCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19ib3R0b21fcmlnaHQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLWxlZnQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b20td2lkdGg6QGg7XHJcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmRlZmF1bHRfbGlzdCAoQHc6NHB4OyBAaDo0cHg7IEBtOjAgMTBweCAwIDA7IEBiZHJzOjUwJSkge1xyXG5cdGxpc3Qtc3R5bGUtdHlwZTpub25lO1xyXG5cdFxyXG5cdD4gbGkge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6J1xcZWIyMic7XHJcblx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsbyc7XHJcblx0XHRcdGZvbnQtc3R5bGU6bm9ybWFsO1xyXG5cdFx0XHRmb250LXdlaWdodDpub3JtYWw7XHJcblx0XHRcdHNwZWFrOm5vbmU7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246aW5oZXJpdDtcclxuXHRcdFx0d2lkdGg6MWVtO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdG1hcmdpbjowIDVweCAwIDA7XHJcblx0XHRcdHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdFx0XHRmb250LXZhcmlhbnQ6bm9ybWFsO1xyXG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTpub25lO1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxZW07XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmRlZmF1bHRfYmxvY2txdW90ZSAoKSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdHBhZGRpbmctbGVmdDo1M3B4O1xyXG5cdG1hcmdpbjowIDAgQGxpbmVfaGVpZ2h0X3BhZDsgLyogZG9uJ3QgdG91Y2ggKi9cclxuXHQuYmQoMCk7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6J1xcMjAxRCc7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0Zm9udC1zaXplOjUwcHg7XHJcblx0XHRsaW5lLWhlaWdodDo1MHB4O1xyXG5cdH1cclxuXHJcblx0cDpsYXN0LW9mLXR5cGUge1xyXG5cdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdG1hcmdpbi1ib3R0b206MDtcclxuXHR9XHJcblxyXG5cdGNpdGUge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdG1hcmdpbi10b3A6MTBweDtcclxuXHR9XHJcbn1cclxuXHJcbi5kZWZhdWx0X3RhYmxlICgpIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRib3JkZXItc3BhY2luZzowO1xyXG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcclxuXHRcclxuXHR0aCwgXHJcblx0dGQge1xyXG5cdFx0cGFkZGluZzoxMHB4O1xyXG5cdFx0LmJkO1xyXG5cdH1cclxuXHRcclxuXHRjYXB0aW9uIHtcclxuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdFx0cGFkZGluZzoyMHB4O1xyXG5cdH1cclxuXHRcclxuXHQvKiBmb3IgZ3V0ZW5iZXJnIHN0YXJ0ICovXHJcblx0Ji5pcy1zdHlsZS1zdHJpcGVzIHtcclxuXHRcdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcclxuXHRcdC5iZCgwKTtcclxuXHRcdFxyXG5cdFx0dHI6bnRoLWNoaWxkKG9kZCkge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qIGZvciBndXRlbmJlcmcgZW5kICovXHJcbn1cclxuXHJcbi5kZWZhdWx0X2J1dHRvbiAoKSB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0cGFkZGluZzowIDMwcHg7XHJcblx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xyXG5cdC50YWM7XHJcblx0LmJkKEBidXRfYmRfd2lkdGgpO1xyXG5cdC5iZHJzKEBidXRfYmRyc193aWR0aCk7XHJcbn1cclxuXHJcbi5kZWZhdWx0X3NlbGVjdCAoQHBsdWdpbjowKSB7XHJcblx0bGluZS1oZWlnaHQ6MS42O1xyXG5cdHRleHQtaW5kZW50OjAuMDFweDtcclxuXHR0ZXh0LW92ZXJmbG93OicnO1xyXG5cdHBhZGRpbmc6QGlucHV0X3BhZCAxMCUgQGlucHV0X3BhZCAxNXB4O1xyXG5cdC13ZWJraXQtYXBwZWFyYW5jZTpub25lO1xyXG5cdC1tb3otYXBwZWFyYW5jZTpub25lO1xyXG5cdC1tcy1hcHBlYXJhbmNlOm5vbmU7XHJcblx0YXBwZWFyYW5jZTpub25lICFpbXBvcnRhbnQ7XHJcblx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJy4uLy4uLy4uL2ltZy9zZWxlY3QucG5nJyk7XHJcblx0YmFja2dyb3VuZC1wb3NpdGlvbjo5NCUgY2VudGVyO1xyXG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcclxuXHRtaW4td2lkdGg6MTAwcHg7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRtaW4td2lkdGg6MTAwcHg7XHJcblx0aGVpZ2h0OkBpbnB1dF9oZWlnaHQgKyAzcHg7XHJcblx0LmJkcnMoMCk7XHJcblx0XHJcblx0JiB3aGVuIChAcGx1Z2luID4gMCkge1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJy4uLy4uLy4uLy4uL2ltZy9zZWxlY3QucG5nJyk7XHJcblx0fVxyXG5cdFxyXG5cdCYgd2hlbiAoQHBsdWdpbiA9IDApIHtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi8uLi8uLi9pbWcvc2VsZWN0LnBuZycpO1xyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuIl0sImZpbGUiOiJwbHVnaW4tc3R5bGUuY3NzIn0= */
