PageSourceSearch

https://javascript.info/pack/authClient-616.e2bc65ff7d02701ced64.js

js javascript.info collected 2026-10-01 08:36:27 UTC 74,830 bytes, 2,596 lines download raw bytes

1(self.webpackChunkjavascript_nodejs = self.webpackChunkjavascript_nodejs || []).push([ [ 616 ], {
2641: function(e, t, i) {
3let n = i(1276);
4class o extends Modal {
5constructor(e = {}) {
6super(e), this.options.inModal = !0;
7let t = new n(this.options);
8this.setContent(t.getElem());
9}
10render() {
11super.render(), this.elem.classList.add("login-form-modal");
12}
13}
14e.exports = o;
15},
16773: function(e, t, i) {
17"use strict";
18const n = new (i(8679))("en");
19let o = console.error;
20function a(e) {
21if (!n.hasPhrase(s, e)) {
22!1 && o("No such phrase", e);
23}
24return n.t(s, ...arguments);
25}
26e.exports = a;
27const s = i(9907).lang;
28"en" !== s && n.setFallback(s, "en"), n.add = (...e) => (e = e.map(e => e.__esModule ? e.default : e), 
29n.addPhrase(s, ...e)), a.i18n = n;
30},
311276: function(e, t, i) {
32let n = i(1495), o = i(3102), a = i(8944);
33const s = i(9907), {Captcha: l} = i(2024), r = i(773), c = i(9907).lang;
34let u = i(5582), f = i(1898), p = i(4500), m = i(8242), d = i(5345);
35r.i18n.add("auth", i(4766)("./" + c + ".yml"));
36class h {
37constructor(e) {
38this.options = e, e.successRedirect || (e.successRedirect = window.location.href), 
39this.options.providers = s.providers;
40}
41render() {
42this.elem = document.createElement("div"), this.elem.innerHTML = m(u, this.options), 
43this.options.message && this.showFormMessage(this.options.message), this.options.email && (this.elem.querySelector('[name="email"]').value = this.options.email, 
44this.elem.querySelector('[name="email"]').removeAttribute("autofocus"), this.elem.querySelector('[name="password"]').setAttribute("autofocus", "")), 
45this.initEventHandlers();
46}
47getElem() {
48return this.elem || this.render(), this.elem;
49}
50successRedirect() {
51window.location.href == this.options.successRedirect ? window.location.reload() : window.location.href = this.options.successRedirect;
52}
53clearFormMessages() {
54[].forEach.call(this.elem.querySelectorAll(".text-input_invalid"), function(e) {
55e.classList.remove("text-input_invalid");
56}), [].forEach.call(this.elem.querySelectorAll(".text-input__err"), function(e) {
57e.remove();
58}), this.elem.querySelector("[data-notification]").innerHTML = "";
59}
60request(e) {
61let t = n(e);
62return t.addEventListener("loadstart", function() {
63let e = this.startRequestIndication();
64t.addEventListener("loadend", e);
65}.bind(this)), t;
66}
67startRequestIndication() {
68this.elem.classList.add("modal-overlay_light");
69let e, t = this.elem.querySelector('[type="submit"]');
70return t && (e = new a({
71elem: t,
72size: "small",
73class: "",
74elemClass: "button_loading"
75}), e.start()), () => {
76this.elem.classList.remove("modal-overlay_light"), e && e.stop();
77};
78}
79initEventHandlers() {
80this.delegate('[data-switch="register-form"]', "click", function(e) {
81e.preventDefault(), this.elem.innerHTML = m(f, this.options), this.registerCaptcha = new l(this.elem.querySelector("form")), 
82_(this.elem);
83}), this.delegate('[data-switch="login-form"]', "click", function(e) {
84e.preventDefault(), this.elem.innerHTML = m(u, this.options), _(this.elem);
85}), this.delegate('[data-switch="forgot-form"]', "click", function(e) {
86e.preventDefault();
87let t = this.elem.querySelector('[type="email"]');
88this.elem.innerHTML = m(p, this.options), this.elem.querySelector('[type="email"]').value = t.value, 
89_(this.elem);
90}), this.delegate('[data-form="login"]', "submit", function(e) {
91e.preventDefault(), this.submitLoginForm(e.target);
92}), this.delegate('[data-form="register"]', "submit", function(e) {
93e.preventDefault(), this.submitRegisterForm(e.target);
94}), this.delegate('[data-form="forgot"]', "submit", function(e) {
95e.preventDefault(), this.submitForgotForm(e.target);
96}), this.delegate("[data-provider]", "click", function(e) {
97e.preventDefault(), this.openAuthPopup("/auth/login/" + e.delegateTarget.dataset.provider);
98}), this.delegate("[data-action-verify-email]", "click", function(e) {
99e.preventDefault();
100let t = new FormData, i = e.delegateTarget.dataset.actionVerifyEmail;
101t.append("email", i);
102let n = this.request({
103method: "POST",
104url: "/auth/reverify",
105body: t
106}), o = this;
107n.addEventListener("success", function(e) {
108200 == this.status ? o.showFormMessage({
109html: r("auth.auth_form.letter_resend", {
110email: i
111}),
112type: "success"
113}) : o.showFormMessage({
114type: "error",
115html: e.result
116});
117});
118}), this.delegate("[data-action-accept-agreements]", "change", function(e) {
119let t = e.delegateTarget.checked;
120this.elem.querySelector('[type="submit"]').disabled = !t;
121});
122}
123async submitRegisterForm(e) {
124this.clearFormMessages();
125let t = !1;
126if (e.elements.email.value || (t = !0, this.showInputError(e.elements.email, r("auth.auth_form.enter_email"))), 
127e.elements.displayName.value || (t = !0, this.showInputError(e.elements.displayName, r("auth.auth_form.enter_displayname"))), 
128e.elements.password.value || (t = !0, this.showInputError(e.elements.password, r("auth.auth_form.enter_password"))), 
129t) return;
130await this.registerCaptcha.validateForm(e);
131let i = new FormData(e);
132i.append("successRedirect", this.options.successRedirect);
133let n = this.request({
134method: "POST",
135url: "/auth/register",
136normalStatuses: [ 201, 400, 403 ],
137body: i
138}), o = this;
139n.addEventListener("success", function(t) {
140if (201 == this.status) return o.elem.innerHTML = m(u, o.options), void o.showFormMessage({
141html: r("auth.auth_form.letter_sent", {
142email: e.elements.email.value,
143notifyEmail: "[email protected]"
144}),
145type: "success"
146});
147if (400 != this.status) 403 != this.status ? o.showFormMessage({
148html: r("auth.auth_form.unknown_error"),
149type: "error"
150}) : new d.Error(t.result.message); else for (let i in t.result.errors) o.showInputError(e.elements[i], t.result.errors[i]);
151});
152}
153submitForgotForm(e) {
154this.clearFormMessages();
155let t = !1;
156if (e.elements.email.value || (t = !0, this.showInputError(e.elements.email, r("auth.auth_form.enter_email"))), 
157t) return;
158let i = new FormData(e);
159i.append("successRedirect", this.options.successRedirect);
160let n = this.request({
161method: "POST",
162url: "/auth/forgot",
163normalStatuses: [ 200, 404, 403 ],
164body: i
165}), o = this;
166n.addEventListener("success", function(e) {
167200 == this.status ? (o.elem.innerHTML = m(u, o.options), o.showFormMessage({
168html: e.result,
169type: "success"
170})) : 404 == this.status ? o.showFormMessage({
171html: e.result,
172type: "error"
173}) : 403 == this.status && o.showFormMessage({
174html: e.result.message || r("auth.auth_form.forbidden"),
175type: "error"
176});
177});
178}
179showInputError(e, t) {
180e.parentNode.classList.add("text-input_invalid");
181let i = document.createElement("span");
182i.className = "text-input__err", i.innerHTML = t, e.parentNode.appendChild(i);
183}
184showFormMessage(e) {
185let t = e.html;
1860 !== t.indexOf("<p>") && (t = "<p>" + t + "</p>");
187let i = e.type;
188if (-1 == [ "info", "error", "warning", "success" ].indexOf(i)) throw new Error("Unsupported type: " + i);
189let n = document.createElement("div");
190n.className = "login-form__" + i, n.innerHTML = t, this.elem.querySelector("[data-notification]").innerHTML = "", 
191this.elem.querySelector("[data-notification]").appendChild(n);
192}
193submitLoginForm(e) {
194this.clearFormMessages();
195let t = !1;
196if (e.elements.email.value || (t = !0, this.showInputError(e.elements.email, r("auth.auth_form.enter_email"))), 
197e.elements.password.value || (t = !0, this.showInputError(e.elements.password, r("auth.auth_form.enter_password"))), 
198t) return;
199let i = n({
200method: "POST",
201url: "/auth/login/local",
202noDocumentEvents: !0,
203normalStatuses: [ 200, 401 ],
204body: new FormData(e)
205}), o = this.startRequestIndication();
206i.addEventListener("success", e => {
207if (401 == i.status) return o(), void this.onAuthFailure(e.result.message);
208this.options.callback ? (o(), this.onAuthSuccess(e.result.user)) : this.onAuthSuccess(e.result.user);
209}), i.addEventListener("fail", e => {
210o(), this.onAuthFailure(e.reason);
211});
212}
213openAuthPopup(e) {
214this.authPopup && !this.authPopup.closed && this.authPopup.close();
215let t = (window.outerHeight - 600) / 2, i = (window.outerWidth - 800) / 2;
216window.authForm = this, this.authPopup = window.open(e, "authForm", "width=800,height=600,scrollbars=0,top=" + t + ",left=" + i);
217}
218onAuthSuccess(e) {
219window.currentUser = e, this.options.callback ? this.options.callback() : this.successRedirect();
220}
221onAuthFailure(e) {
222this.showFormMessage({
223html: e || r("auth.auth_form.auth_reject"),
224type: "error"
225});
226}
227}
228function _(e) {
229let t = e.querySelector("[autofocus]");
230t && t.focus();
231}
232o.delegateMixin(h.prototype), e.exports = h;
233},
2341495: function(e, t, i) {
235let n = i(5345), o = i(4629);
236const a = i(9907).lang, s = i(773);
237s.i18n.add("", i(3205)("./" + a + ".yml")), s.i18n.add("error.network", i(6188)("./" + a + ".yml")), 
238document.addEventListener("xhrfail", function(e) {
239new n.Error(e.reason);
240}), e.exports = function(e) {
241let t = new XMLHttpRequest, i = e.method || "GET", n = e.body, a = e.url;
242t.open(i, a, !e.sync), t.method = i;
243let l = o();
244l && !e.skipCsrf && t.setRequestHeader("X-XSRF-TOKEN", l), e.responseType && (t.responseType = e.responseType), 
245"[object Object]" == {}.toString.call(n) && (t.setRequestHeader("Content-Type", "application/json;charset=UTF-8"), 
246n = JSON.stringify(n)), e.noDocumentEvents || (t.addEventListener("loadstart", e => {
247t.timeStart = Date.now();
248let i = c("xhrstart", e);
249document.dispatchEvent(i);
250}), t.addEventListener("loadend", e => {
251let t = c("xhrend", e);
252document.dispatchEvent(t);
253}), t.addEventListener("success", e => {
254let t = c("xhrsuccess", e);
255t.result = e.result, document.dispatchEvent(t);
256}), t.addEventListener("fail", e => {
257let t = c("xhrfail", e);
258t.reason = e.reason, document.dispatchEvent(t);
259})), e.raw || t.setRequestHeader("Accept", "application/json"), t.setRequestHeader("X-Requested-With", "XMLHttpRequest");
260let r = e.normalStatuses || [ 200 ];
261function c(e, t) {
262let i = new CustomEvent(e);
263return i.originalEvent = t, i;
264}
265function u(e, i) {
266let n = c("fail", i);
267n.reason = e, t.dispatchEvent(n);
268}
269return t.addEventListener("error", e => {
270u(s("error.network.server_connection_error"), e);
271}), t.addEventListener("timeout", e => {
272u(s("error.network.server_request_timeout"), e);
273}), t.addEventListener("abort", e => {
274u(s("error.network.request_aborted"), e);
275}), t.addEventListener("load", i => {
276if (!t.status) return void u(s("error.network.no_response"), i);
277let n = e.responseType && "text" !== e.responseType ? t.response : t.responseText;
278if ((t.getResponseHeader("Content-Type") || "").match(/^application\/json/) || e.json) try {
279n = JSON.parse(n);
280} catch (i) {
281return void u(s("error.network.invalid_format"), i);
282}
283if (!r.includes(t.status)) {
284return void u(n.info ? s("error.network.server_error_info", {
285status: t.status,
286info: n.info
287}) : s("error.network.server_error", {
288status: t.status
289}), i);
290}
291!function(e, i) {
292let n = c("success", i);
293n.result = e, t.dispatchEvent(n);
294}(n, i);
295}), setTimeout(function() {
296t.send(n);
297}), t;
298};
299},
3001898: function(e, i, n) {
301var o = n(7766);
302e.exports = function(e) {
303var i, n = "", a = {}, s = e || {};
304return function(e, t, s, l, r, c, u, f, p, m, d, h) {
305var _ = function(i) {
306var n;
307if (null == i || "object" != typeof i) return i;
308if (i instanceof t) return (n = new t).setTime(i.getTime()), n;
309if (i instanceof e) {
310n = [];
311for (var o = 0, a = i.length; o < a; o++) n[o] = _(i[o]);
312return n;
313}
314if (i instanceof l) {
315for (var r in n = {}, i) i.hasOwnProperty(r) && (n[r] = _(i[r]));
316return n;
317}
318throw new s("Unable to copy obj! Its type isn't supported.");
319}, b = {
320hr: {
321type: "self_closing"
322},
323br: {
324type: "self_closing"
325},
326wbr: {
327type: "self_closing"
328},
329source: {
330type: "self_closing"
331},
332img: {
333type: "self_closing"
334},
335input: {
336type: "self_closing"
337},
338a: {
339type: "inline"
340},
341abbr: {
342type: "inline"
343},
344acronym: {
345type: "inline"
346},
347b: {
348type: "inline"
349},
350code: {
351type: "inline"
352},
353em: {
354type: "inline"
355},
356font: {
357type: "inline"
358},
359i: {
360type: "inline"
361},
362ins: {
363type: "inline"
364},
365kbd: {
366type: "inline"
367},
368map: {
369type: "inline"
370},
371pre: {
372type: "inline"
373},
374samp: {
375type: "inline"
376},
377small: {
378type: "inline"
379},
380span: {
381type: "inline"
382},
383strong: {
384type: "inline"
385},
386sub: {
387type: "inline"
388},
389sup: {
390type: "inline"
391},
392textarea: {
393type: "inline"
394},
395time: {
396type: "inline"
397},
398label: {
399content_type: "inline"
400},
401p: {
402content_type: "inline"
403},
404h1: {
405content_type: "inline"
406},
407h2: {
408content_type: "inline"
409},
410h3: {
411content_type: "inline"
412},
413h4: {
414content_type: "inline"
415},
416h5: {
417content_type: "inline"
418},
419h6: {
420content_type: "inline"
421},
422ul: {
423content_type: "list"
424},
425ol: {
426content_type: "list"
427},
428select: {
429content_type: "optionlist"
430},
431datalist: {
432content_type: "optionlist"
433}
434}, g = [ "element", "modifier" ], v = {
435prefix: "",
436element: "__",
437modifier: "_",
438default_tag: "div",
439nosrc_substitute: !0,
440flat_elements: !0,
441class_delimiter: ""
442}, y = function() {
443var e = _(v);
444void 0 !== p && (e.prefix = p), void 0 !== u && (e.element = u), void 0 !== f && (e.modifier = f), 
445void 0 !== c && (e.default_tag = c);
446for (var t = 0; t < g.length; t++) {
447var i = g[t];
448void 0 === e["output_" + i] && (e["output_" + i] = e[i]);
449}
450return e;
451};
452a.bemto_custom_inline_tag = i = function(e, t) {
453var a = this && this.block, s = this && this.attributes || {};
454if (t = t || !1, n += (null == (i = "<") ? "" : i) + o.escape(null == (i = e) ? "" : i), 
455s) for (var l in s) s.hasOwnProperty(l) && !1 !== s[l] && void 0 !== s[l] && (n += o.escape(null == (i = " ") ? "" : i) + o.escape(null == (i = l) ? "" : i) + (null == (i = '="') ? "" : i) + (null == (i = !0 === s[l] ? l : s[l]) ? "" : i) + (null == (i = '"') ? "" : i));
456t ? n += null == (i = "/>") ? "" : i : (n += null == (i = ">") ? "" : i, a && a(), 
457n += (null == (i = "</") ? "" : i) + o.escape(null == (i = e) ? "" : i) + (null == (i = ">") ? "" : i));
458}, a.bemto_custom_tag = i = function(e, t) {
459var i = this && this.block, s = this && this.attributes || {};
460t = t || {};
461var l, r, c = !1;
462switch ("/" === (e = e || "div").substr(-1) && (c = !0, e = e.slice(0, -1)), t.type || (r = "block", 
463b[l = e] && (r = b[l].type || r), r)) {
464case "inline":
465a.bemto_custom_inline_tag.call({
466block: function() {
467i && i();
468},
469attributes: s
470}, e);
471break;
472
473case "self_closing":
474a.bemto_custom_inline_tag.call({
475attributes: s
476}, e, !0);
477break;
478
479default:
480c ? n = n + "<" + e + o.attrs(s, !0) + "/>" : (n = n + "<" + e + o.attrs(s, !0) + ">", 
481i && i(), n = n + "</" + e + ">");
482}
483}, a.bemto_tag = i = function(e, t) {
484var i = this && this.block, o = this && this.attributes || {}, s = y();
485t = t || {};
486var l = e || s.default_tag, r = x.length;
487e || ("inline" === x[r - 1] ? l = "span" : "list" === x[r - 1] ? l = "li" : "optionlist" === x[r - 1] && (l = "o
487ption")), 
488e && "span" != e && "div" != e || (o.href && (l = "a"), o.for && (l = "label"), 
489o.type ? l = i ? "button" : "input" : o.src && (l = "img")), "list" === x[r - 1] && "li" !== l ? n += "<li>" : "list" !== x[r - 1] && "pseudo-list" !== x[r - 1] && "li" === l ? (n += "<ul>", 
490x[x.length] = "pseudo-list") : "pseudo-list" === x[r - 1] && "li" !== l && (n += "</ul>", 
491x = x.splice(0, x.length - 1));
492var c, u, f = t.content_type || (u = "block", b[c = l] && (u = b[c].content_type || b[c].type || u), 
493u);
494x[x.length] = f, "img" == l && (o.alt && !o.title && (o.title = ""), o.title && !o.alt && (o.alt = o.title), 
495o.alt || (o.alt = ""), "" === o.alt && (o.role = "presentation"), o.src || (!0 === s.nosrc_substitute ? o.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" : s.nosrc_substitute && (o.src = s.nosrc_substitute))), 
496"input" == l && (o.type || (o.type = "text")), "main" == l && (o.role || (o.role = "main")), 
497"html" == l && (n += "<!DOCTYPE html>"), a.bemto_custom_tag.call({
498block: function() {
499i && i && i();
500},
501attributes: o
502}, l, t), "list" === x[r - 1] && "li" != l && (n += "</li>");
503};
504var w = [], x = [ "block" ];
505a.b = i = function(t) {
506var i = this && this.block, n = this && this.attributes || {}, o = y();
507t && void 0 !== t.prefix && (o.prefix = t.prefix);
508var s = t && t.tag || ("string" == typeof t ? t : ""), c = t && t.isElement, u = t && t.metadata, f = !1;
509if (n.class) {
510var p = n.class;
511p instanceof e && (p = p.join(" ")), p = p.split(" ");
512var m = [], d = !0, h = [];
513if (function() {
514var e = p;
515if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
516var n = e[t], a = {}, u = m[m.length - 1], b = !1;
517if (n.match(/^[A-Z-]+[A-Z0-9-]?$/)) s = n.toLowerCase(); else if (d && c && (a.context = w[w.length - 1]), 
518(x = n.match(new r("^(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && u && u.name) u.modifiers || (u.modifiers = []), 
519u.modifiers.push(x[1]); else {
520(k = n.match(new r("^(?!" + o.modifier + "[A-Za-z0-9])" + o.element + "(.+)$"))) && (a.context = w[w.length - 1], 
521n = k[1]), (A = n.match(new r("^(.*[A-Za-z0-9])(?!" + o.modifier + "$)" + o.element + "$"))) && (n = A[1], 
522a.is_context = !0, b = !0, f = !0, c = !1), (E = n.match(new r("^(.*?[A-Za-z0-9])(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && (n = E[1], 
523a.modifiers || (a.modifiers = []), a.modifiers.push(E[2]));
524var g = "", v = "()?";
525if (o.prefix) {
526"string" == typeof (O = o.prefix) && (O = {
527"": O
528});
529var y = [];
530O instanceof l && (function() {
531var e = O;
532if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
533var n = e[t];
534"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
535} else {
536i = 0;
537for (var t in e) {
538i++;
539n = e[t];
540"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
541}
542}
543}.call(this), v = "(" + y.join("|") + ")?"), (Z = n.match(new r("^" + v + "([A-Za-z0-9]+.*)$"))) && (n = Z[2], 
544g = Z[1] || "", void 0 !== (g = O[g]) && !0 !== g || (g = Z[1]));
545}
546a.prefix = (g || "").replace(/\-/g, "%DASH%").replace(/\_/g, "%UNDERSCORE%"), b && n.match(/^[a-zA-Z0-9]+.*/) && h.push(a.context ? a.context + o.element + n : a.prefix + n), 
547a.name = n, d = !1, a.context && a.context.length > 1 ? function() {
548var e = a.context;
549if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
550var n = e[t];
551(o = _(a)).context = [ n ], m.push(o);
552} else {
553i = 0;
554for (var t in e) {
555i++;
556var o;
557n = e[t];
558(o = _(a)).context = [ n ], m.push(o);
559}
560}
561}.call(this) : m.push(a);
562}
563} else {
564i = 0;
565for (var t in e) {
566i++;
567var x;
568n = e[t], a = {}, u = m[m.length - 1], b = !1;
569if (n.match(/^[A-Z-]+[A-Z0-9-]?$/)) s = n.toLowerCase(); else if (d && c && (a.context = w[w.length - 1]), 
570(x = n.match(new r("^(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && u && u.name) u.modifiers || (u.modifiers = []), 
571u.modifiers.push(x[1]); else {
572var k, A, E;
573(k = n.match(new r("^(?!" + o.modifier + "[A-Za-z0-9])" + o.element + "(.+)$"))) && (a.context = w[w.length - 1], 
574n = k[1]), (A = n.match(new r("^(.*[A-Za-z0-9])(?!" + o.modifier + "$)" + o.element + "$"))) && (n = A[1], 
575a.is_context = !0, b = !0, f = !0, c = !1), (E = n.match(new r("^(.*?[A-Za-z0-9])(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && (n = E[1], 
576a.modifiers || (a.modifiers = []), a.modifiers.push(E[2]));
577g = "", v = "()?";
578if (o.prefix) {
579var O;
580"string" == typeof (O = o.prefix) && (O = {
581"": O
582});
583var Z;
584y = [];
585O instanceof l && (function() {
586var e = O;
587if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
588var n = e[t];
589"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
590} else {
591i = 0;
592for (var t in e) {
593i++;
594n = e[t];
595"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
596}
597}
598}.call(this), v = "(" + y.join("|") + ")?"), (Z = n.match(new r("^" + v + "([A-Za-z0-9]+.*)$"))) && (n = Z[2], 
599g = Z[1] || "", void 0 !== (g = O[g]) && !0 !== g || (g = Z[1]));
600}
601a.prefix = (g || "").replace(/\-/g, "%DASH%").replace(/\_/g, "%UNDERSCORE%"), b && n.match(/^[a-zA-Z0-9]+.*/) && h.push(a.context ? a.context + o.element + n : a.prefix + n), 
602a.name = n, d = !1, a.context && a.context.length > 1 ? function() {
603var e = a.context;
604if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
605var n = e[t];
606(o = _(a)).context = [ n ], m.push(o);
607} else {
608i = 0;
609for (var t in e) {
610i++;
611var o;
612n = e[t];
613(o = _(a)).context = [ n ], m.push(o);
614}
615}
616}.call(this) : m.push(a);
617}
618}
619}
620}.call(this), !c && !h.length && m[0] && m[0].name && m[0].name.match(/^[a-zA-Z0-9]+.*/) && (m[0].is_context = !0, 
621h.push(m[0].context ? m[0].context + o.element + m[0].name : m[0].prefix + m[0].name), 
622f = !0), h.length && (o.flat_elements && function() {
623var e = h;
624if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
625(n = e[t].match(new r("^(.*?[A-Za-z0-9])(?!" + o.modifier + "[A-Za-z0-9])" + o.element + ".+$"))) && (h[t] = n[1]);
626} else {
627i = 0;
628for (var t in e) {
629var n;
630i++, (n = e[t].match(new r("^(.*?[A-Za-z0-9])(?!" + o.modifier + "[A-Za-z0-9])" + o.element + ".+$"))) && (h[t] = n[1]);
631}
632}
633}.call(this), w[w.length] = h), m.length) {
634var b = [];
635(function() {
636var e = m;
637if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
638if ((a = e[t]).name) {
639var n = a.prefix;
640a.context && (n = a.context + o.output_element), b.push(n + a.name), a.modifiers && function() {
641var e = a.modifiers;
642if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
643var s = e[t];
644b.push(n + a.name + o.output_modifier + s);
645} else {
646i = 0;
647for (var t in e) {
648i++;
649s = e[t];
650b.push(n + a.name + o.output_modifier + s);
651}
652}
653}.call(this);
654}
655} else {
656i = 0;
657for (var t in e) {
658var a;
659if (i++, (a = e[t]).name) {
660n = a.prefix;
661a.context && (n = a.context + o.output_element), b.push(n + a.name), a.modifiers && function() {
662var e = a.modifiers;
663if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
664var s = e[t];
665b.push(n + a.name + o.output_modifier + s);
666} else {
667i = 0;
668for (var t in e) {
669i++;
670s = e[t];
671b.push(n + a.name + o.output_modifier + s);
672}
673}
674}.call(this);
675}
676}
677}
678}).call(this);
679var g = o.class_delimiter;
680g = g ? " " + g + " " : " ", n.class = b.join(g).replace(/%DASH%/g, "-").replace(/%UNDERSCORE%/g, "_");
681} else n.class = void 0;
682}
683i ? a.bemto_tag.call({
684block: function() {
685i && i();
686},
687attributes: n
688}, s, u) : a.bemto_tag.call({
689attributes: n
690}, s, u), !c && f && (w = w.splice(0, w.length - 1)), x = x.splice(0, x.length - 1);
691}, a.e = i = function(e) {
692var t = this && this.block, i = this && this.attributes || {};
693(e = e && "string" == typeof e ? {
694tag: e
695} : e || {}).isElement = !0, a.b.call({
696block: function() {
697t && t();
698},
699attributes: i
700}, e);
701}, a.b.call({
702block: function() {
703a.e.call({
704block: function() {
705m ? a.e.call({
706block: function() {
707a.e.call({
708block: function() {
709n += o.escape(null == (i = h("auth.signup_form.title")) ? "" : i);
710},
711attributes: {
712class: "title"
713}
714}, "h4"), a.e.call({
715block: function() {
716n += "/";
717},
718attributes: {
719class: "header-delimiter"
720}
721}), a.e.call({
722block: function() {
723a.e.call({
724block: function() {
725n += o.escape(null == (i = h("auth.signup_form.login_link")) ? "" : i);
726},
727attributes: {
728class: "button-link __login",
729type: "button",
730"data-switch": "login-form"
731}
732}, "button");
733},
734attributes: {
735class: "header-aside"
736}
737}
737);
738},
739attributes: {
740class: "line __header"
741}
742}) : (n = n + "<p>" + o.escape(null == (i = h("auth.signup_form.if_you_already_have_account")) ? "" : i) + "&nbsp;", 
743a.e.call({
744block: function() {
745n += o.escape(null == (i = h("auth.signup_form.login")) ? "" : i);
746},
747attributes: {
748class: "button-link",
749type: "button",
750"data-switch": "login-form"
751}
752}, "button"), n += "</p>"), a.e.call({
753block: function() {
754a.e.call({
755attributes: {
756class: "line __notification",
757"data-notification": o.escape(!0)
758}
759}), a.e.call({
760block: function() {
761a.e.call({
762block: function() {
763a.e.call({
764block: function() {
765n = n + o.escape(null == (i = h("auth.email_field_label")) ? "" : i) + ":";
766},
767attributes: {
768class: "label",
769for: "register-email"
770}
771}, "label"), a.b.call({
772block: function() {
773a.e.call({
774attributes: {
775class: "control",
776id: "register-email",
777name: "email",
778type: "email",
779required: o.escape(!0),
780autofocus: o.escape(!0)
781}
782}, "input");
783},
784attributes: {
785class: "text-input __input"
786}
787}, "span");
788},
789attributes: {
790class: "form-control"
791}
792}), a.e.call({
793block: function() {
794a.e.call({
795block: function() {
796n = n + o.escape(null == (i = h("auth.signup_form.displayName_field_label")) ? "" : i) + ":";
797},
798attributes: {
799class: "label",
800for: "register-displayName"
801}
802}, "label"), a.b.call({
803block: function() {
804a.e.call({
805attributes: {
806class: "control",
807id: "register-displayName",
808name: "displayName",
809required: o.escape(!0)
810}
811}, "input");
812},
813attributes: {
814class: "text-input __input"
815}
816}, "span");
817},
818attributes: {
819class: "form-control"
820}
821}), a.e.call({
822block: function() {
823a.e.call({
824block: function() {
825n = n + o.escape(null == (i = h("auth.password_field_label")) ? "" : i) + ":";
826},
827attributes: {
828class: "label",
829for: "register-password"
830}
831}, "label"), a.b.call({
832block: function() {
833a.e.call({
834attributes: {
835class: "control",
836id: "register-password",
837type: "password",
838name: "password",
839required: o.escape(!0),
840minlength: "4"
841}
842}, "input");
843},
844attributes: {
845class: "text-input __input"
846}
847}, "span");
848},
849attributes: {
850class: "form-control"
851}
852});
853},
854attributes: {
855class: "line __row"
856}
857}), a.e.call({
858block: function() {
859a.e.call({
860block: function() {
861a.e.call({
862attributes: {
863class: "agreement-control",
864id: "accept-agreement",
865type: "checkbox",
866"data-action-accept-agreements": o.escape(!0)
867}
868}, "input"), n += null == (i = h("auth.signup_form.register_accept")) ? "" : i;
869},
870attributes: {
871class: "agreement-label",
872for: "accept-agreement"
873}
874}, "label");
875},
876attributes: {
877class: "line __agreement"
878}
879}), a.e.call({
880block: function() {
881a.e.call({
882attributes: {
883class: "captcha"
884}
885});
886},
887attributes: {
888class: "line"
889}
890}), a.e.call({
891block: function() {
892a.b.call({
893block: function() {
894a.e.call({
895block: function() {
896n += o.escape(null == (i = h("auth.signup_form.signup")) ? "" : i);
897},
898attributes: {
899class: "text"
900}
901}, "span");
902},
903attributes: {
904class: "button _action submit",
905type: "submit",
906disabled: "true"
907}
908}, "button"), m && a.e.call({
909block: function() {
910n += o.escape(null == (i = h("auth.signup_form.cancel")) ? "" : i);
911},
912attributes: {
913class: "close-link tablet-only modal__close",
914href: "#"
915}
916}, "a");
917},
918attributes: {
919class: "line __footer"
920}
921}), a.e.call({
922block: function() {
923a.e.call({
924block: function() {
925n += o.escape(null == (i = h("auth.login_form.login_using_socialnetworks")) ? "" : i);
926},
927attributes: {
928class: "social-logins-title"
929}
930}, "h5"), n += o.escape(null == (i = " ") ? "" : i), function() {
931var e = d;
932if ("number" == typeof e.length) for (var t = 0, s = e.length; t < s; t++) {
933let s = [ "social-login", "_" + (l = e[t]).id, "__social-login" ];
934a.b.call({
935block: function() {
936n += o.escape(null == (i = l.name) ? "" : i);
937},
938attributes: {
939class: o.classes([ s ], [ !0 ]),
940"data-provider": o.escape(l.id)
941}
942}, "button"), n += o.escape(null == (i = " ") ? "" : i);
943} else {
944s = 0;
945for (var t in e) {
946var l;
947s++;
948let r = [ "social-login", "_" + (l = e[t]).id, "__social-login" ];
949a.b.call({
950block: function() {
951n += o.escape(null == (i = l.name) ? "" : i);
952},
953attributes: {
954class: o.classes([ r ], [ !0 ]),
955"data-provider": o.escape(l.id)
956}
957}, "button"), n += o.escape(null == (i = " ") ? "" : i);
958}
959}
960}.call(this);
961},
962attributes: {
963class: "line __social-logins"
964}
965});
966},
967attributes: {
968class: "body"
969}
970});
971},
972attributes: {
973class: "form",
974action: "#",
975"data-form": "register"
976}
977}, "form");
978},
979attributes: {
980class: o.classes([ [ "login-form", m ? "_modal" : "_inline" ] ], [ !0 ])
981}
982});
983}.call(this, "Array" in s ? s.Array : "undefined" != typeof Array ? Array : void 0, "Date" in s ? s.Date : "undefined" != typeof Date ? Date : void 0, "Error" in s ? s.Error : "undefined" != typeof Error ? Error : void 0, "Object" in s ? s.Object : "undefined" != typeof Object ? Object : void 0, "RegExp" in s ? s.RegExp : "undefined" != typeof RegExp ? RegExp : void 0, "bemto_settings_default_tag" in s ? s.bemto_settings_default_tag : "undefined" != typeof bemto_settings_default_tag ? bemto_settings_default_tag : void 0, "bemto_settings_element" in s ? s.bemto_settings_element : "undefined" != typeof bemto_settings_element ? bemto_settings_element : void 0, "bemto_settings_modifier" in s ? s.bemto_settings_modifier : "undefined" != typeof bemto_settings_modifier ? bemto_settings_modifier : void 0, "bemto_settings_prefix" in s ? s.bemto_settings_prefix : "undefined" != typeof bemto_settings_prefix ? bemto_settings_prefix : void 0, "inModal" in s ? s.inModal : "undefined" != typeof inModal ? inModal : void 0, "providers" in s ? s.providers : [ {
984name: "Github",
985id: "github"
986}, {
987name: "Discord",
988id: "discord"
989}, {
990name: "Facebook",
991id: "facebook"
992}, {
993name: "Google",
994id: "google"
995} ], "t" in s ? s.t : "undefined" != typeof t ? t : void 0), n;
996};
997},
9982296: function(e, t, i) {
999"use strict";
1000i.r(t), t.default = {
1001if_you_dont_have_account: "If you don't have an account yet, you can",
1002signup: "register",
1003email_field_label: "Email",
1004password_field_label: "Password",
1005login_form: {
1006title: "Log in",
1007registration_link: "Register",
1008forgot: "Forgot?",
1009login_button: "Log in",
1010cancel: "Cancel",
1011login_using_socialnetworks: "Log in with...",
1012test_mode: "Authorization is running in test mode, right now it does not add any additional features to the site."
1013},
1014signup_form: {
1015title: "Register",
1016login_link: "Log in",
1017if_you_already_have_account: "If you already have an account, you can",
1018login: "log in",
1019email_field_label: "Email",
1020displayName_field_label: "Name",
1021password_field_label: "Password",
1022signup: "Register",
1023cancel: "Cancel",
1024register_accept: 'I\'ve read and accept <a href="/terms">the terms of usage</a> and <a href="/privacy">the privacy policy</a>.'
1025},
1026auth_form: {
1027letter_resend: "<p>The confirmation email was sent.</p> <p><a href='#' data-action-verify-email='#{email}'>send it again.</a></p>\n",
1028enter_email: "Please enter email.",
1029enter_displayname: "Please enter username.",
1030enter_password: "Please enter password.",
1031letter_sent: "<p>The letter with a confirmation link was sent from #{notifyEmail}. Please check your mailbox.</p> <p><a href='#' data-action-verify-email='#{email}'>resend confirmation.</a></p>\n",
1032unknown_error: "Unkown response status from server",
1033forbidden: "Forbidden.",
1034auth_reject: "Authentication rejected",
1035enter_captcha: "Please confirm that you're note a robot (captcha)."
1036},
1037forgot: {
1038no_such_user: "There is no user with that email",
1039access_recovery: "Password recovery",
1040letter_sent: "A letter with the link for password reset was sent to your email."
1041},
1042forgot_email: {
1043title: "Password recovery for javascript.info",
1044text: "For password recovery please follow this link:"
1045},
1046forgot_recover: {
1047invalid_link: "You used outdated or invalid link",
1048invalid_link_received: "You link for password recovery is outdated or invalid",
1049password_empty_error: "Password can not be empty.",
1050password_length_error: "Password should contain at least 4 symbols.",
1051title: "Password recovery",
1052close: "Close",
1053new_password: "New password",
1054save_password: "Save password"
1055},
1056email_not_verified: "Email not verified",
1057confirm_activity: {
1058subject: "Hello! Please, verify that you're a human",
1059text: "Please confirm that you're human using the link below. Take note that your account is to be deleted in 7 days if no confirmation is received.",
1060success_text: "Congratulation! You have successfully confirmed that you're a human.",
1061already_confirmed_text: "Thank you! You have already confirmed that you're a human.",
1062success_link: "Back to main page"
1063},
1064login: {
1065title: "Authorization"
1066},
1067register: {
1068already_exists: 'If it\'s your email, you can <a data-switch="login-form" href="#">log in</a> or <a data-switch="forgot-form" href="#">recovery your password</a>.\n',
1069confirm_email: "Email confirmation",
1070email_sent_error: "Error while sending confirmation email.",
1071email_title: "Email confirmation from #{host}",
1072goto_link: "Please confirm your email by following this link:"
1073},
1074reverify: {
1075email_empty_error: "Please enter email.",
1076no_such_user: "There is no such user.",
1077email_already_confirmed: "Your email is already confirmed.",
1078email_subject: "Confirmation email",
1079sending_email_error: "Error occured while sending email."
1080},
1081verify: {
1082invalid_link: "Confirmation link is invalid or already used",
1083email_already_taken: "Email change is forbidden, email is already being used.",
1084email_already_verified: "No changes has been made: your email has already been verified, email change was not requested.",
1085no_password: "No password"
1086},
1087authenticateByProfile: {
1088entrance_is_forbidden: "Unfortunately, logging in with this email is forbidden.",
1089not_enough_data: "There's not enough information, please allow the information transfer."
1090},
1091mustNotBeAuthenticated: {
1092must_not_be_authenticated: "This action is not allowed for authenticated users."
1093},
1094must_be_authenticated: "You have to log in to access this page",
1095forgot_form: {
1096title: "Password recovery",
1097do_recovery: "Recovery password",
1098login: "Log in",
1099registration: "Registration",
1100cancel: "Cancel"
1101},
1102local_strategy: {
1103need_email: "Provide the email.",
1104need_password: "Provide the password, please.",
1105no_user: "No such user.",
1106wrong_password: "Password incorrect. Or maybe the password is too old, then please update it using <
1106a href='#' data-switch='forgot-form'>password reset</a>.",
1107email_not_confirmed: 'The email is not confirmed, please check the mail. Also you can <a href="#" data-action-verify-email="#{email}">re-request the confirmation email</a>.'
1108},
1109facebook_strategy: {
1110no_email_error: "Please allow access to email. It uses for user identification.",
1111request_error: "Facebook request error"
1112},
1113discord_strategy: {
1114error_connection: "Connection to discord.com failed.",
1115email_not_verified: "Email in Discord profile should be verified.",
1116no_email: "Email required in Discord profile."
1117},
1118github_strategy: {
1119error_connection: "Connection to github.com failed.",
1120email_not_confirmed: "Email in github profile should be confirmed."
1121},
1122capcha_error: "Please confirm that you're not a robot.",
1123accept_agreements: {
1124title: "Terms Of Usage",
1125complete_registration: "Complete the registration",
1126cancel: "Cancel",
1127need_accept_agreements: 'To work with the site you need to accept the <a href="/agreement">terms of usage</a>'
1128}
1129};
1130},
11313205: function(e, t, i) {
1132var n = {
1133"./en.yml": 3979
1134};
1135function o(e) {
1136var t = a(e);
1137return i(t);
1138}
1139function a(e) {
1140if (!i.o(n, e)) {
1141var t = new Error("Cannot find module '" + e + "'");
1142throw t.code = "MODULE_NOT_FOUND", t;
1143}
1144return n[e];
1145}
1146o.keys = function() {
1147return Object.keys(n);
1148}, o.resolve = a, e.exports = o, o.id = 3205;
1149},
11503365: function() {},
11513979: function(e, t, i) {
1152"use strict";
1153i.r(t), t.default = {
1154site: {
1155privacy_policy: "privacy policy",
1156terms: "terms of usage",
1157banner_bottom_courses: 'Advance your skils with <a href="https://frontendmasters.com/learn/javascript/?utm_source=website&utm_medium=jsinfo&utm_campaign=jsinfo">video courses on JavaScript and Frameworks</a>.',
1158banner_buttom_sponsor: 'Benefitted from the site? <a href="/sponsor">Sponsor us</a>!',
1159action_required: "Action required",
1160gdpr_dialog: {
1161title: "This website uses cookies",
1162text: 'We use browser technologies such as cookies and local storage to store your preferences. You need to accept our <a href="/privacy">Privacy Policy</a> and <a href="/terms">Terms of Use</a> for us to do so.',
1163accept: "Accept",
1164cancel: "Cancel"
1165},
1166theme: {
1167light: "Light theme",
1168dark: "Dark theme",
1169change: "Change theme"
1170},
1171toolbar: {
1172lang_switcher: {
1173cta_text: '<p>We want to make this open-source project available for people all around the world.</p> <p><a href="https://javascript.info/translate">Help to translate</a> the content of this tutorial to your language!</p>\n',
1174footer_text: "how much content is translated to the corresponding language",
1175old_version: "Old version is published, needs backporting."
1176},
1177logo: {
1178normal: {
1179svg: "sitetoolbar__logo_en.svg",
1180width: 200
1181},
1182"normal-white": {
1183svg: "sitetoolbar__logo_en-white.svg"
1184},
1185small: {
1186svg: "sitetoolbar__logo_small_en.svg",
1187width: 70
1188},
1189"small-white": {
1190svg: "sitetoolbar__logo_small_en-white.svg"
1191}
1192},
1193sections: null,
1194buy_ebook_extra: "Buy",
1195buy_ebook: "EPUB/PDF",
1196search_placeholder: "Search on Javascript.info",
1197search_button: "Search",
1198public_profile: "Public profile",
1199account: "Account",
1200notifications: "Notifications",
1201admin: "Admin",
1202logout: "Logout"
1203},
1204sorry_old_browser: "Sorry, Internet Explorer is not supported, please use a newer browser.",
1205contact_us: "contact us",
1206about_the_project: "about the project",
1207ilya_kantor: "Ilya Kantor",
1208comments: "Comments",
1209loading: "Loading...",
1210search: "Search",
1211share: "Share",
1212read_before_commenting: "read this before commenting…",
1213last_updated_at: "Last updated on #{date}",
1214meta: {
1215description: "Modern JavaScript Tutorial: simple, but detailed explanations with examples and tasks, including: closures, document and events, object oriented programming and more."
1216},
1217"tablet-menu": {
1218choose_section: "Choose section",
1219search_placeholder: "Search in the tutorial",
1220search_button: "Search"
1221},
1222comment: {
1223help: [ 'If you have suggestions what to improve - please <a href="https://github.com/javascript-tutorial/en.javascript.info/issues/new">submit a GitHub issue</a> or a pull request instead of commenting.', "If you can't understand something in the article – please elaborate.", "To insert few words of code, use the <code>&lt;code&gt;</code> tag, for several lines – wrap them in <code>&lt;pre&gt;</code> tag, for more than 10 lines – use a sandbox (<a href='https://plnkr.co/edit/?p=preview'>plnkr</a>, <a href='https://jsbin.com'>jsbin</a>, <a href='http://codepen.io'>codepen</a>…)" ]
1224},
1225edit_on_github: "Edit on GitHub",
1226error: "error",
1227close: "close",
1228hide_forever: "hide permanently",
1229hide_week: "hide for 1 week",
1230hidden_forever: "This information will not show up any more.",
1231hidden_week: "This information will stay hidden for 1 week",
1232subscribe: {
1233title: "Watch for javascript.info updates",
1234text: "We do not send advertisements, only relevant stuff. You choose what to receive:",
1235agreement: 'By signing up to newsletters you agree to the <a href="#{link}" target="_blank">terms of usage</a>.',
1236button: "Subscribe",
1237button_unsubscribe: "Unsubscribe from all",
1238common_updates: "Common updates",
1239common_updates_text: "new courses, master classes, article and screencast releases",
1240your_email: "[email protected]",
1241newsletters: "newsletter,newsletters,newsletters",
1242no_selected: "Nothing selected"
1243},
1244form: {
1245value_must_not_be_empty: "Value must not be empty.",
1246value_is_too_long: "Value is too long.",
1247value_is_too_short: "Value is too short.",
1248invalid_email: "Invalid email.",
1249invalid_value: "Invalid value.",
1250invalid_autocomplete: "Please, choose from the list",
1251invalid_date: "Invalid date, format: dd.mm.yyyyy.",
1252invalid_range: "This date is invalid here.",
1253save: "Save",
1254upload_file: "Upload file",
1255cancel: "Cancel",
1256server_error: "Request error, status code"
1257}
1258}
1259};
1260},
12614500: function(e, i, n) {
1262var o = n(7766);
1263e.exports = function(e) {
1264var i, n = "", a = {}, s = e || {};
1265return function(e, t, s, l, r, c, u, f, p, m, d, h, _) {
1266var b = function(i) {
1267var n;
1268if (null == i || "object" != typeof i) return i;
1269if (i instanceof t) return (n = new t).setTime(i.getTime()), n;
1270if (i instanceof e) {
1271n = [];
1272for (var o = 0, a = i.length; o < a; o++) n[o] = b(i[o]);
1273return n;
1274}
1275if (i instanceof l) {
1276for (var r in n = {}, i) i.hasOwnProperty(r) && (n[r] = b(i[r]));
1277return n;
1278}
1279throw new s("Unable to copy obj! Its type isn't supported.");
1280}, g = {
1281hr: {
1282type: "self_closing"
1283},
1284br: {
1285type: "self_closing"
1286},
1287wbr: {
1288type: "self_closing"
1289},
1290source: {
1291type: "self_closing"
1292},
1293img: {
1294type: "self_closing"
1295},
1296input: {
1297type: "self_closing"
1298},
1299a: {
1300type: "inline"
1301},
1302abbr: {
1303type: "inline"
1304},
1305acronym: {
1306type: "inline"
1307},
1308b: {
1309type: "inline"
1310},
1311code: {
1312type: "inline"
1313},
1314em: {
1315type: "inline"
1316},
1317font: {
1318type: "inline"
1319},
1320i: {
1321type: "inline"
1322},
1323ins: {
1324type: "inline"
1325},
1326kbd: {
1327type: "inline"
1328},
1329map: {
1330type: "inline"
1331},
1332pre: {
1333type: "inline"
1334},
1335samp: {
1336type: "inline"
1337},
1338small: {
1339type: "inline"
1340},
1341span: {
1342type: "inline"
1343},
1344strong: {
1345type: "inline"
1346},
1347sub: {
1348type: "inline"
1349},
1350sup: {
1351type: "inline"
1352},
1353textarea: {
1354type: "inline"
1355},
1356time: {
1357type: "inline"
1358},
1359label: {
1360content_type: "inline"
1361},
1362p: {
1363content_type: "inline"
1364},
1365h1: {
1366content_type: "inline"
1367},
1368h2: {
1369content_type: "inline"
1370},
1371h3: {
1372content_type: "inline"
1373},
1374h4: {
1375content_type: "inline"
1376},
1377h5: {
1378content_type: "inline"
1379},
1380h6: {
1381content_type: "inline"
1382},
1383ul: {
1384content_type: "list"
1385},
1386ol: {
1387content_type: "list"
1388},
1389select: {
1390content_type: "optionlist"
1391},
1392datalist: {
1393content_type: "optionlist"
1394}
1395}, v = [ "element", "modifier" ], y = {
1396prefix: "",
1397element: "__",
1398modifier: "_",
1399default_tag: "div",
1400nosrc_substitute: !0,
1401flat_elements: !0,
1402class_delimiter: ""
1403}, w = function() {
1404var e = b(y);
1405void 0 !== p && (e.prefix = p), void 0 !== u && (e.element = u), void 0 !== f && (e.modifier = f), 
1406void 0 !== c && (e.default_tag = c);
1407for (var t = 0; t < v.length; t++) {
1408var i = v[t];
1409void 0 === e["output_" + i] && (e["output_" + i] = e[i]);
1410}
1411return e;
1412};
1413a.bemto_custom_inline_tag = i = function(e, t) {
1414var a = this && this.block, s = this && this.attributes || {};
1415if (t = t || !1, n += (null == (i = "<") ? "" : i) + o.escape(null == (i = e) ? "" : i), 
1416s) for (var l in s) s.hasOwnProperty(l) && !1 !== s[l] && void 0 !== s[l] && (n += o.escape(null == (i = " ") ? "" : i) + o.escape(null == (i = l) ? "" : i) + (null == (i = '="') ? "" : i) + (null == (i = !0 === s[l] ? l : s[l]) ? "" : i) + (null == (i = '"') ? "" : i));
1417t ? n += null == (i = "/>") ? "" : i : (n += null == (i = ">") ? "" : i, a && a(), 
1418n += (null == (i = "</") ? "" : i) + o.escape(null == (i = e) ? "" : i) + (null == (i = ">") ? "" : i));
1419}, a.bemto_custom_tag = i = function(e, t) {
1420var i = this && this.block, s = this && this.attributes || {};
1421t = t || {};
1422var l, r, c = !1;
1423switch ("/" === (e = e || "div").substr(-1) && (c = !0, e = e.slice(0, -1)), t.type || (r = "block", 
1424g[l = e] && (r = g[l].type || r), r)) {
1425case "inline":
1426a.bemto_custom_inline_tag.call({
1427block: function() {
1428i && i();
1429},
1430attributes: s
1431}, e);
1432break;
1433
1434case "self_closing":
1435a.bemto_custom_inline_tag.call({
1436attributes: s
1437}, e, !0);
1438break;
1439
1440default:
1441c ? n = n + "<" + e + o.attrs(s, !0) + "/>" : (n = n + "<" + e + o.attrs(s, !0) + ">", 
1442i && i(), n = n + "</" + e + ">");
1443}
1444}, a.bemto_tag = i = function(e, t) {
1445var i = this && this.block, o = this && this.attributes || {}, s = w();
1446t = t || {};
1447var l = e || s.default_tag, r = k.length;
1448e || ("inline" === k[r - 1] ? l = "span" : "list" === k[r - 1] ? l = "li" : "optionlist" === k[r - 1] && (l = "o
1448ption")), 
1449e && "span" != e && "div" != e || (o.href && (l = "a"), o.for && (l = "label"), 
1450o.type ? l = i ? "button" : "input" : o.src && (l = "img")), "list" === k[r - 1] && "li" !== l ? n += "<li>" : "list" !== k[r - 1] && "pseudo-list" !== k[r - 1] && "li" === l ? (n += "<ul>", 
1451k[k.length] = "pseudo-list") : "pseudo-list" === k[r - 1] && "li" !== l && (n += "</ul>", 
1452k = k.splice(0, k.length - 1));
1453var c, u, f = t.content_type || (u = "block", g[c = l] && (u = g[c].content_type || g[c].type || u), 
1454u);
1455k[k.length] = f, "img" == l && (o.alt && !o.title && (o.title = ""), o.title && !o.alt && (o.alt = o.title), 
1456o.alt || (o.alt = ""), "" === o.alt && (o.role = "presentation"), o.src || (!0 === s.nosrc_substitute ? o.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" : s.nosrc_substitute && (o.src = s.nosrc_substitute))), 
1457"input" == l && (o.type || (o.type = "text")), "main" == l && (o.role || (o.role = "main")), 
1458"html" == l && (n += "<!DOCTYPE html>"), a.bemto_custom_tag.call({
1459block: function() {
1460i && i && i();
1461},
1462attributes: o
1463}, l, t), "list" === k[r - 1] && "li" != l && (n += "</li>");
1464};
1465var x = [], k = [ "block" ];
1466a.b = i = function(t) {
1467var i = this && this.block, n = this && this.attributes || {}, o = w();
1468t && void 0 !== t.prefix && (o.prefix = t.prefix);
1469var s = t && t.tag || ("string" == typeof t ? t : ""), c = t && t.isElement, u = t && t.metadata, f = !1;
1470if (n.class) {
1471var p = n.class;
1472p instanceof e && (p = p.join(" ")), p = p.split(" ");
1473var m = [], d = !0, h = [];
1474if (function() {
1475var e = p;
1476if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
1477var n = e[t], a = {}, u = m[m.length - 1], _ = !1;
1478if (n.match(/^[A-Z-]+[A-Z0-9-]?$/)) s = n.toLowerCase(); else if (d && c && (a.context = x[x.length - 1]), 
1479(w = n.match(new r("^(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && u && u.name) u.modifiers || (u.modifiers = []), 
1480u.modifiers.push(w[1]); else {
1481(k = n.match(new r("^(?!" + o.modifier + "[A-Za-z0-9])" + o.element + "(.+)$"))) && (a.context = x[x.length - 1], 
1482n = k[1]), (A = n.match(new r("^(.*[A-Za-z0-9])(?!" + o.modifier + "$)" + o.element + "$"))) && (n = A[1], 
1483a.is_context = !0, _ = !0, f = !0, c = !1), (E = n.match(new r("^(.*?[A-Za-z0-9])(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && (n = E[1], 
1484a.modifiers || (a.modifiers = []), a.modifiers.push(E[2]));
1485var g = "", v = "()?";
1486if (o.prefix) {
1487"string" == typeof (O = o.prefix) && (O = {
1488"": O
1489});
1490var y = [];
1491O instanceof l && (function() {
1492var e = O;
1493if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
1494var n = e[t];
1495"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
1496} else {
1497i = 0;
1498for (var t in e) {
1499i++;
1500n = e[t];
1501"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
1502}
1503}
1504}.call(this), v = "(" + y.join("|") + ")?"), (Z = n.match(new r("^" + v + "([A-Za-z0-9]+.*)$"))) && (n = Z[2], 
1505g = Z[1] || "", void 0 !== (g = O[g]) && !0 !== g || (g = Z[1]));
1506}
1507a.prefix = (g || "").replace(/\-/g, "%DASH%").replace(/\_/g, "%UNDERSCORE%"), _ && n.match(/^[a-zA-Z0-9]+.*/) && h.push(a.context ? a.context + o.element + n : a.prefix + n), 
1508a.name = n, d = !1, a.context && a.context.length > 1 ? function() {
1509var e = a.context;
1510if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
1511var n = e[t];
1512(o = b(a)).context = [ n ], m.push(o);
1513} else {
1514i = 0;
1515for (var t in e) {
1516i++;
1517var o;
1518n = e[t];
1519(o = b(a)).context = [ n ], m.push(o);
1520}
1521}
1522}.call(this) : m.push(a);
1523}
1524} else {
1525i = 0;
1526for (var t in e) {
1527i++;
1528var w;
1529n = e[t], a = {}, u = m[m.length - 1], _ = !1;
1530if (n.match(/^[A-Z-]+[A-Z0-9-]?$/)) s = n.toLowerCase(); else if (d && c && (a.context = x[x.length - 1]), 
1531(w = n.match(new r("^(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && u && u.name) u.modifiers || (u.modifiers = []), 
1532u.modifiers.push(w[1]); else {
1533var k, A, E;
1534(k = n.match(new r("^(?!" + o.modifier + "[A-Za-z0-9])" + o.element + "(.+)$"))) && (a.context = x[x.length - 1], 
1535n = k[1]), (A = n.match(new r("^(.*[A-Za-z0-9])(?!" + o.modifier + "$)" + o.element + "$"))) && (n = A[1], 
1536a.is_context = !0, _ = !0, f = !0, c = !1), (E = n.match(new r("^(.*?[A-Za-z0-9])(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && (n = E[1], 
1537a.modifiers || (a.modifiers = []), a.modifiers.push(E[2]));
1538g = "", v = "()?";
1539if (o.prefix) {
1540var O;
1541"string" == typeof (O = o.prefix) && (O = {
1542"": O
1543});
1544var Z;
1545y = [];
1546O instanceof l && (function() {
1547var e = O;
1548if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
1549var n = e[t];
1550"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
1551} else {
1552i = 0;
1553for (var t in e) {
1554i++;
1555n = e[t];
1556"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
1557}
1558}
1559}.call(this), v = "(" + y.join("|") + ")?"), (Z = n.match(new r("^" + v + "([A-Za-z0-9]+.*)$"))) && (n = Z[2], 
1560g = Z[1] || "", void 0 !== (g = O[g]) && !0 !== g || (g = Z[1]));
1561}
1562a.prefix = (g || "").replace(/\-/g, "%DASH%").replace(/\_/g, "%UNDERSCORE%"), _ && n.match(/^[a-zA-Z0-9]+.*/) && h.push(a.context ? a.context + o.element + n : a.prefix + n), 
1563a.name = n, d = !1, a.context && a.context.length > 1 ? function() {
1564var e = a.context;
1565if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
1566var n = e[t];
1567(o = b(a)).context = [ n ], m.push(o);
1568} else {
1569i = 0;
1570for (var t in e) {
1571i++;
1572var o;
1573n = e[t];
1574(o = b(a)).context = [ n ], m.push(o);
1575}
1576}
1577}.call(this) : m.push(a);
1578}
1579}
1580}
1581}.call(this), !c && !h.length && m[0] && m[0].name && m[0].name.match(/^[a-zA-Z0-9]+.*/) && (m[0].is_context = !0, 
1582h.push(m[0].context ? m[0].context + o.element + m[0].name : m[0].prefix + m[0].name), 
1583f = !0), h.length && (o.flat_elements && function() {
1584var e = h;
1585if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
1586(n = e[t].match(new r("^(.*?[A-Za-z0-9])(?!" + o.modifier + "[A-Za-z0-9])" + o.element + ".+$"))) && (h[t] = n[1]);
1587} else {
1588i = 0;
1589for (var t in e) {
1590var n;
1591i++, (n = e[t].match(new r("^(.*?[A-Za-z0-9])(?!" + o.modifier + "[A-Za-z0-9])" + o.element + ".+$"))) && (h[t] = n[1]);
1592}
1593}
1594}.call(this), x[x.length] = h), m.length) {
1595var _ = [];
1596(function() {
1597var e = m;
1598if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
1599if ((a = e[t]).name) {
1600var n = a.prefix;
1601a.context && (n = a.context + o.output_element), _.push(n + a.name), a.modifiers && function() {
1602var e = a.modifiers;
1603if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
1604var s = e[t];
1605_.push(n + a.name + o.output_modifier + s);
1606} else {
1607i = 0;
1608for (var t in e) {
1609i++;
1610s = e[t];
1611_.push(n + a.name + o.output_modifier + s);
1612}
1613}
1614}.call(this);
1615}
1616} else {
1617i = 0;
1618for (var t in e) {
1619var a;
1620if (i++, (a = e[t]).name) {
1621n = a.prefix;
1622a.context && (n = a.context + o.output_element), _.push(n + a.name), a.modifiers && function() {
1623var e = a.modifiers;
1624if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
1625var s = e[t];
1626_.push(n + a.name + o.output_modifier + s);
1627} else {
1628i = 0;
1629for (var t in e) {
1630i++;
1631s = e[t];
1632_.push(n + a.name + o.output_modifier + s);
1633}
1634}
1635}.call(this);
1636}
1637}
1638}
1639}).call(this);
1640var g = o.class_delimiter;
1641g = g ? " " + g + " " : " ", n.class = _.join(g).replace(/%DASH%/g, "-").replace(/%UNDERSCORE%/g, "_");
1642} else n.class = void 0;
1643}
1644i ? a.bemto_tag.call({
1645block: function() {
1646i && i();
1647},
1648attributes: n
1649}, s, u) : a.bemto_tag.call({
1650attributes: n
1651}, s, u), !c && f && (x = x.splice(0, x.length - 1)), k = k.splice(0, k.length - 1);
1652}, a.e = i = function(e) {
1653var t = this && this.block, i = this && this.attributes || {};
1654(e = e && "string" == typeof e ? {
1655tag: e
1656} : e || {}).isElement = !0, a.b.call({
1657block: function() {
1658t && t();
1659},
1660attributes: i
1661}, e);
1662}, a.b.call({
1663block: function() {
1664a.e.call({
1665block: function() {
1666m ? a.e.call({
1667block: function() {
1668a.e.call({
1669block: function() {
1670n += o.escape(null == (i = _("auth.forgot_form.title")) ? "" : i);
1671},
1672attributes: {
1673class: "title"
1674}
1675}, "h4");
1676},
1677attributes: {
1678class: "line __header"
1679}
1680}) : h ? n += null == (i = h) ? "" : i : (n = n + "<p>" + (null == (i = _("auth.if_you_dont_have_account")) ? "" : i) + "&nbsp;", 
1681a.e.call({
1682block: function() {
1683n += o.escape(null == (i = _("auth.signup")) ? "" : i);
1684},
1685attributes: {
1686class: "button-link __register",
1687type: "button",
1688"data-switch": "register-form"
1689}
1690}, "button"), n += "</p>"), a.e.call({
1691block: function() {
1692a.e.call({
1693attributes: {
1694class: "line __notification",
1695"data-notification": o.escape(!0)
1696}
1697}), a.e.call({
1698block: function() {
1699a.e.call({
1700block: function() {
1701n += o.escape(null == (i = _("auth.email_field_label") + ":") ? "" : i);
1702},
1703attributes: {
1704class: "label",
1705for: "forgot-email"
1706}
1707}, "label"), a.b.call({
1708block: function() {
1709a.e.call({
1710attributes: {
1711class: "control",
1712id: "forgot-email",
1713name: "email",
1714type: "email",
1715autofocus: o.escape(!0)
1716}
1717}, "input");
1718},
1719attributes: {
1720class: "text-input __input"
1721}
1722}, "span");
1723},
1724attributes: {
1725class: "line"
1726}
1727}), a.e.call({
1728block: function() {
1729a.e.call({
1730attributes: {
1731class: "captcha"
1732}
1733});
1734},
1735attributes: {
1736class: "line"
1737}
1738}), a.e.call({
1739block: function() {
1740a.b.call({
1741block: function() {
1742a.e.call({
1743block: function() {
1744n += o.escape(null == (i = _("auth.forgot_form.do_recovery")) ? "" : i);
1745},
1746attributes: {
1747class: "text"
1748}
1749}, "span");
1750},
1751attributes: {
1752class: "button _action",
1753type: "submit"
1754}
1755}, "button"), m && a.e.call({
1756block: function() {
1757n += o.escape(null == (i = _("auth.forgot_form.cancel")) ? "" : i);
1758},
1759attributes: {
1760class: "close-link tablet-only modal__close",
1761href: "#"
1762}
1763}, "a");
1764},
1765attributes: {
1766class: "line"
1767}
1768}), a.e.call({
1769block: function() {
1770a.e.call({
1771block: function() {
1772n += o.escape(null == (i = _("auth.forgot_form.login")) ? "" : i);
1773},
1774attributes: {
1775class: "button-link",
1776type: "button",
1777"data-switch": "login-form"
1778}
1779}, "button"), n += o.escape(null == (i = " ") ? "" : i), a.e.call({
1780block: function() {
1781n += "/";
1782},
1783attributes: {
1784class: "separator"
1785}
1786}, "span"), n += o.escape(null == (i = " ") ? "" : i), a.e.call({
1787block: function() {
1788n += o.escape(null == (i = _("auth.forgot_form.registration")) ? "" : i);
1789},
1790attributes: {
1791class: "button-link",
1792"data-switch": "register-form"
1793}
1794}, "button");
1795},
1796attributes: {
1797class: "line __footer"
1798}
1799}), a.e.call({
1800block: function() {
1801a.e.call({
1802block: function() {
1803n += o.escape(null == (i = _("auth.login_form.login_using_socialnetworks")) ? "" : i);
1804},
1805attributes: {
1806class: "social-logins-title"
1807}
1808}, "h5"), n += o.escape(null == (i = " ") ? "" : i), function() {
1809var e = d;
1810if ("number" == typeof e.length) for (var t = 0, s = e.length; t < s; t++) {
1811let s = [ "social-login", "_" + (l = e[t]).id, "__social-login" ];
1812a.b.call({
1813block: function() {
1814n += o.escape(null == (i = l.name) ? "" : i);
1815},
1816attributes: {
1817class: o.classes([ s ], [ !0 ]),
1818"data-provider": o.escape(l.id)
1819}
1820}, "button"), n += o.escape(null == (i = " ") ? "" : i);
1821} else {
1822s = 0;
1823for (var t in e) {
1824var l;
1825s++;
1826let r = [ "social-login", "_" + (l = e[t]).id, "__social-login" ];
1827a.b.call({
1828block: function() {
1829n += o.escape(null == (i = l.name) ? "" : i);
1830},
1831attributes: {
1832class: o.classes([ r ], [ !0 ]),
1833"data-provider": o.escape(l.id)
1834}
1835}, "button"), n += o.escape(null == (i = " ") ? "" : i);
1836}
1837}
1838}.call(this);
1839},
1840attributes: {
1841class: "line __social-logins"
1842}
1843});
1844},
1845attributes: {
1846class: "body"
1847}
1848});
1849},
1850attributes: {
1851class: "form",
1852action: "#",
1853"data-form": "forgot"
1854}
1855}, "form");
1856},
1857attributes: {
1858class: o.classes([ [ "login-form", m ? "_modal" : "_inline" ] ], [ !0 ])
1859}
1860});
1861}.call(this, "Array" in s ? s.Array : "undefined" != typeof Array ? Array : void 0, "Date" in s ? s.Date : "undefined" != typeof Date ? Date : void 0, "Error" in s ? s.Error : "undefined" != typeof Error ? Error : void 0, "Object" in s ? s.Object : "undefined" != typeof Object ? Object : void 0, "RegExp" in s ? s.RegExp : "undefined" != typeof RegExp ? RegExp : void 0, "bemto_settings_default_tag" in s ? s.bemto_settings_default_tag : "undefined" != typeof bemto_settings_default_tag ? bemto_settings_default_tag : void 0, "bemto_settings_element" in s ? s.bemto_settings_element : "undefined" != typeof bemto_settings_element ? bemto_settings_element : void 0, "bemto_settings_modifier" in s ? s.bemto_settings_modifier : "undefined" != typeof bemto_settings_modifier ? bemto_settings_modifier : void 0, "bemto_settings_prefix" in s ? s.bemto_settings_prefix : "undefined" != typeof bemto_settings_prefix ? bemto_settings_prefix : void 0, "inModal" in s ? s.inModal : "undefined" != typeof inModal ? inModal : void 0, "providers" in s ? s.providers : [ {
1862name: "Github",
1863id: "github"
1864}, {
1865name: "Discord",
1866id: "discord"
1867}, {
1868name: "Facebook",
1869id: "facebook"
1870}, {
1871name: "Google",
1872id: "google"
1873} ], "subtitle" in s ? s.subtitle : "undefined" != typeof subtitle ? subtitle : void 0, "t" in s ? s.t : "undefined" != typeof t ? t : void 0), 
1874n;
1875};
1876},
18774629: function(e) {
1878e.exports = function() {
1879let e = document.cookie.match(/XSRF-TOKEN=([\w-]+)/);
1880return e ? e[1] : null;
1881};
1882},
18834766: function(e, t, i) {
1884var n = {
1885"./en.yml": 2296
1886};
1887function o(e) {
1888var t = a(e);
1889return i(t);
1890}
1891function a(e) {
1892if (!i.o(n, e)) {
1893var t = new Error("Cannot find module '" + e + "'");
1894throw t.code = "MODULE_NOT_FOUND", t;
1895}
1896return n[e];
1897}
1898o.keys = function() {
1899return Object.keys(n);
1900}, o.resolve = a, e.exports = o, o.id = 4766;
1901},
19025582: function(e, i, n) {
1903var o = n(7766);
1904e.exports = function(e) {
1905var i, n = "", a = {}, s = e || {};
1906return function(e, t, s, l, r, c, u, f, p, m, d, h, _) {
1907var b = function(i) {
1908var n;
1909if (null == i || "object" != typeof i) return i;
1910if (i instanceof t) return (n = new t).setTime(i.getTime()), n;
1911if (i instanceof e) {
1912n = [];
1913for (var o = 0, a = i.length; o < a; o++) n[o] = b(i[o]);
1914return n;
1915}
1916if (i instanceof l) {
1917for (var r in n = {}, i) i.hasOwnProperty(r) && (n[r] = b(i[r]));
1918return n;
1919}
1920throw new s("Unable to copy obj! Its type isn't supported.");
1921}, g = {
1922hr: {
1923type: "self_closing"
1924},
1925br: {
1926type: "self_closing"
1927},
1928wbr: {
1929type: "self_closing"
1930},
1931source: {
1932type: "self_closing"
1933},
1934img: {
1935type: "self_closing"
1936},
1937input: {
1938type: "self_closing"
1939},
1940a: {
1941type: "inline"
1942},
1943abbr: {
1944type: "inline"
1945},
1946acronym: {
1947type: "inline"
1948},
1949b: {
1950type: "inline"
1951},
1952code: {
1953type: "inline"
1954},
1955em: {
1956type: "inline"
1957},
1958font: {
1959type: "inline"
1960},
1961i: {
1962type: "inline"
1963},
1964ins: {
1965type: "inline"
1966},
1967kbd: {
1968type: "inline"
1969},
1970map: {
1971type: "inline"
1972},
1973pre: {
1974type: "inline"
1975},
1976samp: {
1977type: "inline"
1978},
1979small: {
1980type: "inline"
1981},
1982span: {
1983type: "inline"
1984},
1985strong: {
1986type: "inline"
1987},
1988sub: {
1989type: "inline"
1990},
1991sup: {
1992type: "inline"
1993},
1994textarea: {
1995type: "inline"
1996},
1997time: {
1998type: "inline"
1999},
2000label: {
2001content_type: "inline"
2002},
2003p: {
2004content_type: "inline"
2005},
2006h1: {
2007content_type: "inline"
2008},
2009h2: {
2010content_type: "inline"
2011},
2012h3: {
2013content_type: "inline"
2014},
2015h4: {
2016content_type: "inline"
2017},
2018h5: {
2019content_type: "inline"
2020},
2021h6: {
2022content_type: "inline"
2023},
2024ul: {
2025content_type: "list"
2026},
2027ol: {
2028content_type: "list"
2029},
2030select: {
2031content_type: "optionlist"
2032},
2033datalist: {
2034content_type: "optionlist"
2035}
2036}, v = [ "element", "modifier" ], y = {
2037prefix: "",
2038element: "__",
2039modifier: "_",
2040default_tag: "div",
2041nosrc_substitute: !0,
2042flat_elements: !0,
2043class_delimiter: ""
2044}, w = function() {
2045var e = b(y);
2046void 0 !== p && (e.prefix = p), void 0 !== u && (e.element = u), void 0 !== f && (e.modifier = f), 
2047void 0 !== c && (e.default_tag = c);
2048for (var t = 0; t < v.length; t++) {
2049var i = v[t];
2050void 0 === e["output_" + i] && (e["output_" + i] = e[i]);
2051}
2052return e;
2053};
2054a.bemto_custom_inline_tag = i = function(e, t) {
2055var a = this && this.block, s = this && this.attributes || {};
2056if (t = t || !1, n += (null == (i = "<") ? "" : i) + o.escape(null == (i = e) ? "" : i), 
2057s) for (var l in s) s.hasOwnProperty(l) && !1 !== s[l] && void 0 !== s[l] && (n += o.escape(null == (i = " ") ? "" : i) + o.escape(null == (i = l) ? "" : i) + (null == (i = '="') ? "" : i) + (null == (i = !0 === s[l] ? l : s[l]) ? "" : i) + (null == (i = '"') ? "" : i));
2058t ? n += null == (i = "/>") ? "" : i : (n += null == (i = ">") ? "" : i, a && a(), 
2059n += (null == (i = "</") ? "" : i) + o.escape(null == (i = e) ? "" : i) + (null == (i = ">") ? "" : i));
2060}, a.bemto_custom_tag = i = function(e, t) {
2061var i = this && this.block, s = this && this.attributes || {};
2062t = t || {};
2063var l, r, c = !1;
2064switch ("/" === (e = e || "div").substr(-1) && (c = !0, e = e.slice(0, -1)), t.type || (r = "block", 
2065g[l = e] && (r = g[l].type || r), r)) {
2066case "inline":
2067a.bemto_custom_inline_tag.call({
2068block: function() {
2069i && i();
2070},
2071attributes: s
2072}, e);
2073break;
2074
2075case "self_closing":
2076a.bemto_custom_inline_tag.call({
2077attributes: s
2078}, e, !0);
2079break;
2080
2081default:
2082c ? n = n + "<" + e + o.attrs(s, !0) + "/>" : (n = n + "<" + e + o.attrs(s, !0) + ">", 
2083i && i(), n = n + "</" + e + ">");
2084}
2085}, a.bemto_tag = i = function(e, t) {
2086var i = this && this.block, o = this && this.attributes || {}, s = w();
2087t = t || {};
2088var l = e || s.default_tag, r = k.length;
2089e || ("inline" === k[r - 1] ? l = "span" : "list" === k[r - 1] ? l = "li" : "optionlist" === k[r - 1] && (l = "o
2089ption")), 
2090e && "span" != e && "div" != e || (o.href && (l = "a"), o.for && (l = "label"), 
2091o.type ? l = i ? "button" : "input" : o.src && (l = "img")), "list" === k[r - 1] && "li" !== l ? n += "<li>" : "list" !== k[r - 1] && "pseudo-list" !== k[r - 1] && "li" === l ? (n += "<ul>", 
2092k[k.length] = "pseudo-list") : "pseudo-list" === k[r - 1] && "li" !== l && (n += "</ul>", 
2093k = k.splice(0, k.length - 1));
2094var c, u, f = t.content_type || (u = "block", g[c = l] && (u = g[c].content_type || g[c].type || u), 
2095u);
2096k[k.length] = f, "img" == l && (o.alt && !o.title && (o.title = ""), o.title && !o.alt && (o.alt = o.title), 
2097o.alt || (o.alt = ""), "" === o.alt && (o.role = "presentation"), o.src || (!0 === s.nosrc_substitute ? o.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" : s.nosrc_substitute && (o.src = s.nosrc_substitute))), 
2098"input" == l && (o.type || (o.type = "text")), "main" == l && (o.role || (o.role = "main")), 
2099"html" == l && (n += "<!DOCTYPE html>"), a.bemto_custom_tag.call({
2100block: function() {
2101i && i && i();
2102},
2103attributes: o
2104}, l, t), "list" === k[r - 1] && "li" != l && (n += "</li>");
2105};
2106var x = [], k = [ "block" ];
2107a.b = i = function(t) {
2108var i = this && this.block, n = this && this.attributes || {}, o = w();
2109t && void 0 !== t.prefix && (o.prefix = t.prefix);
2110var s = t && t.tag || ("string" == typeof t ? t : ""), c = t && t.isElement, u = t && t.metadata, f = !1;
2111if (n.class) {
2112var p = n.class;
2113p instanceof e && (p = p.join(" ")), p = p.split(" ");
2114var m = [], d = !0, h = [];
2115if (function() {
2116var e = p;
2117if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
2118var n = e[t], a = {}, u = m[m.length - 1], _ = !1;
2119if (n.match(/^[A-Z-]+[A-Z0-9-]?$/)) s = n.toLowerCase(); else if (d && c && (a.context = x[x.length - 1]), 
2120(w = n.match(new r("^(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && u && u.name) u.modifiers || (u.modifiers = []), 
2121u.modifiers.push(w[1]); else {
2122(k = n.match(new r("^(?!" + o.modifier + "[A-Za-z0-9])" + o.element + "(.+)$"))) && (a.context = x[x.length - 1], 
2123n = k[1]), (A = n.match(new r("^(.*[A-Za-z0-9])(?!" + o.modifier + "$)" + o.element + "$"))) && (n = A[1], 
2124a.is_context = !0, _ = !0, f = !0, c = !1), (E = n.match(new r("^(.*?[A-Za-z0-9])(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && (n = E[1], 
2125a.modifiers || (a.modifiers = []), a.modifiers.push(E[2]));
2126var g = "", v = "()?";
2127if (o.prefix) {
2128"string" == typeof (O = o.prefix) && (O = {
2129"": O
2130});
2131var y = [];
2132O instanceof l && (function() {
2133var e = O;
2134if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
2135var n = e[t];
2136"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
2137} else {
2138i = 0;
2139for (var t in e) {
2140i++;
2141n = e[t];
2142"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
2143}
2144}
2145}.call(this), v = "(" + y.join("|") + ")?"), (Z = n.match(new r("^" + v + "([A-Za-z0-9]+.*)$"))) && (n = Z[2], 
2146g = Z[1] || "", void 0 !== (g = O[g]) && !0 !== g || (g = Z[1]));
2147}
2148a.prefix = (g || "").replace(/\-/g, "%DASH%").replace(/\_/g, "%UNDERSCORE%"), _ && n.match(/^[a-zA-Z0-9]+.*/) && h.push(a.context ? a.context + o.element + n : a.prefix + n), 
2149a.name = n, d = !1, a.context && a.context.length > 1 ? function() {
2150var e = a.context;
2151if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
2152var n = e[t];
2153(o = b(a)).context = [ n ], m.push(o);
2154} else {
2155i = 0;
2156for (var t in e) {
2157i++;
2158var o;
2159n = e[t];
2160(o = b(a)).context = [ n ], m.push(o);
2161}
2162}
2163}.call(this) : m.push(a);
2164}
2165} else {
2166i = 0;
2167for (var t in e) {
2168i++;
2169var w;
2170n = e[t], a = {}, u = m[m.length - 1], _ = !1;
2171if (n.match(/^[A-Z-]+[A-Z0-9-]?$/)) s = n.toLowerCase(); else if (d && c && (a.context = x[x.length - 1]), 
2172(w = n.match(new r("^(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && u && u.name) u.modifiers || (u.modifiers = []), 
2173u.modifiers.push(w[1]); else {
2174var k, A, E;
2175(k = n.match(new r("^(?!" + o.modifier + "[A-Za-z0-9])" + o.element + "(.+)$"))) && (a.context = x[x.length - 1], 
2176n = k[1]), (A = n.match(new r("^(.*[A-Za-z0-9])(?!" + o.modifier + "$)" + o.element + "$"))) && (n = A[1], 
2177a.is_context = !0, _ = !0, f = !0, c = !1), (E = n.match(new r("^(.*?[A-Za-z0-9])(?!" + o.element + "[A-Za-z0-9])" + o.modifier + "(.+)$"))) && (n = E[1], 
2178a.modifiers || (a.modifiers = []), a.modifiers.push(E[2]));
2179g = "", v = "()?";
2180if (o.prefix) {
2181var O;
2182"string" == typeof (O = o.prefix) && (O = {
2183"": O
2184});
2185var Z;
2186y = [];
2187O instanceof l && (function() {
2188var e = O;
2189if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
2190var n = e[t];
2191"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
2192} else {
2193i = 0;
2194for (var t in e) {
2195i++;
2196n = e[t];
2197"string" == typeof t && "" != t && -1 == y.indexOf(t) && y.push(t), "string" == typeof n && "" != n && -1 == y.indexOf(n) && y.push(n);
2198}
2199}
2200}.call(this), v = "(" + y.join("|") + ")?"), (Z = n.match(new r("^" + v + "([A-Za-z0-9]+.*)$"))) && (n = Z[2], 
2201g = Z[1] || "", void 0 !== (g = O[g]) && !0 !== g || (g = Z[1]));
2202}
2203a.prefix = (g || "").replace(/\-/g, "%DASH%").replace(/\_/g, "%UNDERSCORE%"), _ && n.match(/^[a-zA-Z0-9]+.*/) && h.push(a.context ? a.context + o.element + n : a.prefix + n), 
2204a.name = n, d = !1, a.context && a.context.length > 1 ? function() {
2205var e = a.context;
2206if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
2207var n = e[t];
2208(o = b(a)).context = [ n ], m.push(o);
2209} else {
2210i = 0;
2211for (var t in e) {
2212i++;
2213var o;
2214n = e[t];
2215(o = b(a)).context = [ n ], m.push(o);
2216}
2217}
2218}.call(this) : m.push(a);
2219}
2220}
2221}
2222}.call(this), !c && !h.length && m[0] && m[0].name && m[0].name.match(/^[a-zA-Z0-9]+.*/) && (m[0].is_context = !0, 
2223h.push(m[0].context ? m[0].context + o.element + m[0].name : m[0].prefix + m[0].name), 
2224f = !0), h.length && (o.flat_elements && function() {
2225var e = h;
2226if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
2227(n = e[t].match(new r("^(.*?[A-Za-z0-9])(?!" + o.modifier + "[A-Za-z0-9])" + o.element + ".+$"))) && (h[t] = n[1]);
2228} else {
2229i = 0;
2230for (var t in e) {
2231var n;
2232i++, (n = e[t].match(new r("^(.*?[A-Za-z0-9])(?!" + o.modifier + "[A-Za-z0-9])" + o.element + ".+$"))) && (h[t] = n[1]);
2233}
2234}
2235}.call(this), x[x.length] = h), m.length) {
2236var _ = [];
2237(function() {
2238var e = m;
2239if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
2240if ((a = e[t]).name) {
2241var n = a.prefix;
2242a.context && (n = a.context + o.output_element), _.push(n + a.name), a.modifiers && function() {
2243var e = a.modifiers;
2244if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
2245var s = e[t];
2246_.push(n + a.name + o.output_modifier + s);
2247} else {
2248i = 0;
2249for (var t in e) {
2250i++;
2251s = e[t];
2252_.push(n + a.name + o.output_modifier + s);
2253}
2254}
2255}.call(this);
2256}
2257} else {
2258i = 0;
2259for (var t in e) {
2260var a;
2261if (i++, (a = e[t]).name) {
2262n = a.prefix;
2263a.context && (n = a.context + o.output_element), _.push(n + a.name), a.modifiers && function() {
2264var e = a.modifiers;
2265if ("number" == typeof e.length) for (var t = 0, i = e.length; t < i; t++) {
2266var s = e[t];
2267_.push(n + a.name + o.output_modifier + s);
2268} else {
2269i = 0;
2270for (var t in e) {
2271i++;
2272s = e[t];
2273_.push(n + a.name + o.output_modifier + s);
2274}
2275}
2276}.call(this);
2277}
2278}
2279}
2280}).call(this);
2281var g = o.class_delimiter;
2282g = g ? " " + g + " " : " ", n.class = _.join(g).replace(/%DASH%/g, "-").replace(/%UNDERSCORE%/g, "_");
2283} else n.class = void 0;
2284}
2285i ? a.bemto_tag.call({
2286block: function() {
2287i && i();
2288},
2289attributes: n
2290}, s, u) : a.bemto_tag.call({
2291attributes: n
2292}, s, u), !c && f && (x = x.splice(0, x.length - 1)), k = k.splice(0, k.length - 1);
2293}, a.e = i = function(e) {
2294var t = this && this.block, i = this && this.attributes || {};
2295(e = e && "string" == typeof e ? {
2296tag: e
2297} : e || {}).isElement = !0, a.b.call({
2298block: function() {
2299t && t();
2300},
2301attributes: i
2302}, e);
2303}, a.b.call({
2304block: function() {
2305a.e.call({
2306block: function() {
2307m ? a.e.call({
2308block: function() {
2309a.e.call({
2310block: function() {
2311n += o.escape(null == (i = _("auth.login_form.title")) ? "" : i);
2312},
2313attributes: {
2314class: "title"
2315}
2316}, "h4"), a.e.call({
2317block: function() {
2318n += "/";
2319},
2320attributes: {
2321class: "header-delimiter"
2322}
2323}), a.e.call({
2324block: function() {
2325a.e.call({
2326block: function() {
2327n += o.escape(null == (i = _("auth.login_form.registration_link")) ? "" : i);
2328},
2329attributes: {
2330class: "button-link __register",
2331type: "button",
2332"data-switch": "register-form"
2333}
2334}, "button");
2335},
2336attributes: {
2337class: "header-aside"
2338}
2339});
2340},
2341attributes: {
2342class: "line __header"
2343}
2344}) : h ? n = n + "<p>" + (null == (i = h) ? "" : i) + "</p>" : (n = n + "<p>" + o.escape(null == (i = _("auth.if_you_dont_have_account")) ? "" : i) + "&nbsp;", 
2345a.e.call({
2346block: function() {
2347n += o.escape(null == (i = _("auth.signup")) ? "" : i);
2348},
2349attributes: {
2350class: "button-link __register",
2351type: "button",
2352"data-switch": "register-form"
2353}
2354}, "button"), n += "</p>"), a.e.call({
2355block: function() {
2356a.e.call({
2357attributes: {
2358class: "line __notification",
2359"data-notification": o.escape(!0)
2360}
2361}), a.e.call({
2362block: function() {
2363a.e.call({
2364block: function() {
2365a.e.call({
2366block: function() {
2367n += o.escape(null == (i = _("auth.email_field_label") + ":") ? "" : i);
2368},
2369attributes: {
2370class: "label",
2371for: "auth-email"
2372}
2373}, "label"), a.b.call({
2374block: function() {
2375a.e.call({
2376attributes: {
2377class: "control",
2378id: "auth-email",
2379name: "email",
2380type: "email",
2381autofocus: o.escape(!0),
2382tabindex: "1"
2383}
2384}, "input");
2385},
2386attributes: {
2387class: "text-input __input"
2388}
2389}, "span");
2390},
2391attributes: {
2392class: "form-control"
2393}
2394}), a.e.call({
2395block: function() {
2396a.e.call({
2397block: function() {
2398n += o.escape(null == (i = _("auth.password_field_label") + ":") ? "" : i);
2399},
2400attributes: {
2401class: "label",
2402for: "auth-password"
2403}
2404}, "label"), a.e.call({
2405block: function() {
2406n += o.escape(null == (i = _("auth.login_form.forgot")) ? "" : i);
2407},
2408attributes: {
2409class: "aside __forgot __button-link",
2410type: "button",
2411"data-switch": "forgot-form",
2412tabindex: "4"
2413}
2414}, "button"), a.b.call({
2415block: function() {
2416a.e.call({
2417attributes: {
2418class: "control",
2419id: "auth-password",
2420type: "password",
2421name: "password",
2422tabindex: "2"
2423}
2424}, "input");
2425},
2426attributes: {
2427class: "text-input _with-aside __input"
2428}
2429}, "span");
2430},
2431attributes: {
2432class: "form-control"
2433}
2434}), a.e.call({
2435block: function() {
2436a.b.call({
2437block: function() {
2438a.e.call({
2439block: function() {
2440n += o.escape(null == (i = _("auth.login_form.login_button")) ? "" : i);
2441},
2442attributes: {
2443class: "text"
2444}
2445}, "span");
2446},
2447attributes: {
2448class: "button _action",
2449type: "submit",
2450tabindex: "3"
2451}
2452}, "button"), m && a.e.call({
2453block: function() {
2454n += o.escape(null == (i = _("auth.login_form.cancel")) ? "" : i);
2455},
2456attributes: {
2457class: "close-link tablet-only modal__close",
2458href: "#"
2459}
2460}, "a");
2461},
2462attributes: {
2463class: "form-control __submit"
2464}
2465});
2466},
2467attributes: {
2468class: "line __row __row-wrap"
2469}
2470}), a.e.call({
2471block: function() {
2472a.e.call({
2473block: function() {
2474n += o.escape(null == (i = _("auth.login_form.login_using_socialnetworks")) ? "" : i);
2475},
2476attributes: {
2477class: "social-logins-title"
2478}
2479}, "h5"), n += o.escape(null == (i = " ") ? "" : i), function() {
2480var e = d;
2481if ("number" == typeof e.length) for (var t = 0, s = e.length; t < s; t++) {
2482let s = [ "social-login", "_" + (l = e[t]).id, "__social-login" ];
2483a.b.call({
2484block: function() {
2485n += o.escape(null == (i = l.name) ? "" : i);
2486},
2487attributes: {
2488class: o.classes([ s ], [ !0 ]),
2489"data-provider": o.escape(l.id)
2490}
2491}, "button"), n += o.escape(null == (i = " ") ? "" : i);
2492} else {
2493s = 0;
2494for (var t in e) {
2495var l;
2496s++;
2497let r = [ "social-login", "_" + (l = e[t]).id, "__social-login" ];
2498a.b.call({
2499block: function() {
2500n += o.escape(null == (i = l.name) ? "" : i);
2501},
2502attributes: {
2503class: o.classes([ r ], [ !0 ]),
2504"data-provider": o.escape(l.id)
2505}
2506}, "button"), n += o.escape(null == (i = " ") ? "" : i);
2507}
2508}
2509}.call(this);
2510},
2511attributes: {
2512class: "line __social-logins"
2513}
2514});
2515},
2516attributes: {
2517class: "body"
2518}
2519});
2520},
2521attributes: {
2522class: "form",
2523action: "#"
2524}
2525}, "form");
2526},
2527attributes: {
2528class: o.classes([ [ "login-form", m ? "_modal" : "_inline" ] ], [ !0 ]),
2529"data-form": "login"
2530}
2531});
2532}.call(this, "Array" in s ? s.Array : "undefined" != typeof Array ? Array : void 0, "Date" in s ? s.Date : "undefined" != typeof Date ? Date : void 0, "Error" in s ? s.Error : "undefined" != typeof Error ? Error : void 0, "Object" in s ? s.Object : "undefined" != typeof Object ? Object : void 0, "RegExp" in s ? s.RegExp : "undefined" != typeof RegExp ? RegExp : void 0, "bemto_settings_default_tag" in s ? s.bemto_settings_default_tag : "undefined" != typeof bemto_settings_default_tag ? bemto_settings_default_tag : void 0, "bemto_settings_element" in s ? s.bemto_settings_element : "undefined" != typeof bemto_settings_element ? bemto_settings_element : void 0, "bemto_settings_modifier" in s ? s.bemto_settings_modifier : "undefined" != typeof bemto_settings_modifier ? bemto_settings_modifier : void 0, "bemto_settings_prefix" in s ? s.bemto_settings_prefix : "undefined" != typeof bemto_settings_prefix ? bemto_settings_prefix : void 0, "inModal" in s ? s.inModal : "undefined" != typeof inModal ? inModal : void 0, "providers" in s ? s.providers : [ {
2533name: "Github",
2534id: "github"
2535}, {
2536name: "Discord",
2537id: "discord"
2538}, {
2539name: "Facebook",
2540id: "facebook"
2541}, {
2542name: "Google",
2543id: "google"
2544} ], "subtitle" in s ? s.subtitle : "undefined" != typeof subtitle ? subtitle : void 0, "t" in s ? s.t : "undefined" != typeof t ? t : void 0), 
2545n;
2546};
2547},
25486188: function(e, t, i) {
2549var n = {
2550"./en.yml": 6526
2551};
2552function o(e) {
2553var t = a(e);
2554return i(t);
2555}
2556function a(e) {
2557if (!i.o(n, e)) {
2558var t = new Error("Cannot find module '" + e + "'");
2559throw t.code = "MODULE_NOT_FOUND", t;
2560}
2561return n[e];
2562}
2563o.keys = function() {
2564return Object.keys(n);
2565}, o.resolve = a, e.exports = o, o.id = 6188;
2566},
25676526: function(e, t, i) {
2568"use strict";
2569i.r(t), t.default = {
2570server_connection_error: "Server connection error.",
2571server_request_timeout: "Server request timeout.",
2572request_aborted: "Request was aborted.",
2573no_response: "No response from server.",
2574server_error: "Server error (code #{status}), try again later.",
2575invalid_format: "Invalid response format."
2576};
2577},
25788242: function(e, t, i) {
2579const n = i(9220).F, o = i(9907), a = i(773);
2580e.exports = function(e, t) {
2581return function(e) {
2582e.t = a, e.thumb = n, e.lang = o.lang, e.env = o.env;
2583}(t = t ? Object.create(t) : {}), e(t);
2584};
2585},
25869220: function(e, t) {
2587t.F = function(e, t, i) {
2588if (!e) return e;
2589let n = window.devicePixelRatio;
2590i *= n;
2591let o = (t *= n) <= 160 && i <= 160 ? "t" : t <= 320 && i <= 320 ? "m" : t <= 640 && i <= 640 ? "i" : t <= 1024 && i <= 1024 ? "h" : "";
2592return e.slice(0, e.lastIndexOf(".")) + o + e.slice(e.lastIndexOf("."));
2593};
2594}
2595} ]);
2596//# sourceMappingURL=authClient-616.e2bc65ff7d02701ced64.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.