Version Description
Download this release
Release Info
Developer | DvanKooten |
Plugin | MailChimp for WordPress |
Version | 4.1.2 |
Comparing to | |
See all releases |
Code changes from version 4.1.1 to 4.1.2
- CHANGELOG.md +12 -0
- assets/js/admin.js +7 -3
- assets/js/admin.min.js +2 -2
- assets/js/admin.min.js.map +1 -1
- includes/admin/class-admin-ajax.php +0 -1
- includes/admin/class-admin.php +4 -3
- includes/admin/class-ads.php +4 -2
- includes/admin/class-remote-content-block.php +0 -135
- includes/admin/class-usage-tracking.php +2 -2
- includes/admin/migrations/4.1.2-flush-list-cache.php +13 -0
- includes/class-list-data-mapper.php +1 -1
- includes/class-mailchimp.php +106 -103
- includes/class-visitor-tracking.php +0 -100
- includes/forms/class-form-listener.php +4 -2
- includes/forms/class-output-manager.php +1 -0
- includes/forms/functions.php +1 -1
- integrations/ninja-forms/class-action.php +2 -2
- languages/mailchimp-for-wp-da_DK.mo +0 -0
- languages/mailchimp-for-wp-da_DK.po +717 -503
- languages/mailchimp-for-wp-fr_FR.mo +0 -0
- languages/mailchimp-for-wp-fr_FR.po +25 -23
- languages/mailchimp-for-wp-nl_NL.mo +0 -0
- languages/mailchimp-for-wp-nl_NL.po +721 -507
- languages/mailchimp-for-wp-pl_PL.mo +0 -0
- languages/mailchimp-for-wp-pl_PL.po +724 -509
- languages/mailchimp-for-wp-tr_TR.mo +0 -0
- languages/mailchimp-for-wp-tr_TR.po +41 -40
- languages/mailchimp-for-wp.pot +17 -13
- mailchimp-for-wp.php +8 -10
- readme.txt +13 -1
- vendor/autoload_52.php +1 -1
- vendor/composer/autoload_classmap.php +0 -2
- vendor/composer/autoload_real_52.php +3 -3
- vendor/composer/autoload_static.php +0 -2
CHANGELOG.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1 |
Changelog
|
2 |
=========
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
#### 4.1.1 - April 11, 2017
|
5 |
|
6 |
**Fixes**
|
1 |
Changelog
|
2 |
=========
|
3 |
|
4 |
+
#### 4.1.2 - May 8, 2017
|
5 |
+
|
6 |
+
**Fixes**
|
7 |
+
|
8 |
+
- Use earlier hook priority for Ninja Forms 3 integration so action is registered on time.
|
9 |
+
|
10 |
+
**Improvements**
|
11 |
+
|
12 |
+
- Improved MailChimp list fetching & memory usage for accounts with many lists.
|
13 |
+
- Show error message when fetching lists fails.
|
14 |
+
- Updated plugin translations.
|
15 |
+
|
16 |
#### 4.1.1 - April 11, 2017
|
17 |
|
18 |
**Fixes**
|
assets/js/admin.js
CHANGED
@@ -133,7 +133,7 @@ function ListFetcher() {
|
|
133 |
this.done = false;
|
134 |
|
135 |
// start fetching right away when no lists but api key given
|
136 |
-
if (config.mailchimp.api_connected && config.mailchimp.lists.length
|
137 |
this.fetch();
|
138 |
}
|
139 |
}
|
@@ -147,12 +147,16 @@ ListFetcher.prototype.fetch = function (e) {
|
|
147 |
$.post(ajaxurl, {
|
148 |
action: "mc4wp_renew_mailchimp_lists"
|
149 |
}).done(function (data) {
|
|
|
|
|
150 |
if (data) {
|
151 |
window.setTimeout(function () {
|
152 |
window.location.reload();
|
153 |
}, 3000);
|
154 |
}
|
155 |
-
}).
|
|
|
|
|
156 |
this.working = false;
|
157 |
this.done = true;
|
158 |
|
@@ -169,7 +173,7 @@ ListFetcher.prototype.view = function () {
|
|
169 |
value: this.working ? i18n.fetching_mailchimp_lists : i18n.renew_mailchimp_lists,
|
170 |
className: "button",
|
171 |
disabled: !!this.working
|
172 |
-
}), m.trust(' '), this.working ? [m('span.mc4wp-loader', "Loading..."), m.trust(' '), m('em.help', i18n.fetching_mailchimp_lists_can_take_a_while)] : '', this.done ? [m('em.help.green', i18n.fetching_mailchimp_lists_done)] : ''])]);
|
173 |
};
|
174 |
|
175 |
module.exports = ListFetcher;
|
133 |
this.done = false;
|
134 |
|
135 |
// start fetching right away when no lists but api key given
|
136 |
+
if (config.mailchimp.api_connected && config.mailchimp.lists.length === 0) {
|
137 |
this.fetch();
|
138 |
}
|
139 |
}
|
147 |
$.post(ajaxurl, {
|
148 |
action: "mc4wp_renew_mailchimp_lists"
|
149 |
}).done(function (data) {
|
150 |
+
this.success = true;
|
151 |
+
|
152 |
if (data) {
|
153 |
window.setTimeout(function () {
|
154 |
window.location.reload();
|
155 |
}, 3000);
|
156 |
}
|
157 |
+
}.bind(this)).fail(function (data) {
|
158 |
+
this.success = false;
|
159 |
+
}.bind(this)).always(function (data) {
|
160 |
this.working = false;
|
161 |
this.done = true;
|
162 |
|
173 |
value: this.working ? i18n.fetching_mailchimp_lists : i18n.renew_mailchimp_lists,
|
174 |
className: "button",
|
175 |
disabled: !!this.working
|
176 |
+
}), m.trust(' '), this.working ? [m('span.mc4wp-loader', "Loading..."), m.trust(' '), m('em.help', i18n.fetching_mailchimp_lists_can_take_a_while)] : '', this.done ? [this.success ? m('em.help.green', i18n.fetching_mailchimp_lists_done) : m('em.help.red', i18n.fetching_mailchimp_lists_error)] : ''])]);
|
177 |
};
|
178 |
|
179 |
module.exports = ListFetcher;
|
assets/js/admin.min.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
!function(){var e=void 0,t=void 0;!function t(n,r,i){function o(l,s){if(!r[l]){if(!n[l]){var u="function"==typeof e&&e;if(!s&&u)return u(l,!0);if(a)return a(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[l]={exports:{}};n[l][0].call(f.exports,function(e){var t=n[l][1][e];return o(t||e)},f,f.exports,t,n,r,i)}return r[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}({1:[function(e,t,n){"use strict";var r=window.m=e("mithril"),i=e("wolfy87-eventemitter"),o=document.getElementById("mc4wp-admin"),a=new i,l=e("./admin/tabs.js")(o),s=e("./admin/helpers.js"),u=e("./admin/settings.js")(o,s,a),c=e("./admin/list-fetcher.js"),f=document.getElementById("mc4wp-list-fetcher");f&&r.mount(f,new c),window.mc4wp=window.mc4wp||{},window.mc4wp.deps=window.mc4wp.deps||{},window.mc4wp.deps.mithril=r,window.mc4wp.helpers=s,window.mc4wp.events=a,window.mc4wp.settings=u,window.mc4wp.tabs=l},{"./admin/helpers.js":2,"./admin/list-fetcher.js":3,"./admin/settings.js":4,"./admin/tabs.js":5,mithril:7,"wolfy87-eventemitter":8}],2:[function(e,t,n){"use strict";var r={};r.toggleElement=function(e){for(var t=document.querySelectorAll(e),n=0;n<t.length;n++){var r=t[n].clientHeight<=0;t[n].style.display=r?"":"none"}},r.bindEventToElement=function(e,t,n){e.addEventListener?e.addEventListener(t,n):e.attachEvent&&e.attachEvent("on"+t,n)},r.bindEventToElements=function(e,t,n){Array.prototype.forEach.call(e,function(e){r.bindEventToElement(e,t,n)})},r.debounce=function(e,t,n){var r;return function(){var i=this,o=arguments,a=function(){r=null,n||e.apply(i,o)},l=n&&!r;clearTimeout(r),r=setTimeout(a,t),l&&e.apply(i,o)}},function(){var e=document.querySelectorAll("[data-showif]");Array.prototype.forEach.call(e,function(e){function t(){if("radio"!==this.getAttribute("type")||this.checked){var t="checkbox"===this.getAttribute("type")?this.checked:this.value,r=t==n.value;a?(e.style.display=r?"":"none",e.style.visibility=r?"":"hidden"):e.style.opacity=r?"":"0.4",Array.prototype.forEach.call(o,function(e){r?e.removeAttribute("readonly"):e.setAttribute("readonly","readonly")})}}var n=JSON.parse(e.getAttribute("data-showif")),i=document.querySelectorAll('[name="'+n.element+'"]'),o=e.querySelectorAll("input,select,textarea:not([readonly])"),a=void 0===n.hide||n.hide;Array.prototype.forEach.call(i,function(e){t.call(e)}),r.bindEventToElements(i,"change",t)})}(),t.exports=r},{}],3:[function(e,t,n){"use strict";function r(){this.working=!1,this.done=!1,o.mailchimp.api_connected&&0==o.mailchimp.lists.length&&this.fetch()}var i=window.jQuery,o=mc4wp_vars,a=o.i18n;r.prototype.fetch=function(e){e&&e.preventDefault(),this.working=!0,this.done=!1,i.post(ajaxurl,{action:"mc4wp_renew_mailchimp_lists"}).done(function(e){e&&window.setTimeout(function(){window.location.reload()},3e3)}).always(function(e){this.working=!1,this.done=!0,m.redraw()}.bind(this))},r.prototype.view=function(){return m("form",{method:"POST",onsubmit:this.fetch.bind(this)},[m("p",[m("input",{type:"submit",value:this.working?a.fetching_mailchimp_lists:a.renew_mailchimp_lists,className:"button",disabled:!!this.working}),m.trust(" "),this.working?[m("span.mc4wp-loader","Loading..."),m.trust(" "),m("em.help",a.fetching_mailchimp_lists_can_take_a_while)]:"",this.done?[m("em.help.green",a.fetching_mailchimp_lists_done)]:""])])},t.exports=r},{}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(e,t,n){function i(e,t){return c.filter(function(n){return n[e]===t})}function o(){return c}function a(){return c=[],Array.prototype.forEach.call(s,function(e){("boolean"!=typeof e.checked||e.checked)&&"object"===r(u[e.value])&&c.push(u[e.value])}),n.trigger("selectedLists.change",[c]),c}function l(){var e=document.querySelectorAll(".lists--only-selected > *");Array.prototype.forEach.call(e,function(e){i("id",e.getAttribute("data-list-id")).length>0?e.setAttribute("class",e.getAttribute("class").replace("hidden","")):e.setAttribute("class",e.getAttribute("class")+" hidden")})}var s=(e.querySelector("form"),e.querySelectorAll(".mc4wp-list-input")),u=mc4wp_vars.mailchimp.lists,c=[];return n.on("selectedLists.change",l),t.bindEventToElements(s,"change",a),a(),{getSelectedLists:o}};t.exports=i},{}],5:[function(e,t,n){"use strict";var r=e("./url.js"),i=function(e){function t(e){for(var t=0;t<f.length;t++)if(f[t].id===e)return f[t]}function n(e,n){if("string"==typeof e&&(e=t(e)),!e)return!1;void 0==n&&(n=!0),s.removeClass("tab-active").css("display","none"),u.removeClass("nav-tab-active"),Array.prototype.forEach.call(e.nav,function(e){e.className+=" nav-tab-active",e.blur()}),e.element.style.display="block",e.element.className+=" tab-active";var o=r.setParameter(window.location.href,"tab",e.id);return history.pushState&&n&&history.pushState(e.id,"",o),i(e),c.value=o,"function"==typeof tb_remove&&tb_remove(),"fields"===e.id&&window.mc4wp&&window.mc4wp.forms&&window.mc4wp.forms.editor&&mc4wp.forms.editor.refresh(),!0}function i(e){var t=document.title.split("-");document.title=document.title.replace(t[0],e.title+" ")}function o(e){e=e||window.event;var t=this.getAttribute("data-tab");if(!t){var i=this.className.match(/nav-tab-(\w+)?/);i&&(t=i[1])}if(!t){var o=r.parse(this.href);if(!o.tab)return;t=o.tab}return!n(t)||(e.preventDefault(),e.returnValue=!1,!1)}var a=window.jQuery,l=a(e),s=l.find(".tab"),u=l.find(".nav-tab"),c=e.querySelector('input[name="_wp_http_referer"]'),f=[];return a.each(s,function(t,r){var i=r.id.substring(4),o=a(r).find("h2").first().text();f.push({id:i,title:o,element:r,nav:e.querySelectorAll(".nav-tab-"+i),open:function(){return n(i)}})}),u.click(o),a(document.body).on("click",".tab-link",o),function(){if(history.pushState){var e=s.filter(":visible").get(0);if(e){var n=t(e.id.substring(4));n&&(history.replaceState&&null===history.state&&history.replaceState(n.id,""),i(n))}}}(),window.addEventListener&&history.pushState&&window.addEventListener("popstate",function(e){return!e.state||n(e.state,!1)}),{open:n,get:t}};t.exports=i},{"./url.js":6}],6:[function(e,t,n){"use strict";var r={parse:function(e){var t={},n=e.split("&");for(var r in n)if(n.hasOwnProperty(r)){var i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t},build:function(e){var t=[];for(var n in e)t.push(n+"="+encodeURIComponent(e[n]));return t.join("&")},setParameter:function(e,t,n){var i=r.parse(e);return i[t]=n,r.build(i)}};t.exports=r},{}],7:[function(e,t,n){(function(e){!function(){"use strict";function n(e,t,n,r,i,o){return{tag:e,key:t,attrs:n,children:r,text:i,dom:o,domSize:void 0,state:void 0,_state:void 0,events:void 0,instance:void 0,skip:!1}}function r(e){for(var t,n="div",r=[],i={};t=l.exec(e);){var o=t[1],a=t[2];if(""===o&&""!==a)n=a;else if("#"===o)i.id=a;else if("."===o)r.push(a);else if("["===t[3][0]){var u=t[6];u&&(u=u.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?r.push(u):i[t[4]]=u||!0}}return r.length>0&&(i.className=r.join(" ")),s[e]={tag:n,attrs:i}}function i(e,t,r){var i,o,a=!1,l=t.className||t.class;for(var s in e.attrs)u.call(e.attrs,s)&&(t[s]=e.attrs[s]);void 0!==l&&(void 0!==t.class&&(t.class=void 0,t.className=l),null!=e.attrs.className&&(t.className=e.attrs.className+" "+l));for(var s in t)if(u.call(t,s)&&"key"!==s){a=!0;break}return Array.isArray(r)&&1===r.length&&null!=r[0]&&"#"===r[0].tag?o=r[0].children:i=r,n(e.tag,t.key,a?t:void 0,i,o)}function o(e){var t,o=arguments[1],a=2;if(null==e||"string"!=typeof e&&"function"!=typeof e&&"function"!=typeof e.view)throw Error("The selector must be either a string or a component.");if("string"==typeof e)var l=s[e]||r(e);if(null==o?o={}:("object"!=typeof o||null!=o.tag||Array.isArray(o))&&(o={},a=1),arguments.length===a+1)t=arguments[a],Array.isArray(t)||(t=[t]);else for(t=[];a<arguments.length;)t.push(arguments[a++]);var u=n.normalizeChildren(t);return"string"==typeof e?i(l,o,u):n(e,o.key,o,u)}function a(e){var t=0,n=null,r="function"==typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(){var i=Date.now();0===t||i-t>=16?(t=i,e()):null===n&&(n=r(function(){n=null,e(),t=Date.now()},16-(i-t)))}}n.normalize=function(e){return Array.isArray(e)?n("[",void 0,void 0,n.normalizeChildren(e),void 0,void 0):null!=e&&"object"!=typeof e?n("#",void 0,void 0,!1===e?"":e,void 0,void 0):e},n.normalizeChildren=function(e){for(var t=0;t<e.length;t++)e[t]=n.normalize(e[t]);return e};var l=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,s={},u={}.hasOwnProperty;o.trust=function(e){return null==e&&(e=""),n("<",void 0,void 0,e,void 0,void 0)},o.fragment=function(e,t){return n("[",e.key,e,n.normalizeChildren(t),void 0,void 0)};var c=o,f=function(e){function t(e,t){return function a(c){var f;try{if(!t||null==c||"object"!=typeof c&&"function"!=typeof c||"function"!=typeof(f=c.then))u(function(){t||0!==e.length||console.error("Possible unhandled promise rejection:",c);for(var n=0;n<e.length;n++)e[n](c);i.length=0,o.length=0,s.state=t,s.retry=function(){a(c)}});else{if(c===r)throw new TypeError("Promise can't be resolved w/ itself");n(f.bind(c))}}catch(e){l(e)}}}function n(e){function t(e){return function(t){n++>0||e(t)}}var n=0,r=t(l);try{e(t(a),r)}catch(e){r(e)}}if(!(this instanceof f))throw new Error("Promise must be called with `new`");if("function"!=typeof e)throw new TypeError("executor must be a function");var r=this,i=[],o=[],a=t(i,!0),l=t(o,!1),s=r._instance={resolvers:i,rejectors:o},u="function"==typeof setImmediate?setImmediate:setTimeout;n(e)};if(f.prototype.then=function(e,t){function n(e,t,n,o){t.push(function(t){if("function"!=typeof e)n(t);else try{r(e(t))}catch(e){i&&i(e)}}),"function"==typeof a.retry&&o===a.state&&a.retry()}var r,i,o=this,a=o._instance,l=new f(function(e,t){r=e,i=t});return n(e,a.resolvers,r,!0),n(t,a.rejectors,i,!1),l},f.prototype.catch=function(e){return this.then(null,e)},f.resolve=function(e){return e instanceof f?e:new f(function(t){t(e)})},f.reject=function(e){return new f(function(t,n){n(e)})},f.all=function(e){return new f(function(t,n){var r=e.length,i=0,o=[];if(0===e.length)t([]);else for(var a=0;a<e.length;a++)!function(a){function l(e){i++,o[a]=e,i===r&&t(o)}null==e[a]||"object"!=typeof e[a]&&"function"!=typeof e[a]||"function"!=typeof e[a].then?l(e[a]):e[a].then(l,n)}(a)})},f.race=function(e){return new f(function(t,n){for(var r=0;r<e.length;r++)e[r].then(t,n)})},"undefined"!=typeof window){void 0===window.Promise&&(window.Promise=f);var f=window.Promise}else if(void 0!==e){void 0===e.Promise&&(e.Promise=f);var f=e.Promise}var d=function(e){function t(e,r){if(Array.isArray(r))for(var i=0;i<r.length;i++)t(e+"["+i+"]",r[i]);else if("[object Object]"===Object.prototype.toString.call(r))for(var i in r)t(e+"["+i+"]",r[i]);else n.push(encodeURIComponent(e)+(null!=r&&""!==r?"="+encodeURIComponent(r):""))}if("[object Object]"!==Object.prototype.toString.call(e))return"";var n=[];for(var r in e)t(r,e[r]);return n.join("&")},h=new RegExp("^file://","i"),v=function(e,t){function n(e){v=e}function r(){function e(){0==--t&&"function"==typeof v&&v()}var t=0;return function n(r){var i=r.then;return r.then=function(){t++;var o=i.apply(r,arguments);return o.then(e,function(n){if(e(),0===t)throw n}),n(o)},r}}function i(e,t){if("string"==typeof e){var n=e;e=t||{},null==e.url&&(e.url=n)}return e}function o(n,o){var a=r();n=i(n,o);var d=new t(function(t,r){null==n.method&&(n.method="GET"),n.method=n.method.toUpperCase();var i="GET"!==n.method&&"TRACE"!==n.method&&("boolean"!=typeof n.useBody||n.useBody);"function"!=typeof n.serialize&&(n.serialize="undefined"!=typeof FormData&&n.data instanceof FormData?function(e){return e}:JSON.stringify),"function"!=typeof n.deserialize&&(n.deserialize=u),"function"!=typeof n.extract&&(n.extract=c),n.url=l(n.url,n.data),i?n.data=n.serialize(n.data):n.url=s(n.url,n.data);var o=new e.XMLHttpRequest,a=!1,d=o.abort;o.abort=function(){a=!0,d.call(o)},o.open(n.method,n.url,"boolean"!=typeof n.async||n.async,"string"==typeof n.user?n.user:void 0,"string"==typeof n.password?n.password:void 0),n.serialize===JSON.stringify&&i&&o.setRequestHeader("Content-Type","application/json; charset=utf-8"),n.deserialize===u&&o.setRequestHeader("Accept","application/json, text/*"),n.withCredentials&&(o.withCredentials=n.withCredentials);for(var v in n.headers)({}).hasOwnProperty.call(n.headers,v)&&o.setRequestHeader(v,n.headers[v]);"function"==typeof n.config&&(o=n.config(o,n)||o),o.onreadystatechange=function(){if(!a&&4===o.readyState)try{var e=n.extract!==c?n.extract(o,n):n.deserialize(n.extract(o,n));if(o.status>=200&&o.status<300||304===o.status||h.test(n.url))t(f(n.type,e));else{var i=new Error(o.responseText);for(var l in e)i[l]=e[l];r(i)}}catch(e){r(e)}},i&&null!=n.data?o.send(n.data):o.send()});return!0===n.background?d:a(d)}function a(n,o){var a=r();n=i(n,o);var u=new t(function(t,r){var i=n.callbackName||"_mithril_"+Math.round(1e16*Math.random())+"_"+p++,o=e.document.createElement("script");e[i]=function(r){o.parentNode.removeChild(o),t(f(n.type,r)),delete e[i]},o.onerror=function(){o.parentNode.removeChild(o),r(new Error("JSONP request failed")),delete e[i]},null==n.data&&(n.data={}),n.url=l(n.url,n.data),n.data[n.callbackKey||"callback"]=i,o.src=s(n.url,n.data),e.document.documentElement.appendChild(o)});return!0===n.background?u:a(u)}function l(e,t){if(null==t)return e;for(var n=e.match(/:[^\/]+/gi)||[],r=0;r<n.length;r++){var i=n[r].slice(1);null!=t[i]&&(e=e.replace(n[r],t[i]))}return e}function s(e,t){var n=d(t);if(""!==n){e+=(e.indexOf("?")<0?"?":"&")+n}return e}function u(e){try{return""!==e?JSON.parse(e):null}catch(t){throw new Error(e)}}function c(e){return e.responseText}function f(e,t){if("function"==typeof e){if(!Array.isArray(t))return new e(t);for(var n=0;n<t.length;n++)t[n]=new e(t[n])}return t}var v,p=0;return{request:o,jsonp:a,setCompletionCallback:n}}(window,f),p=function(e){function t(e){return V=e}function r(e,t,n,r,o,a,l){for(var s=n;s<r;s++){var u=t[s];null!=u&&i(e,u,o,l,a)}}function i(e,t,n,r,i){var u=t.tag;if("string"!=typeof u)return c(e,t,n,r,i);switch(t.state={},null!=t.attrs&&M(t.attrs,t,n),u){case"#":return o(e,t,i);case"<":return a(e,t,i);case"[":return l(e,t,n,r,i);default:return s(e,t,n,r,i)}}function o(e,t,n){return t.dom=H.createTextNode(t.children),E(e,t.dom,n),t.dom}function a(e,t,n){var r=t.children.match(/^\s*?<(\w+)/im)||[],i={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[r[1]]||"div",o=H.createElement(i);o.innerHTML=t.children,t.dom=o.firstChild,t.domSize=o.childNodes.length;for(var a,l=H.createDocumentFragment();a=o.firstChild;)l.appendChild(a);return E(e,l,n),l}function l(e,t,n,i,o){var a=H.createDocumentFragment();if(null!=t.children){var l=t.children;r(a,l,0,l.length,n,null,i)}return t.dom=a.firstChild,t.domSize=a.childNodes.length,E(e,a,o),a}function s(e,t,i,o,a){var l=t.tag;switch(t.tag){case"svg":o="http://www.w3.org/2000/svg";break;case"math":o="http://www.w3.org/1998/Math/MathML"}var s=t.attrs,u=s&&s.is,c=o?u?H.createElementNS(o,l,{is:u}):H.createElementNS(o,l):u?H.createElement(l,{is:u}):H.createElement(l);if(t.dom=c,null!=s&&j(t,s,o),E(e,c,a),null!=t.attrs&&null!=t.attrs.contenteditable)A(t);else if(null!=t.text&&(""!==t.text?c.textContent=t.text:t.children=[n("#",void 0,void 0,t.text,void 0,void 0)]),null!=t.children){var f=t.children;r(c,f,0,f.length,i,null,o),O(t)}return c}function u(e,t){var r;if("function"==typeof e.tag.view){if(e.state=Object.create(e.tag),r=e.state.view,null!=r.$$reentrantLock$$)return B;r.$$reentrantLock$$=!0}else{if(e.state=void 0,r=e.tag,null!=r.$$reentrantLock$$)return B;r.$$reentrantLock$$=!0,e.state=null!=e.tag.prototype&&"function"==typeof e.tag.prototype.view?new e.tag(e):e.tag(e)}if(e._state=e.state,null!=e.attrs&&M(e.attrs,e,t),M(e._state,e,t),e.instance=n.normalize(e._state.view.call(e.state,e)),e.instance===e)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null}function c(e,t,n,r,o){if(u(t,n),null!=t.instance){var a=i(e,t.instance,n,r,o);return t.dom=t.instance.dom,t.domSize=null!=t.dom?t.instance.domSize:0,E(e,a,o),a}return t.domSize=0,B}function f(e,t,n,o,a,l,s){if(t!==n&&(null!=t||null!=n))if(null==t)r(e,n,0,n.length,a,l,void 0);else if(null==n)k(t,0,t.length,n);else{if(t.length===n.length){for(var u=!1,c=0;c<n.length;c++)if(null!=n[c]&&null!=t[c]){u=null==n[c].key&&null==t[c].key;break}if(u){for(var c=0;c<t.length;c++)t[c]!==n[c]&&(null==t[c]&&null!=n[c]?i(e,n[c],a,s,x(t,c+1,l)):null==n[c]?k(t,c,c+1,n):d(e,t[c],n[c],a,x(t,c+1,l),o,s));return}}if(o=o||g(t,n)){var f=t.pool;t=t.concat(t.pool)}for(var h,v=0,p=0,m=t.length-1,y=n.length-1;m>=v&&y>=p;){var A=t[v],S=n[p];if(A!==S||o)if(null==A)v++;else if(null==S)p++;else if(A.key===S.key){var _=null!=f&&v>=t.length-f.length||null==f&&o;v++,p++,d(e,A,S,a,x(t,v,l),_,s),o&&A.tag===S.tag&&E(e,b(A),l)}else{var A=t[m];if(A!==S||o)if(null==A)m--;else if(null==S)p++;else{if(A.key!==S.key)break;var _=null!=f&&m>=t.length-f.length||null==f&&o;d(e,A,S,a,x(t,m+1,l),_,s),(o||p<y)&&E(e,b(A),x(t,v,l)),m--,p++}else m--,p++}else v++,p++}for(;m>=v&&y>=p;){var A=t[m],S=n[y];if(A!==S||o)if(null==A)m--;else if(null==S)y--;else if(A.key===S.key){var _=null!=f&&m>=t.length-f.length||null==f&&o;d(e,A,S,a,x(t,m+1,l),_,s),o&&A.tag===S.tag&&E(e,b(A),l),null!=A.dom&&(l=A.dom),m--,y--}else{if(h||(h=w(t,m)),null!=S){var L=h[S.key];if(null!=L){var j=t[L],_=null!=f&&L>=t.length-f.length||null==f&&o;d(e,j,S,a,x(t,m+1,l),o,s),E(e,b(j),l),t[L].skip=!0,null!=j.dom&&(l=j.dom)}else{var C=i(e,S,a,void 0,l);l=C}}y--}else m--,y--;if(y<p)break}r(e,n,p,y+1,a,l,s),k(t,v,m+1,n)}}function d(e,t,n,r,o,a,l){var s=t.tag;if(s===n.tag){if(n.state=t.state,n._state=t._state,n.events=t.events,!a&&U(n,t))return;if("string"==typeof s)switch(null!=n.attrs&&(a?(n.state={},M(n.attrs,n,r)):D(n.attrs,n,r)),s){case"#":h(t,n);break;case"<":v(e,t,n,o);break;case"[":p(e,t,n,a,r,o,l);break;default:m(t,n,a,r,l)}else y(e,t,n,r,o,a,l)}else S(t,null),i(e,n,r,l,o)}function h(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children),t.dom=e.dom}function v(e,t,n,r){t.children!==n.children?(b(t),a(e,n,r)):(n.dom=t.dom,n.domSize=t.domSize)}function p(e,t,n,r,i,o,a){f(e,t.children,n.children,r,i,o,a);var l=0,s=n.children;if(n.dom=null,null!=s){for(var u=0;u<s.length;u++){var c=s[u];null!=c&&null!=c.dom&&(null==n.dom&&(n.dom=c.dom),l+=c.domSize||1)}1!==l&&(n.domSize=l)}}function m(e,t,r,i,o){var a=t.dom=e.dom;switch(t.tag){case"svg":o="http://www.w3.org/2000/svg";break;case"math":o="http://www.w3.org/1998/Math/MathML"}"textarea"===t.tag&&(null==t.attrs&&(t.attrs={}),null!=t.text&&(t.attrs.value=t.text,t.text=void 0)),z(t,e.attrs,t.attrs,o),null!=t.attrs&&null!=t.attrs.contenteditable?A(t):null!=e.text&&null!=t.text&&""!==t.text?e.text.toString()!==t.text.toString()&&(e.dom.firstChild.nodeValue=t.text):(null!=e.text&&(e.children=[n("#",void 0,void 0,e.text,void 0,e.dom.firstChild)]),null!=t.text&&(t.children=[n("#",void 0,void 0,t.text,void 0,void 0)]),f(a,e.children,t.children,r,i,null,o))}function y(e,t,r,o,a,l,s){if(l)u(r,o);else{if(r.instance=n.normalize(r._state.view.call(r.state,r)),r.instance===r)throw Error("A view cannot return the vnode it received as argument");null!=r.attrs&&D(r.attrs,r,o),D(r._state,r,o)}null!=r.instance?(null==t.instance?i(e,r.instance,o,s,a):d(e,t.instance,r.instance,o,a,l,s),r.dom=r.instance.dom,r.domSize=r.instance.domSize):null!=t.instance?(S(t.instance,null),r.dom=void 0,r.domSize=0):(r.dom=t.dom,r.domSize=t.domSize)}function g(e,t){if(null!=e.pool&&Math.abs(e.pool.length-t.length)<=Math.abs(e.length-t.length)){var n=e[0]&&e[0].children&&e[0].children.length||0,r=e.pool[0]&&e.pool[0].children&&e.pool[0].children.length||0,i=t[0]&&t[0].children&&t[0].children.length||0;if(Math.abs(r-i)<=Math.abs(n-i))return!0}return!1}function w(e,t){for(var n={},r=0,r=0;r<t;r++){var i=e[r];if(null!=i){var o=i.key;null!=o&&(n[o]=r)}}return n}function b(e){var t=e.domSize;if(null!=t||null==e.dom){var n=H.createDocumentFragment();if(t>0){for(var r=e.dom;--t;)n.appendChild(r.nextSibling);n.insertBefore(r,n.firstChild)}return n}return e.dom}function x(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function E(e,t,n){n&&n.parentNode?e.insertBefore(t,n):e.appendChild(t)}function A(e){var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=e.text||null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted")}function k(e,t,n,r){for(var i=t;i<n;i++){var o=e[i];null!=o&&(o.skip?o.skip=!1:S(o,r))}}function S(e,t){function n(){if(++i===r&&(L(e),e.dom)){var n=e.domSize||1;if(n>1)for(var o=e.dom;--n;)_(o.nextSibling);_(e.dom),null==t||null!=e.domSize||$(e.attrs)||"string"!=typeof e.tag||(t.pool?t.pool.push(e):t.pool=[e])}}var r=1,i=0;if(e.attrs&&"function"==typeof e.attrs.onbeforeremove){var o=e.attrs.onbeforeremove.call(e.state,e);null!=o&&"function"==typeof o.then&&(r++,o.then(n,n))}if("string"!=typeof e.tag&&"function"==typeof e._state.onbeforeremove){var o=e._state.onbeforeremove.call(e.state,e);null!=o&&"function"==typeof o.then&&(r++,o.then(n,n))}n()}function _(e){var t=e.parentNode;null!=t&&t.removeChild(e)}function L(e){if(e.attrs&&"function"==typeof e.attrs.onremove&&e.attrs.onremove.call(e.state,e),"string"!=typeof e.tag&&"function"==typeof e._state.onremove&&e._state.onremove.call(e.state,e),null!=e.instance)L(e.instance);else{var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var r=t[n];null!=r&&L(r)}}}function j(e,t,n){for(var r in t)C(e,r,null,t[r],n)}function C(e,t,n,r,i){var o=e.dom;if("key"!==t&&"is"!==t&&(n!==r||T(e,t)||"object"==typeof r)&&void 0!==r&&!N(t)){var a=t.indexOf(":");if(a>-1&&"xlink"===t.substr(0,a))o.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(a+1),r);else if("o"===t[0]&&"n"===t[1]&&"function"==typeof r)q(e,t,r);else if("style"===t)I(o,n,r);else if(t in o&&!P(t)&&void 0===i&&!R(e)){if("input"===e.tag&&"value"===t&&e.dom.value==r&&e.dom===H.activeElement)return;if("select"===e.tag&&"value"===t&&e.dom.value==r&&e.dom===H.activeElement)return;if("option"===e.tag&&"value"===t&&e.dom.value==r)return;if("input"===e.tag&&"type"===t)return void o.setAttribute(t,r);o[t]=r}else"boolean"==typeof r?r?o.setAttribute(t,""):o.removeAttribute(t):o.setAttribute("className"===t?"class":t,r)}}function O(e){var t=e.attrs;"select"===e.tag&&null!=t&&("value"in t&&C(e,"value",null,t.value,void 0),"selectedIndex"in t&&C(e,"selectedIndex",null,t.selectedIndex,void 0))}function z(e,t,n,r){if(null!=n)for(var i in n)C(e,i,t&&t[i],n[i],r);if(null!=t)for(var i in t)null!=n&&i in n||("className"===i&&(i="class"),"o"!==i[0]||"n"!==i[1]||N(i)?"key"!==i&&e.dom.removeAttribute(i):q(e,i,void 0))}function T(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===H.activeElement}function N(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function P(e){return"href"===e||"list"===e||"form"===e||"width"===e||"height"===e}function R(e){return e.attrs.is||e.tag.indexOf("-")>-1}function $(e){return null!=e&&(e.oncreate||e.onupdate||e.onbeforeremove||e.onremove)}function I(e,t,n){if(t===n&&(e.style.cssText="",t=null),null==n)e.style.cssText="";else if("string"==typeof n)e.style.cssText=n;else{"string"==typeof t&&(e.style.cssText="");for(var r in n)e.style[r]=n[r];if(null!=t&&"string"!=typeof t)for(var r in t)r in n||(e.style[r]="")}}function q(e,t,n){var r=e.dom,i="function"!=typeof V?n:function(e){var t=n.call(r,e);return V.call(r,e),t};if(t in r)r[t]="function"==typeof n?i:null;else{var o=t.slice(2);if(void 0===e.events&&(e.events={}),e.events[t]===i)return;null!=e.events[t]&&r.removeEventListener(o,e.events[t],!1),"function"==typeof n&&(e.events[t]=i,r.addEventListener(o,e.events[t],!1))}}function M(e,t,n){"function"==typeof e.oninit&&e.oninit.call(t.state,t),"function"==typeof e.oncreate&&n.push(e.oncreate.bind(t.state,t))}function D(e,t,n){"function"==typeof e.onupdate&&n.push(e.onupdate.bind(t.state,t))}function U(e,t){var n,r;return null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate&&(n=e.attrs.onbeforeupdate.call(e.state,e,t)),"string"!=typeof e.tag&&"function"==typeof e._state.onbeforeupdate&&(r=e._state.onbeforeupdate.call(e.state,e,t)),!(void 0===n&&void 0===r||n||r)&&(e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,!0)}function F(e,t){if(!e)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var r=[],i=H.activeElement;null==e.vnodes&&(e.textContent=""),Array.isArray(t)||(t=[t]),f(e,e.vnodes,n.normalizeChildren(t),!1,r,null,void 0),e.vnodes=t;for(var o=0;o<r.length;o++)r[o]();H.activeElement!==i&&i.focus()}var V,H=e.document,B=H.createDocumentFragment();return{render:F,setEventCallback:t}},m=function(e){function t(e,t){n(e),o.push(e,a(t))}function n(e){var t=o.indexOf(e);t>-1&&o.splice(t,2)}function r(){for(var e=1;e<o.length;e+=2)o[e]()}var i=p(e);i.setEventCallback(function(e){!1!==e.redraw&&r()});var o=[];return{subscribe:t,unsubscribe:n,redraw:r,render:i.render}}(window);v.setCompletionCallback(m.redraw);c.mount=function(e){return function(t,r){if(null===r)return e.render(t,[]),void e.unsubscribe(t);if(null==r.view&&"function"!=typeof r)throw new Error("m.mount(element, component) expects a component, not a vnode");var i=function(){e.render(t,n(r))};e.subscribe(t,i),e.redraw()}}(m);var y=f,g=function(e){if(""===e||null==e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t=e.split("&"),n={},r={},i=0;i<t.length;i++){var o=t[i].split("="),a=decodeURIComponent(o[0]),l=2===o.length?decodeURIComponent(o[1]):"";"true"===l?l=!0:"false"===l&&(l=!1);var s=a.split(/\]\[?|\[/),u=n;a.indexOf("[")>-1&&s.pop();for(var c=0;c<s.length;c++){var f=s[c],d=s[c+1],h=""==d||!isNaN(parseInt(d,10)),v=c===s.length-1;if(""===f){var a=s.slice(0,c).join();null==r[a]&&(r[a]=0),f=r[a]++}null==u[f]&&(u[f]=v?l:h?[]:{}),u=u[f]}}return n},w=function(e){function t(t){var n=e.location[t].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);return"pathname"===t&&"/"!==n[0]&&(n="/"+n),n}function n(e){return function(){null==i&&(i=a(function(){i=null,e()}))}}function r(e,t,n){var r=e.indexOf("?"),i=e.indexOf("#"),o=r>-1?r:i>-1?i:e.length;if(r>-1){var a=i>-1?i:e.length,l=g(e.slice(r+1,a));for(var s in l)t[s]=l[s]}if(i>-1){var u=g(e.slice(i+1));for(var s in u)n[s]=u[s]}return e.slice(0,o)}var i,o="function"==typeof e.history.pushState,a="function"==typeof setImmediate?setImmediate:setTimeout,l={prefix:"#!"};return l.getPath=function(){switch(l.prefix.charAt(0)){case"#":return t("hash").slice(l.prefix.length);case"?":return t("search").slice(l.prefix.length)+t("hash");default:return t("pathname").slice(l.prefix.length)+t("search")+t("hash")}},l.setPath=function(t,n,i){var a={},s={};if(t=r(t,a,s),null!=n){for(var u in n)a[u]=n[u];t=t.replace(/:([^\/]+)/g,function(e,t){return delete a[t],n[t]})}var c=d(a);c&&(t+="?"+c);var f=d(s);if(f&&(t+="#"+f),o){var h=i?i.state:null,v=i?i.title:null;e.onpopstate(),i&&i.replace?e.history.replaceState(h,v,l.prefix+t):e.history.pushState(h,v,l.prefix+t)}else e.location.href=l.prefix+t},l.defineRoutes=function(t,i,a){function s(){var n=l.getPath(),o={},s=r(n,o,o),u=e.history.state;if(null!=u)for(var c in u)o[c]=u[c];for(var f in t){var d=new RegExp("^"+f.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(d.test(s))return void s.replace(d,function(){for(var e=f.match(/:[^\/]+/g)||[],r=[].slice.call(arguments,1,-2),a=0;a<e.length;a++)o[e[a].replace(/:|\./g,"")]=decodeURIComponent(r[a]);i(t[f],o,n,f)})}a(n,o)}o?e.onpopstate=n(s):"#"===l.prefix.charAt(0)&&(e.onhashchange=s),s()},l};c.route=function(e,t){var r,i,o,a,l,s=w(e),u=function(e){return e},c=function(e,c,f){if(null==e)throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined");var d=function(){null!=r&&t.render(e,r(n(i,o.key,o)))},h=function(e){if(e===c)throw new Error("Could not resolve default route "+c);s.setPath(c,null,{replace:!0})};s.defineRoutes(f,function(e,t,n){var s=l=function(e,c){s===l&&(i=null==c||"function"!=typeof c.view&&"function"!=typeof c?"div":c,o=t,a=n,l=null,r=(e.render||u).bind(e),d())};e.view||"function"==typeof e?s({},e):e.onmatch?y.resolve(e.onmatch(t,n)).then(function(t){s(e,t)},h):s(e,"div")},h),t.subscribe(e,d)};return c.set=function(e,t,n){null!=l&&(n={replace:!0}),l=null,s.setPath(e,t,n)},c.get=function(){return a},c.prefix=function(e){s.prefix=e},c.link=function(e){e.dom.setAttribute("href",s.prefix+e.attrs.href),e.dom.onclick=function(e){if(!(e.ctrlKey||e.metaKey||e.shiftKey||2===e.which)){e.preventDefault(),e.redraw=!1;var t=this.getAttribute("href");0===t.indexOf(s.prefix)&&(t=t.slice(s.prefix.length)),c.set(t,void 0,void 0)}}},c.param=function(e){return void 0!==o&&void 0!==e?o[e]:o},c}(window,m),c.withAttr=function(e,t,n){return function(r){t.call(n||this,e in r.currentTarget?r.currentTarget[e]:r.currentTarget.getAttribute(e))}};var b=p(window);c.render=b.render,c.redraw=m.redraw,c.request=v.request,c.jsonp=v.jsonp,c.parseQueryString=g,c.buildQueryString=d,c.version="1.1.1",c.vnode=n,void 0!==t?t.exports=c:window.m=c}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(e,n,r){!function(e){"use strict";function r(){}function i(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function o(e){return function(){return this[e].apply(this,arguments)}}function a(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!=typeof e)&&a(e.listener)}var l=r.prototype,s=e.EventEmitter;l.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},l.flattenListeners=function(e){var t,n=[];for(t=0;t<e.length;t+=1)n.push(e[t].listener);return n},l.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},l.addListener=function(e,t){if(!a(t))throw new TypeError("listener must be a function");var n,r=this.getListenersAsObject(e),o="object"==typeof t;for(n in r)r.hasOwnProperty(n)&&-1===i(r[n],t)&&r[n].push(o?t:{listener:t,once:!1});return this},l.on=o("addListener"),l.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},l.once=o("addOnceListener"),l.defineEvent=function(e){return this.getListeners(e),this},l.defineEvents=function(e){for(var t=0;t<e.length;t+=1)this.defineEvent(e[t]);return this},l.removeListener=function(e,t){var n,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&-1!==(n=i(o[r],t))&&o[r].splice(n,1);return this},l.off=o("removeListener"),l.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},l.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},l.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,a=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):a.call(this,r,i));return this},l.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if(e instanceof RegExp)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},l.removeAllListeners=o("removeEvent"),l.emitEvent=function(e,t){var n,r,i,o,a=this.getListenersAsObject(e);for(o in a)if(a.hasOwnProperty(o))for(n=a[o].slice(0),i=0;i<n.length;i++)r=n[i],!0===r.once&&this.removeListener(e,r.listener),
|
2 |
-
r.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,r.listener);return this},l.trigger=o("emitEvent"),l.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},l.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},l._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},l._getEvents=function(){return this._events||(this._events={})},r.noConflict=function(){return e.EventEmitter=s,r},"function"==typeof t&&t.amd?t(function(){return r}):"object"==typeof n&&n.exports?n.exports=r:e.EventEmitter=r}(this||{})},{}]},{},[1])}();
|
3 |
//# sourceMappingURL=admin.min.js.map
|
1 |
+
!function(){var e=void 0,t=void 0;!function t(n,r,i){function o(l,s){if(!r[l]){if(!n[l]){var u="function"==typeof e&&e;if(!s&&u)return u(l,!0);if(a)return a(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[l]={exports:{}};n[l][0].call(f.exports,function(e){var t=n[l][1][e];return o(t||e)},f,f.exports,t,n,r,i)}return r[l].exports}for(var a="function"==typeof e&&e,l=0;l<i.length;l++)o(i[l]);return o}({1:[function(e,t,n){"use strict";var r=window.m=e("mithril"),i=e("wolfy87-eventemitter"),o=document.getElementById("mc4wp-admin"),a=new i,l=e("./admin/tabs.js")(o),s=e("./admin/helpers.js"),u=e("./admin/settings.js")(o,s,a),c=e("./admin/list-fetcher.js"),f=document.getElementById("mc4wp-list-fetcher");f&&r.mount(f,new c),window.mc4wp=window.mc4wp||{},window.mc4wp.deps=window.mc4wp.deps||{},window.mc4wp.deps.mithril=r,window.mc4wp.helpers=s,window.mc4wp.events=a,window.mc4wp.settings=u,window.mc4wp.tabs=l},{"./admin/helpers.js":2,"./admin/list-fetcher.js":3,"./admin/settings.js":4,"./admin/tabs.js":5,mithril:7,"wolfy87-eventemitter":8}],2:[function(e,t,n){"use strict";var r={};r.toggleElement=function(e){for(var t=document.querySelectorAll(e),n=0;n<t.length;n++){var r=t[n].clientHeight<=0;t[n].style.display=r?"":"none"}},r.bindEventToElement=function(e,t,n){e.addEventListener?e.addEventListener(t,n):e.attachEvent&&e.attachEvent("on"+t,n)},r.bindEventToElements=function(e,t,n){Array.prototype.forEach.call(e,function(e){r.bindEventToElement(e,t,n)})},r.debounce=function(e,t,n){var r;return function(){var i=this,o=arguments,a=function(){r=null,n||e.apply(i,o)},l=n&&!r;clearTimeout(r),r=setTimeout(a,t),l&&e.apply(i,o)}},function(){var e=document.querySelectorAll("[data-showif]");Array.prototype.forEach.call(e,function(e){function t(){if("radio"!==this.getAttribute("type")||this.checked){var t="checkbox"===this.getAttribute("type")?this.checked:this.value,r=t==n.value;a?(e.style.display=r?"":"none",e.style.visibility=r?"":"hidden"):e.style.opacity=r?"":"0.4",Array.prototype.forEach.call(o,function(e){r?e.removeAttribute("readonly"):e.setAttribute("readonly","readonly")})}}var n=JSON.parse(e.getAttribute("data-showif")),i=document.querySelectorAll('[name="'+n.element+'"]'),o=e.querySelectorAll("input,select,textarea:not([readonly])"),a=void 0===n.hide||n.hide;Array.prototype.forEach.call(i,function(e){t.call(e)}),r.bindEventToElements(i,"change",t)})}(),t.exports=r},{}],3:[function(e,t,n){"use strict";function r(){this.working=!1,this.done=!1,o.mailchimp.api_connected&&0===o.mailchimp.lists.length&&this.fetch()}var i=window.jQuery,o=mc4wp_vars,a=o.i18n;r.prototype.fetch=function(e){e&&e.preventDefault(),this.working=!0,this.done=!1,i.post(ajaxurl,{action:"mc4wp_renew_mailchimp_lists"}).done(function(e){this.success=!0,e&&window.setTimeout(function(){window.location.reload()},3e3)}.bind(this)).fail(function(e){this.success=!1}.bind(this)).always(function(e){this.working=!1,this.done=!0,m.redraw()}.bind(this))},r.prototype.view=function(){return m("form",{method:"POST",onsubmit:this.fetch.bind(this)},[m("p",[m("input",{type:"submit",value:this.working?a.fetching_mailchimp_lists:a.renew_mailchimp_lists,className:"button",disabled:!!this.working}),m.trust(" "),this.working?[m("span.mc4wp-loader","Loading..."),m.trust(" "),m("em.help",a.fetching_mailchimp_lists_can_take_a_while)]:"",this.done?[this.success?m("em.help.green",a.fetching_mailchimp_lists_done):m("em.help.red",a.fetching_mailchimp_lists_error)]:""])])},t.exports=r},{}],4:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(e,t,n){function i(e,t){return c.filter(function(n){return n[e]===t})}function o(){return c}function a(){return c=[],Array.prototype.forEach.call(s,function(e){("boolean"!=typeof e.checked||e.checked)&&"object"===r(u[e.value])&&c.push(u[e.value])}),n.trigger("selectedLists.change",[c]),c}function l(){var e=document.querySelectorAll(".lists--only-selected > *");Array.prototype.forEach.call(e,function(e){i("id",e.getAttribute("data-list-id")).length>0?e.setAttribute("class",e.getAttribute("class").replace("hidden","")):e.setAttribute("class",e.getAttribute("class")+" hidden")})}var s=(e.querySelector("form"),e.querySelectorAll(".mc4wp-list-input")),u=mc4wp_vars.mailchimp.lists,c=[];return n.on("selectedLists.change",l),t.bindEventToElements(s,"change",a),a(),{getSelectedLists:o}};t.exports=i},{}],5:[function(e,t,n){"use strict";var r=e("./url.js"),i=function(e){function t(e){for(var t=0;t<f.length;t++)if(f[t].id===e)return f[t]}function n(e,n){if("string"==typeof e&&(e=t(e)),!e)return!1;void 0==n&&(n=!0),s.removeClass("tab-active").css("display","none"),u.removeClass("nav-tab-active"),Array.prototype.forEach.call(e.nav,function(e){e.className+=" nav-tab-active",e.blur()}),e.element.style.display="block",e.element.className+=" tab-active";var o=r.setParameter(window.location.href,"tab",e.id);return history.pushState&&n&&history.pushState(e.id,"",o),i(e),c.value=o,"function"==typeof tb_remove&&tb_remove(),"fields"===e.id&&window.mc4wp&&window.mc4wp.forms&&window.mc4wp.forms.editor&&mc4wp.forms.editor.refresh(),!0}function i(e){var t=document.title.split("-");document.title=document.title.replace(t[0],e.title+" ")}function o(e){e=e||window.event;var t=this.getAttribute("data-tab");if(!t){var i=this.className.match(/nav-tab-(\w+)?/);i&&(t=i[1])}if(!t){var o=r.parse(this.href);if(!o.tab)return;t=o.tab}return!n(t)||(e.preventDefault(),e.returnValue=!1,!1)}var a=window.jQuery,l=a(e),s=l.find(".tab"),u=l.find(".nav-tab"),c=e.querySelector('input[name="_wp_http_referer"]'),f=[];return a.each(s,function(t,r){var i=r.id.substring(4),o=a(r).find("h2").first().text();f.push({id:i,title:o,element:r,nav:e.querySelectorAll(".nav-tab-"+i),open:function(){return n(i)}})}),u.click(o),a(document.body).on("click",".tab-link",o),function(){if(history.pushState){var e=s.filter(":visible").get(0);if(e){var n=t(e.id.substring(4));n&&(history.replaceState&&null===history.state&&history.replaceState(n.id,""),i(n))}}}(),window.addEventListener&&history.pushState&&window.addEventListener("popstate",function(e){return!e.state||n(e.state,!1)}),{open:n,get:t}};t.exports=i},{"./url.js":6}],6:[function(e,t,n){"use strict";var r={parse:function(e){var t={},n=e.split("&");for(var r in n)if(n.hasOwnProperty(r)){var i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t},build:function(e){var t=[];for(var n in e)t.push(n+"="+encodeURIComponent(e[n]));return t.join("&")},setParameter:function(e,t,n){var i=r.parse(e);return i[t]=n,r.build(i)}};t.exports=r},{}],7:[function(e,t,n){(function(e){!function(){"use strict";function n(e,t,n,r,i,o){return{tag:e,key:t,attrs:n,children:r,text:i,dom:o,domSize:void 0,state:void 0,_state:void 0,events:void 0,instance:void 0,skip:!1}}function r(e){for(var t,n="div",r=[],i={};t=l.exec(e);){var o=t[1],a=t[2];if(""===o&&""!==a)n=a;else if("#"===o)i.id=a;else if("."===o)r.push(a);else if("["===t[3][0]){var u=t[6];u&&(u=u.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?r.push(u):i[t[4]]=u||!0}}return r.length>0&&(i.className=r.join(" ")),s[e]={tag:n,attrs:i}}function i(e,t,r){var i,o,a=!1,l=t.className||t.class;for(var s in e.attrs)u.call(e.attrs,s)&&(t[s]=e.attrs[s]);void 0!==l&&(void 0!==t.class&&(t.class=void 0,t.className=l),null!=e.attrs.className&&(t.className=e.attrs.className+" "+l));for(var s in t)if(u.call(t,s)&&"key"!==s){a=!0;break}return Array.isArray(r)&&1===r.length&&null!=r[0]&&"#"===r[0].tag?o=r[0].children:i=r,n(e.tag,t.key,a?t:void 0,i,o)}function o(e){var t,o=arguments[1],a=2;if(null==e||"string"!=typeof e&&"function"!=typeof e&&"function"!=typeof e.view)throw Error("The selector must be either a string or a component.");if("string"==typeof e)var l=s[e]||r(e);if(null==o?o={}:("object"!=typeof o||null!=o.tag||Array.isArray(o))&&(o={},a=1),arguments.length===a+1)t=arguments[a],Array.isArray(t)||(t=[t]);else for(t=[];a<arguments.length;)t.push(arguments[a++]);var u=n.normalizeChildren(t);return"string"==typeof e?i(l,o,u):n(e,o.key,o,u)}function a(e){var t=0,n=null,r="function"==typeof requestAnimationFrame?requestAnimationFrame:setTimeout;return function(){var i=Date.now();0===t||i-t>=16?(t=i,e()):null===n&&(n=r(function(){n=null,e(),t=Date.now()},16-(i-t)))}}n.normalize=function(e){return Array.isArray(e)?n("[",void 0,void 0,n.normalizeChildren(e),void 0,void 0):null!=e&&"object"!=typeof e?n("#",void 0,void 0,!1===e?"":e,void 0,void 0):e},n.normalizeChildren=function(e){for(var t=0;t<e.length;t++)e[t]=n.normalize(e[t]);return e};var l=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,s={},u={}.hasOwnProperty;o.trust=function(e){return null==e&&(e=""),n("<",void 0,void 0,e,void 0,void 0)},o.fragment=function(e,t){return n("[",e.key,e,n.normalizeChildren(t),void 0,void 0)};var c=o,f=function(e){function t(e,t){return function a(c){var f;try{if(!t||null==c||"object"!=typeof c&&"function"!=typeof c||"function"!=typeof(f=c.then))u(function(){t||0!==e.length||console.error("Possible unhandled promise rejection:",c);for(var n=0;n<e.length;n++)e[n](c);i.length=0,o.length=0,s.state=t,s.retry=function(){a(c)}});else{if(c===r)throw new TypeError("Promise can't be resolved w/ itself");n(f.bind(c))}}catch(e){l(e)}}}function n(e){function t(e){return function(t){n++>0||e(t)}}var n=0,r=t(l);try{e(t(a),r)}catch(e){r(e)}}if(!(this instanceof f))throw new Error("Promise must be called with `new`");if("function"!=typeof e)throw new TypeError("executor must be a function");var r=this,i=[],o=[],a=t(i,!0),l=t(o,!1),s=r._instance={resolvers:i,rejectors:o},u="function"==typeof setImmediate?setImmediate:setTimeout;n(e)};if(f.prototype.then=function(e,t){function n(e,t,n,o){t.push(function(t){if("function"!=typeof e)n(t);else try{r(e(t))}catch(e){i&&i(e)}}),"function"==typeof a.retry&&o===a.state&&a.retry()}var r,i,o=this,a=o._instance,l=new f(function(e,t){r=e,i=t});return n(e,a.resolvers,r,!0),n(t,a.rejectors,i,!1),l},f.prototype.catch=function(e){return this.then(null,e)},f.resolve=function(e){return e instanceof f?e:new f(function(t){t(e)})},f.reject=function(e){return new f(function(t,n){n(e)})},f.all=function(e){return new f(function(t,n){var r=e.length,i=0,o=[];if(0===e.length)t([]);else for(var a=0;a<e.length;a++)!function(a){function l(e){i++,o[a]=e,i===r&&t(o)}null==e[a]||"object"!=typeof e[a]&&"function"!=typeof e[a]||"function"!=typeof e[a].then?l(e[a]):e[a].then(l,n)}(a)})},f.race=function(e){return new f(function(t,n){for(var r=0;r<e.length;r++)e[r].then(t,n)})},"undefined"!=typeof window){void 0===window.Promise&&(window.Promise=f);var f=window.Promise}else if(void 0!==e){void 0===e.Promise&&(e.Promise=f);var f=e.Promise}var d=function(e){function t(e,r){if(Array.isArray(r))for(var i=0;i<r.length;i++)t(e+"["+i+"]",r[i]);else if("[object Object]"===Object.prototype.toString.call(r))for(var i in r)t(e+"["+i+"]",r[i]);else n.push(encodeURIComponent(e)+(null!=r&&""!==r?"="+encodeURIComponent(r):""))}if("[object Object]"!==Object.prototype.toString.call(e))return"";var n=[];for(var r in e)t(r,e[r]);return n.join("&")},h=new RegExp("^file://","i"),v=function(e,t){function n(e){v=e}function r(){function e(){0==--t&&"function"==typeof v&&v()}var t=0;return function n(r){var i=r.then;return r.then=function(){t++;var o=i.apply(r,arguments);return o.then(e,function(n){if(e(),0===t)throw n}),n(o)},r}}function i(e,t){if("string"==typeof e){var n=e;e=t||{},null==e.url&&(e.url=n)}return e}function o(n,o){var a=r();n=i(n,o);var d=new t(function(t,r){null==n.method&&(n.method="GET"),n.method=n.method.toUpperCase();var i="GET"!==n.method&&"TRACE"!==n.method&&("boolean"!=typeof n.useBody||n.useBody);"function"!=typeof n.serialize&&(n.serialize="undefined"!=typeof FormData&&n.data instanceof FormData?function(e){return e}:JSON.stringify),"function"!=typeof n.deserialize&&(n.deserialize=u),"function"!=typeof n.extract&&(n.extract=c),n.url=l(n.url,n.data),i?n.data=n.serialize(n.data):n.url=s(n.url,n.data);var o=new e.XMLHttpRequest,a=!1,d=o.abort;o.abort=function(){a=!0,d.call(o)},o.open(n.method,n.url,"boolean"!=typeof n.async||n.async,"string"==typeof n.user?n.user:void 0,"string"==typeof n.password?n.password:void 0),n.serialize===JSON.stringify&&i&&o.setRequestHeader("Content-Type","application/json; charset=utf-8"),n.deserialize===u&&o.setRequestHeader("Accept","application/json, text/*"),n.withCredentials&&(o.withCredentials=n.withCredentials);for(var v in n.headers)({}).hasOwnProperty.call(n.headers,v)&&o.setRequestHeader(v,n.headers[v]);"function"==typeof n.config&&(o=n.config(o,n)||o),o.onreadystatechange=function(){if(!a&&4===o.readyState)try{var e=n.extract!==c?n.extract(o,n):n.deserialize(n.extract(o,n));if(o.status>=200&&o.status<300||304===o.status||h.test(n.url))t(f(n.type,e));else{var i=new Error(o.responseText);for(var l in e)i[l]=e[l];r(i)}}catch(e){r(e)}},i&&null!=n.data?o.send(n.data):o.send()});return!0===n.background?d:a(d)}function a(n,o){var a=r();n=i(n,o);var u=new t(function(t,r){var i=n.callbackName||"_mithril_"+Math.round(1e16*Math.random())+"_"+p++,o=e.document.createElement("script");e[i]=function(r){o.parentNode.removeChild(o),t(f(n.type,r)),delete e[i]},o.onerror=function(){o.parentNode.removeChild(o),r(new Error("JSONP request failed")),delete e[i]},null==n.data&&(n.data={}),n.url=l(n.url,n.data),n.data[n.callbackKey||"callback"]=i,o.src=s(n.url,n.data),e.document.documentElement.appendChild(o)});return!0===n.background?u:a(u)}function l(e,t){if(null==t)return e;for(var n=e.match(/:[^\/]+/gi)||[],r=0;r<n.length;r++){var i=n[r].slice(1);null!=t[i]&&(e=e.replace(n[r],t[i]))}return e}function s(e,t){var n=d(t);if(""!==n){e+=(e.indexOf("?")<0?"?":"&")+n}return e}function u(e){try{return""!==e?JSON.parse(e):null}catch(t){throw new Error(e)}}function c(e){return e.responseText}function f(e,t){if("function"==typeof e){if(!Array.isArray(t))return new e(t);for(var n=0;n<t.length;n++)t[n]=new e(t[n])}return t}var v,p=0;return{request:o,jsonp:a,setCompletionCallback:n}}(window,f),p=function(e){function t(e){return V=e}function r(e,t,n,r,o,a,l){for(var s=n;s<r;s++){var u=t[s];null!=u&&i(e,u,o,l,a)}}function i(e,t,n,r,i){var u=t.tag;if("string"!=typeof u)return c(e,t,n,r,i);switch(t.state={},null!=t.attrs&&M(t.attrs,t,n),u){case"#":return o(e,t,i);case"<":return a(e,t,i);case"[":return l(e,t,n,r,i);default:return s(e,t,n,r,i)}}function o(e,t,n){return t.dom=H.createTextNode(t.children),E(e,t.dom,n),t.dom}function a(e,t,n){var r=t.children.match(/^\s*?<(\w+)/im)||[],i={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"}[r[1]]||"div",o=H.createElement(i);o.innerHTML=t.children,t.dom=o.firstChild,t.domSize=o.childNodes.length;for(var a,l=H.createDocumentFragment();a=o.firstChild;)l.appendChild(a);return E(e,l,n),l}function l(e,t,n,i,o){var a=H.createDocumentFragment();if(null!=t.children){var l=t.children;r(a,l,0,l.length,n,null,i)}return t.dom=a.firstChild,t.domSize=a.childNodes.length,E(e,a,o),a}function s(e,t,i,o,a){var l=t.tag;switch(t.tag){case"svg":o="http://www.w3.org/2000/svg";break;case"math":o="http://www.w3.org/1998/Math/MathML"}var s=t.attrs,u=s&&s.is,c=o?u?H.createElementNS(o,l,{is:u}):H.createElementNS(o,l):u?H.createElement(l,{is:u}):H.createElement(l);if(t.dom=c,null!=s&&j(t,s,o),E(e,c,a),null!=t.attrs&&null!=t.attrs.contenteditable)A(t);else if(null!=t.text&&(""!==t.text?c.textContent=t.text:t.children=[n("#",void 0,void 0,t.text,void 0,void 0)]),null!=t.children){var f=t.children;r(c,f,0,f.length,i,null,o),O(t)}return c}function u(e,t){var r;if("function"==typeof e.tag.view){if(e.state=Object.create(e.tag),r=e.state.view,null!=r.$$reentrantLock$$)return B;r.$$reentrantLock$$=!0}else{if(e.state=void 0,r=e.tag,null!=r.$$reentrantLock$$)return B;r.$$reentrantLock$$=!0,e.state=null!=e.tag.prototype&&"function"==typeof e.tag.prototype.view?new e.tag(e):e.tag(e)}if(e._state=e.state,null!=e.attrs&&M(e.attrs,e,t),M(e._state,e,t),e.instance=n.normalize(e._state.view.call(e.state,e)),e.instance===e)throw Error("A view cannot return the vnode it received as argument");r.$$reentrantLock$$=null}function c(e,t,n,r,o){if(u(t,n),null!=t.instance){var a=i(e,t.instance,n,r,o);return t.dom=t.instance.dom,t.domSize=null!=t.dom?t.instance.domSize:0,E(e,a,o),a}return t.domSize=0,B}function f(e,t,n,o,a,l,s){if(t!==n&&(null!=t||null!=n))if(null==t)r(e,n,0,n.length,a,l,void 0);else if(null==n)k(t,0,t.length,n);else{if(t.length===n.length){for(var u=!1,c=0;c<n.length;c++)if(null!=n[c]&&null!=t[c]){u=null==n[c].key&&null==t[c].key;break}if(u){for(var c=0;c<t.length;c++)t[c]!==n[c]&&(null==t[c]&&null!=n[c]?i(e,n[c],a,s,x(t,c+1,l)):null==n[c]?k(t,c,c+1,n):d(e,t[c],n[c],a,x(t,c+1,l),o,s));return}}if(o=o||g(t,n)){var f=t.pool;t=t.concat(t.pool)}for(var h,v=0,p=0,m=t.length-1,y=n.length-1;m>=v&&y>=p;){var A=t[v],S=n[p];if(A!==S||o)if(null==A)v++;else if(null==S)p++;else if(A.key===S.key){var _=null!=f&&v>=t.length-f.length||null==f&&o;v++,p++,d(e,A,S,a,x(t,v,l),_,s),o&&A.tag===S.tag&&E(e,b(A),l)}else{var A=t[m];if(A!==S||o)if(null==A)m--;else if(null==S)p++;else{if(A.key!==S.key)break;var _=null!=f&&m>=t.length-f.length||null==f&&o;d(e,A,S,a,x(t,m+1,l),_,s),(o||p<y)&&E(e,b(A),x(t,v,l)),m--,p++}else m--,p++}else v++,p++}for(;m>=v&&y>=p;){var A=t[m],S=n[y];if(A!==S||o)if(null==A)m--;else if(null==S)y--;else if(A.key===S.key){var _=null!=f&&m>=t.length-f.length||null==f&&o;d(e,A,S,a,x(t,m+1,l),_,s),o&&A.tag===S.tag&&E(e,b(A),l),null!=A.dom&&(l=A.dom),m--,y--}else{if(h||(h=w(t,m)),null!=S){var L=h[S.key];if(null!=L){var j=t[L],_=null!=f&&L>=t.length-f.length||null==f&&o;d(e,j,S,a,x(t,m+1,l),o,s),E(e,b(j),l),t[L].skip=!0,null!=j.dom&&(l=j.dom)}else{var C=i(e,S,a,void 0,l);l=C}}y--}else m--,y--;if(y<p)break}r(e,n,p,y+1,a,l,s),k(t,v,m+1,n)}}function d(e,t,n,r,o,a,l){var s=t.tag;if(s===n.tag){if(n.state=t.state,n._state=t._state,n.events=t.events,!a&&U(n,t))return;if("string"==typeof s)switch(null!=n.attrs&&(a?(n.state={},M(n.attrs,n,r)):D(n.attrs,n,r)),s){case"#":h(t,n);break;case"<":v(e,t,n,o);break;case"[":p(e,t,n,a,r,o,l);break;default:m(t,n,a,r,l)}else y(e,t,n,r,o,a,l)}else S(t,null),i(e,n,r,l,o)}function h(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children),t.dom=e.dom}function v(e,t,n,r){t.children!==n.children?(b(t),a(e,n,r)):(n.dom=t.dom,n.domSize=t.domSize)}function p(e,t,n,r,i,o,a){f(e,t.children,n.children,r,i,o,a);var l=0,s=n.children;if(n.dom=null,null!=s){for(var u=0;u<s.length;u++){var c=s[u];null!=c&&null!=c.dom&&(null==n.dom&&(n.dom=c.dom),l+=c.domSize||1)}1!==l&&(n.domSize=l)}}function m(e,t,r,i,o){var a=t.dom=e.dom;switch(t.tag){case"svg":o="http://www.w3.org/2000/svg";break;case"math":o="http://www.w3.org/1998/Math/MathML"}"textarea"===t.tag&&(null==t.attrs&&(t.attrs={}),null!=t.text&&(t.attrs.value=t.text,t.text=void 0)),z(t,e.attrs,t.attrs,o),null!=t.attrs&&null!=t.attrs.contenteditable?A(t):null!=e.text&&null!=t.text&&""!==t.text?e.text.toString()!==t.text.toString()&&(e.dom.firstChild.nodeValue=t.text):(null!=e.text&&(e.children=[n("#",void 0,void 0,e.text,void 0,e.dom.firstChild)]),null!=t.text&&(t.children=[n("#",void 0,void 0,t.text,void 0,void 0)]),f(a,e.children,t.children,r,i,null,o))}function y(e,t,r,o,a,l,s){if(l)u(r,o);else{if(r.instance=n.normalize(r._state.view.call(r.state,r)),r.instance===r)throw Error("A view cannot return the vnode it received as argument");null!=r.attrs&&D(r.attrs,r,o),D(r._state,r,o)}null!=r.instance?(null==t.instance?i(e,r.instance,o,s,a):d(e,t.instance,r.instance,o,a,l,s),r.dom=r.instance.dom,r.domSize=r.instance.domSize):null!=t.instance?(S(t.instance,null),r.dom=void 0,r.domSize=0):(r.dom=t.dom,r.domSize=t.domSize)}function g(e,t){if(null!=e.pool&&Math.abs(e.pool.length-t.length)<=Math.abs(e.length-t.length)){var n=e[0]&&e[0].children&&e[0].children.length||0,r=e.pool[0]&&e.pool[0].children&&e.pool[0].children.length||0,i=t[0]&&t[0].children&&t[0].children.length||0;if(Math.abs(r-i)<=Math.abs(n-i))return!0}return!1}function w(e,t){for(var n={},r=0,r=0;r<t;r++){var i=e[r];if(null!=i){var o=i.key;null!=o&&(n[o]=r)}}return n}function b(e){var t=e.domSize;if(null!=t||null==e.dom){var n=H.createDocumentFragment();if(t>0){for(var r=e.dom;--t;)n.appendChild(r.nextSibling);n.insertBefore(r,n.firstChild)}return n}return e.dom}function x(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function E(e,t,n){n&&n.parentNode?e.insertBefore(t,n):e.appendChild(t)}function A(e){var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=e.text||null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted")}function k(e,t,n,r){for(var i=t;i<n;i++){var o=e[i];null!=o&&(o.skip?o.skip=!1:S(o,r))}}function S(e,t){function n(){if(++i===r&&(L(e),e.dom)){var n=e.domSize||1;if(n>1)for(var o=e.dom;--n;)_(o.nextSibling);_(e.dom),null==t||null!=e.domSize||$(e.attrs)||"string"!=typeof e.tag||(t.pool?t.pool.push(e):t.pool=[e])}}var r=1,i=0;if(e.attrs&&"function"==typeof e.attrs.onbeforeremove){var o=e.attrs.onbeforeremove.call(e.state,e);null!=o&&"function"==typeof o.then&&(r++,o.then(n,n))}if("string"!=typeof e.tag&&"function"==typeof e._state.onbeforeremove){var o=e._state.onbeforeremove.call(e.state,e);null!=o&&"function"==typeof o.then&&(r++,o.then(n,n))}n()}function _(e){var t=e.parentNode;null!=t&&t.removeChild(e)}function L(e){if(e.attrs&&"function"==typeof e.attrs.onremove&&e.attrs.onremove.call(e.state,e),"string"!=typeof e.tag&&"function"==typeof e._state.onremove&&e._state.onremove.call(e.state,e),null!=e.instance)L(e.instance);else{var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var r=t[n];null!=r&&L(r)}}}function j(e,t,n){for(var r in t)C(e,r,null,t[r],n)}function C(e,t,n,r,i){var o=e.dom;if("key"!==t&&"is"!==t&&(n!==r||T(e,t)||"object"==typeof r)&&void 0!==r&&!N(t)){var a=t.indexOf(":");if(a>-1&&"xlink"===t.substr(0,a))o.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(a+1),r);else if("o"===t[0]&&"n"===t[1]&&"function"==typeof r)q(e,t,r);else if("style"===t)I(o,n,r);else if(t in o&&!P(t)&&void 0===i&&!R(e)){if("input"===e.tag&&"value"===t&&e.dom.value==r&&e.dom===H.activeElement)return;if("select"===e.tag&&"value"===t&&e.dom.value==r&&e.dom===H.activeElement)return;if("option"===e.tag&&"value"===t&&e.dom.value==r)return;if("input"===e.tag&&"type"===t)return void o.setAttribute(t,r);o[t]=r}else"boolean"==typeof r?r?o.setAttribute(t,""):o.removeAttribute(t):o.setAttribute("className"===t?"class":t,r)}}function O(e){var t=e.attrs;"select"===e.tag&&null!=t&&("value"in t&&C(e,"value",null,t.value,void 0),"selectedIndex"in t&&C(e,"selectedIndex",null,t.selectedIndex,void 0))}function z(e,t,n,r){if(null!=n)for(var i in n)C(e,i,t&&t[i],n[i],r);if(null!=t)for(var i in t)null!=n&&i in n||("className"===i&&(i="class"),"o"!==i[0]||"n"!==i[1]||N(i)?"key"!==i&&e.dom.removeAttribute(i):q(e,i,void 0))}function T(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&e.dom===H.activeElement}function N(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function P(e){return"href"===e||"list"===e||"form"===e||"width"===e||"height"===e}function R(e){return e.attrs.is||e.tag.indexOf("-")>-1}function $(e){return null!=e&&(e.oncreate||e.onupdate||e.onbeforeremove||e.onremove)}function I(e,t,n){if(t===n&&(e.style.cssText="",t=null),null==n)e.style.cssText="";else if("string"==typeof n)e.style.cssText=n;else{"string"==typeof t&&(e.style.cssText="");for(var r in n)e.style[r]=n[r];if(null!=t&&"string"!=typeof t)for(var r in t)r in n||(e.style[r]="")}}function q(e,t,n){var r=e.dom,i="function"!=typeof V?n:function(e){var t=n.call(r,e);return V.call(r,e),t};if(t in r)r[t]="function"==typeof n?i:null;else{var o=t.slice(2);if(void 0===e.events&&(e.events={}),e.events[t]===i)return;null!=e.events[t]&&r.removeEventListener(o,e.events[t],!1),"function"==typeof n&&(e.events[t]=i,r.addEventListener(o,e.events[t],!1))}}function M(e,t,n){"function"==typeof e.oninit&&e.oninit.call(t.state,t),"function"==typeof e.oncreate&&n.push(e.oncreate.bind(t.state,t))}function D(e,t,n){"function"==typeof e.onupdate&&n.push(e.onupdate.bind(t.state,t))}function U(e,t){var n,r;return null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate&&(n=e.attrs.onbeforeupdate.call(e.state,e,t)),"string"!=typeof e.tag&&"function"==typeof e._state.onbeforeupdate&&(r=e._state.onbeforeupdate.call(e.state,e,t)),!(void 0===n&&void 0===r||n||r)&&(e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,!0)}function F(e,t){if(!e)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var r=[],i=H.activeElement;null==e.vnodes&&(e.textContent=""),Array.isArray(t)||(t=[t]),f(e,e.vnodes,n.normalizeChildren(t),!1,r,null,void 0),e.vnodes=t;for(var o=0;o<r.length;o++)r[o]();H.activeElement!==i&&i.focus()}var V,H=e.document,B=H.createDocumentFragment();return{render:F,setEventCallback:t}},m=function(e){function t(e,t){n(e),o.push(e,a(t))}function n(e){var t=o.indexOf(e);t>-1&&o.splice(t,2)}function r(){for(var e=1;e<o.length;e+=2)o[e]()}var i=p(e);i.setEventCallback(function(e){!1!==e.redraw&&r()});var o=[];return{subscribe:t,unsubscribe:n,redraw:r,render:i.render}}(window);v.setCompletionCallback(m.redraw);c.mount=function(e){return function(t,r){if(null===r)return e.render(t,[]),void e.unsubscribe(t);if(null==r.view&&"function"!=typeof r)throw new Error("m.mount(element, component) expects a component, not a vnode");var i=function(){e.render(t,n(r))};e.subscribe(t,i),e.redraw()}}(m);var y=f,g=function(e){if(""===e||null==e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t=e.split("&"),n={},r={},i=0;i<t.length;i++){var o=t[i].split("="),a=decodeURIComponent(o[0]),l=2===o.length?decodeURIComponent(o[1]):"";"true"===l?l=!0:"false"===l&&(l=!1);var s=a.split(/\]\[?|\[/),u=n;a.indexOf("[")>-1&&s.pop();for(var c=0;c<s.length;c++){var f=s[c],d=s[c+1],h=""==d||!isNaN(parseInt(d,10)),v=c===s.length-1;if(""===f){var a=s.slice(0,c).join();null==r[a]&&(r[a]=0),f=r[a]++}null==u[f]&&(u[f]=v?l:h?[]:{}),u=u[f]}}return n},w=function(e){function t(t){var n=e.location[t].replace(/(?:%[a-f89][a-f0-9])+/gim,decodeURIComponent);return"pathname"===t&&"/"!==n[0]&&(n="/"+n),n}function n(e){return function(){null==i&&(i=a(function(){i=null,e()}))}}function r(e,t,n){var r=e.indexOf("?"),i=e.indexOf("#"),o=r>-1?r:i>-1?i:e.length;if(r>-1){var a=i>-1?i:e.length,l=g(e.slice(r+1,a));for(var s in l)t[s]=l[s]}if(i>-1){var u=g(e.slice(i+1));for(var s in u)n[s]=u[s]}return e.slice(0,o)}var i,o="function"==typeof e.history.pushState,a="function"==typeof setImmediate?setImmediate:setTimeout,l={prefix:"#!"};return l.getPath=function(){switch(l.prefix.charAt(0)){case"#":return t("hash").slice(l.prefix.length);case"?":return t("search").slice(l.prefix.length)+t("hash");default:return t("pathname").slice(l.prefix.length)+t("search")+t("hash")}},l.setPath=function(t,n,i){var a={},s={};if(t=r(t,a,s),null!=n){for(var u in n)a[u]=n[u];t=t.replace(/:([^\/]+)/g,function(e,t){return delete a[t],n[t]})}var c=d(a);c&&(t+="?"+c);var f=d(s);if(f&&(t+="#"+f),o){var h=i?i.state:null,v=i?i.title:null;e.onpopstate(),i&&i.replace?e.history.replaceState(h,v,l.prefix+t):e.history.pushState(h,v,l.prefix+t)}else e.location.href=l.prefix+t},l.defineRoutes=function(t,i,a){function s(){var n=l.getPath(),o={},s=r(n,o,o),u=e.history.state;if(null!=u)for(var c in u)o[c]=u[c];for(var f in t){var d=new RegExp("^"+f.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(d.test(s))return void s.replace(d,function(){for(var e=f.match(/:[^\/]+/g)||[],r=[].slice.call(arguments,1,-2),a=0;a<e.length;a++)o[e[a].replace(/:|\./g,"")]=decodeURIComponent(r[a]);i(t[f],o,n,f)})}a(n,o)}o?e.onpopstate=n(s):"#"===l.prefix.charAt(0)&&(e.onhashchange=s),s()},l};c.route=function(e,t){var r,i,o,a,l,s=w(e),u=function(e){return e},c=function(e,c,f){if(null==e)throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined");var d=function(){null!=r&&t.render(e,r(n(i,o.key,o)))},h=function(e){if(e===c)throw new Error("Could not resolve default route "+c);s.setPath(c,null,{replace:!0})};s.defineRoutes(f,function(e,t,n){var s=l=function(e,c){s===l&&(i=null==c||"function"!=typeof c.view&&"function"!=typeof c?"div":c,o=t,a=n,l=null,r=(e.render||u).bind(e),d())};e.view||"function"==typeof e?s({},e):e.onmatch?y.resolve(e.onmatch(t,n)).then(function(t){s(e,t)},h):s(e,"div")},h),t.subscribe(e,d)};return c.set=function(e,t,n){null!=l&&(n={replace:!0}),l=null,s.setPath(e,t,n)},c.get=function(){return a},c.prefix=function(e){s.prefix=e},c.link=function(e){e.dom.setAttribute("href",s.prefix+e.attrs.href),e.dom.onclick=function(e){if(!(e.ctrlKey||e.metaKey||e.shiftKey||2===e.which)){e.preventDefault(),e.redraw=!1;var t=this.getAttribute("href");0===t.indexOf(s.prefix)&&(t=t.slice(s.prefix.length)),c.set(t,void 0,void 0)}}},c.param=function(e){return void 0!==o&&void 0!==e?o[e]:o},c}(window,m),c.withAttr=function(e,t,n){return function(r){t.call(n||this,e in r.currentTarget?r.currentTarget[e]:r.currentTarget.getAttribute(e))}};var b=p(window);c.render=b.render,c.redraw=m.redraw,c.request=v.request,c.jsonp=v.jsonp,c.parseQueryString=g,c.buildQueryString=d,c.version="1.1.1",c.vnode=n,void 0!==t?t.exports=c:window.m=c}()}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],8:[function(e,n,r){!function(e){"use strict";function r(){}function i(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function o(e){return function(){return this[e].apply(this,arguments)}}function a(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!=typeof e)&&a(e.listener)}var l=r.prototype,s=e.EventEmitter;l.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},l.flattenListeners=function(e){var t,n=[];for(t=0;t<e.length;t+=1)n.push(e[t].listener);return n},l.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},l.addListener=function(e,t){if(!a(t))throw new TypeError("listener must be a function");var n,r=this.getListenersAsObject(e),o="object"==typeof t;for(n in r)r.hasOwnProperty(n)&&-1===i(r[n],t)&&r[n].push(o?t:{listener:t,once:!1});return this},l.on=o("addListener"),l.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},l.once=o("addOnceListener"),l.defineEvent=function(e){return this.getListeners(e),this},l.defineEvents=function(e){for(var t=0;t<e.length;t+=1)this.defineEvent(e[t]);return this},l.removeListener=function(e,t){var n,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&-1!==(n=i(o[r],t))&&o[r].splice(n,1);return this},l.off=o("removeListener"),l.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},l.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},l.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,a=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):a.call(this,r,i));return this},l.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if(e instanceof RegExp)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},l.removeAllListeners=o("removeEvent"),l.emitEvent=function(e,t){var n,r,i,o,a=this.getListenersAsObject(e)
|
2 |
+
;for(o in a)if(a.hasOwnProperty(o))for(n=a[o].slice(0),i=0;i<n.length;i++)r=n[i],!0===r.once&&this.removeListener(e,r.listener),r.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,r.listener);return this},l.trigger=o("emitEvent"),l.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},l.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},l._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},l._getEvents=function(){return this._events||(this._events={})},r.noConflict=function(){return e.EventEmitter=s,r},"function"==typeof t&&t.amd?t(function(){return r}):"object"==typeof n&&n.exports?n.exports=r:e.EventEmitter=r}(this||{})},{}]},{},[1])}();
|
3 |
//# sourceMappingURL=admin.min.js.map
|
assets/js/admin.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["admin.js"],"names":["require","undefined","define","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","m","window","EventEmitter","context","document","getElementById","events","tabs","helpers","settings","ListFetcher","mount","mc4wp","deps","mithril","./admin/helpers.js","./admin/list-fetcher.js","./admin/settings.js","./admin/tabs.js","wolfy87-eventemitter","2","toggleElement","selector","elements","querySelectorAll","show","clientHeight","style","display","bindEventToElement","element","event","handler","addEventListener","attachEvent","bindEventToElements","Array","prototype","forEach","debounce","func","wait","immediate","timeout","this","args","arguments","later","apply","callNow","clearTimeout","setTimeout","showIfElements","getAttribute","checked","value","conditionMet","config","hide","visibility","opacity","inputs","inputElement","removeAttribute","setAttribute","JSON","parse","parentElements","parentElement","3","working","done","mailchimp","api_connected","lists","fetch","$","jQuery","mc4wp_vars","i18n","preventDefault","post","ajaxurl","action","data","location","reload","always","redraw","bind","view","method","onsubmit","type","fetching_mailchimp_lists","renew_mailchimp_lists","className","disabled","trust","fetching_mailchimp_lists_can_take_a_while","fetching_mailchimp_lists_done","4","_typeof","Symbol","iterator","obj","constructor","Settings","getSelectedListsWhere","searchKey","searchValue","selectedLists","filter","el","getSelectedLists","updateSelectedLists","listInputs","input","push","trigger","toggleVisibleLists","rows","replace","querySelector","on","5","URL","Tabs","get","id","_open","tab","updateState","$tabs","removeClass","css","$tabNavs","nav","blur","url","setParameter","href","history","pushState","title","refererField","tb_remove","forms","editor","refresh","split","switchTab","tabId","match","urlParams","returnValue","$context","find","each","substring","first","text","open","click","body","activeTab","replaceState","state","./url.js","6","query","hasOwnProperty","b","decodeURIComponent","build","ret","d","encodeURIComponent","join","key","7","global","Vnode","tag","attrs0","children","dom","attrs","domSize","_state","instance","skip","compileSelector","classes","selectorParser","exec","attrValue","selectorCache","execSelector","childList","hasAttrs","class","hasOwn","isArray","hyperscript","start","cached","normalized","normalizeChildren","throttle","callback","last","pending","requestAnimationFrame","now","Date","normalize","node","html","fragment","attrs1","PromisePolyfill","executor","list","shouldAbsorb","execute","then","callAsync","console","error","resolvers","rejectors","retry","self","TypeError","executeOnce","rejectCurrent","run","fn","runs","onerror","resolveCurrent","_instance","setImmediate","onFulfilled","onRejection","handle","next","resolveNext","rejectNext","promise","resolve","reject","catch","all","total","count","values","consume","race","Promise","buildQueryString","object","destructure","key0","Object","toString","FILE_PROTOCOL_REGEX","RegExp","requestService","$window","setCompletionCallback","oncompletion","finalizer","complete","finalize","promise0","then0","extra","request","toUpperCase","useBody","serialize","FormData","stringify","deserialize","extract","interpolate","assemble","xhr","XMLHttpRequest","aborted","_abort","abort","async","user","password","setRequestHeader","withCredentials","headers","onreadystatechange","readyState","response","status","test","cast","responseText","send","background","jsonp","callbackName","Math","round","random","callbackCount","script","createElement","parentNode","removeChild","callbackKey","src","documentElement","appendChild","tokens","slice","querystring","indexOf","type0","coreRenderer","setEventCallback","onevent","createNodes","parent","vnodes","end","hooks","nextSibling","ns","vnode","createNode","createComponent","initLifecycle","createText","createHTML","createFragment","$doc","createTextNode","insertNode","match1","parent1","caption","thead","tbody","tfoot","tr","th","td","colgroup","col","temp","innerHTML","firstChild","childNodes","child","createDocumentFragment","attrs2","is","createElementNS","setAttrs","contenteditable","setContentEditable","textContent","setLateAttrs","initComponent","sentinel","create","$$reentrantLock$$","$emptyFragment","updateNodes","old","recycling","removeNodes","isUnkeyed","getNextSibling","updateNode","isRecyclable","pool","concat","map","oldStart","oldEnd","v","shouldRecycle","toFragment","getKeyMap","oldIndex","movable","oldTag","shouldNotUpdate","updateLifecycle","updateText","updateHTML","updateFragment","updateElement","updateComponent","removeNode","nodeValue","updateAttrs","abs","oldChildrenLength","poolChildrenLength","vnodesChildrenLength","key2","count0","insertBefore","content","continuation","called","expected","onremove","removeNodeFromDOM","hasIntegrationMethods","onbeforeremove","result","setAttr","isFormAttribute","isLifecycleMethod","nsLastIndex","substr","setAttributeNS","updateEvent","updateStyle","isAttribute","isCustomElement","activeElement","selectedIndex","attr","source","oncreate","onupdate","cssText","eventName","removeEventListener","oninit","forceVnodeUpdate","forceComponentUpdate","onbeforeupdate","render","active","focus","redrawService","subscribe","key1","unsubscribe","callbacks","index","splice","renderService","redrawService0","root","component","run0","parseQueryString","string","charAt","entries","data0","counters","entry","key5","levels","cursor","pop","j","level","nextLevel","isNumber","isNaN","parseInt","isValue","coreRouter","normalize1","fragment0","debounceAsync","callback0","asyncId","callAsync0","parsePath","path","queryData","hashData","queryIndex","hashIndex","pathEnd","queryEnd","queryParams","key4","hashParams","supportsPushState","router","prefix","getPath","setPath","options","match2","token","hash","onpopstate","defineRoutes","routes","resolveRoute","params","pathname","k","route0","matcher","keys","onhashchange","route","render1","attrs3","currentPath","lastUpdate","routeService","identity","defaultRoute","run1","bail","payload","update","routeResolver","comp","onmatch","resolved","set","prefix0","link","vnode1","onclick","ctrlKey","metaKey","shiftKey","which","param","key3","withAttr","attrName","callback1","currentTarget","_28","version","8","indexOfListener","listeners","listener","alias","name","isValidListener","proto","originalGlobalValue","getListeners","evt","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","removeEvent","_events","removeAllListeners","emitEvent","listenersMap","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","noConflict","amd"],"mappings":"CAAA,WAAe,GAAIA,OAAUC,GAAeC,MAASD,IAAW,QAAUE,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATV,IAAqBA,CAAQ,KAAIS,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGG,EAAE,MAAOA,GAAEH,GAAE,EAAI,IAAII,GAAE,GAAIC,OAAM,uBAAuBL,EAAE,IAAK,MAAMI,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEV,EAAEG,IAAIQ,WAAYZ,GAAEI,GAAG,GAAGS,KAAKF,EAAEC,QAAQ,SAASb,GAAG,GAAIE,GAAED,EAAEI,GAAG,GAAGL,EAAG,OAAOI,GAAEF,GAAIF,IAAIY,EAAEA,EAAEC,QAAQb,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGQ,QAAkD,IAAI,GAA1CL,GAAkB,kBAATX,IAAqBA,EAAgBQ,EAAE,EAAEA,EAAEF,EAAEY,OAAOV,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKY,GAAG,SAASnB,EAAQoB,EAAOJ,GACvhB,YAIA,IAAIK,GAAIC,OAAOD,EAAIrB,EAAQ,WACvBuB,EAAevB,EAAQ,wBAGvBwB,EAAUC,SAASC,eAAe,eAClCC,EAAS,GAAIJ,GACbK,EAAO5B,EAAQ,mBAAmBwB,GAClCK,EAAU7B,EAAQ,sBAClB8B,EAAW9B,EAAQ,uBAAuBwB,EAASK,EAASF,GAG5DI,EAAc/B,EAAQ,2BACtBgC,EAAQP,SAASC,eAAe,qBAChCM,IACAX,EAAEW,MAAMA,EAAO,GAAID,IAIvBT,OAAOW,MAAQX,OAAOW,UACtBX,OAAOW,MAAMC,KAAOZ,OAAOW,MAAMC,SACjCZ,OAAOW,MAAMC,KAAKC,QAAUd,EAC5BC,OAAOW,MAAMJ,QAAUA,EACvBP,OAAOW,MAAMN,OAASA,EACtBL,OAAOW,MAAMH,SAAWA,EACxBR,OAAOW,MAAML,KAAOA,IAEjBQ,qBAAqB,EAAEC,0BAA0B,EAAEC,sBAAsB,EAAEC,kBAAkB,EAAEJ,QAAU,EAAEK,uBAAuB,IAAIC,GAAG,SAASzC,EAAQoB,EAAOJ,GACpK,YAEA,IAAIa,KAEJA,GAAQa,cAAgB,SAAUC,GAEjC,IAAK,GADDC,GAAWnB,SAASoB,iBAAiBF,GAChChC,EAAI,EAAGA,EAAIiC,EAAS1B,OAAQP,IAAK,CACzC,GAAImC,GAAOF,EAASjC,GAAGoC,cAAgB,CACvCH,GAASjC,GAAGqC,MAAMC,QAAUH,EAAO,GAAK,SAI1CjB,EAAQqB,mBAAqB,SAAUC,EAASC,EAAOC,GAClDF,EAAQG,iBACXH,EAAQG,iBAAiBF,EAAOC,GACtBF,EAAQI,aAClBJ,EAAQI,YAAY,KAAOH,EAAOC,IAIpCxB,EAAQ2B,oBAAsB,SAAUZ,EAAUQ,EAAOC,GACxDI,MAAMC,UAAUC,QAAQ1C,KAAK2B,EAAU,SAAUO,GAChDtB,EAAQqB,mBAAmBC,EAASC,EAAOC,MAK7CxB,EAAQ+B,SAAW,SAAUC,EAAMC,EAAMC,GACxC,GAAIC,EACJ,OAAO,YACN,GAAIxC,GAAUyC,KACVC,EAAOC,UACPC,EAAQ,WACXJ,EAAU,KACLD,GAAWF,EAAKQ,MAAM7C,EAAS0C,IAEjCI,EAAUP,IAAcC,CAC5BO,cAAaP,GACbA,EAAUQ,WAAWJ,EAAON,GACxBQ,GAAST,EAAKQ,MAAM7C,EAAS0C,KAOnC,WACC,GAAIO,GAAiBhD,SAASoB,iBAAiB,gBAG/CY,OAAMC,UAAUC,QAAQ1C,KAAKwD,EAAgB,SAAUtB,GAMtD,QAAST,KAGR,GAAkC,UAA9BuB,KAAKS,aAAa,SAAwBT,KAAKU,QAAnD,CAIA,GAAIC,GAAsC,aAA9BX,KAAKS,aAAa,QAAyBT,KAAKU,QAAUV,KAAKW,MACvEC,EAAeD,GAASE,EAAOF,KAE/BG,IACH5B,EAAQH,MAAMC,QAAU4B,EAAe,GAAK,OAC5C1B,EAAQH,MAAMgC,WAAaH,EAAe,GAAK,UAE/C1B,EAAQH,MAAMiC,QAAUJ,EAAe,GAAK,MAI7CpB,MAAMC,UAAUC,QAAQ1C,KAAKiE,EAAQ,SAAUC,GAC9CN,EAAeM,EAAaC,gBAAgB,YAAcD,EAAaE,aAAa,WAAY,eAxBlG,GAAIP,GAASQ,KAAKC,MAAMpC,EAAQuB,aAAa,gBACzCc,EAAiB/D,SAASoB,iBAAiB,UAAYiC,EAAO3B,QAAU,MACxE+B,EAAS/B,EAAQN,iBAAiB,yCAClCkC,MAAuB9E,KAAhB6E,EAAOC,MAAsBD,EAAOC,IA0B/CtB,OAAMC,UAAUC,QAAQ1C,KAAKuE,EAAgB,SAAUC,GACtD/C,EAAczB,KAAKwE,KAIpB5D,EAAQ2B,oBAAoBgC,EAAgB,SAAU9C,QAIxDtB,EAAOJ,QAAUa,OAEX6D,GAAG,SAAS1F,EAAQoB,EAAOJ,GACjC,YAMA,SAASe,KACLkC,KAAK0B,SAAU,EACf1B,KAAK2B,MAAO,EAGRd,EAAOe,UAAUC,eAAkD,GAAjChB,EAAOe,UAAUE,MAAM7E,QACzD+C,KAAK+B,QAVb,GAAIC,GAAI3E,OAAO4E,OACXpB,EAASqB,WACTC,EAAOtB,EAAOsB,IAYlBrE,GAAY2B,UAAUsC,MAAQ,SAAU7F,GACpCA,GAAKA,EAAEkG,iBAEPpC,KAAK0B,SAAU,EACf1B,KAAK2B,MAAO,EAEZK,EAAEK,KAAKC,SACHC,OAAQ,gCACTZ,KAAK,SAAUa,GACVA,GACAnF,OAAOkD,WAAW,WACdlD,OAAOoF,SAASC,UACjB,OAERC,OAAO,SAAUH,GAChBxC,KAAK0B,SAAU,EACf1B,KAAK2B,MAAO,EAEZvE,EAAEwF,UACJC,KAAK7C,QAGXlC,EAAY2B,UAAUqD,KAAO,WACzB,MAAO1F,GAAE,QACL2F,OAAQ,OACRC,SAAUhD,KAAK+B,MAAMc,KAAK7C,QAC1B5C,EAAE,KAAMA,EAAE,SACV6F,KAAM,SACNtC,MAAOX,KAAK0B,QAAUS,EAAKe,yBAA2Bf,EAAKgB,sBAC3DC,UAAW,SACXC,WAAYrD,KAAK0B,UACjBtE,EAAEkG,MAAM,YAAatD,KAAK0B,SAAWtE,EAAE,oBAAqB,cAAeA,EAAEkG,MAAM,YAAalG,EAAE,UAAW+E,EAAKoB,4CAA8C,GAAIvD,KAAK2B,MAAQvE,EAAE,gBAAiB+E,EAAKqB,gCAAkC,QAGnPrG,EAAOJ,QAAUe,OAEX2F,GAAG,SAAS1H,EAAQoB,EAAOJ,GACjC,YAEA,IAAI2G,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOlE,UAAY,eAAkBoE,IAElQE,EAAW,SAAkBxG,EAASK,EAASF,GAWlD,QAASsG,GAAsBC,EAAWC,GACzC,MAAOC,GAAcC,OAAO,SAAUC,GACrC,MAAOA,GAAGJ,KAAeC,IAI3B,QAASI,KACR,MAAOH,GAGR,QAASI,KAeR,MAdAJ,MAEA3E,MAAMC,UAAUC,QAAQ1C,KAAKwH,EAAY,SAAUC,IAErB,iBAAlBA,GAAM/D,SAA0B+D,EAAM/D,UAIb,WAAhCgD,EAAQ5B,EAAM2C,EAAM9D,SACvBwD,EAAcO,KAAK5C,EAAM2C,EAAM9D,UAIjCjD,EAAOiH,QAAQ,wBAAyBR,IACjCA,EAGR,QAASS,KACR,GAAIC,GAAOrH,SAASoB,iBAAiB,4BACrCY,OAAMC,UAAUC,QAAQ1C,KAAK6H,EAAM,SAAUR,GAG3BL,EAAsB,KAD1BK,EAAG5D,aAAa,iBACwBxD,OAAS,EAG7DoH,EAAGjD,aAAa,QAASiD,EAAG5D,aAAa,SAASqE,QAAQ,SAAU,KAEpET,EAAGjD,aAAa,QAASiD,EAAG5D,aAAa,SAAW,aA5CvD,GACI+D,IADOjH,EAAQwH,cAAc,QAChBxH,EAAQqB,iBAAiB,sBACtCkD,EAAQI,WAAWN,UAAUE,MAC7BqC,IAmDJ,OALAzG,GAAOsH,GAAG,uBAAwBJ,GAClChH,EAAQ2B,oBAAoBiF,EAAY,SAAUD,GAElDA,KAGCD,iBAAkBA,GAIpBnH,GAAOJ,QAAUgH,OAEXkB,GAAG,SAASlJ,EAAQoB,EAAOJ,GACjC,YAEA,IAAImI,GAAMnJ,EAAQ,YAGdoJ,EAAO,SAAc5H,GA0BxB,QAAS6H,GAAIC,GAEZ,IAAK,GAAI3I,GAAI,EAAGA,EAAIiB,EAAKV,OAAQP,IAChC,GAAIiB,EAAKjB,GAAG2I,KAAOA,EAClB,MAAO1H,GAAKjB,GAOf,QAAS4I,GAAMC,EAAKC,GAOnB,GAJmB,gBAARD,KACVA,EAAMH,EAAIG,KAGNA,EACJ,OAAO,MAIWvJ,IAAfwJ,IACHA,GAAc,GAIfC,EAAMC,YAAY,cAAcC,IAAI,UAAW,QAC/CC,EAASF,YAAY,kBAGrBlG,MAAMC,UAAUC,QAAQ1C,KAAKuI,EAAIM,IAAK,SAAUA,GAC/CA,EAAIzC,WAAa,kBACjByC,EAAIC,SAILP,EAAIrG,QAAQH,MAAMC,QAAU,QAC5BuG,EAAIrG,QAAQkE,WAAa,aAGzB,IAAI2C,GAAMb,EAAIc,aAAa3I,OAAOoF,SAASwD,KAAM,MAAOV,EAAIF,GAwB5D,OArBIa,SAAQC,WAAaX,GACxBU,QAAQC,UAAUZ,EAAIF,GAAI,GAAIU,GAI/BK,EAAMb,GAGNc,EAAa1F,MAAQoF,EAGI,kBAAdO,YACVA,YAKc,WAAXf,EAAIF,IAAmBhI,OAAOW,OAASX,OAAOW,MAAMuI,OAASlJ,OAAOW,MAAMuI,MAAMC,QACnFxI,MAAMuI,MAAMC,OAAOC,WAGb,EAGR,QAASL,GAAMb,GACd,GAAIa,GAAQ5I,SAAS4I,MAAMM,MAAM,IACjClJ,UAAS4I,MAAQ5I,SAAS4I,MAAMtB,QAAQsB,EAAM,GAAIb,EAAIa,MAAQ,KAG/D,QAASO,GAAUzK,GAClBA,EAAIA,GAAKmB,OAAO8B,KAGhB,IAAIyH,GAAQ5G,KAAKS,aAAa,WAG9B,KAAKmG,EAAO,CACX,GAAIC,GAAQ7G,KAAKoD,UAAUyD,MAAM,iBAC7BA,KACHD,EAAQC,EAAM,IAKhB,IAAKD,EAAO,CACX,GAAIE,GAAY5B,EAAI5D,MAAMtB,KAAKiG,KAC/B,KAAKa,EAAUvB,IACd,MAEDqB,GAAQE,EAAUvB,IAKnB,OAFaD,EAAMsB,KAGlB1K,EAAEkG,iBACFlG,EAAE6K,aAAc,GACT,GA7HT,GAAI/E,GAAI3E,OAAO4E,OAEX+E,EAAWhF,EAAEzE,GACbkI,EAAQuB,EAASC,KAAK,QACtBrB,EAAWoB,EAASC,KAAK,YACzBZ,EAAe9I,EAAQwH,cAAc,kCACrCpH,IAgKJ,OA9JAqE,GAAEkF,KAAKzB,EAAO,SAAU/I,EAAGP,GAC1B,GAAIkJ,GAAKlJ,EAAEkJ,GAAG8B,UAAU,GACpBf,EAAQpE,EAAE7F,GAAG8K,KAAK,MAAMG,QAAQC,MAEpC1J,GAAK+G,MACJW,GAAIA,EACJe,MAAOA,EACPlH,QAAS/C,EACT0J,IAAKtI,EAAQqB,iBAAiB,YAAcyG,GAC5CiC,KAAM,WACL,MAAOhC,GAAMD,QAwIhBO,EAAS2B,MAAMZ,GACf3E,EAAExE,SAASgK,MAAMxC,GAAG,QAAS,YAAa2B,GAxB1C,WAGC,GAAKT,QAAQC,UAAb,CAIA,GAAIsB,GAAYhC,EAAMrB,OAAO,YAAYgB,IAAI,EAC7C,IAAKqC,EAAL,CAGA,GAAIlC,GAAMH,EAAIqC,EAAUpC,GAAG8B,UAAU,GAChC5B,KAGDW,QAAQwB,cAAkC,OAAlBxB,QAAQyB,OACnCzB,QAAQwB,aAAanC,EAAIF,GAAI,IAI9Be,EAAMb,SAOHlI,OAAOgC,kBAAoB6G,QAAQC,WACtC9I,OAAOgC,iBAAiB,WAAY,SAAUnD,GAC7C,OAAKA,EAAEyL,OAEArC,EADKpJ,EAAEyL,OACM,MAKrBL,KAAMhC,EACNF,IAAKA,GAIPjI,GAAOJ,QAAUoI,IAEdyC,WAAW,IAAIC,GAAG,SAAS9L,EAAQoB,EAAOJ,GAC7C,YAEA,IAAImI,IACH5D,MAAO,SAAeyE,GACrB,GAAI+B,MACArL,EAAIsJ,EAAIW,MAAM,IAClB,KAAK,GAAIhK,KAAKD,GACb,GAAKA,EAAEsL,eAAerL,GAAtB,CAGA,GAAIsL,GAAIvL,EAAEC,GAAGgK,MAAM,IACnBoB,GAAMG,mBAAmBD,EAAE,KAAOC,mBAAmBD,EAAE,IAGxD,MAAOF,IAERI,MAAO,SAAe1F,GACrB,GAAI2F,KACJ,KAAK,GAAIC,KAAK5F,GACb2F,EAAIzD,KAAK0D,EAAI,IAAMC,mBAAmB7F,EAAK4F,IAC3C,OAAOD,GAAIG,KAAK,MAElBtC,aAAc,SAAsBD,EAAKwC,EAAK5H,GAC7C,GAAI6B,GAAO0C,EAAI5D,MAAMyE,EAErB,OADAvD,GAAK+F,GAAO5H,EACLuE,EAAIgD,MAAM1F,IAInBrF,GAAOJ,QAAUmI,OAEXsD,GAAG,SAASzM,EAAQoB,EAAOJ,IACjC,SAAW0L,IACT,WACF,YACA,SAASC,GAAMC,EAAKJ,EAAKK,EAAQC,EAAUxB,EAAMyB,GAChD,OAAQH,IAAKA,EAAKJ,IAAKA,EAAKQ,MAAOH,EAAQC,SAAUA,EAAUxB,KAAMA,EAAMyB,IAAKA,EAAKE,YAAShN,GAAW2L,UAAO3L,GAAWiN,WAAQjN,GAAW0B,WAAQ1B,GAAWkN,aAAUlN,GAAWmN,MAAM,GAgB7L,QAASC,GAAgB1K,GAExB,IADA,GAAImI,GAAO8B,EAAM,MAAOU,KAAcN,KAC/BlC,EAAQyC,EAAeC,KAAK7K,IAAW,CAC7C,GAAIuE,GAAO4D,EAAM,GAAIlG,EAAQkG,EAAM,EACnC,IAAa,KAAT5D,GAAyB,KAAVtC,EAAcgI,EAAMhI,MAClC,IAAa,MAATsC,EAAc8F,EAAM1D,GAAK1E,MAC7B,IAAa,MAATsC,EAAcoG,EAAQ3E,KAAK/D,OAC/B,IAAoB,MAAhBkG,EAAM,GAAG,GAAY,CAC7B,GAAI2C,GAAY3C,EAAM,EAClB2C,KAAWA,EAAYA,EAAU1E,QAAQ,YAAa,MAAMA,QAAQ,QAAS,OAChE,UAAb+B,EAAM,GAAgBwC,EAAQ3E,KAAK8E,GAClCT,EAAMlC,EAAM,IAAM2C,IAAa,GAItC,MADIH,GAAQpM,OAAS,IAAG8L,EAAM3F,UAAYiG,EAAQf,KAAK,MAChDmB,EAAc/K,IAAaiK,IAAKA,EAAKI,MAAOA,GAEpD,QAASW,GAAa/B,EAAOoB,EAAOF,GACnC,GAAsBc,GAAWtC,EAA7BuC,GAAW,EACXxG,EAAY2F,EAAM3F,WAAa2F,EAAMc,KACzC,KAAK,GAAItB,KAAOZ,GAAMoB,MACjBe,EAAO9M,KAAK2K,EAAMoB,MAAOR,KAC5BQ,EAAMR,GAAOZ,EAAMoB,MAAMR,QAGTvM,KAAdoH,QACiBpH,KAAhB+M,EAAMc,QACTd,EAAMc,UAAQ7N,GACd+M,EAAM3F,UAAYA,GAEU,MAAzBuE,EAAMoB,MAAM3F,YACf2F,EAAM3F,UAAYuE,EAAMoB,MAAM3F,UAAY,IAAMA,GAGlD,KAAK,GAAImF,KAAOQ,GACf,GAAIe,EAAO9M,KAAK+L,EAAOR,IAAgB,QAARA,EAAe,CAC7CqB,GAAW,CACX,OAQF,MALIpK,OAAMuK,QAAQlB,IAAiC,IAApBA,EAAS5L,QAA+B,MAAf4L,EAAS,IAAkC,MAApBA,EAAS,GAAGF,IAC1FtB,EAAOwB,EAAS,GAAGA,SAEnBc,EAAYd,EAENH,EAAMf,EAAMgB,IAAKI,EAAMR,IAAKqB,EAAWb,MAAQ/M,GAAW2N,EAAWtC,GAE7E,QAAS2C,GAAYtL,GAEpB,GAAqCmK,GAAjCE,EAAQ7I,UAAU,GAAI+J,EAAQ,CAClC,IAAgB,MAAZvL,GAAwC,gBAAbA,IAA6C,kBAAbA,IAAoD,kBAAlBA,GAASoE,KACzG,KAAMlG,OAAM,uDAEb,IAAwB,gBAAb8B,GACV,GAAIwL,GAAST,EAAc/K,IAAa0K,EAAgB1K,EAQzD,IANa,MAATqK,EACHA,MAC2B,gBAAVA,IAAmC,MAAbA,EAAMJ,KAAenJ,MAAMuK,QAAQhB,MAC1EA,KACAkB,EAAQ,GAEL/J,UAAUjD,SAAWgN,EAAQ,EAChCpB,EAAW3I,UAAU+J,GAChBzK,MAAMuK,QAAQlB,KAAWA,GAAYA,QAG1C,KADAA,KACOoB,EAAQ/J,UAAUjD,QAAQ4L,EAASnE,KAAKxE,UAAU+J,KAE1D,IAAIE,GAAazB,EAAM0B,kBAAkBvB,EACzC,OAAwB,gBAAbnK,GACHgL,EAAaQ,EAAQnB,EAAOoB,GAE5BzB,EAAMhK,EAAUqK,EAAMR,IAAKQ,EAAOoB,GAw2B3C,QAASE,GAASC,GAEjB,GACIC,GAAO,EAAGC,EAAU,KACpBzK,EAA2C,kBAA1B0K,uBAAuCA,sBAAwBlK,UACpF,OAAO,YACN,GAAImK,GAAMC,KAAKD,KACF,KAATH,GAAcG,EAAMH,GALd,IAMTA,EAAOG,EACPJ,KAEoB,OAAZE,IACRA,EAAUzK,EAAQ,WACjByK,EAAU,KACVF,IACAC,EAAOI,KAAKD,OAbJ,IAcEA,EAAMH,MA/8BpB7B,EAAMkC,UAAY,SAASC,GAC1B,MAAIrL,OAAMuK,QAAQc,GAAcnC,EAAM,QAAK1M,OAAWA,GAAW0M,EAAM0B,kBAAkBS,OAAO7O,OAAWA,IAC/F,MAAR6O,GAAgC,gBAATA,GAA0BnC,EAAM,QAAK1M,OAAWA,IAAoB,IAAT6O,EAAiB,GAAKA,MAAM7O,OAAWA,IACtH6O,GAERnC,EAAM0B,kBAAoB,SAA2BvB,GACpD,IAAK,GAAInM,GAAI,EAAGA,EAAImM,EAAS5L,OAAQP,IACpCmM,EAASnM,GAAKgM,EAAMkC,UAAU/B,EAASnM,GAExC,OAAOmM,GAER,IAAIS,GAAiB,+EACjBG,KACAK,KAAY/B,cA6EhBiC,GAAY1G,MAAQ,SAASwH,GAE5B,MADY,OAARA,IAAcA,EAAO,IAClBpC,EAAM,QAAK1M,OAAWA,GAAW8O,MAAM9O,OAAWA,KAE1DgO,EAAYe,SAAW,SAASC,EAAQnC,GACvC,MAAOH,GAAM,IAAKsC,EAAOzC,IAAKyC,EAAQtC,EAAM0B,kBAAkBvB,OAAW7M,OAAWA,IAErF,IAAIoB,GAAI4M,EAEJiB,EAAkB,SAASC,GAM9B,QAAS9L,GAAQ+L,EAAMC,GACtB,MAAO,SAASC,GAAQ1K,GACvB,GAAI2K,EACJ,KACC,IAAIF,GAAyB,MAATzK,GAAmC,gBAAVA,IAAuC,kBAAVA,IAAwD,mBAAvB2K,EAAO3K,EAAM2K,MAKvHC,EAAU,WACJH,GAAgC,IAAhBD,EAAKlO,QAAcuO,QAAQC,MAAM,wCAAyC9K,EAC/F,KAAK,GAAIjE,GAAI,EAAGA,EAAIyO,EAAKlO,OAAQP,IAAKyO,EAAKzO,GAAGiE,EAC9C+K,GAAUzO,OAAS,EAAG0O,EAAU1O,OAAS,EACzCiM,EAASvB,MAAQyD,EACjBlC,EAAS0C,MAAQ,WAAYP,EAAQ1K,UAVuG,CAC7I,GAAIA,IAAUkL,EAAM,KAAM,IAAIC,WAAU,sCACxCC,GAAYT,EAAKzI,KAAKlC,KAYxB,MAAOzE,GACN8P,EAAc9P,KAIjB,QAAS6P,GAAYT,GAEpB,QAASW,GAAIC,GACZ,MAAO,UAASvL,GACXwL,IAAS,GACbD,EAAGvL,IAJL,GAAIwL,GAAO,EAOPC,EAAUH,EAAID,EAClB,KAAKV,EAAKW,EAAII,GAAiBD,GAAU,MAAOlQ,GAAIkQ,EAAQlQ,IArC7D,KAAM8D,eAAgBiL,IAAkB,KAAM,IAAIrO,OAAM,oCACxD,IAAwB,kBAAbsO,GAAyB,KAAM,IAAIY,WAAU,8BACxD,IAAID,GAAO7L,KAAM0L,KAAgBC,KAAgBU,EAAiBjN,EAAQsM,GAAW,GAAOM,EAAgB5M,EAAQuM,GAAW,GAC3HzC,EAAW2C,EAAKS,WAAaZ,UAAWA,EAAWC,UAAWA,GAC9DJ,EAAoC,kBAAjBgB,cAA8BA,aAAehM,UAmCpEwL,GAAYb,GAoDb,IAlDAD,EAAgBxL,UAAU6L,KAAO,SAASkB,EAAaC,GAEtD,QAASC,GAAOpC,EAAUa,EAAMwB,EAAMhF,GACrCwD,EAAKzG,KAAK,SAAS/D,GAClB,GAAwB,kBAAb2J,GAAyBqC,EAAKhM,OACpC,KAAKiM,EAAYtC,EAAS3J,IAAS,MAAOzE,GAAQ2Q,GAAYA,EAAW3Q,MAEjD,kBAAnBgN,GAAS0C,OAAwBjE,IAAUuB,EAASvB,OAAOuB,EAAS0C,QANhF,GAQIgB,GAAaC,EARbhB,EAAO7L,KAAMkJ,EAAW2C,EAAKS,UAS7BQ,EAAU,GAAI7B,GAAgB,SAAS8B,EAASC,GAASJ,EAAcG,EAASF,EAAaG,GAEjG,OADAN,GAAOF,EAAatD,EAASwC,UAAWkB,GAAa,GAAOF,EAAOD,EAAavD,EAASyC,UAAWkB,GAAY,GACzGC,GAER7B,EAAgBxL,UAAUwN,MAAQ,SAASR,GAC1C,MAAOzM,MAAKsL,KAAK,KAAMmB,IAExBxB,EAAgB8B,QAAU,SAASpM,GAClC,MAAIA,aAAiBsK,GAAwBtK,EACtC,GAAIsK,GAAgB,SAAS8B,GAAUA,EAAQpM,MAEvDsK,EAAgB+B,OAAS,SAASrM,GACjC,MAAO,IAAIsK,GAAgB,SAAS8B,EAASC,GAASA,EAAOrM,MAE9DsK,EAAgBiC,IAAM,SAAS/B,GAC9B,MAAO,IAAIF,GAAgB,SAAS8B,EAASC,GAC5C,GAAIG,GAAQhC,EAAKlO,OAAQmQ,EAAQ,EAAGC,IACpC,IAAoB,IAAhBlC,EAAKlO,OAAc8P,UAClB,KAAK,GAAIrQ,GAAI,EAAGA,EAAIyO,EAAKlO,OAAQP,KACrC,SAAUA,GACT,QAAS4Q,GAAQ3M,GAChByM,IACAC,EAAO3Q,GAAKiE,EACRyM,IAAUD,GAAOJ,EAAQM,GAEf,MAAXlC,EAAKzO,IAAkC,gBAAZyO,GAAKzO,IAAsC,kBAAZyO,GAAKzO,IAA8C,kBAAjByO,GAAKzO,GAAG4O,KAGnGgC,EAAQnC,EAAKzO,IAFjByO,EAAKzO,GAAG4O,KAAKgC,EAASN,IAGrBtQ,MAINuO,EAAgBsC,KAAO,SAASpC,GAC/B,MAAO,IAAIF,GAAgB,SAAS8B,EAASC,GAC5C,IAAK,GAAItQ,GAAI,EAAGA,EAAIyO,EAAKlO,OAAQP,IAChCyO,EAAKzO,GAAG4O,KAAKyB,EAASC,MAIH,mBAAX3P,QAAwB,KACJ,KAAnBA,OAAOmQ,UAAyBnQ,OAAOmQ,QAAUvC,EAC5D,IAAIA,GAAkB5N,OAAOmQ,YACvB,QAAsB,KAAX/E,EAAwB,KACX,KAAnBA,EAAO+E,UAAyB/E,EAAO+E,QAAUvC,EAC5D,IAAIA,GAAkBxC,EAAO+E,QAG9B,GAAIC,GAAmB,SAASC,GAO/B,QAASC,GAAYC,EAAMjN,GAC1B,GAAInB,MAAMuK,QAAQpJ,GACjB,IAAK,GAAIjE,GAAI,EAAGA,EAAIiE,EAAM1D,OAAQP,IACjCiR,EAAYC,EAAO,IAAMlR,EAAI,IAAKiE,EAAMjE,QAGrC,IAA8C,oBAA1CmR,OAAOpO,UAAUqO,SAAS9Q,KAAK2D,GACvC,IAAK,GAAIjE,KAAKiE,GACbgN,EAAYC,EAAO,IAAMlR,EAAI,IAAKiE,EAAMjE,QAGrCuD,GAAKyE,KAAK2D,mBAAmBuF,IAAkB,MAATjN,GAA2B,KAAVA,EAAe,IAAM0H,mBAAmB1H,GAAS,KAjB9G,GAA+C,oBAA3CkN,OAAOpO,UAAUqO,SAAS9Q,KAAK0Q,GAA+B,MAAO,EACzE,IAAIzN,KACJ,KAAK,GAAI2N,KAAQF,GAChBC,EAAYC,EAAMF,EAAOE,GAE1B,OAAO3N,GAAKqI,KAAK,MAedyF,EAAsB,GAAIC,QAAO,WAAY,KAoJ7CC,EAnJK,SAASC,EAASV,GAG1B,QAASW,GAAsB7D,GAAW8D,EAAe9D,EACzD,QAAS+D,KAER,QAASC,KAA4B,KAAVlB,GAAuC,kBAAjBgB,IAA6BA,IAD9E,GAAIhB,GAAQ,CAEZ,OAAO,SAASmB,GAASC,GACxB,GAAIC,GAAQD,EAASlD,IAUrB,OATAkD,GAASlD,KAAO,WACf8B,GACA,IAAIT,GAAO8B,EAAMrO,MAAMoO,EAAUtO,UAKjC,OAJAyM,GAAKrB,KAAKgD,EAAU,SAASpS,GAE5B,GADAoS,IACc,IAAVlB,EAAa,KAAMlR,KAEjBqS,EAAS5B,IAEV6B,GAGT,QAAS5D,GAAU3K,EAAMyO,GACxB,GAAoB,gBAATzO,GAAmB,CAC7B,GAAI8F,GAAM9F,CACVA,GAAOyO,MACS,MAAZzO,EAAK8F,MAAa9F,EAAK8F,IAAMA,GAElC,MAAO9F,GAER,QAAS0O,GAAQ1O,EAAMyO,GACtB,GAAIH,GAAWF,GACfpO,GAAO2K,EAAU3K,EAAMyO,EACvB,IAAIF,GAAW,GAAIhB,GAAQ,SAAST,EAASC,GACzB,MAAf/M,EAAK8C,SAAgB9C,EAAK8C,OAAS,OACvC9C,EAAK8C,OAAS9C,EAAK8C,OAAO6L,aAC1B,IAAIC,GAA2B,QAAhB5O,EAAK8C,QAAoC,UAAhB9C,EAAK8C,SAAuD,iBAAjB9C,GAAK4O,SAAwB5O,EAAK4O,QACvF,mBAAnB5O,GAAK6O,YAA0B7O,EAAK6O,UAAgC,mBAAbC,WAA4B9O,EAAKuC,eAAgBuM,UAAW,SAASpO,GAAQ,MAAOA,IAASU,KAAK2N,WACpI,kBAArB/O,GAAKgP,cAA4BhP,EAAKgP,YAAcA,GACnC,kBAAjBhP,GAAKiP,UAAwBjP,EAAKiP,QAAUA,GACvDjP,EAAK8F,IAAMoJ,EAAYlP,EAAK8F,IAAK9F,EAAKuC,MAClCqM,EAAS5O,EAAKuC,KAAOvC,EAAK6O,UAAU7O,EAAKuC,MACxCvC,EAAK8F,IAAMqJ,EAASnP,EAAK8F,IAAK9F,EAAKuC,KACxC,IAAI6M,GAAM,GAAInB,GAAQoB,eACrBC,GAAU,EACVC,EAASH,EAAII,KACdJ,GAAII,MAAQ,WACXF,GAAU,EACVC,EAAOxS,KAAKqS,IAEbA,EAAI/H,KAAKrH,EAAK8C,OAAQ9C,EAAK8F,IAA2B,iBAAf9F,GAAKyP,OAAsBzP,EAAKyP,MAAmC,gBAAdzP,GAAK0P,KAAoB1P,EAAK0P,SAAO3T,GAAoC,gBAAlBiE,GAAK2P,SAAwB3P,EAAK2P,aAAW5T,IAC5LiE,EAAK6O,YAAczN,KAAK2N,WAAaH,GACxCQ,EAAIQ,iBAAiB,eAAgB,mCAElC5P,EAAKgP,cAAgBA,GACxBI,EAAIQ,iBAAiB,SAAU,4BAE5B5P,EAAK6P,kBAAiBT,EAAIS,gBAAkB7P,EAAK6P,gBACrD,KAAK,GAAIvH,KAAOtI,GAAK8P,aAAgBhI,eAAe/K,KAAKiD,EAAK8P,QAASxH,IACtE8G,EAAIQ,iBAAiBtH,EAAKtI,EAAK8P,QAAQxH,GAEb,mBAAhBtI,GAAKY,SAAuBwO,EAAMpP,EAAKY,OAAOwO,EAAKpP,IAASoP,GACvEA,EAAIW,mBAAqB,WAExB,IAAGT,GACoB,IAAnBF,EAAIY,WACP,IACC,GAAIC,GAAYjQ,EAAKiP,UAAYA,EAAWjP,EAAKiP,QAAQG,EAAKpP,GAAQA,EAAKgP,YAAYhP,EAAKiP,QAAQG,EAAKpP,GACzG,IAAKoP,EAAIc,QAAU,KAAOd,EAAIc,OAAS,KAAuB,MAAfd,EAAIc,QAAkBpC,EAAoBqC,KAAKnQ,EAAK8F,KAClGgH,EAAQsD,EAAKpQ,EAAKgD,KAAMiN,QAEpB,CACJ,GAAIzE,GAAQ,GAAI7O,OAAMyS,EAAIiB,aAC1B,KAAK,GAAI/H,KAAO2H,GAAUzE,EAAMlD,GAAO2H,EAAS3H,EAChDyE,GAAOvB,IAGT,MAAOvP,GACN8Q,EAAO9Q,KAIN2S,GAAyB,MAAb5O,EAAKuC,KAAe6M,EAAIkB,KAAKtQ,EAAKuC,MAC7C6M,EAAIkB,QAEV,QAA2B,IAApBtQ,EAAKuQ,WAAsBhC,EAAWD,EAASC,GAEvD,QAASiC,GAAMxQ,EAAMyO,GACpB,GAAIH,GAAWF,GACfpO,GAAO2K,EAAU3K,EAAMyO,EACvB,IAAIF,GAAW,GAAIhB,GAAQ,SAAST,EAASC,GAC5C,GAAI0D,GAAezQ,EAAKyQ,cAAgB,YAAcC,KAAKC,MAAsB,KAAhBD,KAAKE,UAAmB,IAAMC,IAC3FC,EAAS7C,EAAQ1Q,SAASwT,cAAc,SAC5C9C,GAAQwC,GAAgB,SAASlO,GAChCuO,EAAOE,WAAWC,YAAYH,GAC9BhE,EAAQsD,EAAKpQ,EAAKgD,KAAMT,UACjB0L,GAAQwC,IAEhBK,EAAO3E,QAAU,WAChB2E,EAAOE,WAAWC,YAAYH,GAC9B/D,EAAO,GAAIpQ,OAAM,+BACVsR,GAAQwC,IAEC,MAAbzQ,EAAKuC,OAAcvC,EAAKuC,SAC5BvC,EAAK8F,IAAMoJ,EAAYlP,EAAK8F,IAAK9F,EAAKuC,MACtCvC,EAAKuC,KAAKvC,EAAKkR,aAAe,YAAcT,EAC5CK,EAAOK,IAAMhC,EAASnP,EAAK8F,IAAK9F,EAAKuC,MACrC0L,EAAQ1Q,SAAS6T,gBAAgBC,YAAYP,IAE9C,QAA2B,IAApB9Q,EAAKuQ,WAAqBhC,EAAWD,EAASC,GAEtD,QAASW,GAAYpJ,EAAKvD,GACzB,GAAY,MAARA,EAAc,MAAOuD,EAEzB,KAAK,GADDwL,GAASxL,EAAIc,MAAM,iBACdnK,EAAI,EAAGA,EAAI6U,EAAOtU,OAAQP,IAAK,CACvC,GAAI6L,GAAMgJ,EAAO7U,GAAG8U,MAAM,EACT,OAAbhP,EAAK+F,KACRxC,EAAMA,EAAIjB,QAAQyM,EAAO7U,GAAI8F,EAAK+F,KAGpC,MAAOxC,GAER,QAASqJ,GAASrJ,EAAKvD,GACtB,GAAIiP,GAAchE,EAAiBjL,EACnC,IAAoB,KAAhBiP,EAAoB,CAEvB1L,IADaA,EAAI2L,QAAQ,KAAO,EAAI,IAAM,KAC1BD,EAEjB,MAAO1L,GAER,QAASkJ,GAAYzM,GACpB,IAAK,MAAgB,KAATA,EAAcnB,KAAKC,MAAMkB,GAAQ,KAC7C,MAAOtG,GAAI,KAAM,IAAIU,OAAM4F,IAE5B,QAAS0M,GAAQG,GAAM,MAAOA,GAAIiB,aAClC,QAASD,GAAKsB,EAAOnP,GACpB,GAAqB,kBAAVmP,GAAsB,CAChC,IAAInS,MAAMuK,QAAQvH,GAKb,MAAO,IAAImP,GAAMnP,EAJrB,KAAK,GAAI9F,GAAI,EAAGA,EAAI8F,EAAKvF,OAAQP,IAChC8F,EAAK9F,GAAK,GAAIiV,GAAMnP,EAAK9F,IAK5B,MAAO8F,GA9IR,GACI4L,GADA0C,EAAgB,CAgJpB,QAAQnC,QAASA,EAAS8B,MAAOA,EAAOtC,sBAAuBA,IAExC9Q,OAAQ4N,GAC5B2G,EAAe,SAAS1D,GAI3B,QAAS2D,GAAiBvH,GAAW,MAAOwH,GAAUxH,EAEtD,QAASyH,GAAYC,EAAQC,EAAQhI,EAAOiI,EAAKC,EAAOC,EAAaC,GACpE,IAAK,GAAI3V,GAAIuN,EAAOvN,EAAIwV,EAAKxV,IAAK,CACjC,GAAI4V,GAAQL,EAAOvV,EACN,OAAT4V,GACHC,EAAWP,EAAQM,EAAOH,EAAOE,EAAID,IAIxC,QAASG,GAAWP,EAAQM,EAAOH,EAAOE,EAAID,GAC7C,GAAIzJ,GAAM2J,EAAM3J,GAChB,IAAmB,gBAARA,GAUN,MAAO6J,GAAgBR,EAAQM,EAAOH,EAAOE,EAAID,EAPrD,QAFAE,EAAM3K,SACa,MAAf2K,EAAMvJ,OAAe0J,EAAcH,EAAMvJ,MAAOuJ,EAAOH,GACnDxJ,GACP,IAAK,IAAK,MAAO+J,GAAWV,EAAQM,EAAOF,EAC3C,KAAK,IAAK,MAAOO,GAAWX,EAAQM,EAAOF,EAC3C,KAAK,IAAK,MAAOQ,GAAeZ,EAAQM,EAAOH,EAAOE,EAAID,EAC1D,SAAS,MAAOpB,GAAcgB,EAAQM,EAAOH,EAAOE,EAAID,IAK3D,QAASM,GAAWV,EAAQM,EAAOF,GAGlC,MAFAE,GAAMxJ,IAAM+J,EAAKC,eAAeR,EAAMzJ,UACtCkK,EAAWf,EAAQM,EAAMxJ,IAAKsJ,GACvBE,EAAMxJ,IAEd,QAAS6J,GAAWX,EAAQM,EAAOF,GAClC,GAAIY,GAASV,EAAMzJ,SAAShC,MAAM,qBAC9BoM,GAAWC,QAAS,QAASC,MAAO,QAASC,MAAO,QAASC,MAAO,QAASC,GAAI,QAASC,GAAI,KAAMC,GAAI,KAAMC,SAAU,QAASC,IAAK,YAAYV,EAAO,KAAO,MAChKW,EAAOd,EAAK7B,cAAciC,EAC9BU,GAAKC,UAAYtB,EAAMzJ,SACvByJ,EAAMxJ,IAAM6K,EAAKE,WACjBvB,EAAMtJ,QAAU2K,EAAKG,WAAW7W,MAGhC,KAFA,GACI8W,GADAhJ,EAAW8H,EAAKmB,yBAEbD,EAAQJ,EAAKE,YACnB9I,EAASuG,YAAYyC,EAGtB,OADAhB,GAAWf,EAAQjH,EAAUqH,GACtBrH,EAER,QAAS6H,GAAeZ,EAAQM,EAAOH,EAAOE,EAAID,GACjD,GAAIrH,GAAW8H,EAAKmB,wBACpB,IAAsB,MAAlB1B,EAAMzJ,SAAkB,CAC3B,GAAIA,GAAWyJ,EAAMzJ,QACrBkJ,GAAYhH,EAAUlC,EAAU,EAAGA,EAAS5L,OAAQkV,EAAO,KAAME,GAKlE,MAHAC,GAAMxJ,IAAMiC,EAAS8I,WACrBvB,EAAMtJ,QAAU+B,EAAS+I,WAAW7W,OACpC8V,EAAWf,EAAQjH,EAAUqH,GACtBrH,EAER,QAASiG,GAAcgB,EAAQM,EAAOH,EAAOE,EAAID,GAChD,GAAIzJ,GAAM2J,EAAM3J,GAChB,QAAQ2J,EAAM3J,KACb,IAAK,MAAO0J,EAAK,4BAA8B,MAC/C,KAAK,OAAQA,EAAK,qCAEnB,GAAI4B,GAAS3B,EAAMvJ,MACfmL,EAAKD,GAAUA,EAAOC,GACtBhV,EAAUmT,EACb6B,EAAKrB,EAAKsB,gBAAgB9B,EAAI1J,GAAMuL,GAAIA,IAAOrB,EAAKsB,gBAAgB9B,EAAI1J,GACxEuL,EAAKrB,EAAK7B,cAAcrI,GAAMuL,GAAIA,IAAOrB,EAAK7B,cAAcrI,EAM7D,IALA2J,EAAMxJ,IAAM5J,EACE,MAAV+U,GACHG,EAAS9B,EAAO2B,EAAQ5B,GAEzBU,EAAWf,EAAQ9S,EAASkT,GACT,MAAfE,EAAMvJ,OAAgD,MAA/BuJ,EAAMvJ,MAAMsL,gBACtCC,EAAmBhC,OAOnB,IAJkB,MAAdA,EAAMjL,OACU,KAAfiL,EAAMjL,KAAanI,EAAQqV,YAAcjC,EAAMjL,KAC9CiL,EAAMzJ,UAAYH,EAAM,QAAK1M,OAAWA,GAAWsW,EAAMjL,SAAMrL,OAAWA,MAE1D,MAAlBsW,EAAMzJ,SAAkB,CAC3B,GAAIA,GAAWyJ,EAAMzJ,QACrBkJ,GAAY7S,EAAS2J,EAAU,EAAGA,EAAS5L,OAAQkV,EAAO,KAAME,GAChEmC,EAAalC,GAGf,MAAOpT,GAER,QAASuV,GAAcnC,EAAOH,GAC7B,GAAIuC,EACJ,IAA8B,kBAAnBpC,GAAM3J,IAAI7F,KAAqB,CAGzC,GAFAwP,EAAM3K,MAAQkG,OAAO8G,OAAOrC,EAAM3J,KAClC+L,EAAWpC,EAAM3K,MAAM7E,KACW,MAA9B4R,EAASE,kBAA2B,MAAOC,EAC/CH,GAASE,mBAAoB,MACvB,CAGN,GAFAtC,EAAM3K,UAAQ,GACd+M,EAAWpC,EAAM3J,IACiB,MAA9B+L,EAASE,kBAA2B,MAAOC,EAC/CH,GAASE,mBAAoB,EAC7BtC,EAAM3K,MAAgC,MAAvB2K,EAAM3J,IAAIlJ,WAAyD,kBAA7B6S,GAAM3J,IAAIlJ,UAAUqD,KAAuB,GAAIwP,GAAM3J,IAAI2J,GAASA,EAAM3J,IAAI2J,GAMlI,GAJAA,EAAMrJ,OAASqJ,EAAM3K,MACF,MAAf2K,EAAMvJ,OAAe0J,EAAcH,EAAMvJ,MAAOuJ,EAAOH,GAC3DM,EAAcH,EAAMrJ,OAAQqJ,EAAOH,GACnCG,EAAMpJ,SAAWR,EAAMkC,UAAU0H,EAAMrJ,OAAOnG,KAAK9F,KAAKsV,EAAM3K,MAAO2K,IACjEA,EAAMpJ,WAAaoJ,EAAO,KAAM1V,OAAM,yDAC1C8X,GAASE,kBAAoB,KAE9B,QAASpC,GAAgBR,EAAQM,EAAOH,EAAOE,EAAID,GAElD,GADAqC,EAAcnC,EAAOH,GACC,MAAlBG,EAAMpJ,SAAkB,CAC3B,GAAIhK,GAAUqT,EAAWP,EAAQM,EAAMpJ,SAAUiJ,EAAOE,EAAID,EAI5D,OAHAE,GAAMxJ,IAAMwJ,EAAMpJ,SAASJ,IAC3BwJ,EAAMtJ,QAAuB,MAAbsJ,EAAMxJ,IAAcwJ,EAAMpJ,SAASF,QAAU,EAC7D+J,EAAWf,EAAQ9S,EAASkT,GACrBlT,EAIP,MADAoT,GAAMtJ,QAAU,EACT6L,EAIT,QAASC,GAAY9C,EAAQ+C,EAAK9C,EAAQ+C,EAAW7C,EAAOC,EAAaC,GACxE,GAAI0C,IAAQ9C,IAAiB,MAAP8C,GAAyB,MAAV9C,GAChC,GAAW,MAAP8C,EAAahD,EAAYC,EAAQC,EAAQ,EAAGA,EAAOhV,OAAQkV,EAAOC,MAAapW,QACnF,IAAc,MAAViW,EAAgBgD,EAAYF,EAAK,EAAGA,EAAI9X,OAAQgV,OACpD,CACJ,GAAI8C,EAAI9X,SAAWgV,EAAOhV,OAAQ,CAEjC,IAAK,GADDiY,IAAY,EACPxY,EAAI,EAAGA,EAAIuV,EAAOhV,OAAQP,IAClC,GAAiB,MAAbuV,EAAOvV,IAAwB,MAAVqY,EAAIrY,GAAY,CACxCwY,EAA6B,MAAjBjD,EAAOvV,GAAG6L,KAA6B,MAAdwM,EAAIrY,GAAG6L,GAC5C,OAGF,GAAI2M,EAAW,CACd,IAAK,GAAIxY,GAAI,EAAGA,EAAIqY,EAAI9X,OAAQP,IAC3BqY,EAAIrY,KAAOuV,EAAOvV,KACH,MAAVqY,EAAIrY,IAA2B,MAAbuV,EAAOvV,GAAY6V,EAAWP,EAAQC,EAAOvV,GAAIyV,EAAOE,EAAI8C,EAAeJ,EAAKrY,EAAI,EAAG0V,IAC5F,MAAbH,EAAOvV,GAAYuY,EAAYF,EAAKrY,EAAGA,EAAI,EAAGuV,GAClDmD,EAAWpD,EAAQ+C,EAAIrY,GAAIuV,EAAOvV,GAAIyV,EAAOgD,EAAeJ,EAAKrY,EAAI,EAAG0V,GAAc4C,EAAW3C,GAEvG,SAIF,GADA2C,EAAYA,GAAaK,EAAaN,EAAK9C,GAC5B,CACd,GAAIqD,GAAOP,EAAIO,IACfP,GAAMA,EAAIQ,OAAOR,EAAIO,MAGtB,IADA,GAA+EE,GAA3EC,EAAW,EAAGxL,EAAQ,EAAGyL,EAASX,EAAI9X,OAAS,EAAGiV,EAAMD,EAAOhV,OAAS,EACrEyY,GAAUD,GAAYvD,GAAOjI,GAAO,CAC1C,GAAI1N,GAAIwY,EAAIU,GAAWE,EAAI1D,EAAOhI,EAClC,IAAI1N,IAAMoZ,GAAMX,EACX,GAAS,MAALzY,EAAWkZ,QACf,IAAS,MAALE,EAAW1L,QACf,IAAI1N,EAAEgM,MAAQoN,EAAEpN,IAAK,CACzB,GAAIqN,GAAyB,MAARN,GAAgBG,GAAYV,EAAI9X,OAASqY,EAAKrY,QAAqB,MAARqY,GAAiBN,CACjGS,KAAYxL,IACZmL,EAAWpD,EAAQzV,EAAGoZ,EAAGxD,EAAOgD,EAAeJ,EAAKU,EAAUrD,GAAcwD,EAAevD,GACvF2C,GAAazY,EAAEoM,MAAQgN,EAAEhN,KAAKoK,EAAWf,EAAQ6D,EAAWtZ,GAAI6V,OAEhE,CACJ,GAAI7V,GAAIwY,EAAIW,EACZ,IAAInZ,IAAMoZ,GAAMX,EACX,GAAS,MAALzY,EAAWmZ,QACf,IAAS,MAALC,EAAW1L,QACf,CAAA,GAAI1N,EAAEgM,MAAQoN,EAAEpN,IAMhB,KALJ,IAAIqN,GAAyB,MAARN,GAAgBI,GAAUX,EAAI9X,OAASqY,EAAKrY,QAAqB,MAARqY,GAAiBN,CAC/FI,GAAWpD,EAAQzV,EAAGoZ,EAAGxD,EAAOgD,EAAeJ,EAAKW,EAAS,EAAGtD,GAAcwD,EAAevD,IACzF2C,GAAa/K,EAAQiI,IAAKa,EAAWf,EAAQ6D,EAAWtZ,GAAI4Y,EAAeJ,EAAKU,EAAUrD,IAC9FsD,IAAUzL,QAPgByL,KAAUzL,QAXXwL,KAAYxL,IAuBxC,KAAOyL,GAAUD,GAAYvD,GAAOjI,GAAO,CAC1C,GAAI1N,GAAIwY,EAAIW,GAASC,EAAI1D,EAAOC,EAChC,IAAI3V,IAAMoZ,GAAMX,EACX,GAAS,MAALzY,EAAWmZ,QACf,IAAS,MAALC,EAAWzD,QACf,IAAI3V,EAAEgM,MAAQoN,EAAEpN,IAAK,CACzB,GAAIqN,GAAyB,MAARN,GAAgBI,GAAUX,EAAI9X,OAASqY,EAAKrY,QAAqB,MAARqY,GAAiBN,CAC/FI,GAAWpD,EAAQzV,EAAGoZ,EAAGxD,EAAOgD,EAAeJ,EAAKW,EAAS,EAAGtD,GAAcwD,EAAevD,GACzF2C,GAAazY,EAAEoM,MAAQgN,EAAEhN,KAAKoK,EAAWf,EAAQ6D,EAAWtZ,GAAI6V,GACvD,MAAT7V,EAAEuM,MAAasJ,EAAc7V,EAAEuM,KACnC4M,IAAUxD,QAEN,CAEJ,GADKsD,IAAKA,EAAMM,EAAUf,EAAKW,IACtB,MAALC,EAAW,CACd,GAAII,GAAWP,EAAIG,EAAEpN,IACrB,IAAgB,MAAZwN,EAAkB,CACrB,GAAIC,GAAUjB,EAAIgB,GACdH,EAAyB,MAARN,GAAgBS,GAAYhB,EAAI9X,OAASqY,EAAKrY,QAAqB,MAARqY,GAAiBN,CACjGI,GAAWpD,EAAQgE,EAASL,EAAGxD,EAAOgD,EAAeJ,EAAKW,EAAS,EAAGtD,GAAc4C,EAAW3C,GAC/FU,EAAWf,EAAQ6D,EAAWG,GAAU5D,GACxC2C,EAAIgB,GAAU5M,MAAO,EACF,MAAf6M,EAAQlN,MAAasJ,EAAc4D,EAAQlN,SAE3C,CACJ,GAAIA,GAAMyJ,EAAWP,EAAQ2D,EAAGxD,MAAOnW,GAAWoW,EAClDA,GAActJ,GAGhBoJ,QA3B0BwD,KAAUxD,GA6BrC,IAAIA,EAAMjI,EAAO,MAElB8H,EAAYC,EAAQC,EAAQhI,EAAOiI,EAAM,EAAGC,EAAOC,EAAaC,GAChE4C,EAAYF,EAAKU,EAAUC,EAAS,EAAGzD,IAGzC,QAASmD,GAAWpD,EAAQ+C,EAAKzC,EAAOH,EAAOC,EAAa4C,EAAW3C,GACtE,GAAI4D,GAASlB,EAAIpM,GACjB,IAAIsN,IADwB3D,EAAM3J,IACd,CAInB,GAHA2J,EAAM3K,MAAQoN,EAAIpN,MAClB2K,EAAMrJ,OAAS8L,EAAI9L,OACnBqJ,EAAM5U,OAASqX,EAAIrX,QACdsX,GAAakB,EAAgB5D,EAAOyC,GAAM,MAC/C,IAAsB,gBAAXkB,GAQV,OAPmB,MAAf3D,EAAMvJ,QACLiM,GACH1C,EAAM3K,SACN8K,EAAcH,EAAMvJ,MAAOuJ,EAAOH,IAE9BgE,EAAgB7D,EAAMvJ,MAAOuJ,EAAOH,IAElC8D,GACP,IAAK,IAAKG,EAAWrB,EAAKzC,EAAQ,MAClC,KAAK,IAAK+D,EAAWrE,EAAQ+C,EAAKzC,EAAOF,EAAc,MACvD,KAAK,IAAKkE,EAAetE,EAAQ+C,EAAKzC,EAAO0C,EAAW7C,EAAOC,EAAaC,EAAK,MACjF,SAASkE,EAAcxB,EAAKzC,EAAO0C,EAAW7C,EAAOE,OAGlDmE,GAAgBxE,EAAQ+C,EAAKzC,EAAOH,EAAOC,EAAa4C,EAAW3C,OAGxEoE,GAAW1B,EAAK,MAChBxC,EAAWP,EAAQM,EAAOH,EAAOE,EAAID,GAGvC,QAASgE,GAAWrB,EAAKzC,GACpByC,EAAIlM,SAASiF,aAAewE,EAAMzJ,SAASiF,aAC9CiH,EAAIjM,IAAI4N,UAAYpE,EAAMzJ,UAE3ByJ,EAAMxJ,IAAMiM,EAAIjM,IAEjB,QAASuN,GAAWrE,EAAQ+C,EAAKzC,EAAOF,GACnC2C,EAAIlM,WAAayJ,EAAMzJ,UAC1BgN,EAAWd,GACXpC,EAAWX,EAAQM,EAAOF,KAEtBE,EAAMxJ,IAAMiM,EAAIjM,IAAKwJ,EAAMtJ,QAAU+L,EAAI/L,SAE/C,QAASsN,GAAetE,EAAQ+C,EAAKzC,EAAO0C,EAAW7C,EAAOC,EAAaC,GAC1EyC,EAAY9C,EAAQ+C,EAAIlM,SAAUyJ,EAAMzJ,SAAUmM,EAAW7C,EAAOC,EAAaC,EACjF,IAAIrJ,GAAU,EAAGH,EAAWyJ,EAAMzJ,QAElC,IADAyJ,EAAMxJ,IAAM,KACI,MAAZD,EAAkB,CACrB,IAAK,GAAInM,GAAI,EAAGA,EAAImM,EAAS5L,OAAQP,IAAK,CACzC,GAAIqX,GAAQlL,EAASnM,EACR,OAATqX,GAA8B,MAAbA,EAAMjL,MACT,MAAbwJ,EAAMxJ,MAAawJ,EAAMxJ,IAAMiL,EAAMjL,KACzCE,GAAW+K,EAAM/K,SAAW,GAGd,IAAZA,IAAesJ,EAAMtJ,QAAUA,IAGrC,QAASuN,GAAcxB,EAAKzC,EAAO0C,EAAW7C,EAAOE,GACpD,GAAInT,GAAUoT,EAAMxJ,IAAMiM,EAAIjM,GAC9B,QAAQwJ,EAAM3J,KACb,IAAK,MAAO0J,EAAK,4BAA8B,MAC/C,KAAK,OAAQA,EAAK,qCAED,aAAdC,EAAM3J,MACU,MAAf2J,EAAMvJ,QAAeuJ,EAAMvJ,UACb,MAAduJ,EAAMjL,OACTiL,EAAMvJ,MAAMpI,MAAQ2R,EAAMjL,KAC1BiL,EAAMjL,SAAOrL,KAGf2a,EAAYrE,EAAOyC,EAAIhM,MAAOuJ,EAAMvJ,MAAOsJ,GACxB,MAAfC,EAAMvJ,OAAgD,MAA/BuJ,EAAMvJ,MAAMsL,gBACtCC,EAAmBhC,GAEC,MAAZyC,EAAI1N,MAA8B,MAAdiL,EAAMjL,MAA+B,KAAfiL,EAAMjL,KACpD0N,EAAI1N,KAAKyG,aAAewE,EAAMjL,KAAKyG,aAAYiH,EAAIjM,IAAI+K,WAAW6C,UAAYpE,EAAMjL,OAGxE,MAAZ0N,EAAI1N,OAAc0N,EAAIlM,UAAYH,EAAM,QAAK1M,OAAWA,GAAW+Y,EAAI1N,SAAMrL,GAAW+Y,EAAIjM,IAAI+K,cAClF,MAAdvB,EAAMjL,OAAciL,EAAMzJ,UAAYH,EAAM,QAAK1M,OAAWA,GAAWsW,EAAMjL,SAAMrL,OAAWA,MAClG8Y,EAAY5V,EAAS6V,EAAIlM,SAAUyJ,EAAMzJ,SAAUmM,EAAW7C,EAAO,KAAME,IAG7E,QAASmE,GAAgBxE,EAAQ+C,EAAKzC,EAAOH,EAAOC,EAAa4C,EAAW3C,GAC3E,GAAI2C,EACHP,EAAcnC,EAAOH,OACf,CAEN,GADAG,EAAMpJ,SAAWR,EAAMkC,UAAU0H,EAAMrJ,OAAOnG,KAAK9F,KAAKsV,EAAM3K,MAAO2K,IACjEA,EAAMpJ,WAAaoJ,EAAO,KAAM1V,OAAM,yDACvB,OAAf0V,EAAMvJ,OAAeoN,EAAgB7D,EAAMvJ,MAAOuJ,EAAOH,GAC7DgE,EAAgB7D,EAAMrJ,OAAQqJ,EAAOH,GAEhB,MAAlBG,EAAMpJ,UACW,MAAhB6L,EAAI7L,SAAkBqJ,EAAWP,EAAQM,EAAMpJ,SAAUiJ,EAAOE,EAAID,GACnEgD,EAAWpD,EAAQ+C,EAAI7L,SAAUoJ,EAAMpJ,SAAUiJ,EAAOC,EAAa4C,EAAW3C,GACrFC,EAAMxJ,IAAMwJ,EAAMpJ,SAASJ,IAC3BwJ,EAAMtJ,QAAUsJ,EAAMpJ,SAASF,SAEP,MAAhB+L,EAAI7L,UACZuN,EAAW1B,EAAI7L,SAAU,MACzBoJ,EAAMxJ,QAAM9M,GACZsW,EAAMtJ,QAAU,IAGhBsJ,EAAMxJ,IAAMiM,EAAIjM,IAChBwJ,EAAMtJ,QAAU+L,EAAI/L,SAGtB,QAASqM,GAAaN,EAAK9C,GAC1B,GAAgB,MAAZ8C,EAAIO,MAAgB3E,KAAKiG,IAAI7B,EAAIO,KAAKrY,OAASgV,EAAOhV,SAAW0T,KAAKiG,IAAI7B,EAAI9X,OAASgV,EAAOhV,QAAS,CAC1G,GAAI4Z,GAAoB9B,EAAI,IAAMA,EAAI,GAAGlM,UAAYkM,EAAI,GAAGlM,SAAS5L,QAAU,EAC3E6Z,EAAqB/B,EAAIO,KAAK,IAAMP,EAAIO,KAAK,GAAGzM,UAAYkM,EAAIO,KAAK,GAAGzM,SAAS5L,QAAU,EAC3F8Z,EAAuB9E,EAAO,IAAMA,EAAO,GAAGpJ,UAAYoJ,EAAO,GAAGpJ,SAAS5L,QAAU,CAC3F,IAAI0T,KAAKiG,IAAIE,EAAqBC,IAAyBpG,KAAKiG,IAAIC,EAAoBE,GACvF,OAAO,EAGT,OAAO,EAER,QAASjB,GAAU7D,EAAQC,GAE1B,IAAK,GADDsD,MAAU9Y,EAAI,EACTA,EAAI,EAAGA,EAAIwV,EAAKxV,IAAK,CAC7B,GAAI4V,GAAQL,EAAOvV,EACnB,IAAa,MAAT4V,EAAe,CAClB,GAAI0E,GAAO1E,EAAM/J,GACL,OAARyO,IAAcxB,EAAIwB,GAAQta,IAGhC,MAAO8Y,GAER,QAASK,GAAWvD,GACnB,GAAI2E,GAAS3E,EAAMtJ,OACnB,IAAc,MAAViO,GAA+B,MAAb3E,EAAMxJ,IAAa,CACxC,GAAIiC,GAAW8H,EAAKmB,wBACpB,IAAIiD,EAAS,EAAG,CAEf,IADA,GAAInO,GAAMwJ,EAAMxJ,MACPmO,GAAQlM,EAASuG,YAAYxI,EAAIsJ,YAC1CrH,GAASmM,aAAapO,EAAKiC,EAAS8I,YAErC,MAAO9I,GAEH,MAAOuH,GAAMxJ,IAEnB,QAASqM,GAAelD,EAAQvV,EAAG0V,GAClC,KAAO1V,EAAIuV,EAAOhV,OAAQP,IACzB,GAAiB,MAAbuV,EAAOvV,IAA+B,MAAjBuV,EAAOvV,GAAGoM,IAAa,MAAOmJ,GAAOvV,GAAGoM,GAElE,OAAOsJ,GAER,QAASW,GAAWf,EAAQlJ,EAAKsJ,GAC5BA,GAAeA,EAAYnB,WAAYe,EAAOkF,aAAapO,EAAKsJ,GAC/DJ,EAAOV,YAAYxI,GAEzB,QAASwL,GAAmBhC,GAC3B,GAAIzJ,GAAWyJ,EAAMzJ,QACrB,IAAgB,MAAZA,GAAwC,IAApBA,EAAS5L,QAAoC,MAApB4L,EAAS,GAAGF,IAAa,CACzE,GAAIwO,GAAUtO,EAAS,GAAGA,QACtByJ,GAAMxJ,IAAI8K,YAAcuD,IAAS7E,EAAMxJ,IAAI8K,UAAYuD,OAEvD,IAAkB,MAAd7E,EAAMjL,MAA4B,MAAZwB,GAAwC,IAApBA,EAAS5L,OAAc,KAAM,IAAIL,OAAM,mDAG3F,QAASqY,GAAYhD,EAAQhI,EAAOiI,EAAK3U,GACxC,IAAK,GAAIb,GAAIuN,EAAOvN,EAAIwV,EAAKxV,IAAK,CACjC,GAAI4V,GAAQL,EAAOvV,EACN,OAAT4V,IACCA,EAAMnJ,KAAMmJ,EAAMnJ,MAAO,EACxBsN,EAAWnE,EAAO/U,KAI1B,QAASkZ,GAAWnE,EAAO/U,GAiB1B,QAAS6Z,KACR,KAAMC,IAAWC,IAChBC,EAASjF,GACLA,EAAMxJ,KAAK,CACd,GAAImO,GAAS3E,EAAMtJ,SAAW,CAC9B,IAAIiO,EAAS,EAEZ,IADA,GAAInO,GAAMwJ,EAAMxJ,MACPmO,GACRO,EAAkB1O,EAAIsJ,YAGxBoF,GAAkBlF,EAAMxJ,KACT,MAAXvL,GAAoC,MAAjB+U,EAAMtJ,SAAoByO,EAAsBnF,EAAMvJ,QAA+B,gBAAduJ,GAAM3J,MAC9FpL,EAAQ+X,KACR/X,EAAQ+X,KAAK5Q,KAAK4N,GADJ/U,EAAQ+X,MAAQhD,KA7BvC,GAAIgF,GAAW,EAAGD,EAAS,CAC3B,IAAI/E,EAAMvJ,OAA+C,kBAA/BuJ,GAAMvJ,MAAM2O,eAA+B,CACpE,GAAIC,GAASrF,EAAMvJ,MAAM2O,eAAe1a,KAAKsV,EAAM3K,MAAO2K,EAC5C,OAAVqF,GAAyC,kBAAhBA,GAAOrM,OACnCgM,IACAK,EAAOrM,KAAK8L,EAAcA,IAG5B,GAAyB,gBAAd9E,GAAM3J,KAA2D,kBAAhC2J,GAAMrJ,OAAOyO,eAA+B,CACvF,GAAIC,GAASrF,EAAMrJ,OAAOyO,eAAe1a,KAAKsV,EAAM3K,MAAO2K,EAC7C,OAAVqF,GAAyC,kBAAhBA,GAAOrM,OACnCgM,IACAK,EAAOrM,KAAK8L,EAAcA,IAG5BA,IAqBD,QAASI,GAAkB3M,GAC1B,GAAImH,GAASnH,EAAKoG,UACJ,OAAVe,GAAgBA,EAAOd,YAAYrG,GAExC,QAAS0M,GAASjF,GAGjB,GAFIA,EAAMvJ,OAAyC,kBAAzBuJ,GAAMvJ,MAAMwO,UAAyBjF,EAAMvJ,MAAMwO,SAASva,KAAKsV,EAAM3K,MAAO2K,GAC7E,gBAAdA,GAAM3J,KAAqD,kBAA1B2J,GAAMrJ,OAAOsO,UAAyBjF,EAAMrJ,OAAOsO,SAASva,KAAKsV,EAAM3K,MAAO2K,GACpG,MAAlBA,EAAMpJ,SAAkBqO,EAASjF,EAAMpJ,cACtC,CACJ,GAAIL,GAAWyJ,EAAMzJ,QACrB,IAAIrJ,MAAMuK,QAAQlB,GACjB,IAAK,GAAInM,GAAI,EAAGA,EAAImM,EAAS5L,OAAQP,IAAK,CACzC,GAAIqX,GAAQlL,EAASnM,EACR,OAATqX,GAAewD,EAASxD,KAMhC,QAASK,GAAS9B,EAAO2B,EAAQ5B,GAChC,IAAK,GAAI2E,KAAQ/C,GAChB2D,EAAQtF,EAAO0E,EAAM,KAAM/C,EAAO+C,GAAO3E,GAG3C,QAASuF,GAAQtF,EAAO0E,EAAMjC,EAAKpU,EAAO0R,GACzC,GAAInT,GAAUoT,EAAMxJ,GACpB,IAAa,QAATkO,GAA2B,OAATA,IAAkBjC,IAAQpU,GAAUkX,EAAgBvF,EAAO0E,IAA2B,gBAAVrW,SAAuC,KAAVA,IAAyBmX,EAAkBd,GAA1K,CACA,GAAIe,GAAcf,EAAKtF,QAAQ,IAC/B,IAAIqG,GAAe,GAAqC,UAAhCf,EAAKgB,OAAO,EAAGD,GACtC7Y,EAAQ+Y,eAAe,+BAAgCjB,EAAKxF,MAAMuG,EAAc,GAAIpX,OAEhF,IAAgB,MAAZqW,EAAK,IAA0B,MAAZA,EAAK,IAA+B,kBAAVrW,GAAsBuX,EAAY5F,EAAO0E,EAAMrW,OAChG,IAAa,UAATqW,EAAkBmB,EAAYjZ,EAAS6V,EAAKpU,OAChD,IAAIqW,IAAQ9X,KAAYkZ,EAAYpB,QAAgBhb,KAAPqW,IAAqBgG,EAAgB/F,GAAQ,CAE9F,GAAkB,UAAdA,EAAM3J,KAA4B,UAATqO,GAAoB1E,EAAMxJ,IAAInI,OAASA,GAAS2R,EAAMxJ,MAAQ+J,EAAKyF,cAAe,MAE/G,IAAkB,WAAdhG,EAAM3J,KAA6B,UAATqO,GAAoB1E,EAAMxJ,IAAInI,OAASA,GAAS2R,EAAMxJ,MAAQ+J,EAAKyF,cAAe,MAEhH,IAAkB,WAAdhG,EAAM3J,KAA6B,UAATqO,GAAoB1E,EAAMxJ,IAAInI,OAASA,EAAO,MAE5E,IAAkB,UAAd2R,EAAM3J,KAA4B,SAATqO,EAE5B,WADA9X,GAAQkC,aAAa4V,EAAMrW,EAG5BzB,GAAQ8X,GAAQrW,MAGK,iBAAVA,GACNA,EAAOzB,EAAQkC,aAAa4V,EAAM,IACjC9X,EAAQiC,gBAAgB6V,GAEzB9X,EAAQkC,aAAsB,cAAT4V,EAAuB,QAAUA,EAAMrW,IAGnE,QAAS6T,GAAalC,GACrB,GAAI2B,GAAS3B,EAAMvJ,KACD,YAAduJ,EAAM3J,KAA8B,MAAVsL,IACzB,SAAWA,IAAQ2D,EAAQtF,EAAO,QAAS,KAAM2B,EAAOtT,UAAO3E,IAC/D,iBAAmBiY,IAAQ2D,EAAQtF,EAAO,gBAAiB,KAAM2B,EAAOsE,kBAAevc,KAG7F,QAAS2a,GAAYrE,EAAOyC,EAAKd,EAAQ5B,GACxC,GAAc,MAAV4B,EACH,IAAK,GAAI+C,KAAQ/C,GAChB2D,EAAQtF,EAAO0E,EAAMjC,GAAOA,EAAIiC,GAAO/C,EAAO+C,GAAO3E,EAGvD,IAAW,MAAP0C,EACH,IAAK,GAAIiC,KAAQjC,GACF,MAAVd,GAAoB+C,IAAQ/C,KAClB,cAAT+C,IAAsBA,EAAO,SACjB,MAAZA,EAAK,IAA0B,MAAZA,EAAK,IAAec,EAAkBd,GAC3C,QAATA,GAAgB1E,EAAMxJ,IAAI3H,gBAAgB6V,GADiBkB,EAAY5F,EAAO0E,MAAMhb,KAMjG,QAAS6b,GAAgBvF,EAAOkG,GAC/B,MAAgB,UAATA,GAA6B,YAATA,GAA+B,kBAATA,GAAqC,aAATA,GAAuBlG,EAAMxJ,MAAQ+J,EAAKyF,cAExH,QAASR,GAAkBU,GAC1B,MAAgB,WAATA,GAA8B,aAATA,GAAgC,aAATA,GAAgC,aAATA,GAAgC,mBAATA,GAAsC,mBAATA,EAE/H,QAASJ,GAAYI,GACpB,MAAgB,SAATA,GAA4B,SAATA,GAA4B,SAATA,GAA4B,UAATA,GAA6B,WAATA,EAErF,QAASH,GAAgB/F,GACxB,MAAOA,GAAMvJ,MAAMmL,IAAM5B,EAAM3J,IAAI+I,QAAQ,MAAQ,EAEpD,QAAS+F,GAAsBgB,GAC9B,MAAiB,OAAVA,IAAmBA,EAAOC,UAAYD,EAAOE,UAAYF,EAAOf,gBAAkBe,EAAOlB,UAGjG,QAASY,GAAYjZ,EAAS6V,EAAKhW,GAElC,GADIgW,IAAQhW,IAAOG,EAAQH,MAAM6Z,QAAU,GAAI7D,EAAM,MACxC,MAAThW,EAAeG,EAAQH,MAAM6Z,QAAU,OACtC,IAAqB,gBAAV7Z,GAAoBG,EAAQH,MAAM6Z,QAAU7Z,MACvD,CACe,gBAARgW,KAAkB7V,EAAQH,MAAM6Z,QAAU,GACrD,KAAK,GAAI5B,KAAQjY,GAChBG,EAAQH,MAAMiY,GAAQjY,EAAMiY,EAE7B,IAAW,MAAPjC,GAA8B,gBAARA,GACzB,IAAK,GAAIiC,KAAQjC,GACViC,IAAQjY,KAAQG,EAAQH,MAAMiY,GAAQ,KAMhD,QAASkB,GAAY5F,EAAO0E,EAAMrW,GACjC,GAAIzB,GAAUoT,EAAMxJ,IAChBwB,EAA8B,kBAAZwH,GAAyBnR,EAAQ,SAASzE,GAC/D,GAAIyb,GAAShX,EAAM3D,KAAKkC,EAAShD,EAEjC,OADA4V,GAAQ9U,KAAKkC,EAAShD,GACfyb,EAER,IAAIX,IAAQ9X,GAASA,EAAQ8X,GAAyB,kBAAVrW,GAAuB2J,EAAW,SACzE,CACJ,GAAIuO,GAAY7B,EAAKxF,MAAM,EAE3B,QADqBxV,KAAjBsW,EAAM5U,SAAsB4U,EAAM5U,WAClC4U,EAAM5U,OAAOsZ,KAAU1M,EAAU,MACX,OAAtBgI,EAAM5U,OAAOsZ,IAAe9X,EAAQ4Z,oBAAoBD,EAAWvG,EAAM5U,OAAOsZ,IAAO,GACtE,kBAAVrW,KACV2R,EAAM5U,OAAOsZ,GAAQ1M,EACrBpL,EAAQG,iBAAiBwZ,EAAWvG,EAAM5U,OAAOsZ,IAAO,KAK3D,QAASvE,GAAcgG,EAAQnG,EAAOH,GACR,kBAAlBsG,GAAOM,QAAuBN,EAAOM,OAAO/b,KAAKsV,EAAM3K,MAAO2K,GAC1C,kBAApBmG,GAAOC,UAAyBvG,EAAMzN,KAAK+T,EAAOC,SAAS7V,KAAKyP,EAAM3K,MAAO2K,IAEzF,QAAS6D,GAAgBsC,EAAQnG,EAAOH,GACR,kBAApBsG,GAAOE,UAAyBxG,EAAMzN,KAAK+T,EAAOE,SAAS9V,KAAKyP,EAAM3K,MAAO2K,IAEzF,QAAS4D,GAAgB5D,EAAOyC,GAC/B,GAAIiE,GAAkBC,CAGtB,OAFmB,OAAf3G,EAAMvJ,OAAuD,kBAA/BuJ,GAAMvJ,MAAMmQ,iBAA+BF,EAAmB1G,EAAMvJ,MAAMmQ,eAAelc,KAAKsV,EAAM3K,MAAO2K,EAAOyC,IAC3H,gBAAdzC,GAAM3J,KAA2D,kBAAhC2J,GAAMrJ,OAAOiQ,iBAA+BD,EAAuB3G,EAAMrJ,OAAOiQ,eAAelc,KAAKsV,EAAM3K,MAAO2K,EAAOyC,UACzI/Y,KAArBgd,OAA2Dhd,KAAzBid,GAAwCD,GAAqBC,KACpG3G,EAAMxJ,IAAMiM,EAAIjM,IAChBwJ,EAAMtJ,QAAU+L,EAAI/L,QACpBsJ,EAAMpJ,SAAW6L,EAAI7L,UACd,GAIT,QAASiQ,GAAOrQ,EAAKmJ,GACpB,IAAKnJ,EAAK,KAAM,IAAIlM,OAAM,oFAC1B,IAAIuV,MACAiH,EAASvG,EAAKyF,aAEA,OAAdxP,EAAImJ,SAAgBnJ,EAAIyL,YAAc,IACrC/U,MAAMuK,QAAQkI,KAASA,GAAUA,IACtC6C,EAAYhM,EAAKA,EAAImJ,OAAQvJ,EAAM0B,kBAAkB6H,IAAS,EAAOE,EAAO,SAAMnW,IAClF8M,EAAImJ,OAASA,CACb,KAAK,GAAIvV,GAAI,EAAGA,EAAIyV,EAAMlV,OAAQP,IAAKyV,EAAMzV,IACzCmW,GAAKyF,gBAAkBc,GAAQA,EAAOC,QAzkB3C,GAEIvH,GAFAe,EAAO3E,EAAQ1Q,SACfqX,EAAiBhC,EAAKmB,wBA0kB1B,QAAQmF,OAAQA,EAAQtH,iBAAkBA,IA2CvCyH,EArBM,SAASpL,GAMlB,QAASqL,GAAUC,EAAMlP,GACxBmP,EAAYD,GACZE,EAAUhV,KAAK8U,EAAMnP,EAASC,IAE/B,QAASmP,GAAYD,GACpB,GAAIG,GAAQD,EAAUhI,QAAQ8H,EAC1BG,IAAS,GAAGD,EAAUE,OAAOD,EAAO,GAEzC,QAAS/W,KACR,IAAK,GAAIlG,GAAI,EAAGA,EAAIgd,EAAUzc,OAAQP,GAAK,EAC1Cgd,EAAUhd,KAfZ,GAAImd,GAAgBjI,EAAa1D,EACjC2L,GAAchI,iBAAiB,SAAS3V,IACtB,IAAbA,EAAE0G,QAAkBA,KAEzB,IAAI8W,KAcJ,QAAQH,UAAWA,EAAWE,YAAaA,EAAa7W,OAAQA,EAAQuW,OAAQU,EAAcV,SAEvE9b,OACxB4Q,GAAeE,sBAAsBmL,EAAc1W,OAkBnDxF,GAAEW,MAjBQ,SAAS+b,GAClB,MAAO,UAASC,EAAMC,GACrB,GAAkB,OAAdA,EAGH,MAFAF,GAAeX,OAAOY,UACtBD,GAAeL,YAAYM,EAI5B,IAAsB,MAAlBC,EAAUlX,MAAqC,kBAAdkX,GAA0B,KAAM,IAAIpd,OAAM,+DAE/E,IAAIqd,GAAO,WACVH,EAAeX,OAAOY,EAAMrR,EAAMsR,IAEnCF,GAAeP,UAAUQ,EAAME,GAC/BH,EAAelX,WAGH0W,EACd,IAAI9L,GAAUvC,EACViP,EAAmB,SAASC,GAC/B,GAAe,KAAXA,GAA2B,MAAVA,EAAgB,QACZ,OAArBA,EAAOC,OAAO,KAAYD,EAASA,EAAO3I,MAAM,GAEpD,KAAK,GADD6I,GAAUF,EAAOzT,MAAM,KAAM4T,KAAYC,KACpC7d,EAAI,EAAGA,EAAI2d,EAAQpd,OAAQP,IAAK,CACxC,GAAI8d,GAAQH,EAAQ3d,GAAGgK,MAAM,KACzB+T,EAAOxS,mBAAmBuS,EAAM,IAChC7Z,EAAyB,IAAjB6Z,EAAMvd,OAAegL,mBAAmBuS,EAAM,IAAM,EAClD,UAAV7Z,EAAkBA,GAAQ,EACX,UAAVA,IAAmBA,GAAQ,EACpC,IAAI+Z,GAASD,EAAK/T,MAAM,YACpBiU,EAASL,CACTG,GAAK/I,QAAQ,MAAQ,GAAGgJ,EAAOE,KACnC,KAAK,GAAIC,GAAI,EAAGA,EAAIH,EAAOzd,OAAQ4d,IAAK,CACvC,GAAIC,GAAQJ,EAAOG,GAAIE,EAAYL,EAAOG,EAAI,GAC1CG,EAAwB,IAAbD,IAAoBE,MAAMC,SAASH,EAAW,KACzDI,EAAUN,IAAMH,EAAOzd,OAAS,CACpC,IAAc,KAAV6d,EAAc,CACjB,GAAIL,GAAOC,EAAOlJ,MAAM,EAAGqJ,GAAGvS,MACR,OAAlBiS,EAASE,KAAeF,EAASE,GAAQ,GAC7CK,EAAQP,EAASE,KAEG,MAAjBE,EAAOG,KACVH,EAAOG,GAASK,EAAUxa,EAAQqa,SAEnCL,EAASA,EAAOG,IAGlB,MAAOR,IAEJc,EAAa,SAASlN,GAGzB,QAASmN,GAAWC,GACnB,GAAI9Y,GAAO0L,EAAQzL,SAAS6Y,GAAWxW,QAAQ,2BAA4BmD,mBAE3E,OADkB,aAAdqT,GAAwC,MAAZ9Y,EAAK,KAAYA,EAAO,IAAMA,GACvDA,EAGR,QAAS+Y,GAAcC,GACtB,MAAO,YACS,MAAXC,IACJA,EAAUC,EAAW,WACpBD,EAAU,KACVD,QAIH,QAASG,GAAUC,EAAMC,EAAWC,GACnC,GAAIC,GAAaH,EAAKlK,QAAQ,KAC1BsK,EAAYJ,EAAKlK,QAAQ,KACzBuK,EAAUF,GAAc,EAAIA,EAAaC,GAAa,EAAIA,EAAYJ,EAAK3e,MAC/E,IAAI8e,GAAc,EAAG,CACpB,GAAIG,GAAWF,GAAa,EAAIA,EAAYJ,EAAK3e,OAC7Ckf,EAAcjC,EAAiB0B,EAAKpK,MAAMuK,EAAa,EAAGG,GAC9D,KAAK,GAAIE,KAAQD,GAAaN,EAAUO,GAAQD,EAAYC,GAE7D,GAAIJ,GAAa,EAAG,CACnB,GAAIK,GAAanC,EAAiB0B,EAAKpK,MAAMwK,EAAY,GACzD,KAAK,GAAII,KAAQC,GAAYP,EAASM,GAAQC,EAAWD,GAE1D,MAAOR,GAAKpK,MAAM,EAAGyK,GA9BtB,GAOIR,GAPAa,EAAyD,kBAA9BpO,GAAQhI,QAAQC,UAC3CuV,EAAqC,kBAAjBnP,cAA8BA,aAAehM,WA+BjEgc,GAAUC,OAAQ,KA6DtB,OA5DAD,GAAOE,QAAU,WAEhB,OADYF,EAAOC,OAAOpC,OAAO,IAEhC,IAAK,IAAK,MAAOiB,GAAW,QAAQ7J,MAAM+K,EAAOC,OAAOvf,OACxD,KAAK,IAAK,MAAOoe,GAAW,UAAU7J,MAAM+K,EAAOC,OAAOvf,QAAUoe,EAAW,OAC/E,SAAS,MAAOA,GAAW,YAAY7J,MAAM+K,EAAOC,OAAOvf,QAAUoe,EAAW,UAAYA,EAAW,UAGzGkB,EAAOG,QAAU,SAASd,EAAMpZ,EAAMma,GACrC,GAAId,MAAgBC,IAEpB,IADAF,EAAOD,EAAUC,EAAMC,EAAWC,GACtB,MAARtZ,EAAc,CACjB,IAAK,GAAI4Z,KAAQ5Z,GAAMqZ,EAAUO,GAAQ5Z,EAAK4Z,EAC9CR,GAAOA,EAAK9W,QAAQ,aAAc,SAAS8X,EAAQC,GAElD,aADOhB,GAAUgB,GACVra,EAAKqa,KAGd,GAAI/U,GAAQ2F,EAAiBoO,EACzB/T,KAAO8T,GAAQ,IAAM9T,EACzB,IAAIgV,GAAOrP,EAAiBqO,EAE5B,IADIgB,IAAMlB,GAAQ,IAAMkB,GACpBR,EAAmB,CACtB,GAAI3U,GAAQgV,EAAUA,EAAQhV,MAAQ,KAClCvB,EAAQuW,EAAUA,EAAQvW,MAAQ,IACtC8H,GAAQ6O,aACJJ,GAAWA,EAAQ7X,QAASoJ,EAAQhI,QAAQwB,aAAaC,EAAOvB,EAAOmW,EAAOC,OAASZ,GACtF1N,EAAQhI,QAAQC,UAAUwB,EAAOvB,EAAOmW,EAAOC,OAASZ,OAEzD1N,GAAQzL,SAASwD,KAAOsW,EAAOC,OAASZ,GAE9CW,EAAOS,aAAe,SAASC,EAAQlQ,EAASC,GAC/C,QAASkQ,KACR,GAAItB,GAAOW,EAAOE,UACdU,KACAC,EAAWzB,EAAUC,EAAMuB,EAAQA,GACnCxV,EAAQuG,EAAQhI,QAAQyB,KAC5B,IAAa,MAATA,EACH,IAAK,GAAI0V,KAAK1V,GAAOwV,EAAOE,GAAK1V,EAAM0V,EAExC,KAAK,GAAIC,KAAUL,GAAQ,CAC1B,GAAIM,GAAU,GAAIvP,QAAO,IAAMsP,EAAOxY,QAAQ,iBAAkB,SAASA,QAAQ,WAAY,aAAe,MAC5G,IAAIyY,EAAQnN,KAAKgN,GAShB,WARAA,GAAStY,QAAQyY,EAAS,WAGzB,IAAK,GAFDC,GAAOF,EAAOzW,MAAM,gBACpBwG,KAAYmE,MAAMxU,KAAKkD,UAAW,GAAI,GACjCxD,EAAI,EAAGA,EAAI8gB,EAAKvgB,OAAQP,IAChCygB,EAAOK,EAAK9gB,GAAGoI,QAAQ,QAAS,KAAOmD,mBAAmBoF,EAAO3Q,GAElEqQ,GAAQkQ,EAAOK,GAASH,EAAQvB,EAAM0B,KAKzCtQ,EAAO4O,EAAMuB,GAEVb,EAAmBpO,EAAQ6O,WAAaxB,EAAc2B,GACrB,MAA5BX,EAAOC,OAAOpC,OAAO,KAAYlM,EAAQuP,aAAeP,GACjEA,KAEMX,EA2DRnf,GAAEsgB,MAzDQ,SAASxP,EAAS4L,GAC3B,GAEI6D,GAAS3D,EAAW4D,EAAQC,EAAaC,EAFzCC,EAAe3C,EAAWlN,GAC1B8P,EAAW,SAASrI,GAAI,MAAOA,IAE/B+H,EAAQ,SAAS3D,EAAMkE,EAAchB,GACxC,GAAY,MAARlD,EAAc,KAAM,IAAInd,OAAM,uEAClC,IAAIshB,GAAO,WACK,MAAXP,GAAiB7D,EAAeX,OAAOY,EAAM4D,EAAQjV,EAAMsR,EAAW4D,EAAOrV,IAAKqV,MAEnFO,EAAO,SAASvC,GACnB,GAAIA,IAASqC,EACR,KAAM,IAAIrhB,OAAM,mCAAqCqhB,EAD/BF,GAAarB,QAAQuB,EAAc,MAAOnZ,SAAS,IAG/EiZ,GAAaf,aAAaC,EAAQ,SAASmB,EAASjB,EAAQvB,GAC3D,GAAIyC,GAASP,EAAa,SAASQ,EAAeC,GAC7CF,IAAWP,IACf9D,EAAoB,MAARuE,GAAsC,kBAAdA,GAAKzb,MAAuC,kBAATyb,GAA6B,MAAPA,EAC7FX,EAAST,EAAQU,EAAcjC,EAAMkC,EAAa,KAClDH,GAAWW,EAAcnF,QAAU6E,GAAUnb,KAAKyb,GAClDJ,KAEGE,GAAQtb,MAA2B,kBAAZsb,GAAwBC,KAAWD,GAEzDA,EAAQI,QACXhR,EAAQT,QAAQqR,EAAQI,QAAQrB,EAAQvB,IAAOtQ,KAAK,SAASmT,GAC5DJ,EAAOD,EAASK,IACdN,GAECE,EAAOD,EAAS,QAEpBD,GACHrE,EAAeP,UAAUQ,EAAMmE,GAwBhC,OAtBAR,GAAMgB,IAAM,SAAS9C,EAAMpZ,EAAMma,GACd,MAAdmB,IAAoBnB,GAAW7X,SAAS,IAC5CgZ,EAAa,KACbC,EAAarB,QAAQd,EAAMpZ,EAAMma,IAElCe,EAAMtY,IAAM,WAAY,MAAOyY,IAC/BH,EAAMlB,OAAS,SAASmC,GAAUZ,EAAavB,OAASmC,GACxDjB,EAAMkB,KAAO,SAASC,GACrBA,EAAO/V,IAAI1H,aAAa,OAAQ2c,EAAavB,OAASqC,EAAO9V,MAAM9C,MACnE4Y,EAAO/V,IAAIgW,QAAU,SAAS5iB,GAC7B,KAAIA,EAAE6iB,SAAW7iB,EAAE8iB,SAAW9iB,EAAE+iB,UAAwB,IAAZ/iB,EAAEgjB,OAA9C,CACAhjB,EAAEkG,iBACFlG,EAAE0G,QAAS,CACX,IAAIqD,GAAOjG,KAAKS,aAAa,OACa,KAAtCwF,EAAKyL,QAAQqM,EAAavB,UAAevW,EAAOA,EAAKuL,MAAMuM,EAAavB,OAAOvf,SACnFygB,EAAMgB,IAAIzY,MAAMjK,OAAWA,OAG7B0hB,EAAMyB,MAAQ,SAASC,GACtB,WAAqB,KAAXxB,OAA0C,KAATwB,EAA6BxB,EAAOwB,GACxExB,GAEDF,GAEMrgB,OAAQic,GACtBlc,EAAEiiB,SAAW,SAASC,EAAUC,EAAWhiB,GAC1C,MAAO,UAASrB,GACfqjB,EAAUviB,KAAKO,GAAWyC,KAAMsf,IAAYpjB,GAAEsjB,cAAgBtjB,EAAEsjB,cAAcF,GAAYpjB,EAAEsjB,cAAc/e,aAAa6e,KAGzH,IAAIG,GAAM7N,EAAavU,OACvBD,GAAE+b,OAASsG,EAAItG,OACf/b,EAAEwF,OAAS0W,EAAc1W,OACzBxF,EAAEuR,QAAUV,EAAeU,QAC3BvR,EAAEqT,MAAQxC,EAAewC,MACzBrT,EAAE8c,iBAAmBA,EACrB9c,EAAEqQ,iBAAmBA,EACrBrQ,EAAEsiB,QAAU,QACZtiB,EAAEkV,MAAQ5J,MACY,KAAXvL,EAAwBA,EAAgB,QAAIC,EAClDC,OAAOD,EAAIA,OAEbJ,KAAKgD,KAAuB,mBAAXyI,QAAyBA,OAAyB,mBAAToD,MAAuBA,KAAyB,mBAAXxO,QAAyBA,gBACrHsiB,GAAG,SAAS5jB,EAAQoB,EAAOJ,IAQ/B,SAAUA,GACR,YAQA,SAASO,MAcT,QAASsiB,GAAgBC,EAAWC,GAEhC,IADA,GAAIpjB,GAAImjB,EAAU5iB,OACXP,KACH,GAAImjB,EAAUnjB,GAAGojB,WAAaA,EAC1B,MAAOpjB,EAIf,QAAQ,EAUZ,QAASqjB,GAAMC,GACX,MAAO,YACH,MAAOhgB,MAAKggB,GAAM5f,MAAMJ,KAAME,YAsEtC,QAAS+f,GAAiBH,GACtB,MAAwB,kBAAbA,IAA2BA,YAAoB9R,YAE/C8R,GAAgC,gBAAbA,KACnBG,EAAgBH,EAASA,UAzGxC,GAAII,GAAQ5iB,EAAamC,UACrB0gB,EAAsBpjB,EAAQO,YA2ClC4iB,GAAME,aAAe,SAAsBC,GACvC,GACInQ,GACA3H,EAFA7K,EAASsC,KAAKsgB,YAMlB,IAAID,YAAerS,QAAQ,CACvBkC,IACA,KAAK3H,IAAO7K,GACJA,EAAOqK,eAAeQ,IAAQ8X,EAAIjQ,KAAK7H,KACvC2H,EAAS3H,GAAO7K,EAAO6K,QAK/B2H,GAAWxS,EAAO2iB,KAAS3iB,EAAO2iB,MAGtC,OAAOnQ,IASXgQ,EAAMK,iBAAmB,SAA0BV,GAC/C,GACInjB,GADA8jB,IAGJ,KAAK9jB,EAAI,EAAGA,EAAImjB,EAAU5iB,OAAQP,GAAK,EACnC8jB,EAAc9b,KAAKmb,EAAUnjB,GAAGojB,SAGpC,OAAOU,IASXN,EAAMO,qBAAuB,SAA8BJ,GACvD,GACInQ,GADA2P,EAAY7f,KAAKogB,aAAaC,EAQlC,OALIR,aAAqBrgB,SACrB0Q,KACAA,EAASmQ,GAAOR,GAGb3P,GAAY2P,GAuBvBK,EAAMQ,YAAc,SAAqBL,EAAKP,GAC1C,IAAKG,EAAgBH,GACjB,KAAM,IAAIhU,WAAU,8BAGxB,IAEIvD,GAFAsX,EAAY7f,KAAKygB,qBAAqBJ,GACtCM,EAAwC,gBAAbb,EAG/B,KAAKvX,IAAOsX,GACJA,EAAU9X,eAAeQ,KAAuD,IAA/CqX,EAAgBC,EAAUtX,GAAMuX,IACjED,EAAUtX,GAAK7D,KAAKic,EAAoBb,GACpCA,SAAUA,EACVc,MAAM,GAKlB,OAAO5gB,OAMXkgB,EAAMlb,GAAK+a,EAAM,eAUjBG,EAAMW,gBAAkB,SAAyBR,EAAKP,GAClD,MAAO9f,MAAK0gB,YAAYL,GACpBP,SAAUA,EACVc,MAAM,KAOdV,EAAMU,KAAOb,EAAM,mBASnBG,EAAMY,YAAc,SAAqBT,GAErC,MADArgB,MAAKogB,aAAaC,GACXrgB,MASXkgB,EAAMa,aAAe,SAAsBC,GACvC,IAAK,GAAItkB,GAAI,EAAGA,EAAIskB,EAAK/jB,OAAQP,GAAK,EAClCsD,KAAK8gB,YAAYE,EAAKtkB,GAE1B,OAAOsD,OAWXkgB,EAAMe,eAAiB,SAAwBZ,EAAKP,GAChD,GACInG,GACApR,EAFAsX,EAAY7f,KAAKygB,qBAAqBJ,EAI1C,KAAK9X,IAAOsX,GACJA,EAAU9X,eAAeQ,KAGV,KAFfoR,EAAQiG,EAAgBC,EAAUtX,GAAMuX,KAGpCD,EAAUtX,GAAKqR,OAAOD,EAAO,EAKzC,OAAO3Z,OAMXkgB,EAAMgB,IAAMnB,EAAM,kBAYlBG,EAAMiB,aAAe,SAAsBd,EAAKR,GAE5C,MAAO7f,MAAKohB,qBAAoB,EAAOf,EAAKR,IAahDK,EAAMmB,gBAAkB,SAAyBhB,EAAKR,GAElD,MAAO7f,MAAKohB,qBAAoB,EAAMf,EAAKR,IAe/CK,EAAMkB,oBAAsB,SAA6BE,EAAQjB,EAAKR,GAClE,GAAInjB,GACAiE,EACA4gB,EAASD,EAASthB,KAAKihB,eAAiBjhB,KAAK0gB,YAC7Cc,EAAWF,EAASthB,KAAKqhB,gBAAkBrhB,KAAKmhB,YAGpD,IAAmB,gBAARd,IAAsBA,YAAerS,QAmB5C,IADAtR,EAAImjB,EAAU5iB,OACPP,KACH6kB,EAAOvkB,KAAKgD,KAAMqgB,EAAKR,EAAUnjB,QAnBrC,KAAKA,IAAK2jB,GACFA,EAAItY,eAAerL,KAAOiE,EAAQ0f,EAAI3jB,MAEjB,kBAAViE,GACP4gB,EAAOvkB,KAAKgD,KAAMtD,EAAGiE,GAIrB6gB,EAASxkB,KAAKgD,KAAMtD,EAAGiE,GAevC,OAAOX,OAYXkgB,EAAMuB,YAAc,SAAqBpB,GACrC,GAEI9X,GAFAtF,QAAcod,GACd3iB,EAASsC,KAAKsgB,YAIlB,IAAa,WAATrd,QAEOvF,GAAO2iB,OAEb,IAAIA,YAAerS,QAEpB,IAAKzF,IAAO7K,GACJA,EAAOqK,eAAeQ,IAAQ8X,EAAIjQ,KAAK7H,UAChC7K,GAAO6K,cAMfvI,MAAK0hB,OAGhB,OAAO1hB,OAQXkgB,EAAMyB,mBAAqB5B,EAAM,eAcjCG,EAAM0B,UAAY,SAAmBvB,EAAKpgB,GACtC,GACI4f,GACAC,EACApjB,EACA6L,EAJAsZ,EAAe7hB,KAAKygB,qBAAqBJ,EAO7C,KAAK9X,IAAOsZ,GACR,GAAIA,EAAa9Z,eAAeQ,GAG5B,IAFAsX,EAAYgC,EAAatZ,GAAKiJ,MAAM,GAE/B9U,EAAI,EAAGA,EAAImjB,EAAU5iB,OAAQP,IAG9BojB,EAAWD,EAAUnjB,IAEC,IAAlBojB,EAASc,MACT5gB,KAAKihB,eAAeZ,EAAKP,EAASA,UAG3BA,EAASA,SAAS1f,MAAMJ,KAAMC,SAExBD,KAAK8hB,uBAClB9hB,KAAKihB,eAAeZ,EAAKP,EAASA;4FAMlD,OAAO9f,OAMXkgB,EAAMvb,QAAUob,EAAM,aAUtBG,EAAM6B,KAAO,SAAc1B,GACvB,GAAIpgB,GAAOT,MAAMC,UAAU+R,MAAMxU,KAAKkD,UAAW,EACjD,OAAOF,MAAK4hB,UAAUvB,EAAKpgB,IAW/BigB,EAAM8B,mBAAqB,SAA4BrhB,GAEnD,MADAX,MAAKiiB,iBAAmBthB,EACjBX,MAWXkgB,EAAM4B,oBAAsB,WACxB,OAAI9hB,KAAK+H,eAAe,qBACb/H,KAAKiiB,kBAapB/B,EAAMI,WAAa,WACf,MAAOtgB,MAAK0hB,UAAY1hB,KAAK0hB,aAQjCpkB,EAAa4kB,WAAa,WAEtB,MADAnlB,GAAQO,aAAe6iB,EAChB7iB,GAIW,kBAAXrB,IAAyBA,EAAOkmB,IACvClmB,EAAO,WACH,MAAOqB,KAGY,gBAAXH,IAAuBA,EAAOJ,QAC1CI,EAAOJ,QAAUO,EAGjBP,EAAQO,aAAeA,GAE7B0C,oBAES","file":"admin.min.js","sourcesContent":["(function () { var require = undefined; var define = undefined; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\n// dependencies\n\nvar m = window.m = require('mithril');\nvar EventEmitter = require('wolfy87-eventemitter');\n\n// vars\nvar context = document.getElementById('mc4wp-admin');\nvar events = new EventEmitter();\nvar tabs = require('./admin/tabs.js')(context);\nvar helpers = require('./admin/helpers.js');\nvar settings = require('./admin/settings.js')(context, helpers, events);\n\n// list fetcher\nvar ListFetcher = require('./admin/list-fetcher.js');\nvar mount = document.getElementById('mc4wp-list-fetcher');\nif (mount) {\n m.mount(mount, new ListFetcher());\n}\n\n// expose some things\nwindow.mc4wp = window.mc4wp || {};\nwindow.mc4wp.deps = window.mc4wp.deps || {};\nwindow.mc4wp.deps.mithril = m;\nwindow.mc4wp.helpers = helpers;\nwindow.mc4wp.events = events;\nwindow.mc4wp.settings = settings;\nwindow.mc4wp.tabs = tabs;\n\n},{\"./admin/helpers.js\":2,\"./admin/list-fetcher.js\":3,\"./admin/settings.js\":4,\"./admin/tabs.js\":5,\"mithril\":7,\"wolfy87-eventemitter\":8}],2:[function(require,module,exports){\n'use strict';\n\nvar helpers = {};\n\nhelpers.toggleElement = function (selector) {\n\tvar elements = document.querySelectorAll(selector);\n\tfor (var i = 0; i < elements.length; i++) {\n\t\tvar show = elements[i].clientHeight <= 0;\n\t\telements[i].style.display = show ? '' : 'none';\n\t}\n};\n\nhelpers.bindEventToElement = function (element, event, handler) {\n\tif (element.addEventListener) {\n\t\telement.addEventListener(event, handler);\n\t} else if (element.attachEvent) {\n\t\telement.attachEvent('on' + event, handler);\n\t}\n};\n\nhelpers.bindEventToElements = function (elements, event, handler) {\n\tArray.prototype.forEach.call(elements, function (element) {\n\t\thelpers.bindEventToElement(element, event, handler);\n\t});\n};\n\n// polling\nhelpers.debounce = function (func, wait, immediate) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n\n/**\n * Showif.js\n */\n(function () {\n\tvar showIfElements = document.querySelectorAll('[data-showif]');\n\n\t// dependent elements\n\tArray.prototype.forEach.call(showIfElements, function (element) {\n\t\tvar config = JSON.parse(element.getAttribute('data-showif'));\n\t\tvar parentElements = document.querySelectorAll('[name=\"' + config.element + '\"]');\n\t\tvar inputs = element.querySelectorAll('input,select,textarea:not([readonly])');\n\t\tvar hide = config.hide === undefined || config.hide;\n\n\t\tfunction toggleElement() {\n\n\t\t\t// do nothing with unchecked radio inputs\n\t\t\tif (this.getAttribute('type') === \"radio\" && !this.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar value = this.getAttribute(\"type\") === \"checkbox\" ? this.checked : this.value;\n\t\t\tvar conditionMet = value == config.value;\n\n\t\t\tif (hide) {\n\t\t\t\telement.style.display = conditionMet ? '' : 'none';\n\t\t\t\telement.style.visibility = conditionMet ? '' : 'hidden';\n\t\t\t} else {\n\t\t\t\telement.style.opacity = conditionMet ? '' : '0.4';\n\t\t\t}\n\n\t\t\t// disable input fields to stop sending their values to server\n\t\t\tArray.prototype.forEach.call(inputs, function (inputElement) {\n\t\t\t\tconditionMet ? inputElement.removeAttribute('readonly') : inputElement.setAttribute('readonly', 'readonly');\n\t\t\t});\n\t\t}\n\n\t\t// find checked element and call toggleElement function\n\t\tArray.prototype.forEach.call(parentElements, function (parentElement) {\n\t\t\ttoggleElement.call(parentElement);\n\t\t});\n\n\t\t// bind on all changes\n\t\thelpers.bindEventToElements(parentElements, 'change', toggleElement);\n\t});\n})();\n\nmodule.exports = helpers;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar $ = window.jQuery;\nvar config = mc4wp_vars;\nvar i18n = config.i18n;\n\nfunction ListFetcher() {\n this.working = false;\n this.done = false;\n\n // start fetching right away when no lists but api key given\n if (config.mailchimp.api_connected && config.mailchimp.lists.length == 0) {\n this.fetch();\n }\n}\n\nListFetcher.prototype.fetch = function (e) {\n e && e.preventDefault();\n\n this.working = true;\n this.done = false;\n\n $.post(ajaxurl, {\n action: \"mc4wp_renew_mailchimp_lists\"\n }).done(function (data) {\n if (data) {\n window.setTimeout(function () {\n window.location.reload();\n }, 3000);\n }\n }).always(function (data) {\n this.working = false;\n this.done = true;\n\n m.redraw();\n }.bind(this));\n};\n\nListFetcher.prototype.view = function () {\n return m('form', {\n method: \"POST\",\n onsubmit: this.fetch.bind(this)\n }, [m('p', [m('input', {\n type: \"submit\",\n value: this.working ? i18n.fetching_mailchimp_lists : i18n.renew_mailchimp_lists,\n className: \"button\",\n disabled: !!this.working\n }), m.trust(' '), this.working ? [m('span.mc4wp-loader', \"Loading...\"), m.trust(' '), m('em.help', i18n.fetching_mailchimp_lists_can_take_a_while)] : '', this.done ? [m('em.help.green', i18n.fetching_mailchimp_lists_done)] : ''])]);\n};\n\nmodule.exports = ListFetcher;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar Settings = function Settings(context, helpers, events) {\n\t'use strict';\n\n\t// vars\n\n\tvar form = context.querySelector('form');\n\tvar listInputs = context.querySelectorAll('.mc4wp-list-input');\n\tvar lists = mc4wp_vars.mailchimp.lists;\n\tvar selectedLists = [];\n\n\t// functions\n\tfunction getSelectedListsWhere(searchKey, searchValue) {\n\t\treturn selectedLists.filter(function (el) {\n\t\t\treturn el[searchKey] === searchValue;\n\t\t});\n\t}\n\n\tfunction getSelectedLists() {\n\t\treturn selectedLists;\n\t}\n\n\tfunction updateSelectedLists() {\n\t\tselectedLists = [];\n\n\t\tArray.prototype.forEach.call(listInputs, function (input) {\n\t\t\t// skip unchecked checkboxes\n\t\t\tif (typeof input.checked === \"boolean\" && !input.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_typeof(lists[input.value]) === \"object\") {\n\t\t\t\tselectedLists.push(lists[input.value]);\n\t\t\t}\n\t\t});\n\n\t\tevents.trigger('selectedLists.change', [selectedLists]);\n\t\treturn selectedLists;\n\t}\n\n\tfunction toggleVisibleLists() {\n\t\tvar rows = document.querySelectorAll('.lists--only-selected > *');\n\t\tArray.prototype.forEach.call(rows, function (el) {\n\n\t\t\tvar listId = el.getAttribute('data-list-id');\n\t\t\tvar isSelected = getSelectedListsWhere('id', listId).length > 0;\n\n\t\t\tif (isSelected) {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class').replace('hidden', ''));\n\t\t\t} else {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class') + \" hidden\");\n\t\t\t}\n\t\t});\n\t}\n\n\tevents.on('selectedLists.change', toggleVisibleLists);\n\thelpers.bindEventToElements(listInputs, 'change', updateSelectedLists);\n\n\tupdateSelectedLists();\n\n\treturn {\n\t\tgetSelectedLists: getSelectedLists\n\t};\n};\n\nmodule.exports = Settings;\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nvar URL = require('./url.js');\n\n// Tabs\nvar Tabs = function Tabs(context) {\n\n\t// TODO: last piece of jQuery... can we get rid of it?\n\tvar $ = window.jQuery;\n\n\tvar $context = $(context);\n\tvar $tabs = $context.find('.tab');\n\tvar $tabNavs = $context.find('.nav-tab');\n\tvar refererField = context.querySelector('input[name=\"_wp_http_referer\"]');\n\tvar tabs = [];\n\n\t$.each($tabs, function (i, t) {\n\t\tvar id = t.id.substring(4);\n\t\tvar title = $(t).find('h2').first().text();\n\n\t\ttabs.push({\n\t\t\tid: id,\n\t\t\ttitle: title,\n\t\t\telement: t,\n\t\t\tnav: context.querySelectorAll('.nav-tab-' + id),\n\t\t\topen: function open() {\n\t\t\t\treturn _open(id);\n\t\t\t}\n\t\t});\n\t});\n\n\tfunction get(id) {\n\n\t\tfor (var i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].id === id) {\n\t\t\t\treturn tabs[i];\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tfunction _open(tab, updateState) {\n\n\t\t// make sure we have a tab object\n\t\tif (typeof tab === \"string\") {\n\t\t\ttab = get(tab);\n\t\t}\n\n\t\tif (!tab) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// should we update state?\n\t\tif (updateState == undefined) {\n\t\t\tupdateState = true;\n\t\t}\n\n\t\t// hide all tabs & remove active class\n\t\t$tabs.removeClass('tab-active').css('display', 'none');\n\t\t$tabNavs.removeClass('nav-tab-active');\n\n\t\t// add `nav-tab-active` to this tab\n\t\tArray.prototype.forEach.call(tab.nav, function (nav) {\n\t\t\tnav.className += \" nav-tab-active\";\n\t\t\tnav.blur();\n\t\t});\n\n\t\t// show target tab\n\t\ttab.element.style.display = 'block';\n\t\ttab.element.className += \" tab-active\";\n\n\t\t// create new URL\n\t\tvar url = URL.setParameter(window.location.href, \"tab\", tab.id);\n\n\t\t// update hash\n\t\tif (history.pushState && updateState) {\n\t\t\thistory.pushState(tab.id, '', url);\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\n\t\t// update referer field\n\t\trefererField.value = url;\n\n\t\t// if thickbox is open, close it.\n\t\tif (typeof tb_remove === \"function\") {\n\t\t\ttb_remove();\n\t\t}\n\n\t\t// refresh editor after switching tabs\n\t\t// TODO: decouple this! law of demeter etc.\n\t\tif (tab.id === 'fields' && window.mc4wp && window.mc4wp.forms && window.mc4wp.forms.editor) {\n\t\t\tmc4wp.forms.editor.refresh();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction title(tab) {\n\t\tvar title = document.title.split('-');\n\t\tdocument.title = document.title.replace(title[0], tab.title + \" \");\n\t}\n\n\tfunction switchTab(e) {\n\t\te = e || window.event;\n\n\t\t// get from data attribute\n\t\tvar tabId = this.getAttribute('data-tab');\n\n\t\t// get from classname\n\t\tif (!tabId) {\n\t\t\tvar match = this.className.match(/nav-tab-(\\w+)?/);\n\t\t\tif (match) {\n\t\t\t\ttabId = match[1];\n\t\t\t}\n\t\t}\n\n\t\t// get from href\n\t\tif (!tabId) {\n\t\t\tvar urlParams = URL.parse(this.href);\n\t\t\tif (!urlParams.tab) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttabId = urlParams.tab;\n\t\t}\n\n\t\tvar opened = _open(tabId);\n\n\t\tif (opened) {\n\t\t\te.preventDefault();\n\t\t\te.returnValue = false;\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction init() {\n\n\t\t// check for current tab\n\t\tif (!history.pushState) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar activeTab = $tabs.filter(':visible').get(0);\n\t\tif (!activeTab) {\n\t\t\treturn;\n\t\t}\n\t\tvar tab = get(activeTab.id.substring(4));\n\t\tif (!tab) return;\n\n\t\t// check if tab is in html5 history\n\t\tif (history.replaceState && history.state === null) {\n\t\t\thistory.replaceState(tab.id, '');\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\t}\n\n\t$tabNavs.click(switchTab);\n\t$(document.body).on('click', '.tab-link', switchTab);\n\tinit();\n\n\tif (window.addEventListener && history.pushState) {\n\t\twindow.addEventListener('popstate', function (e) {\n\t\t\tif (!e.state) return true;\n\t\t\tvar tabId = e.state;\n\t\t\treturn _open(tabId, false);\n\t\t});\n\t}\n\n\treturn {\n\t\topen: _open,\n\t\tget: get\n\t};\n};\n\nmodule.exports = Tabs;\n\n},{\"./url.js\":6}],6:[function(require,module,exports){\n'use strict';\n\nvar URL = {\n\tparse: function parse(url) {\n\t\tvar query = {};\n\t\tvar a = url.split('&');\n\t\tfor (var i in a) {\n\t\t\tif (!a.hasOwnProperty(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar b = a[i].split('=');\n\t\t\tquery[decodeURIComponent(b[0])] = decodeURIComponent(b[1]);\n\t\t}\n\n\t\treturn query;\n\t},\n\tbuild: function build(data) {\n\t\tvar ret = [];\n\t\tfor (var d in data) {\n\t\t\tret.push(d + \"=\" + encodeURIComponent(data[d]));\n\t\t}return ret.join(\"&\");\n\t},\n\tsetParameter: function setParameter(url, key, value) {\n\t\tvar data = URL.parse(url);\n\t\tdata[key] = value;\n\t\treturn URL.build(data);\n\t}\n};\n\nmodule.exports = URL;\n\n},{}],7:[function(require,module,exports){\n(function (global){\n;(function() {\n\"use strict\"\nfunction Vnode(tag, key, attrs0, children, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: undefined, _state: undefined, events: undefined, instance: undefined, skip: false}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node != null && typeof node !== \"object\") return Vnode(\"#\", undefined, undefined, node === false ? \"\" : node, undefined, undefined)\n\treturn node\n}\nVnode.normalizeChildren = function normalizeChildren(children) {\n\tfor (var i = 0; i < children.length; i++) {\n\t\tchildren[i] = Vnode.normalize(children[i])\n\t}\n\treturn children\n}\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\nfunction execSelector(state, attrs, children) {\n\tvar hasAttrs = false, childList, text\n\tvar className = attrs.className || attrs.class\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key)) {\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className !== undefined) {\n\t\tif (attrs.class !== undefined) {\n\t\t\tattrs.class = undefined\n\t\t\tattrs.className = className\n\t\t}\n\t\tif (state.attrs.className != null) {\n\t\t\tattrs.className = state.attrs.className + \" \" + className\n\t\t}\n\t}\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\thasAttrs = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\ttext = children[0].children\n\t} else {\n\t\tchildList = children\n\t}\n\treturn Vnode(state.tag, attrs.key, hasAttrs ? attrs : undefined, childList, text)\n}\nfunction hyperscript(selector) {\n\t// Because sloppy mode sucks\n\tvar attrs = arguments[1], start = 2, children\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\tif (typeof selector === \"string\") {\n\t\tvar cached = selectorCache[selector] || compileSelector(selector)\n\t}\n\tif (attrs == null) {\n\t\tattrs = {}\n\t} else if (typeof attrs !== \"object\" || attrs.tag != null || Array.isArray(attrs)) {\n\t\tattrs = {}\n\t\tstart = 1\n\t}\n\tif (arguments.length === start + 1) {\n\t\tchildren = arguments[start]\n\t\tif (!Array.isArray(children)) children = [children]\n\t} else {\n\t\tchildren = []\n\t\twhile (start < arguments.length) children.push(arguments[start++])\n\t}\n\tvar normalized = Vnode.normalizeChildren(children)\n\tif (typeof selector === \"string\") {\n\t\treturn execSelector(cached, attrs, normalized)\n\t} else {\n\t\treturn Vnode(selector, attrs.key, attrs, normalized)\n\t}\n}\nhyperscript.trust = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\nhyperscript.fragment = function(attrs1, children) {\n\treturn Vnode(\"[\", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined)\n}\nvar m = hyperscript\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") window.Promise = PromisePolyfill\n\tvar PromisePolyfill = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") global.Promise = PromisePolyfill\n\tvar PromisePolyfill = global.Promise\n} else {\n}\nvar buildQueryString = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\tvar args = []\n\tfor (var key0 in object) {\n\t\tdestructure(key0, object[key0])\n\t}\n\treturn args.join(\"&\")\n\tfunction destructure(key0, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key0) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\nvar FILE_PROTOCOL_REGEX = new RegExp(\"^file://\", \"i\")\nvar _8 = function($window, Promise) {\n\tvar callbackCount = 0\n\tvar oncompletion\n\tfunction setCompletionCallback(callback) {oncompletion = callback}\n\tfunction finalizer() {\n\t\tvar count = 0\n\t\tfunction complete() {if (--count === 0 && typeof oncompletion === \"function\") oncompletion()}\n\t\treturn function finalize(promise0) {\n\t\t\tvar then0 = promise0.then\n\t\t\tpromise0.then = function() {\n\t\t\t\tcount++\n\t\t\t\tvar next = then0.apply(promise0, arguments)\n\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\tcomplete()\n\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t})\n\t\t\t\treturn finalize(next)\n\t\t\t}\n\t\t\treturn promise0\n\t\t}\n\t}\n\tfunction normalize(args, extra) {\n\t\tif (typeof args === \"string\") {\n\t\t\tvar url = args\n\t\t\targs = extra || {}\n\t\t\tif (args.url == null) args.url = url\n\t\t}\n\t\treturn args\n\t}\n\tfunction request(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tif (args.method == null) args.method = \"GET\"\n\t\t\targs.method = args.method.toUpperCase()\n\t\t\tvar useBody = (args.method === \"GET\" || args.method === \"TRACE\") ? false : (typeof args.useBody === \"boolean\" ? args.useBody : true)\n\t\t\tif (typeof args.serialize !== \"function\") args.serialize = typeof FormData !== \"undefined\" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify\n\t\t\tif (typeof args.deserialize !== \"function\") args.deserialize = deserialize\n\t\t\tif (typeof args.extract !== \"function\") args.extract = extract\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\tif (useBody) args.data = args.serialize(args.data)\n\t\t\telse args.url = assemble(args.url, args.data)\n\t\t\tvar xhr = new $window.XMLHttpRequest(),\n\t\t\t\taborted = false,\n\t\t\t\t_abort = xhr.abort\n\t\t\txhr.abort = function abort() {\n\t\t\t\taborted = true\n\t\t\t\t_abort.call(xhr)\n\t\t\t}\n\t\t\txhr.open(args.method, args.url, typeof args.async === \"boolean\" ? args.async : true, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\t\t\tif (args.serialize === JSON.stringify && useBody) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (args.deserialize === deserialize) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tfor (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t}\n\t\t\tif (typeof args.config === \"function\") xhr = args.config(xhr, args) || xhr\n\t\t\txhr.onreadystatechange = function() {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif(aborted) return\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args))\n\t\t\t\t\t\tif ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || FILE_PROTOCOL_REGEX.test(args.url)) {\n\t\t\t\t\t\t\tresolve(cast(args.type, response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar error = new Error(xhr.responseText)\n\t\t\t\t\t\t\tfor (var key in response) error[key] = response[key]\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (useBody && (args.data != null)) xhr.send(args.data)\n\t\t\telse xhr.send()\n\t\t})\n\t\treturn args.background === true ? promise0 : finalize(promise0)\n\t}\n\tfunction jsonp(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(cast(args.type, data))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tif (args.data == null) args.data = {}\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\targs.data[args.callbackKey || \"callback\"] = callbackName\n\t\t\tscript.src = assemble(args.url, args.data)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t})\n\t\treturn args.background === true? promise0 : finalize(promise0)\n\t}\n\tfunction interpolate(url, data) {\n\t\tif (data == null) return url\n\t\tvar tokens = url.match(/:[^\\/]+/gi) || []\n\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\tvar key = tokens[i].slice(1)\n\t\t\tif (data[key] != null) {\n\t\t\t\turl = url.replace(tokens[i], data[key])\n\t\t\t}\n\t\t}\n\t\treturn url\n\t}\n\tfunction assemble(url, data) {\n\t\tvar querystring = buildQueryString(data)\n\t\tif (querystring !== \"\") {\n\t\t\tvar prefix = url.indexOf(\"?\") < 0 ? \"?\" : \"&\"\n\t\t\turl += prefix + querystring\n\t\t}\n\t\treturn url\n\t}\n\tfunction deserialize(data) {\n\t\ttry {return data !== \"\" ? JSON.parse(data) : null}\n\t\tcatch (e) {throw new Error(data)}\n\t}\n\tfunction extract(xhr) {return xhr.responseText}\n\tfunction cast(type0, data) {\n\t\tif (typeof type0 === \"function\") {\n\t\t\tif (Array.isArray(data)) {\n\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\tdata[i] = new type0(data[i])\n\t\t\t\t}\n\t\t\t}\n\t\t\telse return new type0(data)\n\t\t}\n\t\treturn data\n\t}\n\treturn {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback}\n}\nvar requestService = _8(window, PromisePolyfill)\nvar coreRenderer = function($window) {\n\tvar $doc = $window.document\n\tvar $emptyFragment = $doc.createDocumentFragment()\n\tvar onevent\n\tfunction setEventCallback(callback) {return onevent = callback}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode.state = {}\n\t\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": return createText(parent, vnode, nextSibling)\n\t\t\t\tcase \"<\": return createHTML(parent, vnode, nextSibling)\n\t\t\t\tcase \"[\": return createFragment(parent, vnode, hooks, ns, nextSibling)\n\t\t\t\tdefault: return createElement(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse return createComponent(parent, vnode, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode, nextSibling) {\n\t\tvnode.dom = $doc.createTextNode(vnode.children)\n\t\tinsertNode(parent, vnode.dom, nextSibling)\n\t\treturn vnode.dom\n\t}\n\tfunction createHTML(parent, vnode, nextSibling) {\n\t\tvar match1 = vnode.children.match(/^\\s*?<(\\w+)/im) || []\n\t\tvar parent1 = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}[match1[1]] || \"div\"\n\t\tvar temp = $doc.createElement(parent1)\n\t\ttemp.innerHTML = vnode.children\n\t\tvnode.dom = temp.firstChild\n\t\tvnode.domSize = temp.childNodes.length\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createFragment(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode.children != null) {\n\t\t\tvar children = vnode.children\n\t\t\tcreateNodes(fragment, children, 0, children.length, hooks, null, ns)\n\t\t}\n\t\tvnode.dom = fragment.firstChild\n\t\tvnode.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createElement(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tswitch (vnode.tag) {\n\t\t\tcase \"svg\": ns = \"http://www.w3.org/2000/svg\"; break\n\t\t\tcase \"math\": ns = \"http://www.w3.org/1998/Math/MathML\"; break\n\t\t}\n\t\tvar attrs2 = vnode.attrs\n\t\tvar is = attrs2 && attrs2.is\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode.dom = element\n\t\tif (attrs2 != null) {\n\t\t\tsetAttrs(vnode, attrs2, ns)\n\t\t}\n\t\tinsertNode(parent, element, nextSibling)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse {\n\t\t\tif (vnode.text != null) {\n\t\t\t\tif (vnode.text !== \"\") element.textContent = vnode.text\n\t\t\t\telse vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode.children != null) {\n\t\t\t\tvar children = vnode.children\n\t\t\t\tcreateNodes(element, children, 0, children.length, hooks, null, ns)\n\t\t\t\tsetLateAttrs(vnode)\n\t\t\t}\n\t\t}\n\t\treturn element\n\t}\n\tfunction initComponent(vnode, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode.tag.view === \"function\") {\n\t\t\tvnode.state = Object.create(vnode.tag)\n\t\t\tsentinel = vnode.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode.state = void 0\n\t\t\tsentinel = vnode.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode.state = (vnode.tag.prototype != null && typeof vnode.tag.prototype.view === \"function\") ? new vnode.tag(vnode) : vnode.tag(vnode)\n\t\t}\n\t\tvnode._state = vnode.state\n\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\tinitLifecycle(vnode._state, vnode, hooks)\n\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tvar element = createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0\n\t\t\tinsertNode(parent, element, nextSibling)\n\t\t\treturn element\n\t\t}\n\t\telse {\n\t\t\tvnode.domSize = 0\n\t\t\treturn $emptyFragment\n\t\t}\n\t}\n\t//update\n\tfunction updateNodes(parent, old, vnodes, recycling, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, undefined)\n\t\telse if (vnodes == null) removeNodes(old, 0, old.length, vnodes)\n\t\telse {\n\t\t\tif (old.length === vnodes.length) {\n\t\t\t\tvar isUnkeyed = false\n\t\t\t\tfor (var i = 0; i < vnodes.length; i++) {\n\t\t\t\t\tif (vnodes[i] != null && old[i] != null) {\n\t\t\t\t\t\tisUnkeyed = vnodes[i].key == null && old[i].key == null\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isUnkeyed) {\n\t\t\t\t\tfor (var i = 0; i < old.length; i++) {\n\t\t\t\t\t\tif (old[i] === vnodes[i]) continue\n\t\t\t\t\t\telse if (old[i] == null && vnodes[i] != null) createNode(parent, vnodes[i], hooks, ns, getNextSibling(old, i + 1, nextSibling))\n\t\t\t\t\t\telse if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes)\n\t\t\t\t\t\telse updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), recycling, ns)\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\trecycling = recycling || isRecyclable(old, vnodes)\n\t\t\tif (recycling) {\n\t\t\t\tvar pool = old.pool\n\t\t\t\told = old.concat(old.pool)\n\t\t\t}\n\t\t\tvar oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldStart], v = vnodes[start]\n\t\t\t\tif (o === v && !recycling) oldStart++, start++\n\t\t\t\telse if (o == null) oldStart++\n\t\t\t\telse if (v == null) start++\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldStart >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\toldStart++, start++\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar o = old[oldEnd]\n\t\t\t\t\tif (o === v && !recycling) oldEnd--, start++\n\t\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\t\telse if (v == null) start++\n\t\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\t\tif (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling))\n\t\t\t\t\t\toldEnd--, start++\n\t\t\t\t\t}\n\t\t\t\t\telse break\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldEnd], v = vnodes[end]\n\t\t\t\tif (o === v && !recycling) oldEnd--, end--\n\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\telse if (v == null) end--\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t\tif (o.dom != null) nextSibling = o.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (!map) map = getKeyMap(old, oldEnd)\n\t\t\t\t\tif (v != null) {\n\t\t\t\t\t\tvar oldIndex = map[v.key]\n\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\tvar movable = old[oldIndex]\n\t\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldIndex >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\t\tupdateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns)\n\t\t\t\t\t\t\tinsertNode(parent, toFragment(movable), nextSibling)\n\t\t\t\t\t\t\told[oldIndex].skip = true\n\t\t\t\t\t\t\tif (movable.dom != null) nextSibling = movable.dom\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar dom = createNode(parent, v, hooks, undefined, nextSibling)\n\t\t\t\t\t\t\tnextSibling = dom\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tend--\n\t\t\t\t}\n\t\t\t\tif (end < start) break\n\t\t\t}\n\t\t\tcreateNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\tremoveNodes(old, oldStart, oldEnd + 1, vnodes)\n\t\t}\n\t}\n\tfunction updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode.state = old.state\n\t\t\tvnode._state = old._state\n\t\t\tvnode.events = old.events\n\t\t\tif (!recycling && shouldNotUpdate(vnode, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode.attrs != null) {\n\t\t\t\t\tif (recycling) {\n\t\t\t\t\t\tvnode.state = {}\n\t\t\t\t\t\tinitLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t\t}\n\t\t\t\t\telse updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode, recycling, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(old, null)\n\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode) {\n\t\tif (old.children.toString() !== vnode.children.toString()) {\n\t\t\told.dom.nodeValue = vnode.children\n\t\t}\n\t\tvnode.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode, nextSibling) {\n\t\tif (old.children !== vnode.children) {\n\t\t\ttoFragment(old)\n\t\t\tcreateHTML(parent, vnode, nextSibling)\n\t\t}\n\t\telse vnode.dom = old.dom, vnode.domSize = old.domSize\n\t}\n\tfunction updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode.children, recycling, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children = vnode.children\n\t\tvnode.dom = null\n\t\tif (children != null) {\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode.dom == null) vnode.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode, recycling, hooks, ns) {\n\t\tvar element = vnode.dom = old.dom\n\t\tswitch (vnode.tag) {\n\t\t\tcase \"svg\": ns = \"http://www.w3.org/2000/svg\"; break\n\t\t\tcase \"math\": ns = \"http://www.w3.org/1998/Math/MathML\"; break\n\t\t}\n\t\tif (vnode.tag === \"textarea\") {\n\t\t\tif (vnode.attrs == null) vnode.attrs = {}\n\t\t\tif (vnode.text != null) {\n\t\t\t\tvnode.attrs.value = vnode.text //FIXME handle0 multiple children\n\t\t\t\tvnode.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode, old.attrs, vnode.attrs, ns)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse if (old.text != null && vnode.text != null && vnode.text !== \"\") {\n\t\t\tif (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text\n\t\t}\n\t\telse {\n\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\tif (vnode.text != null) vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\tupdateNodes(element, old.children, vnode.children, recycling, hooks, null, ns)\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tif (recycling) {\n\t\t\tinitComponent(vnode, hooks)\n\t\t} else {\n\t\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\t\tif (vnode.attrs != null) updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tupdateLifecycle(vnode._state, vnode, hooks)\n\t\t}\n\t\tif (vnode.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(old.instance, null)\n\t\t\tvnode.dom = undefined\n\t\t\tvnode.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t}\n\t}\n\tfunction isRecyclable(old, vnodes) {\n\t\tif (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) {\n\t\t\tvar oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0\n\t\t\tvar poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0\n\t\t\tvar vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0\n\t\t\tif (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\tfunction getKeyMap(vnodes, end) {\n\t\tvar map = {}, i = 0\n\t\tfor (var i = 0; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tvar key2 = vnode.key\n\t\t\t\tif (key2 != null) map[key2] = i\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\tfunction toFragment(vnode) {\n\t\tvar count0 = vnode.domSize\n\t\tif (count0 != null || vnode.dom == null) {\n\t\t\tvar fragment = $doc.createDocumentFragment()\n\t\t\tif (count0 > 0) {\n\t\t\t\tvar dom = vnode.dom\n\t\t\t\twhile (--count0) fragment.appendChild(dom.nextSibling)\n\t\t\t\tfragment.insertBefore(dom, fragment.firstChild)\n\t\t\t}\n\t\t\treturn fragment\n\t\t}\n\t\telse return vnode.dom\n\t}\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\tfunction setContentEditable(vnode) {\n\t\tvar children = vnode.children\n\t\tif (children != null && children.length === 1 && children[0].tag === \"<\") {\n\t\t\tvar content = children[0].children\n\t\t\tif (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode.text != null || children != null && children.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t}\n\t//remove\n\tfunction removeNodes(vnodes, start, end, context) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tif (vnode.skip) vnode.skip = false\n\t\t\t\telse removeNode(vnode, context)\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNode(vnode, context) {\n\t\tvar expected = 1, called = 0\n\t\tif (vnode.attrs && typeof vnode.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode.attrs.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode._state.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tcontinuation()\n\t\tfunction continuation() {\n\t\t\tif (++called === expected) {\n\t\t\t\tonremove(vnode)\n\t\t\t\tif (vnode.dom) {\n\t\t\t\t\tvar count0 = vnode.domSize || 1\n\t\t\t\t\tif (count0 > 1) {\n\t\t\t\t\t\tvar dom = vnode.dom\n\t\t\t\t\t\twhile (--count0) {\n\t\t\t\t\t\t\tremoveNodeFromDOM(dom.nextSibling)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tremoveNodeFromDOM(vnode.dom)\n\t\t\t\t\tif (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === \"string\") { //TODO test custom elements\n\t\t\t\t\t\tif (!context.pool) context.pool = [vnode]\n\t\t\t\t\t\telse context.pool.push(vnode)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNodeFromDOM(node) {\n\t\tvar parent = node.parentNode\n\t\tif (parent != null) parent.removeChild(node)\n\t}\n\tfunction onremove(vnode) {\n\t\tif (vnode.attrs && typeof vnode.attrs.onremove === \"function\") vnode.attrs.onremove.call(vnode.state, vnode)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onremove === \"function\") vnode._state.onremove.call(vnode.state, vnode)\n\t\tif (vnode.instance != null) onremove(vnode.instance)\n\t\telse {\n\t\t\tvar children = vnode.children\n\t\t\tif (Array.isArray(children)) {\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tvar child = children[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//attrs2\n\tfunction setAttrs(vnode, attrs2, ns) {\n\t\tfor (var key2 in attrs2) {\n\t\t\tsetAttr(vnode, key2, null, attrs2[key2], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode, key2, old, value, ns) {\n\t\tvar element = vnode.dom\n\t\tif (key2 === \"key\" || key2 === \"is\" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== \"object\" || typeof value === \"undefined\" || isLifecycleMethod(key2)) return\n\t\tvar nsLastIndex = key2.indexOf(\":\")\n\t\tif (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === \"xlink\") {\n\t\t\telement.setAttributeNS(\"http://www.w3.org/1999/xlink\", key2.slice(nsLastIndex + 1), value)\n\t\t}\n\t\telse if (key2[0] === \"o\" && key2[1] === \"n\" && typeof value === \"function\") updateEvent(vnode, key2, value)\n\t\telse if (key2 === \"style\") updateStyle(element, old, value)\n\t\telse if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) {\n\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\tif (vnode.tag === \"input\" && key2 === \"value\" && vnode.dom.value == value && vnode.dom === $doc.activeElement) return\n\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\tif (vnode.tag === \"select\" && key2 === \"value\" && vnode.dom.value == value && vnode.dom === $doc.activeElement) return\n\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\tif (vnode.tag === \"option\" && key2 === \"value\" && vnode.dom.value == value) return\n\t\t\t// If you assign an input type1 that is not supported by IE 11 with an assignment expression, an error0 will occur.\n\t\t\tif (vnode.tag === \"input\" && key2 === \"type\") {\n\t\t\t\telement.setAttribute(key2, value)\n\t\t\t\treturn\n\t\t\t}\n\t\t\telement[key2] = value\n\t\t}\n\t\telse {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) element.setAttribute(key2, \"\")\n\t\t\t\telse element.removeAttribute(key2)\n\t\t\t}\n\t\t\telse element.setAttribute(key2 === \"className\" ? \"class\" : key2, value)\n\t\t}\n\t}\n\tfunction setLateAttrs(vnode) {\n\t\tvar attrs2 = vnode.attrs\n\t\tif (vnode.tag === \"select\" && attrs2 != null) {\n\t\t\tif (\"value\" in attrs2) setAttr(vnode, \"value\", null, attrs2.value, undefined)\n\t\t\tif (\"selectedIndex\" in attrs2) setAttr(vnode, \"selectedIndex\", null, attrs2.selectedIndex, undefined)\n\t\t}\n\t}\n\tfunction updateAttrs(vnode, old, attrs2, ns) {\n\t\tif (attrs2 != null) {\n\t\t\tfor (var key2 in attrs2) {\n\t\t\t\tsetAttr(vnode, key2, old && old[key2], attrs2[key2], ns)\n\t\t\t}\n\t\t}\n\t\tif (old != null) {\n\t\t\tfor (var key2 in old) {\n\t\t\t\tif (attrs2 == null || !(key2 in attrs2)) {\n\t\t\t\t\tif (key2 === \"className\") key2 = \"class\"\n\t\t\t\t\tif (key2[0] === \"o\" && key2[1] === \"n\" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined)\n\t\t\t\t\telse if (key2 !== \"key\") vnode.dom.removeAttribute(key2)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode.dom === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction isAttribute(attr) {\n\t\treturn attr === \"href\" || attr === \"list\" || attr === \"form\" || attr === \"width\" || attr === \"height\"// || attr === \"type\"\n\t}\n\tfunction isCustomElement(vnode){\n\t\treturn vnode.attrs.is || vnode.tag.indexOf(\"-\") > -1\n\t}\n\tfunction hasIntegrationMethods(source) {\n\t\treturn source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove)\n\t}\n\t//style\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) element.style.cssText = \"\", old = null\n\t\tif (style == null) element.style.cssText = \"\"\n\t\telse if (typeof style === \"string\") element.style.cssText = style\n\t\telse {\n\t\t\tif (typeof old === \"string\") element.style.cssText = \"\"\n\t\t\tfor (var key2 in style) {\n\t\t\t\telement.style[key2] = style[key2]\n\t\t\t}\n\t\t\tif (old != null && typeof old !== \"string\") {\n\t\t\t\tfor (var key2 in old) {\n\t\t\t\t\tif (!(key2 in style)) element.style[key2] = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//event\n\tfunction updateEvent(vnode, key2, value) {\n\t\tvar element = vnode.dom\n\t\tvar callback = typeof onevent !== \"function\" ? value : function(e) {\n\t\t\tvar result = value.call(element, e)\n\t\t\tonevent.call(element, e)\n\t\t\treturn result\n\t\t}\n\t\tif (key2 in element) element[key2] = typeof value === \"function\" ? callback : null\n\t\telse {\n\t\t\tvar eventName = key2.slice(2)\n\t\t\tif (vnode.events === undefined) vnode.events = {}\n\t\t\tif (vnode.events[key2] === callback) return\n\t\t\tif (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false)\n\t\t\tif (typeof value === \"function\") {\n\t\t\t\tvnode.events[key2] = callback\n\t\t\t\telement.addEventListener(eventName, vnode.events[key2], false)\n\t\t\t}\n\t\t}\n\t}\n\t//lifecycle\n\tfunction initLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.oninit === \"function\") source.oninit.call(vnode.state, vnode)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(source.oncreate.bind(vnode.state, vnode))\n\t}\n\tfunction updateLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(source.onupdate.bind(vnode.state, vnode))\n\t}\n\tfunction shouldNotUpdate(vnode, old) {\n\t\tvar forceVnodeUpdate, forceComponentUpdate\n\t\tif (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === \"function\") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeupdate === \"function\") forceComponentUpdate = vnode._state.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t\tvnode.instance = old.instance\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\tfunction render(dom, vnodes) {\n\t\tif (!dom) throw new Error(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = $doc.activeElement\n\t\t// First time0 rendering into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\t\tif (!Array.isArray(vnodes)) vnodes = [vnodes]\n\t\tupdateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), false, hooks, null, undefined)\n\t\tdom.vnodes = vnodes\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t\tif ($doc.activeElement !== active) active.focus()\n\t}\n\treturn {render: render, setEventCallback: setEventCallback}\n}\nfunction throttle(callback) {\n\t//60fps translates to 16.6ms, round it down since setTimeout requires int\n\tvar time = 16\n\tvar last = 0, pending = null\n\tvar timeout = typeof requestAnimationFrame === \"function\" ? requestAnimationFrame : setTimeout\n\treturn function() {\n\t\tvar now = Date.now()\n\t\tif (last === 0 || now - last >= time) {\n\t\t\tlast = now\n\t\t\tcallback()\n\t\t}\n\t\telse if (pending === null) {\n\t\t\tpending = timeout(function() {\n\t\t\t\tpending = null\n\t\t\t\tcallback()\n\t\t\t\tlast = Date.now()\n\t\t\t}, time - (now - last))\n\t\t}\n\t}\n}\nvar _11 = function($window) {\n\tvar renderService = coreRenderer($window)\n\trenderService.setEventCallback(function(e) {\n\t\tif (e.redraw !== false) redraw()\n\t})\n\tvar callbacks = []\n\tfunction subscribe(key1, callback) {\n\t\tunsubscribe(key1)\n\t\tcallbacks.push(key1, throttle(callback))\n\t}\n\tfunction unsubscribe(key1) {\n\t\tvar index = callbacks.indexOf(key1)\n\t\tif (index > -1) callbacks.splice(index, 2)\n\t}\n\tfunction redraw() {\n\t\tfor (var i = 1; i < callbacks.length; i += 2) {\n\t\t\tcallbacks[i]()\n\t\t}\n\t}\n\treturn {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render}\n}\nvar redrawService = _11(window)\nrequestService.setCompletionCallback(redrawService.redraw)\nvar _16 = function(redrawService0) {\n\treturn function(root, component) {\n\t\tif (component === null) {\n\t\t\tredrawService0.render(root, [])\n\t\t\tredrawService0.unsubscribe(root)\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif (component.view == null && typeof component !== \"function\") throw new Error(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t\n\t\tvar run0 = function() {\n\t\t\tredrawService0.render(root, Vnode(component))\n\t\t}\n\t\tredrawService0.subscribe(root, run0)\n\t\tredrawService0.redraw()\n\t}\n}\nm.mount = _16(redrawService)\nvar Promise = PromisePolyfill\nvar parseQueryString = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\tvar entries = string.split(\"&\"), data0 = {}, counters = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key5 = decodeURIComponent(entry[0])\n\t\tvar value = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\t\tif (value === \"true\") value = true\n\t\telse if (value === \"false\") value = false\n\t\tvar levels = key5.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data0\n\t\tif (key5.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j = 0; j < levels.length; j++) {\n\t\t\tvar level = levels[j], nextLevel = levels[j + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tvar isValue = j === levels.length - 1\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key5 = levels.slice(0, j).join()\n\t\t\t\tif (counters[key5] == null) counters[key5] = 0\n\t\t\t\tlevel = counters[key5]++\n\t\t\t}\n\t\t\tif (cursor[level] == null) {\n\t\t\t\tcursor[level] = isValue ? value : isNumber ? [] : {}\n\t\t\t}\n\t\t\tcursor = cursor[level]\n\t\t}\n\t}\n\treturn data0\n}\nvar coreRouter = function($window) {\n\tvar supportsPushState = typeof $window.history.pushState === \"function\"\n\tvar callAsync0 = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction normalize1(fragment0) {\n\t\tvar data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\tif (fragment0 === \"pathname\" && data[0] !== \"/\") data = \"/\" + data\n\t\treturn data\n\t}\n\tvar asyncId\n\tfunction debounceAsync(callback0) {\n\t\treturn function() {\n\t\t\tif (asyncId != null) return\n\t\t\tasyncId = callAsync0(function() {\n\t\t\t\tasyncId = null\n\t\t\t\tcallback0()\n\t\t\t})\n\t\t}\n\t}\n\tfunction parsePath(path, queryData, hashData) {\n\t\tvar queryIndex = path.indexOf(\"?\")\n\t\tvar hashIndex = path.indexOf(\"#\")\n\t\tvar pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length\n\t\tif (queryIndex > -1) {\n\t\t\tvar queryEnd = hashIndex > -1 ? hashIndex : path.length\n\t\t\tvar queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd))\n\t\t\tfor (var key4 in queryParams) queryData[key4] = queryParams[key4]\n\t\t}\n\t\tif (hashIndex > -1) {\n\t\t\tvar hashParams = parseQueryString(path.slice(hashIndex + 1))\n\t\t\tfor (var key4 in hashParams) hashData[key4] = hashParams[key4]\n\t\t}\n\t\treturn path.slice(0, pathEnd)\n\t}\n\tvar router = {prefix: \"#!\"}\n\trouter.getPath = function() {\n\t\tvar type2 = router.prefix.charAt(0)\n\t\tswitch (type2) {\n\t\t\tcase \"#\": return normalize1(\"hash\").slice(router.prefix.length)\n\t\t\tcase \"?\": return normalize1(\"search\").slice(router.prefix.length) + normalize1(\"hash\")\n\t\t\tdefault: return normalize1(\"pathname\").slice(router.prefix.length) + normalize1(\"search\") + normalize1(\"hash\")\n\t\t}\n\t}\n\trouter.setPath = function(path, data, options) {\n\t\tvar queryData = {}, hashData = {}\n\t\tpath = parsePath(path, queryData, hashData)\n\t\tif (data != null) {\n\t\t\tfor (var key4 in data) queryData[key4] = data[key4]\n\t\t\tpath = path.replace(/:([^\\/]+)/g, function(match2, token) {\n\t\t\t\tdelete queryData[token]\n\t\t\t\treturn data[token]\n\t\t\t})\n\t\t}\n\t\tvar query = buildQueryString(queryData)\n\t\tif (query) path += \"?\" + query\n\t\tvar hash = buildQueryString(hashData)\n\t\tif (hash) path += \"#\" + hash\n\t\tif (supportsPushState) {\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\t$window.onpopstate()\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, router.prefix + path)\n\t\t\telse $window.history.pushState(state, title, router.prefix + path)\n\t\t}\n\t\telse $window.location.href = router.prefix + path\n\t}\n\trouter.defineRoutes = function(routes, resolve, reject) {\n\t\tfunction resolveRoute() {\n\t\t\tvar path = router.getPath()\n\t\t\tvar params = {}\n\t\t\tvar pathname = parsePath(path, params, params)\n\t\t\tvar state = $window.history.state\n\t\t\tif (state != null) {\n\t\t\t\tfor (var k in state) params[k] = state[k]\n\t\t\t}\n\t\t\tfor (var route0 in routes) {\n\t\t\t\tvar matcher = new RegExp(\"^\" + route0.replace(/:[^\\/]+?\\.{3}/g, \"(.*?)\").replace(/:[^\\/]+/g, \"([^\\\\/]+)\") + \"\\/?$\")\n\t\t\t\tif (matcher.test(pathname)) {\n\t\t\t\t\tpathname.replace(matcher, function() {\n\t\t\t\t\t\tvar keys = route0.match(/:[^\\/]+/g) || []\n\t\t\t\t\t\tvar values = [].slice.call(arguments, 1, -2)\n\t\t\t\t\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\t\t\t\t\tparams[keys[i].replace(/:|\\./g, \"\")] = decodeURIComponent(values[i])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(routes[route0], params, path, route0)\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\treject(path, params)\n\t\t}\n\t\tif (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute)\n\t\telse if (router.prefix.charAt(0) === \"#\") $window.onhashchange = resolveRoute\n\t\tresolveRoute()\n\t}\n\treturn router\n}\nvar _20 = function($window, redrawService0) {\n\tvar routeService = coreRouter($window)\n\tvar identity = function(v) {return v}\n\tvar render1, component, attrs3, currentPath, lastUpdate\n\tvar route = function(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\tvar run1 = function() {\n\t\t\tif (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3)))\n\t\t}\n\t\tvar bail = function(path) {\n\t\t\tif (path !== defaultRoute) routeService.setPath(defaultRoute, null, {replace: true})\n\t\t\telse throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t}\n\t\trouteService.defineRoutes(routes, function(payload, params, path) {\n\t\t\tvar update = lastUpdate = function(routeResolver, comp) {\n\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\tattrs3 = params, currentPath = path, lastUpdate = null\n\t\t\t\trender1 = (routeResolver.render || identity).bind(routeResolver)\n\t\t\t\trun1()\n\t\t\t}\n\t\t\tif (payload.view || typeof payload === \"function\") update({}, payload)\n\t\t\telse {\n\t\t\t\tif (payload.onmatch) {\n\t\t\t\t\tPromise.resolve(payload.onmatch(params, path)).then(function(resolved) {\n\t\t\t\t\t\tupdate(payload, resolved)\n\t\t\t\t\t}, bail)\n\t\t\t\t}\n\t\t\t\telse update(payload, \"div\")\n\t\t\t}\n\t\t}, bail)\n\t\tredrawService0.subscribe(root, run1)\n\t}\n\troute.set = function(path, data, options) {\n\t\tif (lastUpdate != null) options = {replace: true}\n\t\tlastUpdate = null\n\t\trouteService.setPath(path, data, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = function(prefix0) {routeService.prefix = prefix0}\n\troute.link = function(vnode1) {\n\t\tvnode1.dom.setAttribute(\"href\", routeService.prefix + vnode1.attrs.href)\n\t\tvnode1.dom.onclick = function(e) {\n\t\t\tif (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return\n\t\t\te.preventDefault()\n\t\t\te.redraw = false\n\t\t\tvar href = this.getAttribute(\"href\")\n\t\t\tif (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length)\n\t\t\troute.set(href, undefined, undefined)\n\t\t}\n\t}\n\troute.param = function(key3) {\n\t\tif(typeof attrs3 !== \"undefined\" && typeof key3 !== \"undefined\") return attrs3[key3]\n\t\treturn attrs3\n\t}\n\treturn route\n}\nm.route = _20(window, redrawService)\nm.withAttr = function(attrName, callback1, context) {\n\treturn function(e) {\n\t\tcallback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName))\n\t}\n}\nvar _28 = coreRenderer(window)\nm.render = _28.render\nm.redraw = redrawService.redraw\nm.request = requestService.request\nm.jsonp = requestService.jsonp\nm.parseQueryString = parseQueryString\nm.buildQueryString = buildQueryString\nm.version = \"1.1.1\"\nm.vnode = Vnode\nif (typeof module !== \"undefined\") module[\"exports\"] = m\nelse window.m = m\n}());\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],8:[function(require,module,exports){\n/*!\n * EventEmitter v5.1.0 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n\n},{}]},{},[1]);\n })();"]}
|
1 |
+
{"version":3,"sources":["admin.js"],"names":["require","undefined","define","e","t","n","r","s","o","u","a","i","f","Error","code","l","exports","call","length","1","module","m","window","EventEmitter","context","document","getElementById","events","tabs","helpers","settings","ListFetcher","mount","mc4wp","deps","mithril","./admin/helpers.js","./admin/list-fetcher.js","./admin/settings.js","./admin/tabs.js","wolfy87-eventemitter","2","toggleElement","selector","elements","querySelectorAll","show","clientHeight","style","display","bindEventToElement","element","event","handler","addEventListener","attachEvent","bindEventToElements","Array","prototype","forEach","debounce","func","wait","immediate","timeout","this","args","arguments","later","apply","callNow","clearTimeout","setTimeout","showIfElements","getAttribute","checked","value","conditionMet","config","hide","visibility","opacity","inputs","inputElement","removeAttribute","setAttribute","JSON","parse","parentElements","parentElement","3","working","done","mailchimp","api_connected","lists","fetch","$","jQuery","mc4wp_vars","i18n","preventDefault","post","ajaxurl","action","data","success","location","reload","bind","fail","always","redraw","view","method","onsubmit","type","fetching_mailchimp_lists","renew_mailchimp_lists","className","disabled","trust","fetching_mailchimp_lists_can_take_a_while","fetching_mailchimp_lists_done","fetching_mailchimp_lists_error","4","_typeof","Symbol","iterator","obj","constructor","Settings","getSelectedListsWhere","searchKey","searchValue","selectedLists","filter","el","getSelectedLists","updateSelectedLists","listInputs","input","push","trigger","toggleVisibleLists","rows","replace","querySelector","on","5","URL","Tabs","get","id","_open","tab","updateState","$tabs","removeClass","css","$tabNavs","nav","blur","url","setParameter","href","history","pushState","title","refererField","tb_remove","forms","editor","refresh","split","switchTab","tabId","match","urlParams","returnValue","$context","find","each","substring","first","text","open","click","body","activeTab","replaceState","state","./url.js","6","query","hasOwnProperty","b","decodeURIComponent","build","ret","d","encodeURIComponent","join","key","7","global","Vnode","tag","attrs0","children","dom","attrs","domSize","_state","instance","skip","compileSelector","classes","selectorParser","exec","attrValue","selectorCache","execSelector","childList","hasAttrs","class","hasOwn","isArray","hyperscript","start","cached","normalized","normalizeChildren","throttle","callback","last","pending","requestAnimationFrame","now","Date","normalize","node","html","fragment","attrs1","PromisePolyfill","executor","list","shouldAbsorb","execute","then","callAsync","console","error","resolvers","rejectors","retry","self","TypeError","executeOnce","rejectCurrent","run","fn","runs","onerror","resolveCurrent","_instance","setImmediate","onFulfilled","onRejection","handle","next","resolveNext","rejectNext","promise","resolve","reject","catch","all","total","count","values","consume","race","Promise","buildQueryString","object","destructure","key0","Object","toString","FILE_PROTOCOL_REGEX","RegExp","requestService","$window","setCompletionCallback","oncompletion","finalizer","complete","finalize","promise0","then0","extra","request","toUpperCase","useBody","serialize","FormData","stringify","deserialize","extract","interpolate","assemble","xhr","XMLHttpRequest","aborted","_abort","abort","async","user","password","setRequestHeader","withCredentials","headers","onreadystatechange","readyState","response","status","test","cast","responseText","send","background","jsonp","callbackName","Math","round","random","callbackCount","script","createElement","parentNode","removeChild","callbackKey","src","documentElement","appendChild","tokens","slice","querystring","indexOf","type0","coreRenderer","setEventCallback","onevent","createNodes","parent","vnodes","end","hooks","nextSibling","ns","vnode","createNode","createComponent","initLifecycle","createText","createHTML","createFragment","$doc","createTextNode","insertNode","match1","parent1","caption","thead","tbody","tfoot","tr","th","td","colgroup","col","temp","innerHTML","firstChild","childNodes","child","createDocumentFragment","attrs2","is","createElementNS","setAttrs","contenteditable","setContentEditable","textContent","setLateAttrs","initComponent","sentinel","create","$$reentrantLock$$","$emptyFragment","updateNodes","old","recycling","removeNodes","isUnkeyed","getNextSibling","updateNode","isRecyclable","pool","concat","map","oldStart","oldEnd","v","shouldRecycle","toFragment","getKeyMap","oldIndex","movable","oldTag","shouldNotUpdate","updateLifecycle","updateText","updateHTML","updateFragment","updateElement","updateComponent","removeNode","nodeValue","updateAttrs","abs","oldChildrenLength","poolChildrenLength","vnodesChildrenLength","key2","count0","insertBefore","content","continuation","called","expected","onremove","removeNodeFromDOM","hasIntegrationMethods","onbeforeremove","result","setAttr","isFormAttribute","isLifecycleMethod","nsLastIndex","substr","setAttributeNS","updateEvent","updateStyle","isAttribute","isCustomElement","activeElement","selectedIndex","attr","source","oncreate","onupdate","cssText","eventName","removeEventListener","oninit","forceVnodeUpdate","forceComponentUpdate","onbeforeupdate","render","active","focus","redrawService","subscribe","key1","unsubscribe","callbacks","index","splice","renderService","redrawService0","root","component","run0","parseQueryString","string","charAt","entries","data0","counters","entry","key5","levels","cursor","pop","j","level","nextLevel","isNumber","isNaN","parseInt","isValue","coreRouter","normalize1","fragment0","debounceAsync","callback0","asyncId","callAsync0","parsePath","path","queryData","hashData","queryIndex","hashIndex","pathEnd","queryEnd","queryParams","key4","hashParams","supportsPushState","router","prefix","getPath","setPath","options","match2","token","hash","onpopstate","defineRoutes","routes","resolveRoute","params","pathname","k","route0","matcher","keys","onhashchange","route","render1","attrs3","currentPath","lastUpdate","routeService","identity","defaultRoute","run1","bail","payload","update","routeResolver","comp","onmatch","resolved","set","prefix0","link","vnode1","onclick","ctrlKey","metaKey","shiftKey","which","param","key3","withAttr","attrName","callback1","currentTarget","_28","version","8","indexOfListener","listeners","listener","alias","name","isValidListener","proto","originalGlobalValue","getListeners","evt","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","remove","single","multiple","removeEvent","_events","removeAllListeners","emitEvent","listenersMap","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","noConflict","amd"],"mappings":"CAAA,WAAe,GAAIA,OAAUC,GAAeC,MAASD,IAAW,QAAUE,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATV,IAAqBA,CAAQ,KAAIS,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGG,EAAE,MAAOA,GAAEH,GAAE,EAAI,IAAII,GAAE,GAAIC,OAAM,uBAAuBL,EAAE,IAAK,MAAMI,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEV,EAAEG,IAAIQ,WAAYZ,GAAEI,GAAG,GAAGS,KAAKF,EAAEC,QAAQ,SAASb,GAAG,GAAIE,GAAED,EAAEI,GAAG,GAAGL,EAAG,OAAOI,GAAEF,GAAIF,IAAIY,EAAEA,EAAEC,QAAQb,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGQ,QAAkD,IAAI,GAA1CL,GAAkB,kBAATX,IAAqBA,EAAgBQ,EAAE,EAAEA,EAAEF,EAAEY,OAAOV,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKY,GAAG,SAASnB,EAAQoB,EAAOJ,GACvhB,YAIA,IAAIK,GAAIC,OAAOD,EAAIrB,EAAQ,WACvBuB,EAAevB,EAAQ,wBAGvBwB,EAAUC,SAASC,eAAe,eAClCC,EAAS,GAAIJ,GACbK,EAAO5B,EAAQ,mBAAmBwB,GAClCK,EAAU7B,EAAQ,sBAClB8B,EAAW9B,EAAQ,uBAAuBwB,EAASK,EAASF,GAG5DI,EAAc/B,EAAQ,2BACtBgC,EAAQP,SAASC,eAAe,qBAChCM,IACAX,EAAEW,MAAMA,EAAO,GAAID,IAIvBT,OAAOW,MAAQX,OAAOW,UACtBX,OAAOW,MAAMC,KAAOZ,OAAOW,MAAMC,SACjCZ,OAAOW,MAAMC,KAAKC,QAAUd,EAC5BC,OAAOW,MAAMJ,QAAUA,EACvBP,OAAOW,MAAMN,OAASA,EACtBL,OAAOW,MAAMH,SAAWA,EACxBR,OAAOW,MAAML,KAAOA,IAEjBQ,qBAAqB,EAAEC,0BAA0B,EAAEC,sBAAsB,EAAEC,kBAAkB,EAAEJ,QAAU,EAAEK,uBAAuB,IAAIC,GAAG,SAASzC,EAAQoB,EAAOJ,GACpK,YAEA,IAAIa,KAEJA,GAAQa,cAAgB,SAAUC,GAEjC,IAAK,GADDC,GAAWnB,SAASoB,iBAAiBF,GAChChC,EAAI,EAAGA,EAAIiC,EAAS1B,OAAQP,IAAK,CACzC,GAAImC,GAAOF,EAASjC,GAAGoC,cAAgB,CACvCH,GAASjC,GAAGqC,MAAMC,QAAUH,EAAO,GAAK,SAI1CjB,EAAQqB,mBAAqB,SAAUC,EAASC,EAAOC,GAClDF,EAAQG,iBACXH,EAAQG,iBAAiBF,EAAOC,GACtBF,EAAQI,aAClBJ,EAAQI,YAAY,KAAOH,EAAOC,IAIpCxB,EAAQ2B,oBAAsB,SAAUZ,EAAUQ,EAAOC,GACxDI,MAAMC,UAAUC,QAAQ1C,KAAK2B,EAAU,SAAUO,GAChDtB,EAAQqB,mBAAmBC,EAASC,EAAOC,MAK7CxB,EAAQ+B,SAAW,SAAUC,EAAMC,EAAMC,GACxC,GAAIC,EACJ,OAAO,YACN,GAAIxC,GAAUyC,KACVC,EAAOC,UACPC,EAAQ,WACXJ,EAAU,KACLD,GAAWF,EAAKQ,MAAM7C,EAAS0C,IAEjCI,EAAUP,IAAcC,CAC5BO,cAAaP,GACbA,EAAUQ,WAAWJ,EAAON,GACxBQ,GAAST,EAAKQ,MAAM7C,EAAS0C,KAOnC,WACC,GAAIO,GAAiBhD,SAASoB,iBAAiB,gBAG/CY,OAAMC,UAAUC,QAAQ1C,KAAKwD,EAAgB,SAAUtB,GAMtD,QAAST,KAGR,GAAkC,UAA9BuB,KAAKS,aAAa,SAAwBT,KAAKU,QAAnD,CAIA,GAAIC,GAAsC,aAA9BX,KAAKS,aAAa,QAAyBT,KAAKU,QAAUV,KAAKW,MACvEC,EAAeD,GAASE,EAAOF,KAE/BG,IACH5B,EAAQH,MAAMC,QAAU4B,EAAe,GAAK,OAC5C1B,EAAQH,MAAMgC,WAAaH,EAAe,GAAK,UAE/C1B,EAAQH,MAAMiC,QAAUJ,EAAe,GAAK,MAI7CpB,MAAMC,UAAUC,QAAQ1C,KAAKiE,EAAQ,SAAUC,GAC9CN,EAAeM,EAAaC,gBAAgB,YAAcD,EAAaE,aAAa,WAAY,eAxBlG,GAAIP,GAASQ,KAAKC,MAAMpC,EAAQuB,aAAa,gBACzCc,EAAiB/D,SAASoB,iBAAiB,UAAYiC,EAAO3B,QAAU,MACxE+B,EAAS/B,EAAQN,iBAAiB,yCAClCkC,MAAuB9E,KAAhB6E,EAAOC,MAAsBD,EAAOC,IA0B/CtB,OAAMC,UAAUC,QAAQ1C,KAAKuE,EAAgB,SAAUC,GACtD/C,EAAczB,KAAKwE,KAIpB5D,EAAQ2B,oBAAoBgC,EAAgB,SAAU9C,QAIxDtB,EAAOJ,QAAUa,OAEX6D,GAAG,SAAS1F,EAAQoB,EAAOJ,GACjC,YAMA,SAASe,KACLkC,KAAK0B,SAAU,EACf1B,KAAK2B,MAAO,EAGRd,EAAOe,UAAUC,eAAmD,IAAlChB,EAAOe,UAAUE,MAAM7E,QACzD+C,KAAK+B,QAVb,GAAIC,GAAI3E,OAAO4E,OACXpB,EAASqB,WACTC,EAAOtB,EAAOsB,IAYlBrE,GAAY2B,UAAUsC,MAAQ,SAAU7F,GACpCA,GAAKA,EAAEkG,iBAEPpC,KAAK0B,SAAU,EACf1B,KAAK2B,MAAO,EAEZK,EAAEK,KAAKC,SACHC,OAAQ,gCACTZ,KAAK,SAAUa,GACdxC,KAAKyC,SAAU,EAEXD,GACAnF,OAAOkD,WAAW,WACdlD,OAAOqF,SAASC,UACjB,MAETC,KAAK5C,OAAO6C,KAAK,SAAUL,GACzBxC,KAAKyC,SAAU,GACjBG,KAAK5C,OAAO8C,OAAO,SAAUN,GAC3BxC,KAAK0B,SAAU,EACf1B,KAAK2B,MAAO,EAEZvE,EAAE2F,UACJH,KAAK5C,QAGXlC,EAAY2B,UAAUuD,KAAO,WACzB,MAAO5F,GAAE,QACL6F,OAAQ,OACRC,SAAUlD,KAAK+B,MAAMa,KAAK5C,QAC1B5C,EAAE,KAAMA,EAAE,SACV+F,KAAM,SACNxC,MAAOX,KAAK0B,QAAUS,EAAKiB,yBAA2BjB,EAAKkB,sBAC3DC,UAAW,SACXC,WAAYvD,KAAK0B,UACjBtE,EAAEoG,MAAM,YAAaxD,KAAK0B,SAAWtE,EAAE,oBAAqB,cAAeA,EAAEoG,MAAM,YAAapG,EAAE,UAAW+E,EAAKsB,4CAA8C,GAAIzD,KAAK2B,MAAQ3B,KAAKyC,QAAUrF,EAAE,gBAAiB+E,EAAKuB,+BAAiCtG,EAAE,cAAe+E,EAAKwB,iCAAmC,QAG1TxG,EAAOJ,QAAUe,OAEX8F,GAAG,SAAS7H,EAAQoB,EAAOJ,GACjC,YAEA,IAAI8G,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOrE,UAAY,eAAkBuE,IAElQE,EAAW,SAAkB3G,EAASK,EAASF,GAWlD,QAASyG,GAAsBC,EAAWC,GACzC,MAAOC,GAAcC,OAAO,SAAUC,GACrC,MAAOA,GAAGJ,KAAeC,IAI3B,QAASI,KACR,MAAOH,GAGR,QAASI,KAeR,MAdAJ,MAEA9E,MAAMC,UAAUC,QAAQ1C,KAAK2H,EAAY,SAAUC,IAErB,iBAAlBA,GAAMlE,SAA0BkE,EAAMlE,UAIb,WAAhCmD,EAAQ/B,EAAM8C,EAAMjE,SACvB2D,EAAcO,KAAK/C,EAAM8C,EAAMjE,UAIjCjD,EAAOoH,QAAQ,wBAAyBR,IACjCA,EAGR,QAASS,KACR,GAAIC,GAAOxH,SAASoB,iBAAiB,4BACrCY,OAAMC,UAAUC,QAAQ1C,KAAKgI,EAAM,SAAUR,GAG3BL,EAAsB,KAD1BK,EAAG/D,aAAa,iBACwBxD,OAAS,EAG7DuH,EAAGpD,aAAa,QAASoD,EAAG/D,aAAa,SAASwE,QAAQ,SAAU,KAEpET,EAAGpD,aAAa,QAASoD,EAAG/D,aAAa,SAAW,aA5CvD,GACIkE,IADOpH,EAAQ2H,cAAc,QAChB3H,EAAQqB,iBAAiB,sBACtCkD,EAAQI,WAAWN,UAAUE,MAC7BwC,IAmDJ,OALA5G,GAAOyH,GAAG,uBAAwBJ,GAClCnH,EAAQ2B,oBAAoBoF,EAAY,SAAUD,GAElDA,KAGCD,iBAAkBA,GAIpBtH,GAAOJ,QAAUmH,OAEXkB,GAAG,SAASrJ,EAAQoB,EAAOJ,GACjC,YAEA,IAAIsI,GAAMtJ,EAAQ,YAGduJ,EAAO,SAAc/H,GA0BxB,QAASgI,GAAIC,GAEZ,IAAK,GAAI9I,GAAI,EAAGA,EAAIiB,EAAKV,OAAQP,IAChC,GAAIiB,EAAKjB,GAAG8I,KAAOA,EAClB,MAAO7H,GAAKjB,GAOf,QAAS+I,GAAMC,EAAKC,GAOnB,GAJmB,gBAARD,KACVA,EAAMH,EAAIG,KAGNA,EACJ,OAAO,MAIW1J,IAAf2J,IACHA,GAAc,GAIfC,EAAMC,YAAY,cAAcC,IAAI,UAAW,QAC/CC,EAASF,YAAY,kBAGrBrG,MAAMC,UAAUC,QAAQ1C,KAAK0I,EAAIM,IAAK,SAAUA,GAC/CA,EAAI1C,WAAa,kBACjB0C,EAAIC,SAILP,EAAIxG,QAAQH,MAAMC,QAAU,QAC5B0G,EAAIxG,QAAQoE,WAAa,aAGzB,IAAI4C,GAAMb,EAAIc,aAAa9I,OAAOqF,SAAS0D,KAAM,MAAOV,EAAIF,GAwB5D,OArBIa,SAAQC,WAAaX,GACxBU,QAAQC,UAAUZ,EAAIF,GAAI,GAAIU,GAI/BK,EAAMb,GAGNc,EAAa7F,MAAQuF,EAGI,kBAAdO,YACVA,YAKc,WAAXf,EAAIF,IAAmBnI,OAAOW,OAASX,OAAOW,MAAM0I,OAASrJ,OAAOW,MAAM0I,MAAMC,QACnF3I,MAAM0I,MAAMC,OAAOC,WAGb,EAGR,QAASL,GAAMb,GACd,GAAIa,GAAQ/I,SAAS+I,MAAMM,MAAM,IACjCrJ,UAAS+I,MAAQ/I,SAAS+I,MAAMtB,QAAQsB,EAAM,GAAIb,EAAIa,MAAQ,KAG/D,QAASO,GAAU5K,GAClBA,EAAIA,GAAKmB,OAAO8B,KAGhB,IAAI4H,GAAQ/G,KAAKS,aAAa,WAG9B,KAAKsG,EAAO,CACX,GAAIC,GAAQhH,KAAKsD,UAAU0D,MAAM,iBAC7BA,KACHD,EAAQC,EAAM,IAKhB,IAAKD,EAAO,CACX,GAAIE,GAAY5B,EAAI/D,MAAMtB,KAAKoG,KAC/B,KAAKa,EAAUvB,IACd,MAEDqB,GAAQE,EAAUvB,IAKnB,OAFaD,EAAMsB,KAGlB7K,EAAEkG,iBACFlG,EAAEgL,aAAc,GACT,GA7HT,GAAIlF,GAAI3E,OAAO4E,OAEXkF,EAAWnF,EAAEzE,GACbqI,EAAQuB,EAASC,KAAK,QACtBrB,EAAWoB,EAASC,KAAK,YACzBZ,EAAejJ,EAAQ2H,cAAc,kCACrCvH,IAgKJ,OA9JAqE,GAAEqF,KAAKzB,EAAO,SAAUlJ,EAAGP,GAC1B,GAAIqJ,GAAKrJ,EAAEqJ,GAAG8B,UAAU,GACpBf,EAAQvE,EAAE7F,GAAGiL,KAAK,MAAMG,QAAQC,MAEpC7J,GAAKkH,MACJW,GAAIA,EACJe,MAAOA,EACPrH,QAAS/C,EACT6J,IAAKzI,EAAQqB,iBAAiB,YAAc4G,GAC5CiC,KAAM,WACL,MAAOhC,GAAMD,QAwIhBO,EAAS2B,MAAMZ,GACf9E,EAAExE,SAASmK,MAAMxC,GAAG,QAAS,YAAa2B,GAxB1C,WAGC,GAAKT,QAAQC,UAAb,CAIA,GAAIsB,GAAYhC,EAAMrB,OAAO,YAAYgB,IAAI,EAC7C,IAAKqC,EAAL,CAGA,GAAIlC,GAAMH,EAAIqC,EAAUpC,GAAG8B,UAAU,GAChC5B,KAGDW,QAAQwB,cAAkC,OAAlBxB,QAAQyB,OACnCzB,QAAQwB,aAAanC,EAAIF,GAAI,IAI9Be,EAAMb,SAOHrI,OAAOgC,kBAAoBgH,QAAQC,WACtCjJ,OAAOgC,iBAAiB,WAAY,SAAUnD,GAC7C,OAAKA,EAAE4L,OAEArC,EADKvJ,EAAE4L,OACM,MAKrBL,KAAMhC,EACNF,IAAKA,GAIPpI,GAAOJ,QAAUuI,IAEdyC,WAAW,IAAIC,GAAG,SAASjM,EAAQoB,EAAOJ,GAC7C,YAEA,IAAIsI,IACH/D,MAAO,SAAe4E,GACrB,GAAI+B,MACAxL,EAAIyJ,EAAIW,MAAM,IAClB,KAAK,GAAInK,KAAKD,GACb,GAAKA,EAAEyL,eAAexL,GAAtB,CAGA,GAAIyL,GAAI1L,EAAEC,GAAGmK,MAAM,IACnBoB,GAAMG,mBAAmBD,EAAE,KAAOC,mBAAmBD,EAAE,IAGxD,MAAOF,IAERI,MAAO,SAAe7F,GACrB,GAAI8F,KACJ,KAAK,GAAIC,KAAK/F,GACb8F,EAAIzD,KAAK0D,EAAI,IAAMC,mBAAmBhG,EAAK+F,IAC3C,OAAOD,GAAIG,KAAK,MAElBtC,aAAc,SAAsBD,EAAKwC,EAAK/H,GAC7C,GAAI6B,GAAO6C,EAAI/D,MAAM4E,EAErB,OADA1D,GAAKkG,GAAO/H,EACL0E,EAAIgD,MAAM7F,IAInBrF,GAAOJ,QAAUsI,OAEXsD,GAAG,SAAS5M,EAAQoB,EAAOJ,IACjC,SAAW6L,IACT,WACF,YACA,SAASC,GAAMC,EAAKJ,EAAKK,EAAQC,EAAUxB,EAAMyB,GAChD,OAAQH,IAAKA,EAAKJ,IAAKA,EAAKQ,MAAOH,EAAQC,SAAUA,EAAUxB,KAAMA,EAAMyB,IAAKA,EAAKE,YAASnN,GAAW8L,UAAO9L,GAAWoN,WAAQpN,GAAW0B,WAAQ1B,GAAWqN,aAAUrN,GAAWsN,MAAM,GAgB7L,QAASC,GAAgB7K,GAExB,IADA,GAAIsI,GAAO8B,EAAM,MAAOU,KAAcN,KAC/BlC,EAAQyC,EAAeC,KAAKhL,IAAW,CAC7C,GAAIyE,GAAO6D,EAAM,GAAIrG,EAAQqG,EAAM,EACnC,IAAa,KAAT7D,GAAyB,KAAVxC,EAAcmI,EAAMnI,MAClC,IAAa,MAATwC,EAAc+F,EAAM1D,GAAK7E,MAC7B,IAAa,MAATwC,EAAcqG,EAAQ3E,KAAKlE,OAC/B,IAAoB,MAAhBqG,EAAM,GAAG,GAAY,CAC7B,GAAI2C,GAAY3C,EAAM,EAClB2C,KAAWA,EAAYA,EAAU1E,QAAQ,YAAa,MAAMA,QAAQ,QAAS,OAChE,UAAb+B,EAAM,GAAgBwC,EAAQ3E,KAAK8E,GAClCT,EAAMlC,EAAM,IAAM2C,IAAa,GAItC,MADIH,GAAQvM,OAAS,IAAGiM,EAAM5F,UAAYkG,EAAQf,KAAK,MAChDmB,EAAclL,IAAaoK,IAAKA,EAAKI,MAAOA,GAEpD,QAASW,GAAa/B,EAAOoB,EAAOF,GACnC,GAAsBc,GAAWtC,EAA7BuC,GAAW,EACXzG,EAAY4F,EAAM5F,WAAa4F,EAAMc,KACzC,KAAK,GAAItB,KAAOZ,GAAMoB,MACjBe,EAAOjN,KAAK8K,EAAMoB,MAAOR,KAC5BQ,EAAMR,GAAOZ,EAAMoB,MAAMR,QAGT1M,KAAdsH,QACiBtH,KAAhBkN,EAAMc,QACTd,EAAMc,UAAQhO,GACdkN,EAAM5F,UAAYA,GAEU,MAAzBwE,EAAMoB,MAAM5F,YACf4F,EAAM5F,UAAYwE,EAAMoB,MAAM5F,UAAY,IAAMA,GAGlD,KAAK,GAAIoF,KAAOQ,GACf,GAAIe,EAAOjN,KAAKkM,EAAOR,IAAgB,QAARA,EAAe,CAC7CqB,GAAW,CACX,OAQF,MALIvK,OAAM0K,QAAQlB,IAAiC,IAApBA,EAAS/L,QAA+B,MAAf+L,EAAS,IAAkC,MAApBA,EAAS,GAAGF,IAC1FtB,EAAOwB,EAAS,GAAGA,SAEnBc,EAAYd,EAENH,EAAMf,EAAMgB,IAAKI,EAAMR,IAAKqB,EAAWb,MAAQlN,GAAW8N,EAAWtC,GAE7E,QAAS2C,GAAYzL,GAEpB,GAAqCsK,GAAjCE,EAAQhJ,UAAU,GAAIkK,EAAQ,CAClC,IAAgB,MAAZ1L,GAAwC,gBAAbA,IAA6C,kBAAbA,IAAoD,kBAAlBA,GAASsE,KACzG,KAAMpG,OAAM,uDAEb,IAAwB,gBAAb8B,GACV,GAAI2L,GAAST,EAAclL,IAAa6K,EAAgB7K,EAQzD,IANa,MAATwK,EACHA,MAC2B,gBAAVA,IAAmC,MAAbA,EAAMJ,KAAetJ,MAAM0K,QAAQhB,MAC1EA,KACAkB,EAAQ,GAELlK,UAAUjD,SAAWmN,EAAQ,EAChCpB,EAAW9I,UAAUkK,GAChB5K,MAAM0K,QAAQlB,KAAWA,GAAYA,QAG1C,KADAA,KACOoB,EAAQlK,UAAUjD,QAAQ+L,EAASnE,KAAK3E,UAAUkK,KAE1D,IAAIE,GAAazB,EAAM0B,kBAAkBvB,EACzC,OAAwB,gBAAbtK,GACHmL,EAAaQ,EAAQnB,EAAOoB,GAE5BzB,EAAMnK,EAAUwK,EAAMR,IAAKQ,EAAOoB,GAw2B3C,QAASE,GAASC,GAEjB,GACIC,GAAO,EAAGC,EAAU,KACpB5K,EAA2C,kBAA1B6K,uBAAuCA,sBAAwBrK,UACpF,OAAO,YACN,GAAIsK,GAAMC,KAAKD,KACF,KAATH,GAAcG,EAAMH,GALd,IAMTA,EAAOG,EACPJ,KAEoB,OAAZE,IACRA,EAAU5K,EAAQ,WACjB4K,EAAU,KACVF,IACAC,EAAOI,KAAKD,OAbJ,IAcEA,EAAMH,MA/8BpB7B,EAAMkC,UAAY,SAASC,GAC1B,MAAIxL,OAAM0K,QAAQc,GAAcnC,EAAM,QAAK7M,OAAWA,GAAW6M,EAAM0B,kBAAkBS,OAAOhP,OAAWA,IAC/F,MAARgP,GAAgC,gBAATA,GAA0BnC,EAAM,QAAK7M,OAAWA,IAAoB,IAATgP,EAAiB,GAAKA,MAAMhP,OAAWA,IACtHgP,GAERnC,EAAM0B,kBAAoB,SAA2BvB,GACpD,IAAK,GAAItM,GAAI,EAAGA,EAAIsM,EAAS/L,OAAQP,IACpCsM,EAAStM,GAAKmM,EAAMkC,UAAU/B,EAAStM,GAExC,OAAOsM,GAER,IAAIS,GAAiB,+EACjBG,KACAK,KAAY/B,cA6EhBiC,GAAY3G,MAAQ,SAASyH,GAE5B,MADY,OAARA,IAAcA,EAAO,IAClBpC,EAAM,QAAK7M,OAAWA,GAAWiP,MAAMjP,OAAWA,KAE1DmO,EAAYe,SAAW,SAASC,EAAQnC,GACvC,MAAOH,GAAM,IAAKsC,EAAOzC,IAAKyC,EAAQtC,EAAM0B,kBAAkBvB,OAAWhN,OAAWA,IAErF,IAAIoB,GAAI+M,EAEJiB,EAAkB,SAASC,GAM9B,QAASjM,GAAQkM,EAAMC,GACtB,MAAO,SAASC,GAAQ7K,GACvB,GAAI8K,EACJ,KACC,IAAIF,GAAyB,MAAT5K,GAAmC,gBAAVA,IAAuC,kBAAVA,IAAwD,mBAAvB8K,EAAO9K,EAAM8K,MAKvHC,EAAU,WACJH,GAAgC,IAAhBD,EAAKrO,QAAc0O,QAAQC,MAAM,wCAAyCjL,EAC/F,KAAK,GAAIjE,GAAI,EAAGA,EAAI4O,EAAKrO,OAAQP,IAAK4O,EAAK5O,GAAGiE,EAC9CkL,GAAU5O,OAAS,EAAG6O,EAAU7O,OAAS,EACzCoM,EAASvB,MAAQyD,EACjBlC,EAAS0C,MAAQ,WAAYP,EAAQ7K,UAVuG,CAC7I,GAAIA,IAAUqL,EAAM,KAAM,IAAIC,WAAU,sCACxCC,GAAYT,EAAK7I,KAAKjC,KAYxB,MAAOzE,GACNiQ,EAAcjQ,KAIjB,QAASgQ,GAAYT,GAEpB,QAASW,GAAIC,GACZ,MAAO,UAAS1L,GACX2L,IAAS,GACbD,EAAG1L,IAJL,GAAI2L,GAAO,EAOPC,EAAUH,EAAID,EAClB,KAAKV,EAAKW,EAAII,GAAiBD,GAAU,MAAOrQ,GAAIqQ,EAAQrQ,IArC7D,KAAM8D,eAAgBoL,IAAkB,KAAM,IAAIxO,OAAM,oCACxD,IAAwB,kBAAbyO,GAAyB,KAAM,IAAIY,WAAU,8BACxD,IAAID,GAAOhM,KAAM6L,KAAgBC,KAAgBU,EAAiBpN,EAAQyM,GAAW,GAAOM,EAAgB/M,EAAQ0M,GAAW,GAC3HzC,EAAW2C,EAAKS,WAAaZ,UAAWA,EAAWC,UAAWA,GAC9DJ,EAAoC,kBAAjBgB,cAA8BA,aAAenM,UAmCpE2L,GAAYb,GAoDb,IAlDAD,EAAgB3L,UAAUgM,KAAO,SAASkB,EAAaC,GAEtD,QAASC,GAAOpC,EAAUa,EAAMwB,EAAMhF,GACrCwD,EAAKzG,KAAK,SAASlE,GAClB,GAAwB,kBAAb8J,GAAyBqC,EAAKnM,OACpC,KAAKoM,EAAYtC,EAAS9J,IAAS,MAAOzE,GAAQ8Q,GAAYA,EAAW9Q,MAEjD,kBAAnBmN,GAAS0C,OAAwBjE,IAAUuB,EAASvB,OAAOuB,EAAS0C,QANhF,GAQIgB,GAAaC,EARbhB,EAAOhM,KAAMqJ,EAAW2C,EAAKS,UAS7BQ,EAAU,GAAI7B,GAAgB,SAAS8B,EAASC,GAASJ,EAAcG,EAASF,EAAaG,GAEjG,OADAN,GAAOF,EAAatD,EAASwC,UAAWkB,GAAa,GAAOF,EAAOD,EAAavD,EAASyC,UAAWkB,GAAY,GACzGC,GAER7B,EAAgB3L,UAAU2N,MAAQ,SAASR,GAC1C,MAAO5M,MAAKyL,KAAK,KAAMmB,IAExBxB,EAAgB8B,QAAU,SAASvM,GAClC,MAAIA,aAAiByK,GAAwBzK,EACtC,GAAIyK,GAAgB,SAAS8B,GAAUA,EAAQvM,MAEvDyK,EAAgB+B,OAAS,SAASxM,GACjC,MAAO,IAAIyK,GAAgB,SAAS8B,EAASC,GAASA,EAAOxM,MAE9DyK,EAAgBiC,IAAM,SAAS/B,GAC9B,MAAO,IAAIF,GAAgB,SAAS8B,EAASC,GAC5C,GAAIG,GAAQhC,EAAKrO,OAAQsQ,EAAQ,EAAGC,IACpC,IAAoB,IAAhBlC,EAAKrO,OAAciQ,UAClB,KAAK,GAAIxQ,GAAI,EAAGA,EAAI4O,EAAKrO,OAAQP,KACrC,SAAUA,GACT,QAAS+Q,GAAQ9M,GAChB4M,IACAC,EAAO9Q,GAAKiE,EACR4M,IAAUD,GAAOJ,EAAQM,GAEf,MAAXlC,EAAK5O,IAAkC,gBAAZ4O,GAAK5O,IAAsC,kBAAZ4O,GAAK5O,IAA8C,kBAAjB4O,GAAK5O,GAAG+O,KAGnGgC,EAAQnC,EAAK5O,IAFjB4O,EAAK5O,GAAG+O,KAAKgC,EAASN,IAGrBzQ,MAIN0O,EAAgBsC,KAAO,SAASpC,GAC/B,MAAO,IAAIF,GAAgB,SAAS8B,EAASC,GAC5C,IAAK,GAAIzQ,GAAI,EAAGA,EAAI4O,EAAKrO,OAAQP,IAChC4O,EAAK5O,GAAG+O,KAAKyB,EAASC,MAIH,mBAAX9P,QAAwB,KACJ,KAAnBA,OAAOsQ,UAAyBtQ,OAAOsQ,QAAUvC,EAC5D,IAAIA,GAAkB/N,OAAOsQ,YACvB,QAAsB,KAAX/E,EAAwB,KACX,KAAnBA,EAAO+E,UAAyB/E,EAAO+E,QAAUvC,EAC5D,IAAIA,GAAkBxC,EAAO+E,QAG9B,GAAIC,GAAmB,SAASC,GAO/B,QAASC,GAAYC,EAAMpN,GAC1B,GAAInB,MAAM0K,QAAQvJ,GACjB,IAAK,GAAIjE,GAAI,EAAGA,EAAIiE,EAAM1D,OAAQP,IACjCoR,EAAYC,EAAO,IAAMrR,EAAI,IAAKiE,EAAMjE,QAGrC,IAA8C,oBAA1CsR,OAAOvO,UAAUwO,SAASjR,KAAK2D,GACvC,IAAK,GAAIjE,KAAKiE,GACbmN,EAAYC,EAAO,IAAMrR,EAAI,IAAKiE,EAAMjE,QAGrCuD,GAAK4E,KAAK2D,mBAAmBuF,IAAkB,MAATpN,GAA2B,KAAVA,EAAe,IAAM6H,mBAAmB7H,GAAS,KAjB9G,GAA+C,oBAA3CqN,OAAOvO,UAAUwO,SAASjR,KAAK6Q,GAA+B,MAAO,EACzE,IAAI5N,KACJ,KAAK,GAAI8N,KAAQF,GAChBC,EAAYC,EAAMF,EAAOE,GAE1B,OAAO9N,GAAKwI,KAAK,MAedyF,EAAsB,GAAIC,QAAO,WAAY,KAoJ7CC,EAnJK,SAASC,EAASV,GAG1B,QAASW,GAAsB7D,GAAW8D,EAAe9D,EACzD,QAAS+D,KAER,QAASC,KAA4B,KAAVlB,GAAuC,kBAAjBgB,IAA6BA,IAD9E,GAAIhB,GAAQ,CAEZ,OAAO,SAASmB,GAASC,GACxB,GAAIC,GAAQD,EAASlD,IAUrB,OATAkD,GAASlD,KAAO,WACf8B,GACA,IAAIT,GAAO8B,EAAMxO,MAAMuO,EAAUzO,UAKjC,OAJA4M,GAAKrB,KAAKgD,EAAU,SAASvS,GAE5B,GADAuS,IACc,IAAVlB,EAAa,KAAMrR,KAEjBwS,EAAS5B,IAEV6B,GAGT,QAAS5D,GAAU9K,EAAM4O,GACxB,GAAoB,gBAAT5O,GAAmB,CAC7B,GAAIiG,GAAMjG,CACVA,GAAO4O,MACS,MAAZ5O,EAAKiG,MAAajG,EAAKiG,IAAMA,GAElC,MAAOjG,GAER,QAAS6O,GAAQ7O,EAAM4O,GACtB,GAAIH,GAAWF,GACfvO,GAAO8K,EAAU9K,EAAM4O,EACvB,IAAIF,GAAW,GAAIhB,GAAQ,SAAST,EAASC,GACzB,MAAflN,EAAKgD,SAAgBhD,EAAKgD,OAAS,OACvChD,EAAKgD,OAAShD,EAAKgD,OAAO8L,aAC1B,IAAIC,GAA2B,QAAhB/O,EAAKgD,QAAoC,UAAhBhD,EAAKgD,SAAuD,iBAAjBhD,GAAK+O,SAAwB/O,EAAK+O,QACvF,mBAAnB/O,GAAKgP,YAA0BhP,EAAKgP,UAAgC,mBAAbC,WAA4BjP,EAAKuC,eAAgB0M,UAAW,SAASvO,GAAQ,MAAOA,IAASU,KAAK8N,WACpI,kBAArBlP,GAAKmP,cAA4BnP,EAAKmP,YAAcA,GACnC,kBAAjBnP,GAAKoP,UAAwBpP,EAAKoP,QAAUA,GACvDpP,EAAKiG,IAAMoJ,EAAYrP,EAAKiG,IAAKjG,EAAKuC,MAClCwM,EAAS/O,EAAKuC,KAAOvC,EAAKgP,UAAUhP,EAAKuC,MACxCvC,EAAKiG,IAAMqJ,EAAStP,EAAKiG,IAAKjG,EAAKuC,KACxC,IAAIgN,GAAM,GAAInB,GAAQoB,eACrBC,GAAU,EACVC,EAASH,EAAII,KACdJ,GAAII,MAAQ,WACXF,GAAU,EACVC,EAAO3S,KAAKwS,IAEbA,EAAI/H,KAAKxH,EAAKgD,OAAQhD,EAAKiG,IAA2B,iBAAfjG,GAAK4P,OAAsB5P,EAAK4P,MAAmC,gBAAd5P,GAAK6P,KAAoB7P,EAAK6P,SAAO9T,GAAoC,gBAAlBiE,GAAK8P,SAAwB9P,EAAK8P,aAAW/T,IAC5LiE,EAAKgP,YAAc5N,KAAK8N,WAAaH,GACxCQ,EAAIQ,iBAAiB,eAAgB,mCAElC/P,EAAKmP,cAAgBA,GACxBI,EAAIQ,iBAAiB,SAAU,4BAE5B/P,EAAKgQ,kBAAiBT,EAAIS,gBAAkBhQ,EAAKgQ,gBACrD,KAAK,GAAIvH,KAAOzI,GAAKiQ,aAAgBhI,eAAelL,KAAKiD,EAAKiQ,QAASxH,IACtE8G,EAAIQ,iBAAiBtH,EAAKzI,EAAKiQ,QAAQxH,GAEb,mBAAhBzI,GAAKY,SAAuB2O,EAAMvP,EAAKY,OAAO2O,EAAKvP,IAASuP,GACvEA,EAAIW,mBAAqB,WAExB,IAAGT,GACoB,IAAnBF,EAAIY,WACP,IACC,GAAIC,GAAYpQ,EAAKoP,UAAYA,EAAWpP,EAAKoP,QAAQG,EAAKvP,GAAQA,EAAKmP,YAAYnP,EAAKoP,QAAQG,EAAKvP,GACzG,IAAKuP,EAAIc,QAAU,KAAOd,EAAIc,OAAS,KAAuB,MAAfd,EAAIc,QAAkBpC,EAAoBqC,KAAKtQ,EAAKiG,KAClGgH,EAAQsD,EAAKvQ,EAAKkD,KAAMkN,QAEpB,CACJ,GAAIzE,GAAQ,GAAIhP,OAAM4S,EAAIiB,aAC1B,KAAK,GAAI/H,KAAO2H,GAAUzE,EAAMlD,GAAO2H,EAAS3H,EAChDyE,GAAOvB,IAGT,MAAO1P,GACNiR,EAAOjR,KAIN8S,GAAyB,MAAb/O,EAAKuC,KAAegN,EAAIkB,KAAKzQ,EAAKuC,MAC7CgN,EAAIkB,QAEV,QAA2B,IAApBzQ,EAAK0Q,WAAsBhC,EAAWD,EAASC,GAEvD,QAASiC,GAAM3Q,EAAM4O,GACpB,GAAIH,GAAWF,GACfvO,GAAO8K,EAAU9K,EAAM4O,EACvB,IAAIF,GAAW,GAAIhB,GAAQ,SAAST,EAASC,GAC5C,GAAI0D,GAAe5Q,EAAK4Q,cAAgB,YAAcC,KAAKC,MAAsB,KAAhBD,KAAKE,UAAmB,IAAMC,IAC3FC,EAAS7C,EAAQ7Q,SAAS2T,cAAc,SAC5C9C,GAAQwC,GAAgB,SAASrO,GAChC0O,EAAOE,WAAWC,YAAYH,GAC9BhE,EAAQsD,EAAKvQ,EAAKkD,KAAMX,UACjB6L,GAAQwC,IAEhBK,EAAO3E,QAAU,WAChB2E,EAAOE,WAAWC,YAAYH,GAC9B/D,EAAO,GAAIvQ,OAAM,+BACVyR,GAAQwC,IAEC,MAAb5Q,EAAKuC,OAAcvC,EAAKuC,SAC5BvC,EAAKiG,IAAMoJ,EAAYrP,EAAKiG,IAAKjG,EAAKuC,MACtCvC,EAAKuC,KAAKvC,EAAKqR,aAAe,YAAcT,EAC5CK,EAAOK,IAAMhC,EAAStP,EAAKiG,IAAKjG,EAAKuC,MACrC6L,EAAQ7Q,SAASgU,gBAAgBC,YAAYP,IAE9C,QAA2B,IAApBjR,EAAK0Q,WAAqBhC,EAAWD,EAASC,GAEtD,QAASW,GAAYpJ,EAAK1D,GACzB,GAAY,MAARA,EAAc,MAAO0D,EAEzB,KAAK,GADDwL,GAASxL,EAAIc,MAAM,iBACdtK,EAAI,EAAGA,EAAIgV,EAAOzU,OAAQP,IAAK,CACvC,GAAIgM,GAAMgJ,EAAOhV,GAAGiV,MAAM,EACT,OAAbnP,EAAKkG,KACRxC,EAAMA,EAAIjB,QAAQyM,EAAOhV,GAAI8F,EAAKkG,KAGpC,MAAOxC,GAER,QAASqJ,GAASrJ,EAAK1D,GACtB,GAAIoP,GAAchE,EAAiBpL,EACnC,IAAoB,KAAhBoP,EAAoB,CAEvB1L,IADaA,EAAI2L,QAAQ,KAAO,EAAI,IAAM,KAC1BD,EAEjB,MAAO1L,GAER,QAASkJ,GAAY5M,GACpB,IAAK,MAAgB,KAATA,EAAcnB,KAAKC,MAAMkB,GAAQ,KAC7C,MAAOtG,GAAI,KAAM,IAAIU,OAAM4F,IAE5B,QAAS6M,GAAQG,GAAM,MAAOA,GAAIiB,aAClC,QAASD,GAAKsB,EAAOtP,GACpB,GAAqB,kBAAVsP,GAAsB,CAChC,IAAItS,MAAM0K,QAAQ1H,GAKb,MAAO,IAAIsP,GAAMtP,EAJrB,KAAK,GAAI9F,GAAI,EAAGA,EAAI8F,EAAKvF,OAAQP,IAChC8F,EAAK9F,GAAK,GAAIoV,GAAMtP,EAAK9F,IAK5B,MAAO8F,GA9IR,GACI+L,GADA0C,EAAgB,CAgJpB,QAAQnC,QAASA,EAAS8B,MAAOA,EAAOtC,sBAAuBA,IAExCjR,OAAQ+N,GAC5B2G,EAAe,SAAS1D,GAI3B,QAAS2D,GAAiBvH,GAAW,MAAOwH,GAAUxH,EAEtD,QAASyH,GAAYC,EAAQC,EAAQhI,EAAOiI,EAAKC,EAAOC,EAAaC,GACpE,IAAK,GAAI9V,GAAI0N,EAAO1N,EAAI2V,EAAK3V,IAAK,CACjC,GAAI+V,GAAQL,EAAO1V,EACN,OAAT+V,GACHC,EAAWP,EAAQM,EAAOH,EAAOE,EAAID,IAIxC,QAASG,GAAWP,EAAQM,EAAOH,EAAOE,EAAID,GAC7C,GAAIzJ,GAAM2J,EAAM3J,GAChB,IAAmB,gBAARA,GAUN,MAAO6J,GAAgBR,EAAQM,EAAOH,EAAOE,EAAID,EAPrD,QAFAE,EAAM3K,SACa,MAAf2K,EAAMvJ,OAAe0J,EAAcH,EAAMvJ,MAAOuJ,EAAOH,GACnDxJ,GACP,IAAK,IAAK,MAAO+J,GAAWV,EAAQM,EAAOF,EAC3C,KAAK,IAAK,MAAOO,GAAWX,EAAQM,EAAOF,EAC3C,KAAK,IAAK,MAAOQ,GAAeZ,EAAQM,EAAOH,EAAOE,EAAID,EAC1D,SAAS,MAAOpB,GAAcgB,EAAQM,EAAOH,EAAOE,EAAID,IAK3D,QAASM,GAAWV,EAAQM,EAAOF,GAGlC,MAFAE,GAAMxJ,IAAM+J,EAAKC,eAAeR,EAAMzJ,UACtCkK,EAAWf,EAAQM,EAAMxJ,IAAKsJ,GACvBE,EAAMxJ,IAEd,QAAS6J,GAAWX,EAAQM,EAAOF,GAClC,GAAIY,GAASV,EAAMzJ,SAAShC,MAAM,qBAC9BoM,GAAWC,QAAS,QAASC,MAAO,QAASC,MAAO,QAASC,MAAO,QAASC,GAAI,QAASC,GAAI,KAAMC,GAAI,KAAMC,SAAU,QAASC,IAAK,YAAYV,EAAO,KAAO,MAChKW,EAAOd,EAAK7B,cAAciC,EAC9BU,GAAKC,UAAYtB,EAAMzJ,SACvByJ,EAAMxJ,IAAM6K,EAAKE,WACjBvB,EAAMtJ,QAAU2K,EAAKG,WAAWhX,MAGhC,KAFA,GACIiX,GADAhJ,EAAW8H,EAAKmB,yBAEbD,EAAQJ,EAAKE,YACnB9I,EAASuG,YAAYyC,EAGtB,OADAhB,GAAWf,EAAQjH,EAAUqH,GACtBrH,EAER,QAAS6H,GAAeZ,EAAQM,EAAOH,EAAOE,EAAID,GACjD,GAAIrH,GAAW8H,EAAKmB,wBACpB,IAAsB,MAAlB1B,EAAMzJ,SAAkB,CAC3B,GAAIA,GAAWyJ,EAAMzJ,QACrBkJ,GAAYhH,EAAUlC,EAAU,EAAGA,EAAS/L,OAAQqV,EAAO,KAAME,GAKlE,MAHAC,GAAMxJ,IAAMiC,EAAS8I,WACrBvB,EAAMtJ,QAAU+B,EAAS+I,WAAWhX,OACpCiW,EAAWf,EAAQjH,EAAUqH,GACtBrH,EAER,QAASiG,GAAcgB,EAAQM,EAAOH,EAAOE,EAAID,GAChD,GAAIzJ,GAAM2J,EAAM3J,GAChB,QAAQ2J,EAAM3J,KACb,IAAK,MAAO0J,EAAK,4BAA8B,MAC/C,KAAK,OAAQA,EAAK,qCAEnB,GAAI4B,GAAS3B,EAAMvJ,MACfmL,EAAKD,GAAUA,EAAOC,GACtBnV,EAAUsT,EACb6B,EAAKrB,EAAKsB,gBAAgB9B,EAAI1J,GAAMuL,GAAIA,IAAOrB,EAAKsB,gBAAgB9B,EAAI1J,GACxEuL,EAAKrB,EAAK7B,cAAcrI,GAAMuL,GAAIA,IAAOrB,EAAK7B,cAAcrI,EAM7D,IALA2J,EAAMxJ,IAAM/J,EACE,MAAVkV,GACHG,EAAS9B,EAAO2B,EAAQ5B,GAEzBU,EAAWf,EAAQjT,EAASqT,GACT,MAAfE,EAAMvJ,OAAgD,MAA/BuJ,EAAMvJ,MAAMsL,gBACtCC,EAAmBhC,OAOnB,IAJkB,MAAdA,EAAMjL,OACU,KAAfiL,EAAMjL,KAAatI,EAAQwV,YAAcjC,EAAMjL,KAC9CiL,EAAMzJ,UAAYH,EAAM,QAAK7M,OAAWA,GAAWyW,EAAMjL,SAAMxL,OAAWA,MAE1D,MAAlByW,EAAMzJ,SAAkB,CAC3B,GAAIA,GAAWyJ,EAAMzJ,QACrBkJ,GAAYhT,EAAS8J,EAAU,EAAGA,EAAS/L,OAAQqV,EAAO,KAAME,GAChEmC,EAAalC,GAGf,MAAOvT,GAER,QAAS0V,GAAcnC,EAAOH,GAC7B,GAAIuC,EACJ,IAA8B,kBAAnBpC,GAAM3J,IAAI9F,KAAqB,CAGzC,GAFAyP,EAAM3K,MAAQkG,OAAO8G,OAAOrC,EAAM3J,KAClC+L,EAAWpC,EAAM3K,MAAM9E,KACW,MAA9B6R,EAASE,kBAA2B,MAAOC,EAC/CH,GAASE,mBAAoB,MACvB,CAGN,GAFAtC,EAAM3K,UAAQ,GACd+M,EAAWpC,EAAM3J,IACiB,MAA9B+L,EAASE,kBAA2B,MAAOC,EAC/CH,GAASE,mBAAoB,EAC7BtC,EAAM3K,MAAgC,MAAvB2K,EAAM3J,IAAIrJ,WAAyD,kBAA7BgT,GAAM3J,IAAIrJ,UAAUuD,KAAuB,GAAIyP,GAAM3J,IAAI2J,GAASA,EAAM3J,IAAI2J,GAMlI,GAJAA,EAAMrJ,OAASqJ,EAAM3K,MACF,MAAf2K,EAAMvJ,OAAe0J,EAAcH,EAAMvJ,MAAOuJ,EAAOH,GAC3DM,EAAcH,EAAMrJ,OAAQqJ,EAAOH,GACnCG,EAAMpJ,SAAWR,EAAMkC,UAAU0H,EAAMrJ,OAAOpG,KAAKhG,KAAKyV,EAAM3K,MAAO2K,IACjEA,EAAMpJ,WAAaoJ,EAAO,KAAM7V,OAAM,yDAC1CiY,GAASE,kBAAoB,KAE9B,QAASpC,GAAgBR,EAAQM,EAAOH,EAAOE,EAAID,GAElD,GADAqC,EAAcnC,EAAOH,GACC,MAAlBG,EAAMpJ,SAAkB,CAC3B,GAAInK,GAAUwT,EAAWP,EAAQM,EAAMpJ,SAAUiJ,EAAOE,EAAID,EAI5D,OAHAE,GAAMxJ,IAAMwJ,EAAMpJ,SAASJ,IAC3BwJ,EAAMtJ,QAAuB,MAAbsJ,EAAMxJ,IAAcwJ,EAAMpJ,SAASF,QAAU,EAC7D+J,EAAWf,EAAQjT,EAASqT,GACrBrT,EAIP,MADAuT,GAAMtJ,QAAU,EACT6L,EAIT,QAASC,GAAY9C,EAAQ+C,EAAK9C,EAAQ+C,EAAW7C,EAAOC,EAAaC,GACxE,GAAI0C,IAAQ9C,IAAiB,MAAP8C,GAAyB,MAAV9C,GAChC,GAAW,MAAP8C,EAAahD,EAAYC,EAAQC,EAAQ,EAAGA,EAAOnV,OAAQqV,EAAOC,MAAavW,QACnF,IAAc,MAAVoW,EAAgBgD,EAAYF,EAAK,EAAGA,EAAIjY,OAAQmV,OACpD,CACJ,GAAI8C,EAAIjY,SAAWmV,EAAOnV,OAAQ,CAEjC,IAAK,GADDoY,IAAY,EACP3Y,EAAI,EAAGA,EAAI0V,EAAOnV,OAAQP,IAClC,GAAiB,MAAb0V,EAAO1V,IAAwB,MAAVwY,EAAIxY,GAAY,CACxC2Y,EAA6B,MAAjBjD,EAAO1V,GAAGgM,KAA6B,MAAdwM,EAAIxY,GAAGgM,GAC5C,OAGF,GAAI2M,EAAW,CACd,IAAK,GAAI3Y,GAAI,EAAGA,EAAIwY,EAAIjY,OAAQP,IAC3BwY,EAAIxY,KAAO0V,EAAO1V,KACH,MAAVwY,EAAIxY,IAA2B,MAAb0V,EAAO1V,GAAYgW,EAAWP,EAAQC,EAAO1V,GAAI4V,EAAOE,EAAI8C,EAAeJ,EAAKxY,EAAI,EAAG6V,IAC5F,MAAbH,EAAO1V,GAAY0Y,EAAYF,EAAKxY,EAAGA,EAAI,EAAG0V,GAClDmD,EAAWpD,EAAQ+C,EAAIxY,GAAI0V,EAAO1V,GAAI4V,EAAOgD,EAAeJ,EAAKxY,EAAI,EAAG6V,GAAc4C,EAAW3C,GAEvG,SAIF,GADA2C,EAAYA,GAAaK,EAAaN,EAAK9C,GAC5B,CACd,GAAIqD,GAAOP,EAAIO,IACfP,GAAMA,EAAIQ,OAAOR,EAAIO,MAGtB,IADA,GAA+EE,GAA3EC,EAAW,EAAGxL,EAAQ,EAAGyL,EAASX,EAAIjY,OAAS,EAAGoV,EAAMD,EAAOnV,OAAS,EACrE4Y,GAAUD,GAAYvD,GAAOjI,GAAO,CAC1C,GAAI7N,GAAI2Y,EAAIU,GAAWE,EAAI1D,EAAOhI,EAClC,IAAI7N,IAAMuZ,GAAMX,EACX,GAAS,MAAL5Y,EAAWqZ,QACf,IAAS,MAALE,EAAW1L,QACf,IAAI7N,EAAEmM,MAAQoN,EAAEpN,IAAK,CACzB,GAAIqN,GAAyB,MAARN,GAAgBG,GAAYV,EAAIjY,OAASwY,EAAKxY,QAAqB,MAARwY,GAAiBN,CACjGS,KAAYxL,IACZmL,EAAWpD,EAAQ5V,EAAGuZ,EAAGxD,EAAOgD,EAAeJ,EAAKU,EAAUrD,GAAcwD,EAAevD,GACvF2C,GAAa5Y,EAAEuM,MAAQgN,EAAEhN,KAAKoK,EAAWf,EAAQ6D,EAAWzZ,GAAIgW,OAEhE,CACJ,GAAIhW,GAAI2Y,EAAIW,EACZ,IAAItZ,IAAMuZ,GAAMX,EACX,GAAS,MAAL5Y,EAAWsZ,QACf,IAAS,MAALC,EAAW1L,QACf,CAAA,GAAI7N,EAAEmM,MAAQoN,EAAEpN,IAMhB,KALJ,IAAIqN,GAAyB,MAARN,GAAgBI,GAAUX,EAAIjY,OAASwY,EAAKxY,QAAqB,MAARwY,GAAiBN,CAC/FI,GAAWpD,EAAQ5V,EAAGuZ,EAAGxD,EAAOgD,EAAeJ,EAAKW,EAAS,EAAGtD,GAAcwD,EAAevD,IACzF2C,GAAa/K,EAAQiI,IAAKa,EAAWf,EAAQ6D,EAAWzZ,GAAI+Y,EAAeJ,EAAKU,EAAUrD,IAC9FsD,IAAUzL,QAPgByL,KAAUzL,QAXXwL,KAAYxL,IAuBxC,KAAOyL,GAAUD,GAAYvD,GAAOjI,GAAO,CAC1C,GAAI7N,GAAI2Y,EAAIW,GAASC,EAAI1D,EAAOC,EAChC,IAAI9V,IAAMuZ,GAAMX,EACX,GAAS,MAAL5Y,EAAWsZ,QACf,IAAS,MAALC,EAAWzD,QACf,IAAI9V,EAAEmM,MAAQoN,EAAEpN,IAAK,CACzB,GAAIqN,GAAyB,MAARN,GAAgBI,GAAUX,EAAIjY,OAASwY,EAAKxY,QAAqB,MAARwY,GAAiBN,CAC/FI,GAAWpD,EAAQ5V,EAAGuZ,EAAGxD,EAAOgD,EAAeJ,EAAKW,EAAS,EAAGtD,GAAcwD,EAAevD,GACzF2C,GAAa5Y,EAAEuM,MAAQgN,EAAEhN,KAAKoK,EAAWf,EAAQ6D,EAAWzZ,GAAIgW,GACvD,MAAThW,EAAE0M,MAAasJ,EAAchW,EAAE0M,KACnC4M,IAAUxD,QAEN,CAEJ,GADKsD,IAAKA,EAAMM,EAAUf,EAAKW,IACtB,MAALC,EAAW,CACd,GAAII,GAAWP,EAAIG,EAAEpN,IACrB,IAAgB,MAAZwN,EAAkB,CACrB,GAAIC,GAAUjB,EAAIgB,GACdH,EAAyB,MAARN,GAAgBS,GAAYhB,EAAIjY,OAASwY,EAAKxY,QAAqB,MAARwY,GAAiBN,CACjGI,GAAWpD,EAAQgE,EAASL,EAAGxD,EAAOgD,EAAeJ,EAAKW,EAAS,EAAGtD,GAAc4C,EAAW3C,GAC/FU,EAAWf,EAAQ6D,EAAWG,GAAU5D,GACxC2C,EAAIgB,GAAU5M,MAAO,EACF,MAAf6M,EAAQlN,MAAasJ,EAAc4D,EAAQlN,SAE3C,CACJ,GAAIA,GAAMyJ,EAAWP,EAAQ2D,EAAGxD,MAAOtW,GAAWuW,EAClDA,GAActJ,GAGhBoJ,QA3B0BwD,KAAUxD,GA6BrC,IAAIA,EAAMjI,EAAO,MAElB8H,EAAYC,EAAQC,EAAQhI,EAAOiI,EAAM,EAAGC,EAAOC,EAAaC,GAChE4C,EAAYF,EAAKU,EAAUC,EAAS,EAAGzD,IAGzC,QAASmD,GAAWpD,EAAQ+C,EAAKzC,EAAOH,EAAOC,EAAa4C,EAAW3C,GACtE,GAAI4D,GAASlB,EAAIpM,GACjB,IAAIsN,IADwB3D,EAAM3J,IACd,CAInB,GAHA2J,EAAM3K,MAAQoN,EAAIpN,MAClB2K,EAAMrJ,OAAS8L,EAAI9L,OACnBqJ,EAAM/U,OAASwX,EAAIxX,QACdyX,GAAakB,EAAgB5D,EAAOyC,GAAM,MAC/C,IAAsB,gBAAXkB,GAQV,OAPmB,MAAf3D,EAAMvJ,QACLiM,GACH1C,EAAM3K,SACN8K,EAAcH,EAAMvJ,MAAOuJ,EAAOH,IAE9BgE,EAAgB7D,EAAMvJ,MAAOuJ,EAAOH,IAElC8D,GACP,IAAK,IAAKG,EAAWrB,EAAKzC,EAAQ,MAClC,KAAK,IAAK+D,EAAWrE,EAAQ+C,EAAKzC,EAAOF,EAAc,MACvD,KAAK,IAAKkE,EAAetE,EAAQ+C,EAAKzC,EAAO0C,EAAW7C,EAAOC,EAAaC,EAAK,MACjF,SAASkE,EAAcxB,EAAKzC,EAAO0C,EAAW7C,EAAOE,OAGlDmE,GAAgBxE,EAAQ+C,EAAKzC,EAAOH,EAAOC,EAAa4C,EAAW3C,OAGxEoE,GAAW1B,EAAK,MAChBxC,EAAWP,EAAQM,EAAOH,EAAOE,EAAID,GAGvC,QAASgE,GAAWrB,EAAKzC,GACpByC,EAAIlM,SAASiF,aAAewE,EAAMzJ,SAASiF,aAC9CiH,EAAIjM,IAAI4N,UAAYpE,EAAMzJ,UAE3ByJ,EAAMxJ,IAAMiM,EAAIjM,IAEjB,QAASuN,GAAWrE,EAAQ+C,EAAKzC,EAAOF,GACnC2C,EAAIlM,WAAayJ,EAAMzJ,UAC1BgN,EAAWd,GACXpC,EAAWX,EAAQM,EAAOF,KAEtBE,EAAMxJ,IAAMiM,EAAIjM,IAAKwJ,EAAMtJ,QAAU+L,EAAI/L,SAE/C,QAASsN,GAAetE,EAAQ+C,EAAKzC,EAAO0C,EAAW7C,EAAOC,EAAaC,GAC1EyC,EAAY9C,EAAQ+C,EAAIlM,SAAUyJ,EAAMzJ,SAAUmM,EAAW7C,EAAOC,EAAaC,EACjF,IAAIrJ,GAAU,EAAGH,EAAWyJ,EAAMzJ,QAElC,IADAyJ,EAAMxJ,IAAM,KACI,MAAZD,EAAkB,CACrB,IAAK,GAAItM,GAAI,EAAGA,EAAIsM,EAAS/L,OAAQP,IAAK,CACzC,GAAIwX,GAAQlL,EAAStM,EACR,OAATwX,GAA8B,MAAbA,EAAMjL,MACT,MAAbwJ,EAAMxJ,MAAawJ,EAAMxJ,IAAMiL,EAAMjL,KACzCE,GAAW+K,EAAM/K,SAAW,GAGd,IAAZA,IAAesJ,EAAMtJ,QAAUA,IAGrC,QAASuN,GAAcxB,EAAKzC,EAAO0C,EAAW7C,EAAOE,GACpD,GAAItT,GAAUuT,EAAMxJ,IAAMiM,EAAIjM,GAC9B,QAAQwJ,EAAM3J,KACb,IAAK,MAAO0J,EAAK,4BAA8B,MAC/C,KAAK,OAAQA,EAAK,qCAED,aAAdC,EAAM3J,MACU,MAAf2J,EAAMvJ,QAAeuJ,EAAMvJ,UACb,MAAduJ,EAAMjL,OACTiL,EAAMvJ,MAAMvI,MAAQ8R,EAAMjL,KAC1BiL,EAAMjL,SAAOxL,KAGf8a,EAAYrE,EAAOyC,EAAIhM,MAAOuJ,EAAMvJ,MAAOsJ,GACxB,MAAfC,EAAMvJ,OAAgD,MAA/BuJ,EAAMvJ,MAAMsL,gBACtCC,EAAmBhC,GAEC,MAAZyC,EAAI1N,MAA8B,MAAdiL,EAAMjL,MAA+B,KAAfiL,EAAMjL,KACpD0N,EAAI1N,KAAKyG,aAAewE,EAAMjL,KAAKyG,aAAYiH,EAAIjM,IAAI+K,WAAW6C,UAAYpE,EAAMjL,OAGxE,MAAZ0N,EAAI1N,OAAc0N,EAAIlM,UAAYH,EAAM,QAAK7M,OAAWA,GAAWkZ,EAAI1N,SAAMxL,GAAWkZ,EAAIjM,IAAI+K,cAClF,MAAdvB,EAAMjL,OAAciL,EAAMzJ,UAAYH,EAAM,QAAK7M,OAAWA,GAAWyW,EAAMjL,SAAMxL,OAAWA,MAClGiZ,EAAY/V,EAASgW,EAAIlM,SAAUyJ,EAAMzJ,SAAUmM,EAAW7C,EAAO,KAAME,IAG7E,QAASmE,GAAgBxE,EAAQ+C,EAAKzC,EAAOH,EAAOC,EAAa4C,EAAW3C,GAC3E,GAAI2C,EACHP,EAAcnC,EAAOH,OACf,CAEN,GADAG,EAAMpJ,SAAWR,EAAMkC,UAAU0H,EAAMrJ,OAAOpG,KAAKhG,KAAKyV,EAAM3K,MAAO2K,IACjEA,EAAMpJ,WAAaoJ,EAAO,KAAM7V,OAAM,yDACvB,OAAf6V,EAAMvJ,OAAeoN,EAAgB7D,EAAMvJ,MAAOuJ,EAAOH,GAC7DgE,EAAgB7D,EAAMrJ,OAAQqJ,EAAOH,GAEhB,MAAlBG,EAAMpJ,UACW,MAAhB6L,EAAI7L,SAAkBqJ,EAAWP,EAAQM,EAAMpJ,SAAUiJ,EAAOE,EAAID,GACnEgD,EAAWpD,EAAQ+C,EAAI7L,SAAUoJ,EAAMpJ,SAAUiJ,EAAOC,EAAa4C,EAAW3C,GACrFC,EAAMxJ,IAAMwJ,EAAMpJ,SAASJ,IAC3BwJ,EAAMtJ,QAAUsJ,EAAMpJ,SAASF,SAEP,MAAhB+L,EAAI7L,UACZuN,EAAW1B,EAAI7L,SAAU,MACzBoJ,EAAMxJ,QAAMjN,GACZyW,EAAMtJ,QAAU,IAGhBsJ,EAAMxJ,IAAMiM,EAAIjM,IAChBwJ,EAAMtJ,QAAU+L,EAAI/L,SAGtB,QAASqM,GAAaN,EAAK9C,GAC1B,GAAgB,MAAZ8C,EAAIO,MAAgB3E,KAAKiG,IAAI7B,EAAIO,KAAKxY,OAASmV,EAAOnV,SAAW6T,KAAKiG,IAAI7B,EAAIjY,OAASmV,EAAOnV,QAAS,CAC1G,GAAI+Z,GAAoB9B,EAAI,IAAMA,EAAI,GAAGlM,UAAYkM,EAAI,GAAGlM,SAAS/L,QAAU,EAC3Ega,EAAqB/B,EAAIO,KAAK,IAAMP,EAAIO,KAAK,GAAGzM,UAAYkM,EAAIO,KAAK,GAAGzM,SAAS/L,QAAU,EAC3Fia,EAAuB9E,EAAO,IAAMA,EAAO,GAAGpJ,UAAYoJ,EAAO,GAAGpJ,SAAS/L,QAAU,CAC3F,IAAI6T,KAAKiG,IAAIE,EAAqBC,IAAyBpG,KAAKiG,IAAIC,EAAoBE,GACvF,OAAO,EAGT,OAAO,EAER,QAASjB,GAAU7D,EAAQC,GAE1B,IAAK,GADDsD,MAAUjZ,EAAI,EACTA,EAAI,EAAGA,EAAI2V,EAAK3V,IAAK,CAC7B,GAAI+V,GAAQL,EAAO1V,EACnB,IAAa,MAAT+V,EAAe,CAClB,GAAI0E,GAAO1E,EAAM/J,GACL,OAARyO,IAAcxB,EAAIwB,GAAQza,IAGhC,MAAOiZ,GAER,QAASK,GAAWvD,GACnB,GAAI2E,GAAS3E,EAAMtJ,OACnB,IAAc,MAAViO,GAA+B,MAAb3E,EAAMxJ,IAAa,CACxC,GAAIiC,GAAW8H,EAAKmB,wBACpB,IAAIiD,EAAS,EAAG,CAEf,IADA,GAAInO,GAAMwJ,EAAMxJ,MACPmO,GAAQlM,EAASuG,YAAYxI,EAAIsJ,YAC1CrH,GAASmM,aAAapO,EAAKiC,EAAS8I,YAErC,MAAO9I,GAEH,MAAOuH,GAAMxJ,IAEnB,QAASqM,GAAelD,EAAQ1V,EAAG6V,GAClC,KAAO7V,EAAI0V,EAAOnV,OAAQP,IACzB,GAAiB,MAAb0V,EAAO1V,IAA+B,MAAjB0V,EAAO1V,GAAGuM,IAAa,MAAOmJ,GAAO1V,GAAGuM,GAElE,OAAOsJ,GAER,QAASW,GAAWf,EAAQlJ,EAAKsJ,GAC5BA,GAAeA,EAAYnB,WAAYe,EAAOkF,aAAapO,EAAKsJ,GAC/DJ,EAAOV,YAAYxI,GAEzB,QAASwL,GAAmBhC,GAC3B,GAAIzJ,GAAWyJ,EAAMzJ,QACrB,IAAgB,MAAZA,GAAwC,IAApBA,EAAS/L,QAAoC,MAApB+L,EAAS,GAAGF,IAAa,CACzE,GAAIwO,GAAUtO,EAAS,GAAGA,QACtByJ,GAAMxJ,IAAI8K,YAAcuD,IAAS7E,EAAMxJ,IAAI8K,UAAYuD,OAEvD,IAAkB,MAAd7E,EAAMjL,MAA4B,MAAZwB,GAAwC,IAApBA,EAAS/L,OAAc,KAAM,IAAIL,OAAM,mDAG3F,QAASwY,GAAYhD,EAAQhI,EAAOiI,EAAK9U,GACxC,IAAK,GAAIb,GAAI0N,EAAO1N,EAAI2V,EAAK3V,IAAK,CACjC,GAAI+V,GAAQL,EAAO1V,EACN,OAAT+V,IACCA,EAAMnJ,KAAMmJ,EAAMnJ,MAAO,EACxBsN,EAAWnE,EAAOlV,KAI1B,QAASqZ,GAAWnE,EAAOlV,GAiB1B,QAASga,KACR,KAAMC,IAAWC,IAChBC,EAASjF,GACLA,EAAMxJ,KAAK,CACd,GAAImO,GAAS3E,EAAMtJ,SAAW,CAC9B,IAAIiO,EAAS,EAEZ,IADA,GAAInO,GAAMwJ,EAAMxJ,MACPmO,GACRO,EAAkB1O,EAAIsJ,YAGxBoF,GAAkBlF,EAAMxJ,KACT,MAAX1L,GAAoC,MAAjBkV,EAAMtJ,SAAoByO,EAAsBnF,EAAMvJ,QAA+B,gBAAduJ,GAAM3J,MAC9FvL,EAAQkY,KACRlY,EAAQkY,KAAK5Q,KAAK4N,GADJlV,EAAQkY,MAAQhD,KA7BvC,GAAIgF,GAAW,EAAGD,EAAS,CAC3B,IAAI/E,EAAMvJ,OAA+C,kBAA/BuJ,GAAMvJ,MAAM2O,eAA+B,CACpE,GAAIC,GAASrF,EAAMvJ,MAAM2O,eAAe7a,KAAKyV,EAAM3K,MAAO2K,EAC5C,OAAVqF,GAAyC,kBAAhBA,GAAOrM,OACnCgM,IACAK,EAAOrM,KAAK8L,EAAcA,IAG5B,GAAyB,gBAAd9E,GAAM3J,KAA2D,kBAAhC2J,GAAMrJ,OAAOyO,eAA+B,CACvF,GAAIC,GAASrF,EAAMrJ,OAAOyO,eAAe7a,KAAKyV,EAAM3K,MAAO2K,EAC7C,OAAVqF,GAAyC,kBAAhBA,GAAOrM,OACnCgM,IACAK,EAAOrM,KAAK8L,EAAcA,IAG5BA,IAqBD,QAASI,GAAkB3M,GAC1B,GAAImH,GAASnH,EAAKoG,UACJ,OAAVe,GAAgBA,EAAOd,YAAYrG,GAExC,QAAS0M,GAASjF,GAGjB,GAFIA,EAAMvJ,OAAyC,kBAAzBuJ,GAAMvJ,MAAMwO,UAAyBjF,EAAMvJ,MAAMwO,SAAS1a,KAAKyV,EAAM3K,MAAO2K,GAC7E,gBAAdA,GAAM3J,KAAqD,kBAA1B2J,GAAMrJ,OAAOsO,UAAyBjF,EAAMrJ,OAAOsO,SAAS1a,KAAKyV,EAAM3K,MAAO2K,GACpG,MAAlBA,EAAMpJ,SAAkBqO,EAASjF,EAAMpJ,cACtC,CACJ,GAAIL,GAAWyJ,EAAMzJ,QACrB,IAAIxJ,MAAM0K,QAAQlB,GACjB,IAAK,GAAItM,GAAI,EAAGA,EAAIsM,EAAS/L,OAAQP,IAAK,CACzC,GAAIwX,GAAQlL,EAAStM,EACR,OAATwX,GAAewD,EAASxD,KAMhC,QAASK,GAAS9B,EAAO2B,EAAQ5B,GAChC,IAAK,GAAI2E,KAAQ/C,GAChB2D,EAAQtF,EAAO0E,EAAM,KAAM/C,EAAO+C,GAAO3E,GAG3C,QAASuF,GAAQtF,EAAO0E,EAAMjC,EAAKvU,EAAO6R,GACzC,GAAItT,GAAUuT,EAAMxJ,GACpB,IAAa,QAATkO,GAA2B,OAATA,IAAkBjC,IAAQvU,GAAUqX,EAAgBvF,EAAO0E,IAA2B,gBAAVxW,SAAuC,KAAVA,IAAyBsX,EAAkBd,GAA1K,CACA,GAAIe,GAAcf,EAAKtF,QAAQ,IAC/B,IAAIqG,GAAe,GAAqC,UAAhCf,EAAKgB,OAAO,EAAGD,GACtChZ,EAAQkZ,eAAe,+BAAgCjB,EAAKxF,MAAMuG,EAAc,GAAIvX,OAEhF,IAAgB,MAAZwW,EAAK,IAA0B,MAAZA,EAAK,IAA+B,kBAAVxW,GAAsB0X,EAAY5F,EAAO0E,EAAMxW,OAChG,IAAa,UAATwW,EAAkBmB,EAAYpZ,EAASgW,EAAKvU,OAChD,IAAIwW,IAAQjY,KAAYqZ,EAAYpB,QAAgBnb,KAAPwW,IAAqBgG,EAAgB/F,GAAQ,CAE9F,GAAkB,UAAdA,EAAM3J,KAA4B,UAATqO,GAAoB1E,EAAMxJ,IAAItI,OAASA,GAAS8R,EAAMxJ,MAAQ+J,EAAKyF,cAAe,MAE/G,IAAkB,WAAdhG,EAAM3J,KAA6B,UAATqO,GAAoB1E,EAAMxJ,IAAItI,OAASA,GAAS8R,EAAMxJ,MAAQ+J,EAAKyF,cAAe,MAEhH,IAAkB,WAAdhG,EAAM3J,KAA6B,UAATqO,GAAoB1E,EAAMxJ,IAAItI,OAASA,EAAO,MAE5E,IAAkB,UAAd8R,EAAM3J,KAA4B,SAATqO,EAE5B,WADAjY,GAAQkC,aAAa+V,EAAMxW,EAG5BzB,GAAQiY,GAAQxW,MAGK,iBAAVA,GACNA,EAAOzB,EAAQkC,aAAa+V,EAAM,IACjCjY,EAAQiC,gBAAgBgW,GAEzBjY,EAAQkC,aAAsB,cAAT+V,EAAuB,QAAUA,EAAMxW,IAGnE,QAASgU,GAAalC,GACrB,GAAI2B,GAAS3B,EAAMvJ,KACD,YAAduJ,EAAM3J,KAA8B,MAAVsL,IACzB,SAAWA,IAAQ2D,EAAQtF,EAAO,QAAS,KAAM2B,EAAOzT,UAAO3E,IAC/D,iBAAmBoY,IAAQ2D,EAAQtF,EAAO,gBAAiB,KAAM2B,EAAOsE,kBAAe1c,KAG7F,QAAS8a,GAAYrE,EAAOyC,EAAKd,EAAQ5B,GACxC,GAAc,MAAV4B,EACH,IAAK,GAAI+C,KAAQ/C,GAChB2D,EAAQtF,EAAO0E,EAAMjC,GAAOA,EAAIiC,GAAO/C,EAAO+C,GAAO3E,EAGvD,IAAW,MAAP0C,EACH,IAAK,GAAIiC,KAAQjC,GACF,MAAVd,GAAoB+C,IAAQ/C,KAClB,cAAT+C,IAAsBA,EAAO,SACjB,MAAZA,EAAK,IAA0B,MAAZA,EAAK,IAAec,EAAkBd,GAC3C,QAATA,GAAgB1E,EAAMxJ,IAAI9H,gBAAgBgW,GADiBkB,EAAY5F,EAAO0E,MAAMnb,KAMjG,QAASgc,GAAgBvF,EAAOkG,GAC/B,MAAgB,UAATA,GAA6B,YAATA,GAA+B,kBAATA,GAAqC,aAATA,GAAuBlG,EAAMxJ,MAAQ+J,EAAKyF,cAExH,QAASR,GAAkBU,GAC1B,MAAgB,WAATA,GAA8B,aAATA,GAAgC,aAATA,GAAgC,aAATA,GAAgC,mBAATA,GAAsC,mBAATA,EAE/H,QAASJ,GAAYI,GACpB,MAAgB,SAATA,GAA4B,SAATA,GAA4B,SAATA,GAA4B,UAATA,GAA6B,WAATA,EAErF,QAASH,GAAgB/F,GACxB,MAAOA,GAAMvJ,MAAMmL,IAAM5B,EAAM3J,IAAI+I,QAAQ,MAAQ,EAEpD,QAAS+F,GAAsBgB,GAC9B,MAAiB,OAAVA,IAAmBA,EAAOC,UAAYD,EAAOE,UAAYF,EAAOf,gBAAkBe,EAAOlB,UAGjG,QAASY,GAAYpZ,EAASgW,EAAKnW,GAElC,GADImW,IAAQnW,IAAOG,EAAQH,MAAMga,QAAU,GAAI7D,EAAM,MACxC,MAATnW,EAAeG,EAAQH,MAAMga,QAAU,OACtC,IAAqB,gBAAVha,GAAoBG,EAAQH,MAAMga,QAAUha,MACvD,CACe,gBAARmW,KAAkBhW,EAAQH,MAAMga,QAAU,GACrD,KAAK,GAAI5B,KAAQpY,GAChBG,EAAQH,MAAMoY,GAAQpY,EAAMoY,EAE7B,IAAW,MAAPjC,GAA8B,gBAARA,GACzB,IAAK,GAAIiC,KAAQjC,GACViC,IAAQpY,KAAQG,EAAQH,MAAMoY,GAAQ,KAMhD,QAASkB,GAAY5F,EAAO0E,EAAMxW,GACjC,GAAIzB,GAAUuT,EAAMxJ,IAChBwB,EAA8B,kBAAZwH,GAAyBtR,EAAQ,SAASzE,GAC/D,GAAI4b,GAASnX,EAAM3D,KAAKkC,EAAShD,EAEjC,OADA+V,GAAQjV,KAAKkC,EAAShD,GACf4b,EAER,IAAIX,IAAQjY,GAASA,EAAQiY,GAAyB,kBAAVxW,GAAuB8J,EAAW,SACzE,CACJ,GAAIuO,GAAY7B,EAAKxF,MAAM,EAE3B,QADqB3V,KAAjByW,EAAM/U,SAAsB+U,EAAM/U,WAClC+U,EAAM/U,OAAOyZ,KAAU1M,EAAU,MACX,OAAtBgI,EAAM/U,OAAOyZ,IAAejY,EAAQ+Z,oBAAoBD,EAAWvG,EAAM/U,OAAOyZ,IAAO,GACtE,kBAAVxW,KACV8R,EAAM/U,OAAOyZ,GAAQ1M,EACrBvL,EAAQG,iBAAiB2Z,EAAWvG,EAAM/U,OAAOyZ,IAAO,KAK3D,QAASvE,GAAcgG,EAAQnG,EAAOH,GACR,kBAAlBsG,GAAOM,QAAuBN,EAAOM,OAAOlc,KAAKyV,EAAM3K,MAAO2K,GAC1C,kBAApBmG,GAAOC,UAAyBvG,EAAMzN,KAAK+T,EAAOC,SAASjW,KAAK6P,EAAM3K,MAAO2K,IAEzF,QAAS6D,GAAgBsC,EAAQnG,EAAOH,GACR,kBAApBsG,GAAOE,UAAyBxG,EAAMzN,KAAK+T,EAAOE,SAASlW,KAAK6P,EAAM3K,MAAO2K,IAEzF,QAAS4D,GAAgB5D,EAAOyC,GAC/B,GAAIiE,GAAkBC,CAGtB,OAFmB,OAAf3G,EAAMvJ,OAAuD,kBAA/BuJ,GAAMvJ,MAAMmQ,iBAA+BF,EAAmB1G,EAAMvJ,MAAMmQ,eAAerc,KAAKyV,EAAM3K,MAAO2K,EAAOyC,IAC3H,gBAAdzC,GAAM3J,KAA2D,kBAAhC2J,GAAMrJ,OAAOiQ,iBAA+BD,EAAuB3G,EAAMrJ,OAAOiQ,eAAerc,KAAKyV,EAAM3K,MAAO2K,EAAOyC,UACzIlZ,KAArBmd,OAA2Dnd,KAAzBod,GAAwCD,GAAqBC,KACpG3G,EAAMxJ,IAAMiM,EAAIjM,IAChBwJ,EAAMtJ,QAAU+L,EAAI/L,QACpBsJ,EAAMpJ,SAAW6L,EAAI7L,UACd,GAIT,QAASiQ,GAAOrQ,EAAKmJ,GACpB,IAAKnJ,EAAK,KAAM,IAAIrM,OAAM,oFAC1B,IAAI0V,MACAiH,EAASvG,EAAKyF,aAEA,OAAdxP,EAAImJ,SAAgBnJ,EAAIyL,YAAc,IACrClV,MAAM0K,QAAQkI,KAASA,GAAUA,IACtC6C,EAAYhM,EAAKA,EAAImJ,OAAQvJ,EAAM0B,kBAAkB6H,IAAS,EAAOE,EAAO,SAAMtW,IAClFiN,EAAImJ,OAASA,CACb,KAAK,GAAI1V,GAAI,EAAGA,EAAI4V,EAAMrV,OAAQP,IAAK4V,EAAM5V,IACzCsW,GAAKyF,gBAAkBc,GAAQA,EAAOC,QAzkB3C,GAEIvH,GAFAe,EAAO3E,EAAQ7Q,SACfwX,EAAiBhC,EAAKmB,wBA0kB1B,QAAQmF,OAAQA,EAAQtH,iBAAkBA,IA2CvCyH,EArBM,SAASpL,GAMlB,QAASqL,GAAUC,EAAMlP,GACxBmP,EAAYD,GACZE,EAAUhV,KAAK8U,EAAMnP,EAASC,IAE/B,QAASmP,GAAYD,GACpB,GAAIG,GAAQD,EAAUhI,QAAQ8H,EAC1BG,IAAS,GAAGD,EAAUE,OAAOD,EAAO,GAEzC,QAAS/W,KACR,IAAK,GAAIrG,GAAI,EAAGA,EAAImd,EAAU5c,OAAQP,GAAK,EAC1Cmd,EAAUnd,KAfZ,GAAIsd,GAAgBjI,EAAa1D,EACjC2L,GAAchI,iBAAiB,SAAS9V,IACtB,IAAbA,EAAE6G,QAAkBA,KAEzB,IAAI8W,KAcJ,QAAQH,UAAWA,EAAWE,YAAaA,EAAa7W,OAAQA,EAAQuW,OAAQU,EAAcV,SAEvEjc,OACxB+Q,GAAeE,sBAAsBmL,EAAc1W,OAkBnD3F,GAAEW,MAjBQ,SAASkc,GAClB,MAAO,UAASC,EAAMC,GACrB,GAAkB,OAAdA,EAGH,MAFAF,GAAeX,OAAOY,UACtBD,GAAeL,YAAYM,EAI5B,IAAsB,MAAlBC,EAAUnX,MAAqC,kBAAdmX,GAA0B,KAAM,IAAIvd,OAAM,+DAE/E,IAAIwd,GAAO,WACVH,EAAeX,OAAOY,EAAMrR,EAAMsR,IAEnCF,GAAeP,UAAUQ,EAAME,GAC/BH,EAAelX,WAGH0W,EACd,IAAI9L,GAAUvC,EACViP,EAAmB,SAASC,GAC/B,GAAe,KAAXA,GAA2B,MAAVA,EAAgB,QACZ,OAArBA,EAAOC,OAAO,KAAYD,EAASA,EAAO3I,MAAM,GAEpD,KAAK,GADD6I,GAAUF,EAAOzT,MAAM,KAAM4T,KAAYC,KACpChe,EAAI,EAAGA,EAAI8d,EAAQvd,OAAQP,IAAK,CACxC,GAAIie,GAAQH,EAAQ9d,GAAGmK,MAAM,KACzB+T,EAAOxS,mBAAmBuS,EAAM,IAChCha,EAAyB,IAAjBga,EAAM1d,OAAemL,mBAAmBuS,EAAM,IAAM,EAClD,UAAVha,EAAkBA,GAAQ,EACX,UAAVA,IAAmBA,GAAQ,EACpC,IAAIka,GAASD,EAAK/T,MAAM,YACpBiU,EAASL,CACTG,GAAK/I,QAAQ,MAAQ,GAAGgJ,EAAOE,KACnC,KAAK,GAAIC,GAAI,EAAGA,EAAIH,EAAO5d,OAAQ+d,IAAK,CACvC,GAAIC,GAAQJ,EAAOG,GAAIE,EAAYL,EAAOG,EAAI,GAC1CG,EAAwB,IAAbD,IAAoBE,MAAMC,SAASH,EAAW,KACzDI,EAAUN,IAAMH,EAAO5d,OAAS,CACpC,IAAc,KAAVge,EAAc,CACjB,GAAIL,GAAOC,EAAOlJ,MAAM,EAAGqJ,GAAGvS,MACR,OAAlBiS,EAASE,KAAeF,EAASE,GAAQ,GAC7CK,EAAQP,EAASE,KAEG,MAAjBE,EAAOG,KACVH,EAAOG,GAASK,EAAU3a,EAAQwa,SAEnCL,EAASA,EAAOG,IAGlB,MAAOR,IAEJc,EAAa,SAASlN,GAGzB,QAASmN,GAAWC,GACnB,GAAIjZ,GAAO6L,EAAQ3L,SAAS+Y,GAAWxW,QAAQ,2BAA4BmD,mBAE3E,OADkB,aAAdqT,GAAwC,MAAZjZ,EAAK,KAAYA,EAAO,IAAMA,GACvDA,EAGR,QAASkZ,GAAcC,GACtB,MAAO,YACS,MAAXC,IACJA,EAAUC,EAAW,WACpBD,EAAU,KACVD,QAIH,QAASG,GAAUC,EAAMC,EAAWC,GACnC,GAAIC,GAAaH,EAAKlK,QAAQ,KAC1BsK,EAAYJ,EAAKlK,QAAQ,KACzBuK,EAAUF,GAAc,EAAIA,EAAaC,GAAa,EAAIA,EAAYJ,EAAK9e,MAC/E,IAAIif,GAAc,EAAG,CACpB,GAAIG,GAAWF,GAAa,EAAIA,EAAYJ,EAAK9e,OAC7Cqf,EAAcjC,EAAiB0B,EAAKpK,MAAMuK,EAAa,EAAGG,GAC9D,KAAK,GAAIE,KAAQD,GAAaN,EAAUO,GAAQD,EAAYC,GAE7D,GAAIJ,GAAa,EAAG,CACnB,GAAIK,GAAanC,EAAiB0B,EAAKpK,MAAMwK,EAAY,GACzD,KAAK,GAAII,KAAQC,GAAYP,EAASM,GAAQC,EAAWD,GAE1D,MAAOR,GAAKpK,MAAM,EAAGyK,GA9BtB,GAOIR,GAPAa,EAAyD,kBAA9BpO,GAAQhI,QAAQC,UAC3CuV,EAAqC,kBAAjBnP,cAA8BA,aAAenM,WA+BjEmc,GAAUC,OAAQ,KA6DtB,OA5DAD,GAAOE,QAAU,WAEhB,OADYF,EAAOC,OAAOpC,OAAO,IAEhC,IAAK,IAAK,MAAOiB,GAAW,QAAQ7J,MAAM+K,EAAOC,OAAO1f,OACxD,KAAK,IAAK,MAAOue,GAAW,UAAU7J,MAAM+K,EAAOC,OAAO1f,QAAUue,EAAW,OAC/E,SAAS,MAAOA,GAAW,YAAY7J,MAAM+K,EAAOC,OAAO1f,QAAUue,EAAW,UAAYA,EAAW,UAGzGkB,EAAOG,QAAU,SAASd,EAAMvZ,EAAMsa,GACrC,GAAId,MAAgBC,IAEpB,IADAF,EAAOD,EAAUC,EAAMC,EAAWC,GACtB,MAARzZ,EAAc,CACjB,IAAK,GAAI+Z,KAAQ/Z,GAAMwZ,EAAUO,GAAQ/Z,EAAK+Z,EAC9CR,GAAOA,EAAK9W,QAAQ,aAAc,SAAS8X,EAAQC,GAElD,aADOhB,GAAUgB,GACVxa,EAAKwa,KAGd,GAAI/U,GAAQ2F,EAAiBoO,EACzB/T,KAAO8T,GAAQ,IAAM9T,EACzB,IAAIgV,GAAOrP,EAAiBqO,EAE5B,IADIgB,IAAMlB,GAAQ,IAAMkB,GACpBR,EAAmB,CACtB,GAAI3U,GAAQgV,EAAUA,EAAQhV,MAAQ,KAClCvB,EAAQuW,EAAUA,EAAQvW,MAAQ,IACtC8H,GAAQ6O,aACJJ,GAAWA,EAAQ7X,QAASoJ,EAAQhI,QAAQwB,aAAaC,EAAOvB,EAAOmW,EAAOC,OAASZ,GACtF1N,EAAQhI,QAAQC,UAAUwB,EAAOvB,EAAOmW,EAAOC,OAASZ,OAEzD1N,GAAQ3L,SAAS0D,KAAOsW,EAAOC,OAASZ,GAE9CW,EAAOS,aAAe,SAASC,EAAQlQ,EAASC,GAC/C,QAASkQ,KACR,GAAItB,GAAOW,EAAOE,UACdU,KACAC,EAAWzB,EAAUC,EAAMuB,EAAQA,GACnCxV,EAAQuG,EAAQhI,QAAQyB,KAC5B,IAAa,MAATA,EACH,IAAK,GAAI0V,KAAK1V,GAAOwV,EAAOE,GAAK1V,EAAM0V,EAExC,KAAK,GAAIC,KAAUL,GAAQ,CAC1B,GAAIM,GAAU,GAAIvP,QAAO,IAAMsP,EAAOxY,QAAQ,iBAAkB,SAASA,QAAQ,WAAY,aAAe,MAC5G,IAAIyY,EAAQnN,KAAKgN,GAShB,WARAA,GAAStY,QAAQyY,EAAS,WAGzB,IAAK,GAFDC,GAAOF,EAAOzW,MAAM,gBACpBwG,KAAYmE,MAAM3U,KAAKkD,UAAW,GAAI,GACjCxD,EAAI,EAAGA,EAAIihB,EAAK1gB,OAAQP,IAChC4gB,EAAOK,EAAKjhB,GAAGuI,QAAQ,QAAS,KAAOmD,mBAAmBoF,EAAO9Q,GAElEwQ,GAAQkQ,EAAOK,GAASH,EAAQvB,EAAM0B,KAKzCtQ,EAAO4O,EAAMuB,GAEVb,EAAmBpO,EAAQ6O,WAAaxB,EAAc2B,GACrB,MAA5BX,EAAOC,OAAOpC,OAAO,KAAYlM,EAAQuP,aAAeP,GACjEA,KAEMX,EA2DRtf,GAAEygB,MAzDQ,SAASxP,EAAS4L,GAC3B,GAEI6D,GAAS3D,EAAW4D,EAAQC,EAAaC,EAFzCC,EAAe3C,EAAWlN,GAC1B8P,EAAW,SAASrI,GAAI,MAAOA,IAE/B+H,EAAQ,SAAS3D,EAAMkE,EAAchB,GACxC,GAAY,MAARlD,EAAc,KAAM,IAAItd,OAAM,uEAClC,IAAIyhB,GAAO,WACK,MAAXP,GAAiB7D,EAAeX,OAAOY,EAAM4D,EAAQjV,EAAMsR,EAAW4D,EAAOrV,IAAKqV,MAEnFO,EAAO,SAASvC,GACnB,GAAIA,IAASqC,EACR,KAAM,IAAIxhB,OAAM,mCAAqCwhB,EAD/BF,GAAarB,QAAQuB,EAAc,MAAOnZ,SAAS,IAG/EiZ,GAAaf,aAAaC,EAAQ,SAASmB,EAASjB,EAAQvB,GAC3D,GAAIyC,GAASP,EAAa,SAASQ,EAAeC,GAC7CF,IAAWP,IACf9D,EAAoB,MAARuE,GAAsC,kBAAdA,GAAK1b,MAAuC,kBAAT0b,GAA6B,MAAPA,EAC7FX,EAAST,EAAQU,EAAcjC,EAAMkC,EAAa,KAClDH,GAAWW,EAAcnF,QAAU6E,GAAUvb,KAAK6b,GAClDJ,KAEGE,GAAQvb,MAA2B,kBAAZub,GAAwBC,KAAWD,GAEzDA,EAAQI,QACXhR,EAAQT,QAAQqR,EAAQI,QAAQrB,EAAQvB,IAAOtQ,KAAK,SAASmT,GAC5DJ,EAAOD,EAASK,IACdN,GAECE,EAAOD,EAAS,QAEpBD,GACHrE,EAAeP,UAAUQ,EAAMmE,GAwBhC,OAtBAR,GAAMgB,IAAM,SAAS9C,EAAMvZ,EAAMsa,GACd,MAAdmB,IAAoBnB,GAAW7X,SAAS,IAC5CgZ,EAAa,KACbC,EAAarB,QAAQd,EAAMvZ,EAAMsa,IAElCe,EAAMtY,IAAM,WAAY,MAAOyY,IAC/BH,EAAMlB,OAAS,SAASmC,GAAUZ,EAAavB,OAASmC,GACxDjB,EAAMkB,KAAO,SAASC,GACrBA,EAAO/V,IAAI7H,aAAa,OAAQ8c,EAAavB,OAASqC,EAAO9V,MAAM9C,MACnE4Y,EAAO/V,IAAIgW,QAAU,SAAS/iB,GAC7B,KAAIA,EAAEgjB,SAAWhjB,EAAEijB,SAAWjjB,EAAEkjB,UAAwB,IAAZljB,EAAEmjB,OAA9C,CACAnjB,EAAEkG,iBACFlG,EAAE6G,QAAS,CACX,IAAIqD,GAAOpG,KAAKS,aAAa,OACa,KAAtC2F,EAAKyL,QAAQqM,EAAavB,UAAevW,EAAOA,EAAKuL,MAAMuM,EAAavB,OAAO1f,SACnF4gB,EAAMgB,IAAIzY,MAAMpK,OAAWA,OAG7B6hB,EAAMyB,MAAQ,SAASC,GACtB,WAAqB,KAAXxB,OAA0C,KAATwB,EAA6BxB,EAAOwB,GACxExB,GAEDF,GAEMxgB,OAAQoc,GACtBrc,EAAEoiB,SAAW,SAASC,EAAUC,EAAWniB,GAC1C,MAAO,UAASrB,GACfwjB,EAAU1iB,KAAKO,GAAWyC,KAAMyf,IAAYvjB,GAAEyjB,cAAgBzjB,EAAEyjB,cAAcF,GAAYvjB,EAAEyjB,cAAclf,aAAagf,KAGzH,IAAIG,GAAM7N,EAAa1U,OACvBD,GAAEkc,OAASsG,EAAItG,OACflc,EAAE2F,OAAS0W,EAAc1W,OACzB3F,EAAE0R,QAAUV,EAAeU,QAC3B1R,EAAEwT,MAAQxC,EAAewC,MACzBxT,EAAEid,iBAAmBA,EACrBjd,EAAEwQ,iBAAmBA,EACrBxQ,EAAEyiB,QAAU,QACZziB,EAAEqV,MAAQ5J,MACY,KAAX1L,EAAwBA,EAAgB,QAAIC,EAClDC,OAAOD,EAAIA,OAEbJ,KAAKgD,KAAuB,mBAAX4I,QAAyBA,OAAyB,mBAAToD,MAAuBA,KAAyB,mBAAX3O,QAAyBA,gBACrHyiB,GAAG,SAAS/jB,EAAQoB,EAAOJ,IAQ/B,SAAUA,GACR,YAQA,SAASO,MAcT,QAASyiB,GAAgBC,EAAWC,GAEhC,IADA,GAAIvjB,GAAIsjB,EAAU/iB,OACXP,KACH,GAAIsjB,EAAUtjB,GAAGujB,WAAaA,EAC1B,MAAOvjB,EAIf,QAAQ,EAUZ,QAASwjB,GAAMC,GACX,MAAO,YACH,MAAOngB,MAAKmgB,GAAM/f,MAAMJ,KAAME,YAsEtC,QAASkgB,GAAiBH,GACtB,MAAwB,kBAAbA,IAA2BA,YAAoB9R,YAE/C8R,GAAgC,gBAAbA,KACnBG,EAAgBH,EAASA,UAzGxC,GAAII,GAAQ/iB,EAAamC,UACrB6gB,EAAsBvjB,EAAQO,YA2ClC+iB,GAAME,aAAe,SAAsBC,GACvC,GACInQ,GACA3H,EAFAhL,EAASsC,KAAKygB,YAMlB,IAAID,YAAerS,QAAQ,CACvBkC,IACA,KAAK3H,IAAOhL,GACJA,EAAOwK,eAAeQ,IAAQ8X,EAAIjQ,KAAK7H,KACvC2H,EAAS3H,GAAOhL,EAAOgL,QAK/B2H,GAAW3S,EAAO8iB,KAAS9iB,EAAO8iB,MAGtC,OAAOnQ,IASXgQ,EAAMK,iBAAmB,SAA0BV,GAC/C,GACItjB,GADAikB,IAGJ,KAAKjkB,EAAI,EAAGA,EAAIsjB,EAAU/iB,OAAQP,GAAK,EACnCikB,EAAc9b,KAAKmb,EAAUtjB,GAAGujB,SAGpC,OAAOU,IASXN,EAAMO,qBAAuB,SAA8BJ,GACvD,GACInQ,GADA2P,EAAYhgB,KAAKugB,aAAaC,EAQlC,OALIR,aAAqBxgB,SACrB6Q,KACAA,EAASmQ,GAAOR,GAGb3P,GAAY2P,GAuBvBK,EAAMQ,YAAc,SAAqBL,EAAKP,GAC1C,IAAKG,EAAgBH,GACjB,KAAM,IAAIhU,WAAU,8BAGxB,IAEIvD,GAFAsX,EAAYhgB,KAAK4gB,qBAAqBJ,GACtCM,EAAwC,gBAAbb,EAG/B,KAAKvX,IAAOsX,GACJA,EAAU9X,eAAeQ,KAAuD,IAA/CqX,EAAgBC,EAAUtX,GAAMuX,IACjED,EAAUtX,GAAK7D,KAAKic,EAAoBb,GACpCA,SAAUA,EACVc,MAAM,GAKlB,OAAO/gB,OAMXqgB,EAAMlb,GAAK+a,EAAM,eAUjBG,EAAMW,gBAAkB,SAAyBR,EAAKP,GAClD,MAAOjgB,MAAK6gB,YAAYL,GACpBP,SAAUA,EACVc,MAAM,KAOdV,EAAMU,KAAOb,EAAM,mBASnBG,EAAMY,YAAc,SAAqBT,GAErC,MADAxgB,MAAKugB,aAAaC,GACXxgB,MASXqgB,EAAMa,aAAe,SAAsBC,GACvC,IAAK,GAAIzkB,GAAI,EAAGA,EAAIykB,EAAKlkB,OAAQP,GAAK,EAClCsD,KAAKihB,YAAYE,EAAKzkB,GAE1B,OAAOsD,OAWXqgB,EAAMe,eAAiB,SAAwBZ,EAAKP,GAChD,GACInG,GACApR,EAFAsX,EAAYhgB,KAAK4gB,qBAAqBJ,EAI1C,KAAK9X,IAAOsX,GACJA,EAAU9X,eAAeQ,KAGV,KAFfoR,EAAQiG,EAAgBC,EAAUtX,GAAMuX,KAGpCD,EAAUtX,GAAKqR,OAAOD,EAAO,EAKzC,OAAO9Z,OAMXqgB,EAAMgB,IAAMnB,EAAM,kBAYlBG,EAAMiB,aAAe,SAAsBd,EAAKR,GAE5C,MAAOhgB,MAAKuhB,qBAAoB,EAAOf,EAAKR,IAahDK,EAAMmB,gBAAkB,SAAyBhB,EAAKR,GAElD,MAAOhgB,MAAKuhB,qBAAoB,EAAMf,EAAKR,IAe/CK,EAAMkB,oBAAsB,SAA6BE,EAAQjB,EAAKR,GAClE,GAAItjB,GACAiE,EACA+gB,EAASD,EAASzhB,KAAKohB,eAAiBphB,KAAK6gB,YAC7Cc,EAAWF,EAASzhB,KAAKwhB,gBAAkBxhB,KAAKshB,YAGpD,IAAmB,gBAARd,IAAsBA,YAAerS,QAmB5C,IADAzR,EAAIsjB,EAAU/iB,OACPP,KACHglB,EAAO1kB,KAAKgD,KAAMwgB,EAAKR,EAAUtjB,QAnBrC,KAAKA,IAAK8jB,GACFA,EAAItY,eAAexL,KAAOiE,EAAQ6f,EAAI9jB,MAEjB,kBAAViE,GACP+gB,EAAO1kB,KAAKgD,KAAMtD,EAAGiE,GAIrBghB,EAAS3kB,KAAKgD,KAAMtD,EAAGiE,GAevC,OAAOX,OAYXqgB,EAAMuB,YAAc,SAAqBpB,GACrC,GAEI9X,GAFAvF,QAAcqd,GACd9iB,EAASsC,KAAKygB,YAIlB,IAAa,WAATtd,QAEOzF,GAAO8iB,OAEb,IAAIA,YAAerS,QAEpB,IAAKzF,IAAOhL,GACJA,EAAOwK,eAAeQ,IAAQ8X,EAAIjQ,KAAK7H,UAChChL,GAAOgL,cAMf1I,MAAK6hB,OAGhB,OAAO7hB,OAQXqgB,EAAMyB,mBAAqB5B,EAAM,eAcjCG,EAAM0B,UAAY,SAAmBvB,EAAKvgB,GACtC,GACI+f,GACAC,EACAvjB,EACAgM,EAJAsZ,EAAehiB,KAAK4gB,qBAAqBJ,EAO7C,KAAK9X,IAAOsZ,GACR,GAAIA,EAAa9Z,eAAeQ,GAG5B,IAFAsX,EAAYgC,EAAatZ,GAAKiJ,MAAM;uDAE/BjV,EAAI,EAAGA,EAAIsjB,EAAU/iB,OAAQP,IAG9BujB,EAAWD,EAAUtjB,IAEC,IAAlBujB,EAASc,MACT/gB,KAAKohB,eAAeZ,EAAKP,EAASA,UAG3BA,EAASA,SAAS7f,MAAMJ,KAAMC,SAExBD,KAAKiiB,uBAClBjiB,KAAKohB,eAAeZ,EAAKP,EAASA,SAMlD,OAAOjgB,OAMXqgB,EAAMvb,QAAUob,EAAM,aAUtBG,EAAM6B,KAAO,SAAc1B,GACvB,GAAIvgB,GAAOT,MAAMC,UAAUkS,MAAM3U,KAAKkD,UAAW,EACjD,OAAOF,MAAK+hB,UAAUvB,EAAKvgB,IAW/BogB,EAAM8B,mBAAqB,SAA4BxhB,GAEnD,MADAX,MAAKoiB,iBAAmBzhB,EACjBX,MAWXqgB,EAAM4B,oBAAsB,WACxB,OAAIjiB,KAAKkI,eAAe,qBACblI,KAAKoiB,kBAapB/B,EAAMI,WAAa,WACf,MAAOzgB,MAAK6hB,UAAY7hB,KAAK6hB,aAQjCvkB,EAAa+kB,WAAa,WAEtB,MADAtlB,GAAQO,aAAegjB,EAChBhjB,GAIW,kBAAXrB,IAAyBA,EAAOqmB,IACvCrmB,EAAO,WACH,MAAOqB,KAGY,gBAAXH,IAAuBA,EAAOJ,QAC1CI,EAAOJ,QAAUO,EAGjBP,EAAQO,aAAeA,GAE7B0C,oBAES","file":"admin.min.js","sourcesContent":["(function () { var require = undefined; var define = undefined; (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\n// dependencies\n\nvar m = window.m = require('mithril');\nvar EventEmitter = require('wolfy87-eventemitter');\n\n// vars\nvar context = document.getElementById('mc4wp-admin');\nvar events = new EventEmitter();\nvar tabs = require('./admin/tabs.js')(context);\nvar helpers = require('./admin/helpers.js');\nvar settings = require('./admin/settings.js')(context, helpers, events);\n\n// list fetcher\nvar ListFetcher = require('./admin/list-fetcher.js');\nvar mount = document.getElementById('mc4wp-list-fetcher');\nif (mount) {\n m.mount(mount, new ListFetcher());\n}\n\n// expose some things\nwindow.mc4wp = window.mc4wp || {};\nwindow.mc4wp.deps = window.mc4wp.deps || {};\nwindow.mc4wp.deps.mithril = m;\nwindow.mc4wp.helpers = helpers;\nwindow.mc4wp.events = events;\nwindow.mc4wp.settings = settings;\nwindow.mc4wp.tabs = tabs;\n\n},{\"./admin/helpers.js\":2,\"./admin/list-fetcher.js\":3,\"./admin/settings.js\":4,\"./admin/tabs.js\":5,\"mithril\":7,\"wolfy87-eventemitter\":8}],2:[function(require,module,exports){\n'use strict';\n\nvar helpers = {};\n\nhelpers.toggleElement = function (selector) {\n\tvar elements = document.querySelectorAll(selector);\n\tfor (var i = 0; i < elements.length; i++) {\n\t\tvar show = elements[i].clientHeight <= 0;\n\t\telements[i].style.display = show ? '' : 'none';\n\t}\n};\n\nhelpers.bindEventToElement = function (element, event, handler) {\n\tif (element.addEventListener) {\n\t\telement.addEventListener(event, handler);\n\t} else if (element.attachEvent) {\n\t\telement.attachEvent('on' + event, handler);\n\t}\n};\n\nhelpers.bindEventToElements = function (elements, event, handler) {\n\tArray.prototype.forEach.call(elements, function (element) {\n\t\thelpers.bindEventToElement(element, event, handler);\n\t});\n};\n\n// polling\nhelpers.debounce = function (func, wait, immediate) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n\n/**\n * Showif.js\n */\n(function () {\n\tvar showIfElements = document.querySelectorAll('[data-showif]');\n\n\t// dependent elements\n\tArray.prototype.forEach.call(showIfElements, function (element) {\n\t\tvar config = JSON.parse(element.getAttribute('data-showif'));\n\t\tvar parentElements = document.querySelectorAll('[name=\"' + config.element + '\"]');\n\t\tvar inputs = element.querySelectorAll('input,select,textarea:not([readonly])');\n\t\tvar hide = config.hide === undefined || config.hide;\n\n\t\tfunction toggleElement() {\n\n\t\t\t// do nothing with unchecked radio inputs\n\t\t\tif (this.getAttribute('type') === \"radio\" && !this.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar value = this.getAttribute(\"type\") === \"checkbox\" ? this.checked : this.value;\n\t\t\tvar conditionMet = value == config.value;\n\n\t\t\tif (hide) {\n\t\t\t\telement.style.display = conditionMet ? '' : 'none';\n\t\t\t\telement.style.visibility = conditionMet ? '' : 'hidden';\n\t\t\t} else {\n\t\t\t\telement.style.opacity = conditionMet ? '' : '0.4';\n\t\t\t}\n\n\t\t\t// disable input fields to stop sending their values to server\n\t\t\tArray.prototype.forEach.call(inputs, function (inputElement) {\n\t\t\t\tconditionMet ? inputElement.removeAttribute('readonly') : inputElement.setAttribute('readonly', 'readonly');\n\t\t\t});\n\t\t}\n\n\t\t// find checked element and call toggleElement function\n\t\tArray.prototype.forEach.call(parentElements, function (parentElement) {\n\t\t\ttoggleElement.call(parentElement);\n\t\t});\n\n\t\t// bind on all changes\n\t\thelpers.bindEventToElements(parentElements, 'change', toggleElement);\n\t});\n})();\n\nmodule.exports = helpers;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nvar $ = window.jQuery;\nvar config = mc4wp_vars;\nvar i18n = config.i18n;\n\nfunction ListFetcher() {\n this.working = false;\n this.done = false;\n\n // start fetching right away when no lists but api key given\n if (config.mailchimp.api_connected && config.mailchimp.lists.length === 0) {\n this.fetch();\n }\n}\n\nListFetcher.prototype.fetch = function (e) {\n e && e.preventDefault();\n\n this.working = true;\n this.done = false;\n\n $.post(ajaxurl, {\n action: \"mc4wp_renew_mailchimp_lists\"\n }).done(function (data) {\n this.success = true;\n\n if (data) {\n window.setTimeout(function () {\n window.location.reload();\n }, 3000);\n }\n }.bind(this)).fail(function (data) {\n this.success = false;\n }.bind(this)).always(function (data) {\n this.working = false;\n this.done = true;\n\n m.redraw();\n }.bind(this));\n};\n\nListFetcher.prototype.view = function () {\n return m('form', {\n method: \"POST\",\n onsubmit: this.fetch.bind(this)\n }, [m('p', [m('input', {\n type: \"submit\",\n value: this.working ? i18n.fetching_mailchimp_lists : i18n.renew_mailchimp_lists,\n className: \"button\",\n disabled: !!this.working\n }), m.trust(' '), this.working ? [m('span.mc4wp-loader', \"Loading...\"), m.trust(' '), m('em.help', i18n.fetching_mailchimp_lists_can_take_a_while)] : '', this.done ? [this.success ? m('em.help.green', i18n.fetching_mailchimp_lists_done) : m('em.help.red', i18n.fetching_mailchimp_lists_error)] : ''])]);\n};\n\nmodule.exports = ListFetcher;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar Settings = function Settings(context, helpers, events) {\n\t'use strict';\n\n\t// vars\n\n\tvar form = context.querySelector('form');\n\tvar listInputs = context.querySelectorAll('.mc4wp-list-input');\n\tvar lists = mc4wp_vars.mailchimp.lists;\n\tvar selectedLists = [];\n\n\t// functions\n\tfunction getSelectedListsWhere(searchKey, searchValue) {\n\t\treturn selectedLists.filter(function (el) {\n\t\t\treturn el[searchKey] === searchValue;\n\t\t});\n\t}\n\n\tfunction getSelectedLists() {\n\t\treturn selectedLists;\n\t}\n\n\tfunction updateSelectedLists() {\n\t\tselectedLists = [];\n\n\t\tArray.prototype.forEach.call(listInputs, function (input) {\n\t\t\t// skip unchecked checkboxes\n\t\t\tif (typeof input.checked === \"boolean\" && !input.checked) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_typeof(lists[input.value]) === \"object\") {\n\t\t\t\tselectedLists.push(lists[input.value]);\n\t\t\t}\n\t\t});\n\n\t\tevents.trigger('selectedLists.change', [selectedLists]);\n\t\treturn selectedLists;\n\t}\n\n\tfunction toggleVisibleLists() {\n\t\tvar rows = document.querySelectorAll('.lists--only-selected > *');\n\t\tArray.prototype.forEach.call(rows, function (el) {\n\n\t\t\tvar listId = el.getAttribute('data-list-id');\n\t\t\tvar isSelected = getSelectedListsWhere('id', listId).length > 0;\n\n\t\t\tif (isSelected) {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class').replace('hidden', ''));\n\t\t\t} else {\n\t\t\t\tel.setAttribute('class', el.getAttribute('class') + \" hidden\");\n\t\t\t}\n\t\t});\n\t}\n\n\tevents.on('selectedLists.change', toggleVisibleLists);\n\thelpers.bindEventToElements(listInputs, 'change', updateSelectedLists);\n\n\tupdateSelectedLists();\n\n\treturn {\n\t\tgetSelectedLists: getSelectedLists\n\t};\n};\n\nmodule.exports = Settings;\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nvar URL = require('./url.js');\n\n// Tabs\nvar Tabs = function Tabs(context) {\n\n\t// TODO: last piece of jQuery... can we get rid of it?\n\tvar $ = window.jQuery;\n\n\tvar $context = $(context);\n\tvar $tabs = $context.find('.tab');\n\tvar $tabNavs = $context.find('.nav-tab');\n\tvar refererField = context.querySelector('input[name=\"_wp_http_referer\"]');\n\tvar tabs = [];\n\n\t$.each($tabs, function (i, t) {\n\t\tvar id = t.id.substring(4);\n\t\tvar title = $(t).find('h2').first().text();\n\n\t\ttabs.push({\n\t\t\tid: id,\n\t\t\ttitle: title,\n\t\t\telement: t,\n\t\t\tnav: context.querySelectorAll('.nav-tab-' + id),\n\t\t\topen: function open() {\n\t\t\t\treturn _open(id);\n\t\t\t}\n\t\t});\n\t});\n\n\tfunction get(id) {\n\n\t\tfor (var i = 0; i < tabs.length; i++) {\n\t\t\tif (tabs[i].id === id) {\n\t\t\t\treturn tabs[i];\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tfunction _open(tab, updateState) {\n\n\t\t// make sure we have a tab object\n\t\tif (typeof tab === \"string\") {\n\t\t\ttab = get(tab);\n\t\t}\n\n\t\tif (!tab) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// should we update state?\n\t\tif (updateState == undefined) {\n\t\t\tupdateState = true;\n\t\t}\n\n\t\t// hide all tabs & remove active class\n\t\t$tabs.removeClass('tab-active').css('display', 'none');\n\t\t$tabNavs.removeClass('nav-tab-active');\n\n\t\t// add `nav-tab-active` to this tab\n\t\tArray.prototype.forEach.call(tab.nav, function (nav) {\n\t\t\tnav.className += \" nav-tab-active\";\n\t\t\tnav.blur();\n\t\t});\n\n\t\t// show target tab\n\t\ttab.element.style.display = 'block';\n\t\ttab.element.className += \" tab-active\";\n\n\t\t// create new URL\n\t\tvar url = URL.setParameter(window.location.href, \"tab\", tab.id);\n\n\t\t// update hash\n\t\tif (history.pushState && updateState) {\n\t\t\thistory.pushState(tab.id, '', url);\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\n\t\t// update referer field\n\t\trefererField.value = url;\n\n\t\t// if thickbox is open, close it.\n\t\tif (typeof tb_remove === \"function\") {\n\t\t\ttb_remove();\n\t\t}\n\n\t\t// refresh editor after switching tabs\n\t\t// TODO: decouple this! law of demeter etc.\n\t\tif (tab.id === 'fields' && window.mc4wp && window.mc4wp.forms && window.mc4wp.forms.editor) {\n\t\t\tmc4wp.forms.editor.refresh();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction title(tab) {\n\t\tvar title = document.title.split('-');\n\t\tdocument.title = document.title.replace(title[0], tab.title + \" \");\n\t}\n\n\tfunction switchTab(e) {\n\t\te = e || window.event;\n\n\t\t// get from data attribute\n\t\tvar tabId = this.getAttribute('data-tab');\n\n\t\t// get from classname\n\t\tif (!tabId) {\n\t\t\tvar match = this.className.match(/nav-tab-(\\w+)?/);\n\t\t\tif (match) {\n\t\t\t\ttabId = match[1];\n\t\t\t}\n\t\t}\n\n\t\t// get from href\n\t\tif (!tabId) {\n\t\t\tvar urlParams = URL.parse(this.href);\n\t\t\tif (!urlParams.tab) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttabId = urlParams.tab;\n\t\t}\n\n\t\tvar opened = _open(tabId);\n\n\t\tif (opened) {\n\t\t\te.preventDefault();\n\t\t\te.returnValue = false;\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction init() {\n\n\t\t// check for current tab\n\t\tif (!history.pushState) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar activeTab = $tabs.filter(':visible').get(0);\n\t\tif (!activeTab) {\n\t\t\treturn;\n\t\t}\n\t\tvar tab = get(activeTab.id.substring(4));\n\t\tif (!tab) return;\n\n\t\t// check if tab is in html5 history\n\t\tif (history.replaceState && history.state === null) {\n\t\t\thistory.replaceState(tab.id, '');\n\t\t}\n\n\t\t// update document title\n\t\ttitle(tab);\n\t}\n\n\t$tabNavs.click(switchTab);\n\t$(document.body).on('click', '.tab-link', switchTab);\n\tinit();\n\n\tif (window.addEventListener && history.pushState) {\n\t\twindow.addEventListener('popstate', function (e) {\n\t\t\tif (!e.state) return true;\n\t\t\tvar tabId = e.state;\n\t\t\treturn _open(tabId, false);\n\t\t});\n\t}\n\n\treturn {\n\t\topen: _open,\n\t\tget: get\n\t};\n};\n\nmodule.exports = Tabs;\n\n},{\"./url.js\":6}],6:[function(require,module,exports){\n'use strict';\n\nvar URL = {\n\tparse: function parse(url) {\n\t\tvar query = {};\n\t\tvar a = url.split('&');\n\t\tfor (var i in a) {\n\t\t\tif (!a.hasOwnProperty(i)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar b = a[i].split('=');\n\t\t\tquery[decodeURIComponent(b[0])] = decodeURIComponent(b[1]);\n\t\t}\n\n\t\treturn query;\n\t},\n\tbuild: function build(data) {\n\t\tvar ret = [];\n\t\tfor (var d in data) {\n\t\t\tret.push(d + \"=\" + encodeURIComponent(data[d]));\n\t\t}return ret.join(\"&\");\n\t},\n\tsetParameter: function setParameter(url, key, value) {\n\t\tvar data = URL.parse(url);\n\t\tdata[key] = value;\n\t\treturn URL.build(data);\n\t}\n};\n\nmodule.exports = URL;\n\n},{}],7:[function(require,module,exports){\n(function (global){\n;(function() {\n\"use strict\"\nfunction Vnode(tag, key, attrs0, children, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: undefined, _state: undefined, events: undefined, instance: undefined, skip: false}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node != null && typeof node !== \"object\") return Vnode(\"#\", undefined, undefined, node === false ? \"\" : node, undefined, undefined)\n\treturn node\n}\nVnode.normalizeChildren = function normalizeChildren(children) {\n\tfor (var i = 0; i < children.length; i++) {\n\t\tchildren[i] = Vnode.normalize(children[i])\n\t}\n\treturn children\n}\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\nfunction execSelector(state, attrs, children) {\n\tvar hasAttrs = false, childList, text\n\tvar className = attrs.className || attrs.class\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key)) {\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className !== undefined) {\n\t\tif (attrs.class !== undefined) {\n\t\t\tattrs.class = undefined\n\t\t\tattrs.className = className\n\t\t}\n\t\tif (state.attrs.className != null) {\n\t\t\tattrs.className = state.attrs.className + \" \" + className\n\t\t}\n\t}\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\thasAttrs = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\ttext = children[0].children\n\t} else {\n\t\tchildList = children\n\t}\n\treturn Vnode(state.tag, attrs.key, hasAttrs ? attrs : undefined, childList, text)\n}\nfunction hyperscript(selector) {\n\t// Because sloppy mode sucks\n\tvar attrs = arguments[1], start = 2, children\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\tif (typeof selector === \"string\") {\n\t\tvar cached = selectorCache[selector] || compileSelector(selector)\n\t}\n\tif (attrs == null) {\n\t\tattrs = {}\n\t} else if (typeof attrs !== \"object\" || attrs.tag != null || Array.isArray(attrs)) {\n\t\tattrs = {}\n\t\tstart = 1\n\t}\n\tif (arguments.length === start + 1) {\n\t\tchildren = arguments[start]\n\t\tif (!Array.isArray(children)) children = [children]\n\t} else {\n\t\tchildren = []\n\t\twhile (start < arguments.length) children.push(arguments[start++])\n\t}\n\tvar normalized = Vnode.normalizeChildren(children)\n\tif (typeof selector === \"string\") {\n\t\treturn execSelector(cached, attrs, normalized)\n\t} else {\n\t\treturn Vnode(selector, attrs.key, attrs, normalized)\n\t}\n}\nhyperscript.trust = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\nhyperscript.fragment = function(attrs1, children) {\n\treturn Vnode(\"[\", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined)\n}\nvar m = hyperscript\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") window.Promise = PromisePolyfill\n\tvar PromisePolyfill = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") global.Promise = PromisePolyfill\n\tvar PromisePolyfill = global.Promise\n} else {\n}\nvar buildQueryString = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\tvar args = []\n\tfor (var key0 in object) {\n\t\tdestructure(key0, object[key0])\n\t}\n\treturn args.join(\"&\")\n\tfunction destructure(key0, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key0 + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key0) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\nvar FILE_PROTOCOL_REGEX = new RegExp(\"^file://\", \"i\")\nvar _8 = function($window, Promise) {\n\tvar callbackCount = 0\n\tvar oncompletion\n\tfunction setCompletionCallback(callback) {oncompletion = callback}\n\tfunction finalizer() {\n\t\tvar count = 0\n\t\tfunction complete() {if (--count === 0 && typeof oncompletion === \"function\") oncompletion()}\n\t\treturn function finalize(promise0) {\n\t\t\tvar then0 = promise0.then\n\t\t\tpromise0.then = function() {\n\t\t\t\tcount++\n\t\t\t\tvar next = then0.apply(promise0, arguments)\n\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\tcomplete()\n\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t})\n\t\t\t\treturn finalize(next)\n\t\t\t}\n\t\t\treturn promise0\n\t\t}\n\t}\n\tfunction normalize(args, extra) {\n\t\tif (typeof args === \"string\") {\n\t\t\tvar url = args\n\t\t\targs = extra || {}\n\t\t\tif (args.url == null) args.url = url\n\t\t}\n\t\treturn args\n\t}\n\tfunction request(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tif (args.method == null) args.method = \"GET\"\n\t\t\targs.method = args.method.toUpperCase()\n\t\t\tvar useBody = (args.method === \"GET\" || args.method === \"TRACE\") ? false : (typeof args.useBody === \"boolean\" ? args.useBody : true)\n\t\t\tif (typeof args.serialize !== \"function\") args.serialize = typeof FormData !== \"undefined\" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify\n\t\t\tif (typeof args.deserialize !== \"function\") args.deserialize = deserialize\n\t\t\tif (typeof args.extract !== \"function\") args.extract = extract\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\tif (useBody) args.data = args.serialize(args.data)\n\t\t\telse args.url = assemble(args.url, args.data)\n\t\t\tvar xhr = new $window.XMLHttpRequest(),\n\t\t\t\taborted = false,\n\t\t\t\t_abort = xhr.abort\n\t\t\txhr.abort = function abort() {\n\t\t\t\taborted = true\n\t\t\t\t_abort.call(xhr)\n\t\t\t}\n\t\t\txhr.open(args.method, args.url, typeof args.async === \"boolean\" ? args.async : true, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\t\t\tif (args.serialize === JSON.stringify && useBody) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (args.deserialize === deserialize) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tfor (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t}\n\t\t\tif (typeof args.config === \"function\") xhr = args.config(xhr, args) || xhr\n\t\t\txhr.onreadystatechange = function() {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif(aborted) return\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args))\n\t\t\t\t\t\tif ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || FILE_PROTOCOL_REGEX.test(args.url)) {\n\t\t\t\t\t\t\tresolve(cast(args.type, response))\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar error = new Error(xhr.responseText)\n\t\t\t\t\t\t\tfor (var key in response) error[key] = response[key]\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (useBody && (args.data != null)) xhr.send(args.data)\n\t\t\telse xhr.send()\n\t\t})\n\t\treturn args.background === true ? promise0 : finalize(promise0)\n\t}\n\tfunction jsonp(args, extra) {\n\t\tvar finalize = finalizer()\n\t\targs = normalize(args, extra)\n\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(cast(args.type, data))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tif (args.data == null) args.data = {}\n\t\t\targs.url = interpolate(args.url, args.data)\n\t\t\targs.data[args.callbackKey || \"callback\"] = callbackName\n\t\t\tscript.src = assemble(args.url, args.data)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t})\n\t\treturn args.background === true? promise0 : finalize(promise0)\n\t}\n\tfunction interpolate(url, data) {\n\t\tif (data == null) return url\n\t\tvar tokens = url.match(/:[^\\/]+/gi) || []\n\t\tfor (var i = 0; i < tokens.length; i++) {\n\t\t\tvar key = tokens[i].slice(1)\n\t\t\tif (data[key] != null) {\n\t\t\t\turl = url.replace(tokens[i], data[key])\n\t\t\t}\n\t\t}\n\t\treturn url\n\t}\n\tfunction assemble(url, data) {\n\t\tvar querystring = buildQueryString(data)\n\t\tif (querystring !== \"\") {\n\t\t\tvar prefix = url.indexOf(\"?\") < 0 ? \"?\" : \"&\"\n\t\t\turl += prefix + querystring\n\t\t}\n\t\treturn url\n\t}\n\tfunction deserialize(data) {\n\t\ttry {return data !== \"\" ? JSON.parse(data) : null}\n\t\tcatch (e) {throw new Error(data)}\n\t}\n\tfunction extract(xhr) {return xhr.responseText}\n\tfunction cast(type0, data) {\n\t\tif (typeof type0 === \"function\") {\n\t\t\tif (Array.isArray(data)) {\n\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\tdata[i] = new type0(data[i])\n\t\t\t\t}\n\t\t\t}\n\t\t\telse return new type0(data)\n\t\t}\n\t\treturn data\n\t}\n\treturn {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback}\n}\nvar requestService = _8(window, PromisePolyfill)\nvar coreRenderer = function($window) {\n\tvar $doc = $window.document\n\tvar $emptyFragment = $doc.createDocumentFragment()\n\tvar onevent\n\tfunction setEventCallback(callback) {return onevent = callback}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode.state = {}\n\t\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": return createText(parent, vnode, nextSibling)\n\t\t\t\tcase \"<\": return createHTML(parent, vnode, nextSibling)\n\t\t\t\tcase \"[\": return createFragment(parent, vnode, hooks, ns, nextSibling)\n\t\t\t\tdefault: return createElement(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse return createComponent(parent, vnode, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode, nextSibling) {\n\t\tvnode.dom = $doc.createTextNode(vnode.children)\n\t\tinsertNode(parent, vnode.dom, nextSibling)\n\t\treturn vnode.dom\n\t}\n\tfunction createHTML(parent, vnode, nextSibling) {\n\t\tvar match1 = vnode.children.match(/^\\s*?<(\\w+)/im) || []\n\t\tvar parent1 = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}[match1[1]] || \"div\"\n\t\tvar temp = $doc.createElement(parent1)\n\t\ttemp.innerHTML = vnode.children\n\t\tvnode.dom = temp.firstChild\n\t\tvnode.domSize = temp.childNodes.length\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createFragment(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode.children != null) {\n\t\t\tvar children = vnode.children\n\t\t\tcreateNodes(fragment, children, 0, children.length, hooks, null, ns)\n\t\t}\n\t\tvnode.dom = fragment.firstChild\n\t\tvnode.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t\treturn fragment\n\t}\n\tfunction createElement(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tswitch (vnode.tag) {\n\t\t\tcase \"svg\": ns = \"http://www.w3.org/2000/svg\"; break\n\t\t\tcase \"math\": ns = \"http://www.w3.org/1998/Math/MathML\"; break\n\t\t}\n\t\tvar attrs2 = vnode.attrs\n\t\tvar is = attrs2 && attrs2.is\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode.dom = element\n\t\tif (attrs2 != null) {\n\t\t\tsetAttrs(vnode, attrs2, ns)\n\t\t}\n\t\tinsertNode(parent, element, nextSibling)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse {\n\t\t\tif (vnode.text != null) {\n\t\t\t\tif (vnode.text !== \"\") element.textContent = vnode.text\n\t\t\t\telse vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode.children != null) {\n\t\t\t\tvar children = vnode.children\n\t\t\t\tcreateNodes(element, children, 0, children.length, hooks, null, ns)\n\t\t\t\tsetLateAttrs(vnode)\n\t\t\t}\n\t\t}\n\t\treturn element\n\t}\n\tfunction initComponent(vnode, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode.tag.view === \"function\") {\n\t\t\tvnode.state = Object.create(vnode.tag)\n\t\t\tsentinel = vnode.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode.state = void 0\n\t\t\tsentinel = vnode.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return $emptyFragment\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode.state = (vnode.tag.prototype != null && typeof vnode.tag.prototype.view === \"function\") ? new vnode.tag(vnode) : vnode.tag(vnode)\n\t\t}\n\t\tvnode._state = vnode.state\n\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\tinitLifecycle(vnode._state, vnode, hooks)\n\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tvar element = createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0\n\t\t\tinsertNode(parent, element, nextSibling)\n\t\t\treturn element\n\t\t}\n\t\telse {\n\t\t\tvnode.domSize = 0\n\t\t\treturn $emptyFragment\n\t\t}\n\t}\n\t//update\n\tfunction updateNodes(parent, old, vnodes, recycling, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, undefined)\n\t\telse if (vnodes == null) removeNodes(old, 0, old.length, vnodes)\n\t\telse {\n\t\t\tif (old.length === vnodes.length) {\n\t\t\t\tvar isUnkeyed = false\n\t\t\t\tfor (var i = 0; i < vnodes.length; i++) {\n\t\t\t\t\tif (vnodes[i] != null && old[i] != null) {\n\t\t\t\t\t\tisUnkeyed = vnodes[i].key == null && old[i].key == null\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isUnkeyed) {\n\t\t\t\t\tfor (var i = 0; i < old.length; i++) {\n\t\t\t\t\t\tif (old[i] === vnodes[i]) continue\n\t\t\t\t\t\telse if (old[i] == null && vnodes[i] != null) createNode(parent, vnodes[i], hooks, ns, getNextSibling(old, i + 1, nextSibling))\n\t\t\t\t\t\telse if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes)\n\t\t\t\t\t\telse updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), recycling, ns)\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\trecycling = recycling || isRecyclable(old, vnodes)\n\t\t\tif (recycling) {\n\t\t\t\tvar pool = old.pool\n\t\t\t\told = old.concat(old.pool)\n\t\t\t}\n\t\t\tvar oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldStart], v = vnodes[start]\n\t\t\t\tif (o === v && !recycling) oldStart++, start++\n\t\t\t\telse if (o == null) oldStart++\n\t\t\t\telse if (v == null) start++\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldStart >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\toldStart++, start++\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar o = old[oldEnd]\n\t\t\t\t\tif (o === v && !recycling) oldEnd--, start++\n\t\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\t\telse if (v == null) start++\n\t\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\t\tif (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling))\n\t\t\t\t\t\toldEnd--, start++\n\t\t\t\t\t}\n\t\t\t\t\telse break\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\tvar o = old[oldEnd], v = vnodes[end]\n\t\t\t\tif (o === v && !recycling) oldEnd--, end--\n\t\t\t\telse if (o == null) oldEnd--\n\t\t\t\telse if (v == null) end--\n\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\tvar shouldRecycle = (pool != null && oldEnd >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\tupdateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), shouldRecycle, ns)\n\t\t\t\t\tif (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t\tif (o.dom != null) nextSibling = o.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (!map) map = getKeyMap(old, oldEnd)\n\t\t\t\t\tif (v != null) {\n\t\t\t\t\t\tvar oldIndex = map[v.key]\n\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\tvar movable = old[oldIndex]\n\t\t\t\t\t\t\tvar shouldRecycle = (pool != null && oldIndex >= old.length - pool.length) || ((pool == null) && recycling)\n\t\t\t\t\t\t\tupdateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns)\n\t\t\t\t\t\t\tinsertNode(parent, toFragment(movable), nextSibling)\n\t\t\t\t\t\t\told[oldIndex].skip = true\n\t\t\t\t\t\t\tif (movable.dom != null) nextSibling = movable.dom\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar dom = createNode(parent, v, hooks, undefined, nextSibling)\n\t\t\t\t\t\t\tnextSibling = dom\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tend--\n\t\t\t\t}\n\t\t\t\tif (end < start) break\n\t\t\t}\n\t\t\tcreateNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\tremoveNodes(old, oldStart, oldEnd + 1, vnodes)\n\t\t}\n\t}\n\tfunction updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode.state = old.state\n\t\t\tvnode._state = old._state\n\t\t\tvnode.events = old.events\n\t\t\tif (!recycling && shouldNotUpdate(vnode, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode.attrs != null) {\n\t\t\t\t\tif (recycling) {\n\t\t\t\t\t\tvnode.state = {}\n\t\t\t\t\t\tinitLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t\t}\n\t\t\t\t\telse updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode, recycling, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(old, null)\n\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode) {\n\t\tif (old.children.toString() !== vnode.children.toString()) {\n\t\t\told.dom.nodeValue = vnode.children\n\t\t}\n\t\tvnode.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode, nextSibling) {\n\t\tif (old.children !== vnode.children) {\n\t\t\ttoFragment(old)\n\t\t\tcreateHTML(parent, vnode, nextSibling)\n\t\t}\n\t\telse vnode.dom = old.dom, vnode.domSize = old.domSize\n\t}\n\tfunction updateFragment(parent, old, vnode, recycling, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode.children, recycling, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children = vnode.children\n\t\tvnode.dom = null\n\t\tif (children != null) {\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode.dom == null) vnode.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode, recycling, hooks, ns) {\n\t\tvar element = vnode.dom = old.dom\n\t\tswitch (vnode.tag) {\n\t\t\tcase \"svg\": ns = \"http://www.w3.org/2000/svg\"; break\n\t\t\tcase \"math\": ns = \"http://www.w3.org/1998/Math/MathML\"; break\n\t\t}\n\t\tif (vnode.tag === \"textarea\") {\n\t\t\tif (vnode.attrs == null) vnode.attrs = {}\n\t\t\tif (vnode.text != null) {\n\t\t\t\tvnode.attrs.value = vnode.text //FIXME handle0 multiple children\n\t\t\t\tvnode.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode, old.attrs, vnode.attrs, ns)\n\t\tif (vnode.attrs != null && vnode.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode)\n\t\t}\n\t\telse if (old.text != null && vnode.text != null && vnode.text !== \"\") {\n\t\t\tif (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text\n\t\t}\n\t\telse {\n\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\tif (vnode.text != null) vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\tupdateNodes(element, old.children, vnode.children, recycling, hooks, null, ns)\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) {\n\t\tif (recycling) {\n\t\t\tinitComponent(vnode, hooks)\n\t\t} else {\n\t\t\tvnode.instance = Vnode.normalize(vnode._state.view.call(vnode.state, vnode))\n\t\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\t\tif (vnode.attrs != null) updateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tupdateLifecycle(vnode._state, vnode, hooks)\n\t\t}\n\t\tif (vnode.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(old.instance, null)\n\t\t\tvnode.dom = undefined\n\t\t\tvnode.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t}\n\t}\n\tfunction isRecyclable(old, vnodes) {\n\t\tif (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) {\n\t\t\tvar oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0\n\t\t\tvar poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0\n\t\t\tvar vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0\n\t\t\tif (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\tfunction getKeyMap(vnodes, end) {\n\t\tvar map = {}, i = 0\n\t\tfor (var i = 0; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tvar key2 = vnode.key\n\t\t\t\tif (key2 != null) map[key2] = i\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\tfunction toFragment(vnode) {\n\t\tvar count0 = vnode.domSize\n\t\tif (count0 != null || vnode.dom == null) {\n\t\t\tvar fragment = $doc.createDocumentFragment()\n\t\t\tif (count0 > 0) {\n\t\t\t\tvar dom = vnode.dom\n\t\t\t\twhile (--count0) fragment.appendChild(dom.nextSibling)\n\t\t\t\tfragment.insertBefore(dom, fragment.firstChild)\n\t\t\t}\n\t\t\treturn fragment\n\t\t}\n\t\telse return vnode.dom\n\t}\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\tfunction setContentEditable(vnode) {\n\t\tvar children = vnode.children\n\t\tif (children != null && children.length === 1 && children[0].tag === \"<\") {\n\t\t\tvar content = children[0].children\n\t\t\tif (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode.text != null || children != null && children.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t}\n\t//remove\n\tfunction removeNodes(vnodes, start, end, context) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tif (vnode.skip) vnode.skip = false\n\t\t\t\telse removeNode(vnode, context)\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNode(vnode, context) {\n\t\tvar expected = 1, called = 0\n\t\tif (vnode.attrs && typeof vnode.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode.attrs.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeremove === \"function\") {\n\t\t\tvar result = vnode._state.onbeforeremove.call(vnode.state, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tcontinuation()\n\t\tfunction continuation() {\n\t\t\tif (++called === expected) {\n\t\t\t\tonremove(vnode)\n\t\t\t\tif (vnode.dom) {\n\t\t\t\t\tvar count0 = vnode.domSize || 1\n\t\t\t\t\tif (count0 > 1) {\n\t\t\t\t\t\tvar dom = vnode.dom\n\t\t\t\t\t\twhile (--count0) {\n\t\t\t\t\t\t\tremoveNodeFromDOM(dom.nextSibling)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tremoveNodeFromDOM(vnode.dom)\n\t\t\t\t\tif (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === \"string\") { //TODO test custom elements\n\t\t\t\t\t\tif (!context.pool) context.pool = [vnode]\n\t\t\t\t\t\telse context.pool.push(vnode)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction removeNodeFromDOM(node) {\n\t\tvar parent = node.parentNode\n\t\tif (parent != null) parent.removeChild(node)\n\t}\n\tfunction onremove(vnode) {\n\t\tif (vnode.attrs && typeof vnode.attrs.onremove === \"function\") vnode.attrs.onremove.call(vnode.state, vnode)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onremove === \"function\") vnode._state.onremove.call(vnode.state, vnode)\n\t\tif (vnode.instance != null) onremove(vnode.instance)\n\t\telse {\n\t\t\tvar children = vnode.children\n\t\t\tif (Array.isArray(children)) {\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tvar child = children[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//attrs2\n\tfunction setAttrs(vnode, attrs2, ns) {\n\t\tfor (var key2 in attrs2) {\n\t\t\tsetAttr(vnode, key2, null, attrs2[key2], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode, key2, old, value, ns) {\n\t\tvar element = vnode.dom\n\t\tif (key2 === \"key\" || key2 === \"is\" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== \"object\" || typeof value === \"undefined\" || isLifecycleMethod(key2)) return\n\t\tvar nsLastIndex = key2.indexOf(\":\")\n\t\tif (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === \"xlink\") {\n\t\t\telement.setAttributeNS(\"http://www.w3.org/1999/xlink\", key2.slice(nsLastIndex + 1), value)\n\t\t}\n\t\telse if (key2[0] === \"o\" && key2[1] === \"n\" && typeof value === \"function\") updateEvent(vnode, key2, value)\n\t\telse if (key2 === \"style\") updateStyle(element, old, value)\n\t\telse if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) {\n\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\tif (vnode.tag === \"input\" && key2 === \"value\" && vnode.dom.value == value && vnode.dom === $doc.activeElement) return\n\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\tif (vnode.tag === \"select\" && key2 === \"value\" && vnode.dom.value == value && vnode.dom === $doc.activeElement) return\n\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\tif (vnode.tag === \"option\" && key2 === \"value\" && vnode.dom.value == value) return\n\t\t\t// If you assign an input type1 that is not supported by IE 11 with an assignment expression, an error0 will occur.\n\t\t\tif (vnode.tag === \"input\" && key2 === \"type\") {\n\t\t\t\telement.setAttribute(key2, value)\n\t\t\t\treturn\n\t\t\t}\n\t\t\telement[key2] = value\n\t\t}\n\t\telse {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) element.setAttribute(key2, \"\")\n\t\t\t\telse element.removeAttribute(key2)\n\t\t\t}\n\t\t\telse element.setAttribute(key2 === \"className\" ? \"class\" : key2, value)\n\t\t}\n\t}\n\tfunction setLateAttrs(vnode) {\n\t\tvar attrs2 = vnode.attrs\n\t\tif (vnode.tag === \"select\" && attrs2 != null) {\n\t\t\tif (\"value\" in attrs2) setAttr(vnode, \"value\", null, attrs2.value, undefined)\n\t\t\tif (\"selectedIndex\" in attrs2) setAttr(vnode, \"selectedIndex\", null, attrs2.selectedIndex, undefined)\n\t\t}\n\t}\n\tfunction updateAttrs(vnode, old, attrs2, ns) {\n\t\tif (attrs2 != null) {\n\t\t\tfor (var key2 in attrs2) {\n\t\t\t\tsetAttr(vnode, key2, old && old[key2], attrs2[key2], ns)\n\t\t\t}\n\t\t}\n\t\tif (old != null) {\n\t\t\tfor (var key2 in old) {\n\t\t\t\tif (attrs2 == null || !(key2 in attrs2)) {\n\t\t\t\t\tif (key2 === \"className\") key2 = \"class\"\n\t\t\t\t\tif (key2[0] === \"o\" && key2[1] === \"n\" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined)\n\t\t\t\t\telse if (key2 !== \"key\") vnode.dom.removeAttribute(key2)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode.dom === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction isAttribute(attr) {\n\t\treturn attr === \"href\" || attr === \"list\" || attr === \"form\" || attr === \"width\" || attr === \"height\"// || attr === \"type\"\n\t}\n\tfunction isCustomElement(vnode){\n\t\treturn vnode.attrs.is || vnode.tag.indexOf(\"-\") > -1\n\t}\n\tfunction hasIntegrationMethods(source) {\n\t\treturn source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove)\n\t}\n\t//style\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) element.style.cssText = \"\", old = null\n\t\tif (style == null) element.style.cssText = \"\"\n\t\telse if (typeof style === \"string\") element.style.cssText = style\n\t\telse {\n\t\t\tif (typeof old === \"string\") element.style.cssText = \"\"\n\t\t\tfor (var key2 in style) {\n\t\t\t\telement.style[key2] = style[key2]\n\t\t\t}\n\t\t\tif (old != null && typeof old !== \"string\") {\n\t\t\t\tfor (var key2 in old) {\n\t\t\t\t\tif (!(key2 in style)) element.style[key2] = \"\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//event\n\tfunction updateEvent(vnode, key2, value) {\n\t\tvar element = vnode.dom\n\t\tvar callback = typeof onevent !== \"function\" ? value : function(e) {\n\t\t\tvar result = value.call(element, e)\n\t\t\tonevent.call(element, e)\n\t\t\treturn result\n\t\t}\n\t\tif (key2 in element) element[key2] = typeof value === \"function\" ? callback : null\n\t\telse {\n\t\t\tvar eventName = key2.slice(2)\n\t\t\tif (vnode.events === undefined) vnode.events = {}\n\t\t\tif (vnode.events[key2] === callback) return\n\t\t\tif (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false)\n\t\t\tif (typeof value === \"function\") {\n\t\t\t\tvnode.events[key2] = callback\n\t\t\t\telement.addEventListener(eventName, vnode.events[key2], false)\n\t\t\t}\n\t\t}\n\t}\n\t//lifecycle\n\tfunction initLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.oninit === \"function\") source.oninit.call(vnode.state, vnode)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(source.oncreate.bind(vnode.state, vnode))\n\t}\n\tfunction updateLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(source.onupdate.bind(vnode.state, vnode))\n\t}\n\tfunction shouldNotUpdate(vnode, old) {\n\t\tvar forceVnodeUpdate, forceComponentUpdate\n\t\tif (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === \"function\") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode._state.onbeforeupdate === \"function\") forceComponentUpdate = vnode._state.onbeforeupdate.call(vnode.state, vnode, old)\n\t\tif (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t\tvnode.instance = old.instance\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\tfunction render(dom, vnodes) {\n\t\tif (!dom) throw new Error(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = $doc.activeElement\n\t\t// First time0 rendering into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\t\tif (!Array.isArray(vnodes)) vnodes = [vnodes]\n\t\tupdateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), false, hooks, null, undefined)\n\t\tdom.vnodes = vnodes\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t\tif ($doc.activeElement !== active) active.focus()\n\t}\n\treturn {render: render, setEventCallback: setEventCallback}\n}\nfunction throttle(callback) {\n\t//60fps translates to 16.6ms, round it down since setTimeout requires int\n\tvar time = 16\n\tvar last = 0, pending = null\n\tvar timeout = typeof requestAnimationFrame === \"function\" ? requestAnimationFrame : setTimeout\n\treturn function() {\n\t\tvar now = Date.now()\n\t\tif (last === 0 || now - last >= time) {\n\t\t\tlast = now\n\t\t\tcallback()\n\t\t}\n\t\telse if (pending === null) {\n\t\t\tpending = timeout(function() {\n\t\t\t\tpending = null\n\t\t\t\tcallback()\n\t\t\t\tlast = Date.now()\n\t\t\t}, time - (now - last))\n\t\t}\n\t}\n}\nvar _11 = function($window) {\n\tvar renderService = coreRenderer($window)\n\trenderService.setEventCallback(function(e) {\n\t\tif (e.redraw !== false) redraw()\n\t})\n\tvar callbacks = []\n\tfunction subscribe(key1, callback) {\n\t\tunsubscribe(key1)\n\t\tcallbacks.push(key1, throttle(callback))\n\t}\n\tfunction unsubscribe(key1) {\n\t\tvar index = callbacks.indexOf(key1)\n\t\tif (index > -1) callbacks.splice(index, 2)\n\t}\n\tfunction redraw() {\n\t\tfor (var i = 1; i < callbacks.length; i += 2) {\n\t\t\tcallbacks[i]()\n\t\t}\n\t}\n\treturn {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render}\n}\nvar redrawService = _11(window)\nrequestService.setCompletionCallback(redrawService.redraw)\nvar _16 = function(redrawService0) {\n\treturn function(root, component) {\n\t\tif (component === null) {\n\t\t\tredrawService0.render(root, [])\n\t\t\tredrawService0.unsubscribe(root)\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif (component.view == null && typeof component !== \"function\") throw new Error(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t\n\t\tvar run0 = function() {\n\t\t\tredrawService0.render(root, Vnode(component))\n\t\t}\n\t\tredrawService0.subscribe(root, run0)\n\t\tredrawService0.redraw()\n\t}\n}\nm.mount = _16(redrawService)\nvar Promise = PromisePolyfill\nvar parseQueryString = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\tvar entries = string.split(\"&\"), data0 = {}, counters = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key5 = decodeURIComponent(entry[0])\n\t\tvar value = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\t\tif (value === \"true\") value = true\n\t\telse if (value === \"false\") value = false\n\t\tvar levels = key5.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data0\n\t\tif (key5.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j = 0; j < levels.length; j++) {\n\t\t\tvar level = levels[j], nextLevel = levels[j + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tvar isValue = j === levels.length - 1\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key5 = levels.slice(0, j).join()\n\t\t\t\tif (counters[key5] == null) counters[key5] = 0\n\t\t\t\tlevel = counters[key5]++\n\t\t\t}\n\t\t\tif (cursor[level] == null) {\n\t\t\t\tcursor[level] = isValue ? value : isNumber ? [] : {}\n\t\t\t}\n\t\t\tcursor = cursor[level]\n\t\t}\n\t}\n\treturn data0\n}\nvar coreRouter = function($window) {\n\tvar supportsPushState = typeof $window.history.pushState === \"function\"\n\tvar callAsync0 = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction normalize1(fragment0) {\n\t\tvar data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\tif (fragment0 === \"pathname\" && data[0] !== \"/\") data = \"/\" + data\n\t\treturn data\n\t}\n\tvar asyncId\n\tfunction debounceAsync(callback0) {\n\t\treturn function() {\n\t\t\tif (asyncId != null) return\n\t\t\tasyncId = callAsync0(function() {\n\t\t\t\tasyncId = null\n\t\t\t\tcallback0()\n\t\t\t})\n\t\t}\n\t}\n\tfunction parsePath(path, queryData, hashData) {\n\t\tvar queryIndex = path.indexOf(\"?\")\n\t\tvar hashIndex = path.indexOf(\"#\")\n\t\tvar pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length\n\t\tif (queryIndex > -1) {\n\t\t\tvar queryEnd = hashIndex > -1 ? hashIndex : path.length\n\t\t\tvar queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd))\n\t\t\tfor (var key4 in queryParams) queryData[key4] = queryParams[key4]\n\t\t}\n\t\tif (hashIndex > -1) {\n\t\t\tvar hashParams = parseQueryString(path.slice(hashIndex + 1))\n\t\t\tfor (var key4 in hashParams) hashData[key4] = hashParams[key4]\n\t\t}\n\t\treturn path.slice(0, pathEnd)\n\t}\n\tvar router = {prefix: \"#!\"}\n\trouter.getPath = function() {\n\t\tvar type2 = router.prefix.charAt(0)\n\t\tswitch (type2) {\n\t\t\tcase \"#\": return normalize1(\"hash\").slice(router.prefix.length)\n\t\t\tcase \"?\": return normalize1(\"search\").slice(router.prefix.length) + normalize1(\"hash\")\n\t\t\tdefault: return normalize1(\"pathname\").slice(router.prefix.length) + normalize1(\"search\") + normalize1(\"hash\")\n\t\t}\n\t}\n\trouter.setPath = function(path, data, options) {\n\t\tvar queryData = {}, hashData = {}\n\t\tpath = parsePath(path, queryData, hashData)\n\t\tif (data != null) {\n\t\t\tfor (var key4 in data) queryData[key4] = data[key4]\n\t\t\tpath = path.replace(/:([^\\/]+)/g, function(match2, token) {\n\t\t\t\tdelete queryData[token]\n\t\t\t\treturn data[token]\n\t\t\t})\n\t\t}\n\t\tvar query = buildQueryString(queryData)\n\t\tif (query) path += \"?\" + query\n\t\tvar hash = buildQueryString(hashData)\n\t\tif (hash) path += \"#\" + hash\n\t\tif (supportsPushState) {\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\t$window.onpopstate()\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, router.prefix + path)\n\t\t\telse $window.history.pushState(state, title, router.prefix + path)\n\t\t}\n\t\telse $window.location.href = router.prefix + path\n\t}\n\trouter.defineRoutes = function(routes, resolve, reject) {\n\t\tfunction resolveRoute() {\n\t\t\tvar path = router.getPath()\n\t\t\tvar params = {}\n\t\t\tvar pathname = parsePath(path, params, params)\n\t\t\tvar state = $window.history.state\n\t\t\tif (state != null) {\n\t\t\t\tfor (var k in state) params[k] = state[k]\n\t\t\t}\n\t\t\tfor (var route0 in routes) {\n\t\t\t\tvar matcher = new RegExp(\"^\" + route0.replace(/:[^\\/]+?\\.{3}/g, \"(.*?)\").replace(/:[^\\/]+/g, \"([^\\\\/]+)\") + \"\\/?$\")\n\t\t\t\tif (matcher.test(pathname)) {\n\t\t\t\t\tpathname.replace(matcher, function() {\n\t\t\t\t\t\tvar keys = route0.match(/:[^\\/]+/g) || []\n\t\t\t\t\t\tvar values = [].slice.call(arguments, 1, -2)\n\t\t\t\t\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\t\t\t\t\tparams[keys[i].replace(/:|\\./g, \"\")] = decodeURIComponent(values[i])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(routes[route0], params, path, route0)\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\treject(path, params)\n\t\t}\n\t\tif (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute)\n\t\telse if (router.prefix.charAt(0) === \"#\") $window.onhashchange = resolveRoute\n\t\tresolveRoute()\n\t}\n\treturn router\n}\nvar _20 = function($window, redrawService0) {\n\tvar routeService = coreRouter($window)\n\tvar identity = function(v) {return v}\n\tvar render1, component, attrs3, currentPath, lastUpdate\n\tvar route = function(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\tvar run1 = function() {\n\t\t\tif (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3)))\n\t\t}\n\t\tvar bail = function(path) {\n\t\t\tif (path !== defaultRoute) routeService.setPath(defaultRoute, null, {replace: true})\n\t\t\telse throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t}\n\t\trouteService.defineRoutes(routes, function(payload, params, path) {\n\t\t\tvar update = lastUpdate = function(routeResolver, comp) {\n\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\tattrs3 = params, currentPath = path, lastUpdate = null\n\t\t\t\trender1 = (routeResolver.render || identity).bind(routeResolver)\n\t\t\t\trun1()\n\t\t\t}\n\t\t\tif (payload.view || typeof payload === \"function\") update({}, payload)\n\t\t\telse {\n\t\t\t\tif (payload.onmatch) {\n\t\t\t\t\tPromise.resolve(payload.onmatch(params, path)).then(function(resolved) {\n\t\t\t\t\t\tupdate(payload, resolved)\n\t\t\t\t\t}, bail)\n\t\t\t\t}\n\t\t\t\telse update(payload, \"div\")\n\t\t\t}\n\t\t}, bail)\n\t\tredrawService0.subscribe(root, run1)\n\t}\n\troute.set = function(path, data, options) {\n\t\tif (lastUpdate != null) options = {replace: true}\n\t\tlastUpdate = null\n\t\trouteService.setPath(path, data, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = function(prefix0) {routeService.prefix = prefix0}\n\troute.link = function(vnode1) {\n\t\tvnode1.dom.setAttribute(\"href\", routeService.prefix + vnode1.attrs.href)\n\t\tvnode1.dom.onclick = function(e) {\n\t\t\tif (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return\n\t\t\te.preventDefault()\n\t\t\te.redraw = false\n\t\t\tvar href = this.getAttribute(\"href\")\n\t\t\tif (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length)\n\t\t\troute.set(href, undefined, undefined)\n\t\t}\n\t}\n\troute.param = function(key3) {\n\t\tif(typeof attrs3 !== \"undefined\" && typeof key3 !== \"undefined\") return attrs3[key3]\n\t\treturn attrs3\n\t}\n\treturn route\n}\nm.route = _20(window, redrawService)\nm.withAttr = function(attrName, callback1, context) {\n\treturn function(e) {\n\t\tcallback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName))\n\t}\n}\nvar _28 = coreRenderer(window)\nm.render = _28.render\nm.redraw = redrawService.redraw\nm.request = requestService.request\nm.jsonp = requestService.jsonp\nm.parseQueryString = parseQueryString\nm.buildQueryString = buildQueryString\nm.version = \"1.1.1\"\nm.vnode = Vnode\nif (typeof module !== \"undefined\") module[\"exports\"] = m\nelse window.m = m\n}());\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],8:[function(require,module,exports){\n/*!\n * EventEmitter v5.1.0 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n\n},{}]},{},[1]);\n })();"]}
|
includes/admin/class-admin-ajax.php
CHANGED
@@ -28,7 +28,6 @@ class MC4WP_Admin_Ajax {
|
|
28 |
* Empty lists cache & fetch lists again.
|
29 |
*/
|
30 |
public function refresh_mailchimp_lists() {
|
31 |
-
|
32 |
if( ! $this->tools->is_user_authorized() ) {
|
33 |
wp_send_json(false);
|
34 |
}
|
28 |
* Empty lists cache & fetch lists again.
|
29 |
*/
|
30 |
public function refresh_mailchimp_lists() {
|
|
|
31 |
if( ! $this->tools->is_user_authorized() ) {
|
32 |
wp_send_json(false);
|
33 |
}
|
includes/admin/class-admin.php
CHANGED
@@ -297,7 +297,7 @@ class MC4WP_Admin {
|
|
297 |
array(
|
298 |
'mailchimp' => array(
|
299 |
'api_connected' => ! empty( $opts['api_key'] ),
|
300 |
-
'lists' => $this->mailchimp->
|
301 |
),
|
302 |
'countries' => MC4WP_Tools::get_countries(),
|
303 |
'i18n' => array(
|
@@ -305,7 +305,8 @@ class MC4WP_Admin {
|
|
305 |
'renew_mailchimp_lists' => __( 'Renew MailChimp lists', 'mailchimp-for-wp' ),
|
306 |
'fetching_mailchimp_lists' => __( 'Fetching MailChimp lists', 'mailchimp-for-wp' ),
|
307 |
'fetching_mailchimp_lists_done' => __( 'Done! MailChimp lists renewed.', 'mailchimp-for-wp' ),
|
308 |
-
|
|
|
309 |
)
|
310 |
)
|
311 |
);
|
@@ -421,7 +422,7 @@ class MC4WP_Admin {
|
|
421 |
}
|
422 |
}
|
423 |
|
424 |
-
$lists = $this->mailchimp->
|
425 |
$obfuscated_api_key = mc4wp_obfuscate_string( $opts['api_key'] );
|
426 |
require MC4WP_PLUGIN_DIR . 'includes/views/general-settings.php';
|
427 |
}
|
297 |
array(
|
298 |
'mailchimp' => array(
|
299 |
'api_connected' => ! empty( $opts['api_key'] ),
|
300 |
+
'lists' => $this->mailchimp->get_lists()
|
301 |
),
|
302 |
'countries' => MC4WP_Tools::get_countries(),
|
303 |
'i18n' => array(
|
305 |
'renew_mailchimp_lists' => __( 'Renew MailChimp lists', 'mailchimp-for-wp' ),
|
306 |
'fetching_mailchimp_lists' => __( 'Fetching MailChimp lists', 'mailchimp-for-wp' ),
|
307 |
'fetching_mailchimp_lists_done' => __( 'Done! MailChimp lists renewed.', 'mailchimp-for-wp' ),
|
308 |
+
'fetching_mailchimp_lists_can_take_a_while' => __( 'This can take a while if you have many MailChimp lists.', 'mailchimp-for-wp' ),
|
309 |
+
'fetching_mailchimp_lists_error' => __( 'Failed to renew your lists. An error occured.', 'mailchimp-for-wp' ),
|
310 |
)
|
311 |
)
|
312 |
);
|
422 |
}
|
423 |
}
|
424 |
|
425 |
+
$lists = $this->mailchimp->get_lists();
|
426 |
$obfuscated_api_key = mc4wp_obfuscate_string( $opts['api_key'] );
|
427 |
require MC4WP_PLUGIN_DIR . 'includes/views/general-settings.php';
|
428 |
}
|
includes/admin/class-ads.php
CHANGED
@@ -99,8 +99,10 @@ class MC4WP_Admin_Ads {
|
|
99 |
public function admin_sidebar() {
|
100 |
|
101 |
echo '<div class="mc4wp-box">';
|
102 |
-
|
103 |
-
|
|
|
|
|
104 |
echo '</div>';
|
105 |
|
106 |
?>
|
99 |
public function admin_sidebar() {
|
100 |
|
101 |
echo '<div class="mc4wp-box">';
|
102 |
+
echo '<div style="border: 5px dotted #cc4444; padding: 0 20px; background: white;">';
|
103 |
+
echo '<h3>MailChimp for WordPress Premium</h3>';
|
104 |
+
echo '<p>This plugin has a Premium add-on, unlocking several powerful features. <a href="https://mc4wp.com/features/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=upgrade-box">Have a look at its benefits</a>!</p>';
|
105 |
+
echo '</div>';
|
106 |
echo '</div>';
|
107 |
|
108 |
?>
|
includes/admin/class-remote-content-block.php
DELETED
@@ -1,135 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class MC4WP_Remote_Content_Block
|
5 |
-
*
|
6 |
-
* @package MailChimp for WordPress
|
7 |
-
* @author Danny van Kooten
|
8 |
-
* @ignore
|
9 |
-
*/
|
10 |
-
class MC4WP_Remote_Content_Block {
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @var string
|
14 |
-
*/
|
15 |
-
protected $content = '';
|
16 |
-
|
17 |
-
/**
|
18 |
-
* @var int
|
19 |
-
*/
|
20 |
-
protected $cache_time = 7200; // 2 hours
|
21 |
-
|
22 |
-
/**
|
23 |
-
* @var string
|
24 |
-
*/
|
25 |
-
protected $cache_key = '';
|
26 |
-
|
27 |
-
/**
|
28 |
-
* @var string
|
29 |
-
*/
|
30 |
-
protected $url = '';
|
31 |
-
|
32 |
-
/**
|
33 |
-
* @param string $url
|
34 |
-
* @param int $cache_time
|
35 |
-
* @param string $fallback_content
|
36 |
-
*/
|
37 |
-
public function __construct( $url, $cache_time = 86400, $fallback_content = '' ) {
|
38 |
-
$this->url = $url;
|
39 |
-
$this->cache_time = $cache_time;
|
40 |
-
$this->content = $fallback_content;
|
41 |
-
|
42 |
-
// don't let this transient key exceed 45 characters total
|
43 |
-
// use end of url as key because it's likely same domain is used
|
44 |
-
$this->cache_key = 'mc4wp_remote_content_' . substr( sanitize_key( $this->url ), -23 ); // 44 characters
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* @return bool
|
49 |
-
*/
|
50 |
-
public function fetch() {
|
51 |
-
|
52 |
-
// first, try transient cache
|
53 |
-
if( $this->fetch_from_cache() ) {
|
54 |
-
return true;
|
55 |
-
}
|
56 |
-
|
57 |
-
// no? try remote url
|
58 |
-
if( $this->fetch_from_remote() ) {
|
59 |
-
return true;
|
60 |
-
}
|
61 |
-
|
62 |
-
return false;
|
63 |
-
}
|
64 |
-
|
65 |
-
/**
|
66 |
-
* @return bool
|
67 |
-
*/
|
68 |
-
protected function fetch_from_cache() {
|
69 |
-
$content = get_transient( $this->cache_key );
|
70 |
-
|
71 |
-
if( ! is_string( $content ) ) {
|
72 |
-
return false;
|
73 |
-
}
|
74 |
-
|
75 |
-
$this->content = $content;
|
76 |
-
return true;
|
77 |
-
}
|
78 |
-
|
79 |
-
/**
|
80 |
-
* @return bool
|
81 |
-
*/
|
82 |
-
protected function fetch_from_remote() {
|
83 |
-
|
84 |
-
$args = array(
|
85 |
-
'timeout' => 5,
|
86 |
-
'user-agent' => ''
|
87 |
-
);
|
88 |
-
|
89 |
-
$response = wp_remote_get( $this->url, $args );
|
90 |
-
$response_code = (int) wp_remote_retrieve_response_code( $response );
|
91 |
-
if( $response_code !== 200 ) {
|
92 |
-
return false;
|
93 |
-
}
|
94 |
-
|
95 |
-
$content = wp_remote_retrieve_body( $response );
|
96 |
-
if( empty( $content ) ) {
|
97 |
-
return false;
|
98 |
-
}
|
99 |
-
|
100 |
-
$this->content = $content;
|
101 |
-
$this->cache( $content );
|
102 |
-
return true;
|
103 |
-
}
|
104 |
-
|
105 |
-
/**
|
106 |
-
* @return string
|
107 |
-
*/
|
108 |
-
public function __toString() {
|
109 |
-
$this->fetch();
|
110 |
-
return $this->content;
|
111 |
-
}
|
112 |
-
|
113 |
-
/**
|
114 |
-
* Output the content block
|
115 |
-
*/
|
116 |
-
public function output() {
|
117 |
-
echo $this;
|
118 |
-
}
|
119 |
-
|
120 |
-
/**
|
121 |
-
* Refresh content
|
122 |
-
*/
|
123 |
-
public function refresh() {
|
124 |
-
delete_transient( $this->cache_key );
|
125 |
-
}
|
126 |
-
|
127 |
-
/**
|
128 |
-
* Cache content for the given cache time
|
129 |
-
*
|
130 |
-
* @param string $content
|
131 |
-
*/
|
132 |
-
protected function cache( $content ) {
|
133 |
-
set_transient( $this->cache_key, $content, $this->cache_time );
|
134 |
-
}
|
135 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/admin/class-usage-tracking.php
CHANGED
@@ -155,8 +155,8 @@ class MC4WP_Usage_Tracking {
|
|
155 |
*/
|
156 |
protected function get_mailchimp_lists_count() {
|
157 |
$mailchimp = new MC4WP_MailChimp();
|
158 |
-
$
|
159 |
-
return count( $
|
160 |
}
|
161 |
|
162 |
|
155 |
*/
|
156 |
protected function get_mailchimp_lists_count() {
|
157 |
$mailchimp = new MC4WP_MailChimp();
|
158 |
+
$list_ids = $mailchimp->get_list_ids( false );
|
159 |
+
return count( $list_ids );
|
160 |
}
|
161 |
|
162 |
|
includes/admin/migrations/4.1.2-flush-list-cache.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) or exit;
|
4 |
+
|
5 |
+
if( function_exists( 'mc4wp_refresh_mailchimp_lists' ) ) {
|
6 |
+
mc4wp_refresh_mailchimp_lists();
|
7 |
+
}
|
8 |
+
|
9 |
+
delete_transient( 'mc4wp_mailchimp_lists_v3' );
|
10 |
+
delete_option( 'mc4wp_mailchimp_lists_v3_fallback' );
|
11 |
+
|
12 |
+
wp_schedule_event( strtotime('tomorrow 3 am'), 'daily', 'mc4wp_refresh_mailchimp_lists' );
|
13 |
+
|
includes/class-list-data-mapper.php
CHANGED
@@ -46,7 +46,7 @@ class MC4WP_List_Data_Mapper {
|
|
46 |
$map = array();
|
47 |
|
48 |
foreach( $this->list_ids as $list_id ) {
|
49 |
-
$list = $mailchimp->get_list( $list_id );
|
50 |
|
51 |
if( $list instanceof MC4WP_MailChimp_List ) {
|
52 |
$map[ $list_id ] = $this->map_list( $list );
|
46 |
$map = array();
|
47 |
|
48 |
foreach( $this->list_ids as $list_id ) {
|
49 |
+
$list = $mailchimp->get_list( $list_id, true );
|
50 |
|
51 |
if( $list instanceof MC4WP_MailChimp_List ) {
|
52 |
$map[ $list_id ] = $this->map_list( $list );
|
includes/class-mailchimp.php
CHANGED
@@ -156,55 +156,43 @@ class MC4WP_MailChimp {
|
|
156 |
* Empty the Lists cache
|
157 |
*/
|
158 |
public function empty_cache() {
|
159 |
-
|
|
|
|
|
160 |
delete_transient( 'mc4wp_list_counts' );
|
161 |
-
|
|
|
162 |
}
|
163 |
|
164 |
/**
|
165 |
* Get MailChimp lists from cache.
|
166 |
-
*
|
167 |
-
* @param boolean
|
168 |
* @return array
|
169 |
*/
|
170 |
-
public function get_cached_lists(
|
171 |
-
|
172 |
-
// then, get from option cache
|
173 |
-
$cached_lists = get_option( 'mc4wp_mailchimp_lists_v3_fallback' );
|
174 |
-
if( is_array( $cached_lists ) ) {
|
175 |
-
return $cached_lists;
|
176 |
-
}
|
177 |
-
|
178 |
-
return $force ? $this->fetch_lists() : array();
|
179 |
}
|
180 |
|
181 |
/**
|
182 |
* Get MailChimp lists, from cache or remote API.
|
183 |
*
|
184 |
-
*
|
185 |
-
*
|
186 |
-
* - Transient Cache (5 days)
|
187 |
-
* - Remote MailChimp API
|
188 |
-
* - Option Cache (forever)
|
189 |
-
*
|
190 |
* @return array
|
191 |
*/
|
192 |
-
public function get_lists() {
|
193 |
|
194 |
-
|
195 |
-
$
|
196 |
-
if( is_array( $lists ) ) {
|
197 |
-
return $lists;
|
198 |
-
}
|
199 |
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
|
|
205 |
|
206 |
-
|
207 |
-
return $this->get_cached_lists();
|
208 |
}
|
209 |
|
210 |
/**
|
@@ -213,102 +201,117 @@ class MC4WP_MailChimp {
|
|
213 |
* @return MC4WP_MailChimp_List
|
214 |
*/
|
215 |
private function fetch_list( $list_id ) {
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
// hydrate data into object
|
235 |
-
foreach( $field_data as $data ) {
|
236 |
-
$object = MC4WP_MailChimp_Merge_Field::from_data( $data );
|
237 |
-
$list->merge_fields[] = $object;
|
238 |
-
}
|
239 |
-
}
|
240 |
-
|
241 |
-
// get interest categories
|
242 |
-
$interest_categories_data = $this->api->get_list_interest_categories( $list->id, array( 'count' => 100, 'fields' => 'categories.id,categories.title,categories.type' ) );
|
243 |
-
foreach( $interest_categories_data as $interest_category_data ) {
|
244 |
-
$interest_category = MC4WP_MailChimp_Interest_Category::from_data( $interest_category_data );
|
245 |
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
}
|
251 |
|
252 |
-
|
253 |
-
|
|
|
|
|
|
|
254 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
255 |
return $list;
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
|
|
|
|
|
|
|
|
264 |
|
265 |
-
|
266 |
-
|
|
|
|
|
|
|
|
|
267 |
|
268 |
-
|
269 |
-
|
|
|
|
|
|
|
|
|
270 |
} catch( MC4WP_API_Exception $e ) {
|
271 |
return array();
|
272 |
}
|
273 |
|
274 |
-
|
275 |
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
try {
|
282 |
-
$lists["{$list_id}"] = $this->fetch_list( $list_id );
|
283 |
-
} catch( MC4WP_API_Exception $e ) {
|
284 |
-
continue;
|
285 |
-
}
|
286 |
-
}
|
287 |
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
|
|
|
|
|
|
|
|
|
|
293 |
|
294 |
-
|
|
|
|
|
|
|
295 |
}
|
296 |
|
297 |
/**
|
298 |
* Get a given MailChimp list
|
299 |
*
|
300 |
* @param string $list_id
|
301 |
-
*
|
302 |
* @return MC4WP_MailChimp_List
|
303 |
*/
|
304 |
-
public function get_list( $list_id ) {
|
305 |
-
$
|
|
|
|
|
|
|
|
|
306 |
|
307 |
-
if(
|
308 |
-
return
|
309 |
}
|
310 |
|
311 |
-
return
|
312 |
}
|
313 |
|
314 |
/**
|
156 |
* Empty the Lists cache
|
157 |
*/
|
158 |
public function empty_cache() {
|
159 |
+
global $wpdb;
|
160 |
+
$wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE 'mc4wp_mailchimp_list_%'");
|
161 |
+
|
162 |
delete_transient( 'mc4wp_list_counts' );
|
163 |
+
|
164 |
+
/* deprecated */
|
165 |
}
|
166 |
|
167 |
/**
|
168 |
* Get MailChimp lists from cache.
|
169 |
+
*
|
170 |
+
* @param boolean deprecated parameter.
|
171 |
* @return array
|
172 |
*/
|
173 |
+
public function get_cached_lists() {
|
174 |
+
return $this->get_lists( false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
* Get MailChimp lists, from cache or remote API.
|
179 |
*
|
180 |
+
* @param boolean $force Whether to force a result by hitting MailChimp API
|
|
|
|
|
|
|
|
|
|
|
181 |
* @return array
|
182 |
*/
|
183 |
+
public function get_lists( $force = true ) {
|
184 |
|
185 |
+
// first, get all list id's
|
186 |
+
$list_ids = $this->get_list_ids( $force );
|
|
|
|
|
|
|
187 |
|
188 |
+
// then, fill $lists array with individual list details
|
189 |
+
$lists = array();
|
190 |
+
foreach( $list_ids as $list_id ) {
|
191 |
+
$list = $this->get_list( $list_id, $force );
|
192 |
+
$lists["{$list_id}"] = $list;
|
193 |
+
}
|
194 |
|
195 |
+
return $lists;
|
|
|
196 |
}
|
197 |
|
198 |
/**
|
201 |
* @return MC4WP_MailChimp_List
|
202 |
*/
|
203 |
private function fetch_list( $list_id ) {
|
204 |
+
try{
|
205 |
+
$list_data = $this->api->get_list( $list_id, array( 'fields' => 'id,name,stats,web_id' ) );
|
206 |
+
|
207 |
+
// create local object
|
208 |
+
$list = new MC4WP_MailChimp_List( $list_data->id, $list_data->name );
|
209 |
+
$list->subscriber_count = $list_data->stats->member_count;
|
210 |
+
$list->web_id = $list_data->web_id;
|
211 |
+
|
212 |
+
// get merge fields (if any)
|
213 |
+
if( $list_data->stats->merge_field_count > 0 ) {
|
214 |
+
$field_data = $this->api->get_list_merge_fields( $list->id, array( 'count' => 100, 'fields' => 'merge_fields.name,merge_fields.tag,merge_fields.type,merge_fields.required,merge_fields.default_value,merge_fields.options,merge_fields.public' ) );
|
215 |
+
|
216 |
+
// hydrate data into object
|
217 |
+
foreach( $field_data as $data ) {
|
218 |
+
$object = MC4WP_MailChimp_Merge_Field::from_data( $data );
|
219 |
+
$list->merge_fields[] = $object;
|
220 |
+
}
|
221 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
|
223 |
+
// get interest categories
|
224 |
+
$interest_categories_data = $this->api->get_list_interest_categories( $list->id, array( 'count' => 100, 'fields' => 'categories.id,categories.title,categories.type' ) );
|
225 |
+
foreach( $interest_categories_data as $interest_category_data ) {
|
226 |
+
$interest_category = MC4WP_MailChimp_Interest_Category::from_data( $interest_category_data );
|
|
|
227 |
|
228 |
+
// fetch groups for this interest
|
229 |
+
$interests_data = $this->api->get_list_interest_category_interests( $list->id, $interest_category->id, array( 'count' => 100, 'fields' => 'interests.id,interests.name') );
|
230 |
+
foreach( $interests_data as $interest_data ) {
|
231 |
+
$interest_category->interests[ $interest_data->id ] = $interest_data->name;
|
232 |
+
}
|
233 |
|
234 |
+
$list->interest_categories[] = $interest_category;
|
235 |
+
}
|
236 |
+
} catch( MC4WP_API_Exception $e ) {
|
237 |
+
return null;
|
238 |
+
}
|
239 |
+
|
240 |
+
// save in option
|
241 |
+
update_option( 'mc4wp_mailchimp_list_' . $list_id, $list, false );
|
242 |
return $list;
|
243 |
+
}
|
|
|
|
|
244 |
|
245 |
+
/**
|
246 |
+
* Get MailChimp list ID's
|
247 |
+
*
|
248 |
+
* @param bool $force Force result by hitting MailChimp API
|
249 |
+
* @return array
|
250 |
+
*/
|
251 |
+
public function get_list_ids( $force = false ) {
|
252 |
+
$list_ids = (array) get_option( 'mc4wp_mailchimp_list_ids', array() );
|
253 |
|
254 |
+
if( empty( $list_ids ) && $force ) {
|
255 |
+
$list_ids = $this->fetch_list_ids();
|
256 |
+
}
|
257 |
+
|
258 |
+
return $list_ids;
|
259 |
+
}
|
260 |
|
261 |
+
/**
|
262 |
+
* @return array
|
263 |
+
*/
|
264 |
+
public function fetch_list_ids() {
|
265 |
+
try{
|
266 |
+
$lists_data = $this->api->get_lists( array( 'count' => 200, 'fields' => 'lists.id' ) );
|
267 |
} catch( MC4WP_API_Exception $e ) {
|
268 |
return array();
|
269 |
}
|
270 |
|
271 |
+
$list_ids = wp_list_pluck( $lists_data, 'id' );
|
272 |
|
273 |
+
// store list id's
|
274 |
+
update_option( 'mc4wp_mailchimp_list_ids', $list_ids, false );
|
275 |
+
|
276 |
+
return $list_ids;
|
277 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
|
279 |
+
/**
|
280 |
+
* Fetch list ID's + lists from MailChimp.
|
281 |
+
*/
|
282 |
+
public function fetch_lists() {
|
283 |
+
// try to increase time limit as this can take a while
|
284 |
+
@set_time_limit(300);
|
285 |
+
$list_ids = $this->fetch_list_ids();
|
286 |
+
|
287 |
+
// randomize array order
|
288 |
+
shuffle( $list_ids );
|
289 |
|
290 |
+
// fetch individual list details
|
291 |
+
foreach ( $list_ids as $list_id ) {
|
292 |
+
$list = $this->fetch_list( $list_id );
|
293 |
+
}
|
294 |
}
|
295 |
|
296 |
/**
|
297 |
* Get a given MailChimp list
|
298 |
*
|
299 |
* @param string $list_id
|
300 |
+
* @param bool $force Whether to force a result by hitting remote API
|
301 |
* @return MC4WP_MailChimp_List
|
302 |
*/
|
303 |
+
public function get_list( $list_id, $force = false ) {
|
304 |
+
$list = get_option( 'mc4wp_mailchimp_list_' . $list_id );
|
305 |
+
|
306 |
+
if( empty( $list ) && $force ) {
|
307 |
+
$list = $this->fetch_list( $list_id );
|
308 |
+
}
|
309 |
|
310 |
+
if( empty( $list ) ) {
|
311 |
+
return new MC4WP_MailChimp_List( '', 'Unknown List' );
|
312 |
}
|
313 |
|
314 |
+
return $list;
|
315 |
}
|
316 |
|
317 |
/**
|
includes/class-visitor-tracking.php
DELETED
@@ -1,100 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class MC4WP_Visitor_Tracking
|
5 |
-
*
|
6 |
-
* @ignore
|
7 |
-
* @access private
|
8 |
-
* @deprecated 3.1
|
9 |
-
*/
|
10 |
-
class MC4WP_Visitor_Tracking {
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @var array
|
14 |
-
*/
|
15 |
-
protected $data;
|
16 |
-
|
17 |
-
/**
|
18 |
-
* @const string
|
19 |
-
*/
|
20 |
-
const COOKIE_NAME = '_mc4wp';
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Add hooks
|
24 |
-
*
|
25 |
-
* @todo Hook into integration success as well
|
26 |
-
*/
|
27 |
-
public function add_hooks() {
|
28 |
-
add_action( 'mc4wp_form_subscribed', array( $this, 'on_form_success' ) );
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* @hooked `mc4wp_form_subscribed`
|
33 |
-
* @param MC4WP_Form $form
|
34 |
-
*/
|
35 |
-
public function on_form_success( MC4WP_Form $form ) {
|
36 |
-
$data = $form->get_data();
|
37 |
-
$this->save( $data );
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @param string $key
|
42 |
-
* @param null $default
|
43 |
-
* @return mixed
|
44 |
-
*/
|
45 |
-
public function get_field( $key, $default = null ) {
|
46 |
-
$data = $this->load();
|
47 |
-
|
48 |
-
if( isset( $data[ $key ] ) ) {
|
49 |
-
return $data[ $key ];
|
50 |
-
}
|
51 |
-
|
52 |
-
return $default;
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* @param array $data
|
57 |
-
*
|
58 |
-
* @todo Now, all previous is data is overwritten whenever this method is called.
|
59 |
-
*/
|
60 |
-
public function save( array $data ) {
|
61 |
-
$this->data = $data;
|
62 |
-
|
63 |
-
$timestamp = strtotime( '+90 days' );
|
64 |
-
|
65 |
-
/**
|
66 |
-
* Filters the total expiration time for the tracking cookie.
|
67 |
-
*
|
68 |
-
* Defaults to 90 days in the future.
|
69 |
-
*
|
70 |
-
* @since 3.0
|
71 |
-
* @param int $timestamp
|
72 |
-
* @ignore
|
73 |
-
*/
|
74 |
-
$expiration_time = apply_filters( 'mc4wp_cookie_expiration_time', $timestamp );
|
75 |
-
|
76 |
-
setcookie( self::COOKIE_NAME, json_encode( $data ), $expiration_time, '/' );
|
77 |
-
}
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Load stored data from cookie.
|
81 |
-
*/
|
82 |
-
public function load() {
|
83 |
-
|
84 |
-
if( empty( $this->data ) ) {
|
85 |
-
if( ! empty( $_COOKIE[ self::COOKIE_NAME ] ) ) {
|
86 |
-
$raw = stripslashes( $_COOKIE[ self::COOKIE_NAME ] );
|
87 |
-
$data = json_decode( $raw, true );
|
88 |
-
|
89 |
-
if( is_array( $data ) ) {
|
90 |
-
$this->data = mc4wp_sanitize_deep( $data );
|
91 |
-
}
|
92 |
-
|
93 |
-
}
|
94 |
-
}
|
95 |
-
|
96 |
-
return $this->data;
|
97 |
-
}
|
98 |
-
|
99 |
-
|
100 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/forms/class-form-listener.php
CHANGED
@@ -26,12 +26,14 @@ class MC4WP_Form_Listener {
|
|
26 |
*/
|
27 |
public function listen( MC4WP_Request $request ) {
|
28 |
|
29 |
-
|
|
|
30 |
return false;
|
31 |
}
|
32 |
|
|
|
33 |
try {
|
34 |
-
$form = mc4wp_get_form( $
|
35 |
} catch( Exception $e ) {
|
36 |
return false;
|
37 |
}
|
26 |
*/
|
27 |
public function listen( MC4WP_Request $request ) {
|
28 |
|
29 |
+
$form_id = $request->post->get( '_mc4wp_form_id' );
|
30 |
+
if( empty( $form_id ) ) {
|
31 |
return false;
|
32 |
}
|
33 |
|
34 |
+
// get form instance
|
35 |
try {
|
36 |
+
$form = mc4wp_get_form( $form_id );
|
37 |
} catch( Exception $e ) {
|
38 |
return false;
|
39 |
}
|
includes/forms/class-output-manager.php
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
<?php
|
2 |
|
|
|
3 |
/**
|
4 |
* Class MC4WP_Form_Output_Manager
|
5 |
*
|
1 |
<?php
|
2 |
|
3 |
+
|
4 |
/**
|
5 |
* Class MC4WP_Form_Output_Manager
|
6 |
*
|
includes/forms/functions.php
CHANGED
@@ -26,7 +26,7 @@ function mc4wp_get_form( $form_id = 0 ) {
|
|
26 |
function mc4wp_get_forms( array $args = array() ) {
|
27 |
$default_args = array(
|
28 |
'post_status' => 'publish',
|
29 |
-
'numberposts' => -1
|
30 |
);
|
31 |
$args = array_merge( $default_args, $args );
|
32 |
$args['post_type'] = 'mc4wp-form';
|
26 |
function mc4wp_get_forms( array $args = array() ) {
|
27 |
$default_args = array(
|
28 |
'post_status' => 'publish',
|
29 |
+
'numberposts' => -1,
|
30 |
);
|
31 |
$args = array_merge( $default_args, $args );
|
32 |
$args['post_type'] = 'mc4wp-form';
|
integrations/ninja-forms/class-action.php
CHANGED
@@ -102,7 +102,7 @@ final class MC4WP_Ninja_Forms_Action extends NF_Abstracts_ActionNewsletter
|
|
102 |
$list_id = $action_settings['newsletter_list'];
|
103 |
$email_address = $action_settings['EMAIL'];
|
104 |
$mailchimp = new MC4WP_MailChimp();
|
105 |
-
$list = $mailchimp->get_list( $list_id );
|
106 |
|
107 |
$merge_fields = array();
|
108 |
foreach( $list->merge_fields as $merge_field ) {
|
@@ -135,7 +135,7 @@ final class MC4WP_Ninja_Forms_Action extends NF_Abstracts_ActionNewsletter
|
|
135 |
$mailchimp = new MC4WP_MailChimp();
|
136 |
|
137 |
/** @var MC4WP_MailChimp_List[] $lists */
|
138 |
-
$lists = $mailchimp->
|
139 |
$return = array();
|
140 |
|
141 |
foreach( $lists as $list ) {
|
102 |
$list_id = $action_settings['newsletter_list'];
|
103 |
$email_address = $action_settings['EMAIL'];
|
104 |
$mailchimp = new MC4WP_MailChimp();
|
105 |
+
$list = $mailchimp->get_list( $list_id, true );
|
106 |
|
107 |
$merge_fields = array();
|
108 |
foreach( $list->merge_fields as $merge_field ) {
|
135 |
$mailchimp = new MC4WP_MailChimp();
|
136 |
|
137 |
/** @var MC4WP_MailChimp_List[] $lists */
|
138 |
+
$lists = $mailchimp->get_lists();
|
139 |
$return = array();
|
140 |
|
141 |
foreach( $lists as $list ) {
|
languages/mailchimp-for-wp-da_DK.mo
CHANGED
Binary file
|
languages/mailchimp-for-wp-da_DK.po
CHANGED
@@ -1,74 +1,28 @@
|
|
1 |
-
# Copyright (C)
|
2 |
-
# This file is distributed under the same license as the
|
3 |
# Translators:
|
|
|
4 |
# Mathias Brask <seo@bravocom.dk>, 2015
|
5 |
# Rasmus Larsen <rasmus@rblarsen.dk>, 2014
|
6 |
# Ronni Andersen <ronniva@gmail.com>, 2015
|
7 |
msgid ""
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: MailChimp for WordPress\n"
|
10 |
-
"
|
11 |
-
"
|
12 |
-
"PO-Revision-Date: 2015-12-08 12:27+0000\n"
|
13 |
-
"Last-Translator: Ronni Andersen <ronniva@gmail.com>\n"
|
14 |
"Language-Team: Danish (Denmark) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/da_DK/)\n"
|
15 |
"MIME-Version: 1.0\n"
|
16 |
"Content-Type: text/plain; charset=UTF-8\n"
|
17 |
"Content-Transfer-Encoding: 8bit\n"
|
18 |
"Language: da_DK\n"
|
19 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
-
#:
|
22 |
-
msgid "Email address"
|
23 |
-
msgstr "Email adresse"
|
24 |
-
|
25 |
-
#: config/default-form-content.php:4
|
26 |
-
msgid "Your email address"
|
27 |
-
msgstr "Din email adresse"
|
28 |
-
|
29 |
-
#: config/default-form-content.php:5
|
30 |
-
msgid "Sign up"
|
31 |
-
msgstr "Tilmeld"
|
32 |
-
|
33 |
-
#: config/default-form-messages.php:5
|
34 |
-
msgid ""
|
35 |
-
"Thank you, your sign-up request was successful! Please check your email "
|
36 |
-
"inbox to confirm."
|
37 |
-
msgstr "TAK! Du er nu tilmeldt nyhedsbrevet! Tjek venligst din mail."
|
38 |
-
|
39 |
-
#: config/default-form-messages.php:9
|
40 |
-
msgid "Oops. Something went wrong. Please try again later."
|
41 |
-
msgstr "Oops. Noget gik galt. Prøv venligst igen senere."
|
42 |
-
|
43 |
-
#: config/default-form-messages.php:13
|
44 |
-
msgid "Please provide a valid email address."
|
45 |
-
msgstr "Venligst udfyld en gyldig email adresse."
|
46 |
-
|
47 |
-
#: config/default-form-messages.php:17
|
48 |
-
msgid "Given email address is already subscribed, thank you!"
|
49 |
-
msgstr "Prøv lige en anden email adresse, denne er allerede tilmeldt."
|
50 |
-
|
51 |
-
#: config/default-form-messages.php:21
|
52 |
-
msgid "Please fill in the required fields."
|
53 |
-
msgstr "Venligst udfyld de påkrævede felter."
|
54 |
-
|
55 |
-
#: config/default-form-messages.php:25
|
56 |
-
msgid "You were successfully unsubscribed."
|
57 |
-
msgstr "Du er nu afmeldt nyhedsbrevet."
|
58 |
-
|
59 |
-
#: config/default-form-messages.php:29
|
60 |
-
msgid "Given email address is not subscribed."
|
61 |
-
msgstr "Denne mail adresse er ikke tilmeldt nyhedsbrevet."
|
62 |
-
|
63 |
-
#: config/default-form-messages.php:33
|
64 |
-
msgid "Please select at least one list."
|
65 |
-
msgstr "Vælg venligst mindst én liste."
|
66 |
-
|
67 |
-
#: config/default-integration-options.php:5
|
68 |
-
msgid "Sign me up for the newsletter!"
|
69 |
-
msgstr "Tilmeld mig nyhedsbrevet!"
|
70 |
-
|
71 |
-
#: includes/admin/class-admin-texts.php:62
|
72 |
#: includes/forms/views/edit-form.php:6
|
73 |
msgid "Settings"
|
74 |
msgstr "Indstillinger"
|
@@ -77,141 +31,388 @@ msgstr "Indstillinger"
|
|
77 |
msgid "Documentation"
|
78 |
msgstr "Dokumentation"
|
79 |
|
80 |
-
#: includes/admin/class-admin.php:
|
81 |
msgid ""
|
82 |
"Success! The cached configuration for your MailChimp lists has been renewed."
|
83 |
msgstr "Succes! Den cachede konfiguration for din MailChimp lister er blevet fornyet."
|
84 |
|
85 |
-
#: includes/admin/class-admin.php:
|
86 |
msgid ""
|
87 |
"This is a pro-only feature. Please upgrade to the premium version to be able"
|
88 |
" to use it."
|
89 |
msgstr "Dette er en PRO funktion. Opgrader til premium-version for at bruge dette."
|
90 |
|
91 |
-
#: includes/admin/class-admin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
msgid "MailChimp API Settings"
|
93 |
msgstr "MailChimp API indstillinger"
|
94 |
|
95 |
-
#: includes/admin/class-admin.php:
|
96 |
-
#: integrations/ninja-forms/class-ninja-forms.php:34
|
97 |
msgid "MailChimp"
|
98 |
msgstr "MailChimp"
|
99 |
|
100 |
-
#: includes/admin/class-
|
101 |
-
|
102 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
|
104 |
-
#: includes/admin/class-
|
105 |
msgid ""
|
106 |
-
"
|
107 |
-
"
|
108 |
-
msgstr "
|
109 |
|
110 |
-
#: includes/admin/class-ads.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
msgid "More subscribers, better newsletters."
|
112 |
msgstr "Flere abonnenter, bedre nyhedsbreve."
|
113 |
|
114 |
-
#: includes/admin/class-ads.php:
|
115 |
msgid ""
|
116 |
"Learn how to best grow your lists & write better emails by subscribing to "
|
117 |
"our monthly tips."
|
118 |
msgstr "Lær hvordan du bedst få dine lister til at vokse og skriver bedre mails ved at abonnere på vores månedlige tips."
|
119 |
|
120 |
-
#: includes/admin/class-ads.php:
|
121 |
msgid "Email Address"
|
122 |
msgstr "E-mail adresse"
|
123 |
|
124 |
-
#: includes/admin/class-ads.php:
|
125 |
msgid "First Name"
|
126 |
msgstr "Fornavn"
|
127 |
|
128 |
-
#: includes/admin/class-ads.php:
|
129 |
msgid "Subscribe"
|
130 |
msgstr "Tilmeld"
|
131 |
|
132 |
-
#: includes/admin/class-
|
133 |
-
msgid "
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
|
136 |
-
#: includes/admin/
|
137 |
-
msgid "
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
|
140 |
-
#: includes/class-api.php:
|
141 |
msgid "Read more about common connectivity issues."
|
142 |
msgstr "Læs mere om almindelige forbindelsesproblemer."
|
143 |
|
144 |
-
#: includes/forms/class-admin.php:
|
145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
msgid "Forms"
|
147 |
msgstr "Formularer"
|
148 |
|
149 |
-
#: includes/forms/class-admin.
|
150 |
msgid "<strong>Success!</strong> Form successfully saved."
|
151 |
msgstr "<strong>Succes!</strong> Formular er nu gemt."
|
152 |
|
153 |
-
#: includes/forms/class-admin.php:
|
154 |
msgid "Preview form"
|
155 |
msgstr "Vis formular"
|
156 |
|
157 |
-
#: includes/forms/class-admin.php:
|
158 |
-
msgid "
|
159 |
-
msgstr "
|
160 |
|
161 |
-
#: includes/forms/class-admin.php:
|
162 |
-
msgid "
|
163 |
-
msgstr "
|
164 |
|
165 |
-
#: includes/forms/class-form-previewer.php:
|
166 |
msgid "Form preview"
|
167 |
msgstr "Vis formular"
|
168 |
|
169 |
-
#: includes/forms/class-form-tags.php:
|
170 |
msgid "Replaced with the form response (error or success messages)."
|
171 |
msgstr "Erstattet med formularens svar (fejl eller succes meddelelser)."
|
172 |
|
173 |
-
#: includes/forms/class-form-tags.php:
|
174 |
msgid "Data from the URL or a submitted form."
|
175 |
msgstr "Data fra URL eller en indsendt formular."
|
176 |
|
177 |
-
#: includes/forms/class-form-tags.php:
|
|
|
|
|
|
|
|
|
178 |
#: includes/integrations/class-integration-tags.php:45
|
179 |
msgid "Replaced with the number of subscribers on the selected list(s)"
|
180 |
msgstr "Erstattet med antallet af abonnenter på den valgte liste(r)"
|
181 |
|
182 |
-
#: includes/forms/class-form-tags.php:
|
183 |
msgid "The email address of the current visitor (if known)."
|
184 |
msgstr "Email-adressen på den aktuelle besøgende (hvis kendt)."
|
185 |
|
186 |
-
#: includes/forms/class-form-tags.php:
|
187 |
msgid "The URL of the page."
|
188 |
msgstr "Sidens URL"
|
189 |
|
190 |
-
#: includes/forms/class-form-tags.php:
|
191 |
msgid "The path of the page."
|
192 |
msgstr "Sidens sti"
|
193 |
|
194 |
-
#: includes/forms/class-form-tags.php:
|
195 |
msgid "The current date. Example: %s."
|
196 |
msgstr "Den aktuelle dato. Eksempel: %s."
|
197 |
|
198 |
-
#: includes/forms/class-form-tags.php:
|
199 |
msgid "The current time. Example: %s."
|
200 |
msgstr "Den aktuelle tid. Eksempel: %s."
|
201 |
|
202 |
-
#: includes/forms/class-form-tags.php:
|
203 |
msgid "The site's language. Example: %s."
|
204 |
msgstr "Webstedets sprog. Eksempel: %s."
|
205 |
|
206 |
-
#: includes/forms/class-form-tags.php:
|
207 |
msgid "The visitor's IP address. Example: %s."
|
208 |
msgstr "Den besøgendes IP-adresse. Eksempel: %s."
|
209 |
|
210 |
-
#: includes/forms/class-form-tags.php:
|
211 |
msgid "The property of the currently logged-in user."
|
212 |
msgstr "Ejet af den bruger som er logget på."
|
213 |
|
214 |
-
#: includes/forms/class-form.php:
|
|
|
|
|
|
|
|
|
215 |
msgid "There is no form with ID %d, perhaps it was deleted?"
|
216 |
msgstr "Der er ingen formular med ID %d, måske er den blev slettet?"
|
217 |
|
@@ -219,10 +420,6 @@ msgstr "Der er ingen formular med ID %d, måske er den blev slettet?"
|
|
219 |
msgid "Newsletter"
|
220 |
msgstr "Nyhedsbrev"
|
221 |
|
222 |
-
#: includes/forms/class-widget.php:30
|
223 |
-
msgid "MailChimp Sign-Up Form"
|
224 |
-
msgstr "MailChimp tilmeldings formular"
|
225 |
-
|
226 |
#: includes/forms/class-widget.php:32
|
227 |
msgid "Displays your MailChimp for WordPress sign-up form"
|
228 |
msgstr "Viser din MailChimp for WordPress tilmeldings formular"
|
@@ -237,7 +434,114 @@ msgid ""
|
|
237 |
" form settings</a>."
|
238 |
msgstr "Du kan redigere din tilmeldings formular i <a href=“%s”>MailChimp til WordPress farmular indstillinger.</a>"
|
239 |
|
240 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
msgid "Add new form"
|
242 |
msgstr "Tilføj ny formular"
|
243 |
|
@@ -265,38 +569,266 @@ msgstr "Felter"
|
|
265 |
msgid "Messages"
|
266 |
msgstr "Beskeder"
|
267 |
|
268 |
-
#: includes/forms/views/edit-form.php:7
|
269 |
-
msgid "Appearance"
|
270 |
-
msgstr "Udseende"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
|
272 |
-
#: includes/
|
273 |
-
|
274 |
-
|
275 |
-
#: includes/views/general-settings.php:7
|
276 |
-
msgid "You are here: "
|
277 |
-
msgstr "Du er her:"
|
278 |
|
279 |
-
#: includes/
|
280 |
-
msgid "
|
281 |
-
msgstr "
|
282 |
|
283 |
-
#: includes/
|
284 |
-
msgid "
|
285 |
-
msgstr "
|
286 |
|
287 |
-
#: includes/
|
288 |
-
msgid "
|
289 |
-
msgstr "
|
290 |
|
291 |
-
#: includes/
|
292 |
-
msgid "
|
293 |
-
msgstr "
|
294 |
|
295 |
-
#: includes/
|
296 |
-
msgid "
|
297 |
-
msgstr "
|
298 |
|
299 |
-
#: includes/forms/views/parts/add-fields-help.
|
300 |
#: includes/forms/views/tabs/form-fields.php:10
|
301 |
msgid "Add more fields"
|
302 |
msgstr "Tilføj flere felter"
|
@@ -333,11 +865,6 @@ msgid ""
|
|
333 |
"changes."
|
334 |
msgstr "Klik på følgende knap for at få MailChimp for WordPress indsamle dine ændringer."
|
335 |
|
336 |
-
#: includes/forms/views/parts/add-fields-help.php:43
|
337 |
-
#: includes/views/parts/lists-overview.php:8
|
338 |
-
msgid "Renew MailChimp lists"
|
339 |
-
msgstr "Forny MailChimp lister"
|
340 |
-
|
341 |
#: includes/forms/views/parts/dynamic-content-tags.php:6
|
342 |
msgid "Add dynamic form variable"
|
343 |
msgstr "Tilføj dynamisk formular variabel"
|
@@ -410,87 +937,101 @@ msgstr "Formular Felter"
|
|
410 |
msgid "Enter the HTML code for your form fields.."
|
411 |
msgstr "Indtast HTML-kode til dit formularfelter .."
|
412 |
|
413 |
-
#: includes/forms/views/tabs/form-fields.php:
|
414 |
-
msgid "Your form is missing the following (required) form fields:"
|
415 |
-
msgstr "Din formular mangler følgende (påkrævet) formular felter:"
|
416 |
-
|
417 |
-
#: includes/forms/views/tabs/form-fields.php:34
|
418 |
msgid ""
|
419 |
"Use the shortcode %s to display this form inside a post, page or text "
|
420 |
"widget."
|
421 |
msgstr "Brug denne shortcode%s for at vise denne formular i en post, side eller tekst widget."
|
422 |
|
423 |
-
#: includes/forms/views/tabs/form-messages.php:
|
424 |
msgid "Form Messages"
|
425 |
msgstr "Formular beskeder"
|
426 |
|
427 |
-
#: includes/forms/views/tabs/form-messages.php:
|
428 |
msgid "Successfully subscribed"
|
429 |
msgstr "Du er nu tilmeldt"
|
430 |
|
431 |
-
#: includes/forms/views/tabs/form-messages.php:
|
432 |
msgid ""
|
433 |
"The text that shows when an email address is successfully subscribed to the "
|
434 |
"selected list(s)."
|
435 |
msgstr "Den tekst, der viser, hvornår en email adresse er korrekt tilmeldt den valgte liste(r)."
|
436 |
|
437 |
-
#: includes/forms/views/tabs/form-messages.php:
|
438 |
msgid "Invalid email address"
|
439 |
msgstr "Ugyldig email adresse"
|
440 |
|
441 |
-
#: includes/forms/views/tabs/form-messages.php:
|
442 |
msgid "The text that shows when an invalid email address is given."
|
443 |
msgstr "Den tekst, der viser, hvornår en ugyldig email adresse er givet."
|
444 |
|
445 |
-
#: includes/forms/views/tabs/form-messages.php:
|
446 |
msgid "Required field missing"
|
447 |
msgstr "Påkrævet felt mangler"
|
448 |
|
449 |
-
#: includes/forms/views/tabs/form-messages.php:
|
450 |
msgid ""
|
451 |
"The text that shows when a required field for the selected list(s) is "
|
452 |
"missing."
|
453 |
msgstr "Den tekst, der viser, hvornår et obligatorisk felt for den valgte liste(r) mangler."
|
454 |
|
455 |
-
#: includes/forms/views/tabs/form-messages.php:
|
456 |
msgid "Already subscribed"
|
457 |
msgstr "Allerede tilmeldt"
|
458 |
|
459 |
-
#: includes/forms/views/tabs/form-messages.php:
|
460 |
msgid ""
|
461 |
"The text that shows when the given email is already subscribed to the "
|
462 |
"selected list(s)."
|
463 |
msgstr "Den tekst, der viser, hvornår en email adresse allerede er tilmeldt den valgte liste(r)."
|
464 |
|
465 |
-
#: includes/forms/views/tabs/form-messages.php:
|
466 |
msgid "General error"
|
467 |
msgstr "Generel fejl"
|
468 |
|
469 |
-
#: includes/forms/views/tabs/form-messages.php:
|
470 |
msgid "The text that shows when a general error occured."
|
471 |
msgstr "Den tekst, der viser, at en generel fejl er opstået."
|
472 |
|
473 |
-
#: includes/forms/views/tabs/form-messages.php:
|
474 |
msgid "Unsubscribed"
|
475 |
msgstr "Afmeldt"
|
476 |
|
477 |
-
#: includes/forms/views/tabs/form-messages.php:
|
478 |
msgid ""
|
479 |
"When using the unsubscribe method, this is the text that shows when the "
|
480 |
"given email address is successfully unsubscribed from the selected list(s)."
|
481 |
msgstr "Ved brug af “afmeld metoden”, er dette den tekst, der viser, hvornår den givne e-mail adresse er afmeldt den valgte liste (r)."
|
482 |
|
483 |
-
#: includes/forms/views/tabs/form-messages.php:
|
484 |
msgid "Not subscribed"
|
485 |
msgstr "Ikke tilmeldt"
|
486 |
|
487 |
-
#: includes/forms/views/tabs/form-messages.php:
|
488 |
msgid ""
|
489 |
"When using the unsubscribe method, this is the text that shows when the "
|
490 |
"given email address is not on the selected list(s)."
|
491 |
msgstr "Ved brug af “afmelde metode”, er dette den tekst, der viser, hvis den givne email adressen ikke er på den valgte liste (r)."
|
492 |
|
493 |
-
#: includes/forms/views/tabs/form-messages.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
494 |
msgid "HTML tags like %s are allowed in the message fields."
|
495 |
msgstr "HTML-tags som %s er tilladt i besked felterne."
|
496 |
|
@@ -502,379 +1043,52 @@ msgstr "Formular indstillinger"
|
|
502 |
msgid "MailChimp specific settings"
|
503 |
msgstr "MailChimp specifikke indstillinger"
|
504 |
|
505 |
-
#: includes/forms/views/tabs/form-settings.php:
|
506 |
msgid "Lists this form subscribes to"
|
507 |
msgstr "Lister denne formular abonnerer på"
|
508 |
|
509 |
-
#: includes/forms/views/tabs/form-settings.php:
|
510 |
-
#: includes/integrations/views/integration-settings.php:93
|
511 |
-
msgid "No lists found, <a href=\"%s\">are you connected to MailChimp</a>?"
|
512 |
-
msgstr "Ingen lister fundet, <a href=“%s”>er du forbundet til MailChimp?</a>"
|
513 |
-
|
514 |
-
#: includes/forms/views/tabs/form-settings.php:29
|
515 |
msgid ""
|
516 |
"Select the list(s) to which people who submit this form should be "
|
517 |
"subscribed."
|
518 |
msgstr "Vælg liste(r), som folk, der indsender denne formular skal tilmeldes på."
|
519 |
|
520 |
-
#: includes/forms/views/tabs/form-settings.php:
|
521 |
msgid "Use double opt-in?"
|
522 |
msgstr "Brug dobbelt opt-in?"
|
523 |
|
524 |
-
#: includes/forms/views/tabs/form-settings.php:
|
525 |
-
|
526 |
-
|
527 |
-
#: includes/forms/views/tabs/form-settings.php:85
|
528 |
-
#: includes/forms/views/tabs/form-settings.php:115
|
529 |
-
#: includes/integrations/views/integration-settings.php:53
|
530 |
-
#: includes/integrations/views/integration-settings.php:66
|
531 |
-
#: includes/integrations/views/integration-settings.php:117
|
532 |
-
#: includes/integrations/views/integration-settings.php:129
|
533 |
-
#: includes/integrations/views/integration-settings.php:142
|
534 |
-
#: includes/integrations/views/integration-settings.php:163
|
535 |
-
#: includes/integrations/views/integration-settings.php:180
|
536 |
-
#: includes/integrations/views/integration-settings.php:199
|
537 |
-
#: integrations/contact-form-7/class-contact-form-7.php:69
|
538 |
-
msgid "Yes"
|
539 |
-
msgstr "Ja"
|
540 |
-
|
541 |
-
#: includes/forms/views/tabs/form-settings.php:43
|
542 |
-
#: includes/forms/views/tabs/form-settings.php:58
|
543 |
-
#: includes/forms/views/tabs/form-settings.php:73
|
544 |
-
#: includes/forms/views/tabs/form-settings.php:89
|
545 |
-
#: includes/forms/views/tabs/form-settings.php:119
|
546 |
-
#: includes/integrations/views/integration-settings.php:54
|
547 |
-
#: includes/integrations/views/integration-settings.php:67
|
548 |
-
#: includes/integrations/views/integration-settings.php:118
|
549 |
-
#: includes/integrations/views/integration-settings.php:130
|
550 |
-
#: includes/integrations/views/integration-settings.php:146
|
551 |
-
#: includes/integrations/views/integration-settings.php:167
|
552 |
-
#: includes/integrations/views/integration-settings.php:184
|
553 |
-
#: includes/integrations/views/integration-settings.php:203
|
554 |
-
#: integrations/contact-form-7/class-contact-form-7.php:69
|
555 |
-
msgid "No"
|
556 |
-
msgstr "Nej"
|
557 |
-
|
558 |
-
#: includes/forms/views/tabs/form-settings.php:45
|
559 |
-
#: includes/integrations/views/integration-settings.php:149
|
560 |
-
msgid ""
|
561 |
-
"Select \"yes\" if you want people to confirm their email address before "
|
562 |
-
"being subscribed (recommended)"
|
563 |
-
msgstr "Vælg “Ja”, hvis du vil have folk til at bekræfte deres e-mail adresse, før de tilmeldes (anbefales)"
|
564 |
-
|
565 |
-
#: includes/forms/views/tabs/form-settings.php:50
|
566 |
-
msgid "Send final welcome email?"
|
567 |
-
msgstr "Send endelig velkomst email?"
|
568 |
-
|
569 |
-
#: includes/forms/views/tabs/form-settings.php:60
|
570 |
-
#: includes/integrations/views/integration-settings.php:169
|
571 |
-
msgid ""
|
572 |
-
"Select \"yes\" if you want to send your lists Welcome Email if a subscribe "
|
573 |
-
"succeeds (only when double opt-in is disabled)."
|
574 |
-
msgstr "Vælg “Ja”, hvis du vil sende dine lister Velkomst Email, hvis en tilmelding lykkes (kun når dobbelt opt-in er deaktiveret)."
|
575 |
-
|
576 |
-
#: includes/forms/views/tabs/form-settings.php:65
|
577 |
-
#: includes/integrations/views/integration-settings.php:176
|
578 |
-
msgid "Update existing subscribers?"
|
579 |
-
msgstr "Opdatere eksisterende abonnenter?"
|
580 |
-
|
581 |
-
#: includes/forms/views/tabs/form-settings.php:75
|
582 |
-
#: includes/integrations/views/integration-settings.php:186
|
583 |
-
msgid ""
|
584 |
-
"Select \"yes\" if you want to update existing subscribers with the data that"
|
585 |
-
" is sent."
|
586 |
-
msgstr "Vælg “Ja”, hvis du ønsker at opdatere eksisterende abonnenter med de data, der sendes."
|
587 |
-
|
588 |
-
#: includes/forms/views/tabs/form-settings.php:81
|
589 |
-
#: includes/integrations/views/integration-settings.php:195
|
590 |
-
msgid "Replace interest groups?"
|
591 |
-
msgstr "Udskift interesse grupper?"
|
592 |
|
593 |
-
#: includes/forms/views/tabs/form-settings.php:
|
594 |
-
#: includes/integrations/views/integration-settings.php:206
|
595 |
msgid ""
|
596 |
-
"
|
597 |
-
"
|
598 |
-
msgstr "
|
599 |
-
|
600 |
-
#: includes/forms/views/tabs/form-settings.php:93
|
601 |
-
#: includes/integrations/views/integration-settings.php:207
|
602 |
-
msgid "What does this do?"
|
603 |
-
msgstr "Hvad gør denne?"
|
604 |
|
605 |
-
#: includes/forms/views/tabs/form-settings.php:
|
606 |
msgid "Form behaviour"
|
607 |
msgstr "Formular adfærd"
|
608 |
|
609 |
-
#: includes/forms/views/tabs/form-settings.php:
|
610 |
msgid "Hide form after a successful sign-up?"
|
611 |
msgstr "Skjul formular efter en vellykket tilmelding?"
|
612 |
|
613 |
-
#: includes/forms/views/tabs/form-settings.php:
|
614 |
msgid "Select \"yes\" to hide the form fields after a successful sign-up."
|
615 |
msgstr "Vælg “Ja” for at skjule formularfelterne efter en vellykket tilmelding."
|
616 |
|
617 |
-
#: includes/forms/views/tabs/form-settings.php:
|
618 |
msgid "Redirect to URL after successful sign-ups"
|
619 |
msgstr "Omdiriger til URL efter vellykkede tilmelding"
|
620 |
|
621 |
-
#: includes/forms/views/tabs/form-settings.php:
|
622 |
msgid "Example: %s"
|
623 |
msgstr "Eksempel: %s"
|
624 |
|
625 |
-
#: includes/forms/views/tabs/form-settings.php:
|
626 |
msgid ""
|
627 |
"Leave empty or enter <code>0</code> for no redirect. Otherwise, use complete"
|
628 |
" (absolute) URLs, including <code>http://</code>."
|
629 |
msgstr "Efterlad tomt eller indtast <code>0</code> for ingen omdirigering. Ellers skal du bruge komplet (absolut) URL’er, herunder <code>http://</code>"
|
630 |
-
|
631 |
-
#: includes/integrations/class-admin.php:79
|
632 |
-
#: includes/integrations/class-admin.php:80
|
633 |
-
#: includes/integrations/views/integration-settings.php:10
|
634 |
-
#: includes/integrations/views/integrations.php:9
|
635 |
-
#: includes/integrations/views/integrations.php:17
|
636 |
-
msgid "Integrations"
|
637 |
-
msgstr "Integrationer"
|
638 |
-
|
639 |
-
#: includes/integrations/views/integration-settings.php:20
|
640 |
-
msgid "%s integration"
|
641 |
-
msgstr "%s integration"
|
642 |
-
|
643 |
-
#: includes/integrations/views/integration-settings.php:51
|
644 |
-
msgid "Enabled?"
|
645 |
-
msgstr "Aktiveret?"
|
646 |
-
|
647 |
-
#: includes/integrations/views/integration-settings.php:55
|
648 |
-
msgid ""
|
649 |
-
"Enable the %s integration? This will add a sign-up checkbox to the form."
|
650 |
-
msgstr "Aktiver %s integration? Dette vil tilføje et tilmeldings afkrydsningsboks til formularen."
|
651 |
-
|
652 |
-
#: includes/integrations/views/integration-settings.php:64
|
653 |
-
msgid "Implicit?"
|
654 |
-
msgstr "Underforstået?"
|
655 |
-
|
656 |
-
#: includes/integrations/views/integration-settings.php:68
|
657 |
-
msgid ""
|
658 |
-
"Select \"no\" if you want to ask your visitors before they are subscribed "
|
659 |
-
"(recommended)."
|
660 |
-
msgstr "Vælg “nej”, hvis du ønsker at spørge dine besøgende, før de bliver tilmeldt (anbefales)."
|
661 |
-
|
662 |
-
#: includes/integrations/views/integration-settings.php:78
|
663 |
-
msgid "MailChimp Lists"
|
664 |
-
msgstr "MailChimp Lister"
|
665 |
-
|
666 |
-
#: includes/integrations/views/integration-settings.php:89
|
667 |
-
msgid ""
|
668 |
-
"Select the list(s) to which people who check the checkbox should be "
|
669 |
-
"subscribed."
|
670 |
-
msgstr "Vælg liste(r), som folk, der afkrydser afkrydsningsfeltet skal tilmeldes."
|
671 |
-
|
672 |
-
#: includes/integrations/views/integration-settings.php:102
|
673 |
-
msgid "Checkbox label text"
|
674 |
-
msgstr "Afkrydsningsfelt label tekst"
|
675 |
-
|
676 |
-
#: includes/integrations/views/integration-settings.php:105
|
677 |
-
msgid "HTML tags like %s are allowed in the label text."
|
678 |
-
msgstr "HTML-tags som %s er tilladt i labelen tekst."
|
679 |
-
|
680 |
-
#: includes/integrations/views/integration-settings.php:115
|
681 |
-
msgid "Pre-check the checkbox?"
|
682 |
-
msgstr "Marker afkrydsningsfeltet?"
|
683 |
-
|
684 |
-
#: includes/integrations/views/integration-settings.php:119
|
685 |
-
msgid "Select \"yes\" if the checkbox should be pre-checked."
|
686 |
-
msgstr "Vælg “ja”, hvis afkrydsningsfeltet skal være markeret."
|
687 |
-
|
688 |
-
#: includes/integrations/views/integration-settings.php:127
|
689 |
-
msgid "Load some default CSS?"
|
690 |
-
msgstr "Indlæs noget standard CSS?"
|
691 |
-
|
692 |
-
#: includes/integrations/views/integration-settings.php:131
|
693 |
-
msgid "Select \"yes\" if the checkbox appears in a weird place."
|
694 |
-
msgstr "Vælg “ja”, hvis afkrydsningsfeltet vises et mærkeligt sted."
|
695 |
-
|
696 |
-
#: includes/integrations/views/integration-settings.php:138
|
697 |
-
msgid "Double opt-in?"
|
698 |
-
msgstr "Dobbelt opt-in?"
|
699 |
-
|
700 |
-
#: includes/integrations/views/integration-settings.php:159
|
701 |
-
msgid "Send Welcome Email?"
|
702 |
-
msgstr "Send Velkomst Email?"
|
703 |
-
|
704 |
-
#: includes/integrations/views/integration-settings.php:244
|
705 |
-
msgid ""
|
706 |
-
"The selected MailChimp lists require non-default fields, which may prevent "
|
707 |
-
"this integration from working."
|
708 |
-
msgstr "De valgte MailChimp lister kræver ikke-standard felter, som kan hindre denne integration i at fungere."
|
709 |
-
|
710 |
-
#: includes/integrations/views/integration-settings.php:245
|
711 |
-
msgid ""
|
712 |
-
"Please ensure you <a href=\"%s\">configure the plugin to send all required "
|
713 |
-
"fields</a> or <a href=\"%s\">log into your MailChimp account</a> and make "
|
714 |
-
"sure only the email & name fields are marked as required fields for the "
|
715 |
-
"selected list(s)."
|
716 |
-
msgstr "Kontroller, at du <a href=“%s”>konfigurerer dette plugin til at sende alle nødvendige felter</a> eller <a href=“%s”>log ind på din MailChimp konto</a> og sørg for kun de e-mail & navne felter der er påkrævet for den valgte liste(r) er markeret."
|
717 |
-
|
718 |
-
#: includes/integrations/views/integrations.php:30
|
719 |
-
msgid "Enabled"
|
720 |
-
msgstr "Aktiveret"
|
721 |
-
|
722 |
-
#: includes/integrations/views/integrations.php:31
|
723 |
-
msgid "Name"
|
724 |
-
msgstr "Navn"
|
725 |
-
|
726 |
-
#: includes/integrations/views/integrations.php:32
|
727 |
-
msgid "Description"
|
728 |
-
msgstr "Beskrivelse"
|
729 |
-
|
730 |
-
#: includes/integrations/views/integrations.php:50
|
731 |
-
msgid ""
|
732 |
-
"This integration is enabled by default as it requires manual actions to "
|
733 |
-
"work."
|
734 |
-
msgstr "Denne integration er aktiveret som standard, da det kræver manuelle handlinger for at fungere."
|
735 |
-
|
736 |
-
#: includes/integrations/views/integrations.php:57
|
737 |
-
msgid "Configure this integration"
|
738 |
-
msgstr "Konfigurere denne integration"
|
739 |
-
|
740 |
-
#: includes/views/general-settings.php:18
|
741 |
-
msgid "General Settings"
|
742 |
-
msgstr "Generelle indstillinger"
|
743 |
-
|
744 |
-
#: includes/views/general-settings.php:35
|
745 |
-
msgid "Status"
|
746 |
-
msgstr "Status"
|
747 |
-
|
748 |
-
#: includes/views/general-settings.php:39
|
749 |
-
msgid "CONNECTED"
|
750 |
-
msgstr "TILSLUTTET"
|
751 |
-
|
752 |
-
#: includes/views/general-settings.php:41
|
753 |
-
msgid "NOT CONNECTED"
|
754 |
-
msgstr "IKKE TILSLUTTET"
|
755 |
-
|
756 |
-
#: includes/views/general-settings.php:48
|
757 |
-
msgid "API Key"
|
758 |
-
msgstr "API nøgle"
|
759 |
-
|
760 |
-
#: includes/views/general-settings.php:50
|
761 |
-
msgid "Your MailChimp API key"
|
762 |
-
msgstr "Din MailChimp API nøgle"
|
763 |
-
|
764 |
-
#: includes/views/general-settings.php:52
|
765 |
-
msgid "The API key for connecting with your MailChimp account."
|
766 |
-
msgstr "API nøgle til at forbinde med din MailChimp konto."
|
767 |
-
|
768 |
-
#: includes/views/general-settings.php:53
|
769 |
-
msgid "Get your API key here."
|
770 |
-
msgstr "Få din API nøgle her."
|
771 |
-
|
772 |
-
#: includes/views/general-settings.php:65
|
773 |
-
msgid "Usage Tracking"
|
774 |
-
msgstr "Anvendelse Sporing"
|
775 |
-
|
776 |
-
#: includes/views/general-settings.php:71
|
777 |
-
msgid ""
|
778 |
-
"Allow us to anonymously track how this plugin is used to help us make it "
|
779 |
-
"better fit your needs."
|
780 |
-
msgstr "Tillad os at anonymt spore, hvor dette plugin bruges, for at hjælpe os med at få det bedre at passe til dine behov."
|
781 |
-
|
782 |
-
#: includes/views/general-settings.php:73
|
783 |
-
msgid "This is what we track."
|
784 |
-
msgstr "Dette er hvad vi sporer."
|
785 |
-
|
786 |
-
#: includes/views/parts/admin-footer.php:11
|
787 |
-
msgid ""
|
788 |
-
"MailChimp for WordPress is in need of translations. Is the plugin not "
|
789 |
-
"translated in your language or do you spot errors with the current "
|
790 |
-
"translations? Helping out is easy! Head over to <a href=\"%s\">the "
|
791 |
-
"translation project and click \"help translate\"</a>."
|
792 |
-
msgstr "MailChimp til WordPress har behov for oversættelser. Er dette plugin ikke oversat på dit sprog, eller har du fundet fejl i de nuværende oversættelser? At hjælpe til er nemt! Smut over til <a href=“%s”>oversættelses projektet og klik på “hjælp med at oversætte”.</a>"
|
793 |
-
|
794 |
-
#: includes/views/parts/admin-footer.php:31
|
795 |
-
msgid ""
|
796 |
-
"This plugin is not developed by or affiliated with MailChimp in any way."
|
797 |
-
msgstr "Dette plugin er ikke udviklet af eller tilknyttet MailChimp på nogen måde."
|
798 |
-
|
799 |
-
#: includes/views/parts/lists-overview.php:1
|
800 |
-
msgid "Your MailChimp Account"
|
801 |
-
msgstr "Din MailChimp konto"
|
802 |
-
|
803 |
-
#: includes/views/parts/lists-overview.php:2
|
804 |
-
msgid ""
|
805 |
-
"The table below shows your MailChimp lists and their details. If you just "
|
806 |
-
"applied changes to your MailChimp lists, please use the following button to "
|
807 |
-
"renew the cached lists configuration."
|
808 |
-
msgstr "Tabellen nedenfor viser dine MailChimp lister og deres detaljer. Hvis du lige har tilføjet ændringer til en af dine MailChimp lister, skal du bruge følgende knap for at forny “lagerede lister konfigurationen”."
|
809 |
-
|
810 |
-
#: includes/views/parts/lists-overview.php:14
|
811 |
-
msgid "No lists were found in your MailChimp account"
|
812 |
-
msgstr "Ingen lister blev fundet i din MailChimp konto"
|
813 |
-
|
814 |
-
#: includes/views/parts/lists-overview.php:16
|
815 |
-
msgid "A total of %d lists were found in your MailChimp account."
|
816 |
-
msgstr "Der blev i alt fundet % d lister på din MailChimp konto."
|
817 |
-
|
818 |
-
#: includes/views/parts/lists-overview.php:21
|
819 |
-
msgid "List Name"
|
820 |
-
msgstr "Liste Navn"
|
821 |
-
|
822 |
-
#: includes/views/parts/lists-overview.php:22
|
823 |
-
msgid "ID"
|
824 |
-
msgstr "ID"
|
825 |
-
|
826 |
-
#: includes/views/parts/lists-overview.php:23
|
827 |
-
msgid "Subscribers"
|
828 |
-
msgstr "Abonnenter"
|
829 |
-
|
830 |
-
#: includes/views/parts/lists-overview.php:45
|
831 |
-
msgid "Edit this list in MailChimp"
|
832 |
-
msgstr "Redigere denne liste i MailChimp"
|
833 |
-
|
834 |
-
#: includes/views/parts/lists-overview.php:59
|
835 |
-
msgid "%s (%s) with field type %s."
|
836 |
-
msgstr "%s (%s) med felttype %s."
|
837 |
-
|
838 |
-
#: includes/views/parts/lists-overview.php:83
|
839 |
-
msgid "%s (ID: %s) with type %s."
|
840 |
-
msgstr "%s (ID:%s) med type %s."
|
841 |
-
|
842 |
-
#: integrations/contact-form-7/admin-before.php:2
|
843 |
-
msgid ""
|
844 |
-
"To integrate with Contact Form 7, configure the settings below and then add "
|
845 |
-
"%s to your CF7 form mark-up."
|
846 |
-
msgstr "For at integrere med Contact Form 7, skal du konfigurere indstillingerne nedenfor og derefter tilføje %s til din CF7 formular mark-up."
|
847 |
-
|
848 |
-
#: integrations/custom/admin-before.php:2
|
849 |
-
msgid ""
|
850 |
-
"To get a custom integration to work, include the following HTML in the form "
|
851 |
-
"you are trying to integrate with."
|
852 |
-
msgstr "For at få en brugerdefineret integration til fungere, skal du inkludere følgende HTML i den formular, du forsøger at integrere med."
|
853 |
-
|
854 |
-
#: integrations/woocommerce/class-woocommerce.php:102
|
855 |
-
msgid "Order #%d"
|
856 |
-
msgstr "Ordre %d"
|
857 |
-
|
858 |
-
#. Plugin Name of the plugin/theme
|
859 |
-
msgid "MailChimp for WordPress"
|
860 |
-
msgstr "MailChimp til WordPress"
|
861 |
-
|
862 |
-
#. Plugin URI of the plugin/theme
|
863 |
-
msgid ""
|
864 |
-
"https://mc4wp.com/#utm_source=wp-plugin&utm_medium=mailchimp-for-"
|
865 |
-
"wp&utm_campaign=plugins-page"
|
866 |
-
msgstr "https://mc4wp.com/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=plugins-page"
|
867 |
-
|
868 |
-
#. Description of the plugin/theme
|
869 |
-
msgid ""
|
870 |
-
"MailChimp for WordPress by ibericode. Adds various highly effective sign-up "
|
871 |
-
"methods to your site."
|
872 |
-
msgstr "MailChimp for WordPress af ibericode. Tilføjer forskellige yderst effektive tilmeldings metoder til dit websted."
|
873 |
-
|
874 |
-
#. Author of the plugin/theme
|
875 |
-
msgid "ibericode"
|
876 |
-
msgstr "ibericode"
|
877 |
-
|
878 |
-
#. Author URI of the plugin/theme
|
879 |
-
msgid "https://ibericode.com/"
|
880 |
-
msgstr "https://ibericode.com/"
|
1 |
+
# Copyright (C) 2017 mailchimp-for-wp
|
2 |
+
# This file is distributed under the same license as the mailchimp-for-wp package.
|
3 |
# Translators:
|
4 |
+
# Jens Bindløv <jens.bindlov@gmail.com>, 2017
|
5 |
# Mathias Brask <seo@bravocom.dk>, 2015
|
6 |
# Rasmus Larsen <rasmus@rblarsen.dk>, 2014
|
7 |
# Ronni Andersen <ronniva@gmail.com>, 2015
|
8 |
msgid ""
|
9 |
msgstr ""
|
10 |
"Project-Id-Version: MailChimp for WordPress\n"
|
11 |
+
"PO-Revision-Date: 2017-05-04 19:52+0000\n"
|
12 |
+
"Last-Translator: Jens Bindløv <jens.bindlov@gmail.com>\n"
|
|
|
|
|
13 |
"Language-Team: Danish (Denmark) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/da_DK/)\n"
|
14 |
"MIME-Version: 1.0\n"
|
15 |
"Content-Type: text/plain; charset=UTF-8\n"
|
16 |
"Content-Transfer-Encoding: 8bit\n"
|
17 |
"Language: da_DK\n"
|
18 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19 |
+
"X-Poedit-Basepath: ..\n"
|
20 |
+
"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
|
21 |
+
"X-Poedit-SearchPath-0: .\n"
|
22 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
24 |
|
25 |
+
#: includes/admin/class-admin-texts.php62,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
#: includes/forms/views/edit-form.php:6
|
27 |
msgid "Settings"
|
28 |
msgstr "Indstillinger"
|
31 |
msgid "Documentation"
|
32 |
msgstr "Dokumentation"
|
33 |
|
34 |
+
#: includes/admin/class-admin.php:204
|
35 |
msgid ""
|
36 |
"Success! The cached configuration for your MailChimp lists has been renewed."
|
37 |
msgstr "Succes! Den cachede konfiguration for din MailChimp lister er blevet fornyet."
|
38 |
|
39 |
+
#: includes/admin/class-admin.php:304
|
40 |
msgid ""
|
41 |
"This is a pro-only feature. Please upgrade to the premium version to be able"
|
42 |
" to use it."
|
43 |
msgstr "Dette er en PRO funktion. Opgrader til premium-version for at bruge dette."
|
44 |
|
45 |
+
#: includes/admin/class-admin.php305,
|
46 |
+
#: includes/views/parts/lists-overview.php10,
|
47 |
+
#: includes/forms/views/parts/add-fields-help.php:43
|
48 |
+
msgid "Renew MailChimp lists"
|
49 |
+
msgstr "Forny MailChimp lister"
|
50 |
+
|
51 |
+
#: includes/admin/class-admin.php:306
|
52 |
+
msgid "Fetching MailChimp lists"
|
53 |
+
msgstr "Henter MailChimp lister"
|
54 |
+
|
55 |
+
#: includes/admin/class-admin.php:307
|
56 |
+
msgid "Done! MailChimp lists renewed."
|
57 |
+
msgstr "Færdig! MailChimp lister er fornyet."
|
58 |
+
|
59 |
+
#: includes/admin/class-admin.php:308
|
60 |
+
msgid "This can take a while if you have many MailChimp lists."
|
61 |
+
msgstr "Det kan tage lidt tid hvis du har mange MailChimp lister."
|
62 |
+
|
63 |
+
#: includes/admin/class-admin.php336, includes/views/general-settings.php:31
|
64 |
msgid "MailChimp API Settings"
|
65 |
msgstr "MailChimp API indstillinger"
|
66 |
|
67 |
+
#: includes/admin/class-admin.php:337
|
|
|
68 |
msgid "MailChimp"
|
69 |
msgstr "MailChimp"
|
70 |
|
71 |
+
#: includes/admin/class-admin.php343, includes/views/other-settings.php60,
|
72 |
+
#: includes/views/other-settings.php:70
|
73 |
+
msgid "Other Settings"
|
74 |
+
msgstr "Andre instillinger"
|
75 |
+
|
76 |
+
#: includes/admin/class-admin.php:344
|
77 |
+
msgid "Other"
|
78 |
+
msgstr "Andet"
|
79 |
+
|
80 |
+
#: includes/admin/class-admin.php:458
|
81 |
+
msgid "Log successfully emptied."
|
82 |
+
msgstr "Log er tømt."
|
83 |
|
84 |
+
#: includes/admin/class-admin.php:488
|
85 |
msgid ""
|
86 |
+
"To get started with MailChimp for WordPress, please <a href=\"%s\">enter "
|
87 |
+
"your MailChimp API key on the settings page of the plugin</a>."
|
88 |
+
msgstr "For at komme i gang med MailChimp til WordPress, du <a href=\"%s\">indsætte din MailChimp API key på siden Indstillinger i plugin'et</a>."
|
89 |
|
90 |
+
#: includes/admin/class-ads.php:39
|
91 |
+
msgid ""
|
92 |
+
"Want to customize the style of your form? <a href=\"%s\">Try our Styles "
|
93 |
+
"Builder</a> & edit the look of your forms with just a few clicks."
|
94 |
+
msgstr "Vil du ændre udseendet af din formular? <a href=\"%s\">Prøv vores grafiske redigering</a> & rediger dine formularer med nogle få klik."
|
95 |
+
|
96 |
+
#: includes/admin/class-ads.php:54
|
97 |
+
msgid ""
|
98 |
+
"Be notified whenever someone subscribes? <a href=\"%s\">MailChimp for "
|
99 |
+
"WordPress Premium</a> allows you to set up email notifications for your "
|
100 |
+
"forms."
|
101 |
+
msgstr "Få besked hvergang nogen tilmelder sig? <a href=\"%s\">MailChimp for WordPress Premium</a> giver dig mulighed for at indstille e-mail notifikationer for dine formularer."
|
102 |
+
|
103 |
+
#: includes/admin/class-ads.php:56
|
104 |
+
msgid ""
|
105 |
+
"Increased conversions? <a href=\"%s\">MailChimp for WordPress Premium</a> "
|
106 |
+
"submits forms without reloading the entire page, resulting in a much better "
|
107 |
+
"experience for your visitors."
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: includes/admin/class-ads.php:70
|
111 |
+
msgid "Upgrade to Premium"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: includes/admin/class-ads.php:83
|
115 |
+
msgid ""
|
116 |
+
"Do you want translated forms for all of your languages? <a href=\"%s\">Try "
|
117 |
+
"MailChimp for WordPress Premium</a>, which does just that plus more."
|
118 |
+
msgstr ""
|
119 |
+
|
120 |
+
#: includes/admin/class-ads.php:88
|
121 |
+
msgid ""
|
122 |
+
"Do you want to create more than one form? Our Premium add-on does just that!"
|
123 |
+
" <a href=\"%s\">Have a look at all Premium benefits</a>."
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: includes/admin/class-ads.php:93
|
127 |
+
msgid ""
|
128 |
+
"Are you enjoying this plugin? The Premium add-on unlocks several powerful "
|
129 |
+
"features. <a href=\"%s\">Find out about all benefits now</a>."
|
130 |
+
msgstr ""
|
131 |
+
|
132 |
+
#: includes/admin/class-ads.php:112
|
133 |
msgid "More subscribers, better newsletters."
|
134 |
msgstr "Flere abonnenter, bedre nyhedsbreve."
|
135 |
|
136 |
+
#: includes/admin/class-ads.php:113
|
137 |
msgid ""
|
138 |
"Learn how to best grow your lists & write better emails by subscribing to "
|
139 |
"our monthly tips."
|
140 |
msgstr "Lær hvordan du bedst få dine lister til at vokse og skriver bedre mails ved at abonnere på vores månedlige tips."
|
141 |
|
142 |
+
#: includes/admin/class-ads.php:116
|
143 |
msgid "Email Address"
|
144 |
msgstr "E-mail adresse"
|
145 |
|
146 |
+
#: includes/admin/class-ads.php:120
|
147 |
msgid "First Name"
|
148 |
msgstr "Fornavn"
|
149 |
|
150 |
+
#: includes/admin/class-ads.php127, includes/forms/class-admin.php:94
|
151 |
msgid "Subscribe"
|
152 |
msgstr "Tilmeld"
|
153 |
|
154 |
+
#: includes/admin/class-ads.php:150
|
155 |
+
msgid ""
|
156 |
+
"Do you want to track all WooCommerce orders in MailChimp so you can send "
|
157 |
+
"emails based on the purchase activity of your subscribers?"
|
158 |
+
msgstr ""
|
159 |
+
|
160 |
+
#: includes/admin/class-ads.php:153
|
161 |
+
msgid ""
|
162 |
+
"<a href=\"%s\">Upgrade to MailChimp for WordPress Premium</a> or <a "
|
163 |
+
"href=\"%s\">read more about MailChimp's E-Commerce features</a>."
|
164 |
+
msgstr ""
|
165 |
|
166 |
+
#: includes/admin/class-review-notice.php:68
|
167 |
+
msgid ""
|
168 |
+
"You've been using MailChimp for WordPress for some time now; we hope you "
|
169 |
+
"love it!"
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: includes/admin/class-review-notice.php:69
|
173 |
+
msgid ""
|
174 |
+
"If you do, please <a href=\"%s\">leave us a 5★ rating on WordPress.org</a>. "
|
175 |
+
"It would be of great help to us."
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
#: includes/admin/class-review-notice.php:71
|
179 |
+
msgid "Dismiss this notice."
|
180 |
+
msgstr "Afvis denne besked"
|
181 |
|
182 |
+
#: includes/api/class-api.php:84
|
183 |
msgid "Read more about common connectivity issues."
|
184 |
msgstr "Læs mere om almindelige forbindelsesproblemer."
|
185 |
|
186 |
+
#: includes/forms/class-admin.php:62
|
187 |
+
msgid "Add to form"
|
188 |
+
msgstr "Tilføj til formular"
|
189 |
+
|
190 |
+
#: includes/forms/class-admin.php:63
|
191 |
+
msgid "City"
|
192 |
+
msgstr "By"
|
193 |
+
|
194 |
+
#: includes/forms/class-admin.php:64
|
195 |
+
msgid "Checkboxes"
|
196 |
+
msgstr "Checkbokse"
|
197 |
+
|
198 |
+
#: includes/forms/class-admin.php:65
|
199 |
+
msgid "Choices"
|
200 |
+
msgstr "Valg"
|
201 |
+
|
202 |
+
#: includes/forms/class-admin.php:66
|
203 |
+
msgid "Choice type"
|
204 |
+
msgstr ""
|
205 |
+
|
206 |
+
#: includes/forms/class-admin.php:67
|
207 |
+
msgid "Choose a field to add to the form"
|
208 |
+
msgstr "Vælg et felt der skal tilføjes formularen"
|
209 |
+
|
210 |
+
#: includes/forms/class-admin.php:68
|
211 |
+
msgid "Close"
|
212 |
+
msgstr "Luk"
|
213 |
+
|
214 |
+
#: includes/forms/class-admin.php:69
|
215 |
+
msgid "Country"
|
216 |
+
msgstr "Land"
|
217 |
+
|
218 |
+
#: includes/forms/class-admin.php:70
|
219 |
+
msgid "Dropdown"
|
220 |
+
msgstr "Dropdown"
|
221 |
+
|
222 |
+
#: includes/forms/class-admin.php:71
|
223 |
+
msgid "Field type"
|
224 |
+
msgstr "Felt type"
|
225 |
+
|
226 |
+
#: includes/forms/class-admin.php:72
|
227 |
+
msgid "Field label"
|
228 |
+
msgstr "Felt label"
|
229 |
+
|
230 |
+
#: includes/forms/class-admin.php:73
|
231 |
+
msgid "Form action"
|
232 |
+
msgstr "Formular handling"
|
233 |
+
|
234 |
+
#: includes/forms/class-admin.php:74
|
235 |
+
msgid ""
|
236 |
+
"This field will allow your visitors to choose whether they would like to "
|
237 |
+
"subscribe or unsubscribe"
|
238 |
+
msgstr "Dette felt tillader dine besøgende at vælge om de vil tilmelde eller afmelde"
|
239 |
+
|
240 |
+
#: includes/forms/class-admin.php:75
|
241 |
+
msgid "Form fields"
|
242 |
+
msgstr ""
|
243 |
+
|
244 |
+
#: includes/forms/class-admin.php:76
|
245 |
+
msgid "This field is marked as required in MailChimp."
|
246 |
+
msgstr "Dette felt er markeret som nødvendigt i MailChimp"
|
247 |
+
|
248 |
+
#: includes/forms/class-admin.php:77
|
249 |
+
msgid "Initial value"
|
250 |
+
msgstr "Start værdi"
|
251 |
+
|
252 |
+
#: includes/forms/class-admin.php:78
|
253 |
+
msgid "Interest categories"
|
254 |
+
msgstr "Interesse kategorier"
|
255 |
+
|
256 |
+
#: includes/forms/class-admin.php:79
|
257 |
+
msgid "Is this field required?"
|
258 |
+
msgstr "Er dette felt påkrævet?"
|
259 |
+
|
260 |
+
#: includes/forms/class-admin.php:80
|
261 |
+
msgid "List choice"
|
262 |
+
msgstr "Vis valg"
|
263 |
+
|
264 |
+
#: includes/forms/class-admin.php:81
|
265 |
+
msgid "This field will allow your visitors to choose a list to subscribe to."
|
266 |
+
msgstr "Dette felt vil tillade dine besøgende at vælge en liste de kan tilmelde sig."
|
267 |
+
|
268 |
+
#: includes/forms/class-admin.php:82
|
269 |
+
msgid "List fields"
|
270 |
+
msgstr "List felter"
|
271 |
+
|
272 |
+
#: includes/forms/class-admin.php:83
|
273 |
+
msgid "Min"
|
274 |
+
msgstr "Min."
|
275 |
+
|
276 |
+
#: includes/forms/class-admin.php:84
|
277 |
+
msgid "Max"
|
278 |
+
msgstr "Max."
|
279 |
+
|
280 |
+
#: includes/forms/class-admin.php:85
|
281 |
+
msgid ""
|
282 |
+
"No available fields. Did you select a MailChimp list in the form settings?"
|
283 |
+
msgstr "Ingen tilgængelige felter. Har du valgt en MailChimp liste i formular indstillingerne?"
|
284 |
+
|
285 |
+
#: includes/forms/class-admin.php:86
|
286 |
+
msgid "Optional"
|
287 |
+
msgstr "Valgfri"
|
288 |
+
|
289 |
+
#: includes/forms/class-admin.php:87
|
290 |
+
msgid "Placeholder"
|
291 |
+
msgstr "Placeholder"
|
292 |
+
|
293 |
+
#: includes/forms/class-admin.php:88
|
294 |
+
msgid "Text to show when field has no value."
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: includes/forms/class-admin.php:89
|
298 |
+
msgid "Preselect"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: includes/forms/class-admin.php:90
|
302 |
+
msgid "Remove"
|
303 |
+
msgstr ""
|
304 |
+
|
305 |
+
#: includes/forms/class-admin.php:91
|
306 |
+
msgid "Radio buttons"
|
307 |
+
msgstr ""
|
308 |
+
|
309 |
+
#: includes/forms/class-admin.php:92
|
310 |
+
msgid "Street Address"
|
311 |
+
msgstr ""
|
312 |
+
|
313 |
+
#: includes/forms/class-admin.php:93
|
314 |
+
msgid "State"
|
315 |
+
msgstr ""
|
316 |
+
|
317 |
+
#: includes/forms/class-admin.php:95
|
318 |
+
msgid "Submit button"
|
319 |
+
msgstr ""
|
320 |
+
|
321 |
+
#: includes/forms/class-admin.php:96
|
322 |
+
msgid "Wrap in paragraph tags?"
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: includes/forms/class-admin.php:97
|
326 |
+
msgid "Value"
|
327 |
+
msgstr ""
|
328 |
+
|
329 |
+
#: includes/forms/class-admin.php:98
|
330 |
+
msgid "Text to prefill this field with."
|
331 |
+
msgstr ""
|
332 |
+
|
333 |
+
#: includes/forms/class-admin.php:99
|
334 |
+
msgid "ZIP"
|
335 |
+
msgstr ""
|
336 |
+
|
337 |
+
#: includes/forms/class-admin.php111, includes/forms/class-admin.php112,
|
338 |
+
#: includes/forms/views/edit-form.php:24
|
339 |
msgid "Forms"
|
340 |
msgstr "Formularer"
|
341 |
|
342 |
+
#: includes/forms/class-admin.php152, includes/forms/class-admin.php:276
|
343 |
msgid "<strong>Success!</strong> Form successfully saved."
|
344 |
msgstr "<strong>Succes!</strong> Formular er nu gemt."
|
345 |
|
346 |
+
#: includes/forms/class-admin.php:276
|
347 |
msgid "Preview form"
|
348 |
msgstr "Vis formular"
|
349 |
|
350 |
+
#: includes/forms/class-admin.php449, includes/forms/class-widget.php:30
|
351 |
+
msgid "MailChimp Sign-Up Form"
|
352 |
+
msgstr "MailChimp tilmeldings formular"
|
353 |
|
354 |
+
#: includes/forms/class-admin.php:453
|
355 |
+
msgid "Select the form to show"
|
356 |
+
msgstr ""
|
357 |
|
358 |
+
#: includes/forms/class-form-previewer.php:146
|
359 |
msgid "Form preview"
|
360 |
msgstr "Vis formular"
|
361 |
|
362 |
+
#: includes/forms/class-form-tags.php:60
|
363 |
msgid "Replaced with the form response (error or success messages)."
|
364 |
msgstr "Erstattet med formularens svar (fejl eller succes meddelelser)."
|
365 |
|
366 |
+
#: includes/forms/class-form-tags.php:65
|
367 |
msgid "Data from the URL or a submitted form."
|
368 |
msgstr "Data fra URL eller en indsendt formular."
|
369 |
|
370 |
+
#: includes/forms/class-form-tags.php:71
|
371 |
+
msgid "Data from a cookie."
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: includes/forms/class-form-tags.php77,
|
375 |
#: includes/integrations/class-integration-tags.php:45
|
376 |
msgid "Replaced with the number of subscribers on the selected list(s)"
|
377 |
msgstr "Erstattet med antallet af abonnenter på den valgte liste(r)"
|
378 |
|
379 |
+
#: includes/forms/class-form-tags.php:82
|
380 |
msgid "The email address of the current visitor (if known)."
|
381 |
msgstr "Email-adressen på den aktuelle besøgende (hvis kendt)."
|
382 |
|
383 |
+
#: includes/forms/class-form-tags.php:87
|
384 |
msgid "The URL of the page."
|
385 |
msgstr "Sidens URL"
|
386 |
|
387 |
+
#: includes/forms/class-form-tags.php:92
|
388 |
msgid "The path of the page."
|
389 |
msgstr "Sidens sti"
|
390 |
|
391 |
+
#: includes/forms/class-form-tags.php:97
|
392 |
msgid "The current date. Example: %s."
|
393 |
msgstr "Den aktuelle dato. Eksempel: %s."
|
394 |
|
395 |
+
#: includes/forms/class-form-tags.php:102
|
396 |
msgid "The current time. Example: %s."
|
397 |
msgstr "Den aktuelle tid. Eksempel: %s."
|
398 |
|
399 |
+
#: includes/forms/class-form-tags.php:107
|
400 |
msgid "The site's language. Example: %s."
|
401 |
msgstr "Webstedets sprog. Eksempel: %s."
|
402 |
|
403 |
+
#: includes/forms/class-form-tags.php:112
|
404 |
msgid "The visitor's IP address. Example: %s."
|
405 |
msgstr "Den besøgendes IP-adresse. Eksempel: %s."
|
406 |
|
407 |
+
#: includes/forms/class-form-tags.php:117
|
408 |
msgid "The property of the currently logged-in user."
|
409 |
msgstr "Ejet af den bruger som er logget på."
|
410 |
|
411 |
+
#: includes/forms/class-form-tags.php:123
|
412 |
+
msgid "Property of the current page or post."
|
413 |
+
msgstr ""
|
414 |
+
|
415 |
+
#: includes/forms/class-form.php:133
|
416 |
msgid "There is no form with ID %d, perhaps it was deleted?"
|
417 |
msgstr "Der er ingen formular med ID %d, måske er den blev slettet?"
|
418 |
|
420 |
msgid "Newsletter"
|
421 |
msgstr "Nyhedsbrev"
|
422 |
|
|
|
|
|
|
|
|
|
423 |
#: includes/forms/class-widget.php:32
|
424 |
msgid "Displays your MailChimp for WordPress sign-up form"
|
425 |
msgstr "Viser din MailChimp for WordPress tilmeldings formular"
|
434 |
" form settings</a>."
|
435 |
msgstr "Du kan redigere din tilmeldings formular i <a href=“%s”>MailChimp til WordPress farmular indstillinger.</a>"
|
436 |
|
437 |
+
#: includes/integrations/class-admin.php79,
|
438 |
+
#: includes/integrations/class-admin.php80,
|
439 |
+
#: includes/integrations/views/integration-settings.php10,
|
440 |
+
#: includes/integrations/views/integrations.php57,
|
441 |
+
#: includes/integrations/views/integrations.php:65
|
442 |
+
msgid "Integrations"
|
443 |
+
msgstr "Integrationer"
|
444 |
+
|
445 |
+
#: includes/views/general-settings.php7, includes/views/other-settings.php58,
|
446 |
+
#: includes/forms/views/edit-form.php22,
|
447 |
+
#: includes/integrations/views/integration-settings.php8,
|
448 |
+
#: includes/integrations/views/integrations.php:55
|
449 |
+
msgid "You are here: "
|
450 |
+
msgstr "Du er her:"
|
451 |
+
|
452 |
+
#: includes/views/general-settings.php:18
|
453 |
+
msgid "General Settings"
|
454 |
+
msgstr "Generelle indstillinger"
|
455 |
+
|
456 |
+
#: includes/views/general-settings.php:38
|
457 |
+
msgid "Status"
|
458 |
+
msgstr "Status"
|
459 |
+
|
460 |
+
#: includes/views/general-settings.php:42
|
461 |
+
msgid "CONNECTED"
|
462 |
+
msgstr "TILSLUTTET"
|
463 |
+
|
464 |
+
#: includes/views/general-settings.php:44
|
465 |
+
msgid "NOT CONNECTED"
|
466 |
+
msgstr "IKKE TILSLUTTET"
|
467 |
+
|
468 |
+
#: includes/views/general-settings.php:51
|
469 |
+
msgid "API Key"
|
470 |
+
msgstr "API nøgle"
|
471 |
+
|
472 |
+
#: includes/views/general-settings.php:53
|
473 |
+
msgid "Your MailChimp API key"
|
474 |
+
msgstr "Din MailChimp API nøgle"
|
475 |
+
|
476 |
+
#: includes/views/general-settings.php:55
|
477 |
+
msgid "The API key for connecting with your MailChimp account."
|
478 |
+
msgstr "API nøgle til at forbinde med din MailChimp konto."
|
479 |
+
|
480 |
+
#: includes/views/general-settings.php:56
|
481 |
+
msgid "Get your API key here."
|
482 |
+
msgstr "Få din API nøgle her."
|
483 |
+
|
484 |
+
#: includes/views/other-settings.php:14
|
485 |
+
msgid "Miscellaneous settings"
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: includes/views/other-settings.php:17
|
489 |
+
msgid "Usage Tracking"
|
490 |
+
msgstr "Anvendelse Sporing"
|
491 |
+
|
492 |
+
#: includes/views/other-settings.php:29
|
493 |
+
msgid ""
|
494 |
+
"Allow us to anonymously track how this plugin is used to help us make it "
|
495 |
+
"better fit your needs."
|
496 |
+
msgstr "Tillad os at anonymt spore, hvor dette plugin bruges, for at hjælpe os med at få det bedre at passe til dine behov."
|
497 |
+
|
498 |
+
#: includes/views/other-settings.php:31
|
499 |
+
msgid "This is what we track."
|
500 |
+
msgstr "Dette er hvad vi sporer."
|
501 |
+
|
502 |
+
#: includes/views/other-settings.php:37
|
503 |
+
msgid "Logging"
|
504 |
+
msgstr ""
|
505 |
+
|
506 |
+
#: includes/views/other-settings.php:44
|
507 |
+
msgid ""
|
508 |
+
"Determines what events should be written to <a href=\"%s\">the debug log</a>"
|
509 |
+
" (see below)."
|
510 |
+
msgstr ""
|
511 |
+
|
512 |
+
#: includes/views/other-settings.php:99
|
513 |
+
msgid "Debug Log"
|
514 |
+
msgstr ""
|
515 |
+
|
516 |
+
#: includes/views/other-settings.php:99
|
517 |
+
msgid "Filter.."
|
518 |
+
msgstr ""
|
519 |
+
|
520 |
+
#: includes/views/other-settings.php:104
|
521 |
+
msgid "Log file is not writable."
|
522 |
+
msgstr ""
|
523 |
+
|
524 |
+
#: includes/views/other-settings.php:105
|
525 |
+
msgid "Please ensure %s has the proper <a href=\"%s\">file permissions</a>."
|
526 |
+
msgstr ""
|
527 |
+
|
528 |
+
#: includes/views/other-settings.php:123
|
529 |
+
msgid "Nothing here. Which means there are no errors!"
|
530 |
+
msgstr ""
|
531 |
+
|
532 |
+
#: includes/views/other-settings.php:133
|
533 |
+
msgid "Empty Log"
|
534 |
+
msgstr ""
|
535 |
+
|
536 |
+
#: includes/views/other-settings.php:141
|
537 |
+
msgid "Right now, the plugin is configured to only log errors and warnings."
|
538 |
+
msgstr ""
|
539 |
+
|
540 |
+
#: includes/admin/migrations/3.0.0-form-1-post-type.php:35
|
541 |
+
msgid "Default sign-up form"
|
542 |
+
msgstr "Standard tilmeldings formular"
|
543 |
+
|
544 |
+
#: includes/forms/views/add-form.php10, includes/forms/views/add-form.php:60
|
545 |
msgid "Add new form"
|
546 |
msgstr "Tilføj ny formular"
|
547 |
|
569 |
msgid "Messages"
|
570 |
msgstr "Beskeder"
|
571 |
|
572 |
+
#: includes/forms/views/edit-form.php:7
|
573 |
+
msgid "Appearance"
|
574 |
+
msgstr "Udseende"
|
575 |
+
|
576 |
+
#: includes/forms/views/edit-form.php:25
|
577 |
+
msgid "Form"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: includes/forms/views/edit-form.php:34
|
581 |
+
msgid "Edit Form"
|
582 |
+
msgstr "Redigér formular"
|
583 |
+
|
584 |
+
#: includes/forms/views/edit-form.php:58
|
585 |
+
msgid "Enter form title here"
|
586 |
+
msgstr "Indtast formular titel her"
|
587 |
+
|
588 |
+
#: includes/forms/views/edit-form.php:59
|
589 |
+
msgid "Enter the title of your sign-up form"
|
590 |
+
msgstr "Indtast titlen på din tilmeldings formular"
|
591 |
+
|
592 |
+
#: includes/forms/views/edit-form.php:65
|
593 |
+
msgid "Shortcode"
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: includes/forms/views/edit-form.php:67
|
597 |
+
msgid "Get shortcode"
|
598 |
+
msgstr "Få “shortcode”"
|
599 |
+
|
600 |
+
#: includes/forms/views/edit-form.php:72
|
601 |
+
msgid "Preview this form"
|
602 |
+
msgstr "Vis formular"
|
603 |
+
|
604 |
+
#: includes/integrations/views/integration-settings.php:20
|
605 |
+
msgid "%s integration"
|
606 |
+
msgstr "%s integration"
|
607 |
+
|
608 |
+
#: includes/integrations/views/integration-settings.php:27
|
609 |
+
msgid ""
|
610 |
+
"The selected MailChimp lists require non-default fields, which may prevent "
|
611 |
+
"this integration from working."
|
612 |
+
msgstr "De valgte MailChimp lister kræver ikke-standard felter, som kan hindre denne integration i at fungere."
|
613 |
+
|
614 |
+
#: includes/integrations/views/integration-settings.php:28
|
615 |
+
msgid ""
|
616 |
+
"Please ensure you <a href=\"%s\">configure the plugin to send all required "
|
617 |
+
"fields</a> or <a href=\"%s\">log into your MailChimp account</a> and make "
|
618 |
+
"sure only the email & name fields are marked as required fields for the "
|
619 |
+
"selected list(s)."
|
620 |
+
msgstr "Kontroller, at du <a href=“%s”>konfigurerer dette plugin til at sende alle nødvendige felter</a> eller <a href=“%s”>log ind på din MailChimp konto</a> og sørg for kun de e-mail & navne felter der er påkrævet for den valgte liste(r) er markeret."
|
621 |
+
|
622 |
+
#: includes/integrations/views/integration-settings.php:62
|
623 |
+
msgid "Enabled?"
|
624 |
+
msgstr "Aktiveret?"
|
625 |
+
|
626 |
+
#: includes/integrations/views/integration-settings.php:66
|
627 |
+
msgid ""
|
628 |
+
"Enable the %s integration? This will add a sign-up checkbox to the form."
|
629 |
+
msgstr "Aktiver %s integration? Dette vil tilføje et tilmeldings afkrydsningsboks til formularen."
|
630 |
+
|
631 |
+
#: includes/integrations/views/integration-settings.php:76
|
632 |
+
msgid "Implicit?"
|
633 |
+
msgstr "Underforstået?"
|
634 |
+
|
635 |
+
#: includes/integrations/views/integration-settings.php:80
|
636 |
+
msgid ""
|
637 |
+
"Select \"no\" if you want to ask your visitors before they are subscribed "
|
638 |
+
"(recommended)."
|
639 |
+
msgstr "Vælg “nej”, hvis du ønsker at spørge dine besøgende, før de bliver tilmeldt (anbefales)."
|
640 |
+
|
641 |
+
#: includes/integrations/views/integration-settings.php:90
|
642 |
+
msgid "MailChimp Lists"
|
643 |
+
msgstr "MailChimp Lister"
|
644 |
+
|
645 |
+
#: includes/integrations/views/integration-settings.php:103
|
646 |
+
msgid ""
|
647 |
+
"Select the list(s) to which people who check the checkbox should be "
|
648 |
+
"subscribed."
|
649 |
+
msgstr "Vælg liste(r), som folk, der afkrydser afkrydsningsfeltet skal tilmeldes."
|
650 |
+
|
651 |
+
#: includes/integrations/views/integration-settings.php107,
|
652 |
+
#: includes/forms/views/tabs/form-settings.php:18
|
653 |
+
msgid "No lists found, <a href=\"%s\">are you connected to MailChimp</a>?"
|
654 |
+
msgstr "Ingen lister fundet, <a href=“%s”>er du forbundet til MailChimp?</a>"
|
655 |
+
|
656 |
+
#: includes/integrations/views/integration-settings.php:116
|
657 |
+
msgid "Checkbox label text"
|
658 |
+
msgstr "Afkrydsningsfelt label tekst"
|
659 |
+
|
660 |
+
#: includes/integrations/views/integration-settings.php:119
|
661 |
+
msgid "HTML tags like %s are allowed in the label text."
|
662 |
+
msgstr "HTML-tags som %s er tilladt i labelen tekst."
|
663 |
+
|
664 |
+
#: includes/integrations/views/integration-settings.php:129
|
665 |
+
msgid "Pre-check the checkbox?"
|
666 |
+
msgstr "Marker afkrydsningsfeltet?"
|
667 |
+
|
668 |
+
#: includes/integrations/views/integration-settings.php:133
|
669 |
+
msgid "Select \"yes\" if the checkbox should be pre-checked."
|
670 |
+
msgstr "Vælg “ja”, hvis afkrydsningsfeltet skal være markeret."
|
671 |
+
|
672 |
+
#: includes/integrations/views/integration-settings.php:141
|
673 |
+
msgid "Load some default CSS?"
|
674 |
+
msgstr "Indlæs noget standard CSS?"
|
675 |
+
|
676 |
+
#: includes/integrations/views/integration-settings.php:145
|
677 |
+
msgid "Select \"yes\" if the checkbox appears in a weird place."
|
678 |
+
msgstr "Vælg “ja”, hvis afkrydsningsfeltet vises et mærkeligt sted."
|
679 |
+
|
680 |
+
#: includes/integrations/views/integration-settings.php:152
|
681 |
+
msgid "Double opt-in?"
|
682 |
+
msgstr "Dobbelt opt-in?"
|
683 |
+
|
684 |
+
#: includes/integrations/views/integration-settings.php:163
|
685 |
+
msgid ""
|
686 |
+
"Select \"yes\" if you want people to confirm their email address before "
|
687 |
+
"being subscribed (recommended)"
|
688 |
+
msgstr "Vælg “Ja”, hvis du vil have folk til at bekræfte deres e-mail adresse, før de tilmeldes (anbefales)"
|
689 |
+
|
690 |
+
#: includes/integrations/views/integration-settings.php171,
|
691 |
+
#: includes/forms/views/tabs/form-settings.php:52
|
692 |
+
msgid "Update existing subscribers?"
|
693 |
+
msgstr "Opdatere eksisterende abonnenter?"
|
694 |
+
|
695 |
+
#: includes/integrations/views/integration-settings.php181,
|
696 |
+
#: includes/forms/views/tabs/form-settings.php:62
|
697 |
+
msgid ""
|
698 |
+
"Select \"yes\" if you want to update existing subscribers with the data that"
|
699 |
+
" is sent."
|
700 |
+
msgstr "Vælg “Ja”, hvis du ønsker at opdatere eksisterende abonnenter med de data, der sendes."
|
701 |
+
|
702 |
+
#: includes/integrations/views/integration-settings.php190,
|
703 |
+
#: includes/forms/views/tabs/form-settings.php:68
|
704 |
+
msgid "Replace interest groups?"
|
705 |
+
msgstr "Udskift interesse grupper?"
|
706 |
+
|
707 |
+
#: includes/integrations/views/integration-settings.php201,
|
708 |
+
#: includes/forms/views/tabs/form-settings.php:79
|
709 |
+
msgid ""
|
710 |
+
"Select \"no\" if you want to add the selected interests to any previously "
|
711 |
+
"selected interests when updating a subscriber."
|
712 |
+
msgstr ""
|
713 |
+
|
714 |
+
#: includes/integrations/views/integration-settings.php202,
|
715 |
+
#: includes/forms/views/tabs/form-settings.php:80
|
716 |
+
msgid "What does this do?"
|
717 |
+
msgstr "Hvad gør denne?"
|
718 |
+
|
719 |
+
#: includes/integrations/views/integrations.php:17
|
720 |
+
msgid "Name"
|
721 |
+
msgstr "Navn"
|
722 |
+
|
723 |
+
#: includes/integrations/views/integrations.php:18
|
724 |
+
msgid "Description"
|
725 |
+
msgstr "Beskrivelse"
|
726 |
+
|
727 |
+
#: includes/integrations/views/integrations.php:35
|
728 |
+
msgid "Configure this integration"
|
729 |
+
msgstr "Konfigurere denne integration"
|
730 |
+
|
731 |
+
#: includes/integrations/views/integrations.php:71
|
732 |
+
msgid "The table below shows all available integrations."
|
733 |
+
msgstr ""
|
734 |
+
|
735 |
+
#: includes/integrations/views/integrations.php:72
|
736 |
+
msgid ""
|
737 |
+
"Click on the name of an integration to edit all settings specific to that "
|
738 |
+
"integration."
|
739 |
+
msgstr ""
|
740 |
+
|
741 |
+
#: includes/integrations/views/integrations.php:79
|
742 |
+
msgid "Enabled integrations"
|
743 |
+
msgstr ""
|
744 |
+
|
745 |
+
#: includes/integrations/views/integrations.php:84
|
746 |
+
msgid "Available integrations"
|
747 |
+
msgstr ""
|
748 |
+
|
749 |
+
#: includes/views/parts/admin-footer.php:15
|
750 |
+
msgid ""
|
751 |
+
"MailChimp for WordPress is in need of translations. Is the plugin not "
|
752 |
+
"translated in your language or do you spot errors with the current "
|
753 |
+
"translations? Helping out is easy! Head over to <a href=\"%s\">the "
|
754 |
+
"translation project and click \"help translate\"</a>."
|
755 |
+
msgstr "MailChimp til WordPress har behov for oversættelser. Er dette plugin ikke oversat på dit sprog, eller har du fundet fejl i de nuværende oversættelser? At hjælpe til er nemt! Smut over til <a href=“%s”>oversættelses projektet og klik på “hjælp med at oversætte”.</a>"
|
756 |
+
|
757 |
+
#: includes/views/parts/admin-footer.php:35
|
758 |
+
msgid ""
|
759 |
+
"This plugin is not developed by or affiliated with MailChimp in any way."
|
760 |
+
msgstr "Dette plugin er ikke udviklet af eller tilknyttet MailChimp på nogen måde."
|
761 |
+
|
762 |
+
#: includes/views/parts/admin-sidebar.php:11
|
763 |
+
msgid "Looking for help?"
|
764 |
+
msgstr ""
|
765 |
+
|
766 |
+
#: includes/views/parts/admin-sidebar.php:12
|
767 |
+
msgid "We have some resources available to help you in the right direction."
|
768 |
+
msgstr ""
|
769 |
+
|
770 |
+
#: includes/views/parts/admin-sidebar.php:14
|
771 |
+
msgid "Knowledge Base"
|
772 |
+
msgstr ""
|
773 |
+
|
774 |
+
#: includes/views/parts/admin-sidebar.php:15
|
775 |
+
msgid "Frequently Asked Questions"
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: includes/views/parts/admin-sidebar.php:16
|
779 |
+
msgid "Code reference for developers"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: includes/views/parts/admin-sidebar.php:36
|
783 |
+
msgid "Looking to improve your sign-up rates?"
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: includes/views/parts/admin-sidebar.php:37
|
787 |
+
msgid ""
|
788 |
+
"Our <a href=\"%s\">Boxzilla plugin</a> allows you to create pop-ups or "
|
789 |
+
"slide-ins with a subscribe form. A sure way to grow your lists faster."
|
790 |
+
msgstr ""
|
791 |
+
|
792 |
+
#: includes/views/parts/lists-overview.php:1
|
793 |
+
msgid "Your MailChimp Account"
|
794 |
+
msgstr "Din MailChimp konto"
|
795 |
+
|
796 |
+
#: includes/views/parts/lists-overview.php:2
|
797 |
+
msgid ""
|
798 |
+
"The table below shows your MailChimp lists and their details. If you just "
|
799 |
+
"applied changes to your MailChimp lists, please use the following button to "
|
800 |
+
"renew the cached lists configuration."
|
801 |
+
msgstr "Tabellen nedenfor viser dine MailChimp lister og deres detaljer. Hvis du lige har tilføjet ændringer til en af dine MailChimp lister, skal du bruge følgende knap for at forny “lagerede lister konfigurationen”."
|
802 |
+
|
803 |
+
#: includes/views/parts/lists-overview.php:17
|
804 |
+
msgid "No lists were found in your MailChimp account"
|
805 |
+
msgstr "Ingen lister blev fundet i din MailChimp konto"
|
806 |
|
807 |
+
#: includes/views/parts/lists-overview.php:19
|
808 |
+
msgid "A total of %d lists were found in your MailChimp account."
|
809 |
+
msgstr "Der blev i alt fundet % d lister på din MailChimp konto."
|
|
|
|
|
|
|
810 |
|
811 |
+
#: includes/views/parts/lists-overview.php:24
|
812 |
+
msgid "List Name"
|
813 |
+
msgstr "Liste Navn"
|
814 |
|
815 |
+
#: includes/views/parts/lists-overview.php:25
|
816 |
+
msgid "ID"
|
817 |
+
msgstr "ID"
|
818 |
|
819 |
+
#: includes/views/parts/lists-overview.php:26
|
820 |
+
msgid "Subscribers"
|
821 |
+
msgstr "Abonnenter"
|
822 |
|
823 |
+
#: includes/views/parts/lists-overview.php:48
|
824 |
+
msgid "Edit this list in MailChimp"
|
825 |
+
msgstr "Redigere denne liste i MailChimp"
|
826 |
|
827 |
+
#: includes/views/parts/lists-overview.php:62
|
828 |
+
msgid "%s (%s) with field type %s."
|
829 |
+
msgstr "%s (%s) med felttype %s."
|
830 |
|
831 |
+
#: includes/forms/views/parts/add-fields-help.php4,
|
832 |
#: includes/forms/views/tabs/form-fields.php:10
|
833 |
msgid "Add more fields"
|
834 |
msgstr "Tilføj flere felter"
|
865 |
"changes."
|
866 |
msgstr "Klik på følgende knap for at få MailChimp for WordPress indsamle dine ændringer."
|
867 |
|
|
|
|
|
|
|
|
|
|
|
868 |
#: includes/forms/views/parts/dynamic-content-tags.php:6
|
869 |
msgid "Add dynamic form variable"
|
870 |
msgstr "Tilføj dynamisk formular variabel"
|
937 |
msgid "Enter the HTML code for your form fields.."
|
938 |
msgstr "Indtast HTML-kode til dit formularfelter .."
|
939 |
|
940 |
+
#: includes/forms/views/tabs/form-fields.php:26
|
|
|
|
|
|
|
|
|
941 |
msgid ""
|
942 |
"Use the shortcode %s to display this form inside a post, page or text "
|
943 |
"widget."
|
944 |
msgstr "Brug denne shortcode%s for at vise denne formular i en post, side eller tekst widget."
|
945 |
|
946 |
+
#: includes/forms/views/tabs/form-messages.php:6
|
947 |
msgid "Form Messages"
|
948 |
msgstr "Formular beskeder"
|
949 |
|
950 |
+
#: includes/forms/views/tabs/form-messages.php:16
|
951 |
msgid "Successfully subscribed"
|
952 |
msgstr "Du er nu tilmeldt"
|
953 |
|
954 |
+
#: includes/forms/views/tabs/form-messages.php:19
|
955 |
msgid ""
|
956 |
"The text that shows when an email address is successfully subscribed to the "
|
957 |
"selected list(s)."
|
958 |
msgstr "Den tekst, der viser, hvornår en email adresse er korrekt tilmeldt den valgte liste(r)."
|
959 |
|
960 |
+
#: includes/forms/views/tabs/form-messages.php:23
|
961 |
msgid "Invalid email address"
|
962 |
msgstr "Ugyldig email adresse"
|
963 |
|
964 |
+
#: includes/forms/views/tabs/form-messages.php:26
|
965 |
msgid "The text that shows when an invalid email address is given."
|
966 |
msgstr "Den tekst, der viser, hvornår en ugyldig email adresse er givet."
|
967 |
|
968 |
+
#: includes/forms/views/tabs/form-messages.php:30
|
969 |
msgid "Required field missing"
|
970 |
msgstr "Påkrævet felt mangler"
|
971 |
|
972 |
+
#: includes/forms/views/tabs/form-messages.php:33
|
973 |
msgid ""
|
974 |
"The text that shows when a required field for the selected list(s) is "
|
975 |
"missing."
|
976 |
msgstr "Den tekst, der viser, hvornår et obligatorisk felt for den valgte liste(r) mangler."
|
977 |
|
978 |
+
#: includes/forms/views/tabs/form-messages.php:37
|
979 |
msgid "Already subscribed"
|
980 |
msgstr "Allerede tilmeldt"
|
981 |
|
982 |
+
#: includes/forms/views/tabs/form-messages.php:40
|
983 |
msgid ""
|
984 |
"The text that shows when the given email is already subscribed to the "
|
985 |
"selected list(s)."
|
986 |
msgstr "Den tekst, der viser, hvornår en email adresse allerede er tilmeldt den valgte liste(r)."
|
987 |
|
988 |
+
#: includes/forms/views/tabs/form-messages.php:44
|
989 |
msgid "General error"
|
990 |
msgstr "Generel fejl"
|
991 |
|
992 |
+
#: includes/forms/views/tabs/form-messages.php:47
|
993 |
msgid "The text that shows when a general error occured."
|
994 |
msgstr "Den tekst, der viser, at en generel fejl er opstået."
|
995 |
|
996 |
+
#: includes/forms/views/tabs/form-messages.php:51
|
997 |
msgid "Unsubscribed"
|
998 |
msgstr "Afmeldt"
|
999 |
|
1000 |
+
#: includes/forms/views/tabs/form-messages.php:54
|
1001 |
msgid ""
|
1002 |
"When using the unsubscribe method, this is the text that shows when the "
|
1003 |
"given email address is successfully unsubscribed from the selected list(s)."
|
1004 |
msgstr "Ved brug af “afmeld metoden”, er dette den tekst, der viser, hvornår den givne e-mail adresse er afmeldt den valgte liste (r)."
|
1005 |
|
1006 |
+
#: includes/forms/views/tabs/form-messages.php:58
|
1007 |
msgid "Not subscribed"
|
1008 |
msgstr "Ikke tilmeldt"
|
1009 |
|
1010 |
+
#: includes/forms/views/tabs/form-messages.php:61
|
1011 |
msgid ""
|
1012 |
"When using the unsubscribe method, this is the text that shows when the "
|
1013 |
"given email address is not on the selected list(s)."
|
1014 |
msgstr "Ved brug af “afmelde metode”, er dette den tekst, der viser, hvis den givne email adressen ikke er på den valgte liste (r)."
|
1015 |
|
1016 |
+
#: includes/forms/views/tabs/form-messages.php:65
|
1017 |
+
msgid "No list selected"
|
1018 |
+
msgstr ""
|
1019 |
+
|
1020 |
+
#: includes/forms/views/tabs/form-messages.php:68
|
1021 |
+
msgid ""
|
1022 |
+
"When offering a list choice, this is the text that shows when no lists were "
|
1023 |
+
"selected."
|
1024 |
+
msgstr ""
|
1025 |
+
|
1026 |
+
#: includes/forms/views/tabs/form-messages.php:74
|
1027 |
+
msgid "Updated"
|
1028 |
+
msgstr ""
|
1029 |
+
|
1030 |
+
#: includes/forms/views/tabs/form-messages.php:77
|
1031 |
+
msgid "The text that shows when an existing subscriber is updated."
|
1032 |
+
msgstr ""
|
1033 |
+
|
1034 |
+
#: includes/forms/views/tabs/form-messages.php:89
|
1035 |
msgid "HTML tags like %s are allowed in the message fields."
|
1036 |
msgstr "HTML-tags som %s er tilladt i besked felterne."
|
1037 |
|
1043 |
msgid "MailChimp specific settings"
|
1044 |
msgstr "MailChimp specifikke indstillinger"
|
1045 |
|
1046 |
+
#: includes/forms/views/tabs/form-settings.php:15
|
1047 |
msgid "Lists this form subscribes to"
|
1048 |
msgstr "Lister denne formular abonnerer på"
|
1049 |
|
1050 |
+
#: includes/forms/views/tabs/form-settings.php:31
|
|
|
|
|
|
|
|
|
|
|
1051 |
msgid ""
|
1052 |
"Select the list(s) to which people who submit this form should be "
|
1053 |
"subscribed."
|
1054 |
msgstr "Vælg liste(r), som folk, der indsender denne formular skal tilmeldes på."
|
1055 |
|
1056 |
+
#: includes/forms/views/tabs/form-settings.php:37
|
1057 |
msgid "Use double opt-in?"
|
1058 |
msgstr "Brug dobbelt opt-in?"
|
1059 |
|
1060 |
+
#: includes/forms/views/tabs/form-settings.php:44
|
1061 |
+
msgid "Are you sure you want to disable double opt-in?"
|
1062 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1063 |
|
1064 |
+
#: includes/forms/views/tabs/form-settings.php:47
|
|
|
1065 |
msgid ""
|
1066 |
+
"We strongly suggest keeping double opt-in enabled. Disabling double opt-in "
|
1067 |
+
"may result in abuse."
|
1068 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
1069 |
|
1070 |
+
#: includes/forms/views/tabs/form-settings.php:94
|
1071 |
msgid "Form behaviour"
|
1072 |
msgstr "Formular adfærd"
|
1073 |
|
1074 |
+
#: includes/forms/views/tabs/form-settings.php:104
|
1075 |
msgid "Hide form after a successful sign-up?"
|
1076 |
msgstr "Skjul formular efter en vellykket tilmelding?"
|
1077 |
|
1078 |
+
#: includes/forms/views/tabs/form-settings.php:115
|
1079 |
msgid "Select \"yes\" to hide the form fields after a successful sign-up."
|
1080 |
msgstr "Vælg “Ja” for at skjule formularfelterne efter en vellykket tilmelding."
|
1081 |
|
1082 |
+
#: includes/forms/views/tabs/form-settings.php:120
|
1083 |
msgid "Redirect to URL after successful sign-ups"
|
1084 |
msgstr "Omdiriger til URL efter vellykkede tilmelding"
|
1085 |
|
1086 |
+
#: includes/forms/views/tabs/form-settings.php:122
|
1087 |
msgid "Example: %s"
|
1088 |
msgstr "Eksempel: %s"
|
1089 |
|
1090 |
+
#: includes/forms/views/tabs/form-settings.php:123
|
1091 |
msgid ""
|
1092 |
"Leave empty or enter <code>0</code> for no redirect. Otherwise, use complete"
|
1093 |
" (absolute) URLs, including <code>http://</code>."
|
1094 |
msgstr "Efterlad tomt eller indtast <code>0</code> for ingen omdirigering. Ellers skal du bruge komplet (absolut) URL’er, herunder <code>http://</code>"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/mailchimp-for-wp-fr_FR.mo
CHANGED
Binary file
|
languages/mailchimp-for-wp-fr_FR.po
CHANGED
@@ -18,13 +18,15 @@
|
|
18 |
# Mamadou Gaye Diop <ridialass@gmail.com>, 2016
|
19 |
# Marie Chausse <mariechausse83@gmail.com>, 2016
|
20 |
# Martin Dulude <mdulude@duludeit.ca>, 2017
|
|
|
|
|
21 |
# sleininger <stef.leininger@gmail.com>, 2014
|
22 |
# Yan Chardard <ychardard@gmail.com>, 2016
|
23 |
msgid ""
|
24 |
msgstr ""
|
25 |
"Project-Id-Version: MailChimp for WordPress\n"
|
26 |
-
"PO-Revision-Date: 2017-
|
27 |
-
"Last-Translator:
|
28 |
"Language-Team: French (France) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/fr_FR/)\n"
|
29 |
"MIME-Version: 1.0\n"
|
30 |
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -113,7 +115,7 @@ msgid ""
|
|
113 |
"Be notified whenever someone subscribes? <a href=\"%s\">MailChimp for "
|
114 |
"WordPress Premium</a> allows you to set up email notifications for your "
|
115 |
"forms."
|
116 |
-
msgstr ""
|
117 |
|
118 |
#: includes/admin/class-ads.php:56
|
119 |
msgid ""
|
@@ -124,13 +126,13 @@ msgstr ""
|
|
124 |
|
125 |
#: includes/admin/class-ads.php:70
|
126 |
msgid "Upgrade to Premium"
|
127 |
-
msgstr ""
|
128 |
|
129 |
#: includes/admin/class-ads.php:83
|
130 |
msgid ""
|
131 |
"Do you want translated forms for all of your languages? <a href=\"%s\">Try "
|
132 |
"MailChimp for WordPress Premium</a>, which does just that plus more."
|
133 |
-
msgstr ""
|
134 |
|
135 |
#: includes/admin/class-ads.php:88
|
136 |
msgid ""
|
@@ -224,7 +226,7 @@ msgstr "Choisissez un champ à ajouter au formulaire"
|
|
224 |
|
225 |
#: includes/forms/class-admin.php:68
|
226 |
msgid "Close"
|
227 |
-
msgstr ""
|
228 |
|
229 |
#: includes/forms/class-admin.php:69
|
230 |
msgid "Country"
|
@@ -236,7 +238,7 @@ msgstr "Liste déroulante"
|
|
236 |
|
237 |
#: includes/forms/class-admin.php:71
|
238 |
msgid "Field type"
|
239 |
-
msgstr ""
|
240 |
|
241 |
#: includes/forms/class-admin.php:72
|
242 |
msgid "Field label"
|
@@ -282,7 +284,7 @@ msgstr ""
|
|
282 |
|
283 |
#: includes/forms/class-admin.php:82
|
284 |
msgid "List fields"
|
285 |
-
msgstr ""
|
286 |
|
287 |
#: includes/forms/class-admin.php:83
|
288 |
msgid "Min"
|
@@ -315,7 +317,7 @@ msgstr ""
|
|
315 |
|
316 |
#: includes/forms/class-admin.php:90
|
317 |
msgid "Remove"
|
318 |
-
msgstr ""
|
319 |
|
320 |
#: includes/forms/class-admin.php:91
|
321 |
msgid "Radio buttons"
|
@@ -323,11 +325,11 @@ msgstr "Boutons radio"
|
|
323 |
|
324 |
#: includes/forms/class-admin.php:92
|
325 |
msgid "Street Address"
|
326 |
-
msgstr ""
|
327 |
|
328 |
#: includes/forms/class-admin.php:93
|
329 |
msgid "State"
|
330 |
-
msgstr ""
|
331 |
|
332 |
#: includes/forms/class-admin.php:95
|
333 |
msgid "Submit button"
|
@@ -339,7 +341,7 @@ msgstr ""
|
|
339 |
|
340 |
#: includes/forms/class-admin.php:97
|
341 |
msgid "Value"
|
342 |
-
msgstr ""
|
343 |
|
344 |
#: includes/forms/class-admin.php:98
|
345 |
msgid "Text to prefill this field with."
|
@@ -347,7 +349,7 @@ msgstr "Libellé utilisé pour remplir ce champ."
|
|
347 |
|
348 |
#: includes/forms/class-admin.php:99
|
349 |
msgid "ZIP"
|
350 |
-
msgstr ""
|
351 |
|
352 |
#: includes/forms/class-admin.php111, includes/forms/class-admin.php112,
|
353 |
#: includes/forms/views/edit-form.php:24
|
@@ -368,7 +370,7 @@ msgstr "Formulaire d’enregistrement à MailChimp"
|
|
368 |
|
369 |
#: includes/forms/class-admin.php:453
|
370 |
msgid "Select the form to show"
|
371 |
-
msgstr ""
|
372 |
|
373 |
#: includes/forms/class-form-previewer.php:146
|
374 |
msgid "Form preview"
|
@@ -384,7 +386,7 @@ msgstr "Données de l\"URL ou d'un formulaire envoyé."
|
|
384 |
|
385 |
#: includes/forms/class-form-tags.php:71
|
386 |
msgid "Data from a cookie."
|
387 |
-
msgstr ""
|
388 |
|
389 |
#: includes/forms/class-form-tags.php77,
|
390 |
#: includes/integrations/class-integration-tags.php:45
|
@@ -425,7 +427,7 @@ msgstr "La propriété de l'utilisateur connecté."
|
|
425 |
|
426 |
#: includes/forms/class-form-tags.php:123
|
427 |
msgid "Property of the current page or post."
|
428 |
-
msgstr ""
|
429 |
|
430 |
#: includes/forms/class-form.php:133
|
431 |
msgid "There is no form with ID %d, perhaps it was deleted?"
|
@@ -478,7 +480,7 @@ msgstr "CONNECTÉ"
|
|
478 |
|
479 |
#: includes/views/general-settings.php:44
|
480 |
msgid "NOT CONNECTED"
|
481 |
-
msgstr "NON
|
482 |
|
483 |
#: includes/views/general-settings.php:51
|
484 |
msgid "API Key"
|
@@ -498,7 +500,7 @@ msgstr "Récupérez votre clé API ici."
|
|
498 |
|
499 |
#: includes/views/other-settings.php:14
|
500 |
msgid "Miscellaneous settings"
|
501 |
-
msgstr ""
|
502 |
|
503 |
#: includes/views/other-settings.php:17
|
504 |
msgid "Usage Tracking"
|
@@ -530,7 +532,7 @@ msgstr "Trace de mise au point"
|
|
530 |
|
531 |
#: includes/views/other-settings.php:99
|
532 |
msgid "Filter.."
|
533 |
-
msgstr "
|
534 |
|
535 |
#: includes/views/other-settings.php:104
|
536 |
msgid "Log file is not writable."
|
@@ -590,7 +592,7 @@ msgstr "Apparence"
|
|
590 |
|
591 |
#: includes/forms/views/edit-form.php:25
|
592 |
msgid "Form"
|
593 |
-
msgstr ""
|
594 |
|
595 |
#: includes/forms/views/edit-form.php:34
|
596 |
msgid "Edit Form"
|
@@ -792,7 +794,7 @@ msgstr "Foire Aux Questions"
|
|
792 |
|
793 |
#: includes/views/parts/admin-sidebar.php:16
|
794 |
msgid "Code reference for developers"
|
795 |
-
msgstr ""
|
796 |
|
797 |
#: includes/views/parts/admin-sidebar.php:36
|
798 |
msgid "Looking to improve your sign-up rates?"
|
@@ -1074,13 +1076,13 @@ msgstr "Utiliser le double opt-in ?"
|
|
1074 |
|
1075 |
#: includes/forms/views/tabs/form-settings.php:44
|
1076 |
msgid "Are you sure you want to disable double opt-in?"
|
1077 |
-
msgstr ""
|
1078 |
|
1079 |
#: includes/forms/views/tabs/form-settings.php:47
|
1080 |
msgid ""
|
1081 |
"We strongly suggest keeping double opt-in enabled. Disabling double opt-in "
|
1082 |
"may result in abuse."
|
1083 |
-
msgstr ""
|
1084 |
|
1085 |
#: includes/forms/views/tabs/form-settings.php:94
|
1086 |
msgid "Form behaviour"
|
18 |
# Mamadou Gaye Diop <ridialass@gmail.com>, 2016
|
19 |
# Marie Chausse <mariechausse83@gmail.com>, 2016
|
20 |
# Martin Dulude <mdulude@duludeit.ca>, 2017
|
21 |
+
# Sabrina Antunez <sabrina.antunez@hotmail.com>, 2017
|
22 |
+
# rafie <s.rafie@gmail.com>, 2017
|
23 |
# sleininger <stef.leininger@gmail.com>, 2014
|
24 |
# Yan Chardard <ychardard@gmail.com>, 2016
|
25 |
msgid ""
|
26 |
msgstr ""
|
27 |
"Project-Id-Version: MailChimp for WordPress\n"
|
28 |
+
"PO-Revision-Date: 2017-05-04 15:20+0000\n"
|
29 |
+
"Last-Translator: Sabrina Antunez <sabrina.antunez@hotmail.com>\n"
|
30 |
"Language-Team: French (France) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/fr_FR/)\n"
|
31 |
"MIME-Version: 1.0\n"
|
32 |
"Content-Type: text/plain; charset=UTF-8\n"
|
115 |
"Be notified whenever someone subscribes? <a href=\"%s\">MailChimp for "
|
116 |
"WordPress Premium</a> allows you to set up email notifications for your "
|
117 |
"forms."
|
118 |
+
msgstr "Recevoir une notification chaque fois que quelqu'un s'abonne ? <a href=\"%s\"> La version Premium de MailChimp pour WordPress</a> vous permet de mettre en place des emails de notification pour vos formulaires."
|
119 |
|
120 |
#: includes/admin/class-ads.php:56
|
121 |
msgid ""
|
126 |
|
127 |
#: includes/admin/class-ads.php:70
|
128 |
msgid "Upgrade to Premium"
|
129 |
+
msgstr "Passez à la version supérieure"
|
130 |
|
131 |
#: includes/admin/class-ads.php:83
|
132 |
msgid ""
|
133 |
"Do you want translated forms for all of your languages? <a href=\"%s\">Try "
|
134 |
"MailChimp for WordPress Premium</a>, which does just that plus more."
|
135 |
+
msgstr "Vous souhaitez avoir des formulaires traduits pour toutes vos langues ? <a href=\"%s\"> Essayez la version Premium de MailChimp pour Wordpress </a>, qui inclue ce détail supplémentaire."
|
136 |
|
137 |
#: includes/admin/class-ads.php:88
|
138 |
msgid ""
|
226 |
|
227 |
#: includes/forms/class-admin.php:68
|
228 |
msgid "Close"
|
229 |
+
msgstr "Fermer"
|
230 |
|
231 |
#: includes/forms/class-admin.php:69
|
232 |
msgid "Country"
|
238 |
|
239 |
#: includes/forms/class-admin.php:71
|
240 |
msgid "Field type"
|
241 |
+
msgstr "Type de champ"
|
242 |
|
243 |
#: includes/forms/class-admin.php:72
|
244 |
msgid "Field label"
|
284 |
|
285 |
#: includes/forms/class-admin.php:82
|
286 |
msgid "List fields"
|
287 |
+
msgstr "Lister les champs"
|
288 |
|
289 |
#: includes/forms/class-admin.php:83
|
290 |
msgid "Min"
|
317 |
|
318 |
#: includes/forms/class-admin.php:90
|
319 |
msgid "Remove"
|
320 |
+
msgstr "Retirer"
|
321 |
|
322 |
#: includes/forms/class-admin.php:91
|
323 |
msgid "Radio buttons"
|
325 |
|
326 |
#: includes/forms/class-admin.php:92
|
327 |
msgid "Street Address"
|
328 |
+
msgstr "Nom de la rue"
|
329 |
|
330 |
#: includes/forms/class-admin.php:93
|
331 |
msgid "State"
|
332 |
+
msgstr "État"
|
333 |
|
334 |
#: includes/forms/class-admin.php:95
|
335 |
msgid "Submit button"
|
341 |
|
342 |
#: includes/forms/class-admin.php:97
|
343 |
msgid "Value"
|
344 |
+
msgstr "Valeur"
|
345 |
|
346 |
#: includes/forms/class-admin.php:98
|
347 |
msgid "Text to prefill this field with."
|
349 |
|
350 |
#: includes/forms/class-admin.php:99
|
351 |
msgid "ZIP"
|
352 |
+
msgstr "zip"
|
353 |
|
354 |
#: includes/forms/class-admin.php111, includes/forms/class-admin.php112,
|
355 |
#: includes/forms/views/edit-form.php:24
|
370 |
|
371 |
#: includes/forms/class-admin.php:453
|
372 |
msgid "Select the form to show"
|
373 |
+
msgstr "Choisissez le formulaire à afficher"
|
374 |
|
375 |
#: includes/forms/class-form-previewer.php:146
|
376 |
msgid "Form preview"
|
386 |
|
387 |
#: includes/forms/class-form-tags.php:71
|
388 |
msgid "Data from a cookie."
|
389 |
+
msgstr "Données à partir d'un cookie"
|
390 |
|
391 |
#: includes/forms/class-form-tags.php77,
|
392 |
#: includes/integrations/class-integration-tags.php:45
|
427 |
|
428 |
#: includes/forms/class-form-tags.php:123
|
429 |
msgid "Property of the current page or post."
|
430 |
+
msgstr "Propriété de la page ou de l'article actuels"
|
431 |
|
432 |
#: includes/forms/class-form.php:133
|
433 |
msgid "There is no form with ID %d, perhaps it was deleted?"
|
480 |
|
481 |
#: includes/views/general-settings.php:44
|
482 |
msgid "NOT CONNECTED"
|
483 |
+
msgstr "NON CONNECTÉ"
|
484 |
|
485 |
#: includes/views/general-settings.php:51
|
486 |
msgid "API Key"
|
500 |
|
501 |
#: includes/views/other-settings.php:14
|
502 |
msgid "Miscellaneous settings"
|
503 |
+
msgstr "Réglages divers"
|
504 |
|
505 |
#: includes/views/other-settings.php:17
|
506 |
msgid "Usage Tracking"
|
532 |
|
533 |
#: includes/views/other-settings.php:99
|
534 |
msgid "Filter.."
|
535 |
+
msgstr "Filtrer.."
|
536 |
|
537 |
#: includes/views/other-settings.php:104
|
538 |
msgid "Log file is not writable."
|
592 |
|
593 |
#: includes/forms/views/edit-form.php:25
|
594 |
msgid "Form"
|
595 |
+
msgstr "Formulaire"
|
596 |
|
597 |
#: includes/forms/views/edit-form.php:34
|
598 |
msgid "Edit Form"
|
794 |
|
795 |
#: includes/views/parts/admin-sidebar.php:16
|
796 |
msgid "Code reference for developers"
|
797 |
+
msgstr "Code de référence pour les développeurs"
|
798 |
|
799 |
#: includes/views/parts/admin-sidebar.php:36
|
800 |
msgid "Looking to improve your sign-up rates?"
|
1076 |
|
1077 |
#: includes/forms/views/tabs/form-settings.php:44
|
1078 |
msgid "Are you sure you want to disable double opt-in?"
|
1079 |
+
msgstr "Etes-vous sûr de vouloir désactiver la double validation d'abonnement ?"
|
1080 |
|
1081 |
#: includes/forms/views/tabs/form-settings.php:47
|
1082 |
msgid ""
|
1083 |
"We strongly suggest keeping double opt-in enabled. Disabling double opt-in "
|
1084 |
"may result in abuse."
|
1085 |
+
msgstr "Nous vous recommandons fortement de conserver l'option de double validation d'abonnement activée. En la désactivant, vos emails pourraient être considérés comme non spams."
|
1086 |
|
1087 |
#: includes/forms/views/tabs/form-settings.php:94
|
1088 |
msgid "Form behaviour"
|
languages/mailchimp-for-wp-nl_NL.mo
CHANGED
Binary file
|
languages/mailchimp-for-wp-nl_NL.po
CHANGED
@@ -1,76 +1,30 @@
|
|
1 |
-
# Copyright (C)
|
2 |
-
# This file is distributed under the same license as the
|
3 |
# Translators:
|
4 |
-
# Danny van Kooten <dannyvankooten@gmail.com>, 2014-
|
5 |
# Eelco Martens <eelco.martens@gmail.com>, 2015
|
6 |
# Form App <formappmobile@gmail.com>, 2016
|
|
|
7 |
# Martijn van Egmond <developer@tensheep.nl>, 2015
|
8 |
# Yola Maas <post@basicsoflive.nl>, 2016
|
9 |
msgid ""
|
10 |
msgstr ""
|
11 |
"Project-Id-Version: MailChimp for WordPress\n"
|
12 |
-
"
|
13 |
-
"
|
14 |
-
"PO-Revision-Date: 2016-07-05 08:40+0000\n"
|
15 |
-
"Last-Translator: Danny van Kooten <dannyvankooten@gmail.com>\n"
|
16 |
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/nl_NL/)\n"
|
17 |
"MIME-Version: 1.0\n"
|
18 |
"Content-Type: text/plain; charset=UTF-8\n"
|
19 |
"Content-Transfer-Encoding: 8bit\n"
|
20 |
"Language: nl_NL\n"
|
21 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
-
#:
|
24 |
-
msgid "Email address"
|
25 |
-
msgstr "Emailadres"
|
26 |
-
|
27 |
-
#: config/default-form-content.php:4
|
28 |
-
msgid "Your email address"
|
29 |
-
msgstr "Jouw emailadres"
|
30 |
-
|
31 |
-
#: config/default-form-content.php:5
|
32 |
-
msgid "Sign up"
|
33 |
-
msgstr "Inschrijven"
|
34 |
-
|
35 |
-
#: config/default-form-messages.php:5
|
36 |
-
msgid ""
|
37 |
-
"Thank you, your sign-up request was successful! Please check your email "
|
38 |
-
"inbox to confirm."
|
39 |
-
msgstr "Dankjewel, je inschrijfverzoek was succesvol. Controleer je email inbox voor 'n bevestiging."
|
40 |
-
|
41 |
-
#: config/default-form-messages.php:9
|
42 |
-
msgid "Oops. Something went wrong. Please try again later."
|
43 |
-
msgstr "Oeps, er ging iets fout. Probeer het aub later opnieuw."
|
44 |
-
|
45 |
-
#: config/default-form-messages.php:13
|
46 |
-
msgid "Please provide a valid email address."
|
47 |
-
msgstr "Geef een geldig emailadres in."
|
48 |
-
|
49 |
-
#: config/default-form-messages.php:17
|
50 |
-
msgid "Given email address is already subscribed, thank you!"
|
51 |
-
msgstr "Dit emailadres is reeds ingeschreven, dankjewel!"
|
52 |
-
|
53 |
-
#: config/default-form-messages.php:21
|
54 |
-
msgid "Please fill in the required fields."
|
55 |
-
msgstr "Vul aub de verplichte velden in."
|
56 |
-
|
57 |
-
#: config/default-form-messages.php:25
|
58 |
-
msgid "You were successfully unsubscribed."
|
59 |
-
msgstr "Je bent succesvol uitgeschreven."
|
60 |
-
|
61 |
-
#: config/default-form-messages.php:29
|
62 |
-
msgid "Given email address is not subscribed."
|
63 |
-
msgstr "Dit emailadres is niet ingeschreven."
|
64 |
-
|
65 |
-
#: config/default-form-messages.php:33
|
66 |
-
msgid "Please select at least one list."
|
67 |
-
msgstr "Selecteer ten minste 1 lijst."
|
68 |
-
|
69 |
-
#: config/default-integration-options.php:5
|
70 |
-
msgid "Sign me up for the newsletter!"
|
71 |
-
msgstr "Schrijf me in voor de nieuwsbrief!"
|
72 |
-
|
73 |
-
#: includes/admin/class-admin-texts.php:62
|
74 |
#: includes/forms/views/edit-form.php:6
|
75 |
msgid "Settings"
|
76 |
msgstr "Instellingen"
|
@@ -79,141 +33,388 @@ msgstr "Instellingen"
|
|
79 |
msgid "Documentation"
|
80 |
msgstr "Documentatie"
|
81 |
|
82 |
-
#: includes/admin/class-admin.php:
|
83 |
msgid ""
|
84 |
"Success! The cached configuration for your MailChimp lists has been renewed."
|
85 |
msgstr "Succes! De configuratie voor je MailChimp lijsten is ververst."
|
86 |
|
87 |
-
#: includes/admin/class-admin.php:
|
88 |
msgid ""
|
89 |
"This is a pro-only feature. Please upgrade to the premium version to be able"
|
90 |
" to use it."
|
91 |
msgstr "Dit is een premium-feature. Upgrade naar de premium versie om deze te unlocken."
|
92 |
|
93 |
-
#: includes/admin/class-admin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
msgid "MailChimp API Settings"
|
95 |
msgstr "MailChimp API Instellingen"
|
96 |
|
97 |
-
#: includes/admin/class-admin.php:
|
98 |
-
#: integrations/ninja-forms/class-ninja-forms.php:34
|
99 |
msgid "MailChimp"
|
100 |
msgstr "MailChimp"
|
101 |
|
102 |
-
#: includes/admin/class-
|
103 |
-
|
104 |
-
|
|
|
105 |
|
106 |
-
#: includes/admin/class-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
msgid ""
|
108 |
-
"
|
109 |
-
"
|
110 |
-
msgstr "
|
111 |
|
112 |
-
#: includes/admin/class-ads.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
msgid "More subscribers, better newsletters."
|
114 |
msgstr "Meer abonnees, betere nieuwsbrieven."
|
115 |
|
116 |
-
#: includes/admin/class-ads.php:
|
117 |
msgid ""
|
118 |
"Learn how to best grow your lists & write better emails by subscribing to "
|
119 |
"our monthly tips."
|
120 |
-
msgstr "Leer hoe je
|
121 |
|
122 |
-
#: includes/admin/class-ads.php:
|
123 |
msgid "Email Address"
|
124 |
-
msgstr "
|
125 |
|
126 |
-
#: includes/admin/class-ads.php:
|
127 |
msgid "First Name"
|
128 |
msgstr "Voornaam"
|
129 |
|
130 |
-
#: includes/admin/class-ads.php:
|
131 |
msgid "Subscribe"
|
132 |
msgstr "Inschrijven"
|
133 |
|
134 |
-
#: includes/admin/class-
|
135 |
-
msgid "
|
136 |
-
|
|
|
|
|
137 |
|
138 |
-
#: includes/admin/
|
139 |
-
msgid "
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
|
142 |
-
#: includes/class-api.php:
|
143 |
msgid "Read more about common connectivity issues."
|
144 |
msgstr "Lees meer over veel voorkomende verbindingsproblemen."
|
145 |
|
146 |
-
#: includes/forms/class-admin.php:
|
147 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
msgid "Forms"
|
149 |
msgstr "Formulieren"
|
150 |
|
151 |
-
#: includes/forms/class-admin.
|
152 |
msgid "<strong>Success!</strong> Form successfully saved."
|
153 |
msgstr "<strong>Succes!</strong> Formulier succesvol opgeslagen."
|
154 |
|
155 |
-
#: includes/forms/class-admin.php:
|
156 |
msgid "Preview form"
|
157 |
msgstr "Voorbeeld formulier"
|
158 |
|
159 |
-
#: includes/forms/class-admin.php:
|
160 |
-
msgid "
|
161 |
-
msgstr "
|
162 |
|
163 |
-
#: includes/forms/class-admin.php:
|
164 |
-
msgid "
|
165 |
-
msgstr "
|
166 |
|
167 |
-
#: includes/forms/class-form-previewer.php:
|
168 |
msgid "Form preview"
|
169 |
msgstr "Formulier voorbeeld"
|
170 |
|
171 |
-
#: includes/forms/class-form-tags.php:
|
172 |
msgid "Replaced with the form response (error or success messages)."
|
173 |
msgstr "Wordt vervangen door de formulier response (fout- en succesmeldingen)."
|
174 |
|
175 |
-
#: includes/forms/class-form-tags.php:
|
176 |
msgid "Data from the URL or a submitted form."
|
177 |
-
msgstr "Data
|
178 |
|
179 |
-
#: includes/forms/class-form-tags.php:
|
|
|
|
|
|
|
|
|
180 |
#: includes/integrations/class-integration-tags.php:45
|
181 |
msgid "Replaced with the number of subscribers on the selected list(s)"
|
182 |
msgstr "Vervangen door het aantal subscribers op de geselecteerde lijst(en)"
|
183 |
|
184 |
-
#: includes/forms/class-form-tags.php:
|
185 |
msgid "The email address of the current visitor (if known)."
|
186 |
msgstr "Emailadres van huidige bezoeker (wanneer bekend)"
|
187 |
|
188 |
-
#: includes/forms/class-form-tags.php:
|
189 |
msgid "The URL of the page."
|
190 |
msgstr "De URL van de pagina."
|
191 |
|
192 |
-
#: includes/forms/class-form-tags.php:
|
193 |
msgid "The path of the page."
|
194 |
msgstr "Het codepad van de pagina"
|
195 |
|
196 |
-
#: includes/forms/class-form-tags.php:
|
197 |
msgid "The current date. Example: %s."
|
198 |
msgstr "De huidige datum. Voorbeeld: %S."
|
199 |
|
200 |
-
#: includes/forms/class-form-tags.php:
|
201 |
msgid "The current time. Example: %s."
|
202 |
msgstr "De huidige tijd. Voorbeeld: %S."
|
203 |
|
204 |
-
#: includes/forms/class-form-tags.php:
|
205 |
msgid "The site's language. Example: %s."
|
206 |
msgstr "Taal van de site. bijvoorbeeld: %s"
|
207 |
|
208 |
-
#: includes/forms/class-form-tags.php:
|
209 |
msgid "The visitor's IP address. Example: %s."
|
210 |
msgstr "Bezoekers IP adres. Bijvoorbeeld: %s."
|
211 |
|
212 |
-
#: includes/forms/class-form-tags.php:
|
213 |
msgid "The property of the currently logged-in user."
|
214 |
msgstr "De rechten van de huidige ingelogte gebruiker."
|
215 |
|
216 |
-
#: includes/forms/class-form.php:
|
|
|
|
|
|
|
|
|
217 |
msgid "There is no form with ID %d, perhaps it was deleted?"
|
218 |
msgstr "Er is geen formulier met ID %d. Is het verwijderd?"
|
219 |
|
@@ -221,10 +422,6 @@ msgstr "Er is geen formulier met ID %d. Is het verwijderd?"
|
|
221 |
msgid "Newsletter"
|
222 |
msgstr "Nieuwsbrief"
|
223 |
|
224 |
-
#: includes/forms/class-widget.php:30
|
225 |
-
msgid "MailChimp Sign-Up Form"
|
226 |
-
msgstr "MailChimp Inschrijfformulier"
|
227 |
-
|
228 |
#: includes/forms/class-widget.php:32
|
229 |
msgid "Displays your MailChimp for WordPress sign-up form"
|
230 |
msgstr "Toont je MailChimp voor WordPress inschrijfformulier"
|
@@ -239,7 +436,114 @@ msgid ""
|
|
239 |
" form settings</a>."
|
240 |
msgstr "Je kunt je inschrijfformulier wijzigen in de <a href=\"%s\">MailChimp voor WordPress formulier instellingen</a>."
|
241 |
|
242 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
msgid "Add new form"
|
244 |
msgstr "Voeg nieuw formulier toe"
|
245 |
|
@@ -267,38 +571,266 @@ msgstr "Velden"
|
|
267 |
msgid "Messages"
|
268 |
msgstr "Berichten"
|
269 |
|
270 |
-
#: includes/forms/views/edit-form.php:7
|
271 |
-
msgid "Appearance"
|
272 |
-
msgstr "Weergave"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
273 |
|
274 |
-
#: includes/
|
275 |
-
|
276 |
-
|
277 |
-
#: includes/views/general-settings.php:7
|
278 |
-
msgid "You are here: "
|
279 |
-
msgstr "Je bent hier:"
|
280 |
|
281 |
-
#: includes/
|
282 |
-
msgid "
|
283 |
-
msgstr "
|
284 |
|
285 |
-
#: includes/
|
286 |
-
msgid "
|
287 |
-
msgstr "
|
288 |
|
289 |
-
#: includes/
|
290 |
-
msgid "
|
291 |
-
msgstr "
|
292 |
|
293 |
-
#: includes/
|
294 |
-
msgid "
|
295 |
-
msgstr "
|
296 |
|
297 |
-
#: includes/
|
298 |
-
msgid "
|
299 |
-
msgstr "
|
300 |
|
301 |
-
#: includes/forms/views/parts/add-fields-help.
|
302 |
#: includes/forms/views/tabs/form-fields.php:10
|
303 |
msgid "Add more fields"
|
304 |
msgstr "Meer velden toevoegen"
|
@@ -335,11 +867,6 @@ msgid ""
|
|
335 |
"changes."
|
336 |
msgstr "Klik op de volgende knop, voor MailChimp voor Wordpress pick up en jouw wijzigingen"
|
337 |
|
338 |
-
#: includes/forms/views/parts/add-fields-help.php:43
|
339 |
-
#: includes/views/parts/lists-overview.php:8
|
340 |
-
msgid "Renew MailChimp lists"
|
341 |
-
msgstr "Vernieuw MailChimp lijsten"
|
342 |
-
|
343 |
#: includes/forms/views/parts/dynamic-content-tags.php:6
|
344 |
msgid "Add dynamic form variable"
|
345 |
msgstr "Voeg een dynamisch formulier variabelen toe"
|
@@ -412,87 +939,101 @@ msgstr "Formulier Velden"
|
|
412 |
msgid "Enter the HTML code for your form fields.."
|
413 |
msgstr "Voer de HTML code voor je formulier velden in."
|
414 |
|
415 |
-
#: includes/forms/views/tabs/form-fields.php:
|
416 |
-
msgid "Your form is missing the following (required) form fields:"
|
417 |
-
msgstr "Je formulier mist de volgende (verplichte) velden:"
|
418 |
-
|
419 |
-
#: includes/forms/views/tabs/form-fields.php:34
|
420 |
msgid ""
|
421 |
"Use the shortcode %s to display this form inside a post, page or text "
|
422 |
"widget."
|
423 |
msgstr "Gebruik de %s shortcode om dit formulier in een post, pagina of tekst widget te tonen."
|
424 |
|
425 |
-
#: includes/forms/views/tabs/form-messages.php:
|
426 |
msgid "Form Messages"
|
427 |
msgstr "Formulier Berichten"
|
428 |
|
429 |
-
#: includes/forms/views/tabs/form-messages.php:
|
430 |
msgid "Successfully subscribed"
|
431 |
msgstr "Succesvol ingeschreven"
|
432 |
|
433 |
-
#: includes/forms/views/tabs/form-messages.php:
|
434 |
msgid ""
|
435 |
"The text that shows when an email address is successfully subscribed to the "
|
436 |
"selected list(s)."
|
437 |
msgstr "De tekst die verschijnt wanneer een emailadres succesvol toegevoegd is aan de geselecteerde MailChimp lijst(en)."
|
438 |
|
439 |
-
#: includes/forms/views/tabs/form-messages.php:
|
440 |
msgid "Invalid email address"
|
441 |
msgstr "Ongeldig emailadres"
|
442 |
|
443 |
-
#: includes/forms/views/tabs/form-messages.php:
|
444 |
msgid "The text that shows when an invalid email address is given."
|
445 |
msgstr "De tekst die verschijnt wanneer een foutief email adres is ingevuld.Î"
|
446 |
|
447 |
-
#: includes/forms/views/tabs/form-messages.php:
|
448 |
msgid "Required field missing"
|
449 |
msgstr "Verplicht veld mist"
|
450 |
|
451 |
-
#: includes/forms/views/tabs/form-messages.php:
|
452 |
msgid ""
|
453 |
"The text that shows when a required field for the selected list(s) is "
|
454 |
"missing."
|
455 |
msgstr "De tekst die verschijnt wanneer een verplicht veld voor de geselecteerde MailChimp lijst(en) niet ingevuld is."
|
456 |
|
457 |
-
#: includes/forms/views/tabs/form-messages.php:
|
458 |
msgid "Already subscribed"
|
459 |
msgstr "Reeds ingeschreven"
|
460 |
|
461 |
-
#: includes/forms/views/tabs/form-messages.php:
|
462 |
msgid ""
|
463 |
"The text that shows when the given email is already subscribed to the "
|
464 |
"selected list(s)."
|
465 |
msgstr "De tekst die verschijnt wanneer het gegeven email adres reeds ingeschreven is op de geselecteerde MailChimp lijst(en)."
|
466 |
|
467 |
-
#: includes/forms/views/tabs/form-messages.php:
|
468 |
msgid "General error"
|
469 |
msgstr "Algemene fout"
|
470 |
|
471 |
-
#: includes/forms/views/tabs/form-messages.php:
|
472 |
msgid "The text that shows when a general error occured."
|
473 |
msgstr "De tekst die verschijnt wanneer een algemene fout optreedt."
|
474 |
|
475 |
-
#: includes/forms/views/tabs/form-messages.php:
|
476 |
msgid "Unsubscribed"
|
477 |
msgstr "Uitgeschreven"
|
478 |
|
479 |
-
#: includes/forms/views/tabs/form-messages.php:
|
480 |
msgid ""
|
481 |
"When using the unsubscribe method, this is the text that shows when the "
|
482 |
"given email address is successfully unsubscribed from the selected list(s)."
|
483 |
msgstr "Wanneer gebruik gemaakt wordt van de functie om zich uit te schrijven, is dit de tekst die getoond wordt wanneer het aangegeven e-mailadres succesvol is uitgeschreven van de geselecteerde lijst(en)."
|
484 |
|
485 |
-
#: includes/forms/views/tabs/form-messages.php:
|
486 |
msgid "Not subscribed"
|
487 |
msgstr "Niet ingeschreven"
|
488 |
|
489 |
-
#: includes/forms/views/tabs/form-messages.php:
|
490 |
msgid ""
|
491 |
"When using the unsubscribe method, this is the text that shows when the "
|
492 |
"given email address is not on the selected list(s)."
|
493 |
msgstr "Wanneer gebruik gemaakt wordt van de functie om zich uit te schrijven, is dit de tekst die getoond wordt wanneer het aangegeven e-mailadres niet voorkomt op de geselecteerde lijst(en)."
|
494 |
|
495 |
-
#: includes/forms/views/tabs/form-messages.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
496 |
msgid "HTML tags like %s are allowed in the message fields."
|
497 |
msgstr "HTML tags als %s zijn toegestaan in de meldingteksten."
|
498 |
|
@@ -504,379 +1045,52 @@ msgstr "Formulier Instellingen"
|
|
504 |
msgid "MailChimp specific settings"
|
505 |
msgstr "MailChimp specifieke instellingen"
|
506 |
|
507 |
-
#: includes/forms/views/tabs/form-settings.php:
|
508 |
msgid "Lists this form subscribes to"
|
509 |
msgstr "Lijsten op welke dit formulier inschrijft"
|
510 |
|
511 |
-
#: includes/forms/views/tabs/form-settings.php:
|
512 |
-
#: includes/integrations/views/integration-settings.php:93
|
513 |
-
msgid "No lists found, <a href=\"%s\">are you connected to MailChimp</a>?"
|
514 |
-
msgstr "Geen lijsten gevonden, <a href=\"%s\">ben je verbonden met je MailChimp account</a>?"
|
515 |
-
|
516 |
-
#: includes/forms/views/tabs/form-settings.php:29
|
517 |
msgid ""
|
518 |
"Select the list(s) to which people who submit this form should be "
|
519 |
"subscribed."
|
520 |
msgstr "Selecteer de lijst(en) aan welke mensen die dit formulier invullen toegevoegd moeten worden."
|
521 |
|
522 |
-
#: includes/forms/views/tabs/form-settings.php:
|
523 |
msgid "Use double opt-in?"
|
524 |
msgstr "Gebruik dubbele opt-in?"
|
525 |
|
526 |
-
#: includes/forms/views/tabs/form-settings.php:
|
527 |
-
|
528 |
-
|
529 |
-
#: includes/forms/views/tabs/form-settings.php:85
|
530 |
-
#: includes/forms/views/tabs/form-settings.php:115
|
531 |
-
#: includes/integrations/views/integration-settings.php:53
|
532 |
-
#: includes/integrations/views/integration-settings.php:66
|
533 |
-
#: includes/integrations/views/integration-settings.php:117
|
534 |
-
#: includes/integrations/views/integration-settings.php:129
|
535 |
-
#: includes/integrations/views/integration-settings.php:142
|
536 |
-
#: includes/integrations/views/integration-settings.php:163
|
537 |
-
#: includes/integrations/views/integration-settings.php:180
|
538 |
-
#: includes/integrations/views/integration-settings.php:199
|
539 |
-
#: integrations/contact-form-7/class-contact-form-7.php:69
|
540 |
-
msgid "Yes"
|
541 |
-
msgstr "Ja"
|
542 |
-
|
543 |
-
#: includes/forms/views/tabs/form-settings.php:43
|
544 |
-
#: includes/forms/views/tabs/form-settings.php:58
|
545 |
-
#: includes/forms/views/tabs/form-settings.php:73
|
546 |
-
#: includes/forms/views/tabs/form-settings.php:89
|
547 |
-
#: includes/forms/views/tabs/form-settings.php:119
|
548 |
-
#: includes/integrations/views/integration-settings.php:54
|
549 |
-
#: includes/integrations/views/integration-settings.php:67
|
550 |
-
#: includes/integrations/views/integration-settings.php:118
|
551 |
-
#: includes/integrations/views/integration-settings.php:130
|
552 |
-
#: includes/integrations/views/integration-settings.php:146
|
553 |
-
#: includes/integrations/views/integration-settings.php:167
|
554 |
-
#: includes/integrations/views/integration-settings.php:184
|
555 |
-
#: includes/integrations/views/integration-settings.php:203
|
556 |
-
#: integrations/contact-form-7/class-contact-form-7.php:69
|
557 |
-
msgid "No"
|
558 |
-
msgstr "Nee"
|
559 |
-
|
560 |
-
#: includes/forms/views/tabs/form-settings.php:45
|
561 |
-
#: includes/integrations/views/integration-settings.php:149
|
562 |
-
msgid ""
|
563 |
-
"Select \"yes\" if you want people to confirm their email address before "
|
564 |
-
"being subscribed (recommended)"
|
565 |
-
msgstr "Selecteer \"ja\" wanneer je wilt dat mensen hun emailadres moeten bevestigen alvorens ze aan je MailChimp lijst worden toegevoegd (aanbevolen)"
|
566 |
-
|
567 |
-
#: includes/forms/views/tabs/form-settings.php:50
|
568 |
-
msgid "Send final welcome email?"
|
569 |
-
msgstr "Verzend welkomstemail?"
|
570 |
-
|
571 |
-
#: includes/forms/views/tabs/form-settings.php:60
|
572 |
-
#: includes/integrations/views/integration-settings.php:169
|
573 |
-
msgid ""
|
574 |
-
"Select \"yes\" if you want to send your lists Welcome Email if a subscribe "
|
575 |
-
"succeeds (only when double opt-in is disabled)."
|
576 |
-
msgstr "Selecteer \"ja\" als je de \"Welcome Email\" wilt sturen naar nieuwe abonnees (enkel wanneer \"double opt-in\" uitgeschakeld is)"
|
577 |
-
|
578 |
-
#: includes/forms/views/tabs/form-settings.php:65
|
579 |
-
#: includes/integrations/views/integration-settings.php:176
|
580 |
-
msgid "Update existing subscribers?"
|
581 |
-
msgstr "Bestaande inschrijven updaten?"
|
582 |
-
|
583 |
-
#: includes/forms/views/tabs/form-settings.php:75
|
584 |
-
#: includes/integrations/views/integration-settings.php:186
|
585 |
-
msgid ""
|
586 |
-
"Select \"yes\" if you want to update existing subscribers with the data that"
|
587 |
-
" is sent."
|
588 |
-
msgstr "Selecteer \"ja\" als je bestaande abonnees wilt updaten met de gegeven data."
|
589 |
-
|
590 |
-
#: includes/forms/views/tabs/form-settings.php:81
|
591 |
-
#: includes/integrations/views/integration-settings.php:195
|
592 |
-
msgid "Replace interest groups?"
|
593 |
-
msgstr "Interessegroepen vervangen?"
|
594 |
|
595 |
-
#: includes/forms/views/tabs/form-settings.php:
|
596 |
-
#: includes/integrations/views/integration-settings.php:206
|
597 |
msgid ""
|
598 |
-
"
|
599 |
-
"
|
600 |
-
msgstr "
|
601 |
-
|
602 |
-
#: includes/forms/views/tabs/form-settings.php:93
|
603 |
-
#: includes/integrations/views/integration-settings.php:207
|
604 |
-
msgid "What does this do?"
|
605 |
-
msgstr "Wat doet dit?"
|
606 |
|
607 |
-
#: includes/forms/views/tabs/form-settings.php:
|
608 |
msgid "Form behaviour"
|
609 |
msgstr "'Gedrag' van het formuulier"
|
610 |
|
611 |
-
#: includes/forms/views/tabs/form-settings.php:
|
612 |
msgid "Hide form after a successful sign-up?"
|
613 |
msgstr "Verberg formulier na succesvolle inschrijvingen?"
|
614 |
|
615 |
-
#: includes/forms/views/tabs/form-settings.php:
|
616 |
msgid "Select \"yes\" to hide the form fields after a successful sign-up."
|
617 |
msgstr "Selecteer \"ja\" om de formuliervelden te verbergen na elke succesvolle inschrijving."
|
618 |
|
619 |
-
#: includes/forms/views/tabs/form-settings.php:
|
620 |
msgid "Redirect to URL after successful sign-ups"
|
621 |
msgstr "Doorsturen naar URL na succesvolle inschrijving"
|
622 |
|
623 |
-
#: includes/forms/views/tabs/form-settings.php:
|
624 |
msgid "Example: %s"
|
625 |
msgstr "Voorbeeld: %s"
|
626 |
|
627 |
-
#: includes/forms/views/tabs/form-settings.php:
|
628 |
msgid ""
|
629 |
"Leave empty or enter <code>0</code> for no redirect. Otherwise, use complete"
|
630 |
" (absolute) URLs, including <code>http://</code>."
|
631 |
msgstr "Laat leeg of vul <code>0</code> in voor geen doorverwijzing. Anders, gebruik complete (absolute) URL's, inclusief <code>http://</code>."
|
632 |
-
|
633 |
-
#: includes/integrations/class-admin.php:79
|
634 |
-
#: includes/integrations/class-admin.php:80
|
635 |
-
#: includes/integrations/views/integration-settings.php:10
|
636 |
-
#: includes/integrations/views/integrations.php:9
|
637 |
-
#: includes/integrations/views/integrations.php:17
|
638 |
-
msgid "Integrations"
|
639 |
-
msgstr "Integraties"
|
640 |
-
|
641 |
-
#: includes/integrations/views/integration-settings.php:20
|
642 |
-
msgid "%s integration"
|
643 |
-
msgstr "%s integratie"
|
644 |
-
|
645 |
-
#: includes/integrations/views/integration-settings.php:51
|
646 |
-
msgid "Enabled?"
|
647 |
-
msgstr "Ingeschakeld?"
|
648 |
-
|
649 |
-
#: includes/integrations/views/integration-settings.php:55
|
650 |
-
msgid ""
|
651 |
-
"Enable the %s integration? This will add a sign-up checkbox to the form."
|
652 |
-
msgstr "Schakel de %s integratie in? Dit zal een inschrijfoptie aan het formulier toevoegen."
|
653 |
-
|
654 |
-
#: includes/integrations/views/integration-settings.php:64
|
655 |
-
msgid "Implicit?"
|
656 |
-
msgstr "Impliciet?"
|
657 |
-
|
658 |
-
#: includes/integrations/views/integration-settings.php:68
|
659 |
-
msgid ""
|
660 |
-
"Select \"no\" if you want to ask your visitors before they are subscribed "
|
661 |
-
"(recommended)."
|
662 |
-
msgstr "Selecteer \"nee\" als je je bezoekers de optie wilt geven om in te kunnen schrijven (aanbevolen)."
|
663 |
-
|
664 |
-
#: includes/integrations/views/integration-settings.php:78
|
665 |
-
msgid "MailChimp Lists"
|
666 |
-
msgstr "MailChimp Lijsten"
|
667 |
-
|
668 |
-
#: includes/integrations/views/integration-settings.php:89
|
669 |
-
msgid ""
|
670 |
-
"Select the list(s) to which people who check the checkbox should be "
|
671 |
-
"subscribed."
|
672 |
-
msgstr "Selecteer de lijsten aan welke mensen die checkbox aanvinken toegevoegd zouden moeten worden."
|
673 |
-
|
674 |
-
#: includes/integrations/views/integration-settings.php:102
|
675 |
-
msgid "Checkbox label text"
|
676 |
-
msgstr "Checkbox label tekst"
|
677 |
-
|
678 |
-
#: includes/integrations/views/integration-settings.php:105
|
679 |
-
msgid "HTML tags like %s are allowed in the label text."
|
680 |
-
msgstr "HTML tags als %s zijn toegestaan in de label tekst."
|
681 |
-
|
682 |
-
#: includes/integrations/views/integration-settings.php:115
|
683 |
-
msgid "Pre-check the checkbox?"
|
684 |
-
msgstr "Vink de checkbox standaard aan?"
|
685 |
-
|
686 |
-
#: includes/integrations/views/integration-settings.php:119
|
687 |
-
msgid "Select \"yes\" if the checkbox should be pre-checked."
|
688 |
-
msgstr "Selecteer \"ja\" als de checkbox standaard aangevinkt moet zijn."
|
689 |
-
|
690 |
-
#: includes/integrations/views/integration-settings.php:127
|
691 |
-
msgid "Load some default CSS?"
|
692 |
-
msgstr "Laad standaard CSS?"
|
693 |
-
|
694 |
-
#: includes/integrations/views/integration-settings.php:131
|
695 |
-
msgid "Select \"yes\" if the checkbox appears in a weird place."
|
696 |
-
msgstr "Selecteer \"ja\" als de checkbox op een vreemde plaats verschijnt."
|
697 |
-
|
698 |
-
#: includes/integrations/views/integration-settings.php:138
|
699 |
-
msgid "Double opt-in?"
|
700 |
-
msgstr "Emailadres bevestigen?"
|
701 |
-
|
702 |
-
#: includes/integrations/views/integration-settings.php:159
|
703 |
-
msgid "Send Welcome Email?"
|
704 |
-
msgstr "Welkomstemail versturen?"
|
705 |
-
|
706 |
-
#: includes/integrations/views/integration-settings.php:244
|
707 |
-
msgid ""
|
708 |
-
"The selected MailChimp lists require non-default fields, which may prevent "
|
709 |
-
"this integration from working."
|
710 |
-
msgstr "De geselecteerde MailChimp lijst vereist niet-standaard velden, waardoor de integratie mogelijk niet zal werken."
|
711 |
-
|
712 |
-
#: includes/integrations/views/integration-settings.php:245
|
713 |
-
msgid ""
|
714 |
-
"Please ensure you <a href=\"%s\">configure the plugin to send all required "
|
715 |
-
"fields</a> or <a href=\"%s\">log into your MailChimp account</a> and make "
|
716 |
-
"sure only the email & name fields are marked as required fields for the "
|
717 |
-
"selected list(s)."
|
718 |
-
msgstr "Zorg ervoor dat je <a href=\"%s\"> om de plugin te configureren, alle verplichte velden </a> of <a href=\"%s\"> kunnen inloggen op je MailChimp account </a> en zorg ervoor dat alleen de e-mail en verzend naam velden zijn gemarkeerd als verplichte velden voor de geselecteerde lijst(en)."
|
719 |
-
|
720 |
-
#: includes/integrations/views/integrations.php:30
|
721 |
-
msgid "Enabled"
|
722 |
-
msgstr "Ingeschakeld"
|
723 |
-
|
724 |
-
#: includes/integrations/views/integrations.php:31
|
725 |
-
msgid "Name"
|
726 |
-
msgstr "Naam"
|
727 |
-
|
728 |
-
#: includes/integrations/views/integrations.php:32
|
729 |
-
msgid "Description"
|
730 |
-
msgstr "Omschrijving"
|
731 |
-
|
732 |
-
#: includes/integrations/views/integrations.php:50
|
733 |
-
msgid ""
|
734 |
-
"This integration is enabled by default as it requires manual actions to "
|
735 |
-
"work."
|
736 |
-
msgstr "Deze integratie is geblokkeerd omdat u het handmatig moet aanpassen om het te laten werken."
|
737 |
-
|
738 |
-
#: includes/integrations/views/integrations.php:57
|
739 |
-
msgid "Configure this integration"
|
740 |
-
msgstr "Configureer deze integratie"
|
741 |
-
|
742 |
-
#: includes/views/general-settings.php:18
|
743 |
-
msgid "General Settings"
|
744 |
-
msgstr "Algemene Instellingen"
|
745 |
-
|
746 |
-
#: includes/views/general-settings.php:35
|
747 |
-
msgid "Status"
|
748 |
-
msgstr "Status"
|
749 |
-
|
750 |
-
#: includes/views/general-settings.php:39
|
751 |
-
msgid "CONNECTED"
|
752 |
-
msgstr "VERBONDEN"
|
753 |
-
|
754 |
-
#: includes/views/general-settings.php:41
|
755 |
-
msgid "NOT CONNECTED"
|
756 |
-
msgstr "NIET VERBONDEN"
|
757 |
-
|
758 |
-
#: includes/views/general-settings.php:48
|
759 |
-
msgid "API Key"
|
760 |
-
msgstr "API Sleutel"
|
761 |
-
|
762 |
-
#: includes/views/general-settings.php:50
|
763 |
-
msgid "Your MailChimp API key"
|
764 |
-
msgstr "Je MailChimp API sleutel"
|
765 |
-
|
766 |
-
#: includes/views/general-settings.php:52
|
767 |
-
msgid "The API key for connecting with your MailChimp account."
|
768 |
-
msgstr "De API sleutel voor het verbinden met je MailChimp account."
|
769 |
-
|
770 |
-
#: includes/views/general-settings.php:53
|
771 |
-
msgid "Get your API key here."
|
772 |
-
msgstr "Verkrijg hier je API sleutel."
|
773 |
-
|
774 |
-
#: includes/views/general-settings.php:65
|
775 |
-
msgid "Usage Tracking"
|
776 |
-
msgstr "Gebruikstype bijhouden"
|
777 |
-
|
778 |
-
#: includes/views/general-settings.php:71
|
779 |
-
msgid ""
|
780 |
-
"Allow us to anonymously track how this plugin is used to help us make it "
|
781 |
-
"better fit your needs."
|
782 |
-
msgstr "Sta ons toe, anoniem, uw plugin te onderzoeken om u te helpen in beter gebruik voor uw noodzakelijkheden. "
|
783 |
-
|
784 |
-
#: includes/views/general-settings.php:73
|
785 |
-
msgid "This is what we track."
|
786 |
-
msgstr "Dit is wat we tracken."
|
787 |
-
|
788 |
-
#: includes/views/parts/admin-footer.php:11
|
789 |
-
msgid ""
|
790 |
-
"MailChimp for WordPress is in need of translations. Is the plugin not "
|
791 |
-
"translated in your language or do you spot errors with the current "
|
792 |
-
"translations? Helping out is easy! Head over to <a href=\"%s\">the "
|
793 |
-
"translation project and click \"help translate\"</a>."
|
794 |
-
msgstr "De MailChimp for WordPres plugin is op zoek naar vertalers. Is de plugin niet vertaald in jouw taal of heb je een fout in de vertalingen gespot? Helpen is makkelijk! Ga naar <a href=\"%s\">het vertaalproject op Transifex en klik op \"help translate\"</a>."
|
795 |
-
|
796 |
-
#: includes/views/parts/admin-footer.php:31
|
797 |
-
msgid ""
|
798 |
-
"This plugin is not developed by or affiliated with MailChimp in any way."
|
799 |
-
msgstr "Deze plugin is niet ontwikkeld of verbonden met MailChimp op welke manier dan ook."
|
800 |
-
|
801 |
-
#: includes/views/parts/lists-overview.php:1
|
802 |
-
msgid "Your MailChimp Account"
|
803 |
-
msgstr "Je MailChimp Account"
|
804 |
-
|
805 |
-
#: includes/views/parts/lists-overview.php:2
|
806 |
-
msgid ""
|
807 |
-
"The table below shows your MailChimp lists and their details. If you just "
|
808 |
-
"applied changes to your MailChimp lists, please use the following button to "
|
809 |
-
"renew the cached lists configuration."
|
810 |
-
msgstr "The tabel hieronder toont je MailChimp lijst configuratie. Wanneer je hier veranderingen aan hebt doorgevoerd die nog niet weergegeven worden kun je de volgende button gebruiken om je configuratie opnieuw in te laden."
|
811 |
-
|
812 |
-
#: includes/views/parts/lists-overview.php:14
|
813 |
-
msgid "No lists were found in your MailChimp account"
|
814 |
-
msgstr "Geen lijsten gevonden in je MailChimp account."
|
815 |
-
|
816 |
-
#: includes/views/parts/lists-overview.php:16
|
817 |
-
msgid "A total of %d lists were found in your MailChimp account."
|
818 |
-
msgstr "Een totaal van %d aan lijsten zijn gevonden in uw MailChimp account."
|
819 |
-
|
820 |
-
#: includes/views/parts/lists-overview.php:21
|
821 |
-
msgid "List Name"
|
822 |
-
msgstr "Lijstnaam"
|
823 |
-
|
824 |
-
#: includes/views/parts/lists-overview.php:22
|
825 |
-
msgid "ID"
|
826 |
-
msgstr "ID"
|
827 |
-
|
828 |
-
#: includes/views/parts/lists-overview.php:23
|
829 |
-
msgid "Subscribers"
|
830 |
-
msgstr "Abonnees"
|
831 |
-
|
832 |
-
#: includes/views/parts/lists-overview.php:45
|
833 |
-
msgid "Edit this list in MailChimp"
|
834 |
-
msgstr "Bewerk deze lijst in MailChimp"
|
835 |
-
|
836 |
-
#: includes/views/parts/lists-overview.php:59
|
837 |
-
msgid "%s (%s) with field type %s."
|
838 |
-
msgstr "%s(%s) met veldtype %s."
|
839 |
-
|
840 |
-
#: includes/views/parts/lists-overview.php:83
|
841 |
-
msgid "%s (ID: %s) with type %s."
|
842 |
-
msgstr "%s (ID:%s) met type %s."
|
843 |
-
|
844 |
-
#: integrations/contact-form-7/admin-before.php:2
|
845 |
-
msgid ""
|
846 |
-
"To integrate with Contact Form 7, configure the settings below and then add "
|
847 |
-
"%s to your CF7 form mark-up."
|
848 |
-
msgstr "Om te integreren met Contact Form 7, configureer de onderstaande instellingen en voeg %s toe aan de markering van het CF7 formulier."
|
849 |
-
|
850 |
-
#: integrations/custom/admin-before.php:2
|
851 |
-
msgid ""
|
852 |
-
"To get a custom integration to work, include the following HTML in the form "
|
853 |
-
"you are trying to integrate with."
|
854 |
-
msgstr "Om de aangepaste integratie te laten werken, voeg de volgende HTML in het formulier dat je probeert te integreren."
|
855 |
-
|
856 |
-
#: integrations/woocommerce/class-woocommerce.php:102
|
857 |
-
msgid "Order #%d"
|
858 |
-
msgstr "Bestelling #%d"
|
859 |
-
|
860 |
-
#. Plugin Name of the plugin/theme
|
861 |
-
msgid "MailChimp for WordPress"
|
862 |
-
msgstr "MailChimp voor WordPress"
|
863 |
-
|
864 |
-
#. Plugin URI of the plugin/theme
|
865 |
-
msgid ""
|
866 |
-
"https://mc4wp.com/#utm_source=wp-plugin&utm_medium=mailchimp-for-"
|
867 |
-
"wp&utm_campaign=plugins-page"
|
868 |
-
msgstr "https://mc4wp.com/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=plugins-page"
|
869 |
-
|
870 |
-
#. Description of the plugin/theme
|
871 |
-
msgid ""
|
872 |
-
"MailChimp for WordPress by ibericode. Adds various highly effective sign-up "
|
873 |
-
"methods to your site."
|
874 |
-
msgstr "MailChimp for WordPress door ibericode. Verschillende zeer effective inschrijfmethodes voor uw website."
|
875 |
-
|
876 |
-
#. Author of the plugin/theme
|
877 |
-
msgid "ibericode"
|
878 |
-
msgstr "ibericode"
|
879 |
-
|
880 |
-
#. Author URI of the plugin/theme
|
881 |
-
msgid "https://ibericode.com/"
|
882 |
-
msgstr "https://ibericode.com/"
|
1 |
+
# Copyright (C) 2017 mailchimp-for-wp
|
2 |
+
# This file is distributed under the same license as the mailchimp-for-wp package.
|
3 |
# Translators:
|
4 |
+
# Danny van Kooten <dannyvankooten@gmail.com>, 2014-2017
|
5 |
# Eelco Martens <eelco.martens@gmail.com>, 2015
|
6 |
# Form App <formappmobile@gmail.com>, 2016
|
7 |
+
# Maartje L <maartje2@hotmail.com>, 2017
|
8 |
# Martijn van Egmond <developer@tensheep.nl>, 2015
|
9 |
# Yola Maas <post@basicsoflive.nl>, 2016
|
10 |
msgid ""
|
11 |
msgstr ""
|
12 |
"Project-Id-Version: MailChimp for WordPress\n"
|
13 |
+
"PO-Revision-Date: 2017-05-08 08:23+0000\n"
|
14 |
+
"Last-Translator: Maartje L <maartje2@hotmail.com>\n"
|
|
|
|
|
15 |
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/nl_NL/)\n"
|
16 |
"MIME-Version: 1.0\n"
|
17 |
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
19 |
"Language: nl_NL\n"
|
20 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
21 |
+
"X-Poedit-Basepath: ..\n"
|
22 |
+
"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
|
23 |
+
"X-Poedit-SearchPath-0: .\n"
|
24 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
25 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
26 |
|
27 |
+
#: includes/admin/class-admin-texts.php62,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
#: includes/forms/views/edit-form.php:6
|
29 |
msgid "Settings"
|
30 |
msgstr "Instellingen"
|
33 |
msgid "Documentation"
|
34 |
msgstr "Documentatie"
|
35 |
|
36 |
+
#: includes/admin/class-admin.php:204
|
37 |
msgid ""
|
38 |
"Success! The cached configuration for your MailChimp lists has been renewed."
|
39 |
msgstr "Succes! De configuratie voor je MailChimp lijsten is ververst."
|
40 |
|
41 |
+
#: includes/admin/class-admin.php:304
|
42 |
msgid ""
|
43 |
"This is a pro-only feature. Please upgrade to the premium version to be able"
|
44 |
" to use it."
|
45 |
msgstr "Dit is een premium-feature. Upgrade naar de premium versie om deze te unlocken."
|
46 |
|
47 |
+
#: includes/admin/class-admin.php305,
|
48 |
+
#: includes/views/parts/lists-overview.php10,
|
49 |
+
#: includes/forms/views/parts/add-fields-help.php:43
|
50 |
+
msgid "Renew MailChimp lists"
|
51 |
+
msgstr "Vernieuw MailChimp lijsten"
|
52 |
+
|
53 |
+
#: includes/admin/class-admin.php:306
|
54 |
+
msgid "Fetching MailChimp lists"
|
55 |
+
msgstr "MailChimp-lijsten ophalen"
|
56 |
+
|
57 |
+
#: includes/admin/class-admin.php:307
|
58 |
+
msgid "Done! MailChimp lists renewed."
|
59 |
+
msgstr "Klaar! De MailChimp-lijsten zijn vernieuwd!"
|
60 |
+
|
61 |
+
#: includes/admin/class-admin.php:308
|
62 |
+
msgid "This can take a while if you have many MailChimp lists."
|
63 |
+
msgstr "Dit kan even duren als je veel MailChimp-lijsten hebt."
|
64 |
+
|
65 |
+
#: includes/admin/class-admin.php336, includes/views/general-settings.php:31
|
66 |
msgid "MailChimp API Settings"
|
67 |
msgstr "MailChimp API Instellingen"
|
68 |
|
69 |
+
#: includes/admin/class-admin.php:337
|
|
|
70 |
msgid "MailChimp"
|
71 |
msgstr "MailChimp"
|
72 |
|
73 |
+
#: includes/admin/class-admin.php343, includes/views/other-settings.php60,
|
74 |
+
#: includes/views/other-settings.php:70
|
75 |
+
msgid "Other Settings"
|
76 |
+
msgstr "Andere instellingen"
|
77 |
|
78 |
+
#: includes/admin/class-admin.php:344
|
79 |
+
msgid "Other"
|
80 |
+
msgstr "Overig"
|
81 |
+
|
82 |
+
#: includes/admin/class-admin.php:458
|
83 |
+
msgid "Log successfully emptied."
|
84 |
+
msgstr ""
|
85 |
+
|
86 |
+
#: includes/admin/class-admin.php:488
|
87 |
+
msgid ""
|
88 |
+
"To get started with MailChimp for WordPress, please <a href=\"%s\">enter "
|
89 |
+
"your MailChimp API key on the settings page of the plugin</a>."
|
90 |
+
msgstr "Ga aan de slag met MailChimp voor WordPress. <a href=\"%s\">Vul je MailChimp API-sleutel in op de instellingenpagina van de plugin</a>."
|
91 |
+
|
92 |
+
#: includes/admin/class-ads.php:39
|
93 |
+
msgid ""
|
94 |
+
"Want to customize the style of your form? <a href=\"%s\">Try our Styles "
|
95 |
+
"Builder</a> & edit the look of your forms with just a few clicks."
|
96 |
+
msgstr "Wil je de stijl van het formulier aanpassen? <a href=\"%s\">Probeer onze Styles Builder</a> en pas het uiterlijk van je formulieren aan in een paar klikjes."
|
97 |
+
|
98 |
+
#: includes/admin/class-ads.php:54
|
99 |
+
msgid ""
|
100 |
+
"Be notified whenever someone subscribes? <a href=\"%s\">MailChimp for "
|
101 |
+
"WordPress Premium</a> allows you to set up email notifications for your "
|
102 |
+
"forms."
|
103 |
+
msgstr "Wil je een melding bij een nieuwe inschrijving? Met <a href=\"%s\">MailChimp for WordPress Premium</a> kun je e-mailmeldingen instellen bij je formulieren."
|
104 |
+
|
105 |
+
#: includes/admin/class-ads.php:56
|
106 |
+
msgid ""
|
107 |
+
"Increased conversions? <a href=\"%s\">MailChimp for WordPress Premium</a> "
|
108 |
+
"submits forms without reloading the entire page, resulting in a much better "
|
109 |
+
"experience for your visitors."
|
110 |
+
msgstr ""
|
111 |
+
|
112 |
+
#: includes/admin/class-ads.php:70
|
113 |
+
msgid "Upgrade to Premium"
|
114 |
+
msgstr "Upgraden naar Premium"
|
115 |
+
|
116 |
+
#: includes/admin/class-ads.php:83
|
117 |
msgid ""
|
118 |
+
"Do you want translated forms for all of your languages? <a href=\"%s\">Try "
|
119 |
+
"MailChimp for WordPress Premium</a>, which does just that plus more."
|
120 |
+
msgstr ""
|
121 |
|
122 |
+
#: includes/admin/class-ads.php:88
|
123 |
+
msgid ""
|
124 |
+
"Do you want to create more than one form? Our Premium add-on does just that!"
|
125 |
+
" <a href=\"%s\">Have a look at all Premium benefits</a>."
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: includes/admin/class-ads.php:93
|
129 |
+
msgid ""
|
130 |
+
"Are you enjoying this plugin? The Premium add-on unlocks several powerful "
|
131 |
+
"features. <a href=\"%s\">Find out about all benefits now</a>."
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: includes/admin/class-ads.php:112
|
135 |
msgid "More subscribers, better newsletters."
|
136 |
msgstr "Meer abonnees, betere nieuwsbrieven."
|
137 |
|
138 |
+
#: includes/admin/class-ads.php:113
|
139 |
msgid ""
|
140 |
"Learn how to best grow your lists & write better emails by subscribing to "
|
141 |
"our monthly tips."
|
142 |
+
msgstr "Leer hoe je je lijst kan vergroten en schrijf betere emails door je in te schrijven voor onze maandelijkse tips"
|
143 |
|
144 |
+
#: includes/admin/class-ads.php:116
|
145 |
msgid "Email Address"
|
146 |
+
msgstr "Emailadres"
|
147 |
|
148 |
+
#: includes/admin/class-ads.php:120
|
149 |
msgid "First Name"
|
150 |
msgstr "Voornaam"
|
151 |
|
152 |
+
#: includes/admin/class-ads.php127, includes/forms/class-admin.php:94
|
153 |
msgid "Subscribe"
|
154 |
msgstr "Inschrijven"
|
155 |
|
156 |
+
#: includes/admin/class-ads.php:150
|
157 |
+
msgid ""
|
158 |
+
"Do you want to track all WooCommerce orders in MailChimp so you can send "
|
159 |
+
"emails based on the purchase activity of your subscribers?"
|
160 |
+
msgstr ""
|
161 |
|
162 |
+
#: includes/admin/class-ads.php:153
|
163 |
+
msgid ""
|
164 |
+
"<a href=\"%s\">Upgrade to MailChimp for WordPress Premium</a> or <a "
|
165 |
+
"href=\"%s\">read more about MailChimp's E-Commerce features</a>."
|
166 |
+
msgstr ""
|
167 |
+
|
168 |
+
#: includes/admin/class-review-notice.php:68
|
169 |
+
msgid ""
|
170 |
+
"You've been using MailChimp for WordPress for some time now; we hope you "
|
171 |
+
"love it!"
|
172 |
+
msgstr ""
|
173 |
+
|
174 |
+
#: includes/admin/class-review-notice.php:69
|
175 |
+
msgid ""
|
176 |
+
"If you do, please <a href=\"%s\">leave us a 5★ rating on WordPress.org</a>. "
|
177 |
+
"It would be of great help to us."
|
178 |
+
msgstr ""
|
179 |
+
|
180 |
+
#: includes/admin/class-review-notice.php:71
|
181 |
+
msgid "Dismiss this notice."
|
182 |
+
msgstr ""
|
183 |
|
184 |
+
#: includes/api/class-api.php:84
|
185 |
msgid "Read more about common connectivity issues."
|
186 |
msgstr "Lees meer over veel voorkomende verbindingsproblemen."
|
187 |
|
188 |
+
#: includes/forms/class-admin.php:62
|
189 |
+
msgid "Add to form"
|
190 |
+
msgstr "Voeg toe aan formulier"
|
191 |
+
|
192 |
+
#: includes/forms/class-admin.php:63
|
193 |
+
msgid "City"
|
194 |
+
msgstr "Stad"
|
195 |
+
|
196 |
+
#: includes/forms/class-admin.php:64
|
197 |
+
msgid "Checkboxes"
|
198 |
+
msgstr ""
|
199 |
+
|
200 |
+
#: includes/forms/class-admin.php:65
|
201 |
+
msgid "Choices"
|
202 |
+
msgstr "Keuzes"
|
203 |
+
|
204 |
+
#: includes/forms/class-admin.php:66
|
205 |
+
msgid "Choice type"
|
206 |
+
msgstr "Keuzetype"
|
207 |
+
|
208 |
+
#: includes/forms/class-admin.php:67
|
209 |
+
msgid "Choose a field to add to the form"
|
210 |
+
msgstr "Kies een veld voor het formulier"
|
211 |
+
|
212 |
+
#: includes/forms/class-admin.php:68
|
213 |
+
msgid "Close"
|
214 |
+
msgstr "Sluiten"
|
215 |
+
|
216 |
+
#: includes/forms/class-admin.php:69
|
217 |
+
msgid "Country"
|
218 |
+
msgstr "Land"
|
219 |
+
|
220 |
+
#: includes/forms/class-admin.php:70
|
221 |
+
msgid "Dropdown"
|
222 |
+
msgstr "Uitklappen"
|
223 |
+
|
224 |
+
#: includes/forms/class-admin.php:71
|
225 |
+
msgid "Field type"
|
226 |
+
msgstr "Veldtype"
|
227 |
+
|
228 |
+
#: includes/forms/class-admin.php:72
|
229 |
+
msgid "Field label"
|
230 |
+
msgstr "Veldlabel"
|
231 |
+
|
232 |
+
#: includes/forms/class-admin.php:73
|
233 |
+
msgid "Form action"
|
234 |
+
msgstr "Formulieractie"
|
235 |
+
|
236 |
+
#: includes/forms/class-admin.php:74
|
237 |
+
msgid ""
|
238 |
+
"This field will allow your visitors to choose whether they would like to "
|
239 |
+
"subscribe or unsubscribe"
|
240 |
+
msgstr "Dit veld geeft bezoekers de mogelijkheid om te kiezen of ze zich willen inschrijven of uitschrijven"
|
241 |
+
|
242 |
+
#: includes/forms/class-admin.php:75
|
243 |
+
msgid "Form fields"
|
244 |
+
msgstr "Formuliervelden"
|
245 |
+
|
246 |
+
#: includes/forms/class-admin.php:76
|
247 |
+
msgid "This field is marked as required in MailChimp."
|
248 |
+
msgstr "Dit veld is gemarkeerd als vereist in MailChimp"
|
249 |
+
|
250 |
+
#: includes/forms/class-admin.php:77
|
251 |
+
msgid "Initial value"
|
252 |
+
msgstr "Beginwaarde"
|
253 |
+
|
254 |
+
#: includes/forms/class-admin.php:78
|
255 |
+
msgid "Interest categories"
|
256 |
+
msgstr ""
|
257 |
+
|
258 |
+
#: includes/forms/class-admin.php:79
|
259 |
+
msgid "Is this field required?"
|
260 |
+
msgstr "Is dit veld vereist?"
|
261 |
+
|
262 |
+
#: includes/forms/class-admin.php:80
|
263 |
+
msgid "List choice"
|
264 |
+
msgstr "Lijstkeuze"
|
265 |
+
|
266 |
+
#: includes/forms/class-admin.php:81
|
267 |
+
msgid "This field will allow your visitors to choose a list to subscribe to."
|
268 |
+
msgstr "Met dit veld kunnen bezoekers een lijst kiezen om zich voor in te schrijven."
|
269 |
+
|
270 |
+
#: includes/forms/class-admin.php:82
|
271 |
+
msgid "List fields"
|
272 |
+
msgstr "Lijstvelden"
|
273 |
+
|
274 |
+
#: includes/forms/class-admin.php:83
|
275 |
+
msgid "Min"
|
276 |
+
msgstr "Min"
|
277 |
+
|
278 |
+
#: includes/forms/class-admin.php:84
|
279 |
+
msgid "Max"
|
280 |
+
msgstr "Max"
|
281 |
+
|
282 |
+
#: includes/forms/class-admin.php:85
|
283 |
+
msgid ""
|
284 |
+
"No available fields. Did you select a MailChimp list in the form settings?"
|
285 |
+
msgstr "Geen velden beschikbaar. Heb je een MailChimp-lijst geselecteerd in de formulierinstellingen?"
|
286 |
+
|
287 |
+
#: includes/forms/class-admin.php:86
|
288 |
+
msgid "Optional"
|
289 |
+
msgstr "Optioneel"
|
290 |
+
|
291 |
+
#: includes/forms/class-admin.php:87
|
292 |
+
msgid "Placeholder"
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#: includes/forms/class-admin.php:88
|
296 |
+
msgid "Text to show when field has no value."
|
297 |
+
msgstr "Tekst die verschijnt als een veld geen waarde heeft"
|
298 |
+
|
299 |
+
#: includes/forms/class-admin.php:89
|
300 |
+
msgid "Preselect"
|
301 |
+
msgstr "Voorselecteren"
|
302 |
+
|
303 |
+
#: includes/forms/class-admin.php:90
|
304 |
+
msgid "Remove"
|
305 |
+
msgstr "Verwijderen"
|
306 |
+
|
307 |
+
#: includes/forms/class-admin.php:91
|
308 |
+
msgid "Radio buttons"
|
309 |
+
msgstr "Radioknoppen"
|
310 |
+
|
311 |
+
#: includes/forms/class-admin.php:92
|
312 |
+
msgid "Street Address"
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
+
#: includes/forms/class-admin.php:93
|
316 |
+
msgid "State"
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: includes/forms/class-admin.php:95
|
320 |
+
msgid "Submit button"
|
321 |
+
msgstr ""
|
322 |
+
|
323 |
+
#: includes/forms/class-admin.php:96
|
324 |
+
msgid "Wrap in paragraph tags?"
|
325 |
+
msgstr ""
|
326 |
+
|
327 |
+
#: includes/forms/class-admin.php:97
|
328 |
+
msgid "Value"
|
329 |
+
msgstr "Waarde"
|
330 |
+
|
331 |
+
#: includes/forms/class-admin.php:98
|
332 |
+
msgid "Text to prefill this field with."
|
333 |
+
msgstr "Tekst om het veld vooraf mee te vullen"
|
334 |
+
|
335 |
+
#: includes/forms/class-admin.php:99
|
336 |
+
msgid "ZIP"
|
337 |
+
msgstr "Postcode"
|
338 |
+
|
339 |
+
#: includes/forms/class-admin.php111, includes/forms/class-admin.php112,
|
340 |
+
#: includes/forms/views/edit-form.php:24
|
341 |
msgid "Forms"
|
342 |
msgstr "Formulieren"
|
343 |
|
344 |
+
#: includes/forms/class-admin.php152, includes/forms/class-admin.php:276
|
345 |
msgid "<strong>Success!</strong> Form successfully saved."
|
346 |
msgstr "<strong>Succes!</strong> Formulier succesvol opgeslagen."
|
347 |
|
348 |
+
#: includes/forms/class-admin.php:276
|
349 |
msgid "Preview form"
|
350 |
msgstr "Voorbeeld formulier"
|
351 |
|
352 |
+
#: includes/forms/class-admin.php449, includes/forms/class-widget.php:30
|
353 |
+
msgid "MailChimp Sign-Up Form"
|
354 |
+
msgstr "MailChimp Inschrijfformulier"
|
355 |
|
356 |
+
#: includes/forms/class-admin.php:453
|
357 |
+
msgid "Select the form to show"
|
358 |
+
msgstr "Selecteer het formulier om het te tonen"
|
359 |
|
360 |
+
#: includes/forms/class-form-previewer.php:146
|
361 |
msgid "Form preview"
|
362 |
msgstr "Formulier voorbeeld"
|
363 |
|
364 |
+
#: includes/forms/class-form-tags.php:60
|
365 |
msgid "Replaced with the form response (error or success messages)."
|
366 |
msgstr "Wordt vervangen door de formulier response (fout- en succesmeldingen)."
|
367 |
|
368 |
+
#: includes/forms/class-form-tags.php:65
|
369 |
msgid "Data from the URL or a submitted form."
|
370 |
+
msgstr "Data uit de URL of een verzonden formulier"
|
371 |
|
372 |
+
#: includes/forms/class-form-tags.php:71
|
373 |
+
msgid "Data from a cookie."
|
374 |
+
msgstr "Data van een cookie"
|
375 |
+
|
376 |
+
#: includes/forms/class-form-tags.php77,
|
377 |
#: includes/integrations/class-integration-tags.php:45
|
378 |
msgid "Replaced with the number of subscribers on the selected list(s)"
|
379 |
msgstr "Vervangen door het aantal subscribers op de geselecteerde lijst(en)"
|
380 |
|
381 |
+
#: includes/forms/class-form-tags.php:82
|
382 |
msgid "The email address of the current visitor (if known)."
|
383 |
msgstr "Emailadres van huidige bezoeker (wanneer bekend)"
|
384 |
|
385 |
+
#: includes/forms/class-form-tags.php:87
|
386 |
msgid "The URL of the page."
|
387 |
msgstr "De URL van de pagina."
|
388 |
|
389 |
+
#: includes/forms/class-form-tags.php:92
|
390 |
msgid "The path of the page."
|
391 |
msgstr "Het codepad van de pagina"
|
392 |
|
393 |
+
#: includes/forms/class-form-tags.php:97
|
394 |
msgid "The current date. Example: %s."
|
395 |
msgstr "De huidige datum. Voorbeeld: %S."
|
396 |
|
397 |
+
#: includes/forms/class-form-tags.php:102
|
398 |
msgid "The current time. Example: %s."
|
399 |
msgstr "De huidige tijd. Voorbeeld: %S."
|
400 |
|
401 |
+
#: includes/forms/class-form-tags.php:107
|
402 |
msgid "The site's language. Example: %s."
|
403 |
msgstr "Taal van de site. bijvoorbeeld: %s"
|
404 |
|
405 |
+
#: includes/forms/class-form-tags.php:112
|
406 |
msgid "The visitor's IP address. Example: %s."
|
407 |
msgstr "Bezoekers IP adres. Bijvoorbeeld: %s."
|
408 |
|
409 |
+
#: includes/forms/class-form-tags.php:117
|
410 |
msgid "The property of the currently logged-in user."
|
411 |
msgstr "De rechten van de huidige ingelogte gebruiker."
|
412 |
|
413 |
+
#: includes/forms/class-form-tags.php:123
|
414 |
+
msgid "Property of the current page or post."
|
415 |
+
msgstr "Eigendom van de huidige pagina of bericht"
|
416 |
+
|
417 |
+
#: includes/forms/class-form.php:133
|
418 |
msgid "There is no form with ID %d, perhaps it was deleted?"
|
419 |
msgstr "Er is geen formulier met ID %d. Is het verwijderd?"
|
420 |
|
422 |
msgid "Newsletter"
|
423 |
msgstr "Nieuwsbrief"
|
424 |
|
|
|
|
|
|
|
|
|
425 |
#: includes/forms/class-widget.php:32
|
426 |
msgid "Displays your MailChimp for WordPress sign-up form"
|
427 |
msgstr "Toont je MailChimp voor WordPress inschrijfformulier"
|
436 |
" form settings</a>."
|
437 |
msgstr "Je kunt je inschrijfformulier wijzigen in de <a href=\"%s\">MailChimp voor WordPress formulier instellingen</a>."
|
438 |
|
439 |
+
#: includes/integrations/class-admin.php79,
|
440 |
+
#: includes/integrations/class-admin.php80,
|
441 |
+
#: includes/integrations/views/integration-settings.php10,
|
442 |
+
#: includes/integrations/views/integrations.php57,
|
443 |
+
#: includes/integrations/views/integrations.php:65
|
444 |
+
msgid "Integrations"
|
445 |
+
msgstr "Integraties"
|
446 |
+
|
447 |
+
#: includes/views/general-settings.php7, includes/views/other-settings.php58,
|
448 |
+
#: includes/forms/views/edit-form.php22,
|
449 |
+
#: includes/integrations/views/integration-settings.php8,
|
450 |
+
#: includes/integrations/views/integrations.php:55
|
451 |
+
msgid "You are here: "
|
452 |
+
msgstr "Je bent hier:"
|
453 |
+
|
454 |
+
#: includes/views/general-settings.php:18
|
455 |
+
msgid "General Settings"
|
456 |
+
msgstr "Algemene Instellingen"
|
457 |
+
|
458 |
+
#: includes/views/general-settings.php:38
|
459 |
+
msgid "Status"
|
460 |
+
msgstr "Status"
|
461 |
+
|
462 |
+
#: includes/views/general-settings.php:42
|
463 |
+
msgid "CONNECTED"
|
464 |
+
msgstr "VERBONDEN"
|
465 |
+
|
466 |
+
#: includes/views/general-settings.php:44
|
467 |
+
msgid "NOT CONNECTED"
|
468 |
+
msgstr "NIET VERBONDEN"
|
469 |
+
|
470 |
+
#: includes/views/general-settings.php:51
|
471 |
+
msgid "API Key"
|
472 |
+
msgstr "API Sleutel"
|
473 |
+
|
474 |
+
#: includes/views/general-settings.php:53
|
475 |
+
msgid "Your MailChimp API key"
|
476 |
+
msgstr "Je MailChimp API sleutel"
|
477 |
+
|
478 |
+
#: includes/views/general-settings.php:55
|
479 |
+
msgid "The API key for connecting with your MailChimp account."
|
480 |
+
msgstr "De API sleutel voor het verbinden met je MailChimp account."
|
481 |
+
|
482 |
+
#: includes/views/general-settings.php:56
|
483 |
+
msgid "Get your API key here."
|
484 |
+
msgstr "Verkrijg hier je API sleutel."
|
485 |
+
|
486 |
+
#: includes/views/other-settings.php:14
|
487 |
+
msgid "Miscellaneous settings"
|
488 |
+
msgstr "Diverse instellingen"
|
489 |
+
|
490 |
+
#: includes/views/other-settings.php:17
|
491 |
+
msgid "Usage Tracking"
|
492 |
+
msgstr "Gebruikstype bijhouden"
|
493 |
+
|
494 |
+
#: includes/views/other-settings.php:29
|
495 |
+
msgid ""
|
496 |
+
"Allow us to anonymously track how this plugin is used to help us make it "
|
497 |
+
"better fit your needs."
|
498 |
+
msgstr "Sta ons toe, anoniem, uw plugin te onderzoeken om u te helpen in beter gebruik voor uw noodzakelijkheden. "
|
499 |
+
|
500 |
+
#: includes/views/other-settings.php:31
|
501 |
+
msgid "This is what we track."
|
502 |
+
msgstr "Dit is wat we tracken."
|
503 |
+
|
504 |
+
#: includes/views/other-settings.php:37
|
505 |
+
msgid "Logging"
|
506 |
+
msgstr ""
|
507 |
+
|
508 |
+
#: includes/views/other-settings.php:44
|
509 |
+
msgid ""
|
510 |
+
"Determines what events should be written to <a href=\"%s\">the debug log</a>"
|
511 |
+
" (see below)."
|
512 |
+
msgstr ""
|
513 |
+
|
514 |
+
#: includes/views/other-settings.php:99
|
515 |
+
msgid "Debug Log"
|
516 |
+
msgstr ""
|
517 |
+
|
518 |
+
#: includes/views/other-settings.php:99
|
519 |
+
msgid "Filter.."
|
520 |
+
msgstr ""
|
521 |
+
|
522 |
+
#: includes/views/other-settings.php:104
|
523 |
+
msgid "Log file is not writable."
|
524 |
+
msgstr ""
|
525 |
+
|
526 |
+
#: includes/views/other-settings.php:105
|
527 |
+
msgid "Please ensure %s has the proper <a href=\"%s\">file permissions</a>."
|
528 |
+
msgstr ""
|
529 |
+
|
530 |
+
#: includes/views/other-settings.php:123
|
531 |
+
msgid "Nothing here. Which means there are no errors!"
|
532 |
+
msgstr ""
|
533 |
+
|
534 |
+
#: includes/views/other-settings.php:133
|
535 |
+
msgid "Empty Log"
|
536 |
+
msgstr ""
|
537 |
+
|
538 |
+
#: includes/views/other-settings.php:141
|
539 |
+
msgid "Right now, the plugin is configured to only log errors and warnings."
|
540 |
+
msgstr ""
|
541 |
+
|
542 |
+
#: includes/admin/migrations/3.0.0-form-1-post-type.php:35
|
543 |
+
msgid "Default sign-up form"
|
544 |
+
msgstr "Standaard inschrijfformulier"
|
545 |
+
|
546 |
+
#: includes/forms/views/add-form.php10, includes/forms/views/add-form.php:60
|
547 |
msgid "Add new form"
|
548 |
msgstr "Voeg nieuw formulier toe"
|
549 |
|
571 |
msgid "Messages"
|
572 |
msgstr "Berichten"
|
573 |
|
574 |
+
#: includes/forms/views/edit-form.php:7
|
575 |
+
msgid "Appearance"
|
576 |
+
msgstr "Weergave"
|
577 |
+
|
578 |
+
#: includes/forms/views/edit-form.php:25
|
579 |
+
msgid "Form"
|
580 |
+
msgstr "Formulier"
|
581 |
+
|
582 |
+
#: includes/forms/views/edit-form.php:34
|
583 |
+
msgid "Edit Form"
|
584 |
+
msgstr "Wijzig Formulier"
|
585 |
+
|
586 |
+
#: includes/forms/views/edit-form.php:58
|
587 |
+
msgid "Enter form title here"
|
588 |
+
msgstr "Typ je formulier titel hier"
|
589 |
+
|
590 |
+
#: includes/forms/views/edit-form.php:59
|
591 |
+
msgid "Enter the title of your sign-up form"
|
592 |
+
msgstr "Typ de titel van je inschrijfformulier"
|
593 |
+
|
594 |
+
#: includes/forms/views/edit-form.php:65
|
595 |
+
msgid "Shortcode"
|
596 |
+
msgstr "Shortcode"
|
597 |
+
|
598 |
+
#: includes/forms/views/edit-form.php:67
|
599 |
+
msgid "Get shortcode"
|
600 |
+
msgstr "Toon shortcode"
|
601 |
+
|
602 |
+
#: includes/forms/views/edit-form.php:72
|
603 |
+
msgid "Preview this form"
|
604 |
+
msgstr "Toon een voorbeeld van dit formulier"
|
605 |
+
|
606 |
+
#: includes/integrations/views/integration-settings.php:20
|
607 |
+
msgid "%s integration"
|
608 |
+
msgstr "%s integratie"
|
609 |
+
|
610 |
+
#: includes/integrations/views/integration-settings.php:27
|
611 |
+
msgid ""
|
612 |
+
"The selected MailChimp lists require non-default fields, which may prevent "
|
613 |
+
"this integration from working."
|
614 |
+
msgstr "De geselecteerde MailChimp lijst vereist niet-standaard velden, waardoor de integratie mogelijk niet zal werken."
|
615 |
+
|
616 |
+
#: includes/integrations/views/integration-settings.php:28
|
617 |
+
msgid ""
|
618 |
+
"Please ensure you <a href=\"%s\">configure the plugin to send all required "
|
619 |
+
"fields</a> or <a href=\"%s\">log into your MailChimp account</a> and make "
|
620 |
+
"sure only the email & name fields are marked as required fields for the "
|
621 |
+
"selected list(s)."
|
622 |
+
msgstr "Zorg ervoor dat je <a href=\"%s\"> om de plugin te configureren, alle verplichte velden </a> of <a href=\"%s\"> kunnen inloggen op je MailChimp account </a> en zorg ervoor dat alleen de e-mail en verzend naam velden zijn gemarkeerd als verplichte velden voor de geselecteerde lijst(en)."
|
623 |
+
|
624 |
+
#: includes/integrations/views/integration-settings.php:62
|
625 |
+
msgid "Enabled?"
|
626 |
+
msgstr "Ingeschakeld?"
|
627 |
+
|
628 |
+
#: includes/integrations/views/integration-settings.php:66
|
629 |
+
msgid ""
|
630 |
+
"Enable the %s integration? This will add a sign-up checkbox to the form."
|
631 |
+
msgstr "Schakel de %s integratie in? Dit zal een inschrijfoptie aan het formulier toevoegen."
|
632 |
+
|
633 |
+
#: includes/integrations/views/integration-settings.php:76
|
634 |
+
msgid "Implicit?"
|
635 |
+
msgstr "Impliciet?"
|
636 |
+
|
637 |
+
#: includes/integrations/views/integration-settings.php:80
|
638 |
+
msgid ""
|
639 |
+
"Select \"no\" if you want to ask your visitors before they are subscribed "
|
640 |
+
"(recommended)."
|
641 |
+
msgstr "Selecteer \"nee\" als je je bezoekers de optie wilt geven om in te kunnen schrijven (aanbevolen)."
|
642 |
+
|
643 |
+
#: includes/integrations/views/integration-settings.php:90
|
644 |
+
msgid "MailChimp Lists"
|
645 |
+
msgstr "MailChimp Lijsten"
|
646 |
+
|
647 |
+
#: includes/integrations/views/integration-settings.php:103
|
648 |
+
msgid ""
|
649 |
+
"Select the list(s) to which people who check the checkbox should be "
|
650 |
+
"subscribed."
|
651 |
+
msgstr "Selecteer de lijsten aan welke mensen die checkbox aanvinken toegevoegd zouden moeten worden."
|
652 |
+
|
653 |
+
#: includes/integrations/views/integration-settings.php107,
|
654 |
+
#: includes/forms/views/tabs/form-settings.php:18
|
655 |
+
msgid "No lists found, <a href=\"%s\">are you connected to MailChimp</a>?"
|
656 |
+
msgstr "Geen lijsten gevonden, <a href=\"%s\">ben je verbonden met je MailChimp account</a>?"
|
657 |
+
|
658 |
+
#: includes/integrations/views/integration-settings.php:116
|
659 |
+
msgid "Checkbox label text"
|
660 |
+
msgstr "Checkbox label tekst"
|
661 |
+
|
662 |
+
#: includes/integrations/views/integration-settings.php:119
|
663 |
+
msgid "HTML tags like %s are allowed in the label text."
|
664 |
+
msgstr "HTML tags als %s zijn toegestaan in de label tekst."
|
665 |
+
|
666 |
+
#: includes/integrations/views/integration-settings.php:129
|
667 |
+
msgid "Pre-check the checkbox?"
|
668 |
+
msgstr "Vink de checkbox standaard aan?"
|
669 |
+
|
670 |
+
#: includes/integrations/views/integration-settings.php:133
|
671 |
+
msgid "Select \"yes\" if the checkbox should be pre-checked."
|
672 |
+
msgstr "Selecteer \"ja\" als de checkbox standaard aangevinkt moet zijn."
|
673 |
+
|
674 |
+
#: includes/integrations/views/integration-settings.php:141
|
675 |
+
msgid "Load some default CSS?"
|
676 |
+
msgstr "Laad standaard CSS?"
|
677 |
+
|
678 |
+
#: includes/integrations/views/integration-settings.php:145
|
679 |
+
msgid "Select \"yes\" if the checkbox appears in a weird place."
|
680 |
+
msgstr "Selecteer \"ja\" als de checkbox op een vreemde plaats verschijnt."
|
681 |
+
|
682 |
+
#: includes/integrations/views/integration-settings.php:152
|
683 |
+
msgid "Double opt-in?"
|
684 |
+
msgstr "Emailadres bevestigen?"
|
685 |
+
|
686 |
+
#: includes/integrations/views/integration-settings.php:163
|
687 |
+
msgid ""
|
688 |
+
"Select \"yes\" if you want people to confirm their email address before "
|
689 |
+
"being subscribed (recommended)"
|
690 |
+
msgstr "Selecteer \"ja\" wanneer je wilt dat mensen hun emailadres moeten bevestigen alvorens ze aan je MailChimp lijst worden toegevoegd (aanbevolen)"
|
691 |
+
|
692 |
+
#: includes/integrations/views/integration-settings.php171,
|
693 |
+
#: includes/forms/views/tabs/form-settings.php:52
|
694 |
+
msgid "Update existing subscribers?"
|
695 |
+
msgstr "Bestaande inschrijven updaten?"
|
696 |
+
|
697 |
+
#: includes/integrations/views/integration-settings.php181,
|
698 |
+
#: includes/forms/views/tabs/form-settings.php:62
|
699 |
+
msgid ""
|
700 |
+
"Select \"yes\" if you want to update existing subscribers with the data that"
|
701 |
+
" is sent."
|
702 |
+
msgstr "Selecteer \"ja\" als je bestaande abonnees wilt updaten met de gegeven data."
|
703 |
+
|
704 |
+
#: includes/integrations/views/integration-settings.php190,
|
705 |
+
#: includes/forms/views/tabs/form-settings.php:68
|
706 |
+
msgid "Replace interest groups?"
|
707 |
+
msgstr "Interessegroepen vervangen?"
|
708 |
+
|
709 |
+
#: includes/integrations/views/integration-settings.php201,
|
710 |
+
#: includes/forms/views/tabs/form-settings.php:79
|
711 |
+
msgid ""
|
712 |
+
"Select \"no\" if you want to add the selected interests to any previously "
|
713 |
+
"selected interests when updating a subscriber."
|
714 |
+
msgstr ""
|
715 |
+
|
716 |
+
#: includes/integrations/views/integration-settings.php202,
|
717 |
+
#: includes/forms/views/tabs/form-settings.php:80
|
718 |
+
msgid "What does this do?"
|
719 |
+
msgstr "Wat doet dit?"
|
720 |
+
|
721 |
+
#: includes/integrations/views/integrations.php:17
|
722 |
+
msgid "Name"
|
723 |
+
msgstr "Naam"
|
724 |
+
|
725 |
+
#: includes/integrations/views/integrations.php:18
|
726 |
+
msgid "Description"
|
727 |
+
msgstr "Omschrijving"
|
728 |
+
|
729 |
+
#: includes/integrations/views/integrations.php:35
|
730 |
+
msgid "Configure this integration"
|
731 |
+
msgstr "Configureer deze integratie"
|
732 |
+
|
733 |
+
#: includes/integrations/views/integrations.php:71
|
734 |
+
msgid "The table below shows all available integrations."
|
735 |
+
msgstr ""
|
736 |
+
|
737 |
+
#: includes/integrations/views/integrations.php:72
|
738 |
+
msgid ""
|
739 |
+
"Click on the name of an integration to edit all settings specific to that "
|
740 |
+
"integration."
|
741 |
+
msgstr ""
|
742 |
+
|
743 |
+
#: includes/integrations/views/integrations.php:79
|
744 |
+
msgid "Enabled integrations"
|
745 |
+
msgstr ""
|
746 |
+
|
747 |
+
#: includes/integrations/views/integrations.php:84
|
748 |
+
msgid "Available integrations"
|
749 |
+
msgstr ""
|
750 |
+
|
751 |
+
#: includes/views/parts/admin-footer.php:15
|
752 |
+
msgid ""
|
753 |
+
"MailChimp for WordPress is in need of translations. Is the plugin not "
|
754 |
+
"translated in your language or do you spot errors with the current "
|
755 |
+
"translations? Helping out is easy! Head over to <a href=\"%s\">the "
|
756 |
+
"translation project and click \"help translate\"</a>."
|
757 |
+
msgstr "De MailChimp for WordPres plugin is op zoek naar vertalers. Is de plugin niet vertaald in jouw taal of heb je een fout in de vertalingen gespot? Helpen is makkelijk! Ga naar <a href=\"%s\">het vertaalproject op Transifex en klik op \"help translate\"</a>."
|
758 |
+
|
759 |
+
#: includes/views/parts/admin-footer.php:35
|
760 |
+
msgid ""
|
761 |
+
"This plugin is not developed by or affiliated with MailChimp in any way."
|
762 |
+
msgstr "Deze plugin is niet ontwikkeld of verbonden met MailChimp op welke manier dan ook."
|
763 |
+
|
764 |
+
#: includes/views/parts/admin-sidebar.php:11
|
765 |
+
msgid "Looking for help?"
|
766 |
+
msgstr "Hulp nodig?"
|
767 |
+
|
768 |
+
#: includes/views/parts/admin-sidebar.php:12
|
769 |
+
msgid "We have some resources available to help you in the right direction."
|
770 |
+
msgstr ""
|
771 |
+
|
772 |
+
#: includes/views/parts/admin-sidebar.php:14
|
773 |
+
msgid "Knowledge Base"
|
774 |
+
msgstr ""
|
775 |
+
|
776 |
+
#: includes/views/parts/admin-sidebar.php:15
|
777 |
+
msgid "Frequently Asked Questions"
|
778 |
+
msgstr "Veelgestelde Vragen"
|
779 |
+
|
780 |
+
#: includes/views/parts/admin-sidebar.php:16
|
781 |
+
msgid "Code reference for developers"
|
782 |
+
msgstr ""
|
783 |
+
|
784 |
+
#: includes/views/parts/admin-sidebar.php:36
|
785 |
+
msgid "Looking to improve your sign-up rates?"
|
786 |
+
msgstr ""
|
787 |
+
|
788 |
+
#: includes/views/parts/admin-sidebar.php:37
|
789 |
+
msgid ""
|
790 |
+
"Our <a href=\"%s\">Boxzilla plugin</a> allows you to create pop-ups or "
|
791 |
+
"slide-ins with a subscribe form. A sure way to grow your lists faster."
|
792 |
+
msgstr ""
|
793 |
+
|
794 |
+
#: includes/views/parts/lists-overview.php:1
|
795 |
+
msgid "Your MailChimp Account"
|
796 |
+
msgstr "Je MailChimp Account"
|
797 |
+
|
798 |
+
#: includes/views/parts/lists-overview.php:2
|
799 |
+
msgid ""
|
800 |
+
"The table below shows your MailChimp lists and their details. If you just "
|
801 |
+
"applied changes to your MailChimp lists, please use the following button to "
|
802 |
+
"renew the cached lists configuration."
|
803 |
+
msgstr "The tabel hieronder toont je MailChimp lijst configuratie. Wanneer je hier veranderingen aan hebt doorgevoerd die nog niet weergegeven worden kun je de volgende button gebruiken om je configuratie opnieuw in te laden."
|
804 |
+
|
805 |
+
#: includes/views/parts/lists-overview.php:17
|
806 |
+
msgid "No lists were found in your MailChimp account"
|
807 |
+
msgstr "Geen lijsten gevonden in je MailChimp account."
|
808 |
|
809 |
+
#: includes/views/parts/lists-overview.php:19
|
810 |
+
msgid "A total of %d lists were found in your MailChimp account."
|
811 |
+
msgstr "Een totaal van %d aan lijsten zijn gevonden in uw MailChimp account."
|
|
|
|
|
|
|
812 |
|
813 |
+
#: includes/views/parts/lists-overview.php:24
|
814 |
+
msgid "List Name"
|
815 |
+
msgstr "Lijstnaam"
|
816 |
|
817 |
+
#: includes/views/parts/lists-overview.php:25
|
818 |
+
msgid "ID"
|
819 |
+
msgstr "ID"
|
820 |
|
821 |
+
#: includes/views/parts/lists-overview.php:26
|
822 |
+
msgid "Subscribers"
|
823 |
+
msgstr "Abonnees"
|
824 |
|
825 |
+
#: includes/views/parts/lists-overview.php:48
|
826 |
+
msgid "Edit this list in MailChimp"
|
827 |
+
msgstr "Bewerk deze lijst in MailChimp"
|
828 |
|
829 |
+
#: includes/views/parts/lists-overview.php:62
|
830 |
+
msgid "%s (%s) with field type %s."
|
831 |
+
msgstr "%s(%s) met veldtype %s."
|
832 |
|
833 |
+
#: includes/forms/views/parts/add-fields-help.php4,
|
834 |
#: includes/forms/views/tabs/form-fields.php:10
|
835 |
msgid "Add more fields"
|
836 |
msgstr "Meer velden toevoegen"
|
867 |
"changes."
|
868 |
msgstr "Klik op de volgende knop, voor MailChimp voor Wordpress pick up en jouw wijzigingen"
|
869 |
|
|
|
|
|
|
|
|
|
|
|
870 |
#: includes/forms/views/parts/dynamic-content-tags.php:6
|
871 |
msgid "Add dynamic form variable"
|
872 |
msgstr "Voeg een dynamisch formulier variabelen toe"
|
939 |
msgid "Enter the HTML code for your form fields.."
|
940 |
msgstr "Voer de HTML code voor je formulier velden in."
|
941 |
|
942 |
+
#: includes/forms/views/tabs/form-fields.php:26
|
|
|
|
|
|
|
|
|
943 |
msgid ""
|
944 |
"Use the shortcode %s to display this form inside a post, page or text "
|
945 |
"widget."
|
946 |
msgstr "Gebruik de %s shortcode om dit formulier in een post, pagina of tekst widget te tonen."
|
947 |
|
948 |
+
#: includes/forms/views/tabs/form-messages.php:6
|
949 |
msgid "Form Messages"
|
950 |
msgstr "Formulier Berichten"
|
951 |
|
952 |
+
#: includes/forms/views/tabs/form-messages.php:16
|
953 |
msgid "Successfully subscribed"
|
954 |
msgstr "Succesvol ingeschreven"
|
955 |
|
956 |
+
#: includes/forms/views/tabs/form-messages.php:19
|
957 |
msgid ""
|
958 |
"The text that shows when an email address is successfully subscribed to the "
|
959 |
"selected list(s)."
|
960 |
msgstr "De tekst die verschijnt wanneer een emailadres succesvol toegevoegd is aan de geselecteerde MailChimp lijst(en)."
|
961 |
|
962 |
+
#: includes/forms/views/tabs/form-messages.php:23
|
963 |
msgid "Invalid email address"
|
964 |
msgstr "Ongeldig emailadres"
|
965 |
|
966 |
+
#: includes/forms/views/tabs/form-messages.php:26
|
967 |
msgid "The text that shows when an invalid email address is given."
|
968 |
msgstr "De tekst die verschijnt wanneer een foutief email adres is ingevuld.Î"
|
969 |
|
970 |
+
#: includes/forms/views/tabs/form-messages.php:30
|
971 |
msgid "Required field missing"
|
972 |
msgstr "Verplicht veld mist"
|
973 |
|
974 |
+
#: includes/forms/views/tabs/form-messages.php:33
|
975 |
msgid ""
|
976 |
"The text that shows when a required field for the selected list(s) is "
|
977 |
"missing."
|
978 |
msgstr "De tekst die verschijnt wanneer een verplicht veld voor de geselecteerde MailChimp lijst(en) niet ingevuld is."
|
979 |
|
980 |
+
#: includes/forms/views/tabs/form-messages.php:37
|
981 |
msgid "Already subscribed"
|
982 |
msgstr "Reeds ingeschreven"
|
983 |
|
984 |
+
#: includes/forms/views/tabs/form-messages.php:40
|
985 |
msgid ""
|
986 |
"The text that shows when the given email is already subscribed to the "
|
987 |
"selected list(s)."
|
988 |
msgstr "De tekst die verschijnt wanneer het gegeven email adres reeds ingeschreven is op de geselecteerde MailChimp lijst(en)."
|
989 |
|
990 |
+
#: includes/forms/views/tabs/form-messages.php:44
|
991 |
msgid "General error"
|
992 |
msgstr "Algemene fout"
|
993 |
|
994 |
+
#: includes/forms/views/tabs/form-messages.php:47
|
995 |
msgid "The text that shows when a general error occured."
|
996 |
msgstr "De tekst die verschijnt wanneer een algemene fout optreedt."
|
997 |
|
998 |
+
#: includes/forms/views/tabs/form-messages.php:51
|
999 |
msgid "Unsubscribed"
|
1000 |
msgstr "Uitgeschreven"
|
1001 |
|
1002 |
+
#: includes/forms/views/tabs/form-messages.php:54
|
1003 |
msgid ""
|
1004 |
"When using the unsubscribe method, this is the text that shows when the "
|
1005 |
"given email address is successfully unsubscribed from the selected list(s)."
|
1006 |
msgstr "Wanneer gebruik gemaakt wordt van de functie om zich uit te schrijven, is dit de tekst die getoond wordt wanneer het aangegeven e-mailadres succesvol is uitgeschreven van de geselecteerde lijst(en)."
|
1007 |
|
1008 |
+
#: includes/forms/views/tabs/form-messages.php:58
|
1009 |
msgid "Not subscribed"
|
1010 |
msgstr "Niet ingeschreven"
|
1011 |
|
1012 |
+
#: includes/forms/views/tabs/form-messages.php:61
|
1013 |
msgid ""
|
1014 |
"When using the unsubscribe method, this is the text that shows when the "
|
1015 |
"given email address is not on the selected list(s)."
|
1016 |
msgstr "Wanneer gebruik gemaakt wordt van de functie om zich uit te schrijven, is dit de tekst die getoond wordt wanneer het aangegeven e-mailadres niet voorkomt op de geselecteerde lijst(en)."
|
1017 |
|
1018 |
+
#: includes/forms/views/tabs/form-messages.php:65
|
1019 |
+
msgid "No list selected"
|
1020 |
+
msgstr "Geen lijst geselecteerd"
|
1021 |
+
|
1022 |
+
#: includes/forms/views/tabs/form-messages.php:68
|
1023 |
+
msgid ""
|
1024 |
+
"When offering a list choice, this is the text that shows when no lists were "
|
1025 |
+
"selected."
|
1026 |
+
msgstr ""
|
1027 |
+
|
1028 |
+
#: includes/forms/views/tabs/form-messages.php:74
|
1029 |
+
msgid "Updated"
|
1030 |
+
msgstr "Bijgewerkt"
|
1031 |
+
|
1032 |
+
#: includes/forms/views/tabs/form-messages.php:77
|
1033 |
+
msgid "The text that shows when an existing subscriber is updated."
|
1034 |
+
msgstr ""
|
1035 |
+
|
1036 |
+
#: includes/forms/views/tabs/form-messages.php:89
|
1037 |
msgid "HTML tags like %s are allowed in the message fields."
|
1038 |
msgstr "HTML tags als %s zijn toegestaan in de meldingteksten."
|
1039 |
|
1045 |
msgid "MailChimp specific settings"
|
1046 |
msgstr "MailChimp specifieke instellingen"
|
1047 |
|
1048 |
+
#: includes/forms/views/tabs/form-settings.php:15
|
1049 |
msgid "Lists this form subscribes to"
|
1050 |
msgstr "Lijsten op welke dit formulier inschrijft"
|
1051 |
|
1052 |
+
#: includes/forms/views/tabs/form-settings.php:31
|
|
|
|
|
|
|
|
|
|
|
1053 |
msgid ""
|
1054 |
"Select the list(s) to which people who submit this form should be "
|
1055 |
"subscribed."
|
1056 |
msgstr "Selecteer de lijst(en) aan welke mensen die dit formulier invullen toegevoegd moeten worden."
|
1057 |
|
1058 |
+
#: includes/forms/views/tabs/form-settings.php:37
|
1059 |
msgid "Use double opt-in?"
|
1060 |
msgstr "Gebruik dubbele opt-in?"
|
1061 |
|
1062 |
+
#: includes/forms/views/tabs/form-settings.php:44
|
1063 |
+
msgid "Are you sure you want to disable double opt-in?"
|
1064 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1065 |
|
1066 |
+
#: includes/forms/views/tabs/form-settings.php:47
|
|
|
1067 |
msgid ""
|
1068 |
+
"We strongly suggest keeping double opt-in enabled. Disabling double opt-in "
|
1069 |
+
"may result in abuse."
|
1070 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
1071 |
|
1072 |
+
#: includes/forms/views/tabs/form-settings.php:94
|
1073 |
msgid "Form behaviour"
|
1074 |
msgstr "'Gedrag' van het formuulier"
|
1075 |
|
1076 |
+
#: includes/forms/views/tabs/form-settings.php:104
|
1077 |
msgid "Hide form after a successful sign-up?"
|
1078 |
msgstr "Verberg formulier na succesvolle inschrijvingen?"
|
1079 |
|
1080 |
+
#: includes/forms/views/tabs/form-settings.php:115
|
1081 |
msgid "Select \"yes\" to hide the form fields after a successful sign-up."
|
1082 |
msgstr "Selecteer \"ja\" om de formuliervelden te verbergen na elke succesvolle inschrijving."
|
1083 |
|
1084 |
+
#: includes/forms/views/tabs/form-settings.php:120
|
1085 |
msgid "Redirect to URL after successful sign-ups"
|
1086 |
msgstr "Doorsturen naar URL na succesvolle inschrijving"
|
1087 |
|
1088 |
+
#: includes/forms/views/tabs/form-settings.php:122
|
1089 |
msgid "Example: %s"
|
1090 |
msgstr "Voorbeeld: %s"
|
1091 |
|
1092 |
+
#: includes/forms/views/tabs/form-settings.php:123
|
1093 |
msgid ""
|
1094 |
"Leave empty or enter <code>0</code> for no redirect. Otherwise, use complete"
|
1095 |
" (absolute) URLs, including <code>http://</code>."
|
1096 |
msgstr "Laat leeg of vul <code>0</code> in voor geen doorverwijzing. Anders, gebruik complete (absolute) URL's, inclusief <code>http://</code>."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/mailchimp-for-wp-pl_PL.mo
CHANGED
Binary file
|
languages/mailchimp-for-wp-pl_PL.po
CHANGED
@@ -1,7 +1,9 @@
|
|
1 |
-
# Copyright (C)
|
2 |
-
# This file is distributed under the same license as the
|
3 |
# Translators:
|
4 |
-
#
|
|
|
|
|
5 |
# Jan Rusakiewicz <jan.rusakiewicz@gmail.com>, 2015
|
6 |
# Mateusz Lomber <lumberpack@gmail.com>, 2017
|
7 |
# Paweł Tomkiel <neonkowy@gmail.com>, 2016
|
@@ -9,68 +11,21 @@
|
|
9 |
msgid ""
|
10 |
msgstr ""
|
11 |
"Project-Id-Version: MailChimp for WordPress\n"
|
12 |
-
"
|
13 |
-
"
|
14 |
-
"PO-Revision-Date: 2017-01-03 09:50+0000\n"
|
15 |
-
"Last-Translator: Mateusz Lomber <lumberpack@gmail.com>\n"
|
16 |
"Language-Team: Polish (Poland) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/pl_PL/)\n"
|
17 |
"MIME-Version: 1.0\n"
|
18 |
"Content-Type: text/plain; charset=UTF-8\n"
|
19 |
"Content-Transfer-Encoding: 8bit\n"
|
20 |
"Language: pl_PL\n"
|
21 |
-
"Plural-Forms: nplurals=
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
msgstr "Twój adres e-mail"
|
30 |
-
|
31 |
-
#: config/default-form-content.php:5
|
32 |
-
msgid "Sign up"
|
33 |
-
msgstr "Zarejestruj się"
|
34 |
-
|
35 |
-
#: config/default-form-messages.php:5
|
36 |
-
msgid ""
|
37 |
-
"Thank you, your sign-up request was successful! Please check your email "
|
38 |
-
"inbox to confirm."
|
39 |
-
msgstr "Dziękujemy, Twoja rejestracja przebiegła pomyślnie! Sprawdź swoją skrzynkę e-mail, aby potwierdzić."
|
40 |
-
|
41 |
-
#: config/default-form-messages.php:9
|
42 |
-
msgid "Oops. Something went wrong. Please try again later."
|
43 |
-
msgstr "Ups. Coś poszło nie tak. Spróbuj ponownie później."
|
44 |
-
|
45 |
-
#: config/default-form-messages.php:13
|
46 |
-
msgid "Please provide a valid email address."
|
47 |
-
msgstr "Proszę podać poprawny adres e-mail."
|
48 |
-
|
49 |
-
#: config/default-form-messages.php:17
|
50 |
-
msgid "Given email address is already subscribed, thank you!"
|
51 |
-
msgstr "Podany adres e-mail został już wcześniej dodany do listy, dziękujemy!"
|
52 |
-
|
53 |
-
#: config/default-form-messages.php:21
|
54 |
-
msgid "Please fill in the required fields."
|
55 |
-
msgstr "Proszę wypełnić wymagane pola."
|
56 |
-
|
57 |
-
#: config/default-form-messages.php:25
|
58 |
-
msgid "You were successfully unsubscribed."
|
59 |
-
msgstr "Zostałeś wypisany z listy subskrypcji."
|
60 |
-
|
61 |
-
#: config/default-form-messages.php:29
|
62 |
-
msgid "Given email address is not subscribed."
|
63 |
-
msgstr "Podany adres e-mail nie został dodany do naszej listy subskrybcji."
|
64 |
-
|
65 |
-
#: config/default-form-messages.php:33
|
66 |
-
msgid "Please select at least one list."
|
67 |
-
msgstr "Wybierz co najmniej jedną listę subskrypcji."
|
68 |
-
|
69 |
-
#: config/default-integration-options.php:5
|
70 |
-
msgid "Sign me up for the newsletter!"
|
71 |
-
msgstr "Zapisz mnie do newslettera!"
|
72 |
-
|
73 |
-
#: includes/admin/class-admin-texts.php:62
|
74 |
#: includes/forms/views/edit-form.php:6
|
75 |
msgid "Settings"
|
76 |
msgstr "Ustawienia"
|
@@ -79,141 +34,388 @@ msgstr "Ustawienia"
|
|
79 |
msgid "Documentation"
|
80 |
msgstr "Dokumentacja"
|
81 |
|
82 |
-
#: includes/admin/class-admin.php:
|
83 |
msgid ""
|
84 |
"Success! The cached configuration for your MailChimp lists has been renewed."
|
85 |
msgstr "Operacja przywrócenia listy subskrypcji twojego konta MailChimp została zakończona pomyślnie."
|
86 |
|
87 |
-
#: includes/admin/class-admin.php:
|
88 |
msgid ""
|
89 |
"This is a pro-only feature. Please upgrade to the premium version to be able"
|
90 |
" to use it."
|
91 |
msgstr "Opcja premium. Kup wersję premium, aby móc korzystać z tej opcji."
|
92 |
|
93 |
-
#: includes/admin/class-admin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
msgid "MailChimp API Settings"
|
95 |
msgstr "Ustawienia API MailChimp"
|
96 |
|
97 |
-
#: includes/admin/class-admin.php:
|
98 |
-
#: integrations/ninja-forms/class-ninja-forms.php:34
|
99 |
msgid "MailChimp"
|
100 |
msgstr "MailChimp"
|
101 |
|
102 |
-
#: includes/admin/class-
|
103 |
-
|
104 |
-
|
|
|
105 |
|
106 |
-
#: includes/admin/class-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
msgid ""
|
108 |
-
"
|
109 |
-
"features
|
110 |
-
msgstr "
|
111 |
|
112 |
-
#: includes/admin/class-ads.php:
|
113 |
msgid "More subscribers, better newsletters."
|
114 |
msgstr "Więcej subskrybentów, lepsze newslettery."
|
115 |
|
116 |
-
#: includes/admin/class-ads.php:
|
117 |
msgid ""
|
118 |
"Learn how to best grow your lists & write better emails by subscribing to "
|
119 |
"our monthly tips."
|
120 |
msgstr "Dowiedz się jak pozyskać więcej subskrybentów oraz jak pisać lepsze wiadomości email w naszych comiesięcznych poradach."
|
121 |
|
122 |
-
#: includes/admin/class-ads.php:
|
123 |
msgid "Email Address"
|
124 |
msgstr "Adres e-mail"
|
125 |
|
126 |
-
#: includes/admin/class-ads.php:
|
127 |
msgid "First Name"
|
128 |
msgstr "Imię"
|
129 |
|
130 |
-
#: includes/admin/class-ads.php:
|
131 |
msgid "Subscribe"
|
132 |
msgstr "Subskrybuj"
|
133 |
|
134 |
-
#: includes/admin/class-
|
135 |
-
msgid "
|
136 |
-
|
|
|
|
|
137 |
|
138 |
-
#: includes/admin/
|
139 |
-
msgid "
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
|
142 |
-
#: includes/class-
|
|
|
|
|
|
|
|
|
143 |
msgid "Read more about common connectivity issues."
|
144 |
msgstr "Czytaj więcej o rozwiązywaniu problemów z łącznością."
|
145 |
|
146 |
-
#: includes/forms/class-admin.php:
|
147 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
msgid "Forms"
|
149 |
msgstr "Formularze"
|
150 |
|
151 |
-
#: includes/forms/class-admin.
|
152 |
msgid "<strong>Success!</strong> Form successfully saved."
|
153 |
msgstr "<strong>Sukces!</strong> Formularz został pomyślnie zapisany."
|
154 |
|
155 |
-
#: includes/forms/class-admin.php:
|
156 |
msgid "Preview form"
|
157 |
msgstr "Podejrzyj formularz."
|
158 |
|
159 |
-
#: includes/forms/class-admin.php:
|
160 |
-
msgid "
|
161 |
-
msgstr "
|
162 |
|
163 |
-
#: includes/forms/class-admin.php:
|
164 |
-
msgid "
|
165 |
-
msgstr "
|
166 |
|
167 |
-
#: includes/forms/class-form-previewer.php:
|
168 |
msgid "Form preview"
|
169 |
msgstr "Podgląd formularza"
|
170 |
|
171 |
-
#: includes/forms/class-form-tags.php:
|
172 |
msgid "Replaced with the form response (error or success messages)."
|
173 |
msgstr "Zamienione na odpowiedź formularza (wiadomość o błędzie lub powodzeniu)"
|
174 |
|
175 |
-
#: includes/forms/class-form-tags.php:
|
176 |
msgid "Data from the URL or a submitted form."
|
177 |
msgstr "Dane z adresu URL lub formularza."
|
178 |
|
179 |
-
#: includes/forms/class-form-tags.php:
|
|
|
|
|
|
|
|
|
180 |
#: includes/integrations/class-integration-tags.php:45
|
181 |
msgid "Replaced with the number of subscribers on the selected list(s)"
|
182 |
msgstr "Zamienione na liczbę subskrybentów na zaznaczonej liście (listach)."
|
183 |
|
184 |
-
#: includes/forms/class-form-tags.php:
|
185 |
msgid "The email address of the current visitor (if known)."
|
186 |
msgstr "Adres e-mail aktualnie odwiedzającego (jeśli znany)"
|
187 |
|
188 |
-
#: includes/forms/class-form-tags.php:
|
189 |
msgid "The URL of the page."
|
190 |
msgstr "URL strony."
|
191 |
|
192 |
-
#: includes/forms/class-form-tags.php:
|
193 |
msgid "The path of the page."
|
194 |
msgstr "Ścieżka strony."
|
195 |
|
196 |
-
#: includes/forms/class-form-tags.php:
|
197 |
msgid "The current date. Example: %s."
|
198 |
msgstr "Aktualna data. Przykład: %s."
|
199 |
|
200 |
-
#: includes/forms/class-form-tags.php:
|
201 |
msgid "The current time. Example: %s."
|
202 |
msgstr "Aktualny czas. Przykład: %s."
|
203 |
|
204 |
-
#: includes/forms/class-form-tags.php:
|
205 |
msgid "The site's language. Example: %s."
|
206 |
msgstr "Aktualny język strony. Przykład: %s."
|
207 |
|
208 |
-
#: includes/forms/class-form-tags.php:
|
209 |
msgid "The visitor's IP address. Example: %s."
|
210 |
msgstr "Adres IP odwiedzającego. Przykład %s."
|
211 |
|
212 |
-
#: includes/forms/class-form-tags.php:
|
213 |
msgid "The property of the currently logged-in user."
|
214 |
msgstr "Dane aktualnie zalogowanego usera."
|
215 |
|
216 |
-
#: includes/forms/class-form.php:
|
|
|
|
|
|
|
|
|
217 |
msgid "There is no form with ID %d, perhaps it was deleted?"
|
218 |
msgstr "Brak formularza o ID %d. Może został usunięty?"
|
219 |
|
@@ -221,10 +423,6 @@ msgstr "Brak formularza o ID %d. Może został usunięty?"
|
|
221 |
msgid "Newsletter"
|
222 |
msgstr "Newsletter"
|
223 |
|
224 |
-
#: includes/forms/class-widget.php:30
|
225 |
-
msgid "MailChimp Sign-Up Form"
|
226 |
-
msgstr "Formularz rejestracyjny MailChimp"
|
227 |
-
|
228 |
#: includes/forms/class-widget.php:32
|
229 |
msgid "Displays your MailChimp for WordPress sign-up form"
|
230 |
msgstr "Wyświetla Twój formularz MailChimp for WordPress."
|
@@ -239,7 +437,114 @@ msgid ""
|
|
239 |
" form settings</a>."
|
240 |
msgstr "Możesz edytować swój formularz zapisu do newslettera w <a href=\"%s\">Ustawieniach \"MailChimp dla Wordpress\"</a>"
|
241 |
|
242 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
msgid "Add new form"
|
244 |
msgstr "Dodaj nowy formularz"
|
245 |
|
@@ -271,34 +576,262 @@ msgstr "Wiadomości"
|
|
271 |
msgid "Appearance"
|
272 |
msgstr "Wygląd"
|
273 |
|
274 |
-
#: includes/forms/views/edit-form.php:
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
|
281 |
-
#: includes/
|
282 |
-
msgid "
|
283 |
-
msgstr "
|
284 |
|
285 |
-
#: includes/
|
286 |
-
msgid "
|
287 |
-
msgstr "
|
288 |
|
289 |
-
#: includes/
|
290 |
-
msgid "
|
291 |
-
msgstr "
|
292 |
|
293 |
-
#: includes/
|
294 |
-
msgid "
|
295 |
-
msgstr "
|
296 |
|
297 |
-
#: includes/
|
298 |
-
msgid "
|
299 |
-
msgstr "
|
300 |
|
301 |
-
#: includes/forms/views/parts/add-fields-help.
|
302 |
#: includes/forms/views/tabs/form-fields.php:10
|
303 |
msgid "Add more fields"
|
304 |
msgstr "Dodaj więcej pól do formularza"
|
@@ -323,7 +856,7 @@ msgstr "Dodaj pola do wszystkich zaznaczonych list subskrybentów."
|
|
323 |
|
324 |
#: includes/forms/views/parts/add-fields-help.php:23
|
325 |
msgid "Clicking the following links will take you to the right screen."
|
326 |
-
msgstr ""
|
327 |
|
328 |
#: includes/forms/views/parts/add-fields-help.php:29
|
329 |
msgid "Edit list fields for"
|
@@ -335,14 +868,9 @@ msgid ""
|
|
335 |
"changes."
|
336 |
msgstr "Kliknij poniższy button, by \"Mailchimp dla WordPress\" zaktualizował wprowadzone przez Ciebie zmiany."
|
337 |
|
338 |
-
#: includes/forms/views/parts/add-fields-help.php:43
|
339 |
-
#: includes/views/parts/lists-overview.php:8
|
340 |
-
msgid "Renew MailChimp lists"
|
341 |
-
msgstr "Odnów listy MailChimp"
|
342 |
-
|
343 |
#: includes/forms/views/parts/dynamic-content-tags.php:6
|
344 |
msgid "Add dynamic form variable"
|
345 |
-
msgstr ""
|
346 |
|
347 |
#: includes/forms/views/parts/dynamic-content-tags.php:8
|
348 |
msgid ""
|
@@ -412,471 +940,158 @@ msgstr "Pola formularza"
|
|
412 |
msgid "Enter the HTML code for your form fields.."
|
413 |
msgstr "Wprowadź kod HTML dla pól twojego formularza."
|
414 |
|
415 |
-
#: includes/forms/views/tabs/form-fields.php:
|
416 |
-
msgid "Your form is missing the following (required) form fields:"
|
417 |
-
msgstr "Nie wypełniłeś/aś poniższych (wymaganych) pól formularza:"
|
418 |
-
|
419 |
-
#: includes/forms/views/tabs/form-fields.php:34
|
420 |
msgid ""
|
421 |
"Use the shortcode %s to display this form inside a post, page or text "
|
422 |
"widget."
|
423 |
msgstr "Użyj shortcode'u %s, by wyświetlić ten formularz we wpisie, stronie lub tekstowym widgetcie."
|
424 |
|
425 |
-
#: includes/forms/views/tabs/form-messages.php:
|
426 |
msgid "Form Messages"
|
427 |
msgstr "Wiadomości formularza"
|
428 |
|
429 |
-
#: includes/forms/views/tabs/form-messages.php:
|
430 |
msgid "Successfully subscribed"
|
431 |
msgstr "Zostałeś pomyślnie zapisany do naszej bazy."
|
432 |
|
433 |
-
#: includes/forms/views/tabs/form-messages.php:
|
434 |
msgid ""
|
435 |
"The text that shows when an email address is successfully subscribed to the "
|
436 |
"selected list(s)."
|
437 |
msgstr "Tekst, który pokazuje się, gdy adres e-mail zostanie pomyślnie zapisany do konkretnej listy (list) subskrybentów."
|
438 |
|
439 |
-
#: includes/forms/views/tabs/form-messages.php:
|
440 |
msgid "Invalid email address"
|
441 |
msgstr "Nieprawidłowy adres e-mail"
|
442 |
|
443 |
-
#: includes/forms/views/tabs/form-messages.php:
|
444 |
msgid "The text that shows when an invalid email address is given."
|
445 |
msgstr "Tekst, który pokazuje się, gdy zostanie wprowadzony błędny adres e-mail."
|
446 |
|
447 |
-
#: includes/forms/views/tabs/form-messages.php:
|
448 |
msgid "Required field missing"
|
449 |
msgstr "Wymagane pole nie zostało wypełnione."
|
450 |
|
451 |
-
#: includes/forms/views/tabs/form-messages.php:
|
452 |
msgid ""
|
453 |
"The text that shows when a required field for the selected list(s) is "
|
454 |
"missing."
|
455 |
msgstr "Tekst, który pokazuje się, gdy wymagane pole dla wybranej listy (list) subskrybentów nie zostanie wypełnione."
|
456 |
|
457 |
-
#: includes/forms/views/tabs/form-messages.php:
|
458 |
msgid "Already subscribed"
|
459 |
msgstr "Adres już istnieje w bazie mailingowej."
|
460 |
|
461 |
-
#: includes/forms/views/tabs/form-messages.php:
|
462 |
msgid ""
|
463 |
"The text that shows when the given email is already subscribed to the "
|
464 |
"selected list(s)."
|
465 |
msgstr "Tekst, który pokazuje się, gdy adres e-mail jest już zapisany do konkretnej listy (list) subskrybentów."
|
466 |
|
467 |
-
#: includes/forms/views/tabs/form-messages.php:
|
468 |
msgid "General error"
|
469 |
msgstr "Ogólny błąd."
|
470 |
|
471 |
-
#: includes/forms/views/tabs/form-messages.php:
|
472 |
msgid "The text that shows when a general error occured."
|
473 |
msgstr "Tekst, który pokazuje się, gdy wystąpi ogólny błąd."
|
474 |
|
475 |
-
#: includes/forms/views/tabs/form-messages.php:
|
476 |
msgid "Unsubscribed"
|
477 |
msgstr "Wypisany z listy mailingowej."
|
478 |
|
479 |
-
#: includes/forms/views/tabs/form-messages.php:
|
480 |
msgid ""
|
481 |
"When using the unsubscribe method, this is the text that shows when the "
|
482 |
"given email address is successfully unsubscribed from the selected list(s)."
|
483 |
-
msgstr ""
|
484 |
|
485 |
-
#: includes/forms/views/tabs/form-messages.php:
|
486 |
msgid "Not subscribed"
|
487 |
-
msgstr ""
|
488 |
|
489 |
-
#: includes/forms/views/tabs/form-messages.php:
|
490 |
msgid ""
|
491 |
"When using the unsubscribe method, this is the text that shows when the "
|
492 |
"given email address is not on the selected list(s)."
|
|
|
|
|
|
|
|
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: includes/forms/views/tabs/form-messages.php:
|
496 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
497 |
msgstr ""
|
498 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
499 |
#: includes/forms/views/tabs/form-settings.php:1
|
500 |
msgid "Form Settings"
|
501 |
msgstr "Ustawienia formularza"
|
502 |
|
503 |
#: includes/forms/views/tabs/form-settings.php:5
|
504 |
msgid "MailChimp specific settings"
|
505 |
-
msgstr ""
|
506 |
-
|
507 |
-
#: includes/forms/views/tabs/form-settings.php:12
|
508 |
-
msgid "Lists this form subscribes to"
|
509 |
-
msgstr ""
|
510 |
|
511 |
#: includes/forms/views/tabs/form-settings.php:15
|
512 |
-
|
513 |
-
|
514 |
-
msgstr ""
|
515 |
|
516 |
-
#: includes/forms/views/tabs/form-settings.php:
|
517 |
msgid ""
|
518 |
"Select the list(s) to which people who submit this form should be "
|
519 |
"subscribed."
|
520 |
-
msgstr ""
|
521 |
|
522 |
-
#: includes/forms/views/tabs/form-settings.php:
|
523 |
msgid "Use double opt-in?"
|
524 |
msgstr "Użyć double opt-in?"
|
525 |
|
526 |
-
#: includes/forms/views/tabs/form-settings.php:
|
527 |
-
|
528 |
-
#: includes/forms/views/tabs/form-settings.php:69
|
529 |
-
#: includes/forms/views/tabs/form-settings.php:85
|
530 |
-
#: includes/forms/views/tabs/form-settings.php:115
|
531 |
-
#: includes/integrations/views/integration-settings.php:53
|
532 |
-
#: includes/integrations/views/integration-settings.php:66
|
533 |
-
#: includes/integrations/views/integration-settings.php:117
|
534 |
-
#: includes/integrations/views/integration-settings.php:129
|
535 |
-
#: includes/integrations/views/integration-settings.php:142
|
536 |
-
#: includes/integrations/views/integration-settings.php:163
|
537 |
-
#: includes/integrations/views/integration-settings.php:180
|
538 |
-
#: includes/integrations/views/integration-settings.php:199
|
539 |
-
#: integrations/contact-form-7/class-contact-form-7.php:69
|
540 |
-
msgid "Yes"
|
541 |
-
msgstr "Tak"
|
542 |
-
|
543 |
-
#: includes/forms/views/tabs/form-settings.php:43
|
544 |
-
#: includes/forms/views/tabs/form-settings.php:58
|
545 |
-
#: includes/forms/views/tabs/form-settings.php:73
|
546 |
-
#: includes/forms/views/tabs/form-settings.php:89
|
547 |
-
#: includes/forms/views/tabs/form-settings.php:119
|
548 |
-
#: includes/integrations/views/integration-settings.php:54
|
549 |
-
#: includes/integrations/views/integration-settings.php:67
|
550 |
-
#: includes/integrations/views/integration-settings.php:118
|
551 |
-
#: includes/integrations/views/integration-settings.php:130
|
552 |
-
#: includes/integrations/views/integration-settings.php:146
|
553 |
-
#: includes/integrations/views/integration-settings.php:167
|
554 |
-
#: includes/integrations/views/integration-settings.php:184
|
555 |
-
#: includes/integrations/views/integration-settings.php:203
|
556 |
-
#: integrations/contact-form-7/class-contact-form-7.php:69
|
557 |
-
msgid "No"
|
558 |
-
msgstr "Nie"
|
559 |
-
|
560 |
-
#: includes/forms/views/tabs/form-settings.php:45
|
561 |
-
#: includes/integrations/views/integration-settings.php:149
|
562 |
-
msgid ""
|
563 |
-
"Select \"yes\" if you want people to confirm their email address before "
|
564 |
-
"being subscribed (recommended)"
|
565 |
-
msgstr ""
|
566 |
-
|
567 |
-
#: includes/forms/views/tabs/form-settings.php:50
|
568 |
-
msgid "Send final welcome email?"
|
569 |
-
msgstr ""
|
570 |
-
|
571 |
-
#: includes/forms/views/tabs/form-settings.php:60
|
572 |
-
#: includes/integrations/views/integration-settings.php:169
|
573 |
-
msgid ""
|
574 |
-
"Select \"yes\" if you want to send your lists Welcome Email if a subscribe "
|
575 |
-
"succeeds (only when double opt-in is disabled)."
|
576 |
-
msgstr ""
|
577 |
-
|
578 |
-
#: includes/forms/views/tabs/form-settings.php:65
|
579 |
-
#: includes/integrations/views/integration-settings.php:176
|
580 |
-
msgid "Update existing subscribers?"
|
581 |
-
msgstr "Zaktualizować istniejących subskrybentów?"
|
582 |
-
|
583 |
-
#: includes/forms/views/tabs/form-settings.php:75
|
584 |
-
#: includes/integrations/views/integration-settings.php:186
|
585 |
-
msgid ""
|
586 |
-
"Select \"yes\" if you want to update existing subscribers with the data that"
|
587 |
-
" is sent."
|
588 |
msgstr ""
|
589 |
|
590 |
-
#: includes/forms/views/tabs/form-settings.php:
|
591 |
-
#: includes/integrations/views/integration-settings.php:195
|
592 |
-
msgid "Replace interest groups?"
|
593 |
-
msgstr "Zamienić grupy zainteresowań"
|
594 |
-
|
595 |
-
#: includes/forms/views/tabs/form-settings.php:92
|
596 |
-
#: includes/integrations/views/integration-settings.php:206
|
597 |
msgid ""
|
598 |
-
"
|
599 |
-
"
|
600 |
msgstr ""
|
601 |
|
602 |
-
#: includes/forms/views/tabs/form-settings.php:
|
603 |
-
#: includes/integrations/views/integration-settings.php:207
|
604 |
-
msgid "What does this do?"
|
605 |
-
msgstr "Co to robi?"
|
606 |
-
|
607 |
-
#: includes/forms/views/tabs/form-settings.php:104
|
608 |
msgid "Form behaviour"
|
609 |
msgstr "Zachowanie formularza"
|
610 |
|
611 |
-
#: includes/forms/views/tabs/form-settings.php:
|
612 |
msgid "Hide form after a successful sign-up?"
|
613 |
msgstr "Ukryć formularz po udanym zapisie?"
|
614 |
|
615 |
-
#: includes/forms/views/tabs/form-settings.php:
|
616 |
msgid "Select \"yes\" to hide the form fields after a successful sign-up."
|
617 |
msgstr "Wybierz \"tak\", by ukryć pola formularza po udanym zapisie."
|
618 |
|
619 |
-
#: includes/forms/views/tabs/form-settings.php:
|
620 |
msgid "Redirect to URL after successful sign-ups"
|
621 |
msgstr "Zrób przekierowanie na adres URL po udanym zapisie."
|
622 |
|
623 |
-
#: includes/forms/views/tabs/form-settings.php:
|
624 |
msgid "Example: %s"
|
625 |
msgstr "Przykład: %s"
|
626 |
|
627 |
-
#: includes/forms/views/tabs/form-settings.php:
|
628 |
msgid ""
|
629 |
"Leave empty or enter <code>0</code> for no redirect. Otherwise, use complete"
|
630 |
" (absolute) URLs, including <code>http://</code>."
|
631 |
msgstr ""
|
632 |
-
|
633 |
-
#: includes/integrations/class-admin.php:79
|
634 |
-
#: includes/integrations/class-admin.php:80
|
635 |
-
#: includes/integrations/views/integration-settings.php:10
|
636 |
-
#: includes/integrations/views/integrations.php:9
|
637 |
-
#: includes/integrations/views/integrations.php:17
|
638 |
-
msgid "Integrations"
|
639 |
-
msgstr "Integracje"
|
640 |
-
|
641 |
-
#: includes/integrations/views/integration-settings.php:20
|
642 |
-
msgid "%s integration"
|
643 |
-
msgstr "Integracja: \"%s\""
|
644 |
-
|
645 |
-
#: includes/integrations/views/integration-settings.php:51
|
646 |
-
msgid "Enabled?"
|
647 |
-
msgstr ""
|
648 |
-
|
649 |
-
#: includes/integrations/views/integration-settings.php:55
|
650 |
-
msgid ""
|
651 |
-
"Enable the %s integration? This will add a sign-up checkbox to the form."
|
652 |
-
msgstr "Włączyć integracje: \"%s\"? Doda to checkboxa z zapisem do formularza."
|
653 |
-
|
654 |
-
#: includes/integrations/views/integration-settings.php:64
|
655 |
-
msgid "Implicit?"
|
656 |
-
msgstr ""
|
657 |
-
|
658 |
-
#: includes/integrations/views/integration-settings.php:68
|
659 |
-
msgid ""
|
660 |
-
"Select \"no\" if you want to ask your visitors before they are subscribed "
|
661 |
-
"(recommended)."
|
662 |
-
msgstr "Wybierz \"nie\" jeśli chcesz pytać swoich gości zanim zostaną zapisani (polecane)."
|
663 |
-
|
664 |
-
#: includes/integrations/views/integration-settings.php:78
|
665 |
-
msgid "MailChimp Lists"
|
666 |
-
msgstr "Listy MailChimp"
|
667 |
-
|
668 |
-
#: includes/integrations/views/integration-settings.php:89
|
669 |
-
msgid ""
|
670 |
-
"Select the list(s) to which people who check the checkbox should be "
|
671 |
-
"subscribed."
|
672 |
-
msgstr "Wybierz listę (listy) do których ludzie, którzy zaznaczą checkboxa powinni zostać zapisani."
|
673 |
-
|
674 |
-
#: includes/integrations/views/integration-settings.php:102
|
675 |
-
msgid "Checkbox label text"
|
676 |
-
msgstr "Tekst pola wyboru"
|
677 |
-
|
678 |
-
#: includes/integrations/views/integration-settings.php:105
|
679 |
-
msgid "HTML tags like %s are allowed in the label text."
|
680 |
-
msgstr ""
|
681 |
-
|
682 |
-
#: includes/integrations/views/integration-settings.php:115
|
683 |
-
msgid "Pre-check the checkbox?"
|
684 |
-
msgstr "Czy checkbox powinien być od razu zaznaczony?"
|
685 |
-
|
686 |
-
#: includes/integrations/views/integration-settings.php:119
|
687 |
-
msgid "Select \"yes\" if the checkbox should be pre-checked."
|
688 |
-
msgstr "Wybierz \"tak\", jeśli checkbox powinien być od razu zaznaczony."
|
689 |
-
|
690 |
-
#: includes/integrations/views/integration-settings.php:127
|
691 |
-
msgid "Load some default CSS?"
|
692 |
-
msgstr "Załadować podstawowe style CSS?"
|
693 |
-
|
694 |
-
#: includes/integrations/views/integration-settings.php:131
|
695 |
-
msgid "Select \"yes\" if the checkbox appears in a weird place."
|
696 |
-
msgstr "Wybierz \"tak\", jeśli checkbox pojawi się w dziwnym miejscu."
|
697 |
-
|
698 |
-
#: includes/integrations/views/integration-settings.php:138
|
699 |
-
msgid "Double opt-in?"
|
700 |
-
msgstr "Double opt-in?"
|
701 |
-
|
702 |
-
#: includes/integrations/views/integration-settings.php:159
|
703 |
-
msgid "Send Welcome Email?"
|
704 |
-
msgstr "Wysłać wiadomość powitalną?"
|
705 |
-
|
706 |
-
#: includes/integrations/views/integration-settings.php:244
|
707 |
-
msgid ""
|
708 |
-
"The selected MailChimp lists require non-default fields, which may prevent "
|
709 |
-
"this integration from working."
|
710 |
-
msgstr ""
|
711 |
-
|
712 |
-
#: includes/integrations/views/integration-settings.php:245
|
713 |
-
msgid ""
|
714 |
-
"Please ensure you <a href=\"%s\">configure the plugin to send all required "
|
715 |
-
"fields</a> or <a href=\"%s\">log into your MailChimp account</a> and make "
|
716 |
-
"sure only the email & name fields are marked as required fields for the "
|
717 |
-
"selected list(s)."
|
718 |
-
msgstr ""
|
719 |
-
|
720 |
-
#: includes/integrations/views/integrations.php:30
|
721 |
-
msgid "Enabled"
|
722 |
-
msgstr ""
|
723 |
-
|
724 |
-
#: includes/integrations/views/integrations.php:31
|
725 |
-
msgid "Name"
|
726 |
-
msgstr "Nazwa"
|
727 |
-
|
728 |
-
#: includes/integrations/views/integrations.php:32
|
729 |
-
msgid "Description"
|
730 |
-
msgstr "Opis"
|
731 |
-
|
732 |
-
#: includes/integrations/views/integrations.php:50
|
733 |
-
msgid ""
|
734 |
-
"This integration is enabled by default as it requires manual actions to "
|
735 |
-
"work."
|
736 |
-
msgstr ""
|
737 |
-
|
738 |
-
#: includes/integrations/views/integrations.php:57
|
739 |
-
msgid "Configure this integration"
|
740 |
-
msgstr "Skonfiguruj tą integrację"
|
741 |
-
|
742 |
-
#: includes/views/general-settings.php:18
|
743 |
-
msgid "General Settings"
|
744 |
-
msgstr "Ogólne ustawienia"
|
745 |
-
|
746 |
-
#: includes/views/general-settings.php:35
|
747 |
-
msgid "Status"
|
748 |
-
msgstr "Status"
|
749 |
-
|
750 |
-
#: includes/views/general-settings.php:39
|
751 |
-
msgid "CONNECTED"
|
752 |
-
msgstr "POŁĄCZONY"
|
753 |
-
|
754 |
-
#: includes/views/general-settings.php:41
|
755 |
-
msgid "NOT CONNECTED"
|
756 |
-
msgstr "BRAK POŁĄCZENIA"
|
757 |
-
|
758 |
-
#: includes/views/general-settings.php:48
|
759 |
-
msgid "API Key"
|
760 |
-
msgstr "Klucz API"
|
761 |
-
|
762 |
-
#: includes/views/general-settings.php:50
|
763 |
-
msgid "Your MailChimp API key"
|
764 |
-
msgstr "Twoj klucz API z MailChimp."
|
765 |
-
|
766 |
-
#: includes/views/general-settings.php:52
|
767 |
-
msgid "The API key for connecting with your MailChimp account."
|
768 |
-
msgstr ""
|
769 |
-
|
770 |
-
#: includes/views/general-settings.php:53
|
771 |
-
msgid "Get your API key here."
|
772 |
-
msgstr "Zdobądź klucz API tutaj."
|
773 |
-
|
774 |
-
#: includes/views/general-settings.php:65
|
775 |
-
msgid "Usage Tracking"
|
776 |
-
msgstr ""
|
777 |
-
|
778 |
-
#: includes/views/general-settings.php:71
|
779 |
-
msgid ""
|
780 |
-
"Allow us to anonymously track how this plugin is used to help us make it "
|
781 |
-
"better fit your needs."
|
782 |
-
msgstr ""
|
783 |
-
|
784 |
-
#: includes/views/general-settings.php:73
|
785 |
-
msgid "This is what we track."
|
786 |
-
msgstr ""
|
787 |
-
|
788 |
-
#: includes/views/parts/admin-footer.php:11
|
789 |
-
msgid ""
|
790 |
-
"MailChimp for WordPress is in need of translations. Is the plugin not "
|
791 |
-
"translated in your language or do you spot errors with the current "
|
792 |
-
"translations? Helping out is easy! Head over to <a href=\"%s\">the "
|
793 |
-
"translation project and click \"help translate\"</a>."
|
794 |
-
msgstr ""
|
795 |
-
|
796 |
-
#: includes/views/parts/admin-footer.php:31
|
797 |
-
msgid ""
|
798 |
-
"This plugin is not developed by or affiliated with MailChimp in any way."
|
799 |
-
msgstr ""
|
800 |
-
|
801 |
-
#: includes/views/parts/lists-overview.php:1
|
802 |
-
msgid "Your MailChimp Account"
|
803 |
-
msgstr ""
|
804 |
-
|
805 |
-
#: includes/views/parts/lists-overview.php:2
|
806 |
-
msgid ""
|
807 |
-
"The table below shows your MailChimp lists and their details. If you just "
|
808 |
-
"applied changes to your MailChimp lists, please use the following button to "
|
809 |
-
"renew the cached lists configuration."
|
810 |
-
msgstr ""
|
811 |
-
|
812 |
-
#: includes/views/parts/lists-overview.php:14
|
813 |
-
msgid "No lists were found in your MailChimp account"
|
814 |
-
msgstr ""
|
815 |
-
|
816 |
-
#: includes/views/parts/lists-overview.php:16
|
817 |
-
msgid "A total of %d lists were found in your MailChimp account."
|
818 |
-
msgstr ""
|
819 |
-
|
820 |
-
#: includes/views/parts/lists-overview.php:21
|
821 |
-
msgid "List Name"
|
822 |
-
msgstr "Nazwa listy"
|
823 |
-
|
824 |
-
#: includes/views/parts/lists-overview.php:22
|
825 |
-
msgid "ID"
|
826 |
-
msgstr "ID"
|
827 |
-
|
828 |
-
#: includes/views/parts/lists-overview.php:23
|
829 |
-
msgid "Subscribers"
|
830 |
-
msgstr "Subskrybenci"
|
831 |
-
|
832 |
-
#: includes/views/parts/lists-overview.php:45
|
833 |
-
msgid "Edit this list in MailChimp"
|
834 |
-
msgstr ""
|
835 |
-
|
836 |
-
#: includes/views/parts/lists-overview.php:59
|
837 |
-
msgid "%s (%s) with field type %s."
|
838 |
-
msgstr ""
|
839 |
-
|
840 |
-
#: includes/views/parts/lists-overview.php:83
|
841 |
-
msgid "%s (ID: %s) with type %s."
|
842 |
-
msgstr ""
|
843 |
-
|
844 |
-
#: integrations/contact-form-7/admin-before.php:2
|
845 |
-
msgid ""
|
846 |
-
"To integrate with Contact Form 7, configure the settings below and then add "
|
847 |
-
"%s to your CF7 form mark-up."
|
848 |
-
msgstr ""
|
849 |
-
|
850 |
-
#: integrations/custom/admin-before.php:2
|
851 |
-
msgid ""
|
852 |
-
"To get a custom integration to work, include the following HTML in the form "
|
853 |
-
"you are trying to integrate with."
|
854 |
-
msgstr ""
|
855 |
-
|
856 |
-
#: integrations/woocommerce/class-woocommerce.php:102
|
857 |
-
msgid "Order #%d"
|
858 |
-
msgstr "Zamówienie #%d"
|
859 |
-
|
860 |
-
#. Plugin Name of the plugin/theme
|
861 |
-
msgid "MailChimp for WordPress"
|
862 |
-
msgstr "MailChimp for WordPress"
|
863 |
-
|
864 |
-
#. Plugin URI of the plugin/theme
|
865 |
-
msgid ""
|
866 |
-
"https://mc4wp.com/#utm_source=wp-plugin&utm_medium=mailchimp-for-"
|
867 |
-
"wp&utm_campaign=plugins-page"
|
868 |
-
msgstr "https://mc4wp.com/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=plugins-page"
|
869 |
-
|
870 |
-
#. Description of the plugin/theme
|
871 |
-
msgid ""
|
872 |
-
"MailChimp for WordPress by ibericode. Adds various highly effective sign-up "
|
873 |
-
"methods to your site."
|
874 |
-
msgstr ""
|
875 |
-
|
876 |
-
#. Author of the plugin/theme
|
877 |
-
msgid "ibericode"
|
878 |
-
msgstr "ibericode"
|
879 |
-
|
880 |
-
#. Author URI of the plugin/theme
|
881 |
-
msgid "https://ibericode.com/"
|
882 |
-
msgstr "https://ibericode.com/"
|
1 |
+
# Copyright (C) 2017 mailchimp-for-wp
|
2 |
+
# This file is distributed under the same license as the mailchimp-for-wp package.
|
3 |
# Translators:
|
4 |
+
# Albert Zasłonka <bercik156@gmail.com>, 2017
|
5 |
+
# Bart Fischer (Archimedesign) <info@archimedesign.co.uk>, 2015
|
6 |
+
# Albert Zasłonka <bercik156@gmail.com>, 2017
|
7 |
# Jan Rusakiewicz <jan.rusakiewicz@gmail.com>, 2015
|
8 |
# Mateusz Lomber <lumberpack@gmail.com>, 2017
|
9 |
# Paweł Tomkiel <neonkowy@gmail.com>, 2016
|
11 |
msgid ""
|
12 |
msgstr ""
|
13 |
"Project-Id-Version: MailChimp for WordPress\n"
|
14 |
+
"PO-Revision-Date: 2017-05-02 04:22+0000\n"
|
15 |
+
"Last-Translator: Albert Zasłonka <bercik156@gmail.com>\n"
|
|
|
|
|
16 |
"Language-Team: Polish (Poland) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/pl_PL/)\n"
|
17 |
"MIME-Version: 1.0\n"
|
18 |
"Content-Type: text/plain; charset=UTF-8\n"
|
19 |
"Content-Transfer-Encoding: 8bit\n"
|
20 |
"Language: pl_PL\n"
|
21 |
+
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
|
22 |
+
"X-Poedit-Basepath: ..\n"
|
23 |
+
"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
|
24 |
+
"X-Poedit-SearchPath-0: .\n"
|
25 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
26 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
27 |
+
|
28 |
+
#: includes/admin/class-admin-texts.php62,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
#: includes/forms/views/edit-form.php:6
|
30 |
msgid "Settings"
|
31 |
msgstr "Ustawienia"
|
34 |
msgid "Documentation"
|
35 |
msgstr "Dokumentacja"
|
36 |
|
37 |
+
#: includes/admin/class-admin.php:204
|
38 |
msgid ""
|
39 |
"Success! The cached configuration for your MailChimp lists has been renewed."
|
40 |
msgstr "Operacja przywrócenia listy subskrypcji twojego konta MailChimp została zakończona pomyślnie."
|
41 |
|
42 |
+
#: includes/admin/class-admin.php:304
|
43 |
msgid ""
|
44 |
"This is a pro-only feature. Please upgrade to the premium version to be able"
|
45 |
" to use it."
|
46 |
msgstr "Opcja premium. Kup wersję premium, aby móc korzystać z tej opcji."
|
47 |
|
48 |
+
#: includes/admin/class-admin.php305,
|
49 |
+
#: includes/views/parts/lists-overview.php10,
|
50 |
+
#: includes/forms/views/parts/add-fields-help.php:43
|
51 |
+
msgid "Renew MailChimp lists"
|
52 |
+
msgstr "Odnów listy MailChimp"
|
53 |
+
|
54 |
+
#: includes/admin/class-admin.php:306
|
55 |
+
msgid "Fetching MailChimp lists"
|
56 |
+
msgstr ""
|
57 |
+
|
58 |
+
#: includes/admin/class-admin.php:307
|
59 |
+
msgid "Done! MailChimp lists renewed."
|
60 |
+
msgstr "Gotowe! Listy MailChimp odnowione."
|
61 |
+
|
62 |
+
#: includes/admin/class-admin.php:308
|
63 |
+
msgid "This can take a while if you have many MailChimp lists."
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: includes/admin/class-admin.php336, includes/views/general-settings.php:31
|
67 |
msgid "MailChimp API Settings"
|
68 |
msgstr "Ustawienia API MailChimp"
|
69 |
|
70 |
+
#: includes/admin/class-admin.php:337
|
|
|
71 |
msgid "MailChimp"
|
72 |
msgstr "MailChimp"
|
73 |
|
74 |
+
#: includes/admin/class-admin.php343, includes/views/other-settings.php60,
|
75 |
+
#: includes/views/other-settings.php:70
|
76 |
+
msgid "Other Settings"
|
77 |
+
msgstr "Inne Ustawienia"
|
78 |
|
79 |
+
#: includes/admin/class-admin.php:344
|
80 |
+
msgid "Other"
|
81 |
+
msgstr "Inne"
|
82 |
+
|
83 |
+
#: includes/admin/class-admin.php:458
|
84 |
+
msgid "Log successfully emptied."
|
85 |
+
msgstr "Logi Usunięte."
|
86 |
+
|
87 |
+
#: includes/admin/class-admin.php:488
|
88 |
+
msgid ""
|
89 |
+
"To get started with MailChimp for WordPress, please <a href=\"%s\">enter "
|
90 |
+
"your MailChimp API key on the settings page of the plugin</a>."
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: includes/admin/class-ads.php:39
|
94 |
+
msgid ""
|
95 |
+
"Want to customize the style of your form? <a href=\"%s\">Try our Styles "
|
96 |
+
"Builder</a> & edit the look of your forms with just a few clicks."
|
97 |
+
msgstr ""
|
98 |
+
|
99 |
+
#: includes/admin/class-ads.php:54
|
100 |
+
msgid ""
|
101 |
+
"Be notified whenever someone subscribes? <a href=\"%s\">MailChimp for "
|
102 |
+
"WordPress Premium</a> allows you to set up email notifications for your "
|
103 |
+
"forms."
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: includes/admin/class-ads.php:56
|
107 |
+
msgid ""
|
108 |
+
"Increased conversions? <a href=\"%s\">MailChimp for WordPress Premium</a> "
|
109 |
+
"submits forms without reloading the entire page, resulting in a much better "
|
110 |
+
"experience for your visitors."
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
+
#: includes/admin/class-ads.php:70
|
114 |
+
msgid "Upgrade to Premium"
|
115 |
+
msgstr "Zaktualizuj do Wersji Premium"
|
116 |
+
|
117 |
+
#: includes/admin/class-ads.php:83
|
118 |
+
msgid ""
|
119 |
+
"Do you want translated forms for all of your languages? <a href=\"%s\">Try "
|
120 |
+
"MailChimp for WordPress Premium</a>, which does just that plus more."
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
+
#: includes/admin/class-ads.php:88
|
124 |
+
msgid ""
|
125 |
+
"Do you want to create more than one form? Our Premium add-on does just that!"
|
126 |
+
" <a href=\"%s\">Have a look at all Premium benefits</a>."
|
127 |
+
msgstr ""
|
128 |
+
|
129 |
+
#: includes/admin/class-ads.php:93
|
130 |
msgid ""
|
131 |
+
"Are you enjoying this plugin? The Premium add-on unlocks several powerful "
|
132 |
+
"features. <a href=\"%s\">Find out about all benefits now</a>."
|
133 |
+
msgstr ""
|
134 |
|
135 |
+
#: includes/admin/class-ads.php:112
|
136 |
msgid "More subscribers, better newsletters."
|
137 |
msgstr "Więcej subskrybentów, lepsze newslettery."
|
138 |
|
139 |
+
#: includes/admin/class-ads.php:113
|
140 |
msgid ""
|
141 |
"Learn how to best grow your lists & write better emails by subscribing to "
|
142 |
"our monthly tips."
|
143 |
msgstr "Dowiedz się jak pozyskać więcej subskrybentów oraz jak pisać lepsze wiadomości email w naszych comiesięcznych poradach."
|
144 |
|
145 |
+
#: includes/admin/class-ads.php:116
|
146 |
msgid "Email Address"
|
147 |
msgstr "Adres e-mail"
|
148 |
|
149 |
+
#: includes/admin/class-ads.php:120
|
150 |
msgid "First Name"
|
151 |
msgstr "Imię"
|
152 |
|
153 |
+
#: includes/admin/class-ads.php127, includes/forms/class-admin.php:94
|
154 |
msgid "Subscribe"
|
155 |
msgstr "Subskrybuj"
|
156 |
|
157 |
+
#: includes/admin/class-ads.php:150
|
158 |
+
msgid ""
|
159 |
+
"Do you want to track all WooCommerce orders in MailChimp so you can send "
|
160 |
+
"emails based on the purchase activity of your subscribers?"
|
161 |
+
msgstr ""
|
162 |
|
163 |
+
#: includes/admin/class-ads.php:153
|
164 |
+
msgid ""
|
165 |
+
"<a href=\"%s\">Upgrade to MailChimp for WordPress Premium</a> or <a "
|
166 |
+
"href=\"%s\">read more about MailChimp's E-Commerce features</a>."
|
167 |
+
msgstr ""
|
168 |
+
|
169 |
+
#: includes/admin/class-review-notice.php:68
|
170 |
+
msgid ""
|
171 |
+
"You've been using MailChimp for WordPress for some time now; we hope you "
|
172 |
+
"love it!"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
#: includes/admin/class-review-notice.php:69
|
176 |
+
msgid ""
|
177 |
+
"If you do, please <a href=\"%s\">leave us a 5★ rating on WordPress.org</a>. "
|
178 |
+
"It would be of great help to us."
|
179 |
+
msgstr ""
|
180 |
|
181 |
+
#: includes/admin/class-review-notice.php:71
|
182 |
+
msgid "Dismiss this notice."
|
183 |
+
msgstr "Usuń to powiadomienie"
|
184 |
+
|
185 |
+
#: includes/api/class-api.php:84
|
186 |
msgid "Read more about common connectivity issues."
|
187 |
msgstr "Czytaj więcej o rozwiązywaniu problemów z łącznością."
|
188 |
|
189 |
+
#: includes/forms/class-admin.php:62
|
190 |
+
msgid "Add to form"
|
191 |
+
msgstr "Dodaj do formularza"
|
192 |
+
|
193 |
+
#: includes/forms/class-admin.php:63
|
194 |
+
msgid "City"
|
195 |
+
msgstr "Miasto"
|
196 |
+
|
197 |
+
#: includes/forms/class-admin.php:64
|
198 |
+
msgid "Checkboxes"
|
199 |
+
msgstr "Pola wyboru"
|
200 |
+
|
201 |
+
#: includes/forms/class-admin.php:65
|
202 |
+
msgid "Choices"
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
#: includes/forms/class-admin.php:66
|
206 |
+
msgid "Choice type"
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#: includes/forms/class-admin.php:67
|
210 |
+
msgid "Choose a field to add to the form"
|
211 |
+
msgstr ""
|
212 |
+
|
213 |
+
#: includes/forms/class-admin.php:68
|
214 |
+
msgid "Close"
|
215 |
+
msgstr "Zamknij"
|
216 |
+
|
217 |
+
#: includes/forms/class-admin.php:69
|
218 |
+
msgid "Country"
|
219 |
+
msgstr "Kraj"
|
220 |
+
|
221 |
+
#: includes/forms/class-admin.php:70
|
222 |
+
msgid "Dropdown"
|
223 |
+
msgstr "Upuść"
|
224 |
+
|
225 |
+
#: includes/forms/class-admin.php:71
|
226 |
+
msgid "Field type"
|
227 |
+
msgstr ""
|
228 |
+
|
229 |
+
#: includes/forms/class-admin.php:72
|
230 |
+
msgid "Field label"
|
231 |
+
msgstr ""
|
232 |
+
|
233 |
+
#: includes/forms/class-admin.php:73
|
234 |
+
msgid "Form action"
|
235 |
+
msgstr ""
|
236 |
+
|
237 |
+
#: includes/forms/class-admin.php:74
|
238 |
+
msgid ""
|
239 |
+
"This field will allow your visitors to choose whether they would like to "
|
240 |
+
"subscribe or unsubscribe"
|
241 |
+
msgstr ""
|
242 |
+
|
243 |
+
#: includes/forms/class-admin.php:75
|
244 |
+
msgid "Form fields"
|
245 |
+
msgstr ""
|
246 |
+
|
247 |
+
#: includes/forms/class-admin.php:76
|
248 |
+
msgid "This field is marked as required in MailChimp."
|
249 |
+
msgstr ""
|
250 |
+
|
251 |
+
#: includes/forms/class-admin.php:77
|
252 |
+
msgid "Initial value"
|
253 |
+
msgstr ""
|
254 |
+
|
255 |
+
#: includes/forms/class-admin.php:78
|
256 |
+
msgid "Interest categories"
|
257 |
+
msgstr ""
|
258 |
+
|
259 |
+
#: includes/forms/class-admin.php:79
|
260 |
+
msgid "Is this field required?"
|
261 |
+
msgstr ""
|
262 |
+
|
263 |
+
#: includes/forms/class-admin.php:80
|
264 |
+
msgid "List choice"
|
265 |
+
msgstr ""
|
266 |
+
|
267 |
+
#: includes/forms/class-admin.php:81
|
268 |
+
msgid "This field will allow your visitors to choose a list to subscribe to."
|
269 |
+
msgstr ""
|
270 |
+
|
271 |
+
#: includes/forms/class-admin.php:82
|
272 |
+
msgid "List fields"
|
273 |
+
msgstr ""
|
274 |
+
|
275 |
+
#: includes/forms/class-admin.php:83
|
276 |
+
msgid "Min"
|
277 |
+
msgstr ""
|
278 |
+
|
279 |
+
#: includes/forms/class-admin.php:84
|
280 |
+
msgid "Max"
|
281 |
+
msgstr ""
|
282 |
+
|
283 |
+
#: includes/forms/class-admin.php:85
|
284 |
+
msgid ""
|
285 |
+
"No available fields. Did you select a MailChimp list in the form settings?"
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: includes/forms/class-admin.php:86
|
289 |
+
msgid "Optional"
|
290 |
+
msgstr ""
|
291 |
+
|
292 |
+
#: includes/forms/class-admin.php:87
|
293 |
+
msgid "Placeholder"
|
294 |
+
msgstr ""
|
295 |
+
|
296 |
+
#: includes/forms/class-admin.php:88
|
297 |
+
msgid "Text to show when field has no value."
|
298 |
+
msgstr ""
|
299 |
+
|
300 |
+
#: includes/forms/class-admin.php:89
|
301 |
+
msgid "Preselect"
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: includes/forms/class-admin.php:90
|
305 |
+
msgid "Remove"
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: includes/forms/class-admin.php:91
|
309 |
+
msgid "Radio buttons"
|
310 |
+
msgstr ""
|
311 |
+
|
312 |
+
#: includes/forms/class-admin.php:92
|
313 |
+
msgid "Street Address"
|
314 |
+
msgstr ""
|
315 |
+
|
316 |
+
#: includes/forms/class-admin.php:93
|
317 |
+
msgid "State"
|
318 |
+
msgstr ""
|
319 |
+
|
320 |
+
#: includes/forms/class-admin.php:95
|
321 |
+
msgid "Submit button"
|
322 |
+
msgstr ""
|
323 |
+
|
324 |
+
#: includes/forms/class-admin.php:96
|
325 |
+
msgid "Wrap in paragraph tags?"
|
326 |
+
msgstr ""
|
327 |
+
|
328 |
+
#: includes/forms/class-admin.php:97
|
329 |
+
msgid "Value"
|
330 |
+
msgstr ""
|
331 |
+
|
332 |
+
#: includes/forms/class-admin.php:98
|
333 |
+
msgid "Text to prefill this field with."
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: includes/forms/class-admin.php:99
|
337 |
+
msgid "ZIP"
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: includes/forms/class-admin.php111, includes/forms/class-admin.php112,
|
341 |
+
#: includes/forms/views/edit-form.php:24
|
342 |
msgid "Forms"
|
343 |
msgstr "Formularze"
|
344 |
|
345 |
+
#: includes/forms/class-admin.php152, includes/forms/class-admin.php:276
|
346 |
msgid "<strong>Success!</strong> Form successfully saved."
|
347 |
msgstr "<strong>Sukces!</strong> Formularz został pomyślnie zapisany."
|
348 |
|
349 |
+
#: includes/forms/class-admin.php:276
|
350 |
msgid "Preview form"
|
351 |
msgstr "Podejrzyj formularz."
|
352 |
|
353 |
+
#: includes/forms/class-admin.php449, includes/forms/class-widget.php:30
|
354 |
+
msgid "MailChimp Sign-Up Form"
|
355 |
+
msgstr "Formularz rejestracyjny MailChimp"
|
356 |
|
357 |
+
#: includes/forms/class-admin.php:453
|
358 |
+
msgid "Select the form to show"
|
359 |
+
msgstr ""
|
360 |
|
361 |
+
#: includes/forms/class-form-previewer.php:146
|
362 |
msgid "Form preview"
|
363 |
msgstr "Podgląd formularza"
|
364 |
|
365 |
+
#: includes/forms/class-form-tags.php:60
|
366 |
msgid "Replaced with the form response (error or success messages)."
|
367 |
msgstr "Zamienione na odpowiedź formularza (wiadomość o błędzie lub powodzeniu)"
|
368 |
|
369 |
+
#: includes/forms/class-form-tags.php:65
|
370 |
msgid "Data from the URL or a submitted form."
|
371 |
msgstr "Dane z adresu URL lub formularza."
|
372 |
|
373 |
+
#: includes/forms/class-form-tags.php:71
|
374 |
+
msgid "Data from a cookie."
|
375 |
+
msgstr ""
|
376 |
+
|
377 |
+
#: includes/forms/class-form-tags.php77,
|
378 |
#: includes/integrations/class-integration-tags.php:45
|
379 |
msgid "Replaced with the number of subscribers on the selected list(s)"
|
380 |
msgstr "Zamienione na liczbę subskrybentów na zaznaczonej liście (listach)."
|
381 |
|
382 |
+
#: includes/forms/class-form-tags.php:82
|
383 |
msgid "The email address of the current visitor (if known)."
|
384 |
msgstr "Adres e-mail aktualnie odwiedzającego (jeśli znany)"
|
385 |
|
386 |
+
#: includes/forms/class-form-tags.php:87
|
387 |
msgid "The URL of the page."
|
388 |
msgstr "URL strony."
|
389 |
|
390 |
+
#: includes/forms/class-form-tags.php:92
|
391 |
msgid "The path of the page."
|
392 |
msgstr "Ścieżka strony."
|
393 |
|
394 |
+
#: includes/forms/class-form-tags.php:97
|
395 |
msgid "The current date. Example: %s."
|
396 |
msgstr "Aktualna data. Przykład: %s."
|
397 |
|
398 |
+
#: includes/forms/class-form-tags.php:102
|
399 |
msgid "The current time. Example: %s."
|
400 |
msgstr "Aktualny czas. Przykład: %s."
|
401 |
|
402 |
+
#: includes/forms/class-form-tags.php:107
|
403 |
msgid "The site's language. Example: %s."
|
404 |
msgstr "Aktualny język strony. Przykład: %s."
|
405 |
|
406 |
+
#: includes/forms/class-form-tags.php:112
|
407 |
msgid "The visitor's IP address. Example: %s."
|
408 |
msgstr "Adres IP odwiedzającego. Przykład %s."
|
409 |
|
410 |
+
#: includes/forms/class-form-tags.php:117
|
411 |
msgid "The property of the currently logged-in user."
|
412 |
msgstr "Dane aktualnie zalogowanego usera."
|
413 |
|
414 |
+
#: includes/forms/class-form-tags.php:123
|
415 |
+
msgid "Property of the current page or post."
|
416 |
+
msgstr ""
|
417 |
+
|
418 |
+
#: includes/forms/class-form.php:133
|
419 |
msgid "There is no form with ID %d, perhaps it was deleted?"
|
420 |
msgstr "Brak formularza o ID %d. Może został usunięty?"
|
421 |
|
423 |
msgid "Newsletter"
|
424 |
msgstr "Newsletter"
|
425 |
|
|
|
|
|
|
|
|
|
426 |
#: includes/forms/class-widget.php:32
|
427 |
msgid "Displays your MailChimp for WordPress sign-up form"
|
428 |
msgstr "Wyświetla Twój formularz MailChimp for WordPress."
|
437 |
" form settings</a>."
|
438 |
msgstr "Możesz edytować swój formularz zapisu do newslettera w <a href=\"%s\">Ustawieniach \"MailChimp dla Wordpress\"</a>"
|
439 |
|
440 |
+
#: includes/integrations/class-admin.php79,
|
441 |
+
#: includes/integrations/class-admin.php80,
|
442 |
+
#: includes/integrations/views/integration-settings.php10,
|
443 |
+
#: includes/integrations/views/integrations.php57,
|
444 |
+
#: includes/integrations/views/integrations.php:65
|
445 |
+
msgid "Integrations"
|
446 |
+
msgstr "Integracje"
|
447 |
+
|
448 |
+
#: includes/views/general-settings.php7, includes/views/other-settings.php58,
|
449 |
+
#: includes/forms/views/edit-form.php22,
|
450 |
+
#: includes/integrations/views/integration-settings.php8,
|
451 |
+
#: includes/integrations/views/integrations.php:55
|
452 |
+
msgid "You are here: "
|
453 |
+
msgstr "Jesteś tutaj:"
|
454 |
+
|
455 |
+
#: includes/views/general-settings.php:18
|
456 |
+
msgid "General Settings"
|
457 |
+
msgstr "Ogólne ustawienia"
|
458 |
+
|
459 |
+
#: includes/views/general-settings.php:38
|
460 |
+
msgid "Status"
|
461 |
+
msgstr "Status"
|
462 |
+
|
463 |
+
#: includes/views/general-settings.php:42
|
464 |
+
msgid "CONNECTED"
|
465 |
+
msgstr "POŁĄCZONY"
|
466 |
+
|
467 |
+
#: includes/views/general-settings.php:44
|
468 |
+
msgid "NOT CONNECTED"
|
469 |
+
msgstr "BRAK POŁĄCZENIA"
|
470 |
+
|
471 |
+
#: includes/views/general-settings.php:51
|
472 |
+
msgid "API Key"
|
473 |
+
msgstr "Klucz API"
|
474 |
+
|
475 |
+
#: includes/views/general-settings.php:53
|
476 |
+
msgid "Your MailChimp API key"
|
477 |
+
msgstr "Twoj klucz API z MailChimp."
|
478 |
+
|
479 |
+
#: includes/views/general-settings.php:55
|
480 |
+
msgid "The API key for connecting with your MailChimp account."
|
481 |
+
msgstr "Klucz API do połączenia z Twoim konem MailChimp."
|
482 |
+
|
483 |
+
#: includes/views/general-settings.php:56
|
484 |
+
msgid "Get your API key here."
|
485 |
+
msgstr "Zdobądź klucz API tutaj."
|
486 |
+
|
487 |
+
#: includes/views/other-settings.php:14
|
488 |
+
msgid "Miscellaneous settings"
|
489 |
+
msgstr ""
|
490 |
+
|
491 |
+
#: includes/views/other-settings.php:17
|
492 |
+
msgid "Usage Tracking"
|
493 |
+
msgstr "Śledzenie"
|
494 |
+
|
495 |
+
#: includes/views/other-settings.php:29
|
496 |
+
msgid ""
|
497 |
+
"Allow us to anonymously track how this plugin is used to help us make it "
|
498 |
+
"better fit your needs."
|
499 |
+
msgstr "Pozwól nam anonimowo śledzić jak wykorzystywany jest ten plugin, aby lepiej dopasować go do Twoich potrzeb."
|
500 |
+
|
501 |
+
#: includes/views/other-settings.php:31
|
502 |
+
msgid "This is what we track."
|
503 |
+
msgstr "Oto jak śledzimy."
|
504 |
+
|
505 |
+
#: includes/views/other-settings.php:37
|
506 |
+
msgid "Logging"
|
507 |
+
msgstr ""
|
508 |
+
|
509 |
+
#: includes/views/other-settings.php:44
|
510 |
+
msgid ""
|
511 |
+
"Determines what events should be written to <a href=\"%s\">the debug log</a>"
|
512 |
+
" (see below)."
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: includes/views/other-settings.php:99
|
516 |
+
msgid "Debug Log"
|
517 |
+
msgstr ""
|
518 |
+
|
519 |
+
#: includes/views/other-settings.php:99
|
520 |
+
msgid "Filter.."
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
+
#: includes/views/other-settings.php:104
|
524 |
+
msgid "Log file is not writable."
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: includes/views/other-settings.php:105
|
528 |
+
msgid "Please ensure %s has the proper <a href=\"%s\">file permissions</a>."
|
529 |
+
msgstr ""
|
530 |
+
|
531 |
+
#: includes/views/other-settings.php:123
|
532 |
+
msgid "Nothing here. Which means there are no errors!"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: includes/views/other-settings.php:133
|
536 |
+
msgid "Empty Log"
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: includes/views/other-settings.php:141
|
540 |
+
msgid "Right now, the plugin is configured to only log errors and warnings."
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: includes/admin/migrations/3.0.0-form-1-post-type.php:35
|
544 |
+
msgid "Default sign-up form"
|
545 |
+
msgstr "Domyślny formularz zapisu"
|
546 |
+
|
547 |
+
#: includes/forms/views/add-form.php10, includes/forms/views/add-form.php:60
|
548 |
msgid "Add new form"
|
549 |
msgstr "Dodaj nowy formularz"
|
550 |
|
576 |
msgid "Appearance"
|
577 |
msgstr "Wygląd"
|
578 |
|
579 |
+
#: includes/forms/views/edit-form.php:25
|
580 |
+
msgid "Form"
|
581 |
+
msgstr ""
|
582 |
+
|
583 |
+
#: includes/forms/views/edit-form.php:34
|
584 |
+
msgid "Edit Form"
|
585 |
+
msgstr "Edytuj formularz"
|
586 |
+
|
587 |
+
#: includes/forms/views/edit-form.php:58
|
588 |
+
msgid "Enter form title here"
|
589 |
+
msgstr "Wprowadź tytuł formularza..."
|
590 |
+
|
591 |
+
#: includes/forms/views/edit-form.php:59
|
592 |
+
msgid "Enter the title of your sign-up form"
|
593 |
+
msgstr "Wprowadź tytuł fromularza do zapisu subskrybentów"
|
594 |
+
|
595 |
+
#: includes/forms/views/edit-form.php:65
|
596 |
+
msgid "Shortcode"
|
597 |
+
msgstr ""
|
598 |
+
|
599 |
+
#: includes/forms/views/edit-form.php:67
|
600 |
+
msgid "Get shortcode"
|
601 |
+
msgstr "Pobierz Shortcode'a"
|
602 |
+
|
603 |
+
#: includes/forms/views/edit-form.php:72
|
604 |
+
msgid "Preview this form"
|
605 |
+
msgstr "Podejrzyj formularz."
|
606 |
+
|
607 |
+
#: includes/integrations/views/integration-settings.php:20
|
608 |
+
msgid "%s integration"
|
609 |
+
msgstr "Integracja: \"%s\""
|
610 |
+
|
611 |
+
#: includes/integrations/views/integration-settings.php:27
|
612 |
+
msgid ""
|
613 |
+
"The selected MailChimp lists require non-default fields, which may prevent "
|
614 |
+
"this integration from working."
|
615 |
+
msgstr ""
|
616 |
+
|
617 |
+
#: includes/integrations/views/integration-settings.php:28
|
618 |
+
msgid ""
|
619 |
+
"Please ensure you <a href=\"%s\">configure the plugin to send all required "
|
620 |
+
"fields</a> or <a href=\"%s\">log into your MailChimp account</a> and make "
|
621 |
+
"sure only the email & name fields are marked as required fields for the "
|
622 |
+
"selected list(s)."
|
623 |
+
msgstr ""
|
624 |
+
|
625 |
+
#: includes/integrations/views/integration-settings.php:62
|
626 |
+
msgid "Enabled?"
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: includes/integrations/views/integration-settings.php:66
|
630 |
+
msgid ""
|
631 |
+
"Enable the %s integration? This will add a sign-up checkbox to the form."
|
632 |
+
msgstr "Włączyć integracje: \"%s\"? Doda to checkboxa z zapisem do formularza."
|
633 |
+
|
634 |
+
#: includes/integrations/views/integration-settings.php:76
|
635 |
+
msgid "Implicit?"
|
636 |
+
msgstr ""
|
637 |
+
|
638 |
+
#: includes/integrations/views/integration-settings.php:80
|
639 |
+
msgid ""
|
640 |
+
"Select \"no\" if you want to ask your visitors before they are subscribed "
|
641 |
+
"(recommended)."
|
642 |
+
msgstr "Wybierz \"nie\" jeśli chcesz pytać swoich gości zanim zostaną zapisani (polecane)."
|
643 |
+
|
644 |
+
#: includes/integrations/views/integration-settings.php:90
|
645 |
+
msgid "MailChimp Lists"
|
646 |
+
msgstr "Listy MailChimp"
|
647 |
+
|
648 |
+
#: includes/integrations/views/integration-settings.php:103
|
649 |
+
msgid ""
|
650 |
+
"Select the list(s) to which people who check the checkbox should be "
|
651 |
+
"subscribed."
|
652 |
+
msgstr "Wybierz listę (listy) do których ludzie, którzy zaznaczą checkboxa powinni zostać zapisani."
|
653 |
+
|
654 |
+
#: includes/integrations/views/integration-settings.php107,
|
655 |
+
#: includes/forms/views/tabs/form-settings.php:18
|
656 |
+
msgid "No lists found, <a href=\"%s\">are you connected to MailChimp</a>?"
|
657 |
+
msgstr "Nie znaleziono listy, <a href=\\\"%s\\\"> czy jesteś połączony z MailChimp</a>?"
|
658 |
+
|
659 |
+
#: includes/integrations/views/integration-settings.php:116
|
660 |
+
msgid "Checkbox label text"
|
661 |
+
msgstr "Tekst pola wyboru"
|
662 |
+
|
663 |
+
#: includes/integrations/views/integration-settings.php:119
|
664 |
+
msgid "HTML tags like %s are allowed in the label text."
|
665 |
+
msgstr "Znaczniki HTML takie jak %s są dozwolone w obszarach wiadomości."
|
666 |
+
|
667 |
+
#: includes/integrations/views/integration-settings.php:129
|
668 |
+
msgid "Pre-check the checkbox?"
|
669 |
+
msgstr "Czy checkbox powinien być od razu zaznaczony?"
|
670 |
+
|
671 |
+
#: includes/integrations/views/integration-settings.php:133
|
672 |
+
msgid "Select \"yes\" if the checkbox should be pre-checked."
|
673 |
+
msgstr "Wybierz \"tak\", jeśli checkbox powinien być od razu zaznaczony."
|
674 |
+
|
675 |
+
#: includes/integrations/views/integration-settings.php:141
|
676 |
+
msgid "Load some default CSS?"
|
677 |
+
msgstr "Załadować podstawowe style CSS?"
|
678 |
+
|
679 |
+
#: includes/integrations/views/integration-settings.php:145
|
680 |
+
msgid "Select \"yes\" if the checkbox appears in a weird place."
|
681 |
+
msgstr "Wybierz \"tak\", jeśli checkbox pojawi się w dziwnym miejscu."
|
682 |
+
|
683 |
+
#: includes/integrations/views/integration-settings.php:152
|
684 |
+
msgid "Double opt-in?"
|
685 |
+
msgstr "Double opt-in?"
|
686 |
+
|
687 |
+
#: includes/integrations/views/integration-settings.php:163
|
688 |
+
msgid ""
|
689 |
+
"Select \"yes\" if you want people to confirm their email address before "
|
690 |
+
"being subscribed (recommended)"
|
691 |
+
msgstr "Zaznacz \\\"yes\\\" jeśli chcesz potwierdzenia adresu email \nprzed subskrybowaniem (rekomendowane)"
|
692 |
+
|
693 |
+
#: includes/integrations/views/integration-settings.php171,
|
694 |
+
#: includes/forms/views/tabs/form-settings.php:52
|
695 |
+
msgid "Update existing subscribers?"
|
696 |
+
msgstr "Zaktualizować istniejących subskrybentów?"
|
697 |
+
|
698 |
+
#: includes/integrations/views/integration-settings.php181,
|
699 |
+
#: includes/forms/views/tabs/form-settings.php:62
|
700 |
+
msgid ""
|
701 |
+
"Select \"yes\" if you want to update existing subscribers with the data that"
|
702 |
+
" is sent."
|
703 |
+
msgstr "Wybierz \"Tak\", jeśli chcesz uaktualnić istniejących subskrybentów wraz z danymi które są wysyłane."
|
704 |
+
|
705 |
+
#: includes/integrations/views/integration-settings.php190,
|
706 |
+
#: includes/forms/views/tabs/form-settings.php:68
|
707 |
+
msgid "Replace interest groups?"
|
708 |
+
msgstr "Zamienić grupy zainteresowań"
|
709 |
+
|
710 |
+
#: includes/integrations/views/integration-settings.php201,
|
711 |
+
#: includes/forms/views/tabs/form-settings.php:79
|
712 |
+
msgid ""
|
713 |
+
"Select \"no\" if you want to add the selected interests to any previously "
|
714 |
+
"selected interests when updating a subscriber."
|
715 |
+
msgstr ""
|
716 |
+
|
717 |
+
#: includes/integrations/views/integration-settings.php202,
|
718 |
+
#: includes/forms/views/tabs/form-settings.php:80
|
719 |
+
msgid "What does this do?"
|
720 |
+
msgstr "Co to robi?"
|
721 |
+
|
722 |
+
#: includes/integrations/views/integrations.php:17
|
723 |
+
msgid "Name"
|
724 |
+
msgstr "Nazwa"
|
725 |
+
|
726 |
+
#: includes/integrations/views/integrations.php:18
|
727 |
+
msgid "Description"
|
728 |
+
msgstr "Opis"
|
729 |
+
|
730 |
+
#: includes/integrations/views/integrations.php:35
|
731 |
+
msgid "Configure this integration"
|
732 |
+
msgstr "Skonfiguruj tą integrację"
|
733 |
+
|
734 |
+
#: includes/integrations/views/integrations.php:71
|
735 |
+
msgid "The table below shows all available integrations."
|
736 |
+
msgstr ""
|
737 |
+
|
738 |
+
#: includes/integrations/views/integrations.php:72
|
739 |
+
msgid ""
|
740 |
+
"Click on the name of an integration to edit all settings specific to that "
|
741 |
+
"integration."
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#: includes/integrations/views/integrations.php:79
|
745 |
+
msgid "Enabled integrations"
|
746 |
+
msgstr ""
|
747 |
+
|
748 |
+
#: includes/integrations/views/integrations.php:84
|
749 |
+
msgid "Available integrations"
|
750 |
+
msgstr ""
|
751 |
+
|
752 |
+
#: includes/views/parts/admin-footer.php:15
|
753 |
+
msgid ""
|
754 |
+
"MailChimp for WordPress is in need of translations. Is the plugin not "
|
755 |
+
"translated in your language or do you spot errors with the current "
|
756 |
+
"translations? Helping out is easy! Head over to <a href=\"%s\">the "
|
757 |
+
"translation project and click \"help translate\"</a>."
|
758 |
+
msgstr ""
|
759 |
+
|
760 |
+
#: includes/views/parts/admin-footer.php:35
|
761 |
+
msgid ""
|
762 |
+
"This plugin is not developed by or affiliated with MailChimp in any way."
|
763 |
+
msgstr ""
|
764 |
+
|
765 |
+
#: includes/views/parts/admin-sidebar.php:11
|
766 |
+
msgid "Looking for help?"
|
767 |
+
msgstr ""
|
768 |
+
|
769 |
+
#: includes/views/parts/admin-sidebar.php:12
|
770 |
+
msgid "We have some resources available to help you in the right direction."
|
771 |
+
msgstr ""
|
772 |
+
|
773 |
+
#: includes/views/parts/admin-sidebar.php:14
|
774 |
+
msgid "Knowledge Base"
|
775 |
+
msgstr ""
|
776 |
+
|
777 |
+
#: includes/views/parts/admin-sidebar.php:15
|
778 |
+
msgid "Frequently Asked Questions"
|
779 |
+
msgstr ""
|
780 |
+
|
781 |
+
#: includes/views/parts/admin-sidebar.php:16
|
782 |
+
msgid "Code reference for developers"
|
783 |
+
msgstr ""
|
784 |
+
|
785 |
+
#: includes/views/parts/admin-sidebar.php:36
|
786 |
+
msgid "Looking to improve your sign-up rates?"
|
787 |
+
msgstr ""
|
788 |
+
|
789 |
+
#: includes/views/parts/admin-sidebar.php:37
|
790 |
+
msgid ""
|
791 |
+
"Our <a href=\"%s\">Boxzilla plugin</a> allows you to create pop-ups or "
|
792 |
+
"slide-ins with a subscribe form. A sure way to grow your lists faster."
|
793 |
+
msgstr ""
|
794 |
+
|
795 |
+
#: includes/views/parts/lists-overview.php:1
|
796 |
+
msgid "Your MailChimp Account"
|
797 |
+
msgstr "Twoje konto MailChimp"
|
798 |
+
|
799 |
+
#: includes/views/parts/lists-overview.php:2
|
800 |
+
msgid ""
|
801 |
+
"The table below shows your MailChimp lists and their details. If you just "
|
802 |
+
"applied changes to your MailChimp lists, please use the following button to "
|
803 |
+
"renew the cached lists configuration."
|
804 |
+
msgstr "Poniższa tabela przedstawia twoje dane z MailChimp. Jeśli wprowadziłeś zmiany do list MailChimp, należy użyć poniższy przycisk, aby odnowić buforowane dane."
|
805 |
+
|
806 |
+
#: includes/views/parts/lists-overview.php:17
|
807 |
+
msgid "No lists were found in your MailChimp account"
|
808 |
+
msgstr "Nie znaleziono list na Twoim koncie MailChimp."
|
809 |
+
|
810 |
+
#: includes/views/parts/lists-overview.php:19
|
811 |
+
msgid "A total of %d lists were found in your MailChimp account."
|
812 |
+
msgstr ""
|
813 |
|
814 |
+
#: includes/views/parts/lists-overview.php:24
|
815 |
+
msgid "List Name"
|
816 |
+
msgstr "Nazwa listy"
|
817 |
|
818 |
+
#: includes/views/parts/lists-overview.php:25
|
819 |
+
msgid "ID"
|
820 |
+
msgstr "ID"
|
821 |
|
822 |
+
#: includes/views/parts/lists-overview.php:26
|
823 |
+
msgid "Subscribers"
|
824 |
+
msgstr "Subskrybenci"
|
825 |
|
826 |
+
#: includes/views/parts/lists-overview.php:48
|
827 |
+
msgid "Edit this list in MailChimp"
|
828 |
+
msgstr "Edytuj tą liste w MailChimp"
|
829 |
|
830 |
+
#: includes/views/parts/lists-overview.php:62
|
831 |
+
msgid "%s (%s) with field type %s."
|
832 |
+
msgstr ""
|
833 |
|
834 |
+
#: includes/forms/views/parts/add-fields-help.php4,
|
835 |
#: includes/forms/views/tabs/form-fields.php:10
|
836 |
msgid "Add more fields"
|
837 |
msgstr "Dodaj więcej pól do formularza"
|
856 |
|
857 |
#: includes/forms/views/parts/add-fields-help.php:23
|
858 |
msgid "Clicking the following links will take you to the right screen."
|
859 |
+
msgstr "Kliknięcie poniższych linków przeniesie Cię do odpowiedniego ekranu."
|
860 |
|
861 |
#: includes/forms/views/parts/add-fields-help.php:29
|
862 |
msgid "Edit list fields for"
|
868 |
"changes."
|
869 |
msgstr "Kliknij poniższy button, by \"Mailchimp dla WordPress\" zaktualizował wprowadzone przez Ciebie zmiany."
|
870 |
|
|
|
|
|
|
|
|
|
|
|
871 |
#: includes/forms/views/parts/dynamic-content-tags.php:6
|
872 |
msgid "Add dynamic form variable"
|
873 |
+
msgstr "Dodaj dynamiczną zmienną formularza."
|
874 |
|
875 |
#: includes/forms/views/parts/dynamic-content-tags.php:8
|
876 |
msgid ""
|
940 |
msgid "Enter the HTML code for your form fields.."
|
941 |
msgstr "Wprowadź kod HTML dla pól twojego formularza."
|
942 |
|
943 |
+
#: includes/forms/views/tabs/form-fields.php:26
|
|
|
|
|
|
|
|
|
944 |
msgid ""
|
945 |
"Use the shortcode %s to display this form inside a post, page or text "
|
946 |
"widget."
|
947 |
msgstr "Użyj shortcode'u %s, by wyświetlić ten formularz we wpisie, stronie lub tekstowym widgetcie."
|
948 |
|
949 |
+
#: includes/forms/views/tabs/form-messages.php:6
|
950 |
msgid "Form Messages"
|
951 |
msgstr "Wiadomości formularza"
|
952 |
|
953 |
+
#: includes/forms/views/tabs/form-messages.php:16
|
954 |
msgid "Successfully subscribed"
|
955 |
msgstr "Zostałeś pomyślnie zapisany do naszej bazy."
|
956 |
|
957 |
+
#: includes/forms/views/tabs/form-messages.php:19
|
958 |
msgid ""
|
959 |
"The text that shows when an email address is successfully subscribed to the "
|
960 |
"selected list(s)."
|
961 |
msgstr "Tekst, który pokazuje się, gdy adres e-mail zostanie pomyślnie zapisany do konkretnej listy (list) subskrybentów."
|
962 |
|
963 |
+
#: includes/forms/views/tabs/form-messages.php:23
|
964 |
msgid "Invalid email address"
|
965 |
msgstr "Nieprawidłowy adres e-mail"
|
966 |
|
967 |
+
#: includes/forms/views/tabs/form-messages.php:26
|
968 |
msgid "The text that shows when an invalid email address is given."
|
969 |
msgstr "Tekst, który pokazuje się, gdy zostanie wprowadzony błędny adres e-mail."
|
970 |
|
971 |
+
#: includes/forms/views/tabs/form-messages.php:30
|
972 |
msgid "Required field missing"
|
973 |
msgstr "Wymagane pole nie zostało wypełnione."
|
974 |
|
975 |
+
#: includes/forms/views/tabs/form-messages.php:33
|
976 |
msgid ""
|
977 |
"The text that shows when a required field for the selected list(s) is "
|
978 |
"missing."
|
979 |
msgstr "Tekst, który pokazuje się, gdy wymagane pole dla wybranej listy (list) subskrybentów nie zostanie wypełnione."
|
980 |
|
981 |
+
#: includes/forms/views/tabs/form-messages.php:37
|
982 |
msgid "Already subscribed"
|
983 |
msgstr "Adres już istnieje w bazie mailingowej."
|
984 |
|
985 |
+
#: includes/forms/views/tabs/form-messages.php:40
|
986 |
msgid ""
|
987 |
"The text that shows when the given email is already subscribed to the "
|
988 |
"selected list(s)."
|
989 |
msgstr "Tekst, który pokazuje się, gdy adres e-mail jest już zapisany do konkretnej listy (list) subskrybentów."
|
990 |
|
991 |
+
#: includes/forms/views/tabs/form-messages.php:44
|
992 |
msgid "General error"
|
993 |
msgstr "Ogólny błąd."
|
994 |
|
995 |
+
#: includes/forms/views/tabs/form-messages.php:47
|
996 |
msgid "The text that shows when a general error occured."
|
997 |
msgstr "Tekst, który pokazuje się, gdy wystąpi ogólny błąd."
|
998 |
|
999 |
+
#: includes/forms/views/tabs/form-messages.php:51
|
1000 |
msgid "Unsubscribed"
|
1001 |
msgstr "Wypisany z listy mailingowej."
|
1002 |
|
1003 |
+
#: includes/forms/views/tabs/form-messages.php:54
|
1004 |
msgid ""
|
1005 |
"When using the unsubscribe method, this is the text that shows when the "
|
1006 |
"given email address is successfully unsubscribed from the selected list(s)."
|
1007 |
+
msgstr "Jeśli użyto metody odsubskrybuj, ten tekst pojawi się, \njeśli wybrany adres email, zostanie poprawnie odsubskrybowany z wybranej listy (list)."
|
1008 |
|
1009 |
+
#: includes/forms/views/tabs/form-messages.php:58
|
1010 |
msgid "Not subscribed"
|
1011 |
+
msgstr "Nie subskrybuj"
|
1012 |
|
1013 |
+
#: includes/forms/views/tabs/form-messages.php:61
|
1014 |
msgid ""
|
1015 |
"When using the unsubscribe method, this is the text that shows when the "
|
1016 |
"given email address is not on the selected list(s)."
|
1017 |
+
msgstr "Jeśli użyto metody odsubskrybuj, ten tekst pojawi się\njeśli wybranego adresu email nie ma na wybranej liście (listach)."
|
1018 |
+
|
1019 |
+
#: includes/forms/views/tabs/form-messages.php:65
|
1020 |
+
msgid "No list selected"
|
1021 |
msgstr ""
|
1022 |
|
1023 |
+
#: includes/forms/views/tabs/form-messages.php:68
|
1024 |
+
msgid ""
|
1025 |
+
"When offering a list choice, this is the text that shows when no lists were "
|
1026 |
+
"selected."
|
1027 |
+
msgstr ""
|
1028 |
+
|
1029 |
+
#: includes/forms/views/tabs/form-messages.php:74
|
1030 |
+
msgid "Updated"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: includes/forms/views/tabs/form-messages.php:77
|
1034 |
+
msgid "The text that shows when an existing subscriber is updated."
|
1035 |
+
msgstr ""
|
1036 |
+
|
1037 |
+
#: includes/forms/views/tabs/form-messages.php:89
|
1038 |
+
msgid "HTML tags like %s are allowed in the message fields."
|
1039 |
+
msgstr "Znaczniki HTML takie jak %s są dozwolone w obszarach wiadomości."
|
1040 |
+
|
1041 |
#: includes/forms/views/tabs/form-settings.php:1
|
1042 |
msgid "Form Settings"
|
1043 |
msgstr "Ustawienia formularza"
|
1044 |
|
1045 |
#: includes/forms/views/tabs/form-settings.php:5
|
1046 |
msgid "MailChimp specific settings"
|
1047 |
+
msgstr "Dodatkowe ustawienia MailChimp"
|
|
|
|
|
|
|
|
|
1048 |
|
1049 |
#: includes/forms/views/tabs/form-settings.php:15
|
1050 |
+
msgid "Lists this form subscribes to"
|
1051 |
+
msgstr "Subskrybuj ten formularz dla"
|
|
|
1052 |
|
1053 |
+
#: includes/forms/views/tabs/form-settings.php:31
|
1054 |
msgid ""
|
1055 |
"Select the list(s) to which people who submit this form should be "
|
1056 |
"subscribed."
|
1057 |
+
msgstr "Wybierz z listy (list), które osoby po przesłaniu tego formularza\npowinni zostać subskrybowani."
|
1058 |
|
1059 |
+
#: includes/forms/views/tabs/form-settings.php:37
|
1060 |
msgid "Use double opt-in?"
|
1061 |
msgstr "Użyć double opt-in?"
|
1062 |
|
1063 |
+
#: includes/forms/views/tabs/form-settings.php:44
|
1064 |
+
msgid "Are you sure you want to disable double opt-in?"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1065 |
msgstr ""
|
1066 |
|
1067 |
+
#: includes/forms/views/tabs/form-settings.php:47
|
|
|
|
|
|
|
|
|
|
|
|
|
1068 |
msgid ""
|
1069 |
+
"We strongly suggest keeping double opt-in enabled. Disabling double opt-in "
|
1070 |
+
"may result in abuse."
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: includes/forms/views/tabs/form-settings.php:94
|
|
|
|
|
|
|
|
|
|
|
1074 |
msgid "Form behaviour"
|
1075 |
msgstr "Zachowanie formularza"
|
1076 |
|
1077 |
+
#: includes/forms/views/tabs/form-settings.php:104
|
1078 |
msgid "Hide form after a successful sign-up?"
|
1079 |
msgstr "Ukryć formularz po udanym zapisie?"
|
1080 |
|
1081 |
+
#: includes/forms/views/tabs/form-settings.php:115
|
1082 |
msgid "Select \"yes\" to hide the form fields after a successful sign-up."
|
1083 |
msgstr "Wybierz \"tak\", by ukryć pola formularza po udanym zapisie."
|
1084 |
|
1085 |
+
#: includes/forms/views/tabs/form-settings.php:120
|
1086 |
msgid "Redirect to URL after successful sign-ups"
|
1087 |
msgstr "Zrób przekierowanie na adres URL po udanym zapisie."
|
1088 |
|
1089 |
+
#: includes/forms/views/tabs/form-settings.php:122
|
1090 |
msgid "Example: %s"
|
1091 |
msgstr "Przykład: %s"
|
1092 |
|
1093 |
+
#: includes/forms/views/tabs/form-settings.php:123
|
1094 |
msgid ""
|
1095 |
"Leave empty or enter <code>0</code> for no redirect. Otherwise, use complete"
|
1096 |
" (absolute) URLs, including <code>http://</code>."
|
1097 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/mailchimp-for-wp-tr_TR.mo
CHANGED
Binary file
|
languages/mailchimp-for-wp-tr_TR.po
CHANGED
@@ -7,14 +7,15 @@
|
|
7 |
# Erdem Akgöl <erdem@kobimedya.com>, 2017
|
8 |
# Ferhat, 2015
|
9 |
# Hüseyin Sekmenoğlu <inactive+sekmenhuseyin@transifex.com>, 2015
|
|
|
10 |
# Müge Çevik <muge.cevik@gmail.com>, 2016
|
11 |
# Murat Aksoy <istanbuldaemlakk@gmail.com>, 2015
|
12 |
# Tuna Sakar, 2017
|
13 |
msgid ""
|
14 |
msgstr ""
|
15 |
"Project-Id-Version: MailChimp for WordPress\n"
|
16 |
-
"PO-Revision-Date: 2017-
|
17 |
-
"Last-Translator:
|
18 |
"Language-Team: Turkish (Turkey) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/tr_TR/)\n"
|
19 |
"MIME-Version: 1.0\n"
|
20 |
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -182,7 +183,7 @@ msgstr "Eğer WordPress.org adresinde bize 5★ <a href=\"%s\"> verirseniz komü
|
|
182 |
|
183 |
#: includes/admin/class-review-notice.php:71
|
184 |
msgid "Dismiss this notice."
|
185 |
-
msgstr ""
|
186 |
|
187 |
#: includes/api/class-api.php:84
|
188 |
msgid "Read more about common connectivity issues."
|
@@ -198,19 +199,19 @@ msgstr "Şehir"
|
|
198 |
|
199 |
#: includes/forms/class-admin.php:64
|
200 |
msgid "Checkboxes"
|
201 |
-
msgstr ""
|
202 |
|
203 |
#: includes/forms/class-admin.php:65
|
204 |
msgid "Choices"
|
205 |
-
msgstr ""
|
206 |
|
207 |
#: includes/forms/class-admin.php:66
|
208 |
msgid "Choice type"
|
209 |
-
msgstr ""
|
210 |
|
211 |
#: includes/forms/class-admin.php:67
|
212 |
msgid "Choose a field to add to the form"
|
213 |
-
msgstr ""
|
214 |
|
215 |
#: includes/forms/class-admin.php:68
|
216 |
msgid "Close"
|
@@ -226,7 +227,7 @@ msgstr ""
|
|
226 |
|
227 |
#: includes/forms/class-admin.php:71
|
228 |
msgid "Field type"
|
229 |
-
msgstr ""
|
230 |
|
231 |
#: includes/forms/class-admin.php:72
|
232 |
msgid "Field label"
|
@@ -240,19 +241,19 @@ msgstr ""
|
|
240 |
msgid ""
|
241 |
"This field will allow your visitors to choose whether they would like to "
|
242 |
"subscribe or unsubscribe"
|
243 |
-
msgstr ""
|
244 |
|
245 |
#: includes/forms/class-admin.php:75
|
246 |
msgid "Form fields"
|
247 |
-
msgstr ""
|
248 |
|
249 |
#: includes/forms/class-admin.php:76
|
250 |
msgid "This field is marked as required in MailChimp."
|
251 |
-
msgstr ""
|
252 |
|
253 |
#: includes/forms/class-admin.php:77
|
254 |
msgid "Initial value"
|
255 |
-
msgstr ""
|
256 |
|
257 |
#: includes/forms/class-admin.php:78
|
258 |
msgid "Interest categories"
|
@@ -260,19 +261,19 @@ msgstr ""
|
|
260 |
|
261 |
#: includes/forms/class-admin.php:79
|
262 |
msgid "Is this field required?"
|
263 |
-
msgstr ""
|
264 |
|
265 |
#: includes/forms/class-admin.php:80
|
266 |
msgid "List choice"
|
267 |
-
msgstr ""
|
268 |
|
269 |
#: includes/forms/class-admin.php:81
|
270 |
msgid "This field will allow your visitors to choose a list to subscribe to."
|
271 |
-
msgstr ""
|
272 |
|
273 |
#: includes/forms/class-admin.php:82
|
274 |
msgid "List fields"
|
275 |
-
msgstr ""
|
276 |
|
277 |
#: includes/forms/class-admin.php:83
|
278 |
msgid "Min"
|
@@ -285,7 +286,7 @@ msgstr "En fazla"
|
|
285 |
#: includes/forms/class-admin.php:85
|
286 |
msgid ""
|
287 |
"No available fields. Did you select a MailChimp list in the form settings?"
|
288 |
-
msgstr ""
|
289 |
|
290 |
#: includes/forms/class-admin.php:86
|
291 |
msgid "Optional"
|
@@ -297,7 +298,7 @@ msgstr "Yer tutucu"
|
|
297 |
|
298 |
#: includes/forms/class-admin.php:88
|
299 |
msgid "Text to show when field has no value."
|
300 |
-
msgstr ""
|
301 |
|
302 |
#: includes/forms/class-admin.php:89
|
303 |
msgid "Preselect"
|
@@ -358,7 +359,7 @@ msgstr "MailChimp Kayıt Formu"
|
|
358 |
|
359 |
#: includes/forms/class-admin.php:453
|
360 |
msgid "Select the form to show"
|
361 |
-
msgstr ""
|
362 |
|
363 |
#: includes/forms/class-form-previewer.php:146
|
364 |
msgid "Form preview"
|
@@ -498,7 +499,7 @@ msgstr ""
|
|
498 |
msgid ""
|
499 |
"Allow us to anonymously track how this plugin is used to help us make it "
|
500 |
"better fit your needs."
|
501 |
-
msgstr ""
|
502 |
|
503 |
#: includes/views/other-settings.php:31
|
504 |
msgid "This is what we track."
|
@@ -506,7 +507,7 @@ msgstr ""
|
|
506 |
|
507 |
#: includes/views/other-settings.php:37
|
508 |
msgid "Logging"
|
509 |
-
msgstr ""
|
510 |
|
511 |
#: includes/views/other-settings.php:44
|
512 |
msgid ""
|
@@ -516,7 +517,7 @@ msgstr ""
|
|
516 |
|
517 |
#: includes/views/other-settings.php:99
|
518 |
msgid "Debug Log"
|
519 |
-
msgstr ""
|
520 |
|
521 |
#: includes/views/other-settings.php:99
|
522 |
msgid "Filter.."
|
@@ -524,7 +525,7 @@ msgstr "Filtrele..."
|
|
524 |
|
525 |
#: includes/views/other-settings.php:104
|
526 |
msgid "Log file is not writable."
|
527 |
-
msgstr ""
|
528 |
|
529 |
#: includes/views/other-settings.php:105
|
530 |
msgid "Please ensure %s has the proper <a href=\"%s\">file permissions</a>."
|
@@ -532,11 +533,11 @@ msgstr ""
|
|
532 |
|
533 |
#: includes/views/other-settings.php:123
|
534 |
msgid "Nothing here. Which means there are no errors!"
|
535 |
-
msgstr ""
|
536 |
|
537 |
#: includes/views/other-settings.php:133
|
538 |
msgid "Empty Log"
|
539 |
-
msgstr ""
|
540 |
|
541 |
#: includes/views/other-settings.php:141
|
542 |
msgid "Right now, the plugin is configured to only log errors and warnings."
|
@@ -735,21 +736,21 @@ msgstr "Bu entegrasyonu konfigüre edin"
|
|
735 |
|
736 |
#: includes/integrations/views/integrations.php:71
|
737 |
msgid "The table below shows all available integrations."
|
738 |
-
msgstr ""
|
739 |
|
740 |
#: includes/integrations/views/integrations.php:72
|
741 |
msgid ""
|
742 |
"Click on the name of an integration to edit all settings specific to that "
|
743 |
"integration."
|
744 |
-
msgstr ""
|
745 |
|
746 |
#: includes/integrations/views/integrations.php:79
|
747 |
msgid "Enabled integrations"
|
748 |
-
msgstr ""
|
749 |
|
750 |
#: includes/integrations/views/integrations.php:84
|
751 |
msgid "Available integrations"
|
752 |
-
msgstr ""
|
753 |
|
754 |
#: includes/views/parts/admin-footer.php:15
|
755 |
msgid ""
|
@@ -762,15 +763,15 @@ msgstr ""
|
|
762 |
#: includes/views/parts/admin-footer.php:35
|
763 |
msgid ""
|
764 |
"This plugin is not developed by or affiliated with MailChimp in any way."
|
765 |
-
msgstr ""
|
766 |
|
767 |
#: includes/views/parts/admin-sidebar.php:11
|
768 |
msgid "Looking for help?"
|
769 |
-
msgstr ""
|
770 |
|
771 |
#: includes/views/parts/admin-sidebar.php:12
|
772 |
msgid "We have some resources available to help you in the right direction."
|
773 |
-
msgstr ""
|
774 |
|
775 |
#: includes/views/parts/admin-sidebar.php:14
|
776 |
msgid "Knowledge Base"
|
@@ -782,11 +783,11 @@ msgstr "Sık Sorulan Sorular"
|
|
782 |
|
783 |
#: includes/views/parts/admin-sidebar.php:16
|
784 |
msgid "Code reference for developers"
|
785 |
-
msgstr ""
|
786 |
|
787 |
#: includes/views/parts/admin-sidebar.php:36
|
788 |
msgid "Looking to improve your sign-up rates?"
|
789 |
-
msgstr ""
|
790 |
|
791 |
#: includes/views/parts/admin-sidebar.php:37
|
792 |
msgid ""
|
@@ -827,7 +828,7 @@ msgstr "Aboneler"
|
|
827 |
|
828 |
#: includes/views/parts/lists-overview.php:48
|
829 |
msgid "Edit this list in MailChimp"
|
830 |
-
msgstr ""
|
831 |
|
832 |
#: includes/views/parts/lists-overview.php:62
|
833 |
msgid "%s (%s) with field type %s."
|
@@ -1020,13 +1021,13 @@ msgstr "Abonelikten çıkma işlemi gerçekleştirilmek istendiğinde, bu metin
|
|
1020 |
|
1021 |
#: includes/forms/views/tabs/form-messages.php:65
|
1022 |
msgid "No list selected"
|
1023 |
-
msgstr ""
|
1024 |
|
1025 |
#: includes/forms/views/tabs/form-messages.php:68
|
1026 |
msgid ""
|
1027 |
"When offering a list choice, this is the text that shows when no lists were "
|
1028 |
"selected."
|
1029 |
-
msgstr ""
|
1030 |
|
1031 |
#: includes/forms/views/tabs/form-messages.php:74
|
1032 |
msgid "Updated"
|
@@ -1060,17 +1061,17 @@ msgstr ""
|
|
1060 |
|
1061 |
#: includes/forms/views/tabs/form-settings.php:37
|
1062 |
msgid "Use double opt-in?"
|
1063 |
-
msgstr ""
|
1064 |
|
1065 |
#: includes/forms/views/tabs/form-settings.php:44
|
1066 |
msgid "Are you sure you want to disable double opt-in?"
|
1067 |
-
msgstr ""
|
1068 |
|
1069 |
#: includes/forms/views/tabs/form-settings.php:47
|
1070 |
msgid ""
|
1071 |
"We strongly suggest keeping double opt-in enabled. Disabling double opt-in "
|
1072 |
"may result in abuse."
|
1073 |
-
msgstr ""
|
1074 |
|
1075 |
#: includes/forms/views/tabs/form-settings.php:94
|
1076 |
msgid "Form behaviour"
|
7 |
# Erdem Akgöl <erdem@kobimedya.com>, 2017
|
8 |
# Ferhat, 2015
|
9 |
# Hüseyin Sekmenoğlu <inactive+sekmenhuseyin@transifex.com>, 2015
|
10 |
+
# İlbey Furkan Özden <ilbeyfurkanozden@gmail.com>, 2017
|
11 |
# Müge Çevik <muge.cevik@gmail.com>, 2016
|
12 |
# Murat Aksoy <istanbuldaemlakk@gmail.com>, 2015
|
13 |
# Tuna Sakar, 2017
|
14 |
msgid ""
|
15 |
msgstr ""
|
16 |
"Project-Id-Version: MailChimp for WordPress\n"
|
17 |
+
"PO-Revision-Date: 2017-04-29 14:25+0000\n"
|
18 |
+
"Last-Translator: İlbey Furkan Özden <ilbeyfurkanozden@gmail.com>\n"
|
19 |
"Language-Team: Turkish (Turkey) (http://www.transifex.com/ibericode/mailchimp-for-wordpress/language/tr_TR/)\n"
|
20 |
"MIME-Version: 1.0\n"
|
21 |
"Content-Type: text/plain; charset=UTF-8\n"
|
183 |
|
184 |
#: includes/admin/class-review-notice.php:71
|
185 |
msgid "Dismiss this notice."
|
186 |
+
msgstr "Bu uyarıyı görmezden gel."
|
187 |
|
188 |
#: includes/api/class-api.php:84
|
189 |
msgid "Read more about common connectivity issues."
|
199 |
|
200 |
#: includes/forms/class-admin.php:64
|
201 |
msgid "Checkboxes"
|
202 |
+
msgstr "Onay kutuları"
|
203 |
|
204 |
#: includes/forms/class-admin.php:65
|
205 |
msgid "Choices"
|
206 |
+
msgstr "Seçimler"
|
207 |
|
208 |
#: includes/forms/class-admin.php:66
|
209 |
msgid "Choice type"
|
210 |
+
msgstr "Seçim tipi"
|
211 |
|
212 |
#: includes/forms/class-admin.php:67
|
213 |
msgid "Choose a field to add to the form"
|
214 |
+
msgstr "Forma eklemek için bir alan seçin"
|
215 |
|
216 |
#: includes/forms/class-admin.php:68
|
217 |
msgid "Close"
|
227 |
|
228 |
#: includes/forms/class-admin.php:71
|
229 |
msgid "Field type"
|
230 |
+
msgstr "Alan tipi"
|
231 |
|
232 |
#: includes/forms/class-admin.php:72
|
233 |
msgid "Field label"
|
241 |
msgid ""
|
242 |
"This field will allow your visitors to choose whether they would like to "
|
243 |
"subscribe or unsubscribe"
|
244 |
+
msgstr "Bu alan, ziyaretçilerinizin abone olup olmadıklarını veya abone olduklarını seçmelerini sağlayacak"
|
245 |
|
246 |
#: includes/forms/class-admin.php:75
|
247 |
msgid "Form fields"
|
248 |
+
msgstr "Form Alanları"
|
249 |
|
250 |
#: includes/forms/class-admin.php:76
|
251 |
msgid "This field is marked as required in MailChimp."
|
252 |
+
msgstr "Bu alan MailChimp'de gerekli olarak işaretlenmiştir."
|
253 |
|
254 |
#: includes/forms/class-admin.php:77
|
255 |
msgid "Initial value"
|
256 |
+
msgstr "Başlangıç değeri"
|
257 |
|
258 |
#: includes/forms/class-admin.php:78
|
259 |
msgid "Interest categories"
|
261 |
|
262 |
#: includes/forms/class-admin.php:79
|
263 |
msgid "Is this field required?"
|
264 |
+
msgstr "Bu alan gerekli mi?"
|
265 |
|
266 |
#: includes/forms/class-admin.php:80
|
267 |
msgid "List choice"
|
268 |
+
msgstr "Liste Seçimi"
|
269 |
|
270 |
#: includes/forms/class-admin.php:81
|
271 |
msgid "This field will allow your visitors to choose a list to subscribe to."
|
272 |
+
msgstr "Bu alan ziyaretçilerin abone olacak bir liste seçmelerine izin verecektir."
|
273 |
|
274 |
#: includes/forms/class-admin.php:82
|
275 |
msgid "List fields"
|
276 |
+
msgstr "Liste alanları"
|
277 |
|
278 |
#: includes/forms/class-admin.php:83
|
279 |
msgid "Min"
|
286 |
#: includes/forms/class-admin.php:85
|
287 |
msgid ""
|
288 |
"No available fields. Did you select a MailChimp list in the form settings?"
|
289 |
+
msgstr "Mevcut alan yok. Form ayarlarında bir MailChimp listesi seçtiniz mi?"
|
290 |
|
291 |
#: includes/forms/class-admin.php:86
|
292 |
msgid "Optional"
|
298 |
|
299 |
#: includes/forms/class-admin.php:88
|
300 |
msgid "Text to show when field has no value."
|
301 |
+
msgstr "Alanın hiçbir değeri olmadığında gösterilecek metin."
|
302 |
|
303 |
#: includes/forms/class-admin.php:89
|
304 |
msgid "Preselect"
|
359 |
|
360 |
#: includes/forms/class-admin.php:453
|
361 |
msgid "Select the form to show"
|
362 |
+
msgstr "Gösterilecek formu seçin"
|
363 |
|
364 |
#: includes/forms/class-form-previewer.php:146
|
365 |
msgid "Form preview"
|
499 |
msgid ""
|
500 |
"Allow us to anonymously track how this plugin is used to help us make it "
|
501 |
"better fit your needs."
|
502 |
+
msgstr "Bu eklentinin ihtiyaçlarınıza daha iyi yardımcı olması için nasıl kullanıldığını anonim olarak izlememize izin verin."
|
503 |
|
504 |
#: includes/views/other-settings.php:31
|
505 |
msgid "This is what we track."
|
507 |
|
508 |
#: includes/views/other-settings.php:37
|
509 |
msgid "Logging"
|
510 |
+
msgstr "Giriş yapılıyor"
|
511 |
|
512 |
#: includes/views/other-settings.php:44
|
513 |
msgid ""
|
517 |
|
518 |
#: includes/views/other-settings.php:99
|
519 |
msgid "Debug Log"
|
520 |
+
msgstr "Hata Ayıklama Günlüğü"
|
521 |
|
522 |
#: includes/views/other-settings.php:99
|
523 |
msgid "Filter.."
|
525 |
|
526 |
#: includes/views/other-settings.php:104
|
527 |
msgid "Log file is not writable."
|
528 |
+
msgstr "Hata ayıklama günlüğü dosyası yazılabilir değil."
|
529 |
|
530 |
#: includes/views/other-settings.php:105
|
531 |
msgid "Please ensure %s has the proper <a href=\"%s\">file permissions</a>."
|
533 |
|
534 |
#: includes/views/other-settings.php:123
|
535 |
msgid "Nothing here. Which means there are no errors!"
|
536 |
+
msgstr "Burada hiçbir şey yok. Yani, hiç hata yok!"
|
537 |
|
538 |
#: includes/views/other-settings.php:133
|
539 |
msgid "Empty Log"
|
540 |
+
msgstr "Boş hata ayıklama günlüğü"
|
541 |
|
542 |
#: includes/views/other-settings.php:141
|
543 |
msgid "Right now, the plugin is configured to only log errors and warnings."
|
736 |
|
737 |
#: includes/integrations/views/integrations.php:71
|
738 |
msgid "The table below shows all available integrations."
|
739 |
+
msgstr "Aşağıdaki tablo kullanılabilir tüm eklentiler gösterilmektedir."
|
740 |
|
741 |
#: includes/integrations/views/integrations.php:72
|
742 |
msgid ""
|
743 |
"Click on the name of an integration to edit all settings specific to that "
|
744 |
"integration."
|
745 |
+
msgstr "Bir eklentinin ayarlarını düzenlemek için eklenti ismine tıklayın."
|
746 |
|
747 |
#: includes/integrations/views/integrations.php:79
|
748 |
msgid "Enabled integrations"
|
749 |
+
msgstr "Etkinleştirilmiş eklentiler"
|
750 |
|
751 |
#: includes/integrations/views/integrations.php:84
|
752 |
msgid "Available integrations"
|
753 |
+
msgstr "Kullanılabilir eklentiler"
|
754 |
|
755 |
#: includes/views/parts/admin-footer.php:15
|
756 |
msgid ""
|
763 |
#: includes/views/parts/admin-footer.php:35
|
764 |
msgid ""
|
765 |
"This plugin is not developed by or affiliated with MailChimp in any way."
|
766 |
+
msgstr "Bu eklenti herhangi bir şekilde MailChimp tarafından geliştirilmemiştir veya MailChimp ile ilişkili değildir."
|
767 |
|
768 |
#: includes/views/parts/admin-sidebar.php:11
|
769 |
msgid "Looking for help?"
|
770 |
+
msgstr "Yardım mı arıyorsunuz?"
|
771 |
|
772 |
#: includes/views/parts/admin-sidebar.php:12
|
773 |
msgid "We have some resources available to help you in the right direction."
|
774 |
+
msgstr "Size doğru yönde yardımcı olacak bazı kaynaklara sahibiz."
|
775 |
|
776 |
#: includes/views/parts/admin-sidebar.php:14
|
777 |
msgid "Knowledge Base"
|
783 |
|
784 |
#: includes/views/parts/admin-sidebar.php:16
|
785 |
msgid "Code reference for developers"
|
786 |
+
msgstr "Geliştiriciler için kod referansı"
|
787 |
|
788 |
#: includes/views/parts/admin-sidebar.php:36
|
789 |
msgid "Looking to improve your sign-up rates?"
|
790 |
+
msgstr "Kaydolma oranlarını iyileştirmek mi istiyorsunuz?"
|
791 |
|
792 |
#: includes/views/parts/admin-sidebar.php:37
|
793 |
msgid ""
|
828 |
|
829 |
#: includes/views/parts/lists-overview.php:48
|
830 |
msgid "Edit this list in MailChimp"
|
831 |
+
msgstr "Bu listeyi MailChimp'de düzenle"
|
832 |
|
833 |
#: includes/views/parts/lists-overview.php:62
|
834 |
msgid "%s (%s) with field type %s."
|
1021 |
|
1022 |
#: includes/forms/views/tabs/form-messages.php:65
|
1023 |
msgid "No list selected"
|
1024 |
+
msgstr "Seçilmiş bir liste yok"
|
1025 |
|
1026 |
#: includes/forms/views/tabs/form-messages.php:68
|
1027 |
msgid ""
|
1028 |
"When offering a list choice, this is the text that shows when no lists were "
|
1029 |
"selected."
|
1030 |
+
msgstr "Bu metin, liste seçimi yaparken hiçbir liste seçilmediğinde gösterilen metindir."
|
1031 |
|
1032 |
#: includes/forms/views/tabs/form-messages.php:74
|
1033 |
msgid "Updated"
|
1061 |
|
1062 |
#: includes/forms/views/tabs/form-settings.php:37
|
1063 |
msgid "Use double opt-in?"
|
1064 |
+
msgstr "Üye Doğrulamayı kullanmak istiyor musun?"
|
1065 |
|
1066 |
#: includes/forms/views/tabs/form-settings.php:44
|
1067 |
msgid "Are you sure you want to disable double opt-in?"
|
1068 |
+
msgstr "Üye doğrulamayı kapatmak istediğine emin misin?"
|
1069 |
|
1070 |
#: includes/forms/views/tabs/form-settings.php:47
|
1071 |
msgid ""
|
1072 |
"We strongly suggest keeping double opt-in enabled. Disabling double opt-in "
|
1073 |
"may result in abuse."
|
1074 |
+
msgstr "Üye doğrulama özelliğini açık tutmanızı şiddetle öneririz. Üye doğrulamayı kapatmak kötüye kullanıma neden olabilir."
|
1075 |
|
1076 |
#: includes/forms/views/tabs/form-settings.php:94
|
1077 |
msgid "Form behaviour"
|
languages/mailchimp-for-wp.pot
CHANGED
@@ -45,27 +45,31 @@ msgstr ""
|
|
45 |
msgid "This can take a while if you have many MailChimp lists."
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: includes/admin/class-admin.php:
|
|
|
|
|
|
|
|
|
49 |
msgid "MailChimp API Settings"
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: includes/admin/class-admin.php:
|
53 |
msgid "MailChimp"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: includes/admin/class-admin.php:
|
57 |
msgid "Other Settings"
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: includes/admin/class-admin.php:
|
61 |
msgid "Other"
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: includes/admin/class-admin.php:
|
65 |
msgid "Log successfully emptied."
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: includes/admin/class-admin.php:
|
69 |
msgid "To get started with MailChimp for WordPress, please <a href=\"%s\">enter your MailChimp API key on the settings page of the plugin</a>."
|
70 |
msgstr ""
|
71 |
|
@@ -97,31 +101,31 @@ msgstr ""
|
|
97 |
msgid "Are you enjoying this plugin? The Premium add-on unlocks several powerful features. <a href=\"%s\">Find out about all benefits now</a>."
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: includes/admin/class-ads.php:
|
101 |
msgid "More subscribers, better newsletters."
|
102 |
msgstr ""
|
103 |
|
104 |
-
#: includes/admin/class-ads.php:
|
105 |
msgid "Learn how to best grow your lists & write better emails by subscribing to our monthly tips."
|
106 |
msgstr ""
|
107 |
|
108 |
-
#: includes/admin/class-ads.php:
|
109 |
msgid "Email Address"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: includes/admin/class-ads.php:
|
113 |
msgid "First Name"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: includes/admin/class-ads.php:
|
117 |
msgid "Subscribe"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: includes/admin/class-ads.php:
|
121 |
msgid "Do you want to track all WooCommerce orders in MailChimp so you can send emails based on the purchase activity of your subscribers?"
|
122 |
msgstr ""
|
123 |
|
124 |
-
#: includes/admin/class-ads.php:
|
125 |
msgid "<a href=\"%s\">Upgrade to MailChimp for WordPress Premium</a> or <a href=\"%s\">read more about MailChimp's E-Commerce features</a>."
|
126 |
msgstr ""
|
127 |
|
45 |
msgid "This can take a while if you have many MailChimp lists."
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: includes/admin/class-admin.php:309
|
49 |
+
msgid "Failed to renew your lists. An error occured."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: includes/admin/class-admin.php:337, includes/views/general-settings.php:31
|
53 |
msgid "MailChimp API Settings"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: includes/admin/class-admin.php:338
|
57 |
msgid "MailChimp"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: includes/admin/class-admin.php:344, includes/views/other-settings.php:60, includes/views/other-settings.php:70
|
61 |
msgid "Other Settings"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: includes/admin/class-admin.php:345
|
65 |
msgid "Other"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: includes/admin/class-admin.php:459
|
69 |
msgid "Log successfully emptied."
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: includes/admin/class-admin.php:489
|
73 |
msgid "To get started with MailChimp for WordPress, please <a href=\"%s\">enter your MailChimp API key on the settings page of the plugin</a>."
|
74 |
msgstr ""
|
75 |
|
101 |
msgid "Are you enjoying this plugin? The Premium add-on unlocks several powerful features. <a href=\"%s\">Find out about all benefits now</a>."
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: includes/admin/class-ads.php:114
|
105 |
msgid "More subscribers, better newsletters."
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: includes/admin/class-ads.php:115
|
109 |
msgid "Learn how to best grow your lists & write better emails by subscribing to our monthly tips."
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: includes/admin/class-ads.php:118
|
113 |
msgid "Email Address"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: includes/admin/class-ads.php:122
|
117 |
msgid "First Name"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: includes/admin/class-ads.php:129, includes/forms/class-admin.php:94
|
121 |
msgid "Subscribe"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: includes/admin/class-ads.php:152
|
125 |
msgid "Do you want to track all WooCommerce orders in MailChimp so you can send emails based on the purchase activity of your subscribers?"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: includes/admin/class-ads.php:155
|
129 |
msgid "<a href=\"%s\">Upgrade to MailChimp for WordPress Premium</a> or <a href=\"%s\">read more about MailChimp's E-Commerce features</a>."
|
130 |
msgstr ""
|
131 |
|
mailchimp-for-wp.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: MailChimp for WordPress
|
4 |
Plugin URI: https://mc4wp.com/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=plugins-page
|
5 |
Description: MailChimp for WordPress by ibericode. Adds various highly effective sign-up methods to your site.
|
6 |
-
Version: 4.1.
|
7 |
Author: ibericode
|
8 |
Author URI: https://ibericode.com/
|
9 |
Text Domain: mailchimp-for-wp
|
@@ -47,7 +47,7 @@ function _mc4wp_load_plugin() {
|
|
47 |
}
|
48 |
|
49 |
// bootstrap the core plugin
|
50 |
-
define( 'MC4WP_VERSION', '4.1.
|
51 |
define( 'MC4WP_PLUGIN_DIR', dirname( __FILE__ ) . '/' );
|
52 |
define( 'MC4WP_PLUGIN_URL', plugins_url( '/' , __FILE__ ) );
|
53 |
define( 'MC4WP_PLUGIN_FILE', __FILE__ );
|
@@ -74,9 +74,8 @@ function _mc4wp_load_plugin() {
|
|
74 |
$mc4wp['integrations'] = new MC4WP_Integration_Manager();
|
75 |
$mc4wp['integrations']->add_hooks();
|
76 |
|
77 |
-
//
|
78 |
-
|
79 |
-
|
80 |
|
81 |
// Doing cron? Load Usage Tracking class.
|
82 |
if( defined( 'DOING_CRON' ) && DOING_CRON ) {
|
@@ -125,10 +124,6 @@ add_action( 'plugins_loaded', '_mc4wp_load_plugin', 8 );
|
|
125 |
* @since 3.0
|
126 |
*/
|
127 |
function _mc4wp_on_plugin_activation() {
|
128 |
-
delete_transient( 'mc4wp_mailchimp_lists_v3' );
|
129 |
-
delete_transient( 'mc4wp_mailchimp_lists_v3_fallback' );
|
130 |
-
delete_transient( 'mc4wp_list_counts' );
|
131 |
-
|
132 |
wp_schedule_event( strtotime('tomorrow 3 am'), 'daily', 'mc4wp_refresh_mailchimp_lists' );
|
133 |
}
|
134 |
|
@@ -139,7 +134,10 @@ function _mc4wp_on_plugin_activation() {
|
|
139 |
* @since 4.0.3
|
140 |
*/
|
141 |
function _mc4wp_on_plugin_deactivation() {
|
142 |
-
|
|
|
|
|
|
|
143 |
}
|
144 |
|
145 |
register_activation_hook( __FILE__, '_mc4wp_on_plugin_activation' );
|
3 |
Plugin Name: MailChimp for WordPress
|
4 |
Plugin URI: https://mc4wp.com/#utm_source=wp-plugin&utm_medium=mailchimp-for-wp&utm_campaign=plugins-page
|
5 |
Description: MailChimp for WordPress by ibericode. Adds various highly effective sign-up methods to your site.
|
6 |
+
Version: 4.1.2
|
7 |
Author: ibericode
|
8 |
Author URI: https://ibericode.com/
|
9 |
Text Domain: mailchimp-for-wp
|
47 |
}
|
48 |
|
49 |
// bootstrap the core plugin
|
50 |
+
define( 'MC4WP_VERSION', '4.1.2' );
|
51 |
define( 'MC4WP_PLUGIN_DIR', dirname( __FILE__ ) . '/' );
|
52 |
define( 'MC4WP_PLUGIN_URL', plugins_url( '/' , __FILE__ ) );
|
53 |
define( 'MC4WP_PLUGIN_FILE', __FILE__ );
|
74 |
$mc4wp['integrations'] = new MC4WP_Integration_Manager();
|
75 |
$mc4wp['integrations']->add_hooks();
|
76 |
|
77 |
+
// bootstrapping of core integrations
|
78 |
+
_mc4wp_bootstrap_integrations();
|
|
|
79 |
|
80 |
// Doing cron? Load Usage Tracking class.
|
81 |
if( defined( 'DOING_CRON' ) && DOING_CRON ) {
|
124 |
* @since 3.0
|
125 |
*/
|
126 |
function _mc4wp_on_plugin_activation() {
|
|
|
|
|
|
|
|
|
127 |
wp_schedule_event( strtotime('tomorrow 3 am'), 'daily', 'mc4wp_refresh_mailchimp_lists' );
|
128 |
}
|
129 |
|
134 |
* @since 4.0.3
|
135 |
*/
|
136 |
function _mc4wp_on_plugin_deactivation() {
|
137 |
+
global $wpdb;
|
138 |
+
wp_clear_scheduled_hook( 'mc4wp_refresh_mailchimp_lists' );
|
139 |
+
|
140 |
+
$wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE 'mc4wp_mailchimp_list_%'");
|
141 |
}
|
142 |
|
143 |
register_activation_hook( __FILE__, '_mc4wp_on_plugin_activation' );
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://mc4wp.com/#utm_source=wp-plugin-repo&utm_medium=mailchimp-f
|
|
4 |
Tags: mailchimp, mc4wp, email, marketing, newsletter, subscribe, widget, mc4wp, contact form 7, woocommerce, buddypress, ibericode, mailchimp forms, mailchimp integrations
|
5 |
Requires at least: 4.1
|
6 |
Tested up to: 4.7.4
|
7 |
-
Stable tag: 4.1.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -194,6 +194,18 @@ MailChimp for WordPress comes with many filter & action hooks which allow you to
|
|
194 |
== Changelog ==
|
195 |
|
196 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
#### 4.1.1 - April 11, 2017
|
198 |
|
199 |
**Fixes**
|
4 |
Tags: mailchimp, mc4wp, email, marketing, newsletter, subscribe, widget, mc4wp, contact form 7, woocommerce, buddypress, ibericode, mailchimp forms, mailchimp integrations
|
5 |
Requires at least: 4.1
|
6 |
Tested up to: 4.7.4
|
7 |
+
Stable tag: 4.1.2
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
194 |
== Changelog ==
|
195 |
|
196 |
|
197 |
+
#### 4.1.2 - May 8, 2017
|
198 |
+
|
199 |
+
**Fixes**
|
200 |
+
|
201 |
+
- Use earlier hook priority for Ninja Forms 3 integration so action is registered on time.
|
202 |
+
|
203 |
+
**Improvements**
|
204 |
+
|
205 |
+
- Improved MailChimp list fetching & memory usage for accounts with many lists.
|
206 |
+
- Show error message when fetching lists fails.
|
207 |
+
- Updated plugin translations.
|
208 |
+
|
209 |
#### 4.1.1 - April 11, 2017
|
210 |
|
211 |
**Fixes**
|
vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit5bf7af865abd357743e770c4549a200a::getLoader();
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -63,7 +63,6 @@ return array(
|
|
63 |
'MC4WP_Queue' => $baseDir . '/includes/class-queue.php',
|
64 |
'MC4WP_Queue_Job' => $baseDir . '/includes/class-queue-job.php',
|
65 |
'MC4WP_Registration_Form_Integration' => $baseDir . '/integrations/wp-registration-form/class-registration-form.php',
|
66 |
-
'MC4WP_Remote_Content_Block' => $baseDir . '/includes/admin/class-remote-content-block.php',
|
67 |
'MC4WP_Request' => $baseDir . '/includes/class-request.php',
|
68 |
'MC4WP_Tools' => $baseDir . '/includes/class-tools.php',
|
69 |
'MC4WP_Update_Optin' => $baseDir . '/includes/admin/class-update-optin.php',
|
@@ -71,7 +70,6 @@ return array(
|
|
71 |
'MC4WP_Usage_Tracking' => $baseDir . '/includes/admin/class-usage-tracking.php',
|
72 |
'MC4WP_User_Integration' => $baseDir . '/includes/integrations/class-user-integration.php',
|
73 |
'MC4WP_Validator' => $baseDir . '/includes/class-validator.php',
|
74 |
-
'MC4WP_Visitor_Tracking' => $baseDir . '/includes/class-visitor-tracking.php',
|
75 |
'MC4WP_WooCommerce_Integration' => $baseDir . '/integrations/woocommerce/class-woocommerce.php',
|
76 |
'xrstf\\Composer52\\AutoloadGenerator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
77 |
'xrstf\\Composer52\\Generator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|
63 |
'MC4WP_Queue' => $baseDir . '/includes/class-queue.php',
|
64 |
'MC4WP_Queue_Job' => $baseDir . '/includes/class-queue-job.php',
|
65 |
'MC4WP_Registration_Form_Integration' => $baseDir . '/integrations/wp-registration-form/class-registration-form.php',
|
|
|
66 |
'MC4WP_Request' => $baseDir . '/includes/class-request.php',
|
67 |
'MC4WP_Tools' => $baseDir . '/includes/class-tools.php',
|
68 |
'MC4WP_Update_Optin' => $baseDir . '/includes/admin/class-update-optin.php',
|
70 |
'MC4WP_Usage_Tracking' => $baseDir . '/includes/admin/class-usage-tracking.php',
|
71 |
'MC4WP_User_Integration' => $baseDir . '/includes/integrations/class-user-integration.php',
|
72 |
'MC4WP_Validator' => $baseDir . '/includes/class-validator.php',
|
|
|
73 |
'MC4WP_WooCommerce_Integration' => $baseDir . '/integrations/woocommerce/class-woocommerce.php',
|
74 |
'xrstf\\Composer52\\AutoloadGenerator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
75 |
'xrstf\\Composer52\\Generator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|
vendor/composer/autoload_real_52.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
-
class
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitef76aa1bb6f3ca98f87763d7c82e66ab {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInit5bf7af865abd357743e770c4549a200a {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit5bf7af865abd357743e770c4549a200a', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit5bf7af865abd357743e770c4549a200a', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
vendor/composer/autoload_static.php
CHANGED
@@ -83,7 +83,6 @@ class ComposerStaticInitc16a50fb3cb50a786a944e8e9cbf2f72
|
|
83 |
'MC4WP_Queue' => __DIR__ . '/../..' . '/includes/class-queue.php',
|
84 |
'MC4WP_Queue_Job' => __DIR__ . '/../..' . '/includes/class-queue-job.php',
|
85 |
'MC4WP_Registration_Form_Integration' => __DIR__ . '/../..' . '/integrations/wp-registration-form/class-registration-form.php',
|
86 |
-
'MC4WP_Remote_Content_Block' => __DIR__ . '/../..' . '/includes/admin/class-remote-content-block.php',
|
87 |
'MC4WP_Request' => __DIR__ . '/../..' . '/includes/class-request.php',
|
88 |
'MC4WP_Tools' => __DIR__ . '/../..' . '/includes/class-tools.php',
|
89 |
'MC4WP_Update_Optin' => __DIR__ . '/../..' . '/includes/admin/class-update-optin.php',
|
@@ -91,7 +90,6 @@ class ComposerStaticInitc16a50fb3cb50a786a944e8e9cbf2f72
|
|
91 |
'MC4WP_Usage_Tracking' => __DIR__ . '/../..' . '/includes/admin/class-usage-tracking.php',
|
92 |
'MC4WP_User_Integration' => __DIR__ . '/../..' . '/includes/integrations/class-user-integration.php',
|
93 |
'MC4WP_Validator' => __DIR__ . '/../..' . '/includes/class-validator.php',
|
94 |
-
'MC4WP_Visitor_Tracking' => __DIR__ . '/../..' . '/includes/class-visitor-tracking.php',
|
95 |
'MC4WP_WooCommerce_Integration' => __DIR__ . '/../..' . '/integrations/woocommerce/class-woocommerce.php',
|
96 |
'xrstf\\Composer52\\AutoloadGenerator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
97 |
'xrstf\\Composer52\\Generator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|
83 |
'MC4WP_Queue' => __DIR__ . '/../..' . '/includes/class-queue.php',
|
84 |
'MC4WP_Queue_Job' => __DIR__ . '/../..' . '/includes/class-queue-job.php',
|
85 |
'MC4WP_Registration_Form_Integration' => __DIR__ . '/../..' . '/integrations/wp-registration-form/class-registration-form.php',
|
|
|
86 |
'MC4WP_Request' => __DIR__ . '/../..' . '/includes/class-request.php',
|
87 |
'MC4WP_Tools' => __DIR__ . '/../..' . '/includes/class-tools.php',
|
88 |
'MC4WP_Update_Optin' => __DIR__ . '/../..' . '/includes/admin/class-update-optin.php',
|
90 |
'MC4WP_Usage_Tracking' => __DIR__ . '/../..' . '/includes/admin/class-usage-tracking.php',
|
91 |
'MC4WP_User_Integration' => __DIR__ . '/../..' . '/includes/integrations/class-user-integration.php',
|
92 |
'MC4WP_Validator' => __DIR__ . '/../..' . '/includes/class-validator.php',
|
|
|
93 |
'MC4WP_WooCommerce_Integration' => __DIR__ . '/../..' . '/integrations/woocommerce/class-woocommerce.php',
|
94 |
'xrstf\\Composer52\\AutoloadGenerator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
95 |
'xrstf\\Composer52\\Generator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|