diff --git a/Resources/Private/Assets/JavaScript/main.js b/Resources/Private/Assets/JavaScript/main.js
index 864b749..a64359e 100755
--- a/Resources/Private/Assets/JavaScript/main.js
+++ b/Resources/Private/Assets/JavaScript/main.js
@@ -21,9 +21,9 @@ window.initAjaxForm = function() {
var presetName = $(ajaxForm).attr('data-preset-name');
var dimension = $(ajaxForm).attr('data-dimension');
- var formAjaxUrl = location.protocol + '//' + location.host + '/form/' + ( dimension != '' ? dimension + '/' : '' ) + presetName + '/' + formIdentifier;
+ var formAjaxUrl = location.protocol + '//' + location.host + '/form/' + ( dimension != '' ? dimension + '/' : 'en/' ) + presetName + '/' + formIdentifier;
- $(ajaxForm).on('submit', 'form', function (e) {
+ $(ajaxForm).off('submit').on('submit', 'form', function (e) {
var formObj = $(this);
var formURL = formObj.attr('action');
diff --git a/Resources/Public/JavaScript/backend.min.js b/Resources/Public/JavaScript/backend.min.js
index 984afbd..6c7357e 100644
--- a/Resources/Public/JavaScript/backend.min.js
+++ b/Resources/Public/JavaScript/backend.min.js
@@ -1,2 +1,2 @@
"function"==typeof document.addEventListener&&document.addEventListener("Neos.PageLoaded",function(e){initAjaxForm()});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhY2tlbmQuanMiXSwibmFtZXMiOlsiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiZXZlbnQiLCJpbml0QWpheEZvcm0iXSwibWFwcGluZ3MiOiJBQUFBLGtCQUFBQSxVQUFBQyxrQkFFQUQsU0FBQUMsaUJBQUEsa0JBQUEsU0FBQUMsR0FFQUMiLCJmaWxlIjoiYmFja2VuZC5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpZiAodHlwZW9mIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ05lb3MuUGFnZUxvYWRlZCcsIGZ1bmN0aW9uKGV2ZW50KSB7XG5cbiAgICAgICAgaW5pdEFqYXhGb3JtKCk7XG5cbiAgICB9KTtcblxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
+//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhY2tlbmQuanMiXSwibmFtZXMiOlsiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiZXZlbnQiLCJpbml0QWpheEZvcm0iXSwibWFwcGluZ3MiOiJBQUFBLGtCQUFBQSxVQUFBQyxrQkFFQUQsU0FBQUMsaUJBQUEsa0JBQUEsU0FBQUMsR0FFQUMiLCJmaWxlIjoiYmFja2VuZC5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpZiAodHlwZW9mIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ05lb3MuUGFnZUxvYWRlZCcsIGZ1bmN0aW9uKGV2ZW50KSB7XG5cbiAgICAgICAgaW5pdEFqYXhGb3JtKCk7XG5cbiAgICB9KTtcblxufVxuIl19
diff --git a/Resources/Public/JavaScript/main.js b/Resources/Public/JavaScript/main.js
index 864b749..a64359e 100755
--- a/Resources/Public/JavaScript/main.js
+++ b/Resources/Public/JavaScript/main.js
@@ -21,9 +21,9 @@ window.initAjaxForm = function() {
var presetName = $(ajaxForm).attr('data-preset-name');
var dimension = $(ajaxForm).attr('data-dimension');
- var formAjaxUrl = location.protocol + '//' + location.host + '/form/' + ( dimension != '' ? dimension + '/' : '' ) + presetName + '/' + formIdentifier;
+ var formAjaxUrl = location.protocol + '//' + location.host + '/form/' + ( dimension != '' ? dimension + '/' : 'en/' ) + presetName + '/' + formIdentifier;
- $(ajaxForm).on('submit', 'form', function (e) {
+ $(ajaxForm).off('submit').on('submit', 'form', function (e) {
var formObj = $(this);
var formURL = formObj.attr('action');
diff --git a/Resources/Public/JavaScript/main.min.js b/Resources/Public/JavaScript/main.min.js
index f068f5e..3aad43a 100755
--- a/Resources/Public/JavaScript/main.min.js
+++ b/Resources/Public/JavaScript/main.min.js
@@ -1,2 +1,2 @@
-$(document).ready(function(){initAjaxForm()}),window.initButtonClickHandler=function(){$('.ajax-form button[type="submit"]').on("click",function(){$('.ajax-form button[type="submit"]').removeAttr("clicked"),$(this).attr("clicked","true")})},window.initAjaxForm=function(){$.each($(".ajax-form"),function(t,a){var n=$(a).attr("data-identifier"),e=$(a).attr("data-preset-name"),i=$(a).attr("data-dimension"),c=location.protocol+"//"+location.host+"/form/"+(""!=i?i+"/":"")+e+"/"+n;$(a).on("submit","form",function(t){var n=$(this),e=n.attr("action"),i=new FormData(this),c=$(this).find('button[clicked="true"]');i.append($(c).attr("name"),$(c).attr("value")),$.ajax({url:e,type:"POST",data:i,mimeType:"multipart/form-data",contentType:!1,cache:!1,processData:!1,beforeSend:function(){$(a).find(".ajax-content").replaceWith('')},success:function(t){if($(a).find(".ajax-content").replaceWith(t),initButtonClickHandler(),$(a).find(".g-recaptcha").length){var n=$(a).find(".g-recaptcha"),e=n.data("sitekey");grecaptcha.render(n[0],{sitekey:e})}}}),t.preventDefault()}),$(a).load(c+" .ajax-content",function(){if(initButtonClickHandler(),$(this).css("min-height",$(this).css("height")),$(this).find(".g-recaptcha").length){var t=$(this).find(".g-recaptcha"),a=t.data("sitekey");grecaptcha.render(t[0],{sitekey:a})}})})};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsiJCIsImRvY3VtZW50IiwicmVhZHkiLCJpbml0QWpheEZvcm0iLCJ3aW5kb3ciLCJpbml0QnV0dG9uQ2xpY2tIYW5kbGVyIiwib24iLCJyZW1vdmVBdHRyIiwidGhpcyIsImF0dHIiLCJlYWNoIiwiaWR4IiwiYWpheEZvcm0iLCJmb3JtSWRlbnRpZmllciIsInByZXNldE5hbWUiLCJkaW1lbnNpb24iLCJmb3JtQWpheFVybCIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0IiwiZSIsImZvcm1PYmoiLCJmb3JtVVJMIiwiZm9ybURhdGEiLCJGb3JtRGF0YSIsInRyaWdnZXIiLCJmaW5kIiwiYXBwZW5kIiwiYWpheCIsInVybCIsInR5cGUiLCJkYXRhIiwibWltZVR5cGUiLCJjb250ZW50VHlwZSIsImNhY2hlIiwicHJvY2Vzc0RhdGEiLCJiZWZvcmVTZW5kIiwicmVwbGFjZVdpdGgiLCJzdWNjZXNzIiwibGVuZ3RoIiwiY2FwdGNoYSIsInNpdGVrZXkiLCJncmVjYXB0Y2hhIiwicmVuZGVyIiwicHJldmVudERlZmF1bHQiLCJsb2FkIiwiY3NzIl0sIm1hcHBpbmdzIjoiQUFBQUEsRUFBQUMsVUFBQUMsTUFBQSxXQUVBQyxpQkFJQUMsT0FBQUMsdUJBQUEsV0FFQUwsRUFBQSxvQ0FBQU0sR0FBQSxRQUFBLFdBQ0FOLEVBQUEsb0NBQUFPLFdBQUEsV0FDQVAsRUFBQVEsTUFBQUMsS0FBQSxVQUFBLFdBS0FMLE9BQUFELGFBQUEsV0FFQUgsRUFBQVUsS0FBQVYsRUFBQSxjQUFBLFNBQUFXLEVBQUFDLEdBRUEsR0FBQUMsR0FBQWIsRUFBQVksR0FBQUgsS0FBQSxtQkFDQUssRUFBQWQsRUFBQVksR0FBQUgsS0FBQSxvQkFDQU0sRUFBQWYsRUFBQVksR0FBQUgsS0FBQSxrQkFFQU8sRUFBQUMsU0FBQUMsU0FBQSxLQUFBRCxTQUFBRSxLQUFBLFVBQUEsSUFBQUosRUFBQUEsRUFBQSxJQUFBLElBQUFELEVBQUEsSUFBQUQsQ0FFQWIsR0FBQVksR0FBQU4sR0FBQSxTQUFBLE9BQUEsU0FBQWMsR0FFQSxHQUFBQyxHQUFBckIsRUFBQVEsTUFDQWMsRUFBQUQsRUFBQVosS0FBQSxVQUNBYyxFQUFBLEdBQUFDLFVBQUFoQixNQUVBaUIsRUFBQXpCLEVBQUFRLE1BQUFrQixLQUFBLHlCQUVBSCxHQUFBSSxPQUFBM0IsRUFBQXlCLEdBQUFoQixLQUFBLFFBQUFULEVBQUF5QixHQUFBaEIsS0FBQSxVQUVBVCxFQUFBNEIsTUFFQUMsSUFBQVAsRUFDQVEsS0FBQSxPQUNBQyxLQUFBUixFQUNBUyxTQUFBLHNCQUNBQyxhQUFBLEVBQ0FDLE9BQUEsRUFDQUMsYUFBQSxFQUNBQyxXQUFBLFdBRUFwQyxFQUFBWSxHQUFBYyxLQUFBLGlCQUFBVyxZQUFBLHlEQUdBQyxRQUFBLFNBQUFQLEdBTUEsR0FKQS9CLEVBQUFZLEdBQUFjLEtBQUEsaUJBQUFXLFlBQUFOLEdBRUExQix5QkFFQUwsRUFBQVksR0FBQWMsS0FBQSxnQkFBQWEsT0FBQSxDQUNBLEdBQUFDLEdBQUF4QyxFQUFBWSxHQUFBYyxLQUFBLGdCQUNBZSxFQUFBRCxFQUFBVCxLQUFBLFVBQ0FXLFlBQUFDLE9BQUFILEVBQUEsSUFBQUMsUUFBQUEsUUFPQXJCLEVBQUF3QixtQkFJQTVDLEVBQUFZLEdBQUFpQyxLQUFBN0IsRUFBQSxpQkFBQSxXQU1BLEdBSkFYLHlCQUVBTCxFQUFBUSxNQUFBc0MsSUFBQSxhQUFBOUMsRUFBQVEsTUFBQXNDLElBQUEsV0FFQTlDLEVBQUFRLE1BQUFrQixLQUFBLGdCQUFBYSxPQUFBLENBQ0EsR0FBQUMsR0FBQXhDLEVBQUFRLE1BQUFrQixLQUFBLGdCQUNBZSxFQUFBRCxFQUFBVCxLQUFBLFVBQ0FXLFlBQUFDLE9BQUFILEVBQUEsSUFBQUMsUUFBQUEiLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcblxuICAgIGluaXRBamF4Rm9ybSgpO1xuXG59KTtcblxud2luZG93LmluaXRCdXR0b25DbGlja0hhbmRsZXIgPSBmdW5jdGlvbigpIHtcblxuICAgICQoJy5hamF4LWZvcm0gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgJCgnLmFqYXgtZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXScpLnJlbW92ZUF0dHIoJ2NsaWNrZWQnKTtcbiAgICAgICAgJCh0aGlzKS5hdHRyKCdjbGlja2VkJywgJ3RydWUnKTtcbiAgICB9KTtcblxufVxuXG53aW5kb3cuaW5pdEFqYXhGb3JtID0gZnVuY3Rpb24oKSB7XG5cbiAgICAkLmVhY2goJCgnLmFqYXgtZm9ybScpLCBmdW5jdGlvbiAoaWR4LCBhamF4Rm9ybSkge1xuXG4gICAgICAgIHZhciBmb3JtSWRlbnRpZmllciA9ICQoYWpheEZvcm0pLmF0dHIoJ2RhdGEtaWRlbnRpZmllcicpO1xuICAgICAgICB2YXIgcHJlc2V0TmFtZSA9ICQoYWpheEZvcm0pLmF0dHIoJ2RhdGEtcHJlc2V0LW5hbWUnKTtcbiAgICAgICAgdmFyIGRpbWVuc2lvbiA9ICQoYWpheEZvcm0pLmF0dHIoJ2RhdGEtZGltZW5zaW9uJyk7XG5cbiAgICAgICAgdmFyIGZvcm1BamF4VXJsID0gbG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgbG9jYXRpb24uaG9zdCArICcvZm9ybS8nICArICggZGltZW5zaW9uICE9ICcnID8gZGltZW5zaW9uICsgJy8nIDogJycgKSArIHByZXNldE5hbWUgKyAnLycgKyBmb3JtSWRlbnRpZmllcjtcblxuICAgICAgICAkKGFqYXhGb3JtKS5vbignc3VibWl0JywgJ2Zvcm0nLCBmdW5jdGlvbiAoZSkge1xuXG4gICAgICAgICAgICB2YXIgZm9ybU9iaiA9ICQodGhpcyk7XG4gICAgICAgICAgICB2YXIgZm9ybVVSTCA9IGZvcm1PYmouYXR0cignYWN0aW9uJyk7XG4gICAgICAgICAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEodGhpcyk7XG5cbiAgICAgICAgICAgIHZhciB0cmlnZ2VyID0gJCh0aGlzKS5maW5kKCdidXR0b25bY2xpY2tlZD1cInRydWVcIl0nKTtcblxuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCQodHJpZ2dlcikuYXR0cignbmFtZScpLCAkKHRyaWdnZXIpLmF0dHIoJ3ZhbHVlJykpO1xuXG4gICAgICAgICAgICAkLmFqYXgoe1xuXG4gICAgICAgICAgICAgICAgdXJsOiBmb3JtVVJMLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBmb3JtRGF0YSxcbiAgICAgICAgICAgICAgICBtaW1lVHlwZTogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjYWNoZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0RhdGE6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJlZm9yZVNlbmQ6IGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgICAgICAkKGFqYXhGb3JtKS5maW5kKCcuYWpheC1jb250ZW50JykucmVwbGFjZVdpdGgoJzxpIGNsYXNzPVwiIGFqYXgtY29udGVudCBmYSBmYS1zcGlubmVyIGZhLXB1bHNlXCI+PC9pPicpO1xuXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoZGF0YSkge1xuXG4gICAgICAgICAgICAgICAgICAgICQoYWpheEZvcm0pLmZpbmQoJy5hamF4LWNvbnRlbnQnKS5yZXBsYWNlV2l0aChkYXRhKTtcblxuICAgICAgICAgICAgICAgICAgICBpbml0QnV0dG9uQ2xpY2tIYW5kbGVyKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCQoYWpheEZvcm0pLmZpbmQoJy5nLXJlY2FwdGNoYScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgIHZhciBjYXB0Y2hhID0gJChhamF4Rm9ybSkuZmluZCgnLmctcmVjYXB0Y2hhJyk7XG4gICAgICAgICAgICAgICAgICAgICAgdmFyIHNpdGVrZXkgPSBjYXB0Y2hhLmRhdGEoJ3NpdGVrZXknKTtcbiAgICAgICAgICAgICAgICAgICAgICBncmVjYXB0Y2hhLnJlbmRlcihjYXB0Y2hhWzBdLCB7XCJzaXRla2V5XCI6IHNpdGVrZXl9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIH0pO1xuXG4gICAgICAgICQoYWpheEZvcm0pLmxvYWQoZm9ybUFqYXhVcmwgKyAnIC5hamF4LWNvbnRlbnQnLCBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgIGluaXRCdXR0b25DbGlja0hhbmRsZXIoKTtcblxuICAgICAgICAgICAgJCh0aGlzKS5jc3MoXCJtaW4taGVpZ2h0XCIsICQodGhpcykuY3NzKFwiaGVpZ2h0XCIpKTtcblxuICAgICAgICAgICAgaWYgKCQodGhpcykuZmluZCgnLmctcmVjYXB0Y2hhJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHZhciBjYXB0Y2hhID0gJCh0aGlzKS5maW5kKCcuZy1yZWNhcHRjaGEnKTtcbiAgICAgICAgICAgICAgdmFyIHNpdGVrZXkgPSBjYXB0Y2hhLmRhdGEoJ3NpdGVrZXknKTtcbiAgICAgICAgICAgICAgZ3JlY2FwdGNoYS5yZW5kZXIoY2FwdGNoYVswXSwge1wic2l0ZWtleVwiOiBzaXRla2V5fSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSk7XG5cbiAgICB9KTtcblxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
+$(document).ready(function(){initAjaxForm()}),window.initButtonClickHandler=function(){$('.ajax-form button[type="submit"]').on("click",function(){$('.ajax-form button[type="submit"]').removeAttr("clicked"),$(this).attr("clicked","true")})},window.initAjaxForm=function(){$.each($(".ajax-form"),function(t,a){var n=$(a).attr("data-identifier"),e=$(a).attr("data-preset-name"),i=$(a).attr("data-dimension"),c=location.protocol+"//"+location.host+"/form/"+(""!=i?i+"/":"en/")+e+"/"+n;$(a).off("submit").on("submit","form",function(t){var n=$(this),e=n.attr("action"),i=new FormData(this),c=$(this).find('button[clicked="true"]');i.append($(c).attr("name"),$(c).attr("value")),$.ajax({url:e,type:"POST",data:i,mimeType:"multipart/form-data",contentType:!1,cache:!1,processData:!1,beforeSend:function(){$(a).find(".ajax-content").replaceWith('')},success:function(t){if($(a).find(".ajax-content").replaceWith(t),initButtonClickHandler(),$(a).find(".g-recaptcha").length){var n=$(a).find(".g-recaptcha"),e=n.data("sitekey");grecaptcha.render(n[0],{sitekey:e})}}}),t.preventDefault()}),$(a).load(c+" .ajax-content",function(){if(initButtonClickHandler(),$(this).css("min-height",$(this).css("height")),$(this).find(".g-recaptcha").length){var t=$(this).find(".g-recaptcha"),a=t.data("sitekey");grecaptcha.render(t[0],{sitekey:a})}})})};
+//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsiJCIsImRvY3VtZW50IiwicmVhZHkiLCJpbml0QWpheEZvcm0iLCJ3aW5kb3ciLCJpbml0QnV0dG9uQ2xpY2tIYW5kbGVyIiwib24iLCJyZW1vdmVBdHRyIiwidGhpcyIsImF0dHIiLCJlYWNoIiwiaWR4IiwiYWpheEZvcm0iLCJmb3JtSWRlbnRpZmllciIsInByZXNldE5hbWUiLCJkaW1lbnNpb24iLCJmb3JtQWpheFVybCIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0Iiwib2ZmIiwiZSIsImZvcm1PYmoiLCJmb3JtVVJMIiwiZm9ybURhdGEiLCJGb3JtRGF0YSIsInRyaWdnZXIiLCJmaW5kIiwiYXBwZW5kIiwiYWpheCIsInVybCIsInR5cGUiLCJkYXRhIiwibWltZVR5cGUiLCJjb250ZW50VHlwZSIsImNhY2hlIiwicHJvY2Vzc0RhdGEiLCJiZWZvcmVTZW5kIiwicmVwbGFjZVdpdGgiLCJzdWNjZXNzIiwibGVuZ3RoIiwiY2FwdGNoYSIsInNpdGVrZXkiLCJncmVjYXB0Y2hhIiwicmVuZGVyIiwicHJldmVudERlZmF1bHQiLCJsb2FkIiwiY3NzIl0sIm1hcHBpbmdzIjoiQUFBQUEsRUFBQUMsVUFBQUMsTUFBQSxXQUVBQyxpQkFJQUMsT0FBQUMsdUJBQUEsV0FFQUwsRUFBQSxvQ0FBQU0sR0FBQSxRQUFBLFdBQ0FOLEVBQUEsb0NBQUFPLFdBQUEsV0FDQVAsRUFBQVEsTUFBQUMsS0FBQSxVQUFBLFdBS0FMLE9BQUFELGFBQUEsV0FFQUgsRUFBQVUsS0FBQVYsRUFBQSxjQUFBLFNBQUFXLEVBQUFDLEdBRUEsR0FBQUMsR0FBQWIsRUFBQVksR0FBQUgsS0FBQSxtQkFDQUssRUFBQWQsRUFBQVksR0FBQUgsS0FBQSxvQkFDQU0sRUFBQWYsRUFBQVksR0FBQUgsS0FBQSxrQkFFQU8sRUFBQUMsU0FBQUMsU0FBQSxLQUFBRCxTQUFBRSxLQUFBLFVBQUEsSUFBQUosRUFBQUEsRUFBQSxJQUFBLE9BQUFELEVBQUEsSUFBQUQsQ0FFQWIsR0FBQVksR0FBQVEsSUFBQSxVQUFBZCxHQUFBLFNBQUEsT0FBQSxTQUFBZSxHQUVBLEdBQUFDLEdBQUF0QixFQUFBUSxNQUNBZSxFQUFBRCxFQUFBYixLQUFBLFVBQ0FlLEVBQUEsR0FBQUMsVUFBQWpCLE1BRUFrQixFQUFBMUIsRUFBQVEsTUFBQW1CLEtBQUEseUJBRUFILEdBQUFJLE9BQUE1QixFQUFBMEIsR0FBQWpCLEtBQUEsUUFBQVQsRUFBQTBCLEdBQUFqQixLQUFBLFVBRUFULEVBQUE2QixNQUVBQyxJQUFBUCxFQUNBUSxLQUFBLE9BQ0FDLEtBQUFSLEVBQ0FTLFNBQUEsc0JBQ0FDLGFBQUEsRUFDQUMsT0FBQSxFQUNBQyxhQUFBLEVBQ0FDLFdBQUEsV0FFQXJDLEVBQUFZLEdBQUFlLEtBQUEsaUJBQUFXLFlBQUEseURBR0FDLFFBQUEsU0FBQVAsR0FNQSxHQUpBaEMsRUFBQVksR0FBQWUsS0FBQSxpQkFBQVcsWUFBQU4sR0FFQTNCLHlCQUVBTCxFQUFBWSxHQUFBZSxLQUFBLGdCQUFBYSxPQUFBLENBQ0EsR0FBQUMsR0FBQXpDLEVBQUFZLEdBQUFlLEtBQUEsZ0JBQ0FlLEVBQUFELEVBQUFULEtBQUEsVUFDQVcsWUFBQUMsT0FBQUgsRUFBQSxJQUFBQyxRQUFBQSxRQU9BckIsRUFBQXdCLG1CQUlBN0MsRUFBQVksR0FBQWtDLEtBQUE5QixFQUFBLGlCQUFBLFdBTUEsR0FKQVgseUJBRUFMLEVBQUFRLE1BQUF1QyxJQUFBLGFBQUEvQyxFQUFBUSxNQUFBdUMsSUFBQSxXQUVBL0MsRUFBQVEsTUFBQW1CLEtBQUEsZ0JBQUFhLE9BQUEsQ0FDQSxHQUFBQyxHQUFBekMsRUFBQVEsTUFBQW1CLEtBQUEsZ0JBQ0FlLEVBQUFELEVBQUFULEtBQUEsVUFDQVcsWUFBQUMsT0FBQUgsRUFBQSxJQUFBQyxRQUFBQSIsImZpbGUiOiJtYWluLm1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xuXG4gICAgaW5pdEFqYXhGb3JtKCk7XG5cbn0pO1xuXG53aW5kb3cuaW5pdEJ1dHRvbkNsaWNrSGFuZGxlciA9IGZ1bmN0aW9uKCkge1xuXG4gICAgJCgnLmFqYXgtZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAkKCcuYWpheC1mb3JtIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdJykucmVtb3ZlQXR0cignY2xpY2tlZCcpO1xuICAgICAgICAkKHRoaXMpLmF0dHIoJ2NsaWNrZWQnLCAndHJ1ZScpO1xuICAgIH0pO1xuXG59XG5cbndpbmRvdy5pbml0QWpheEZvcm0gPSBmdW5jdGlvbigpIHtcblxuICAgICQuZWFjaCgkKCcuYWpheC1mb3JtJyksIGZ1bmN0aW9uIChpZHgsIGFqYXhGb3JtKSB7XG5cbiAgICAgICAgdmFyIGZvcm1JZGVudGlmaWVyID0gJChhamF4Rm9ybSkuYXR0cignZGF0YS1pZGVudGlmaWVyJyk7XG4gICAgICAgIHZhciBwcmVzZXROYW1lID0gJChhamF4Rm9ybSkuYXR0cignZGF0YS1wcmVzZXQtbmFtZScpO1xuICAgICAgICB2YXIgZGltZW5zaW9uID0gJChhamF4Rm9ybSkuYXR0cignZGF0YS1kaW1lbnNpb24nKTtcblxuICAgICAgICB2YXIgZm9ybUFqYXhVcmwgPSBsb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyBsb2NhdGlvbi5ob3N0ICsgJy9mb3JtLycgICsgKCBkaW1lbnNpb24gIT0gJycgPyBkaW1lbnNpb24gKyAnLycgOiAnZW4vJyApICsgcHJlc2V0TmFtZSArICcvJyArIGZvcm1JZGVudGlmaWVyO1xuXG4gICAgICAgICQoYWpheEZvcm0pLm9mZignc3VibWl0Jykub24oJ3N1Ym1pdCcsICdmb3JtJywgZnVuY3Rpb24gKGUpIHtcblxuICAgICAgICAgICAgdmFyIGZvcm1PYmogPSAkKHRoaXMpO1xuICAgICAgICAgICAgdmFyIGZvcm1VUkwgPSBmb3JtT2JqLmF0dHIoJ2FjdGlvbicpO1xuICAgICAgICAgICAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKHRoaXMpO1xuXG4gICAgICAgICAgICB2YXIgdHJpZ2dlciA9ICQodGhpcykuZmluZCgnYnV0dG9uW2NsaWNrZWQ9XCJ0cnVlXCJdJyk7XG5cbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgkKHRyaWdnZXIpLmF0dHIoJ25hbWUnKSwgJCh0cmlnZ2VyKS5hdHRyKCd2YWx1ZScpKTtcblxuICAgICAgICAgICAgJC5hamF4KHtcblxuICAgICAgICAgICAgICAgIHVybDogZm9ybVVSTCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgZGF0YTogZm9ybURhdGEsXG4gICAgICAgICAgICAgICAgbWltZVR5cGU6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJyxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY2FjaGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NEYXRhOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBiZWZvcmVTZW5kOiBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgJChhamF4Rm9ybSkuZmluZCgnLmFqYXgtY29udGVudCcpLnJlcGxhY2VXaXRoKCc8aSBjbGFzcz1cIiBhamF4LWNvbnRlbnQgZmEgZmEtc3Bpbm5lciBmYS1wdWxzZVwiPjwvaT4nKTtcblxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGRhdGEpIHtcblxuICAgICAgICAgICAgICAgICAgICAkKGFqYXhGb3JtKS5maW5kKCcuYWpheC1jb250ZW50JykucmVwbGFjZVdpdGgoZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaW5pdEJ1dHRvbkNsaWNrSGFuZGxlcigpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgkKGFqYXhGb3JtKS5maW5kKCcuZy1yZWNhcHRjaGEnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICB2YXIgY2FwdGNoYSA9ICQoYWpheEZvcm0pLmZpbmQoJy5nLXJlY2FwdGNoYScpO1xuICAgICAgICAgICAgICAgICAgICAgIHZhciBzaXRla2V5ID0gY2FwdGNoYS5kYXRhKCdzaXRla2V5Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgZ3JlY2FwdGNoYS5yZW5kZXIoY2FwdGNoYVswXSwge1wic2l0ZWtleVwiOiBzaXRla2V5fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB9KTtcblxuICAgICAgICAkKGFqYXhGb3JtKS5sb2FkKGZvcm1BamF4VXJsICsgJyAuYWpheC1jb250ZW50JywgZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICBpbml0QnV0dG9uQ2xpY2tIYW5kbGVyKCk7XG5cbiAgICAgICAgICAgICQodGhpcykuY3NzKFwibWluLWhlaWdodFwiLCAkKHRoaXMpLmNzcyhcImhlaWdodFwiKSk7XG5cbiAgICAgICAgICAgIGlmICgkKHRoaXMpLmZpbmQoJy5nLXJlY2FwdGNoYScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICB2YXIgY2FwdGNoYSA9ICQodGhpcykuZmluZCgnLmctcmVjYXB0Y2hhJyk7XG4gICAgICAgICAgICAgIHZhciBzaXRla2V5ID0gY2FwdGNoYS5kYXRhKCdzaXRla2V5Jyk7XG4gICAgICAgICAgICAgIGdyZWNhcHRjaGEucmVuZGVyKGNhcHRjaGFbMF0sIHtcInNpdGVrZXlcIjogc2l0ZWtleX0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuXG4gICAgfSk7XG5cbn1cbiJdfQ==