| 1 |
"use strict"; |
| 2 |
|
| 3 |
// == WPBC BFB Shared Pack Helper: Generic Hint Shortcode |
| 4 |
(function (w, d) { |
| 5 |
'use strict'; |
| 6 |
|
| 7 |
w.WPBC_BFB_RegisterShortcodeHintPack = function (cfg) { |
| 8 |
cfg = cfg || {}; |
| 9 |
var T = String(cfg.token || ''); |
| 10 |
var S = String(cfg.shortcode || T); |
| 11 |
var P = String(cfg.prefix || ''); |
| 12 |
var L = String(cfg.label || T); |
| 13 |
var B = String(cfg.boot || ''); |
| 14 |
var F = String(cfg.fallback || ''); |
| 15 |
var Core = w.WPBC_BFB_Core || {}; |
| 16 |
var Registry = Core.WPBC_BFB_Field_Renderer_Registry; |
| 17 |
var Base = Core.WPBC_BFB_Field_Base; |
| 18 |
if (!T) { |
| 19 |
return; |
| 20 |
} |
| 21 |
if (!Registry || typeof Registry.register !== 'function' || !Base) { |
| 22 |
w._wpbc?.dev?.error?.('wpbc_bfb_field_' + T, 'Core registry/base missing'); |
| 23 |
return; |
| 24 |
} |
| 25 |
class ShortcodeHintField extends Base { |
| 26 |
static template_id = 'wpbc-bfb-field-' + T; |
| 27 |
static get_defaults() { |
| 28 |
return { |
| 29 |
type: T, |
| 30 |
prefix_text: P, |
| 31 |
html_id: '', |
| 32 |
cssclass: '', |
| 33 |
help: '' |
| 34 |
}; |
| 35 |
} |
| 36 |
static get_boot() { |
| 37 |
return B ? w[B] || {} : {}; |
| 38 |
} |
| 39 |
static render(el, data, ctx) { |
| 40 |
if (!el) { |
| 41 |
return; |
| 42 |
} |
| 43 |
var d_normalized = this.normalize_data(data); |
| 44 |
var s = Core.WPBC_BFB_Sanitize || {}; |
| 45 |
var boot = this.get_boot(); |
| 46 |
var html_id = d_normalized.html_id ? s.sanitize_html_id ? s.sanitize_html_id(String(d_normalized.html_id)) : String(d_normalized.html_id) : ''; |
| 47 |
var cssclass = d_normalized.cssclass ? s.sanitize_css_classlist ? s.sanitize_css_classlist(String(d_normalized.cssclass)) : String(d_normalized.cssclass) : ''; |
| 48 |
var tpl = this.get_template(this.template_id); |
| 49 |
var is_supported = String(boot.is_supported || '0') === '1'; |
| 50 |
if (typeof tpl !== 'function') { |
| 51 |
el.innerHTML = '<div class="wpbc_bfb__error" role="alert">Template not found: ' + this.template_id + '.</div>'; |
| 52 |
return; |
| 53 |
} |
| 54 |
try { |
| 55 |
el.innerHTML = tpl(Object.assign({}, d_normalized, { |
| 56 |
html_id: html_id, |
| 57 |
cssclass: cssclass, |
| 58 |
is_supported: is_supported, |
| 59 |
upgrade_text: String(boot.upgrade_text || ''), |
| 60 |
preview_value: String(boot.preview_value || F) |
| 61 |
})); |
| 62 |
} catch (er) { |
| 63 |
w._wpbc?.dev?.error?.(T + '_wptpl.tpl.render', er); |
| 64 |
el.innerHTML = '<div class="wpbc_bfb__error" role="alert">Error rendering ' + L + ' preview.</div>'; |
| 65 |
return; |
| 66 |
} |
| 67 |
el.dataset.type = T; |
| 68 |
el.dataset.prefix_text = d_normalized.prefix_text != null ? String(d_normalized.prefix_text) : ''; |
| 69 |
el.dataset.html_id = html_id; |
| 70 |
el.dataset.cssclass = cssclass; |
| 71 |
el.dataset.help = d_normalized.help != null ? String(d_normalized.help) : ''; |
| 72 |
el.setAttribute('data-label', d_normalized.prefix_text != null ? String(d_normalized.prefix_text) : ''); |
| 73 |
Core.UI?.WPBC_BFB_Overlay?.ensure?.(ctx?.builder, el); |
| 74 |
} |
| 75 |
static on_field_drop(data, el, ctx) { |
| 76 |
super.on_field_drop?.(data, el, ctx); |
| 77 |
} |
| 78 |
} |
| 79 |
try { |
| 80 |
Registry.register(T, ShortcodeHintField); |
| 81 |
} catch (er) { |
| 82 |
w._wpbc?.dev?.error?.('wpbc_bfb_field_' + T + '.register', er); |
| 83 |
} |
| 84 |
function register_booking_form_exporter() { |
| 85 |
var exporter = w.WPBC_BFB_Exporter; |
| 86 |
if (!exporter || typeof exporter.register !== 'function') { |
| 87 |
return; |
| 88 |
} |
| 89 |
if (typeof exporter.has_exporter === 'function' && exporter.has_exporter(T)) { |
| 90 |
return; |
| 91 |
} |
| 92 |
var s = Core.WPBC_BFB_Sanitize || {}; |
| 93 |
var esc_html = s.escape_html || function (value) { |
| 94 |
return String(value).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, '''); |
| 95 |
}; |
| 96 |
var sanitize_html_id = s.sanitize_html_id || function (value) { |
| 97 |
return String(value || ''); |
| 98 |
}; |
| 99 |
var sanitize_css_classlist = s.sanitize_css_classlist || function (value) { |
| 100 |
return String(value || ''); |
| 101 |
}; |
| 102 |
exporter.register(T, function (field, emit) { |
| 103 |
var prefix_text = field && typeof field.prefix_text === 'string' ? field.prefix_text.trim() : P; |
| 104 |
var html_id = field && field.html_id ? sanitize_html_id(field.html_id) : ''; |
| 105 |
var cssclass = field && field.cssclass ? sanitize_css_classlist(field.cssclass) : ''; |
| 106 |
var body_html = ''; |
| 107 |
var attrs = ''; |
| 108 |
if (prefix_text) { |
| 109 |
body_html += esc_html(prefix_text) + ' '; |
| 110 |
} |
| 111 |
body_html += '<strong>[' + S + ']</strong>'; |
| 112 |
if (html_id) { |
| 113 |
attrs += ' id="' + esc_html(html_id) + '"'; |
| 114 |
} |
| 115 |
if (cssclass) { |
| 116 |
attrs += ' class="' + esc_html(cssclass) + '"'; |
| 117 |
} |
| 118 |
if (attrs) { |
| 119 |
body_html = '<span' + attrs + '>' + body_html + '</span>'; |
| 120 |
} |
| 121 |
emit(body_html); |
| 122 |
}); |
| 123 |
} |
| 124 |
if (w.WPBC_BFB_Exporter && typeof w.WPBC_BFB_Exporter.register === 'function') { |
| 125 |
register_booking_form_exporter(); |
| 126 |
} else { |
| 127 |
d.addEventListener('wpbc:bfb:exporter-ready', register_booking_form_exporter, { |
| 128 |
once: true |
| 129 |
}); |
| 130 |
} |
| 131 |
function register_booking_data_exporter() { |
| 132 |
var content_exporter = w.WPBC_BFB_ContentExporter; |
| 133 |
if (!content_exporter || typeof content_exporter.register !== 'function') { |
| 134 |
return; |
| 135 |
} |
| 136 |
if (typeof content_exporter.has_exporter === 'function' && content_exporter.has_exporter(T)) { |
| 137 |
return; |
| 138 |
} |
| 139 |
content_exporter.register(T, function (field, emit, extras) { |
| 140 |
extras = extras || {}; |
| 141 |
var cfg_export = extras.cfg || {}; |
| 142 |
var raw_label = field && typeof field.prefix_text === 'string' ? field.prefix_text.trim() : ''; |
| 143 |
var label = raw_label.replace(/\s*:\s*$/, '') || L; |
| 144 |
if (typeof content_exporter.emit_line_bold_field === 'function') { |
| 145 |
// Intentionally stop exporting hints into the "Content of booking fields data" form! |
| 146 |
// content_exporter.emit_line_bold_field( emit, label, S, cfg_export ); |
| 147 |
return; |
| 148 |
} |
| 149 |
// Intentionally stop exporting hints into the "Content of booking fields data" form! |
| 150 |
// emit( '<b>' + label + '</b>: <f>[' + S + ']</f><br>' ); |
| 151 |
}); |
| 152 |
} |
| 153 |
if (w.WPBC_BFB_ContentExporter && typeof w.WPBC_BFB_ContentExporter.register === 'function') { |
| 154 |
register_booking_data_exporter(); |
| 155 |
} else { |
| 156 |
d.addEventListener('wpbc:bfb:content-exporter-ready', register_booking_data_exporter, { |
| 157 |
once: true |
| 158 |
}); |
| 159 |
} |
| 160 |
}; |
| 161 |
})(window, document); |
| 162 |
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZXMvcGFnZS1mb3JtLWJ1aWxkZXIvZmllbGQtcGFja3MvX3NoYXJlZC9fb3V0L2hpbnQtc2hvcnRjb2RlLXdwdHBsLmpzIiwibmFtZXMiOlsidyIsImQiLCJXUEJDX0JGQl9SZWdpc3RlclNob3J0Y29kZUhpbnRQYWNrIiwiY2ZnIiwiVCIsIlN0cmluZyIsInRva2VuIiwiUyIsInNob3J0Y29kZSIsIlAiLCJwcmVmaXgiLCJMIiwibGFiZWwiLCJCIiwiYm9vdCIsIkYiLCJmYWxsYmFjayIsIkNvcmUiLCJXUEJDX0JGQl9Db3JlIiwiUmVnaXN0cnkiLCJXUEJDX0JGQl9GaWVsZF9SZW5kZXJlcl9SZWdpc3RyeSIsIkJhc2UiLCJXUEJDX0JGQl9GaWVsZF9CYXNlIiwicmVnaXN0ZXIiLCJfd3BiYyIsImRldiIsImVycm9yIiwiU2hvcnRjb2RlSGludEZpZWxkIiwidGVtcGxhdGVfaWQiLCJnZXRfZGVmYXVsdHMiLCJ0eXBlIiwicHJlZml4X3RleHQiLCJodG1sX2lkIiwiY3NzY2xhc3MiLCJoZWxwIiwiZ2V0X2Jvb3QiLCJyZW5kZXIiLCJlbCIsImRhdGEiLCJjdHgiLCJkX25vcm1hbGl6ZWQiLCJub3JtYWxpemVfZGF0YSIsInMiLCJXUEJDX0JGQl9TYW5pdGl6ZSIsInNhbml0aXplX2h0bWxfaWQiLCJzYW5pdGl6ZV9jc3NfY2xhc3NsaXN0IiwidHBsIiwiZ2V0X3RlbXBsYXRlIiwiaXNfc3VwcG9ydGVkIiwiaW5uZXJIVE1MIiwiT2JqZWN0IiwiYXNzaWduIiwidXBncmFkZV90ZXh0IiwicHJldmlld192YWx1ZSIsImVyIiwiZGF0YXNldCIsInNldEF0dHJpYnV0ZSIsIlVJIiwiV1BCQ19CRkJfT3ZlcmxheSIsImVuc3VyZSIsImJ1aWxkZXIiLCJvbl9maWVsZF9kcm9wIiwicmVnaXN0ZXJfYm9va2luZ19mb3JtX2V4cG9ydGVyIiwiZXhwb3J0ZXIiLCJXUEJDX0JGQl9FeHBvcnRlciIsImhhc19leHBvcnRlciIsImVzY19odG1sIiwiZXNjYXBlX2h0bWwiLCJ2YWx1ZSIsInJlcGxhY2UiLCJmaWVsZCIsImVtaXQiLCJ0cmltIiwiYm9keV9odG1sIiwiYXR0cnMiLCJhZGRFdmVudExpc3RlbmVyIiwib25jZSIsInJlZ2lzdGVyX2Jvb2tpbmdfZGF0YV9leHBvcnRlciIsImNvbnRlbnRfZXhwb3J0ZXIiLCJXUEJDX0JGQl9Db250ZW50RXhwb3J0ZXIiLCJleHRyYXMiLCJjZmdfZXhwb3J0IiwicmF3X2xhYmVsIiwiZW1pdF9saW5lX2JvbGRfZmllbGQiLCJ3aW5kb3ciLCJkb2N1bWVudCJdLCJzb3VyY2VzIjpbImluY2x1ZGVzL3BhZ2UtZm9ybS1idWlsZGVyL2ZpZWxkLXBhY2tzL19zaGFyZWQvX3NyYy9oaW50LXNob3J0Y29kZS13cHRwbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PSBXUEJDIEJGQiBTaGFyZWQgUGFjayBIZWxwZXI6IEdlbmVyaWMgSGludCBTaG9ydGNvZGVcbihmdW5jdGlvbiAoIHcsIGQgKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHR3LldQQkNfQkZCX1JlZ2lzdGVyU2hvcnRjb2RlSGludFBhY2sgPSBmdW5jdGlvbiAoIGNmZyApIHtcblx0XHRjZmcgPSBjZmcgfHwge307XG5cblx0XHR2YXIgVCA9IFN0cmluZyggY2ZnLnRva2VuIHx8ICcnICk7XG5cdFx0dmFyIFMgPSBTdHJpbmcoIGNmZy5zaG9ydGNvZGUgfHwgVCApO1xuXHRcdHZhciBQID0gU3RyaW5nKCBjZmcucHJlZml4IHx8ICcnICk7XG5cdFx0dmFyIEwgPSBTdHJpbmcoIGNmZy5sYWJlbCB8fCBUICk7XG5cdFx0dmFyIEIgPSBTdHJpbmcoIGNmZy5ib290IHx8ICcnICk7XG5cdFx0dmFyIEYgPSBTdHJpbmcoIGNmZy5mYWxsYmFjayB8fCAnJyApO1xuXHRcdHZhciBDb3JlID0gdy5XUEJDX0JGQl9Db3JlIHx8IHt9O1xuXHRcdHZhciBSZWdpc3RyeSA9IENvcmUuV1BCQ19CRkJfRmllbGRfUmVuZGVyZXJfUmVnaXN0cnk7XG5cdFx0dmFyIEJhc2UgPSBDb3JlLldQQkNfQkZCX0ZpZWxkX0Jhc2U7XG5cblx0XHRpZiAoICEgVCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoICEgUmVnaXN0cnkgfHwgdHlwZW9mIFJlZ2lzdHJ5LnJlZ2lzdGVyICE9PSAnZnVuY3Rpb24nIHx8ICEgQmFzZSApIHtcblx0XHRcdHcuX3dwYmM/LmRldj8uZXJyb3I/LiggJ3dwYmNfYmZiX2ZpZWxkXycgKyBULCAnQ29yZSByZWdpc3RyeS9iYXNlIG1pc3NpbmcnICk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y2xhc3MgU2hvcnRjb2RlSGludEZpZWxkIGV4dGVuZHMgQmFzZSB7XG5cdFx0XHRzdGF0aWMgdGVtcGxhdGVfaWQgPSAnd3BiYy1iZmItZmllbGQtJyArIFQ7XG5cblx0XHRcdHN0YXRpYyBnZXRfZGVmYXVsdHMoKSB7XG5cdFx0XHRcdHJldHVybiB7IHR5cGU6IFQsIHByZWZpeF90ZXh0OiBQLCBodG1sX2lkOiAnJywgY3NzY2xhc3M6ICcnLCBoZWxwOiAnJyB9O1xuXHRcdFx0fVxuXG5cdFx0XHRzdGF0aWMgZ2V0X2Jvb3QoKSB7XG5cdFx0XHRcdHJldHVybiBCID8gKCB3WyBCIF0gfHwge30gKSA6IHt9O1xuXHRcdFx0fVxuXG5cdFx0XHRzdGF0aWMgcmVuZGVyKCBlbCwgZGF0YSwgY3R4ICkge1xuXHRcdFx0XHRpZiAoICEgZWwgKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dmFyIGRfbm9ybWFsaXplZCA9IHRoaXMubm9ybWFsaXplX2RhdGEoIGRhdGEgKTtcblx0XHRcdFx0dmFyIHMgPSBDb3JlLldQQkNfQkZCX1Nhbml0aXplIHx8IHt9O1xuXHRcdFx0XHR2YXIgYm9vdCA9IHRoaXMuZ2V0X2Jvb3QoKTtcblx0XHRcdFx0dmFyIGh0bWxfaWQgPSBkX25vcm1hbGl6ZWQuaHRtbF9pZCA/ICggcy5zYW5pdGl6ZV9odG1sX2lkID8gcy5zYW5pdGl6ZV9odG1sX2lkKCBTdHJpbmcoIGRfbm9ybWFsaXplZC5odG1sX2lkICkgKSA6IFN0cmluZyggZF9ub3JtYWxpemVkLmh0bWxfaWQgKSApIDogJyc7XG5cdFx0XHRcdHZhciBjc3NjbGFzcyA9IGRfbm9ybWFsaXplZC5jc3NjbGFzcyA/ICggcy5zYW5pdGl6ZV9jc3NfY2xhc3NsaXN0ID8gcy5zYW5pdGl6ZV9jc3NfY2xhc3NsaXN0KCBTdHJpbmcoIGRfbm9ybWFsaXplZC5jc3NjbGFzcyApICkgOiBTdHJpbmcoIGRfbm9ybWFsaXplZC5jc3NjbGFzcyApICkgOiAnJztcblx0XHRcdFx0dmFyIHRwbCA9IHRoaXMuZ2V0X3RlbXBsYXRlKCB0aGlzLnRlbXBsYXRlX2lkICk7XG5cdFx0XHRcdHZhciBpc19zdXBwb3J0ZWQgPSBTdHJpbmcoIGJvb3QuaXNfc3VwcG9ydGVkIHx8ICcwJyApID09PSAnMSc7XG5cblx0XHRcdFx0aWYgKCB0eXBlb2YgdHBsICE9PSAnZnVuY3Rpb24nICkge1xuXHRcdFx0XHRcdGVsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPVwid3BiY19iZmJfX2Vycm9yXCIgcm9sZT1cImFsZXJ0XCI+VGVtcGxhdGUgbm90IGZvdW5kOiAnICsgdGhpcy50ZW1wbGF0ZV9pZCArICcuPC9kaXY+Jztcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGVsLmlubmVySFRNTCA9IHRwbCggT2JqZWN0LmFzc2lnbigge30sIGRfbm9ybWFsaXplZCwge1xuXHRcdFx0XHRcdFx0aHRtbF9pZDogaHRtbF9pZCxcblx0XHRcdFx0XHRcdGNzc2NsYXNzOiBjc3NjbGFzcyxcblx0XHRcdFx0XHRcdGlzX3N1cHBvcnRlZDogaXNfc3VwcG9ydGVkLFxuXHRcdFx0XHRcdFx0dXBncmFkZV90ZXh0OiBTdHJpbmcoIGJvb3QudXBncmFkZV90ZXh0IHx8ICcnICksXG5cdFx0XHRcdFx0XHRwcmV2aWV3X3ZhbHVlOiBTdHJpbmcoIGJvb3QucHJldmlld192YWx1ZSB8fCBGIClcblx0XHRcdFx0XHR9ICkgKTtcblx0XHRcdFx0fSBjYXRjaCAoIGVyICkge1xuXHRcdFx0XHRcdHcuX3dwYmM/LmRldj8uZXJyb3I/LiggVCArICdfd3B0cGwudHBsLnJlbmRlcicsIGVyICk7XG5cdFx0XHRcdFx0ZWwuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9XCJ3cGJjX2JmYl9fZXJyb3JcIiByb2xlPVwiYWxlcnRcIj5FcnJvciByZW5kZXJpbmcgJyArIEwgKyAnIHByZXZpZXcuPC9kaXY+Jztcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRlbC5kYXRhc2V0LnR5cGUgPSBUO1xuXHRcdFx0XHRlbC5kYXRhc2V0LnByZWZpeF90ZXh0ID0gZF9ub3JtYWxpemVkLnByZWZpeF90ZXh0ICE9IG51bGwgPyBTdHJpbmcoIGRfbm9ybWFsaXplZC5wcmVmaXhfdGV4dCApIDogJyc7XG5cdFx0XHRcdGVsLmRhdGFzZXQuaHRtbF9pZCA9IGh0bWxfaWQ7XG5cdFx0XHRcdGVsLmRhdGFzZXQuY3NzY2xhc3MgPSBjc3NjbGFzcztcblx0XHRcdFx0ZWwuZGF0YXNldC5oZWxwID0gZF9ub3JtYWxpemVkLmhlbHAgIT0gbnVsbCA/IFN0cmluZyggZF9ub3JtYWxpemVkLmhlbHAgKSA6ICcnO1xuXHRcdFx0XHRlbC5zZXRBdHRyaWJ1dGUoICdkYXRhLWxhYmVsJywgZF9ub3JtYWxpemVkLnByZWZpeF90ZXh0ICE9IG51bGwgPyBTdHJpbmcoIGRfbm9ybWFsaXplZC5wcmVmaXhfdGV4dCApIDogJycgKTtcblx0XHRcdFx0Q29yZS5VST8uV1BCQ19CRkJfT3ZlcmxheT8uZW5zdXJlPy4oIGN0eD8uYnVpbGRlciwgZWwgKTtcblx0XHRcdH1cblxuXHRcdFx0c3RhdGljIG9uX2ZpZWxkX2Ryb3AoIGRhdGEsIGVsLCBjdHggKSB7XG5cdFx0XHRcdHN1cGVyLm9uX2ZpZWxkX2Ryb3A/LiggZGF0YSwgZWwsIGN0eCApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRyeSB7XG5cdFx0XHRSZWdpc3RyeS5yZWdpc3RlciggVCwgU2hvcnRjb2RlSGludEZpZWxkICk7XG5cdFx0fSBjYXRjaCAoIGVyICkge1xuXHRcdFx0dy5fd3BiYz8uZGV2Py5lcnJvcj8uKCAnd3BiY19iZmJfZmllbGRfJyArIFQgKyAnLnJlZ2lzdGVyJywgZXIgKTtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiByZWdpc3Rlcl9ib29raW5nX2Zvcm1fZXhwb3J0ZXIoKSB7XG5cdFx0XHR2YXIgZXhwb3J0ZXIgPSB3LldQQkNfQkZCX0V4cG9ydGVyO1xuXHRcdFx0aWYgKCAhIGV4cG9ydGVyIHx8IHR5cGVvZiBleHBvcnRlci5yZWdpc3RlciAhPT0gJ2Z1bmN0aW9uJyApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCB0eXBlb2YgZXhwb3J0ZXIuaGFzX2V4cG9ydGVyID09PSAnZnVuY3Rpb24nICYmIGV4cG9ydGVyLmhhc19leHBvcnRlciggVCApICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHZhciBzID0gQ29yZS5XUEJDX0JGQl9TYW5pdGl6ZSB8fCB7fTtcblx0XHRcdHZhciBlc2NfaHRtbCA9IHMuZXNjYXBlX2h0bWwgfHwgZnVuY3Rpb24gKCB2YWx1ZSApIHtcblx0XHRcdFx0cmV0dXJuIFN0cmluZyggdmFsdWUgKS5yZXBsYWNlKCAvJi9nLCAnJmFtcDsnICkucmVwbGFjZSggLzwvZywgJyZsdDsnICkucmVwbGFjZSggLz4vZywgJyZndDsnICkucmVwbGFjZSggL1wiL2csICcmcXVvdDsnICkucmVwbGFjZSggLycvZywgJyYjMDM5OycgKTtcblx0XHRcdH07XG5cdFx0XHR2YXIgc2FuaXRpemVfaHRtbF9pZCA9IHMuc2FuaXRpemVfaHRtbF9pZCB8fCBmdW5jdGlvbiAoIHZhbHVlICkgeyByZXR1cm4gU3RyaW5nKCB2YWx1ZSB8fCAnJyApOyB9O1xuXHRcdFx0dmFyIHNhbml0aXplX2Nzc19jbGFzc2xpc3QgPSBzLnNhbml0aXplX2Nzc19jbGFzc2xpc3QgfHwgZnVuY3Rpb24gKCB2YWx1ZSApIHsgcmV0dXJuIFN0cmluZyggdmFsdWUgfHwgJycgKTsgfTtcblxuXHRcdFx0ZXhwb3J0ZXIucmVnaXN0ZXIoIFQsIGZ1bmN0aW9uICggZmllbGQsIGVtaXQgKSB7XG5cdFx0XHRcdHZhciBwcmVmaXhfdGV4dCA9ICggZmllbGQgJiYgdHlwZW9mIGZpZWxkLnByZWZpeF90ZXh0ID09PSAnc3RyaW5nJyApID8gZmllbGQucHJlZml4X3RleHQudHJpbSgpIDogUDtcblx0XHRcdFx0dmFyIGh0bWxfaWQgPSBmaWVsZCAmJiBmaWVsZC5odG1sX2lkID8gc2FuaXRpemVfaHRtbF9pZCggZmllbGQuaHRtbF9pZCApIDogJyc7XG5cdFx0XHRcdHZhciBjc3NjbGFzcyA9IGZpZWxkICYmIGZpZWxkLmNzc2NsYXNzID8gc2FuaXRpemVfY3NzX2NsYXNzbGlzdCggZmllbGQuY3NzY2xhc3MgKSA6ICcnO1xuXHRcdFx0XHR2YXIgYm9keV9odG1sID0gJyc7XG5cdFx0XHRcdHZhciBhdHRycyA9ICcnO1xuXG5cdFx0XHRcdGlmICggcHJlZml4X3RleHQgKSB7XG5cdFx0XHRcdFx0Ym9keV9odG1sICs9IGVzY19odG1sKCBwcmVmaXhfdGV4dCApICsgJyZuYnNwOyc7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ym9keV9odG1sICs9ICc8c3Ryb25nPlsnICsgUyArICddPC9zdHJvbmc+Jztcblx0XHRcdFx0aWYgKCBodG1sX2lkICkge1xuXHRcdFx0XHRcdGF0dHJzICs9ICcgaWQ9XCInICsgZXNjX2h0bWwoIGh0bWxfaWQgKSArICdcIic7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBjc3NjbGFzcyApIHtcblx0XHRcdFx0XHRhdHRycyArPSAnIGNsYXNzPVwiJyArIGVzY19odG1sKCBjc3NjbGFzcyApICsgJ1wiJztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIGF0dHJzICkge1xuXHRcdFx0XHRcdGJvZHlfaHRtbCA9ICc8c3BhbicgKyBhdHRycyArICc+JyArIGJvZHlfaHRtbCArICc8L3NwYW4+Jztcblx0XHRcdFx0fVxuXHRcdFx0XHRlbWl0KCBib2R5X2h0bWwgKTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRpZiAoIHcuV1BCQ19CRkJfRXhwb3J0ZXIgJiYgdHlwZW9mIHcuV1BCQ19CRkJfRXhwb3J0ZXIucmVnaXN0ZXIgPT09ICdmdW5jdGlvbicgKSB7XG5cdFx0XHRyZWdpc3Rlcl9ib29raW5nX2Zvcm1fZXhwb3J0ZXIoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZC5hZGRFdmVudExpc3RlbmVyKCAnd3BiYzpiZmI6ZXhwb3J0ZXItcmVhZHknLCByZWdpc3Rlcl9ib29raW5nX2Zvcm1fZXhwb3J0ZXIsIHsgb25jZTogdHJ1ZSB9ICk7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gcmVnaXN0ZXJfYm9va2luZ19kYXRhX2V4cG9ydGVyKCkge1xuXHRcdFx0dmFyIGNvbnRlbnRfZXhwb3J0ZXIgPSB3LldQQkNfQkZCX0NvbnRlbnRFeHBvcnRlcjtcblx0XHRcdGlmICggISBjb250ZW50X2V4cG9ydGVyIHx8IHR5cGVvZiBjb250ZW50X2V4cG9ydGVyLnJlZ2lzdGVyICE9PSAnZnVuY3Rpb24nICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAoIHR5cGVvZiBjb250ZW50X2V4cG9ydGVyLmhhc19leHBvcnRlciA9PT0gJ2Z1bmN0aW9uJyAmJiBjb250ZW50X2V4cG9ydGVyLmhhc19leHBvcnRlciggVCApICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnRlbnRfZXhwb3J0ZXIucmVnaXN0ZXIoIFQsIGZ1bmN0aW9uICggZmllbGQsIGVtaXQsIGV4dHJhcyApIHtcblx0XHRcdFx0ZXh0cmFzID0gZXh0cmFzIHx8IHt9O1xuXHRcdFx0XHR2YXIgY2ZnX2V4cG9ydCA9IGV4dHJhcy5jZmcgfHwge307XG5cdFx0XHRcdHZhciByYXdfbGFiZWwgPSAoIGZpZWxkICYmIHR5cGVvZiBmaWVsZC5wcmVmaXhfdGV4dCA9PT0gJ3N0cmluZycgKSA/IGZpZWxkLnByZWZpeF90ZXh0LnRyaW0oKSA6ICcnO1xuXHRcdFx0XHR2YXIgbGFiZWwgPSByYXdfbGFiZWwucmVwbGFjZSggL1xccyo6XFxzKiQvLCAnJyApIHx8IEw7XG5cblx0XHRcdFx0aWYgKCB0eXBlb2YgY29udGVudF9leHBvcnRlci5lbWl0X2xpbmVfYm9sZF9maWVsZCA9PT0gJ2Z1bmN0aW9uJyApIHtcblx0XHRcdFx0XHQvLyBJbnRlbnRpb25hbGx5IHN0b3AgZXhwb3J0aW5nIGhpbnRzIGludG8gdGhlIFwiQ29udGVudCBvZiBib29raW5nIGZpZWxkcyBkYXRhXCIgZm9ybSFcblx0XHRcdFx0XHQvLyBjb250ZW50X2V4cG9ydGVyLmVtaXRfbGluZV9ib2xkX2ZpZWxkKCBlbWl0LCBsYWJlbCwgUywgY2ZnX2V4cG9ydCApO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBJbnRlbnRpb25hbGx5IHN0b3AgZXhwb3J0aW5nIGhpbnRzIGludG8gdGhlIFwiQ29udGVudCBvZiBib29raW5nIGZpZWxkcyBkYXRhXCIgZm9ybSFcblx0XHRcdFx0Ly8gZW1pdCggJzxiPicgKyBsYWJlbCArICc8L2I+OiA8Zj5bJyArIFMgKyAnXTwvZj48YnI+JyApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGlmICggdy5XUEJDX0JGQl9Db250ZW50RXhwb3J0ZXIgJiYgdHlwZW9mIHcuV1BCQ19CRkJfQ29udGVudEV4cG9ydGVyLnJlZ2lzdGVyID09PSAnZnVuY3Rpb24nICkge1xuXHRcdFx0cmVnaXN0ZXJfYm9va2luZ19kYXRhX2V4cG9ydGVyKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGQuYWRkRXZlbnRMaXN0ZW5lciggJ3dwYmM6YmZiOmNvbnRlbnQtZXhwb3J0ZXItcmVhZHknLCByZWdpc3Rlcl9ib29raW5nX2RhdGFfZXhwb3J0ZXIsIHsgb25jZTogdHJ1ZSB9ICk7XG5cdFx0fVxuXHR9O1xufSkoIHdpbmRvdywgZG9jdW1lbnQgKTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBLENBQUMsVUFBV0EsQ0FBQyxFQUFFQyxDQUFDLEVBQUc7RUFDbEIsWUFBWTs7RUFFWkQsQ0FBQyxDQUFDRSxrQ0FBa0MsR0FBRyxVQUFXQyxHQUFHLEVBQUc7SUFDdkRBLEdBQUcsR0FBR0EsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUVmLElBQUlDLENBQUMsR0FBR0MsTUFBTSxDQUFFRixHQUFHLENBQUNHLEtBQUssSUFBSSxFQUFHLENBQUM7SUFDakMsSUFBSUMsQ0FBQyxHQUFHRixNQUFNLENBQUVGLEdBQUcsQ0FBQ0ssU0FBUyxJQUFJSixDQUFFLENBQUM7SUFDcEMsSUFBSUssQ0FBQyxHQUFHSixNQUFNLENBQUVGLEdBQUcsQ0FBQ08sTUFBTSxJQUFJLEVBQUcsQ0FBQztJQUNsQyxJQUFJQyxDQUFDLEdBQUdOLE1BQU0sQ0FBRUYsR0FBRyxDQUFDUyxLQUFLLElBQUlSLENBQUUsQ0FBQztJQUNoQyxJQUFJUyxDQUFDLEdBQUdSLE1BQU0sQ0FBRUYsR0FBRyxDQUFDVyxJQUFJLElBQUksRUFBRyxDQUFDO0lBQ2hDLElBQUlDLENBQUMsR0FBR1YsTUFBTSxDQUFFRixHQUFHLENBQUNhLFFBQVEsSUFBSSxFQUFHLENBQUM7SUFDcEMsSUFBSUMsSUFBSSxHQUFHakIsQ0FBQyxDQUFDa0IsYUFBYSxJQUFJLENBQUMsQ0FBQztJQUNoQyxJQUFJQyxRQUFRLEdBQUdGLElBQUksQ0FBQ0csZ0NBQWdDO0lBQ3BELElBQUlDLElBQUksR0FBR0osSUFBSSxDQUFDSyxtQkFBbUI7SUFFbkMsSUFBSyxDQUFFbEIsQ0FBQyxFQUFHO01BQ1Y7SUFDRDtJQUVBLElBQUssQ0FBRWUsUUFBUSxJQUFJLE9BQU9BLFFBQVEsQ0FBQ0ksUUFBUSxLQUFLLFVBQVUsSUFBSSxDQUFFRixJQUFJLEVBQUc7TUFDdEVyQixDQUFDLENBQUN3QixLQUFLLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxHQUFJLGlCQUFpQixHQUFHdEIsQ0FBQyxFQUFFLDRCQUE2QixDQUFDO01BQzVFO0lBQ0Q7SUFFQSxNQUFNdUIsa0JBQWtCLFNBQVNOLElBQUksQ0FBQztNQUNyQyxPQUFPTyxXQUFXLEdBQUcsaUJBQWlCLEdBQUd4QixDQUFDO01BRTFDLE9BQU95QixZQUFZQSxDQUFBLEVBQUc7UUFDckIsT0FBTztVQUFFQyxJQUFJLEVBQUUxQixDQUFDO1VBQUUyQixXQUFXLEVBQUV0QixDQUFDO1VBQUV1QixPQUFPLEVBQUUsRUFBRTtVQUFFQyxRQUFRLEVBQUUsRUFBRTtVQUFFQyxJQUFJLEVBQUU7UUFBRyxDQUFDO01BQ3hFO01BRUEsT0FBT0MsUUFBUUEsQ0FBQSxFQUFHO1FBQ2pCLE9BQU90QixDQUFDLEdBQUtiLENBQUMsQ0FBRWEsQ0FBQyxDQUFFLElBQUksQ0FBQyxDQUFDLEdBQUssQ0FBQyxDQUFDO01BQ2pDO01BRUEsT0FBT3VCLE1BQU1BLENBQUVDLEVBQUUsRUFBRUMsSUFBSSxFQUFFQyxHQUFHLEVBQUc7UUFDOUIsSUFBSyxDQUFFRixFQUFFLEVBQUc7VUFDWDtRQUNEO1FBRUEsSUFBSUcsWUFBWSxHQUFHLElBQUksQ0FBQ0MsY0FBYyxDQUFFSCxJQUFLLENBQUM7UUFDOUMsSUFBSUksQ0FBQyxHQUFHekIsSUFBSSxDQUFDMEIsaUJBQWlCLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUk3QixJQUFJLEdBQUcsSUFBSSxDQUFDcUIsUUFBUSxDQUFDLENBQUM7UUFDMUIsSUFBSUgsT0FBTyxHQUFHUSxZQUFZLENBQUNSLE9BQU8sR0FBS1UsQ0FBQyxDQUFDRSxnQkFBZ0IsR0FBR0YsQ0FBQyxDQUFDRSxnQkFBZ0IsQ0FBRXZDLE1BQU0sQ0FBRW1DLFlBQVksQ0FBQ1IsT0FBUSxDQUFFLENBQUMsR0FBRzNCLE1BQU0sQ0FBRW1DLFlBQVksQ0FBQ1IsT0FBUSxDQUFDLEdBQUssRUFBRTtRQUN4SixJQUFJQyxRQUFRLEdBQUdPLFlBQVksQ0FBQ1AsUUFBUSxHQUFLUyxDQUFDLENBQUNHLHNCQUFzQixHQUFHSCxDQUFDLENBQUNHLHNCQUFzQixDQUFFeEMsTUFBTSxDQUFFbUMsWUFBWSxDQUFDUCxRQUFTLENBQUUsQ0FBQyxHQUFHNUIsTUFBTSxDQUFFbUMsWUFBWSxDQUFDUCxRQUFTLENBQUMsR0FBSyxFQUFFO1FBQ3hLLElBQUlhLEdBQUcsR0FBRyxJQUFJLENBQUNDLFlBQVksQ0FBRSxJQUFJLENBQUNuQixXQUFZLENBQUM7UUFDL0MsSUFBSW9CLFlBQVksR0FBRzNDLE1BQU0sQ0FBRVMsSUFBSSxDQUFDa0MsWUFBWSxJQUFJLEdBQUksQ0FBQyxLQUFLLEdBQUc7UUFFN0QsSUFBSyxPQUFPRixHQUFHLEtBQUssVUFBVSxFQUFHO1VBQ2hDVCxFQUFFLENBQUNZLFNBQVMsR0FBRyxnRUFBZ0UsR0FBRyxJQUFJLENBQUNyQixXQUFXLEdBQUcsU0FBUztVQUM5RztRQUNEO1FBRUEsSUFBSTtVQUNIUyxFQUFFLENBQUNZLFNBQVMsR0FBR0gsR0FBRyxDQUFFSSxNQUFNLENBQUNDLE1BQU0sQ0FBRSxDQUFDLENBQUMsRUFBRVgsWUFBWSxFQUFFO1lBQ3BEUixPQUFPLEVBQUVBLE9BQU87WUFDaEJDLFFBQVEsRUFBRUEsUUFBUTtZQUNsQmUsWUFBWSxFQUFFQSxZQUFZO1lBQzFCSSxZQUFZLEVBQUUvQyxNQUFNLENBQUVTLElBQUksQ0FBQ3NDLFlBQVksSUFBSSxFQUFHLENBQUM7WUFDL0NDLGFBQWEsRUFBRWhELE1BQU0sQ0FBRVMsSUFBSSxDQUFDdUMsYUFBYSxJQUFJdEMsQ0FBRTtVQUNoRCxDQUFFLENBQUUsQ0FBQztRQUNOLENBQUMsQ0FBQyxPQUFRdUMsRUFBRSxFQUFHO1VBQ2R0RCxDQUFDLENBQUN3QixLQUFLLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxHQUFJdEIsQ0FBQyxHQUFHLG1CQUFtQixFQUFFa0QsRUFBRyxDQUFDO1VBQ3BEakIsRUFBRSxDQUFDWSxTQUFTLEdBQUcsNERBQTRELEdBQUd0QyxDQUFDLEdBQUcsaUJBQWlCO1VBQ25HO1FBQ0Q7UUFFQTBCLEVBQUUsQ0FBQ2tCLE9BQU8sQ0FBQ3pCLElBQUksR0FBRzFCLENBQUM7UUFDbkJpQyxFQUFFLENBQUNrQixPQUFPLENBQUN4QixXQUFXLEdBQUdTLFlBQVksQ0FBQ1QsV0FBVyxJQUFJLElBQUksR0FBRzFCLE1BQU0sQ0FBRW1DLFlBQVksQ0FBQ1QsV0FBWSxDQUFDLEdBQUcsRUFBRTtRQUNuR00sRUFBRSxDQUFDa0IsT0FBTyxDQUFDdkIsT0FBTyxHQUFHQSxPQUFPO1FBQzVCSyxFQUFFLENBQUNrQixPQUFPLENBQUN0QixRQUFRLEdBQUdBLFFBQVE7UUFDOUJJLEVBQUUsQ0FBQ2tCLE9BQU8sQ0FBQ3JCLElBQUksR0FBR00sWUFBWSxDQUFDTixJQUFJLElBQUksSUFBSSxHQUFHN0IsTUFBTSxDQUFFbUMsWUFBWSxDQUFDTixJQUFLLENBQUMsR0FBRyxFQUFFO1FBQzlFRyxFQUFFLENBQUNtQixZQUFZLENBQUUsWUFBWSxFQUFFaEIsWUFBWSxDQUFDVCxXQUFXLElBQUksSUFBSSxHQUFHMUIsTUFBTSxDQUFFbUMsWUFBWSxDQUFDVCxXQUFZLENBQUMsR0FBRyxFQUFHLENBQUM7UUFDM0dkLElBQUksQ0FBQ3dDLEVBQUUsRUFBRUMsZ0JBQWdCLEVBQUVDLE1BQU0sR0FBSXBCLEdBQUcsRUFBRXFCLE9BQU8sRUFBRXZCLEVBQUcsQ0FBQztNQUN4RDtNQUVBLE9BQU93QixhQUFhQSxDQUFFdkIsSUFBSSxFQUFFRCxFQUFFLEVBQUVFLEdBQUcsRUFBRztRQUNyQyxLQUFLLENBQUNzQixhQUFhLEdBQUl2QixJQUFJLEVBQUVELEVBQUUsRUFBRUUsR0FBSSxDQUFDO01BQ3ZDO0lBQ0Q7SUFFQSxJQUFJO01BQ0hwQixRQUFRLENBQUNJLFFBQVEsQ0FBRW5CLENBQUMsRUFBRXVCLGtCQUFtQixDQUFDO0lBQzNDLENBQUMsQ0FBQyxPQUFRMkIsRUFBRSxFQUFHO01BQ2R0RCxDQUFDLENBQUN3QixLQUFLLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxHQUFJLGlCQUFpQixHQUFHdEIsQ0FBQyxHQUFHLFdBQVcsRUFBRWtELEVBQUcsQ0FBQztJQUNqRTtJQUVBLFNBQVNRLDhCQUE4QkEsQ0FBQSxFQUFHO01BQ3pDLElBQUlDLFFBQVEsR0FBRy9ELENBQUMsQ0FBQ2dFLGlCQUFpQjtNQUNsQyxJQUFLLENBQUVELFFBQVEsSUFBSSxPQUFPQSxRQUFRLENBQUN4QyxRQUFRLEtBQUssVUFBVSxFQUFHO1FBQzVEO01BQ0Q7TUFDQSxJQUFLLE9BQU93QyxRQUFRLENBQUNFLFlBQVksS0FBSyxVQUFVLElBQUlGLFFBQVEsQ0FBQ0UsWUFBWSxDQUFFN0QsQ0FBRSxDQUFDLEVBQUc7UUFDaEY7TUFDRDtNQUVBLElBQUlzQyxDQUFDLEdBQUd6QixJQUFJLENBQUMwQixpQkFBaUIsSUFBSSxDQUFDLENBQUM7TUFDcEMsSUFBSXVCLFFBQVEsR0FBR3hCLENBQUMsQ0FBQ3lCLFdBQVcsSUFBSSxVQUFXQyxLQUFLLEVBQUc7UUFDbEQsT0FBTy9ELE1BQU0sQ0FBRStELEtBQU0sQ0FBQyxDQUFDQyxPQUFPLENBQUUsSUFBSSxFQUFFLE9BQVEsQ0FBQyxDQUFDQSxPQUFPLENBQUUsSUFBSSxFQUFFLE1BQU8sQ0FBQyxDQUFDQSxPQUFPLENBQUUsSUFBSSxFQUFFLE1BQU8sQ0FBQyxDQUFDQSxPQUFPLENBQUUsSUFBSSxFQUFFLFFBQVMsQ0FBQyxDQUFDQSxPQUFPLENBQUUsSUFBSSxFQUFFLFFBQVMsQ0FBQztNQUNwSixDQUFDO01BQ0QsSUFBSXpCLGdCQUFnQixHQUFHRixDQUFDLENBQUNFLGdCQUFnQixJQUFJLFVBQVd3QixLQUFLLEVBQUc7UUFBRSxPQUFPL0QsTUFBTSxDQUFFK0QsS0FBSyxJQUFJLEVBQUcsQ0FBQztNQUFFLENBQUM7TUFDakcsSUFBSXZCLHNCQUFzQixHQUFHSCxDQUFDLENBQUNHLHNCQUFzQixJQUFJLFVBQVd1QixLQUFLLEVBQUc7UUFBRSxPQUFPL0QsTUFBTSxDQUFFK0QsS0FBSyxJQUFJLEVBQUcsQ0FBQztNQUFFLENBQUM7TUFFN0dMLFFBQVEsQ0FBQ3hDLFFBQVEsQ0FBRW5CLENBQUMsRUFBRSxVQUFXa0UsS0FBSyxFQUFFQyxJQUFJLEVBQUc7UUFDOUMsSUFBSXhDLFdBQVcsR0FBS3VDLEtBQUssSUFBSSxPQUFPQSxLQUFLLENBQUN2QyxXQUFXLEtBQUssUUFBUSxHQUFLdUMsS0FBSyxDQUFDdkMsV0FBVyxDQUFDeUMsSUFBSSxDQUFDLENBQUMsR0FBRy9ELENBQUM7UUFDbkcsSUFBSXVCLE9BQU8sR0FBR3NDLEtBQUssSUFBSUEsS0FBSyxDQUFDdEMsT0FBTyxHQUFHWSxnQkFBZ0IsQ0FBRTBCLEtBQUssQ0FBQ3RDLE9BQVEsQ0FBQyxHQUFHLEVBQUU7UUFDN0UsSUFBSUMsUUFBUSxHQUFHcUMsS0FBSyxJQUFJQSxLQUFLLENBQUNyQyxRQUFRLEdBQUdZLHNCQUFzQixDQUFFeUIsS0FBSyxDQUFDckMsUUFBUyxDQUFDLEdBQUcsRUFBRTtRQUN0RixJQUFJd0MsU0FBUyxHQUFHLEVBQUU7UUFDbEIsSUFBSUMsS0FBSyxHQUFHLEVBQUU7UUFFZCxJQUFLM0MsV0FBVyxFQUFHO1VBQ2xCMEMsU0FBUyxJQUFJUCxRQUFRLENBQUVuQyxXQUFZLENBQUMsR0FBRyxRQUFRO1FBQ2hEO1FBQ0EwQyxTQUFTLElBQUksV0FBVyxHQUFHbEUsQ0FBQyxHQUFHLFlBQVk7UUFDM0MsSUFBS3lCLE9BQU8sRUFBRztVQUNkMEMsS0FBSyxJQUFJLE9BQU8sR0FBR1IsUUFBUSxDQUFFbEMsT0FBUSxDQUFDLEdBQUcsR0FBRztRQUM3QztRQUNBLElBQUtDLFFBQVEsRUFBRztVQUNmeUMsS0FBSyxJQUFJLFVBQVUsR0FBR1IsUUFBUSxDQUFFakMsUUFBUyxDQUFDLEdBQUcsR0FBRztRQUNqRDtRQUNBLElBQUt5QyxLQUFLLEVBQUc7VUFDWkQsU0FBUyxHQUFHLE9BQU8sR0FBR0MsS0FBSyxHQUFHLEdBQUcsR0FBR0QsU0FBUyxHQUFHLFNBQVM7UUFDMUQ7UUFDQUYsSUFBSSxDQUFFRSxTQUFVLENBQUM7TUFDbEIsQ0FBRSxDQUFDO0lBQ0o7SUFFQSxJQUFLekUsQ0FBQyxDQUFDZ0UsaUJBQWlCLElBQUksT0FBT2hFLENBQUMsQ0FBQ2dFLGlCQUFpQixDQUFDekMsUUFBUSxLQUFLLFVBQVUsRUFBRztNQUNoRnVDLDhCQUE4QixDQUFDLENBQUM7SUFDakMsQ0FBQyxNQUFNO01BQ043RCxDQUFDLENBQUMwRSxnQkFBZ0IsQ0FBRSx5QkFBeUIsRUFBRWIsOEJBQThCLEVBQUU7UUFBRWMsSUFBSSxFQUFFO01BQUssQ0FBRSxDQUFDO0lBQ2hHO0lBRUEsU0FBU0MsOEJBQThCQSxDQUFBLEVBQUc7TUFDekMsSUFBSUMsZ0JBQWdCLEdBQUc5RSxDQUFDLENBQUMrRSx3QkFBd0I7TUFDakQsSUFBSyxDQUFFRCxnQkFBZ0IsSUFBSSxPQUFPQSxnQkFBZ0IsQ0FBQ3ZELFFBQVEsS0FBSyxVQUFVLEVBQUc7UUFDNUU7TUFDRDtNQUNBLElBQUssT0FBT3VELGdCQUFnQixDQUFDYixZQUFZLEtBQUssVUFBVSxJQUFJYSxnQkFBZ0IsQ0FBQ2IsWUFBWSxDQUFFN0QsQ0FBRSxDQUFDLEVBQUc7UUFDaEc7TUFDRDtNQUVBMEUsZ0JBQWdCLENBQUN2RCxRQUFRLENBQUVuQixDQUFDLEVBQUUsVUFBV2tFLEtBQUssRUFBRUMsSUFBSSxFQUFFUyxNQUFNLEVBQUc7UUFDOURBLE1BQU0sR0FBR0EsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJQyxVQUFVLEdBQUdELE1BQU0sQ0FBQzdFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSStFLFNBQVMsR0FBS1osS0FBSyxJQUFJLE9BQU9BLEtBQUssQ0FBQ3ZDLFdBQVcsS0FBSyxRQUFRLEdBQUt1QyxLQUFLLENBQUN2QyxXQUFXLENBQUN5QyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7UUFDbEcsSUFBSTVELEtBQUssR0FBR3NFLFNBQVMsQ0FBQ2IsT0FBTyxDQUFFLFVBQVUsRUFBRSxFQUFHLENBQUMsSUFBSTFELENBQUM7UUFFcEQsSUFBSyxPQUFPbUUsZ0JBQWdCLENBQUNLLG9CQUFvQixLQUFLLFVBQVUsRUFBRztVQUNsRTtVQUNBO1VBQ0E7UUFDRDtRQUNBO1FBQ0E7TUFDRCxDQUFFLENBQUM7SUFDSjtJQUVBLElBQUtuRixDQUFDLENBQUMrRSx3QkFBd0IsSUFBSSxPQUFPL0UsQ0FBQyxDQUFDK0Usd0JBQXdCLENBQUN4RCxRQUFRLEtBQUssVUFBVSxFQUFHO01BQzlGc0QsOEJBQThCLENBQUMsQ0FBQztJQUNqQyxDQUFDLE1BQU07TUFDTjVFLENBQUMsQ0FBQzBFLGdCQUFnQixDQUFFLGlDQUFpQyxFQUFFRSw4QkFBOEIsRUFBRTtRQUFFRCxJQUFJLEVBQUU7TUFBSyxDQUFFLENBQUM7SUFDeEc7RUFDRCxDQUFDO0FBQ0YsQ0FBQyxFQUFHUSxNQUFNLEVBQUVDLFFBQVMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ== |
| 163 |
|