PageSourceSearch

https://www.haibu.de/customer/account/login/

html haibu.de collected 2026-10-08 07:03:09 UTC 187,699 bytes, 2,598 lines download raw bytes

1<!doctype html>
2<html lang="de">
3<head >
4    <meta charset="utf-8"/>
5<meta name="title" content="Kundenanmeldung"/>
6<meta name="robots" content="INDEX,FOLLOW"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<meta name="google-site-verification" content="KQ2FLA6x2EXJfBqPg_ZqYxwrqew4jBB6COr5jc_U_Yo"/>
9<meta name="p:domain_verify" content="8527fcebf71fdeaf87590e738f1531dd"/>
10<meta name="facebook-domain-verification" content="08jgzit50g1qeijqwa7er4ba1jmavb"/>
11<title>Kundenanmeldung</title>
12        <link rel="stylesheet" type="text/css" media="all" href="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/css/styles.css" />
13<link rel="stylesheet" type="text/css" media="all" href="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/Amasty_Groupcat/js/fancybox/jquery.fancybox.css" />
14<link rel="stylesheet" type="text/css" media="all" href="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/Magedelight_Customerprice/css/custom.css" />
15<link rel="stylesheet" type="text/css" media="all" href="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/css/custom-overrides.css" />
16<script type="text/javascript" src="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/js/trim-inputs.js"></script>
vendor: 1 bytes, line 16
16
17<script type="text/javascript" src="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/MailPlus_MailPlus/js/set-mp-cookie.js"></script>
vendor: 1 bytes, line 17
17
18<script type="text/javascript" src="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/Smile_ElasticsuiteTracker/js/tracking.js"></script>
18
19<link rel="icon" type="image/png" href="https://www.haibu.de/media/favicon/stores/10/favicon.png" />
20<link rel="shortcut icon" type="image/png" href="https://www.haibu.de/media/favicon/stores/10/favicon.png" />
21<script type="speculationrules">
22{
23  "prerender": [{
24    "source": "document",
25    "where": {
26      "and": [
27        { "href_matches": "/*" },
28        { "not": { "href_matches": "/*(customer|login|logout|auth|cart|checkout|search|download|redirect|rewrite|store|productalert)/*" } },
29        { "not": { "href_matches": "*.pdf" } },
30        { "not": { "selector_matches": ".do-not-prerender" } },
31        { "not": { "selector_matches": "[rel=nofollow]" } },
32        { "not": { "selector_matches": "[target=_blank]" } },
33        { "not": { "selector_matches": "[target=_parent]" } },
34        { "not": { "selector_matches": "[target=_top]" } }
35      ]
36    },
37    "eagerness": "moderate"
38  }]
39}
40</script>
vendor: 2 bytes, line 40
40
41<script type="text/javascript">
42document.addEventListener('DOMContentLoaded', function () {
43    if (document.body.classList.contains('checkout-index-index') || document.body.classList.contains('customer-account-create') || document.body.classList.contains('customer-address-form')) {
44
45        let delay = 500;
46        if (document.body.classList.contains('checkout-index-index')) {
47            delay = 3000;
48        }
49
50        setTimeout(function () {
51            const select = document.querySelector('select[name="country_id"]');
52
53            if (select) {
54                const allowed = ["Deutschland", "Österreich"];
55
56                for (let i = select.options.length - 1; i >= 0; i--) {
57                    const optionText = select.options[i].text.trim();
58                    if (optionText && !allowed.includes(optionText)) {
59                        select.remove(i);
60                    }
61                }
62            }
63        }, delay);
64    }
65});
66</script>
66
67<meta name="facebook-domain-verification" content="xj1bkvmbtqvula19g7lp8lyzt2rgag" />
68<meta name="p:domain_verify" content="448fde442fd16ceebf305f009e4a60b9"/>
69<meta name="google-site-verification" content="jcNQF16ZkvOkv_-Ks6tdvaxRVCi_ZeH6WdTfnwGKMbQ" />
70<script type="text/javascript">
71  (function () { 
72    var _tsid = 'X58AE1F430672E02040339F5ADD541C04'; 
73    _tsConfig = { 
74      'yOffset': '0', /* offset from page bottom */
75      'variant': 'default', /* reviews, default, custom, custom_reviews */
76      'customElementId': '', /* required for variants custom and custom_reviews */
77      'trustcardDirection': 'bottomRight', /* for custom variants: topRight, topLeft, bottomRight, bottomLeft */
78      'customBadgeWidth': '50', /* for custom variants: 40 - 90 (in pixels) */
79      'customBadgeHeight': '100', /* for custom variants: 40 - 90 (in pixels) */
80      'disableResponsive': 'false', /* deactivate responsive behaviour */
81      'disableTrustbadge': 'false', /* deactivate trustbadge */
82    };
83    var _ts = document.createElement('script');
84    _ts.type = 'text/javascript'; 
85    _ts.charset = 'utf-8'; 
86    _ts.async = true; 
87    _ts.src = 'https://widgets.trustedshops.com/js/' + _tsid + '.js'; 
88    var __ts = document.getElementsByTagName('script')[0];
89    __ts.parentNode.insertBefore(_ts, __ts);
90  })();
91</script>
91
92<style>
93body #CybotCookiebotDialog {
94    top: 50% !important;
95    bottom: auto !important;
96}
97
98#CybotCookiebotDialog > div {
99    padding: 20px !important;
100}
101
102#CybotCookiebotDialogHeader {
103    display: none !important;
104}
105
106#CybotCookiebotDialogBody > div.CybotCookiebotScrollContainer {
107    min-height: 5vh !important;
108}
109
110@media screen and (min-width: 1280px) {
111    #CybotCookiebotDialog.CybotEdge .CybotCookiebotDialogBodyBottomWrapper {
112        padding-left: 1em !important;
113    }
114
115    body #CybotCookiebotDialog {
116        max-width: 60% !important;
117        min-width: 60% !important;
118    }
119}
120
121body.amblog-index-post ul {
122      list-style-type: disc !important;
123      padding-inline-start: 40px !important;
124      margin-block-start: 14px !important;
125      margin-block-end: 14px !important;
126}
127
128.comparison-table {
129    width: 100%;
130    text-align: left;
131    border: 1px solid #e5e9ef;
132    font-size: 14px;
133    border-radius: 8px;
134    border-spacing: 0;
135    border-collapse: separate;
136    overflow: hidden;
137    line-height: 24px;
138    margin-bottom: 30px;
139}
140
141.comparison-table thead {
142    background-color: #f2f4f6;
143}
144
145.comparison-table th,
146.comparison-table td {
147    padding: 8px;
148    vertical-align: top;
149}
150
151.comparison-table th:not(:first-child),
152.comparison-table td:not(:first-child) {
153    border-left: 1px solid #e5e9ef;
154}
155
156.comparison-table td {
157    border-top: 1px solid #e5e9ef;
158}
159
160@media only screen and (max-width: 991px) {
161      body.checkout-index-index header.page-header {
162          background-color: #fde7f2 !important;
163          border-bottom: none !important;
164      }
165}
166
167@media screen and (min-width:649px){#trustbadge-container-98e3dadd90eb493088abdc5597a70810{display:none!important}}body.checkout-index-index #trustbadge-container-98e3dadd90eb493088abdc5597a70810{display:none!important}
168
169body.customer-account-create .text-8xl {
170	font-size: 94px !important;
171}
172
173@media screen and (min-width: 1280px) {
174	body.customer-account-create .text-8xl {
175		font-size: 79px !important;
176	}
177}
178
179@media screen and (min-width: 1448px) {
180	body.customer-account-create .text-8xl {
181		font-size: 99px !important;
182	}
183}
184
185@media screen and (min-width: 1024px) {
186      body.amblog-index-category #maincontent > div.columns {
187	      grid-template-columns: repeat(3, minmax(0, 1fr));
188       }
189}
190</style>        
190<script>
191        //<![CDATA[
192        function userConsentEsTraking(config)
193        {
194            return config.cookieRestrictionEnabled == false || hyva.getCookie(config.cookieRestrictionName) !== null;
195        }
196
197        try {
198            smileTracker.setConfig({
199                beaconUrl     : 'https://www.haibu.de/elasticsuite/tracker/hit/image/h.png',
200                telemetryUrl     : 'https://t.elasticsuite.io/track',
201                telemetryEnabled : '',
202                sessionConfig : {"visit_cookie_name":"STUID","visit_cookie_lifetime":"3600","visitor_cookie_lifetime":"365","visitor_cookie_name":"STVID","domain":"haibu.de","path":"\/"},
203                endpointUrl : 'https://www.haibu.de/rest/V1/elasticsuite-tracker/hit'
204            });
205
206            smileTracker.addPageVar('store_id', '10');
207
208            document.addEventListener('DOMContentLoaded', function () {
209                if (userConsentEsTraking({"cookieRestrictionEnabled":"0","cookieRestrictionName":"user_allowed_save_cookie"})) {
210                    smileTracker.sendTag();
211                }
212            });
213        } catch (err) {
214            ;
215        }
216        //]]>
217    </script>
217
218    
218<script nonce="dWdnc21hMXp1MzJobjh5eTlld3Q1Zjh5NmswdGFjdG8=">
219    window.YIREO_GOOGLETAGMANAGER2_ENABLED = true;
220    (function (events) {
221        const initYireoGoogleTagManager2 = function () {
222            events.forEach(function (eventType) {
223                window.removeEventListener(eventType, initYireoGoogleTagManager2);
224            });
225
226                                                (function (w, d, s, l, i) {
227                        w[l] = w[l] || [];
228                        w[l].push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
229                        var f = d.getElementsByTagName(s)[0],
230                            j = d.createElement(s),
231                            dl = l != 'dataLayer' ? '&l=' + l : '';
232                        j.async = true;
233                        j.src = 'https\u003A\u002F\u002Fwww.googletagmanager.com' + '/gtm.js?id=' + i + dl;
234                        f.parentNode.insertBefore(j, f);
235                    })(window, document, 'script', 'dataLayer', 'GTM\u002DW24WV5T');
236                                    };
237
238        events.forEach(function (eventType) {
239            window.addEventListener(eventType, initYireoGoogleTagManager2, {once: true, passive: true})
240        });
241    })(['load', 'keydown', 'mouseover', 'scroll', 'touchstart', 'wheel']);
242
243    </script>
vendor: 1 bytes, line 243
243
244<script>
245    var BASE_URL = 'https://www.haibu.de/';
246    var THEME_PATH = 'https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE';
247    var COOKIE_CONFIG = {
248        "expires": null,
249        "path": "\u002F",
250        "domain": ".haibu.de",
251        "secure": true,
252        "lifetime": "254000",
253        "cookie_restriction_enabled": false    };
254    var CURRENT_STORE_CODE = 'haibu';
255    var CURRENT_WEBSITE_ID = '5';
256
257    window.hyva = window.hyva || {}
258
259    window.cookie_consent_groups = window.cookie_consent_groups || {}
260    window.cookie_consent_groups['necessary'] = true;
261
262    window.cookie_consent_config = window.cookie_consent_config || {};
263    window.cookie_consent_config['necessary'] = [].concat(
264        window.cookie_consent_config['necessary'] || [],
265        [
266            'user_allowed_save_cookie',
267            'form_key',
268            'mage-messages',
269            'private_content_version',
270            'mage-cache-sessid',
271            'last_visited_store',
272            'section_data_ids'
273        ]
274    );
275    //# sourceURL=hyva-variables.js
276</script>
vendor: 1 bytes, line 276
276
277<script>
278    (function( hyva, undefined ) {
279
280        function lifetimeToExpires(options, defaults) {
281
282            const lifetime = options.lifetime || defaults.lifetime;
283
284            if (lifetime) {
285                const date = new Date;
286                date.setTime(date.getTime() + lifetime * 1000);
287                return date;
288            }
289
290            return null;
291        }
292
293        function generateRandomString() {
294
295            const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
296                length = 16;
297
298            let formKey = '',
299                charactersLength = allowedCharacters.length;
300
301            for (let i = 0; i < length; i++) {
302                formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))]
303            }
304
305            return formKey;
306        }
307
308        const sessionCookieMarker = {noLifetime: true}
309
310        const cookieTempStorage = {};
311
312        const internalCookie = {
313            get(name) {
314                const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
315                return v ? v[2] : null;
316            },
317            set(name, value, days, skipSetDomain) {
318                let expires,
319                    path,
320                    domain,
321                    secure,
322                    samesite;
323
324                const defaultCookieConfig = {
325                    expires: null,
326                    path: '/',
327                    domain: null,
328                    secure: false,
329                    lifetime: null,
330                    samesite: 'lax'
331                };
332
333                const cookieConfig = window.COOKIE_CONFIG || {};
334
335                expires = days && days !== sessionCookieMarker
336                    ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig)
337                    : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires;
338
339                path = cookieConfig.path || defaultCookieConfig.path;
340                domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain);
341                secure = cookieConfig.secure || defaultCookieConfig.secure;
342                samesite = cookieConfig.samesite || defaultCookieConfig.samesite;
343
344                document.cookie = name + "=" + encodeURIComponent(value) +
345                    (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') +
346                    (path ? '; path=' + path : '') +
347                    (domain ? '; domain=' + domain : '') +
348                    (secure ? '; secure' : '') +
349                    (samesite ? '; samesite=' + samesite : 'lax');
350            },
351            isWebsiteAllowedToSaveCookie() {
352                const allowedCookies = this.get('user_allowed_save_cookie');
353                if (allowedCookies) {
354                    const allowedWebsites = JSON.parse(unescape(allowedCookies));
355
356                    return allowedWebsites[CURRENT_WEBSITE_ID] === 1;
357                }
358                return false;
359            },
360            getGroupByCookieName(name) {
361                const cookieConsentConfig = window.cookie_consent_config || {};
362                let group = null;
363                for (let prop in cookieConsentConfig) {
364                    if (!cookieConsentConfig.hasOwnProperty(prop)) continue;
365                    if (cookieConsentConfig[prop].includes(name)) {
366                        group = prop;
367                        break;
368                    }
369                }
370                return group;
371            },
372            isCookieAllowed(name) {
373                const cookieGroup = this.getGroupByCookieName(name);
374                return cookieGroup
375                    ? window.cookie_consent_groups[cookieGroup]
376                    : this.isWebsiteAllowedToSaveCookie();
377            },
378            saveTempStorageCookies() {
379                for (const [name, data] of Object.entries(cookieTempStorage)) {
380                    if (this.isCookieAllowed(name)) {
381                        this.set(name, data['value'], data['days'], data['skipSetDomain']);
382                        delete cookieTempStorage[name];
383                    }
384                }
385            }
386        };
387
388        hyva.getCookie = (name) => {
389            const cookieConfig = window.COOKIE_CONFIG || {};
390
391            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
392                return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null;
393            }
394
395            return internalCookie.get(name);
396        }
397
398        hyva.setCookie = (name, value, days, skipSetDomain) => {
399            const cookieConfig = window.COOKIE_CONFIG || {};
400
401            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
402                cookieTempStorage[name] = {value, days, skipSetDomain};
403                return;
404            }
405            return internalCookie.set(name, value, days, skipSetDomain);
406        }
407
408
409        hyva.setSessionCookie = (name, value, skipSetDomain) => {
410            return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain)
411        }
412
413        hyva.getBrowserStorage = () => {
414            const browserStorage = window.localStorage || window.sessionStorage;
415            if (!browserStorage) {
416                console.warn('Browser Storage is unavailable');
417                return false;
418            }
419            try {
420                browserStorage.setItem('storage_test', '1');
421                browserStorage.removeItem('storage_test');
422            } catch (error) {
423                console.warn('Browser Storage is not accessible', error);
424                return false;
425            }
426            return browserStorage;
427        }
428
429        hyva.postForm = (postParams) => {
430            const form = document.createElement("form");
431
432            let data = postParams.data;
433
434            if (! postParams.skipUenc && ! data.uenc) {
435                data.uenc = btoa(window.location.href);
436            }
437            form.method = "POST";
438            form.action = postParams.action;
439
440            Object.keys(postParams.data).map(key => {
441                const field = document.createElement("input");
442                field.type = 'hidden'
443                field.value = postParams.data[key];
444                field.name = key;
445                form.appendChild(field);
446            });
447
448            const form_key = document.createElement("input");
449            form_key.type = 'hidden';
450            form_key.value = hyva.getFormKey();
451            form_key.name="form_key";
452            form.appendChild(form_key);
453
454            document.body.appendChild(form);
455
456            form.submit();
457        }
458
459        hyva.getFormKey = function () {
460            let formKey = hyva.getCookie('form_key');
461
462            if (!formKey) {
463                formKey = generateRandomString();
464                hyva.setCookie('form_key', formKey);
465            }
466
467            return formKey;
468        }
469
470        hyva.formatPrice = (value, showSign, options = {}) => {
471            const groupSeparator = options.groupSeparator;
472            const decimalSeparator = options.decimalSeparator
473            delete options.groupSeparator;
474            delete options.decimalSeparator;
475            const formatter = new Intl.NumberFormat(
476                'de\u002DDE',
477                Object.assign({
478                    style: 'currency',
479                    currency: 'EUR',
480                    signDisplay: showSign ? 'always' : 'auto'
481                }, options)
482            );
483            return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ?
484                formatter.formatToParts(value).map(({type, value}) => {
485                    switch (type) {
486                        case 'currency':
487                            return '\u20AC' || value;
488                        case 'minusSign':
489                            return '- ';
490                        case 'plusSign':
491                            return '+ ';
492                        case 'group':
493                            return groupSeparator !== undefined ? groupSeparator : value;
494                        case 'decimal':
495                            return decimalSeparator !== undefined ? decimalSeparator : value;
496                        default :
497                            return value;
498                    }
499                }).reduce((string, part) => string + part) :
500                formatter.format(value);
501        }
502
503        const formatStr = function (str, nStart) {
504            const args = Array.from(arguments).slice(2);
505
506            return str.replace(/(%+)([0-9]+)/g, (m, p, n) => {
507                const idx = parseInt(n) - nStart;
508
509                if (args[idx] === null || args[idx] === void 0) {
510                    return m;
511                }
512                return p.length % 2
513                    ? p.slice(0, -1).replace('%%', '%') + args[idx]
514                    : p.replace('%%', '%') + n;
515            })
516        }
517
518        hyva.str = function (string) {
519            const args = Array.from(arguments);
520            args.splice(1, 0, 1);
521
522            return formatStr.apply(undefined, args);
523        }
524
525        hyva.strf = function () {
526            const args = Array.from(arguments);
527            args.splice(1, 0, 0);
528
529            return formatStr.apply(undefined, args);
530        }
531
532        /**
533         * Take a html string as `content` parameter and
534         * extract an element from the DOM to replace in
535         * the current page under the same selector,
536         * defined by `targetSelector`
537         */
538        hyva.replaceDomElement = (targetSelector, content) => {
539            // Parse the content and extract the DOM node using the `targetSelector`
540            const parser = new DOMParser();
541            const doc = parser.parseFromString(content, 'text/html');
542            const contentNode = doc.querySelector(targetSelector);
543
544            // Bail if content or target can't be found
545            if (!contentNode || !document.querySelector(targetSelector)) {
546                return;
547            }
548
549                        hyva.activateScripts(contentNode);
550            
551            // Replace the old DOM node with the new content
552            document.querySelector(targetSelector).replaceWith(contentNode);
553
554            // Reload customerSectionData and display cookie-messages if present
555            window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
556            hyva.initMessages();
557        }
558
559        hyva.removeScripts = (contentNode) => {
560            const scripts = contentNode.getElementsByTagName('script');
561            for (let i = 0; i < scripts.length; i++) {
562                scripts[i].parentNode.removeChild(scripts[i]);
563            }
564            const templates = contentNode.getElementsByTagName('template');
565            for (let i = 0; i < templates.length; i++) {
566                const container = document.createElement('div');
567                container.innerHTML = templates[i].innerHTML;
568                hyva.removeScripts(container);
569                templates[i].innerHTML = container.innerHTML;
570            }
571        }
572
573        hyva.activateScripts = (contentNode) => {
574            // Create new array from HTMLCollection to avoid mutation of collection while manipulating the DOM.
575            const scripts = Array.from(contentNode.getElementsByTagName('script'));
576
577            // Iterate over all script tags to duplicate+inject each into the head
578            for (const original of scripts) {
579                const script = document.createElement('script');
580                original.type && (script.type = original.type);
581                script.innerHTML = original.innerHTML;
582
583                // Remove the original (non-executing) script from the contentNode
584                original.parentNode.removeChild(original)
585
586                // Add script to head
587                document.head.appendChild(script);
588            }
589
590            return contentNode;
591        }
592
593        const replace = {['+']: '-', ['/']: '_', ['=']: ','};
594        hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]);
595
596        let currentTrap;
597
598        const focusableElements = (rootElement) => {
599            const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]';
600            return Array.from(rootElement.querySelectorAll(selector))
601                .filter(el => {
602                    return el.style.display !== 'none'
603                        && !el.disabled
604                        && el.tabIndex !== -1
605                        && (el.offsetWidth || el.offsetHeight || el.getClientRects().length)
606                })
607        }
608
609        const focusTrap = (e) => {
610            const isTabPressed = e.key === 'Tab' || e.keyCode === 9;
611            if (!isTabPressed) return;
612
613            const focusable = focusableElements(currentTrap)
614            const firstFocusableElement = focusable[0]
615            const lastFocusableElement = focusable[focusable.length - 1]
616
617            e.shiftKey
618                ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault())
619                : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault())
620        };
621
622        hyva.releaseFocus = (rootElement) => {
623            if (currentTrap && (!rootElement || rootElement === currentTrap)) {
624                currentTrap.removeEventListener('keydown', focusTrap)
625                currentTrap = null
626            }
627        }
628        hyva.trapFocus = (rootElement) => {
629            if (!rootElement) return;
630            hyva.releaseFocus()
631            currentTrap = rootElement
632            rootElement.addEventListener('keydown', focusTrap)
633            const firstElement = focusableElements(rootElement)[0]
634            firstElement && firstElement.focus()
635        }
636
637        hyva.safeParseNumber = (rawValue) => {
638            const number = rawValue ? parseFloat(rawValue) : null;
639
640            return Array.isArray(number) || isNaN(number) ? rawValue : number;
641        }
642
643        const toCamelCase = s => s.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join('');
644        hyva.createBooleanObject = (name, value = false, additionalMethods = {}) => {
645
646            const camelCase = toCamelCase(name);
647            const key = '__hyva_bool_' + name
648
649            return new Proxy(Object.assign(
650                additionalMethods,
651                {
652                    [key]: !!value,
653                    [name]() {return !!this[key]},
654                    ['!' + name]() {return !this[key]}, // @deprecated This does not work with non-CSP Alpine
655                    ['not' + camelCase]() {return !this[key]},
656                    ['toggle' + camelCase]() {this[key] = !this[key]},
657                    [`set${camelCase}True`]() {this[key] = true},
658                    [`set${camelCase}False`]() {this[key] = false},
659                }
660            ), {
661                set(target, prop, value) {
662                    return prop === name
663                        ? (target[key] = !!value)
664                        : Reflect.set(...arguments);
665                }
666            })
667        }
668
669                hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true})
670        window.addEventListener('alpine:init', () => Alpine.data('{}', () => ({})), {once: true});
671                window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies())
672
673    }( window.hyva = window.hyva || {} ));
674    //# sourceURL=hyva.js
675</script>
vendor: 1 bytes, line 675
675
676<script type="speculationrules">
677{
678    "tag": "Hyva Theme",
679    "prefetch": [{
680        "source": "document",
681        "where": {
682            "and": [
683                { "href_matches": "/*" },
684                { "not": {
685                    "href_matches": ["/customer/*","/search/*","/sales/*","/wishlist/*","/checkout/*","/paypal/*","/newsletter/*","/stores/store/redirect/*"]                }},
686                { "not": {
687                    "selector_matches": [".no-preload", ".do-not-prerender", "[download]", "[rel~=nofollow]", "[target]"]
688                }}
689            ]
690        },
691        "eagerness": "moderate"
692    }]
693}
694</script>
694
695
696<script type="speculationrules">
697{
698  "prerender": [{
699    "source": "document",
700    "where": {
701      "and": [
702        { "href_matches": "/*" },
703        { "not": { "href_matches": "/*(customer|login|logout|auth|cart|checkout|search|download|redirect|rewrite|store|productalert)/*" } },
704        { "not": { "href_matches": "*.pdf" } },
705        { "not": { "selector_matches": ".do-not-prerender" } },
706        { "not": { "selector_matches": "[rel=nofollow]" } },
707        { "not": { "selector_matches": "[target=_blank]" } },
708        { "not": { "selector_matches": "[target=_parent]" } },
709        { "not": { "selector_matches": "[target=_top]" } }
710      ]
711    },
712    "eagerness": "moderate"
713  }]
714}
715</script>
715
716</head>
717<body class="store-haibu customer-account-login page-layout-1column" id="html-body">
vendor: 68 bytes, lines 717-718
717
718<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
718GTM-W24WV5T
vendor: 83 bytes, line 718
718" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
719<input name="form_key" type="hidden" value="hUXXlkyxCzcpJ0RR" />
719<script nonce="dWdnc21hMXp1MzJobjh5eTlld3Q1Zjh5NmswdGFjdG8=">
720    function yireoGoogleTagManager2Pusher(eventData, message, callback) {
721        window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS = window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS || [];
722
723        function doCallback(cb) {
724            if (undefined === cb) {
725                return;
726            }
727
728            cb();
729        }
730
731
732        const copyEventData = Object.assign({}, eventData);
733        let metaData = {};
734        if (copyEventData.meta) {
735            metaData = copyEventData.meta;
736            delete copyEventData.meta;
737        }
738
739        const eventHash = btoa(encodeURIComponent(JSON.stringify(copyEventData)));
740        if (window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS.includes(eventHash)) {
741            yireoGoogleTagManager2Logger('Warning: Event already triggered', eventData);
742            doCallback(callback);
743            return;
744        }
745
746        if (metaData && metaData.allowed_pages && metaData.allowed_pages.length > 0
747            && false === metaData.allowed_pages.some(page => window.location.pathname.includes(page))) {
748            yireoGoogleTagManager2Logger('Warning: Skipping event, not in allowed pages', window.location.pathname, eventData);
749            doCallback(callback);
750            return;
751        }
752
753        if (metaData && metaData.allowed_events && metaData.allowed_events.length > 0) {
754            for (const [allowedEventKey, allowedEvent] of Object.entries(metaData.allowed_events)) {
755                window.addEventListener(allowedEvent, function () {
756                    const eventDataCopy = Object.assign({}, eventData);
757                    eventDataCopy.meta.allowed_events = false;
758                    yireoGoogleTagManager2Pusher(eventDataCopy, 'push (allowed event "' + eventData.event + '") [script-pusher]');
759                });
760            }
761
762            yireoGoogleTagManager2Logger('Warning: Skipping event, not in allowed events', window.location.pathname, eventData);
763            doCallback(callback);
764            return;
765        }
766
767        if (!message) {
768            message = 'push (unknown) [unknown]';
769        }
770
771        yireoGoogleTagManager2Logger(message, eventData);
772        window.dataLayer = window.dataLayer || [];
773
774        if (eventData.ecommerce) {
775            window.dataLayer.push({ecommerce: null});
776        }
777
778        try {
779            window.dataLayer.push(eventData);
780            window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS.push(eventHash);
781        } catch(error) {
782            doCallback(callback);
783        }
784
785        doCallback(callback);
786    }
787</script>
vendor: 1 bytes, line 787
787
788<script nonce="dWdnc21hMXp1MzJobjh5eTlld3Q1Zjh5NmswdGFjdG8=">
789    function yireoGoogleTagManager2Logger(...args) {
790        const debug = window.YIREO_GOOGLETAGMANAGER2_DEBUG || false;
791        if (false === debug) {
792            return;
793        }
794
795        var color = 'gray';
796        if (args[0].toLowerCase().startsWith('push')) {
797            color = 'green';
798        }
799
800        if (args[0].toLowerCase().startsWith('warning')) {
801            color = 'orange';
802        }
803
804        var css = 'color:white; background-color:' + color + '; padding:1px;'
805        console.log('%cYireo_GoogleTagManager2', css, ...args);
806    }
807</script>
807
808<div class="page-wrapper"><div class="absolute-page-header"><div class="bg-pink-lightest lg:bg-white"><div class="container"><section aria-label="Onze&#x20;voordelen">
809    <ul role="list" class="relative&#x20;lg&#x3A;flex&#x20;justify-center&#x20;md&#x3A;justify-between&#x20;items-end&#x20;md&#x3A;items-center&#x20;h-&#x5B;30px&#x5D;&#x20;md&#x3A;h-&#x5B;50px&#x5D; list-none m-0 p-0">
810        
811<li class="absolute&#x20;lg&#x3A;relative&#x20;inset-0&#x20;flex&#x20;items-center&#x20;justify-center">
812    <a href="https://www.haibu.de/versand"
813       class="flex items-center text-black hover:no-underline focus:no-underline"
814    >
815                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 15" class="fill-current h-4, w-4" width="24" height="24" aria-hidden="true">
816    <path d="M13.3333 1.66667V5H17.1L14.65 1.66667H13.3333ZM15 10C15.3523 9.99954 15.7007 10.0735 16.0224 10.2172C16.3441 10.3608 16.6318 10.5707 16.8667 10.8333H18.3333V6.66667H13.3333C12.8913 6.66667 12.4674 6.49107 12.1548 6.17851C11.8423 5.86595 11.6667 5.44203 11.6667 5V1.66667H1.66667V10.8333H3.13333C3.36786 10.5701 3.65542 10.3594 3.97713 10.2152C4.29884 10.0709 4.64743 9.99633 5 9.99633C5.35257 9.99633 5.70116 10.0709 6.02287 10.2152C6.34458 10.3594 6.63214 10.5701 6.86667 10.8333H13.1333C13.3682 10.5707 13.6559 10.3608 13.9776 10.2172C14.2993 10.0735 14.6477 9.99954 15 10ZM5 11.6667C4.83518 11.6667 4.67407 11.7155 4.53702 11.8071C4.39998 11.8987 4.29317 12.0288 4.2301 12.1811C4.16703 12.3334 4.15052 12.5009 4.18268 12.6626C4.21483 12.8242 4.2942 12.9727 4.41074 13.0893C4.52729 13.2058 4.67577 13.2852 4.83742 13.3173C4.99908 13.3495 5.16663 13.333 5.3189 13.2699C5.47117 13.2068 5.60132 13.1 5.69289 12.963C5.78446 12.8259 5.83333 12.6648 5.83333 12.5C5.83333 12.279 5.74554 12.067 5.58926 11.9107C5.43297 11.7545 5.22101 11.6667 5 11.6667ZM15 11.6667C14.8352 11.6667 14.6741 11.7155 14.537 11.8071C14.4 11.8987 14.2932 12.0288 14.2301 12.1811C14.167 12.3334 14.1505 12.5009 14.1827 12.6626C14.2148 12.8242 14.2942 12.9727 14.4107 13.0893C14.5273 13.2058 14.6758 13.2852 14.8374 13.3173C14.9991 13.3495 15.1666 13.333 15.3189 13.2699C15.4712 13.2068 15.6013 13.1 15.6929 12.963C15.7845 12.8259 15.8333 12.6648 15.8333 12.5C15.8333 12.279 15.7455 12.067 15.5893 11.9107C15.433 11.7545 15.221 11.6667 15 11.6667ZM15 15C14.337 15 13.7011 14.7366 13.2322 14.2678C12.7634 13.7989 12.5 13.163 12.5 12.5H7.5C7.5 13.163 7.23661 13.7989 6.76777 14.2678C6.29893 14.7366 5.66304 15 5 15C4.33696 15 3.70107 14.7366 3.23223 14.2678C2.76339 13.7989 2.5 13.163 2.5 12.5H1.66667C1.22464 12.5 0.800716 12.3244 0.488155 12.0118C0.175595 11.6993 0 11.2754 0 10.8333V1.66667C0 1.22464 0.175595 0.800716 0.488155 0.488155C0.800716 0.175595 1.22464 0 1.66667 0L14.65 0C14.9116 0.000629168 15.1693 0.0628144 15.4024 0.181526C15.6355 0.300237 15.8373 0.472141 15.9917 0.683333L20 6.13333V10.8333C20 11.2754 19.8244 11.6993 19.5118 12.0118C19.1993 12.3244 18.7754 12.5 18.3333 12.5H17.5C17.5 13.163 17.2366 13.7989 16.7678 14.2678C16.2989 14.7366 15.663 15 15 15Z"/>
817</svg>
818        <div class="usp-item text-3xs font-semibold ml-3.5">
819            Lieferung innerhalb von <strong>1-2 Tagen</strong>*        </div>
820    </a>
821</li>
822
823<li class="hidden&#x20;lg&#x3A;flex&#x20;lg&#x3A;relative&#x20;inset-0&#x20;items-center&#x20;justify-center">
824    <a href="https://www.haibu.de/versand"
825       class="flex items-center text-black hover:no-underline focus:no-underline"
826    >
827                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" class="fill-current h-4, w-4" width="24" height="24" aria-hidden="true">
828    <g clip-path="url(#clip0_349_382)">
829        <path d="M5.20686 1.61454C5.10771 1.61157 5.00974 1.63676 4.92432 1.6872C4.78449 1.7796 4.68384 1.92052 4.64178 2.08276C4.57523 2.44809 4.64718 2.82512 4.84359 3.14028C4.93999 3.33608 5.08472 3.50407 5.26411 3.62838C5.44351 3.75268 5.65163 3.82919 5.86882 3.85067C5.96674 3.8514 6.06348 3.82929 6.15136 3.78609C6.24138 3.72258 6.31577 3.63942 6.36892 3.54292C6.42206 3.44642 6.45257 3.3391 6.45812 3.22907C6.47771 2.92138 6.4046 2.61488 6.24823 2.34916C6.15048 2.14898 6.00379 1.97671 5.82175 1.8483C5.63972 1.71989 5.42823 1.63949 5.20686 1.61454ZM9.32392 1.61454C9.10658 1.63902 8.89885 1.71761 8.71975 1.84313C8.54064 1.96864 8.39587 2.13708 8.29869 2.33301C8.1335 2.60156 8.05461 2.9143 8.07265 3.22907C8.07577 3.34187 8.10511 3.45239 8.15835 3.55188C8.2116 3.65136 8.28729 3.73708 8.37941 3.80223C8.46729 3.84544 8.56404 3.86755 8.66196 3.86681C8.88079 3.84375 9.09002 3.76481 9.26956 3.63758C9.44909 3.51035 9.59291 3.3391 9.68719 3.14028C9.87803 2.82298 9.9442 2.44609 9.87286 2.08276C9.8308 1.92052 9.73014 1.7796 9.59031 1.6872C9.50916 1.64068 9.41745 1.61567 9.32392 1.61454ZM1.61453 5.50556V7.92736H6.45812V5.50556H1.61453ZM8.07265 5.50556V7.92736H12.9162V5.50556H8.07265ZM2.4218 9.54189V14.3855H6.45812V9.54189H2.4218ZM8.07265 9.54189V14.3855H12.109V9.54189H8.07265ZM12.109 16H2.4218C1.9936 16 1.58293 15.8299 1.28015 15.5271C0.977367 15.2243 0.807265 14.8137 0.807265 14.3855V9.47731C0.571084 9.39256 0.366811 9.23
829699 0.222333 9.03183C0.0778546 8.82667 0.000210584 8.58192 0 8.33099L0 5.10193C0 4.78078 0.127576 4.47278 0.354664 4.2457C0.581751 4.01861 0.889748 3.89103 1.2109 3.89103H3.39859C3.02362 3.31618 2.88883 2.61729 3.02314 1.94422C3.15745 1.27116 3.55016 0.677526 4.11705 0.290628C4.44527 0.0990389 4.81875 -0.00129856 5.19879 1.26889e-05C5.59608 0.0113039 5.98628 0.107991 6.34287 0.283503C6.69947 0.459015 7.0141 0.709238 7.26539 1.01717C7.51667 0.709238 7.83131 0.459015 8.1879 0.283503C8.5445 0.107991 8.9347 0.0113039 9.33199 1.26889e-05C9.71203 -0.00129856 10.0855 0.0990389 10.4137 0.290628C10.984 0.67478 11.3795 1.26864 11.514 1.94295C11.6486 2.61726 11.5113 3.31742 11.1322 3.89103H13.3199C13.641 3.89103 13.949 4.01861 14.1761 4.2457C14.4032 4.47278 14.5308 4.78078 14.5308 5.10193V8.33099C14.5306 8.58192 14.4529 8.82667 14.3084 9.03183C14.164 9.23699 13.9597 9.39256 13.7235 9.47731V14.3855C13.7235 14.8137 13.5534 15.2243 13.2506 15.5271C12.9478 15.8299 12.5372 16 12.109 16Z"/>
830    </g>
831    <defs>
832        <clipPath id="clip0_349_382">
833            <rect width="14.5308" height="16" fill="white"/>
834        </clipPath>
835    </defs>
836</svg>
837        <div class="usp-item text-3xs font-semibold ml-3.5">
838            <strong>Versandkostenfrei </strong>ab 50&euro;* <em>(inkl. MwSt.)</em>        </div>
839    </a>
840</li>
841
842<li class="hidden&#x20;lg&#x3A;flex&#x20;lg&#x3A;relative&#x20;inset-0&#x20;items-center&#x20;justify-center">
843    <a href="https://www.haibu.de/service-kontakt"
844       class="flex items-center text-black hover:no-underline focus:no-underline"
845    >
846                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20" class="fill-current h-4, w-4" width="24" height="24" aria-hidden="true">
847    <g clip-path="url(#clip0_349_372)">
848        <path d="M2.26215 2.36612C1.81145 3.0335 1.64678 3.56223 1.78546 3.87426C2.83134 5.74513 3.98909 7.55121 5.25241 9.2827L6.92521 9.69875L2.26215 2.36612ZM13.7464 2.36612L9.07476 9.74207L10.7476 9.32603C12.013 7.59596 13.1708 5.78974 14.2145 3.91759C14.3619 3.56222 14.1972 3.0335 13.7464 2.36612ZM4.06499 14.3618C3.72214 14.3618 3.38698 14.4635 3.10191 14.6539C2.81684 14.8444 2.59465 15.1151 2.46344 15.4319C2.33224 15.7486 2.29795 16.0972 2.36484 16.4335C2.43172 16.7697 2.59683 17.0786 2.83926 17.321C3.08169 17.5634 3.39052 17.7285 3.72679 17.7954C4.06305 17.8623 4.41162 17.828 4.72837 17.6968C5.04512 17.5656 5.31586 17.3434 5.50634 17.0583C5.69682 16.7733 5.79846 16.4381 5.79846 16.0953C5.79846 15.6355 5.61581 15.1946 5.29071 14.8695C4.96562 14.5444 4.52473 14.3618 4.06499 14.3618ZM11.8656 14.3618C11.5228 14.3618 11.1876 14.4635 10.9026 14.6539C10.6175 14.8444 10.3953 15.1151 10.2641 15.4319C10.1329 15.7486 10.0986 16.0972 10.1655 16.4335C10.2324 16.7697 10.3975 17.0786 10.6399 17.321C10.8823 17.5634 11.1912 17.7285 11.5274 17.7954C11.8637 17.8623 12.2123 17.828 12.529 17.6968C12.8458 17.5656 13.1165 17.3434 13.307 17.0583C13.4975 16.7733 13.5991 16.4381 13.5991 16.0953C13.5991 15.6355 13.4165 15.1946 13.0914 14.8695C12.7663 14.5444 12.3254 14.3618 11.8656 14.3618ZM11.8656 19.5622C10.9461 19.5622 10.0643 19.1969 9.41413 18.5468C8.76395 17.8966 8.39868 17.0148 8.39868 16.0953C8.39566 15.6358 8.48632 15.1806 8.66515 14.7574C8.84397 14.3341 9.10722 13.9518 9.43878 13.6337L8.286 11.8222L8.00864 11.7529L7.7226 11.8222L6.52655 13.7031C7.15069 14.3427 7.4992 15.2016 7.49729 16.0953C7.49729 16.781 7.29395 17.4513 6.91299 18.0214C6.53204 18.5915 5.99056 19.0359 5.35705 19.2983C4.72355 19.5607 4.02646 19.6294 3.35394 19.4956C2.68141 19.3618 2.06369 19.0316 1.57882 18.5468C1.09396 18.0619 0.763756 17.4442 0.629983 16.7716C0.49621 16.0991 0.564847 15.402 0.827253 14.7685C1.08966 14.135 1.53405 13.5936 2.10419 13.2126C2.67433 12.8316 3.34464 12.6283 4.03034 12.6283C4.37647 12.6292 4.72076 12.6788 5.05308 12.7757L6.0325 11.2502L4.84507 10.9555C4.43241 10.8537 4.07148 10.6039 3.83095 10.2534C2.49916 8.44019 1.28886 6.54077 0.207987 4.56764C-0.312056 3.41488 0.207998 1.96742 1.68145 0.285947C1.77062 0.184316 1.88233 0.104961 2.00765 0.0542118C2.13296 0.00346301 2.26843 -0.0172567 2.40319 -0.00630761C2.53795 0.00464149 2.66823 0.0469569 2.78371 0.11727C2.89919 0.187584 2.99662 0.283935 3.06822 0.398627L8.00864 8.14727L12.9404 0.398627C13.012 0.283935 13.1094 0.187584 13.2249 0.11727C13.3404 0.0469569 13.4707 0.00464149 13.6055 -0.00630761C13.7402 -0.0172567 13.8757 0.00346301 14.001 0.0542118C14.1263 0.104961 14.238 0.184316 14.3272 0.285947C15.844 2.01942 16.3207 3.41488 15.8093 4.56764C14.7205 6.53799 13.5075 8.43709 12.1777 10.2534C11.9392 10.6021 11.5817 10.8518 11.1723 10.9555L9.97615 11.2502L10.9382 12.7497C11.2402 12.6662 11.5524 12.6254 11.8656 12.6283C12.7851 12.6283 13.667 12.9936 14.3171 13.6438C14.9673 14.294 15.3326 15.1758 15.3326 16.0953C15.3326 17.0148 14.9673 17.8966 14.3171 18.5468C13.667 19.1969 12.7851 19.5622 11.8656 19.5622Z"/>
849    </g>
850    <defs>
851        <clipPath id="clip0_349_372">
852            <rect width="16" height="19.5363"/>
853        </clipPath>
854    </defs>
855</svg>
856        <div class="usp-item text-3xs font-semibold ml-3.5">
857            <strong>Professionelle</strong> Beratung        </div>
858    </a>
859</li>
860
861<li class="hidden&#x20;lg&#x3A;flex&#x20;lg&#x3A;relative&#x20;inset-0&#x20;items-center&#x20;justify-center">
862    <a href="https://www.haibu.de/sicheres-zahlen"
863       class="flex items-center text-black hover:no-underline focus:no-underline"
864    >
865                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 14" class="fill-current h-4, w-4" width="24" height="24" aria-hidden="true">
866    <g clip-path="url(#clip0_349_376)">
867        <path d="M7.2 9.9H4.5C4.2613 9.9 4.03239 9.80518 3.8636 9.6364C3.69482 9.46761 3.6 9.23869 3.6 9C3.6 8.7613 3.69482 8.53239 3.8636 8.3636C4.03239 8.19482 4.2613 8.1 4.5 8.1H7.2C7.43869 8.1 7.66761 8.19482 7.8364 8.3636C8.00518 8.53239 8.1 8.7613 8.1 9C8.1 9.23869 8.00518 9.46761 7.8364 9.6364C7.66761 9.80518 7.43869 9.9 7.2 9.9ZM10.8 9.9H9.9C9.6613 9.9 9.43239 9.80518 9.2636 9.6364C9.09482 9.46761 9 9.23869 9 9C9 8.7613 9.09482 8.53239 9.2636 8.3636C9.43239 8.19482 9.6613 8.1 9.9 8.1H10.8C11.0387 8.1 11.2676 8.19482 11.4364 8.3636C11.6052 8.53239 11.7 8.7613 11.7 9C11.7 9.23869 11.6052 9.46761 11.4364 9.6364C11.2676 9.80518 11.0387 9.9 10.8 9.9ZM1.8 1.8V3.6H16.2V1.8H1.8ZM1.8 6.3V11.7H16.2V6.3H1.8ZM16.2 13.5H1.8C1.32261 13.5 0.864773 13.3104 0.527208 12.9728C0.189642 12.6352 0 12.1774 0 11.7V1.8C0 1.32261 0.189642 0.864773 0.527208 0.527208C0.864773 0.189642 1.32261 0 1.8 0L16.2 0C16.6774 0 17.1352 0.189642 17.4728 0.527208C17.8104 0.864773 18 1.32261 18 1.8V11.7C18 12.1774 17.8104 12.6352 17.4728 12.9728C17.1352 13.3104 16.6774 13.5 16.2 13.5Z"/>
868    </g>
869    <defs>
870        <clipPath id="clip0_349_376">
871            <rect width="18" height="13.5"/>
872        </clipPath>
873    </defs>
874</svg>
875        <div class="usp-item text-3xs font-semibold ml-3.5">
876            <strong>Sicheres </strong>Zahlen        </div>
877    </a>
878</li>
879
880<li class="hidden&#x20;lg&#x3A;flex&#x20;lg&#x3A;relative&#x20;inset-0&#x20;items-center&#x20;justify-center">
881    <a href="https://www.haibu.de/ruecksendung"
882       class="flex&#x20;lg&#x3A;hidden&#x20;xl&#x3A;flex items-center text-black hover:no-underline focus:no-underline"
883    >
884                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" class="fill-current h-4, w-4" width="24" height="24" aria-hidden="true">
885    <g clip-path="url(#clip0_349_368)">
886        <path d="M7.17008 8.21085C6.98964 8.21085 6.81328 8.15735 6.66325 8.0571C6.51322 7.95686 6.39626 7.81437 6.3272 7.64766C6.25815 7.48096 6.24011 7.29751 6.27531 7.12054C6.31051 6.94357 6.3974 6.78103 6.52499 6.65344C6.65258 6.52585 6.81515 6.43896 6.99212 6.40375C7.16909 6.36855 7.35251 6.3866 7.51922 6.45565C7.68592 6.5247 7.82841 6.64164 7.92866 6.79167C8.0289 6.9417 8.0824 7.11809 8.0824 7.29853C8.0824 7.54049 7.98627 7.77253 7.81518 7.94362C7.64408 8.11471 7.41205 8.21085 7.17008 8.21085ZM7.70837 11.3218C7.52903 11.3211 7.35389 11.2675 7.20483 11.1678C7.05577 11.0681 6.9394 10.9266 6.87028 10.7611C6.80117 10.5956 6.78236 10.4134 6.81622 10.2373C6.85007 10.0612 6.93507 9.89897 7.06061 9.7709L9.64248 7.18906C9.81701 7.03959 10.0415 6.96149 10.2711 6.97036C10.5007 6.97923 10.7185 7.07441 10.881 7.23689C11.0435 7.39937 11.1387 7.61718 11.1475 7.84679C11.1564 8.0764 11.0783 8.3009 10.9288 8.47543L8.34695 11.0573C8.17702 11.2258 7.94771 11.3208 7.70837 11.3218ZM10.8193 11.8601C10.6389 11.8601 10.4625 11.8066 10.3125 11.7064C10.1625 11.6061 10.0455 11.4636 9.97647 11.2969C9.90742 11.1302 9.88937 10.9468 9.92457 10.7698C9.95977 10.5928 10.0467 10.4303 10.1743 10.3027C10.3018 10.1751 10.4644 10.0882 10.6414 10.053C10.8184 10.0178 11.0018 10.0359 11.1685 10.1049C11.3352 10.174 11.4777 10.2909 11.5779 10.4409C11.6782 10.591 11.7317 10.7674 11.7317 10.9478C11.7317 11.1898 11.6355 11.4218 11.4644 11.5929C11.2933 11.764 11.0613 11.8601 10.8193 11.8601ZM8.99472 14.9437C9.09744 14.9449 9.19924 14.9634 9.2958 14.9985L11.4032 15.7283L12.5345 13.8125C12.6443 13.638 12.8075 13.5036 12.9998 13.4293L15.089 12.6356L14.7241 10.4369C14.6867 10.2325 14.7257 10.0215 14.8336 9.8439L15.9192 7.90066L14.2314 6.45008C14.0752 6.31571 13.9691 6.13242 13.9303 5.93006L13.5107 3.73137H11.2846C11.079 3.7211 10.8816 3.64783 10.719 3.52153L8.99472 2.08921L7.27043 3.50329C7.10786 3.62959 6.9104 3.70286 6.70479 3.71313H4.47874L4.05911 5.91182C4.02036 6.11418 3.91423 6.29745 3.75803 6.43182L2.07021 7.88243L3.15587 9.82564C3.25852 10.
8860052 3.29712 10.2143 3.26534 10.4187L2.90045 12.6173L4.98963 13.4111C5.18192 13.4854 5.3451 13.6198 5.45492 13.7942L6.58619 15.7101L8.69364 14.9802C8.79125 14.9514 8.89303 14.939 8.99472 14.9437ZM11.8047 17.7537C11.7018 17.754 11.5997 17.7355 11.5036 17.6989L8.99472 16.7866L6.48585 17.6989C6.38969 17.7355 6.28763 17.754 6.18477 17.7537C6.02644 17.7536 5.87085 17.7124 5.73329 17.634C5.59572 17.5557 5.48093 17.4428 5.40019 17.3066L4.04998 15.0167L1.55932 14.1044C1.36407 14.0296 1.20044 13.89 1.09581 13.709C0.991178 13.528 0.951897 13.3165 0.984551 13.11L1.41337 10.4916L0.108763 8.17435C0.00507736 7.9904 -0.0315758 7.77619 0.00502501 7.56823C0.0416258 7.36027 0.149187 7.17144 0.309446 7.03395L2.32569 5.30055L2.81832 2.69134C2.85908 2.48049 2.97295 2.29076 3.13983 2.15559C3.30671 2.02041 3.51591 1.94846 3.73063 1.95237H6.3855L8.44735 0.273684C8.59286 0.122148 8.78618 0.0254849 8.99472 0C9.20474 0.00169778 9.40776 0.0758226 9.56948 0.209843L11.6313 1.8885H14.2861C14.5009 1.8846 14.7101 1.95657 14.877 2.09175C15.0439 2.22692 15.1577 2.41662 15.1985 2.62748L15.6911 5.23669L17.7073 6.97011C17.8676 7.1076 17.9752 7.2964 18.0118 7.50436C18.0484 7.71232 18.0118 7.92656 17.9081 8.1105L16.6035 10.4278L17.0322 13.0461C17.0649 13.2526 17.0256 13.4641 16.921 13.6451C16.8163 13.8261 16.6527 13.9658 16.4575 14.0406L13.9669 14.9529L12.5892 17.334C12.5052 17.4651 12.3889 17.5725 12.2516 17.646C12.1142 17.7194 11.9604 17.7565 11.8047 17.7537Z"/>
887    </g>
888    <defs>
889        <clipPath id="clip0_349_368">
890            <rect width="18" height="17.7537" fill="white"/>
891        </clipPath>
892    </defs>
893</svg>
894        <div class="usp-item text-3xs font-semibold ml-3.5">
895            <strong>Einfache </strong>R&uuml;cksendung        </div>
896    </a>
897</li>
898    </ul>
899</section>
900</div></div></div><header class="page-header bg-pink-lightest lg:bg-white sticky top-0 z-30">
901
902<div id="header"
903     class="w-full"
904     x-data="initHeader()"
905     @keydown.window.escape="searchOpen = false;"
906     @private-content-loaded.window="getData(event.detail.data)"
907     @scroll.window="scrolAtTop = (window.pageYOffset > 90) ? false : true"
908     :class="{ '': !scrolAtTop }"
909>
910    <div class="container">
911
912        <div class="flex flex-wrap md:justify-between items-center py-2.5 lg:py-0 lg:h-[90px] relative"
913             :class="{ 'lg:h-[70px] mt-8': !scrolAtTop }"
914
915        >
916
917            
918            
919<div class="lg:flex w-full lg:w-auto items-center gap-7">
920    <div class="flex items-center justify-between gap-5">
921        <div class="block lg:hidden w-20"></div>
922        <a href="https://www.haibu.de/"
923           title="Haibu.de&#x20;-&#x20;Hair&#x20;&amp;&#x20;Beauty&#x20;Professionals"
924           aria-label="store logo">
925            <img class="mx-auto&#x20;lg&#x3A;mx-0&#x20;w-28&#x20;lg&#x3A;w-40"
926                 src="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/images/logo.svg"
927                 title="Haibu.de&#x20;-&#x20;Hair&#x20;&amp;&#x20;Beauty&#x20;Professionals"
928                 alt="Haibu.de&#x20;-&#x20;Hair&#x20;&amp;&#x20;Beauty&#x20;Professionals"
929            />
930        </a>
931
932        <a href="https://www.haibu.de/" class="lg:hidden w-20 min-w-0 btn btn-tertiary h-10 my-auto text-blue hover:bg-gray hover:no-underline focus:no-underline border-gray-lighter">
933            Zurück        </a>
934    </div>
935
936    <div class="text-center mt-7 lg:mt-0 header-page-title">
937            <div>
938        <h1 class="text-2xl font-bold mb-0">
939            Kundenanmeldung        </h1>
940            </div>
941    </div>
942</div>
943
944            
945<div class="hidden w-[100px] lg:block">
946
947                <a href="https://www.trustedshops.de/bewertung/info_X58AE1F430672E02040339F5ADD541C04.html" target="_blank" class="text-black hover:no-underline no-underline">
948        <div class="h-5 w-full flex" style="
949        background: transparent url('https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/images/trustedshops_star_grey-1x.png');
950        background-size: contain;">
951        <span class="inline-block bg-auto h-5"
952              style="
953                  background: transparent url('https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/images/trustedshops_star_yellow-1x.png');
954                  width: 90%;
955                  background-size: contain;
956                  "></span>
957    </div>
958    <span class="flex justify-center leading-5 text-3xs">Gut</span>
959    <div class="flex justify-center block"
960         :class="{ 'block': scrolAtTop, 'hidden': !scrolAtTop }"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 370 369" fill="none" class="h-7 w-7 fill-current" role="img">
961<path d="M185 6.7941e-06C148.596 8.13744e-06 113.01 10.7956 82.7421 31.0215C52.4742 51.2474 28.8841 79.995 14.9552 113.629C1.02638 147.262 -2.6155 184.271 4.49016 219.975C11.5958 255.678 29.1299 288.473 54.8747 314.211C80.6196 339.949 113.419 357.474 149.124 364.57C184.83 371.666 221.838 368.014 255.468 354.076C289.097 340.138 317.839 316.54 338.056 286.266C358.274 255.993 369.06 220.404 369.05 184C369.05 159.833 364.289 135.902 355.039 113.575C345.789 91.2475 332.231 70.9613 315.14 53.8747C298.049 36.788 277.759 23.2357 255.429 13.9918C233.099 4.7479 209.167 -0.006
96156044 185 6.7941e-06V6.7941e-06ZM183.48 299.43C160.537 299.43 138.11 292.627 119.034 279.88C99.9578 267.134 85.0898 249.018 76.31 227.821C67.5302 206.625 65.2331 183.301 69.7089 160.8C74.1848 138.298 85.2328 117.629 101.456 101.406C117.679 85.1827 138.348 74.1348 160.85 69.6589C183.351 65.183 206.675 67.4802 227.871 76.26C249.068 85.0398 267.184 99.9078 279.931 118.984C292.677 138.06 299.48 160.487 299.48 183.43C299.467 214.186 287.24 243.679 265.487 265.422C243.734 287.165 214.236 299.38 183.48 299.38V299.43Z" fill="black"/>
962<path d="M233.88 219.82C217 244.76 193.55 267.49 162 267.49C128.63 267.49 109.2 246.59 109.2 212.86C109.2 158.23 149.53 104.7 206.36 104.7C225.42 104.7 251.09 112.4 251.09 135.5C251.09 176.93 186.19 190.86 154.29 198.93C153.19 205.93 152.1 212.86 152.1 219.82C152.1 234.12 159.79 247.32 175.56 247.32C196.09 247.32 212.56 227.52 224.69 212.86L233.88 219.82ZM216.28 130.73C216.28 122.3 211.51 115.73 202.71 115.73C176.31 115.73 162.71 167.06 157.62 187.22C182.18 179.86 216.28 159.7 216.28 130.73Z" fill="black"/>
963<title>trustedshops-logo</title></svg>
964</div>
965            </a>
966    </div>
967
968
969            
970            
971            
972                    </div>
973
974    </div>
975
976    <!--Main Navigation-->
977    
978    <!--Minimalistic Header Border-->
979    
980<div class="lg:border-t border-gray">
981
982</div>
983
984    <!--Cart Drawer-->
985    
986    <!--Authentication Pop-Up-->
987    </div>
988
989<script>
990    function initHeader() {
991        return {
992            searchOpen: false,
993            loginOpen: false,
994            cart: {},
995            scrolAtTop: true,
996            customer: {},
997            getData(data) {
998                if (data.cart) {
999                    this.cart = data.cart
1000                }
1001                if (data.customer) {
1002                    this.customer = data.customer
1003                }
1004            },
1005            toggleLoginMenu(e) {
1006                if (window.innerWidth < 1024) {
1007                    return
1008                }
1009                e.preventDefault()
1010                this.loginOpen = !this.loginOpen
1011            }
1012        }
1013    }
1014
1015    function initCompareHeader() {
1016        return {
1017            compareProducts: null,
1018            itemCount: 0,
1019            receiveCompareData(data) {
1020                if (data['compare-products']) {
1021                    this.compareProducts = data['compare-products'];
1022                    this.itemCount = this.compareProducts.count;
1023                }
1024            }
1025        }
1026    }
1027</script>
1027
1028</header><main id="maincontent" class="page-main"><div class="page messages">
1028<script>
1029        window.defaultSuccessMessageTimeout = 8000;
1030        function initMessages() {
1031        "use strict";
1032        return {
1033            messages: window.mageMessages || [],
1034            isEmpty() {
1035                return this.messages.reduce(
1036                    function (isEmpty, message) {
1037                        return isEmpty && message === undefined
1038                    }, true
1039                )
1040            },
1041            hasMessages() {
1042                return !this.isEmpty();
1043            },
1044            hasMessage() {
1045                return !!this.message;
1046            },
1047            removeMessage() {
1048                this.messages[this.index] = undefined;
1049            },
1050            addMessages(messages, hideAfter) {
1051                messages.map((message) => {
1052                    const isDuplicate = this.messages.some(
1053                        existing => existing && existing.type === message.type && existing.text === message.text
1054                    );
1055                    if (isDuplicate) {
1056                        return;
1057                    }
1058                    this.messages = this.messages.concat(message);
1059                    if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) {
1060                        hideAfter = window.defaultSuccessMessageTimeout;
1061                    }
1062                    if (hideAfter) {
1063                        this.setHideTimeOut(this.messages.length -1, hideAfter);
1064                    }
1065                });
1066            },
1067            setHideTimeOut(messageIndex, hideAfter) {
1068                setTimeout((messageIndex) => {
1069                    this.removeMessage(messageIndex);
1070                }, hideAfter, messageIndex);
1071            },
1072            eventListeners: {
1073                ['@messages-loaded.window'](event) {
1074                    this.addMessages(event.detail.messages, event.detail.hideAfter)
1075                },
1076                ['@private-content-loaded.window'](event) {
1077                    const data = event.detail.data;
1078                    if (
1079                        data.messages &&
1080                        data.messages.messages &&
1081                        data.messages.messages.length
1082                    ) {
1083                        this.addMessages(data.messages.messages);
1084                    }
1085                },
1086                ['@clear-messages.window']() {
1087                    this.messages = [];
1088                }
1089            },
1090            getMessageUiId() {
1091                return 'message-' + this.message.type;
1092            }
1093        }
1094    }
1095
1096    window.addEventListener('alpine:init', () => Alpine.data('initMessages', initMessages), {once: true})
1097</script>
1097
1098
1099<section id="messages"
1100         x-data="initMessages"
1101         x-bind="eventListeners"
1102         aria-live="assertive"
1103         role="alert"
1104>
1105    <template x-if="hasMessages">
1106        <div class="w-full">
1107            <div role="alert" class="messages container mx-auto py-3">
1108                <template x-for="(message, index) in messages" :key="index">
1109                    <div>
1110                        <template x-if="hasMessage">
1111                            <div class="message"
1112                                 :class="message.type"
1113                                 :ui-id="getMessageUiId"
1114                            >
1115                                <span x-html="message.text"></span>
1116                                <button
1117                                    type="button"
1118                                    class="text-gray-600 hover:text-black"
1119                                    aria-label="Close message"
1120                                    @click.prevent="removeMessage"
1121                                >
1122                                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current" width="18" height="18" aria-hidden="true">
1123  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
1124</svg>
1125                                </button>
1126                            </div>
1127                        </template>
1128                    </div>
1129                </template>
1130            </div>
1131        </div>
1132    </template>
1133</section>
1134</div><div class="columns"><div class="column main">
1135<div class="md:container md:flex md:gap-10 xl:gap-40 md:py-16">
1136    <div class="w-full md:w-1/2 py-5 md:py-10 xl:py-20 px-6 lg:px-16">
1137    <div aria-labelledby="block-customer-login-heading">
1138        <form class="form form-login"
1139              action="https://www.haibu.de/customer/account/loginPost/"
1140              method="post"
1141              x-data="initCustomerLoginForm"
1142              @submit.prevent="submitForm"
1143              id="customer-login-form">
1144            <input name="form_key" type="hidden" value="hUXXlkyxCzcpJ0RR" />            <input type="hidden" name="login" value="login">
1145            <fieldset class="fieldset login">
1146                <legend class="mb-3 justify-center w-full flex">
1147                    <h2 class="text-2xl md:text-3xl lg:text-4xl font-bold title-font text-black mb-0">
1148                        Anmelden                    </h2>
1149                </legend>
1150                                <div class="field email required">
1151                    <label class="block text-2xs font-medium required mb-0" for="email"><span>E-Mail</span></label>
1152                    <div class="control">
1153                        <input name="login[username]"
1154                               class="form-input w-full"
1155                               required
1156                               value=""
1157                               autocomplete="off"
1158                               id="email"
1159                               type="email"
1160                               title="E-Mail"/>
1161                    </div>
1162                </div>
1163                <div class="field password required">
1164                    <label for="pass" class="label">
1165                        <span>
1166                            Passwort                        </span>
1167                    </label>
1168                    <div class="control flex items-center">
1169                        <input name="login[password]"
1170                               class="form-input w-full"
1171                               required
1172                               type="password"
1173                               autocomplete="off"
1174                               id="pass"
1175                               title="Passwort"
1176                        />
1177                    </div>
1178                </div>
1179
1180                
1181
1182                                <div class="flex flex-col">
1183                    <div class="pt-6 pb-4 flex justify-center">
1184                        <button type="submit" class="btn btn-secondary h-12 w-full" name="send"
1185                                                    >
1186                        <span>Anmelden</span>
1187                        </button>
1188                    </div>
1189                    <div class="flex justify-center">
1190                        <a class="text-blue text-2xs font-semibold" href="https://www.haibu.de/customer/account/forgotpassword/"><span>Passwort vergessen?</span>
1191                        </a>
1192                    </div>
1193                </div>
1194
1195                <div>
1196                    <template x-if="displayErrorMessage">
1197                        <p class="text-red flex items-center">
1198                                    <span class="inline-block w-8 h-8 mr-3">
1199                                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
1200                                             stroke="currentColor">
1201                                          <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
1202                                                d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/>
1203                                        </svg>
1204                                    </span>
1205                            <template x-for="errorMessage in errorMessages">
1206                                <span x-html="errorMessage"></span>
1207                            </template>
1208                        </p>
1209                    </template>
1210                </div>
1211            </fieldset>
1212        </form>
1213    </div>
1214    <div class="w-full">
1215            </div>
1216    
1216<script>
1217        function initCustomerLoginForm() {
1218            return {
1219                errors: 0,
1220                hasCaptchaToken: 0,
1221                displayErrorMessage: false,
1222                errorMessages: [],
1223                setErrorMessages(messages) {
1224                    this.errorMessages = [messages]
1225                    this.displayErrorMessage = this.errorMessages.length
1226                },
1227                submitForm() {
1228                    // do not rename $form, the variable is the expected name in the recaptcha output
1229                    const $form = document.querySelector('#customer-login-form');
1230                    
1231                    if (this.errors === 0) {
1232                        $form.submit();
1233                    }
1234                }
1235            }
1236        }
1237        window.addEventListener('alpine:init', () => {
1238            Alpine.data('initCustomerLoginForm', initCustomerLoginForm);
1239        }, {once: true});
1240    </script>
1240
1241    </div>
1242
1243        <div class="flex flex-col gap-10 w-full md:w-1/2 md:my-8 md:my-0 bg-gray-lighter rounded py-10 xl:py-20 px-6 lg:px-16">
1244        <div class="block-title">
1245            <h2 class="text-2xl md:text-3xl lg:text-4xl text-center font-bold title-font mb-0 text-black" role="heading" aria-level="2">
1246                Registrieren            </h2>
1247
1248                    </div>
1249        <div class="[&>div>ul>li>div]:bg-green [&>div>ul>li>div>svg]:text-white [&>div>ul]:flex [&>div>ul]:flex-col [&>div>ul]:p-0 [&>div>ul]:m-0 [&>div>ul]:border-0 [&>div>ul]:font-normal [&>div>ul]:text-xs mt-auto">
1250            <div><ul class="lg:flex lg:flex-col lg:text-xs lg:gap-y-2 lg:p-0 lg:m-0 lg:border-0 font-semibold grid grid-cols-2 gap-2.5 gap-x-2 text-2xs py-8 mb-7 border-b border-gray"><li class="flex flex-row items-center leading-4">
1251    <div class="mr-3.5 rounded-full bg-black h-6 w-6 flex justify-center items-center">
1252        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 10 9" class="fill-current h-3 w-3" role="img">
1253    <path d="M3.31823 8.14482L0.136507 5.03584C0.0935037 4.99665 0.0591472 4.9489 0.0356421 4.89568C0.012137 4.84246 0 4.78491 0 4.72673C0 4.66855 0.012137 4.61106 0.0356421 4.55784C0.0591472 4.50461 0.0935037 4.45687 0.136507 4.41768L0.772849 3.79042C0.86137 3.71057 0.976355 3.66636 1.09557 3.66636C1.21478 3.66636 1.32976 3.71057 1.41828 3.79042L3.6364 5.97215L8.58172 1.12687C8.66821 1.04301 8.78395 0.996094 8.90443 0.996094C9.02491 0.996094 9.14065 1.04301 9.22715 1.12687L9.86349 1.75413C9.9065 1.79332 9.94085 1.84101 9.96436 1.89423C9.98786 1.94745 10 2.005 10 2.06318C10 2.12136 9.98786 2.17891 9.96436 2.23213C9.94085 2.28535 9.9065 2.3331 9.86349 2.37229L3.95457 8.14482C3.86961 8.2281 3.75538 8.27477 3.6364 8.27477C3.51743 8.27477 3.4032 8.2281 3.31823 8.14482Z"/>
1254<title>moma-check-mark</title></svg>
1255    </div>
1256    <p>Persönliche Beratung</p></li>
1257<li class="flex flex-row items-center leading-4">
1258    <div class="mr-3.5 rounded-full bg-black h-6 w-6 flex justify-center items-center">
1259        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 10 9" class="fill-current h-3 w-3" role="img">
1260    <path d="M3.31823 8.14482L0.136507 5.03584C0.0935037 4.99665 0.0591472 4.9489 0.0356421 4.89568C0.012137 4.84246 0 4.78491 0 4.72673C0 4.66855 0.012137 4.61106 0.0356421 4.55784C0.0591472 4.50461 0.0935037 4.45687 0.136507 4.41768L0.772849 3.79042C0.86137 3.71057 0.976355 3.66636 1.09557 3.66636C1.21478 3.66636 1.32976 3.71057 1.41828 3.79042L3.6364 5.97215L8.58172 1.12687C8.66821 1.04301 8.78395 0.996094 8.90443 0.996094C9.02491 0.996094 9.14065 1.04301 9.22715 1.12687L9.86349 1.75413C9.9065 1.79332 9.94085 1.84101 9.96436 1.89423C9.98786 1.94745 10 2.005 10 2.06318C10 2.12136 9.98786 2.17891 9.96436 2.23213C9.94085 2.28535 9.9065 2.3331 9.86349 2.37229L3.95457 8.14482C3.86961 8.2281 3.75538 8.27477 3.6364 8.27477C3.51743 8.27477 3.4032 8.2281 3.31823 8.14482Z"/>
1261<title>moma-check-mark</title></svg>
1262    </div>
1263    <p>Extra Rabatt auf alle Marken speziell für Friseure (PROFI)</p></li>
1264<li class="flex flex-row items-center leading-4">
1265    <div class="mr-3.5 rounded-full bg-black h-6 w-6 flex justify-center items-center">
1266        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 10 9" class="fill-current h-3 w-3" role="img">
1267    <path d="M3.31823 8.14482L0.136507 5.03584C0.0935037 4.99665 0.0591472 4.9489 0.0356421 4.89568C0.012137 4.84246 0 4.78491 0 4.72673C0 4.66855 0.012137 4.61106 0.0356421 4.55784C0.0591472 4.50461 0.0935037 4.45687 0.136507 4.41768L0.772849 3.79042C0.86137 3.71057 0.976355 3.66636 1.09557 3.66636C1.21478 3.66636 1.32976 3.71057 1.41828 3.79042L3.6364 5.97215L8.58172 1.12687C8.66821 1.04301 8.78395 0.996094 8.90443 0.996094C9.02491 0.996094 9.14065 1.04301 9.22715 1.12687L9.86349 1.75413C9.9065 1.79332 9.94085 1.84101 9.96436 1.89423C9.98786 1.94745 10 2.005 10 2.06318C10 2.12136 9.98786 2.17891 9.96436 2.23213C9.94085 2.28535 9.9065 2.3331 9.86349 2.37229L3.95457 8.14482C3.86961 8.2281 3.75538 8.27477 3.6364 8.27477C3.51743 8.27477 3.4032 8.2281 3.31823 8.14482Z"/>
1268<title>moma-check-mark</title></svg>
1269    </div>
1270    <p>Ab einem Bestellwert von 200,00 € (inkl. MwSt.) 7,5 % Rechnungsrabatt</p></li>
1271</ul></div>        </div>
1272        <div class="mt-auto pt-4 flex justify-center flex-col">
1273            <a href="https://www.haibu.de/customer/account/create/"
1274               class="btn btn-primary hover:no-underline h-12 w-full mb-4"><span>Kundenkonto erstellen</span></a>
1275
1276                            <div class="flex justify-center">
1277                    <div class="text-blue text-2xs font-semibold">
1278                        <span>&nbsp;</span>
1279                    </div>
1280                </div>
1281                    </div>
1282    </div>
1283
1284</div>
1285<script type="text/javascript">
1286    if (typeof __robin !== 'undefined' && isLoggedIn()) {
1287        var customer = getCustomer();
1288        var robin_settings = {
1289            callback: function (event, data) {
1290                if (event == 'init') {
1291                    var name = customer.fullname;	// determine real name
1292                    var email = customer.email;	    // determine real email
1293
1294                    if (email != null && email != '') {
1295                        var ws = __robin.getWebStore();
1296
1297
1298                        ws.conversationTemplate.useAnonymousChat = true;
1299                        __robin.setShopper(email, name);
1300                    }
1301                }
1302            }
1303        };
1304    }
1305
1306    /**
1307     * Function to check if customer is logged in
1308     * @returns {boolean}
1309     */
1310    function isLoggedIn() {
1311        var mageCacheStorage = getMageCacheStorage();
1312
1313        return mageCacheStorage != null && typeof mageCacheStorage.customer !== 'undefined';
1314    }
1315
1316    /**
1317     * Get the customer from the local storage, because the PHP customer session is depersonalized on cached pages
1318     * @returns {Object}
1319     */
1320    function getCustomer() {
1321        var mageCacheStorage = getMageCacheStorage();
1322        if (mageCacheStorage != null && typeof mageCacheStorage.customer !== 'undefined') {
1323            return mageCacheStorage.customer;
1324        }
1325
1326        return {
1327            fullname: 'Unknown',
1328            email: '[email protected]'
1329        };
1330    }
1331
1332    /**
1333     * @returns {Object|null}
1334     */
1335    function getMageCacheStorage()
1336    {
1337        if (localStorage.getItem('mage-cache-storage') != null) {
1338            return JSON.parse(localStorage.getItem('mage-cache-storage'));
1339        }
1340        return null;
1341    }
1342</script>
1342
1343</div></div></main><footer class="page-footer"><div class="footer content">
1344<div class="container sm:p-0 sm:max-w-none">
1345    <div class="border-t border-gray"></div>
1346</div>
1347
1348<div class="bg-white my-8">
1349    <div class="container">
1350        <div class="grid grid-cols-5 lg:flex lg:flex-row justify-between gap-4 lg:gap-8">
1351            <div class="col-span-2 flex flex-row lg:flex-col xl:flex-row h-max md:gap-4 order-1">
1352                <div>
1353<a href="https://www.haibu.de/"
1354   class="grow&#x20;lg&#x3A;grow-0&#x20;mb-&#x5B;10px&#x5D;&#x20;lg&#x3A;mb-0"
1355   title="Haibu.de&#x20;-&#x20;Hair&#x20;&amp;&#x20;Beauty&#x20;Professionals"
1356   aria-label="store logo">
1357    <img class="mx-auto&#x20;lg&#x3A;mx-0&#x20;w-32"
1358         src="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/images/logo.svg"
1359         title="Haibu.de&#x20;-&#x20;Hair&#x20;&amp;&#x20;Beauty&#x20;Professionals"
1360         alt="Haibu.de&#x20;-&#x20;Hair&#x20;&amp;&#x20;Beauty&#x20;Professionals"
1361         width="130"
1362         height="40"
1363    />
1364</a>
1365</div>
1366                <div class="text-2xs self-center hidden md:flex">Ⓒ2026 Haibu</div>
1367            </div>
1368
1369            <div class="col-span-5 flex flex-col gap-4 order-3 lg:order-2">
1370                <div class="flex flex-wrap md:flex-nowrap gap-1 order-2 lg:order-1">
1371                    
1372<a
1373            href="https://www.haibu.de/sicheres-zahlen"
1374            class="h-10&#x20;w-16&#x20;border&#x20;border-gray-lighter&#x20;rounded&#x20;flex&#x20;items-center&#x20;justify-center"
1375    title="Sofort&#x20;Banking">
1376
1377    <img src="https://images.haibu.de/zMU0wSfEi8Ul2IoUTS2FIO3llcUdsbJViKsTTZryiBg/w:40/h:8/rt:fit/g:sm/el:1/ex:1:ce:0:0/aHR0cHM6Ly9pbWFnZXMucHJpc21pYy5pby9tb21hLzhhOTM0ZDVmLTQ1YTEtNGYyNi1iNzkwLWY4MTI2Mzk0Y2JkZV9pbWFnZSsyNC5wbmc_YXV0bz1jb21wcmVzcyxmb3JtYXQ.png" alt="Sofort" width="40" height="8" class="w-auto h-auto rounded" loading="lazy" /></a>
1378
1379<a
1380            href="https://www.haibu.de/sicheres-zahlen"
1381            class="h-10&#x20;w-16&#x20;border&#x20;border-gray-lighter&#x20;rounded&#x20;flex&#x20;items-center&#x20;justify-center"
1382    title="Bancontact">
1383
1384    <img src="https://images.haibu.de/vcyTVtTE4Ih-qZ9ga4DW6lUqB2vRj3gJLUCGO09Ujxk/w:43/h:20/rt:fit/g:sm/el:1/ex:1:ce:0:0/aHR0cHM6Ly9pbWFnZXMucHJpc21pYy5pby9tb21hL2Y4NjU3ZDE3LWZiNzktNDI2Yi04ZDM2LTI1ZjM5NjEyOGVlZl8yNTYwcHgtR2lyb3BheStzbWFsbC5zdmcuanBnP2F1dG89Y29tcHJlc3MsZm9ybWF0.jpg" alt="" width="43" height="20" class="w-auto h-auto rounded" loading="lazy" /></a>
1385
1386<a
1387            href="https://www.haibu.de/sicheres-zahlen"
1388            class="h-10&#x20;w-16&#x20;border&#x20;border-gray-lighter&#x20;rounded&#x20;flex&#x20;items-center&#x20;justify-center"
1389    title="PayPal">
1390
1391    <img src="https://images.haibu.de/4bjm5JMg0Rq-wr2_MWsrj9iYtbSMZlU8x8AKbXPR5ZU/w:40/h:11/rt:fit/g:sm/el:1/ex:1:ce:0:0/aHR0cHM6Ly9pbWFnZXMucHJpc21pYy5pby9tb21hLzYyMDNjNDQ4LTYxNzctNDdlOS04ODRiLWVmZTNhNDRmOTg3NV9pbWFnZSsyMC5wbmc_YXV0bz1jb21wcmVzcyxmb3JtYXQ.png" alt="PayPal" width="40" height="11" class="w-auto h-auto rounded" loading="lazy" /></a>
1392
1393<a
1394            href="https://www.haibu.de/sicheres-zahlen"
1395            class="h-10&#x20;w-16&#x20;border&#x20;border-gray-lighter&#x20;rounded&#x20;flex&#x20;items-center&#x20;justify-center"
1396    title="Visa">
1397
1398    <img src="https://images.haibu.de/yDKhu7uxlSSBei7ONFHtBZFs638kcaBFMJU1Yg6igHQ/w:32/h:10/rt:fit/g:sm/el:1/ex:1:ce:0:0/aHR0cHM6Ly9pbWFnZXMucHJpc21pYy5pby9tb21hLzc1ZTQ3OGRmLTdlNzgtNGE1MC05NjczLWM5YmIxZjY5Zjc1OV9pbWFnZSsxNy5wbmc_YXV0bz1jb21wcmVzcyxmb3JtYXQ.png" alt="Visa" width="32" height="10" class="w-auto h-auto rounded" loading="lazy" /></a>
1399
1400<a
1401            href="https://www.haibu.de/sicheres-zahlen"
1402            class="h-10&#x20;w-16&#x20;border&#x20;border-gray-lighter&#x20;rounded&#x20;flex&#x20;items-center&#x20;justify-center"
1403    title="Mastercard">
1404
1405    <img src="https://images.haibu.de/_MNMe_OWib8RJslyC0Gy6SGSeozn_OPAqsWFLVXyOzM/w:30/h:17/rt:fit/g:sm/el:1/ex:1:ce:0:0/aHR0cHM6Ly9pbWFnZXMucHJpc21pYy5pby9tb21hLzY2YTk5NDYyLWE3NWYtNGFjMy05ZWExLTViY2M3NWRiMjZjZl9pbWFnZSsxOS5wbmc_YXV0bz1jb21wcmVzcyxmb3JtYXQ.png" alt="Mastercard" width="30" height="17" class="w-auto h-auto rounded" loading="lazy" /></a>
1406
1407<a
1408            href="https://www.haibu.de/sicheres-zahlen"
1409            class="h-10&#x20;w-16&#x20;border&#x20;border-gray-lighter&#x20;rounded&#x20;flex&#x20;items-center&#x20;justify-center"
1410    title="Klarna">
1411
1412    <img src="https://images.haibu.de/DzMc9p7jLUwT15d3q6qmTXVpp7SGnh4L8W6EoZVY8Yg/w:32/h:20/rt:fit/g:sm/el:1/ex:1:ce:0:0/aHR0cHM6Ly9pbWFnZXMucHJpc21pYy5pby9tb21hL2Y4ZDNkNTk4LTk4NzAtNDdlMy05ZjkyLWRlNDE1Mjc5NWEyYl9rbGFybmErdGVzdC5qcGc_YXV0bz1jb21wcmVzcyxmb3JtYXQ.jpg" alt="" width="32" height="20" class="w-auto h-auto rounded" loading="lazy" /></a>
1413
1414<a
1415            href="https://www.haibu.de/versand"
1416            class="h-10&#x20;w-16&#x20;border&#x20;border-gray-lighter&#x20;rounded&#x20;flex&#x20;items-center&#x20;justify-center"
1417    title="">
1418
1419    <img src="https://images.haibu.de/AHJiSdbAeIG7OVvUmm93mRuT7gaxpbJp35Owjf9v1qg/w:46/h:30/rt:fit/g:sm/el:1/ex:1:ce:0:0/aHR0cHM6Ly9pbWFnZXMucHJpc21pYy5pby9tb21hL2FlNDk0YzUzLThkNjYtNDcwNC1hMWVkLTg2NTQ5MGEwN2I2MV9ESEwrSGFpYnUuanBnP2F1dG89Y29tcHJlc3MsZm9ybWF0.jpg" alt="" width="46" height="30" class="w-auto h-auto rounded" loading="lazy" /></a>
1420
1421<a
1422            href="https://www.haibu.de/versand"
1423            class="h-10&#x20;w-16&#x20;border&#x20;border-gray-lighter&#x20;rounded&#x20;flex&#x20;items-center&#x20;justify-center"
1424    title="">
1425
1426    <img src="https://images.haibu.de/yOPaATmJSlKLnVZoga7RbOH-Cm6_Uxf4B6sGFfqsnLk/w:35/h:30/rt:fit/g:sm/el:1/ex:1:ce:0:0/aHR0cHM6Ly9pbWFnZXMucHJpc21pYy5pby9tb21hL2FicDhNTGJjaTJVRjZLOGVfTG9nb3BhY2thZ2luZ0xhbmRiZWxsX0hhaWJ1REUucG5nP2F1dG89Zm9ybWF0LGNvbXByZXNz.png" alt="" width="35" height="30" class="w-auto h-auto rounded" loading="lazy" /></a>
1427                </div>
1428
1429                <div class="text-2xs leading-5 order-1 lg:order-2">
1430                    <!-- Same flex row so the withdrawal link sits next to the other legal links. -->
1431                    <div class="flex flex-wrap gap-x-4 lg:gap-4 items-baseline">
1432                        
1433<div class="flex flex-wrap gap-x-4 lg:gap-4 text-xs md:text-2xs">
1434    <p><a href="https://www.haibu.de/datenschutzerklarung">Datenschutzerkl&auml;rung</a></p><p><a href="https://www.haibu.de/impressum">Impressum</a></p><p><a href="https://www.haibu.de/cookie-richtlinien">Cookies</a></p><p><a href="https://www.haibu.de/allgemeine-geschaftsbedingungen">Algemeine Gesch&auml;ftsbedingungen</a></p></div>
1435                                            </div>
1436                </div>
1437            </div>
1438
1439            <div class="col-span-3 flex items-center justify-self-end lg:items-start gap-2 lg:gap-8 order-2 lg:order-3">
1440                            </div>
1441
1442        </div>
1443    </div>
1444</div>
1445
1446
1447
1448</div></footer>
1448<script async defer src="https&#x3A;&#x2F;&#x2F;static.cdn.prismic.io&#x2F;prismic.js&#x3F;new&#x3D;true&amp;repo&#x3D;moma"></script>
vendor: 1 bytes, line 1448
1448
1449<script>try {
1450smileTracker.addPageVar('type.identifier', 'customer_account_login');
1451smileTracker.addPageVar('type.label', 'Customer Account Login Form');
1452smileTracker.addPageVar('locale', 'de_DE');
1453} catch (err) { ; }</script>
vendor: 1 bytes, line 1453
1453
1454<script>
1455    let SnapSlider = class {
1456        constructor(el, {
1457            labelSepparator = 'von',
1458            autoPager,
1459            groupPager,
1460            loop
1461        } = {}) {
1462            this.el = el;
1463            this.track = this.el.querySelector("[data-track]");
1464            if (!this.track) {
1465                console.warn(
1466                    "No Slider track defined, reverting back to CSS slider.\nPlease create a wrapper for your slides with the attribute data-track",
1467                    this.el
1468                );
1469                return;
1470            }
1471            this.initialLoad = true;
1472            this.slides = [];
1473            this.inViewObserver;
1474            this.mutationObserver;
1475            this.resizeObserver;
1476            this.pager = this.el.querySelector("[data-pager]");
1477            this.navBtns = Array.from(
1478                this.el.querySelectorAll("[data-next], [data-prev]")
1479            );
1480            this.slideLabelSepparator = this.el.dataset.slideLabelSepparator || labelSepparator;
1481            this.useAutoPager = autoPager || this.el.hasAttribute("data-auto-pager") || false;
1482            this.useGroupPager = groupPager || this.el.hasAttribute("data-group-pager") || false;
1483            this.useLoop = loop || this.el.hasAttribute("data-loop") || false;
1484            this.sliderLabel = this.el.hasAttribute("aria-label") && this.el.getAttribute("aria-label").toLowerCase().trim().replace(/[^a-z0-9_-]+/g, "-").replace(/^-+|-+$/g, "");
1485            this.sliderId = this.el.id || this.sliderLabel || "slider";
1486            this.markerIdName = "data-target-id";
1487            this.pagerClasses = this.el.dataset.pagerClass || "snap-pager";
1488            this.markerClasses = this.el.dataset.markerClass || "snap-marker";
1489            this.init();
1490        }
1491        init() {
1492            this.setupSlides();
1493            this.setupNav();
1494            if (this.useAutoPager) {
1495                this.createPager();
1496            } else {
1497                this.setupPager();
1498            }
1499            this.setupObservers();
1500            this.setupMutationObserver();
1501            this.setupResizeObserver();
1502            this.el.addEventListener("click", this.eventHandler.bind(this));
1503            this.el.addEventListener("keydown", this.eventHandler.bind(this));
1504            if ("onscrollend" in window) {
1505                this.track.addEventListener("scrollend", () => {
1506                    this.isNavigating = false;
1507                });
1508            } else {
1509                this.track.addEventListener("scroll", () => {
1510                    clearTimeout(this.scrollEndTimer);
1511                    this.scrollEndTimer = setTimeout(() => {
1512                        this.isNavigating = false;
1513                    }, 100);
1514                });
1515            }
1516        }
1517        destroy() {
1518            this.inViewObserver?.disconnect();
1519            this.mutationObserver?.disconnect();
1520            this.resizeObserver?.disconnect();
1521            this.el.removeEventListener("click", this.eventHandler.bind(this));
1522            this.el.removeEventListener("keydown", this.eventHandler.bind(this));
1523        }
1524        roundUpIfGreaterThan(number, min = 8) {
1525            const decimalPart = number - Math.floor(number);
1526            return decimalPart >= min ? Math.ceil(number) : Math.floor(number);
1527        }
1528        getInViewItems() {
1529            const inViewSlides = Array.from(this.track.querySelectorAll("[data-in-view]")).filter((el) => this.slides.includes(el));
1530            const firstInViewSlide = inViewSlides[0] || null;
1531            const lastInViewSlide = inViewSlides[inViewSlides.length - 1] || null;
1532            const isAtStart = firstInViewSlide === this.slides[0];
1533            const isAtEnd = lastInViewSlide === this.slides[this.slides.length - 1];
1534            return {
1535                inViewSlides,
1536                totalInViewSlides: inViewSlides.length,
1537                firstInViewSlide,
1538                lastInViewSlide,
1539                isAtStart,
1540                isAtEnd,
1541                hasNoOverflow: isAtStart && isAtEnd
1542            };
1543        }
1544        groupPagerMarkers() {
1545            if (this.slides.length === 0 || !this.pager || !this.useGroupPager) return;
1546            const totalVisibleSlides = this.roundUpIfGreaterThan(
1547                this.track.offsetWidth / this.slides[0].offsetWidth
1548            );
1549            const markers = Array.from(this.pager.querySelectorAll("a, button"));
1550            markers.forEach((marker, index) => {
1551                marker.style.display = index % totalVisibleSlides === 0 ? null : "none";
1552            });
1553        }
1554        handleInView(entries) {
1555            entries.forEach((entry) => {
1556                const marker = this.pager && (this.pager.querySelector(`[href="#${entry.target.id}"]`) || this.pager.querySelector(
1557                    `[${this.markerIdName}="${entry.target.id}"]`
1558                ));
1559                entry.target.toggleAttribute("data-in-view", entry.isIntersecting);
1560                entry.target.toggleAttribute("inert", !entry.isIntersecting);
1561                marker?.setAttribute("aria-current", entry.isIntersecting);
1562                marker?.setAttribute("tabindex", entry.isIntersecting ? "0" : "-1");
1563            });
1564            const { isAtStart, isAtEnd, hasNoOverflow } = this.getInViewItems();
1565            this.navBtns.forEach((btn) => {
1566                if (btn.hasAttribute("data-next")) {
1567                    btn.style.visibility = hasNoOverflow ? "hidden" : null;
1568                    isAtEnd && !this.useLoop ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled");
1569                }
1570                if (btn.hasAttribute("data-prev")) {
1571                    btn.style.visibility = hasNoOverflow ? "hidden" : null;
1572                    isAtStart && !this.useLoop ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled");
1573                }
1574            });
1575            if (this.pager) {
1576                this.pager.style.visibility = hasNoOverflow ? "hidden" : null;
1577                this.pager.toggleAttribute("inert", hasNoOverflow);
1578            }
1579            if (!this.initialLoad) {
1580                this.el.dispatchEvent(
1581                    new CustomEvent("slideChange", {
1582                        detail: this.getInViewItems()
1583                    })
1584                );
1585            } else {
1586                this.initialLoad = false;
1587            }
1588            if (document.activeElement.parentElement.hasAttribute("data-pager")) {
1589                const activeItems = this.pager.querySelectorAll('[tabindex="0"]');
1590                if (activeItems.length) {
1591                    activeItems[0].focus({ preventScroll: true });
1592                }
1593            }
1594        }
1595        getSlides() {
1596            if (!this.track) return [];
1597            return Array.from(this.track.children).filter(
1598                (child) => child.tagName.toLowerCase() !== "template" && child.tagName.toLowerCase() !== "style" && child.tagName.toLowerCase() !== "script" && child.style.display !== "none"
1599            );
1600        }
1601        refreshSlides() {
1602            this.initialLoad = true;
1603            this.slides = this.getSlides();
1604            this.setupSlides();
1605            if (this.useAutoPager) {
1606                this.createPager();
1607            } else {
1608                this.setupPager();
1609            }
1610            this.groupPagerMarkers();
1611            this.setupObservers();
1612        }
1613        setupSlides() {
1614            this.slides = this.getSlides();
1615            this.slides.forEach((slide, index) => {
1616                const totalSlides = this.slides.length;
1617                const currentSlide = index + 1;
1618                const existingLabel = slide.getAttribute("aria-label") || "";
1619                const isImage = slide.tagName.toLowerCase() === "img" || slide.tagName.toLowerCase() === "picture";
1620                const slideLabelTag = isImage ? "alt" : "aria-label";
1621                const hasAutoLabel = existingLabel.startsWith(
1622                    `${currentSlide} ${this.slideLabelSepparator} `
1623                );
1624                if (!slide.hasAttribute("id")) {
1625                    slide.setAttribute(
1626                        "id",
1627                        `${this.sliderId}-item-${currentSlide}`
1628                    );
1629                }
1630                if (!slide.hasAttribute(slideLabelTag) || slide.getAttribute(slideLabelTag) === "" || hasAutoLabel) {
1631                    slide.setAttribute(
1632                        slideLabelTag,
1633                        `${currentSlide} ${this.slideLabelSepparator} ${totalSlides}`
1634                    );
1635                }
1636                if (slide.tagName.toLowerCase() === "div" && !slide.hasAttribute("role")) {
1637                    slide.setAttribute("role", "group");
1638                }
1639                if (this.pager && !isImage) {
1640                    slide.setAttribute("role", "tabpanel");
1641                }
1642                if (slide.getAttribute("role") === "group") {
1643                    slide.setAttribute("aria-roledescription", "item");
1644                }
1645            });
1646            if (!this.el.hasAttribute("role") && this.el.tagName !== "SECTION") {
1647                this.el.setAttribute("role", "region");
1648            }
1649            if (!this.el.hasAttribute("aria-roledescription")) {
1650                this.el.setAttribute("aria-roledescription", "carousel");
1651            }
1652            if (!this.track.hasAttribute("tabindex")) {
1653                this.track.setAttribute("tabindex", 0);
1654            }
1655            this.track.setAttribute("aria-live", "polite");
1656        }
1657        setupNav() {
1658            this.navBtns.forEach((btn) => {
1659                btn.setAttribute("disabled", "");
1660                btn.removeAttribute("hidden");
1661                btn.classList.remove("invisible");
1662                btn.style.visibility = null;
1663            });
1664        }
1665        createPager() {
1666            const newPager = document.createElement("nav");
1667            newPager.setAttribute("data-pager", "");
1668            newPager.setAttribute("role", "tablist");
1669            newPager.classList.add(...this.pagerClasses.split(" "));
1670            this.slides.forEach((slide, index) => {
1671                const marker = document.createElement("button");
1672                const slideId = slide.id || `${this.sliderId}-item-${index + 1}`;
1673                marker.setAttribute(this.markerIdName, slideId);
1674                marker.classList.add(...this.markerClasses.split(" "));
1675                this.setupPagerMarker(marker, index);
1676                newPager.appendChild(marker);
1677                if (slide.tagName.toLowerCase() !== "img" && slide.tagName.toLowerCase() !== "picture") {
1678                    slide.removeAttribute("aria-roledescription");
1679                    slide.setAttribute("role", "tabpanel");
1680                }
1681            });
1682            if (this.pager) {
1683                this.pager.setAttribute("role", "tablist");
1684                this.pager.replaceChildren(...newPager.children);
1685            } else {
1686                this.track.after(newPager);
1687                this.pager = this.el.querySelector("[data-pager]");
1688            }
1689        }
1690        setupPager() {
1691            if (!this.pager) return;
1692            this.pager.setAttribute("role", "tablist");
1693            const items = Array.from(this.pager.querySelectorAll("a, button"));
1694            items.forEach((marker, index) => this.setupPagerMarker(marker, index));
1695        }
1696        setupPagerMarker(marker, index) {
1697            const markerId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName);
1698            const slideId = markerId || `${this.sliderId}-item-${index + 1}`;
1699            if (!markerId) {
1700                marker.setAttribute(this.markerIdName, slideId);
1701            }
1702            marker.setAttribute("role", "tab");
1703            marker.setAttribute("aria-controls", slideId);
1704            marker.setAttribute("aria-posinset", index + 1);
1705            marker.setAttribute("aria-setsize", this.slides.length);
1706            marker.setAttribute("tabindex", "-1");
1707            if (!marker.hasAttribute("aria-label")) {
1708                marker.setAttribute("aria-label", `Slide ${index + 1}`);
1709            }
1710        }
1711        setupObservers() {
1712            if (this.inViewObserver) {
1713                this.inViewObserver.disconnect();
1714            }
1715            this.inViewObserver = new IntersectionObserver(
1716                this.handleInView.bind(this), {
1717                    root: this.track,
1718                    threshold: 0.8
1719                }
1720            );
1721            this.slides.forEach((slide) => this.inViewObserver.observe(slide));
1722        }
1723        setupMutationObserver() {
1724            this.mutationObserver = new MutationObserver((mutations) => {
1725                if (mutations.some((m) => m.type === "childList" || m.target.parentElement === this.track)) {
1726                    this.refreshSlides();
1727                }
1728            });
1729            this.mutationObserver.observe(this.track, {
1730                childList: true,
1731                subtree: true,
1732                attributeFilter: ["style"]
1733            });
1734        }
1735        setupResizeObserver() {
1736            this.resizeObserver = new ResizeObserver(
1737                this.groupPagerMarkers.bind(this)
1738            );
1739            this.resizeObserver.observe(this.el);
1740        }
1741        goToSlideDir(dir = "next") {
1742            if (this.isNavigating) return;
1743            const { firstInViewSlide, lastInViewSlide } = this.getInViewItems();
1744            const isPrev = dir === "prev";
1745            const referenceSlide = isPrev ? firstInViewSlide : lastInViewSlide;
1746            const currentIndex = this.slides.indexOf(referenceSlide);
1747            let targetIndex = isPrev ? currentIndex - 1 : currentIndex + 1;
1748            if (targetIndex < 0 || targetIndex >= this.slides.length) {
1749                if (!this.useLoop) return;
1750                targetIndex = isPrev ? this.slides.length - 1 : 0;
1751            }
1752            const targetSlide = this.slides[targetIndex];
1753            if (!targetSlide) return;
1754            this.isNavigating = true;
1755            targetSlide.scrollIntoView({
1756                block: "nearest",
1757                inline: isPrev ? "end" : "start"
1758            });
1759        }
1760        pagerToSlide(event) {
1761            if (!event.target.closest("[data-pager]")) return;
1762            const marker = event.target.closest("a, button");
1763            if (!marker) return;
1764            event.preventDefault();
1765            const slideId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName);
1766            const targetSlide = this.track.querySelector(`#${slideId}`);
1767            targetSlide?.scrollIntoView({ block: "nearest", inline: "start" });
1768        }
1769        eventHandler(event) {
1770            const target = event.target.closest(
1771                "[data-next], [data-prev], [data-pager]"
1772            );
1773            if (!target) return;
1774            if (event.type === "click") {
1775                if (target.hasAttribute("data-next")) {
1776                    this.goToSlideDir("next");
1777                } else if (target.hasAttribute("data-prev")) {
1778                    this.goToSlideDir("prev");
1779                } else if (target.closest("[data-pager]")) {
1780                    this.pagerToSlide(event);
1781                }
1782            }
1783            if (event.type === "keydown" && target.closest("[data-pager]")) {
1784                if (event.key === "ArrowRight" || event.key === "ArrowDown") {
1785                    event.preventDefault();
1786                    this.goToSlideDir("next");
1787                } else if (event.key === "ArrowLeft" || event.key === "ArrowUp") {
1788                    event.preventDefault();
1789                    this.goToSlideDir("prev");
1790                }
1791            }
1792        }
1793    };
1794
1795    (() => {
1796        function alpineSnapSlider(Alpine) {
1797            Alpine.directive("snap-slider", (el, {
1798                modifiers
1799            }, {
1800                cleanup
1801            }) => {
1802                const slider = new SnapSlider(el, {
1803                    autoPager: modifiers.includes("auto-pager"),
1804                    groupPager: modifiers.includes("group-pager"),
1805                    loop: modifiers.includes("loop")
1806                });
1807                cleanup(() => {
1808                    slider.destroy();
1809                });
1810            });
1811        }
1812
1813        document.addEventListener("alpine:init", () => {
1814            window.Alpine.plugin(alpineSnapSlider);
1815        });
1816    })();
1817    //# sourceURL=alpine-snap-slider.js
1818</script>
vendor: 1 bytes, line 1818
1818
1819<script>
1820    (() => {
1821        // src/dialog.js
1822        function dialog_default(Alpine) {
1823            Alpine.directive("htmldialog", fylgjaAlpineDialog);
1824            function fylgjaAlpineDialog(el, { expression, modifiers }, { evaluateLater, cleanup }) {
1825            const evaluate = expression.length ? evaluateLater(expression) : () => {};
1826            const lockPageScroll = modifiers.includes("noscroll");
1827            const isModeless = modifiers.includes("modeless");
1828            const closeBy = el.getAttribute("closeby") || modifierValue(modifiers, "closeby", "closerequest");
1829            el.style.display = null;
1830            el.style.length === 0 && el.removeAttribute("style");
1831            if (el._x_isShown) {
1832                open();
1833            }
1834            const closeBySupported = (() => {
1835                return "closedBy" in HTMLDialogElement.prototype;
1836            })();
1837            function scrollLock(use = true) {
1838                document.body.style.overflow = use ? "hidden" : "";
1839            }
1840            function dialogSubmit(event) {
1841                if (event.target.getAttribute("method") === "dialog" || event.submitter?.getAttribute("formmethod") === "dialog") {
1842                event.preventDefault();
1843                evaluate();
1844                }
1845            }
1846            function escapeDialog(event) {
1847                if (event.key !== "Escape") return;
1848                event.preventDefault();
1849                if (closeBy === "none") return;
1850                evaluate();
1851            }
1852            function handleCloseByEvent(event) {
1853                if (event.target !== el) return;
1854                const rect = el.getBoundingClientRect();
1855                const isInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;
1856                if (!isInDialog) {
1857                if (closeBy === "any") {
1858                    if (closeBySupported) {
1859                    event.preventDefault();
1860                    }
1861                    evaluate();
1862                }
1863                }
1864            }
1865            function handleCloseEvent() {
1866                evaluate();
1867            }
1868            function open() {
1869                if (el.hasAttribute("open")) return;
1870                isModeless ? el.show() : el.showModal();
1871                scrollLock(lockPageScroll);
1872            }
1873            function close() {
1874                if (!el.hasAttribute("open")) return;
1875                el.close();
1876                scrollLock(false);
1877            }
1878            el._x_doShow = () => open();
1879            el._x_doHide = () => close();
1880            el.addEventListener("keydown", escapeDialog);
1881            el.addEventListener("submit", dialogSubmit);
1882            el.addEventListener("click", handleCloseByEvent);
1883            el.addEventListener("cancel", handleCloseEvent);
1884            cleanup(() => {
1885                el.removeEventListener("keydown", escapeDialog);
1886                el.removeEventListener("submit", dialogSubmit);
1887                el.removeEventListener("click", handleCloseByEvent);
1888                el.removeEventListener("cancel", handleCloseEvent);
1889                scrollLock(false);
1890            });
1891            }
1892        }
1893        function modifierValue(modifiers, key, fallback) {
1894            if (modifiers.indexOf(key) === -1) return fallback;
1895            const rawValue = modifiers[modifiers.indexOf(key) + 1];
1896            if (!rawValue) return fallback;
1897            if (key === "closeby") {
1898            const allowedValues = ["auto", "none", "closerequest", "any"];
1899            const options = allowedValues.join(", ");
1900            if (!allowedValues.includes(rawValue)) {
1901                console.warn(
1902                `"${rawValue}" is not one of the allowed values for closeby: ${options}`
1903                );
1904                return fallback;
1905            }
1906            }
1907            return rawValue;
1908        }
1909
1910        // src/cdn.js
1911        document.addEventListener("alpine:init", () => {
1912            window.Alpine.plugin(dialog_default);
1913        });
1914    })();
1915    //# sourceURL=alpine-htmldialog.js
1916</script>
vendor: 1 bytes, line 1916
1916
1917<script>
1918    (() => {
1919        function src_default(Alpine) {
1920            Alpine.directive("intersect", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {
1921                let evaluate = evaluateLater(expression);
1922                let options = {
1923                    rootMargin: getRootMargin(modifiers),
1924                    threshold: getThreshold(modifiers)
1925                };
1926                let observer = new IntersectionObserver((entries) => {
1927                    entries.forEach((entry) => {
1928                        if (entry.isIntersecting === (value === "leave"))
1929                            return;
1930                        evaluate();
1931                        modifiers.includes("once") && observer.disconnect();
1932                    });
1933                }, options);
1934                observer.observe(el);
1935                cleanup(() => {
1936                    observer.disconnect();
1937                });
1938            }));
1939        }
1940        function getThreshold(modifiers) {
1941            if (modifiers.includes("full"))
1942                return 0.99;
1943            if (modifiers.includes("half"))
1944                return 0.5;
1945            if (!modifiers.includes("threshold"))
1946                return 0;
1947            let threshold = modifiers[modifiers.indexOf("threshold") + 1];
1948            if (threshold === "100")
1949                return 1;
1950            if (threshold === "0")
1951                return 0;
1952            return Number(`.${threshold}`);
1953        }
1954        function getLengthValue(rawValue) {
1955            let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);
1956            return match ? match[1] + (match[2] || "px") : void 0;
1957        }
1958        function getRootMargin(modifiers) {
1959            const key = "margin";
1960            const fallback = "0px 0px 0px 0px";
1961            const index = modifiers.indexOf(key);
1962            if (index === -1)
1963                return fallback;
1964            let values = [];
1965            for (let i = 1; i < 5; i++) {
1966                values.push(getLengthValue(modifiers[index + i] || ""));
1967            }
1968            values = values.filter((v) => v !== void 0);
1969            return values.length ? values.join(" ").trim() : fallback;
1970        }
1971
1972        document.addEventListener("alpine:init", () => {
1973            window.Alpine.plugin(src_default);
1974        });
1975    })();
1976    //# sourceURL=alpine-intersect.js
1977</script>
1977
1978
1979<script>
1980    for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]":"intersect",".product-info [x-data]":"intersect","#filters-content [x-data]":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#product_addtocart_form [x-data]":"intersect","#notice-cookie-block":"idle"})) {
1981        document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`));
1982    }
1983    //# sourceURL=alpine-defer-rules.js
1984</script>
vendor: 1 bytes, line 1984
1984
1985<script>
1986    (() => {
1987        const hasAlpine = new Promise(resolve => {
1988            window.addEventListener('alpine:initialized', resolve, {once: true, passive: true});
1989        });
1990
1991        const hasInteract = new Promise(resolve => {
1992            (events => {
1993                const onInteract = () => {
1994                    resolve();
1995                    events.forEach(type => window.removeEventListener(type, onInteract));
1996                }
1997                events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true}))
1998            })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown'])
1999        });
2000
2001        const onIntersect = (el) => {
2002            return new Promise(resolve => {
2003                const observer = new IntersectionObserver(entries => {
2004                    for (const entry of entries) {
2005                        if (entry.isIntersecting) {
2006                            observer.disconnect()
2007                            resolve();
2008                        }
2009                    }
2010                }, {});
2011                observer.observe(el);
2012            });
2013        }
2014
2015        function runComponent(el) {
2016            hasAlpine.then(() => {
2017                el.removeAttribute('x-ignore');
2018                queueMicrotask(() => Alpine.initTree(el));
2019            });
2020        }
2021
2022        function initDeferredComponents() {
2023            document.querySelectorAll('[x-data][x-defer]').forEach(el => {
2024                el.setAttribute('x-ignore', '');
2025                const deferUntil = (el.getAttribute('x-defer') || '').trim();
2026                switch (deferUntil) {
2027                    case 'interact':
2028                        hasInteract.then(() => runComponent(el));
2029                        break;
2030                    case 'intersect':
2031                        onIntersect(el).then(() => runComponent(el))
2032                        break;
2033                    case 'idle':
2034                        window.requestIdleCallback
2035                            ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000})
2036                            : setTimeout(() => runComponent(el), 4000);
2037                        break;
2038                    case 'eager':
2039                        runComponent(el);
2040                        break;
2041                    default:
2042                        if (deferUntil.startsWith('event:') && deferUntil.length > 6) {
2043                            window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true});
2044                        }
2045                }
2046            });
2047        }
2048
2049        window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true});
2050    })();
2051    //# sourceURL=alpine-defer.js
2052</script>
2052
2053
2054
2055<script type="module"
2056        src="https://www.haibu.de/static/version1791360036/frontend/Moma/default_DE/de_DE/Hyva_Theme/js/alpine3.min.js"
2057        defer
2058        crossorigin
2059></script>
vendor: 1 bytes, line 2059
2059
2060<script>
2061    function dispatchMessages(messages, hideAfter) {
2062        const messagesEvent = new CustomEvent("messages-loaded", {
2063            detail: {
2064                messages: messages,
2065                hideAfter: hideAfter
2066            }
2067        });
2068        window.dispatchEvent(messagesEvent);
2069    }
2070
2071    if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
2072        console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
2073    }
2074
2075    (function( hyva, undefined ) {
2076
2077        hyva.initFormKey = () => {
2078            const inputSelector = 'input[name="form_key"]',
2079                formKey = hyva.getFormKey();
2080
2081            Array.from(document.querySelectorAll(inputSelector)).map(function (input) {
2082                input.value = formKey
2083            });
2084        }
2085
2086        hyva.initMessages = () => {
2087            try {
2088                const messages = hyva.getCookie('mage-messages');
2089                window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : [];
2090
2091                dispatchMessages(window.mageMessages);
2092
2093                                // empty `mage-messages` cookie
2094                const skipSetDomain = true;
2095                hyva.setCookie('mage-messages','', -1, skipSetDomain);
2096
2097            } catch (error) {
2098                console.warn('Error parsing Cookie Messages:', error);
2099            }
2100        }
2101
2102        window.addEventListener('DOMContentLoaded', hyva.initFormKey);
2103        hyva.alpineInitialized(hyva.initMessages)
2104
2105    }( window.hyva = window.hyva || {} ));
2106    //# sourceURL=hyva-cookies.js
2107</script>
vendor: 1 bytes, line 2107
2107
2108<script>
2109    {
2110        const private_content_key = 'mage-cache-storage';
2111        const private_content_expire_key = 'mage-cache-timeout';
2112        const private_content_version_key = 'private_content_version';
2113        const section_data_ids_key = 'section_data_ids';
2114        const mage_cache_session_id_key = 'mage-cache-sessid';
2115        const last_visited_store_key = 'last_visited_store';
2116
2117        const ttl = 254000;
2118
2119        if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
2120            console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
2121        }
2122
2123        function loadSectionData () {
2124            const browserStorage = hyva.getBrowserStorage();
2125            if (!browserStorage) {
2126                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
2127                    [{
2128                        type: "warning",
2129                        text: "Please enable LocalStorage in your browser."
2130                    }]
2131                );
2132                return;
2133            }
2134            try {
2135                let isInvalid = false;
2136
2137                if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) {
2138                    isInvalid = true;
2139                }
2140                hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false);
2141
2142                if (!hyva.getCookie(mage_cache_session_id_key)) {
2143                    isInvalid = true;
2144                    browserStorage.removeItem(private_content_key);
2145                    const skipSetDomain = true;
2146                    const days = false;
2147                    hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain)
2148                }
2149
2150                const cookieVersion = hyva.getCookie(private_content_version_key);
2151                const storageVersion = browserStorage.getItem(private_content_version_key);
2152
2153                if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) {
2154                    isInvalid = true;
2155                }
2156
2157                const privateContentExpires = browserStorage.getItem(private_content_expire_key);
2158                if (privateContentExpires && new Date(privateContentExpires) < new Date()) {
2159                    browserStorage.removeItem(private_content_key);
2160                }
2161
2162                if (isInvalid && cookieVersion) {
2163                    fetchPrivateContent([]);
2164                } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) {
2165                    const privateContent = JSON.parse(browserStorage.getItem(private_content_key));
2166                    if (
2167                        privateContent &&
2168                        privateContentExpires &&
2169                        privateContent.cart &&
2170                        privateContent.customer
2171                    ) {
2172                        dispatchPrivateContent(privateContent);
2173                    } else {
2174                        fetchPrivateContent([]);
2175                    }
2176                } else {
2177                    if (document.getElementById('default-section-data')) {
2178                        const privateContent = JSON.parse(document.getElementById('default-section-data').innerText.trim());
2179                        dispatchPrivateContent(privateContent);
2180                    } else {
2181                        dispatchPrivateContent({});
2182                    }
2183                }
2184
2185            } catch (error) {
2186                console.warn('Error retrieving Private Content:', error);
2187            }
2188        }
2189
2190        hyva.alpineInitialized(loadSectionData)
2191        window.addEventListener('reload-customer-section-data', loadSectionData);
2192
2193        window.processSectionDataBeforeDispatch = window.processSectionDataBeforeDispatch || (data => data);
2194
2195        function dispatchPrivateContent(data) {
2196
2197            const privateContentEvent = new CustomEvent("private-content-loaded", {
2198                detail: {
2199                    data: window.processSectionDataBeforeDispatch(data)
2200                }
2201            });
2202            window.dispatchEvent(privateContentEvent);
2203        }
2204
2205        function fetchPrivateContent(sections) {
2206            fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, {
2207                method: 'GET',
2208                headers: {
2209                    'Content-Type': 'application/json',
2210                    'X-Requested-With': 'XMLHttpRequest'
2211                }
2212            })
2213                .then(response => response.ok && response.json())
2214                .then(
2215                    data => {
2216                        if (data) {
2217                            try {
2218                                const browserStorage = hyva.getBrowserStorage();
2219
2220                                // merge new data preserving non-invalidated sections
2221                                const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {};
2222
2223                                                                if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) {
2224                                    delete oldSectionData['checkout-data'];
2225                                }
2226                                const newSectionData = Object.assign(oldSectionData, data);
2227
2228                                dispatchPrivateContent(newSectionData);
2229
2230                                // don't persist messages, they've been dispatched already
2231                                if (newSectionData.messages && newSectionData.messages.messages ) {
2232                                    newSectionData.messages.messages = [];
2233                                }
2234
2235                                browserStorage.setItem(private_content_key, JSON.stringify(newSectionData));
2236
2237                                const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString();
2238                                browserStorage.setItem(private_content_expire_key, expiresAt);
2239
2240                                const newCookieVersion = hyva.getCookie(private_content_version_key);
2241                                browserStorage.setItem(private_content_version_key, newCookieVersion);
2242
2243                                // We don't need the section_data_ids in Hyvä, but we store them for compatibility
2244                                // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout
2245                                hyva.setCookie(
2246                                    section_data_ids_key,
2247                                    JSON.stringify(
2248                                        Object.keys(data).reduce((sectionDataIds, sectionKey) => {
2249                                            sectionDataIds[sectionKey] = data[sectionKey]['data_id'];
2250                                            return sectionDataIds;
2251                                        }, {})
2252                                    ),
2253                                    false,
2254                                    true
2255                                );
2256                            } catch (error) {
2257                                console.warn("Couldn't store privateContent", error);
2258                            }
2259                        }
2260                    }
2261                )
2262                .catch(error => {
2263                    console.warn("Couldn't fetch privateContent", error);
2264                });
2265        }
2266    }
2267    //# sourceURL=hyva-private-content.js
2268</script>
vendor: 1 bytes, line 2268
2268
2269<script>
2270    (() => {
2271        document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc()));
2272    })()
2273</script>
vendor: 1 bytes, line 2273
2273
2274<script>
2275    (events => {
2276        const dispatchUserInteractionEvent = () => {
2277            events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent))
2278            window.dispatchEvent(new Event('init-external-scripts'))
2279        };
2280        events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true}))
2281    })(['touchstart', 'mousemove', 'wheel', 'scroll', 'keydown']);
2282    //# sourceURL=hyva-init-external-scripts.js
2283</script>
2283
2284
2285<script>
2286    'use strict';
2287
2288    (function() {
2289
2290        const robinhqScriptUrl = "https://selfservice.robinhq.com/external/robin/bho08e5m.js";
2291
2292        const loadRobinhqScript = (event) => {
2293            let scriptExists = document.getElementById('robinhq-script');
2294            if (scriptExists) {
2295                return;
2296            }
2297
2298            let script = document.createElement('script');
2299            script.setAttribute('type', 'text/javascript');
2300            script.setAttribute('src', robinhqScriptUrl);
2301            script.setAttribute('id', 'robinhq-script');
2302            document.head.appendChild(script);
2303        }
2304
2305        // trigger load on mobile by any interaction
2306        document.body.addEventListener('touchstart', loadRobinhqScript, {once: true});
2307
2308        // trigger load on desktop on any mouse movement
2309        document.body.addEventListener('mouseover', loadRobinhqScript, {once: true});
2310
2311    }());
2312
2313</script>
vendor: 1 bytes, line 2313
2313
2314<script>
2315    window.addEventListener('alpine:init', () => {
2316        Alpine.data('mapCmsElement', () => ({
2317            mapEl: null,
2318            locations: [],
2319            apiKey: null,
2320            mapId: null,
2321            zoom: 8,
2322            showControls: false,
2323            mapTarget: null,
2324
2325            async init() {
2326                this.mapEl = this.$el;
2327                this.apiKey = this.mapEl.dataset.apiKey;
2328                this.mapId = this.mapEl.dataset.mapId;
2329                this.showControls = this.mapEl.getAttribute('data-show-controls') === 'true';
2330                this.mapTarget = this.$refs.mapTarget || this.mapEl;
2331
2332                const locationEls = this.mapEl.querySelectorAll('[data-latitude][data-longitude]');
2333                if (!locationEls.length) return;
2334
2335                locationEls.forEach((el) => {
2336                    const lat = parseFloat(el.getAttribute('data-latitude'));
2337                    const lng = parseFloat(el.getAttribute('data-longitude'));
2338                    if (isNaN(lat) || isNaN(lng)) return;
2339                    this.locations.push({
2340                        position: { lat, lng },
2341                        locationName: el.getAttribute('data-location-name') || '',
2342                        content: el.innerHTML.trim()
2343                    });
2344                });
2345
2346                if (!this.locations.length || !this.apiKey) return;
2347
2348                this.bootstrapGoogleMaps();
2349                try {
2350                    await this.renderMap();
2351                } catch (e) {
2352                    console.error('Google Maps failed to load:', e);
2353                }
2354            },
2355
2356            bootstrapGoogleMaps() {
2357                if (window.google && window.google.maps && window.google.maps.importLibrary) return;
2358                // prettier-ignore
2359                (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={});var r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({key: this.apiKey, v: "weekly"});
2360            },
2361
2362            async renderMap() {
2363                const { Map, InfoWindow } = await google.maps.importLibrary('maps');
2364                const bounds = [];
2365                let activeInfoWindow;
2366
2367                const map = new Map(this.mapTarget, {
2368                    ...(this.mapId ? { mapId: this.mapId } : {}),
2369                    zoom: this.zoom,
2370                    center: this.locations[0].position,
2371                    scrollwheel: false,
2372                    disableDefaultUI: !this.showControls,
2373                    mapTypeControl: this.showControls,
2374                    mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DEFAULT }
2375                });
2376
2377                if (this.mapId) { /* If mapId is set use advanced marker */
2378                    const { AdvancedMarkerElement } = await google.maps.importLibrary('marker');
2379                    this.locations.forEach(({ locationName, content, position }) => {
2380                        const hasPopup = !!(locationName || content);
2381                        const marker = new AdvancedMarkerElement({ map, position, title: locationName, gmpClickable: hasPopup });
2382
2383                        if (hasPopup) {
2384                            const infowindow = new InfoWindow({ content, maxWidth: 350 });
2385                            marker.addEventListener('gmp-click', () => {
2386                                if (activeInfoWindow) activeInfoWindow.close();
2387                                infowindow.open(map, marker);
2388                                activeInfoWindow = infowindow;
2389                            });
2390                        }
2391                        bounds.push(position);
2392                    });
2393                } else { /* Else use legacy */
2394                    const { Marker } = await google.maps.importLibrary('marker');
2395                    this.locations.forEach(({ locationName, content, position }) => {
2396                        const hasPopup = !!(locationName || content);
2397                        const marker = new Marker({ map, position, title: locationName });
2398
2399                        if (hasPopup) {
2400                            const infowindow = new InfoWindow({ content, maxWidth: 350 });
2401                            marker.addListener('click', () => {
2402                                if (activeInfoWindow) activeInfoWindow.close();
2403                                infowindow.open(map, marker);
2404                                activeInfoWindow = infowindow;
2405                            });
2406                        }
2407                        bounds.push(position);
2408                    });
2409                }
2410
2411                if (bounds.length > 1) {
2412                    const latLngBounds = new google.maps.LatLngBounds();
2413                    bounds.forEach(b => latLngBounds.extend(b));
2414                    map.fitBounds(latLngBounds);
2415                } else {
2416                    map.setCenter(bounds[0]);
2417                    map.setZoom(this.zoom);
2418                }
2419            }
2420        }));
2421    }, { once: true });
2422</script>
vendor: 1 bytes, line 2422
2422
2423<script>
2424    document.addEventListener("alpine:init", () => {
2425        Alpine.data('hyvaCmsToggle', () => ({
2426            open: false,
2427            notOpen() {
2428                return !this.open;
2429            },
2430            show() {
2431                this.open = true
2432            },
2433            hide() {
2434                this.open = false
2435            },
2436            toggle() {
2437                this.open = !this.open
2438            }
2439        }))
2440    });
2441</script>
vendor: 1 bytes, line 2441
2441
2442<script type="text/json" id="default-section-data">
2443    {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":{"AD":{"name":"Andorra"},"AE":{"name":"Vereinigte Arabische Emirate"},"AF":{"name":"Afghanistan"},"AG":{"name":"Antigua und Barbuda"},"AI":{"name":"Anguilla"},"AL":{"name":"Albanien","regions":{"840":{"code":"AL-01","name":"Berat"},"841":{"code":"AL-09","name":"Dib\u00ebr"},"842":{"code":"AL-02","name":"Durr\u00ebs"},"843":{"code":"AL-03","name":"Elbasan"},"844":{"code":"AL-04","name":"Fier"},"845":{"code":"AL-05","name":"Gjirokast\u00ebr"},"846":{"code":"AL-06","name":"Kor\u00e7\u00eb"},"847":{"code":"AL-07","name":"Kuk\u00ebs"},"848":{"code":"AL-08","name":"Lezh\u00eb"},"849":{"code":"AL-10","name":"Shkod\u00ebr"},"850":{"code":"AL-11","name":"Tiran\u00eb"},"851":{"code":"AL-12","name":"Vlor\u00eb"}}},"AM":{"name":"Armenien"},"AO":{"name":"Angola"},"AQ":{"name":"Antarktis"},"AR":{"name":"Argentinien","regions":{"853":{"code":"AR-B","name":"Buenos Aires"},"854":{"code":"AR-K","name":"Catamarca"},"855":{"code":"AR-H","name":"Chaco"},"856":{"code":"AR-U","name":"Chubut"},"852":{"code":"AR-C","name":"Ciudad Aut\u00f3noma de Buenos Aires"},"857":{"code":"AR-X","name":"C\u00f3rdoba"},"858":{"code":"AR-W","name":"Corrientes"},"859":{"code":"AR-E","name":"Entre R\u00edos"},"860":{"code":"AR-P","name":"Formosa"},"861":{"code":"AR-Y","name":"Jujuy"},"862":{"code":"AR-L","name":"La Pampa"},"863":{"code":"AR-F","name":"La Rioja"},"864":{"code":"AR-M","name":"Mendoza"},"865":{"code":"AR-N","name":"Misiones"},"866":{"code":"AR-Q","name":"Neuqu\u00e9n"},"867":{"code":"AR-R","name":"R\u00edo Negro"},"868":{"code":"AR-A","name":"Salta"},"869":{"code":"AR-J","name":"San Juan"},"870":{"code":"AR-D","name":"San Luis"},"871":{"code":"AR-Z","name":"Santa Cruz"},"872":{"code":"AR-S","name":"Santa Fe"},"873":{"code":"AR-G","name":"Santiago del Estero"},"874":{"code":"AR-V","name":"Tierra del Fuego"},"875":{"code":"AR-T","name":"Tucum\u00e1n"}}},"AS":{"name":"Amerikanisch-Samoa"},"AT":{"name":"\u00d6sterreich","regions":{"102":{"code":"BL","name":"Burgenland"},"99":{"code":"KN","name":"K\u00e4rnten"},"96":{"code":"NO","name":"Nieder\u00f6sterreich"},"97":{"code":"OO","name":"Ober\u00f6sterreich"},"98":{"code":"SB","name":"Salzburg"},"100":{"code":"ST","name":"Steiermark"},"101":{"code":"TI","name":"Tirol"},"103":{"code":"VB","name":"Vorarlberg"},"95":{"code":"WI","name":"Wien"}}},"AU":{"name":"Australien","regions":{"569":{"code":"ACT","name":"Australian Capital Territory"},"570":{"code":"NSW","name":"New South Wales"},"576":{"code":"NT","name":"Northern Territory"},"572":{"code":"QLD","name":"Queensland"},"573":{"code":"SA","name":"South Australia"},"574":{"code":"TAS","name":"Tasmania"},"571":{"code":"VIC","name":"Victoria"},"575":{"code":"WA","name":"Western Australia"}}},"AW":{"name":"Aruba"},"AX":{"name":"\u00c5landinseln"},"AZ":{"name":"Aserbaidschan"},"BA":{"name":"Bosnien und Herzegowina"},"BB":{"name":"Barbados"},"BD":{"name":"Bangladesch"},"BE":{"name":"Belgien","regions":{"609":{"code":"VAN","name":"Antwerpen"},"610":{"code":"WBR","name":"Brabant wallon"},"611":{"code":"BRU","name":"Brussels-Capital Region"},"612":{"code":"WHT","name":"Hainaut"},"614":{"code":"WLG","name":"Li\u00e8ge"},"613":{"code":"VLI","name":"Limburg"},"615":{"code":"WLX","name":"Luxembourg"},"616":{"code":"WNA","name":"Namur"},"617":{"code":"VOV","name":"Oost-Vlaanderen"},"618":{"code":"VBR","name":"Vlaams-Brabant"},"619":{"code":"VWV","name":"West-Vlaanderen"}}},"BF":{"name":"Burkina Faso"},"BG":{"name":"Bulgarien","regions":{"620":{"code":"BG-01","name":"Blagoevgrad"},"621":{"code":"BG-02","name":"Burgas"},"627":{"code":"BG-08","name":"Dobrich"},"626":{"code":"BG-07","name":"Gabrovo"},"645":{"code":"BG-26","name":"Haskovo"},"628":{"code":"BG-09","name":"Kardzhali"},"629":{"code":"BG-10","name":"Kyustendil"},"630":{"code":"BG-11","name":"Lovech"},"631":{"code":"BG-12","name":"Montana"},"632":{"code":"BG-13","name":"Pazardzhik"},"633":{"code":"BG-14","name":"Pernik"},"634":{"code":"BG-15","name":"Pleven"},"635":{"code":"BG-16","name":"Plovdiv"},"636":{"code":"BG-17","name":"Razgrad"},"637":{"code":"BG-18","name":"Ruse"},"646":{"code":"BG-27","name":"Shumen"},"638":{"code":"BG-19","name":"Silistra"},"639":{"code":"BG-20","name":"Sliven"},"640":{"code":"BG-21","name":"Smolyan"},"641":{"code":"BG-22","name":"Sofia City"},"642":{"code":"BG-23","name":"Sofia Province"},"643":{"code":"BG-24","name":"Stara Zagora"},"644":{"code":"BG-25","name":"Targovishte"},"622":{"code":"BG-03","name":"Varna"},"623":{"code":"BG-04","name":"Veliko Tarnovo"},"624":{"code":"BG-05","name":"Vidin"},"625":{"code":"BG-06","name":"Vratsa"},"647":{"code":"BG-28","name":"Yambol"}}},"BH":{"name":"Bahrain"},"BI":{"name":"Burundi"},"BJ":{"name":"Benin"},"BL":{"name":"St. Barth\u00e9lemy"},"BM":{"name":"Bermuda"},"BN":{"name":"Brunei Darussalam"}
2443,"BO":{"name":"Bolivien","regions":{"877":{"code":"BO-H","name":"Chuquisaca"},"876":{"code":"BO-C","name":"Cochabamba"},"878":{"code":"BO-B","name":"El Beni"},"879":{"code":"BO-L","name":"La Paz"},"880":{"code":"BO-O","name":"Oruro"},"881":{"code":"BO-N","name":"Pando"},"882":{"code":"BO-P","name":"Potos\u00ed"},"883":{"code":"BO-S","name":"Santa Cruz"},"884":{"code":"BO-T","name":"Tarija"}}},"BQ":{"name":"Karibische Niederlande"},"BR":{"name":"Brasilien","regions":{"485":{"code":"AC","name":"Acre"},"486":{"code":"AL","name":"Alagoas"},"487":{"code":"AP","name":"Amap\u00e1"},"488":{"code":"AM","name":"Amazonas"},"489":{"code":"BA","name":"Bahia"},"490":{"code":"CE","name":"Cear\u00e1"},"511":{"code":"DF","name":"Distrito Federal"},"491":{"code":"ES","name":"Esp\u00edrito Santo"},"492":{"code":"GO","name":"Goi\u00e1s"},"493":{"code":"MA","name":"Maranh\u00e3o"},"494":{"code":"MT","name":"Mato Grosso"},"495":{"code":"MS","name":"Mato Grosso do Sul"},"496":{"code":"MG","name":"Minas Gerais"},"497":{"code":"PA","name":"Par\u00e1"},"498":{"code":"PB","name":"Para\u00edba"},"499":{"code":"PR","name":"Paran\u00e1"},"500":{"code":"PE","name":"Pernambuco"},"501":{"code":"PI","name":"Piau\u00ed"},"502":{"code":"RJ","name":"Rio de Janeiro"},"503":{"code":"RN","name":"Rio Grande do Norte"},"504":{"code":"RS","name":"Rio Grande do Sul"},"505":{"code":"RO","name":"Rond\u00f4nia"},"506":{"code":"RR","name":"Roraima"},"507":{"code":"SC","name":"Santa Catarina"},"508":{"code":"SP","name":"S\u00e3o Paulo"},"509":{"code":"SE","name":"Sergipe"},"510":{"code":"TO","name":"Tocantins"}}},"BS":{"name":"Bahamas"},"BT":{"name":"Bhutan"},"BV":{"name":"Bouvetinsel"},"BW":{"name":"Botsuana"},"BY":{"name":"Belarus","regions":{"1101":{"code":"BY-BR","name":"Bresckaja voblas\u0107"},"1102":{"code":"BY-HO","name":"Homie\u013askaja voblas\u0107"},"1103":{"code":"BY-HM","name":"Horad Minsk"},"1104":{"code":"BY-HR","name":"Hrodzienskaja voblas\u0107"},"1105":{"code":"BY-MA","name":"Mahilio\u016dskaja voblas\u0107"},"1106":{"code":"BY-MI","name":"Minskaja voblas\u0107"},"1107":{"code":"BY-VI","name":"Viciebskaja voblas\u0107"}}},"BZ":{"name":"Belize"},"CA":{"name":"Kanada","regions":{"66":{"code":"AB","name":"Alberta"},"67":{"code":"BC","name":"British Columbia"},"68":{"code":"MB","name":"Manitoba"},"70":{"code":"NB","name":"New Brunswick"},"69":{"code":"NL","name":"Newfoundland and Labrador"},"72":{"code":"NT","name":"Northwest Territories"},"71":{"code":"NS","name":"Nova Scotia"},"73":{"code":"NU","name":"Nunavut"},"74":{"code":"ON","name":"Ontario"},"75":{"code":"PE","name":"Prince Edward Island"},"76":{"code":"QC","name":"Quebec"},"77":{"code":"SK","name":"Saskatchewan"},"78":{"code":"YT","name":"Yukon Territory"}}},"CC":{"name":"Kokosinseln"},"CD":{"name":"Kongo-Kinshasa"},"CF":{"name":"Zentralafrikanische Republik"},"CG":{"name":"Kongo-Brazzaville"},"CH":{"name":"Schweiz","regions":{"104":{"code":"AG","name":"Aargau"},"106":{"code":"AR","name":"Appenzell Ausserrhoden"},"105":{"code":"AI","name":"Appenzell Innerrhoden"},"108":{"code":"BL","name":"Basel-Landschaft"},"109":{"code":"BS","name":"Basel-Stadt"},"107":{"code":"BE","name":"Bern"},"110":{"code":"FR","name":"Friburg"},"111":{"code":"GE","name":"Geneva"},"112":{"code":"GL","name":"Glarus"},"113":{"code":"GR","name":"Graub\u00fcnden"},"114":{"code":"JU","name":"Jura"},"115":{"code":"LU","name":"Lucerne"},"116":{"code":"NE","name":"Neuch\u00e2tel"},"117":{"code":"NW","name":"Nidwalden"},"118":{"code":"OW","name":"Obwalden"},"120":{"code":"SH","name":"Schaffhausen"},"122":{"code":"SZ","name":"Schwyz"},"121":{"code":"SO","name":"Solothurn"},"119":{"code":"SG","name":"St. Gallen"},"123":{"code":"TG","name":"Thurgau"},"124":{"code":"TI","name":"Ticino"},"125":{"code":"UR","name":"Uri"},"126":{"code":"VD","name":"Vaud"},"127":{"code":"VS","name":"Wallis"},"128":{"code":"ZG","name":"Zug"},"129":{"code":"ZH","name":"Z\u00fcrich"}}},"CI":{"name":"C\u00f4te d\u2019Ivoire"},"CK":{"name":"Cookinseln"},"CL":{"name":"Chile","regions":{"885":{"code":"CL-AI","name":"Ais\u00e9n del General Carlos Iba\u00f1ez del Campo"},"886":{"code":"CL-AN","name":"Antofagasta"},"887":{"code":"CL-AP","name":"Arica y Parinacota"},"889":{"code":"CL-AT","name":"Atacama"},"890":{"code":"CL-BI","name":"Biob\u00edo"},"891":{"code":"CL-CO","name":"Coquimbo"},"888":{"code":"CL-AR","name":"La Araucan\u00eda"},"892":{"code":"CL-LI","name":"Libertador General Bernardo O'Higgins"}
2443,"893":{"code":"CL-LL","name":"Los Lagos"},"894":{"code":"CL-LR","name":"Los R\u00edos"},"895":{"code":"CL-MA","name":"Magallanes"},"896":{"code":"CL-ML","name":"Maule"},"897":{"code":"CL-NB","name":"\u00d1uble"},"898":{"code":"CL-RM","name":"Regi\u00f3n Metropolitana de Santiago"},"899":{"code":"CL-TA","name":"Tarapac\u00e1"},"900":{"code":"CL-VS","name":"Valpara\u00edso"}}},"CM":{"name":"Kamerun"},"CN":{"name":"China","regions":{"648":{"code":"CN-AH","name":"Anhui Sheng"},"649":{"code":"CN-BJ","name":"Beijing Shi"},"650":{"code":"CN-CQ","name":"Chongqing Shi"},"651":{"code":"CN-FJ","name":"Fujian Sheng"},"652":{"code":"CN-GS","name":"Gansu Sheng"},"653":{"code":"CN-GD","name":"Guangdong Sheng"},"654":{"code":"CN-GX","name":"Guangxi Zhuangzu Zizhiqu"},"655":{"code":"CN-GZ","name":"Guizhou Sheng"},"656":{"code":"CN-HI","name":"Hainan Sheng"},"657":{"code":"CN-HE","name":"Hebei Sheng"},"658":{"code":"CN-HL","name":"Heilongjiang Sheng"},"659":{"code":"CN-HA","name":"Henan Sheng"},"660":{"code":"CN-HK","name":"Hong Kong SAR"},"661":{"code":"CN-HB","name":"Hubei Sheng"},"662":{"code":"CN-HN","name":"Hunan Sheng"},"663":{"code":"CN-JS","name":"Jiangsu Sheng"},"664":{"code":"CN-JX","name":"Jiangxi Sheng"},"665":{"code":"CN-JL","name":"Jilin Sheng"},"666":{"code":"CN-LN","name":"Liaoning Sheng"},"667":{"code":"CN-MO","name":"Macao SAR"},"668":{"code":"CN-NM","name":"Nei Mongol Zizhiqu"},"669":{"code":"CN-NX","name":"Ningxia Huizi Zizhiqu"},"670":{"code":"CN-QH","name":"Qinghai Sheng"},"671":{"code":"CN-SN","name":"Shaanxi Sheng"},"672":{"code":"CN-SD","name":"Shandong Sheng"},"673":{"code":"CN-SH","name":"Shanghai Shi"},"674":{"code":"CN-SX","name":"Shanxi Sheng"},"675":{"code":"CN-SC","name":"Sichuan Sheng"},"676":{"code":"CN-TW","name":"Taiwan Sheng"},"677":{"code":"CN-TJ","name":"Tianjin Shi"},"678":{"code":"CN-XJ","name":"Xinjiang Uygur Zizhiqu"},"679":{"code":"CN-XZ","name":"Xizang Zizhiqu"},"680":{"code":"CN-YN","name":"Yunnan Sheng"},"681":{"code":"CN-ZJ","name":"Zhejiang Sheng"}}},"CO":{"name":"Kolumbien","regions":{"682":{"code":"CO-AMA","name":"Amazonas"},"683":{"code":"CO-ANT","name":"Antioquia"},"684":{"code":"CO-ARA","name":"Arauca"},"685":{"code":"CO-ATL","name":"Atl\u00e1ntico"},"686":{"code":"CO-BOL","name":"Bol\u00edvar"},"687":{"code":"CO-BOY","name":"Boyac\u00e1"},"688":{"code":"CO-CAL","name":"Caldas"},"689":{"code":"CO-CAQ","name":"Caquet\u00e1"},"690":{"code":"CO-CAS","name":"Casanare"},"691":{"code":"CO-CAU","name":"Cauca"},"692":{"code":"CO-CES","name":"Cesar"},"693":{"code":"CO-CHO","name":"Choc\u00f3"},"694":{"code":"CO-COR","name":"C\u00f3rdoba"},"695":{"code":"CO-CUN","name":"Cundinamarca"},"696":{"code":"CO-GUA","name":"Guain\u00eda"},"697":{"code":"CO-GUV","name":"Guaviare"},"698":{"code":"CO-HUL","name":"Huila"},"699":{"code":"CO-LAG","name":"La Guajira"},"700":{"code":"CO-MAG","name":"Magdalena"},"701":{"code":"CO-MET","name":"Meta"},"702":{"code":"CO-NAR","name":"Nari\u00f1o"},"703":{"code":"CO-NSA","name":"Norte de Santander"},"704":{"code":"CO-PUT","name":"Putumayo"},"705":{"code":"CO-QUI","name":"Quind\u00edo"},"706":{"code":"CO-RIS","name":"Risaralda"},"707":{"code":"CO-SAP","name":"San Andr\u00e9s y Providencia"},"708":{"code":"CO-SAN","name":"Santander"},"709":{"code":"CO-SUC","name":"Sucre"},"710":{"code":"CO-TOL","name":"Tolima"},"711":{"code":"CO-VAC","name":"Valle del Cauca"},"712":{"code":"CO-VAU","name":"Vaup\u00e9s"},"713":{"code":"CO-VID","name":"Vichada"}}},"CR":{"name":"Costa Rica","regions":{"1123":{"code":"CR-AL","name":"Alajuela"},"1124":{"code":"CR-CA","name":"Cartago"},"1126":{"code":"CR-GU","name":"Guanacaste"},"1125":{"code":"CR-HE","name":"Heredia"},"1128":{"code":"CR-LI","name":"Lim\u00f3n"},"1127":{"code":"CR-PU","name":"Puntarenas"},"1122":{"code":"CR-SJ","name":"San Jos\u00e9"}}},"CU":{"name":"Kuba"},"CV":{"name":"Cabo Verde"},"CW":{"name":"Cura\u00e7ao"},"CX":{"name":"Weihnachtsinsel"},"CY":{"name":"Zypern"},"CZ":{"name":"Tschechien","regions":{"1110":{"code":"CZ-31","name":"Jiho\u010desk\u00fd kraj"},"1118":{"code":"CZ-64","name":"Jihomoravsk\u00fd kraj"},"1112":{"code":"CZ-41","name":"Karlovarsk\u00fd kraj"},"1117":{"code":"CZ-63","name":"Kraj Vyso\u010dina"},"1115":{"code":"CZ-52","name":"Kr\u00e1lov\u00e9hradeck\u00fd kraj"},"1114":{"code":"CZ-51","name":"Libereck\u00fd kraj"},"1121":{"code":"CZ-80","name":"Moravskoslezsk\u00fd kraj"}
2443,"1119":{"code":"CZ-71","name":"Olomouck\u00fd kraj"},"1116":{"code":"CZ-53","name":"Pardubick\u00fd kraj"},"1111":{"code":"CZ-32","name":"Plze\u0148sk\u00fd kraj"},"1108":{"code":"CZ-10","name":"Praha, Hlavn\u00ed m\u011bsto"},"1109":{"code":"CZ-20","name":"St\u0159edo\u010desk\u00fd kraj"},"1113":{"code":"CZ-42","name":"\u00dasteck\u00fd kraj"},"1120":{"code":"CZ-72","name":"Zl\u00ednsk\u00fd kraj"}}},"DE":{"name":"Deutschland","regions":{"80":{"code":"BAW","name":"Baden-W\u00fcrttemberg"},"81":{"code":"BAY","name":"Bayern"},"82":{"code":"BER","name":"Berlin"},"83":{"code":"BRG","name":"Brandenburg"},"84":{"code":"BRE","name":"Bremen"},"85":{"code":"HAM","name":"Hamburg"},"86":{"code":"HES","name":"Hessen"},"87":{"code":"MEC","name":"Mecklenburg-Vorpommern"},"79":{"code":"NDS","name":"Niedersachsen"},"88":{"code":"NRW","name":"Nordrhein-Westfalen"},"89":{"code":"RHE","name":"Rheinland-Pfalz"},"90":{"code":"SAR","name":"Saarland"},"91":{"code":"SAS","name":"Sachsen"},"92":{"code":"SAC","name":"Sachsen-Anhalt"},"93":{"code":"SCN","name":"Schleswig-Holstein"},"94":{"code":"THE","name":"Th\u00fcringen"}}},"DJ":{"name":"Dschibuti"},"DK":{"name":"D\u00e4nemark","regions":{"901":{"code":"DK-84","name":"Hovedstaden"},"902":{"code":"DK-82","name":"Midtjylland"},"903":{"code":"DK-81","name":"Nordjylland"},"904":{"code":"DK-85","name":"Sj\u00e6lland"},"905":{"code":"DK-83","name":"Syddanmark"}}},"DM":{"name":"Dominica"},"DO":{"name":"Dominikanische Republik"},"DZ":{"name":"Algerien"},"EC":{"name":"Ecuador","regions":{"906":{"code":"EC-A","name":"Azuay"},"907":{"code":"EC-B","name":"Bol\u00edvar"},"908":{"code":"EC-F","name":"Ca\u00f1ar"},"909":{"code":"EC-C","name":"Carchi"},"910":{"code":"EC-H","name":"Chimborazo"},"911":{"code":"EC-X","name":"Cotopaxi"},"912":{"code":"EC-O","name":"El Oro"},"913":{"code":"EC-E","name":"Esmeraldas"},"914":{"code":"EC-W","name":"Gal\u00e1pagos"},"915":{"code":"EC-G","name":"Guayas"},"916":{"code":"EC-I","name":"Imbabura"},"917":{"code":"EC-L","name":"Loja"},"918":{"code":"EC-R","name":"Los R\u00edos"},"919":{"code":"EC-M","name":"Manab\u00ed"},"920":{"code":"EC-S","name":"Morona Santiago"},"921":{"code":"EC-N","name":"Napo"},"922":{"code":"EC-D","name":"Orellana"},"923":{"code":"EC-Y","name":"Pastaza"},"924":{"code":"EC-P","name":"Pichincha"},"925":{"code":"EC-SE","name":"Santa Elena"},"926":{"code":"EC-SD","name":"Santo Domingo de los Ts\u00e1chilas"},"927":{"code":"EC-U","name":"Sucumb\u00edos"},"928":{"code":"EC-T","name":"Tungurahua"},"929":{"code":"EC-Z","name":"Zamora Chinchipe"}}},"EE":{"name":"Estland","regions":{"340":{"code":"EE-37","name":"Harjumaa"},"341":{"code":"EE-39","name":"Hiiumaa"},"342":{"code":"EE-44","name":"Ida-Virumaa"},"344":{"code":"EE-51","name":"J\u00e4rvamaa"},"343":{"code":"EE-49","name":"J\u00f5gevamaa"},"346":{"code":"EE-59","name":"L\u00e4\u00e4ne-Virumaa"},"345":{"code":"EE-57","name":"L\u00e4\u00e4nemaa"},"348":{"code":"EE-67","name":"P\u00e4rnumaa"},"347":{"code":"EE-65","name":"P\u00f5lvamaa"},"349":{"code":"EE-70","name":"Raplamaa"},"350":{"code":"EE-74","name":"Saaremaa"},"351":{"code":"EE-78","name":"Tartumaa"},"352":{"code":"EE-82","name":"Valgamaa"},"353":{"code":"EE-84","name":"Viljandimaa"},"354":{"code":"EE-86","name":"V\u00f5rumaa"}}},"EG":{"name":"\u00c4gypten"},"EH":{"name":"Westsahara"},"ER":{"name":"Eritrea"},"ES":{"name":"Spanien","regions":{"130":{"code":"A Coru\u0441a","name":"A Coru\u00f1a"},"131":{"code":"Alava","name":"Alava"},"132":{"code":"Albacete","name":"Albacete"},"133":{"code":"Alicante","name":"Alicante"},"134":{"code":"Almeria","name":"Almeria"},"135":{"code":"Asturias","name":"Asturias"},"136":{"code":"Avila","name":"Avila"},"137":{"code":"Badajoz","name":"Badajoz"},"138":{"code":"Baleares","name":"Baleares"},"139":{"code":"Barcelona","name":"Barcelona"},"140":{"code":"Burgos","name":"Burgos"},"141":{"code":"Caceres","name":"Caceres"},"142":{"code":"Cadiz","name":"Cadiz"},"143":{"code":"Cantabria","name":"Cantabria"},"144":{"code":"Castellon","name":"Castellon"},"145":{"code":"Ceuta","name":"Ceuta"},"146":{"code":"Ciudad Real","name":"Ciudad Real"},"147":{"code":"Cordoba","name":"Cordoba"},"148":{"code":"Cuenca","name":"Cuenca"},"149":{"code":"Girona","name":"Girona"},"150":{"code":"Granada","name":"Granada"},"151":{"code":"Guadalajara","name":"Guadalajara"},"152":{"code":"Guipuzcoa","name":"Guipuzcoa"},"153":{"code":"Huelva","name":"Huelva"},"154":{"code":"Huesca","name":"Huesca"},"155":{"code":"Jaen","name":"Jaen"},"156":{"code":"La Rioja","name":"La Rioja"},"157":{"code":"Las Palmas","name":"Las Palmas"},"158":{"code":"Leon","name":"Leon"},"159":{"code":"Lleida","name":"Lleida"},"160":{"code":"Lugo","name":"Lugo"},"161":{"code":"Madrid","name":"Madrid"},"162":{"code":"Malaga","name":"Malaga"},"163":{"code":"Melilla","name":"Melilla"},"164":{"code":"Murcia","name":"Murcia"},"165":{"code":"Navarra","name":"Navarra"},"166":{"code":"Ourense","name":"Ourense"},"167":{"code":"Palencia","name":"Palencia"},"168":{"code":"Pontevedra","name":"Pontevedra"},"169":{"code":"Salamanca","name":"Salamanca"},"170":{"code":"Santa Cruz de Tenerife","name":"Santa Cruz de Tenerife"},"171":{"code":"Segovia","name":"Segovia"},"172":{"code":"Sevilla","name":"Sevilla"},"173":{"code":"Soria","name":"Soria"},"174":{"code":"Tarragona","name":"Tarragona"},"175":{"code":"Teruel","name":"Teruel"},"176":{"code":"Toledo","name":"Toledo"},"177":{"code":"Valencia","name":"Valencia"},"178":{"code":"Valladolid","name":"Valladolid"}
2443,"179":{"code":"Vizcaya","name":"Vizcaya"},"180":{"code":"Zamora","name":"Zamora"},"181":{"code":"Zaragoza","name":"Zaragoza"}}},"ET":{"name":"\u00c4thiopien"},"FI":{"name":"Finnland","regions":{"339":{"code":"Ahvenanmaa","name":"Ahvenanmaa"},"333":{"code":"Etel\u00e4-Karjala","name":"Etel\u00e4-Karjala"},"326":{"code":"Etel\u00e4-Pohjanmaa","name":"Etel\u00e4-Pohjanmaa"},"325":{"code":"Etel\u00e4-Savo","name":"Etel\u00e4-Savo"},"337":{"code":"It\u00e4-Uusimaa","name":"It\u00e4-Uusimaa"},"322":{"code":"Kainuu","name":"Kainuu"},"335":{"code":"Kanta-H\u00e4me","name":"Kanta-H\u00e4me"},"330":{"code":"Keski-Pohjanmaa","name":"Keski-Pohjanmaa"},"331":{"code":"Keski-Suomi","name":"Keski-Suomi"},"338":{"code":"Kymenlaakso","name":"Kymenlaakso"},"320":{"code":"Lappi","name":"Lappi"},"334":{"code":"P\u00e4ij\u00e4t-H\u00e4me","name":"P\u00e4ij\u00e4t-H\u00e4me"},"328":{"code":"Pirkanmaa","name":"Pirkanmaa"},"327":{"code":"Pohjanmaa","name":"Pohjanmaa"},"323":{"code":"Pohjois-Karjala","name":"Pohjois-Karjala"},"321":{"code":"Pohjois-Pohjanmaa","name":"Pohjois-Pohjanmaa"},"324":{"code":"Pohjois-Savo","name":"Pohjois-Savo"},"329":{"code":"Satakunta","name":"Satakunta"},"336":{"code":"Uusimaa","name":"Uusimaa"},"332":{"code":"Varsinais-Suomi","name":"Varsinais-Suomi"}}},"FJ":{"name":"Fidschi"},"FK":{"name":"Falklandinseln"},"FM":{"name":"Mikronesien"},"FO":{"name":"F\u00e4r\u00f6er"},"FR":{"name":"Frankreich","regions":{"182":{"code":"1","name":"Ain"},"183":{"code":"2","name":"Aisne"},"184":{"code":"3","name":"Allier"},"185":{"code":"4","name":"Alpes-de-Haute-Provence"},"187":{"code":"6","name":"Alpes-Maritimes"},"188":{"code":"7","name":"Ard\u00e8che"},"189":{"code":"8","name":"Ardennes"},"190":{"code":"9","name":"Ari\u00e8ge"},"191":{"code":"10","name":"Aube"},"192":{"code":"11","name":"Aude"},"193":{"code":"12","name":"Aveyron"},"249":{"code":"67","name":"Bas-Rhin"},"194":{"code":"13","name":"Bouches-du-Rh\u00f4ne"},"195":{"code":"14","name":"Calvados"},"196":{"code":"15","name":"Cantal"},"197":{"code":"16","name":"Charente"},"198":{"code":"17","name":"Charente-Maritime"},"199":{"code":"18","name":"Cher"},"200":{"code":"19","name":"Corr\u00e8ze"},"201":{"code":"2A","name":"Corse-du-Sud"},"203":{"code":"21","name":"C\u00f4te-d'Or"},"204":{"code":"22","name":"C\u00f4tes-d'Armor"},"205":{"code":"23","name":"Creuse"},"261":{"code":"79","name":"Deux-S\u00e8vres"},"206":{"code":"24","name":"Dordogne"},"207":{"code":"25","name":"Doubs"},"208":{"code":"26","name":"Dr\u00f4me"},"273":{"code":"91","name":"Essonne"},"209":{"code":"27","name":"Eure"},"210":{"code":"28","name":"Eure-et-Loir"},"211":{"code":"29","name":"Finist\u00e8re"},"212":{"code":"30","name":"Gard"},"214":{"code":"32","name":"Gers"},"215":{"code":"33","name":"Gironde"},"250":{"code":"68","name":"Haut-Rhin"},"202":{"code":"2B","name":"Haute-Corse"},"213":{"code":"31","name":"Haute-Garonne"},"225":{"code":"43","name":"Haute-Loire"},"234":{"code":"52","name":"Haute-Marne"},"252":{"code":"70","name":"Haute-Sa\u00f4ne"},"256":{"code":"74","name":"Haute-Savoie"},"269":{"code":"87","name":"Haute-Vienne"},"186":{"code":"5","name":"Hautes-Alpes"},"247":{"code":"65","name":"Hautes-Pyr\u00e9n\u00e9es"},"274":{"code":"92","name":"Hauts-de-Seine"},"216":{"code":"34","name":"H\u00e9rault"},"217":{"code":"35","name":"Ille-et-Vilaine"},"218":{"code":"36","name":"Indre"},"219":{"code":"37","name":"Indre-et-Loire"},"220":{"code":"38","name":"Is\u00e8re"},"221":{"code":"39","name":"Jura"},"222":{"code":"40","name":"Landes"},"223":{"code":"41","name":"Loir-et-Cher"},"224":{"code":"42","name":"Loire"},"226":{"code":"44","name":"Loire-Atlantique"},"227":{"code":"45","name":"Loiret"},"228":{"code":"46","name":"Lot"},"229":{"code":"47","name":"Lot-et-Garonne"},"230":{"code":"48","name":"Loz\u00e8re"},"231":{"code":"49","name":"Maine-et-Loire"},"232":{"code":"50","name":"Manche"},"233":{"code":"51","name":"Marne"},"235":{"code":"53","name":"Mayenne"},"236":{"code":"54","name":"Meurthe-et-Moselle"},"237":{"code":"55","name":"Meuse"},"238":{"code":"56","name":"Morbihan"},"239":{"code":"57","name":"Moselle"},"240":{"code":"58","name":"Ni\u00e8vre"},"241":{"code":"59","name":"Nord"},"242":{"code":"60","name":"Oise"},"243":{"code":"61","name":"Orne"},"257":{"code":"75","name":"Paris"},"244":{"code":"62","name":"Pas-de-Calais"},"245":{"code":"63","name":"Puy-de-D\u00f4me"},"246":{"code":"64","name":"Pyr\u00e9n\u00e9es-Atlantiques"},"248":{"code":"66","name":"Pyr\u00e9n\u00e9es-Orientales"},"251":{"code":"69","name":"Rh\u00f4ne"},"253":{"code":"71","name":"Sa\u00f4ne-et-Loire"},"254":{"code":"72","name":"Sarthe"},"255":{"code":"73","name":"Savoie"},"259":{"code":"77","name":"Seine-et-Marne"},"258":{"code":"76","name":"Seine-Maritime"},"275":{"code":"93","name":"Seine-Saint-Denis"},"262":{"code":"80","name":"Somme"},"263":{"code":"81","name":"Tarn"},"264":{"code":"82","name":"Tarn-et-Garonne"},"272":{"code":"90","name":"Territoire-de-Belfort"},"277":{"code":"95","name":"Val-d'Oise"}
2443,"276":{"code":"94","name":"Val-de-Marne"},"265":{"code":"83","name":"Var"},"266":{"code":"84","name":"Vaucluse"},"267":{"code":"85","name":"Vend\u00e9e"},"268":{"code":"86","name":"Vienne"},"270":{"code":"88","name":"Vosges"},"271":{"code":"89","name":"Yonne"},"260":{"code":"78","name":"Yvelines"}}},"GA":{"name":"Gabun"},"GB":{"name":"Vereinigtes K\u00f6nigreich"},"GD":{"name":"Grenada"},"GE":{"name":"Georgien"},"GF":{"name":"Franz\u00f6sisch-Guayana"},"GG":{"name":"Guernsey"},"GH":{"name":"Ghana"},"GI":{"name":"Gibraltar"},"GL":{"name":"Gr\u00f6nland"},"GM":{"name":"Gambia"},"GN":{"name":"Guinea"},"GP":{"name":"Guadeloupe"},"GQ":{"name":"\u00c4quatorialguinea"},"GR":{"name":"Griechenland","regions":{"943":{"code":"GR-69","name":"\u00c1gion \u00d3ros"},"930":{"code":"GR-A","name":"Anatolik\u00ed Makedon\u00eda kai Thr\u00e1ki"},"931":{"code":"GR-I","name":"Attik\u00ed"},"932":{"code":"GR-G","name":"Dytik\u00ed Ell\u00e1da"},"933":{"code":"GR-C","name":"Dytik\u00ed Makedon\u00eda"},"934":{"code":"GR-F","name":"Ion\u00eda N\u00edsia"},"935":{"code":"GR-D","name":"\u00cdpeiros"},"936":{"code":"GR-B","name":"Kentrik\u00ed Makedon\u00eda"},"937":{"code":"GR-M","name":"Kr\u00edti"},"938":{"code":"GR-L","name":"N\u00f3tio Aiga\u00edo"},"939":{"code":"GR-J","name":"Pelop\u00f3nnisos"},"940":{"code":"GR-H","name":"Stere\u00e1 Ell\u00e1da"},"941":{"code":"GR-E","name":"Thessal\u00eda"},"942":{"code":"GR-K","name":"V\u00f3reio Aiga\u00edo"}}},"GS":{"name":"S\u00fcdgeorgien und die S\u00fcdlichen Sandwichinseln"},"GT":{"name":"Guatemala"},"GU":{"name":"Guam"},"GW":{"name":"Guinea-Bissau"},"GY":{"name":"Guyana","regions":{"944":{"code":"GY-BA","name":"Barima-Waini"},"945":{"code":"GY-CU","name":"Cuyuni-Mazaruni"},"946":{"code":"GY-DE","name":"Demerara-Mahaica"},"947":{"code":"GY-EB","name":"East Berbice-Corentyne"},"948":{"code":"GY-ES","name":"Essequibo Islands-West Demerara"},"949":{"code":"GY-MA","name":"Mahaica-Berbice"},"950":{"code":"GY-PM","name":"Pomeroon-Supenaam"},"951":{"code":"GY-PT","name":"Potaro-Siparuni"},"952":{"code":"GY-UD","name":"Upper Demerara-Berbice"},"953":{"code":"GY-UT","name":"Upper Takutu-Upper Essequibo"}}},"HK":{"name":"Sonderverwaltungsregion Hongkong"},"HM":{"name":"Heard und McDonaldinseln"},"HN":{"name":"Honduras"},"HR":{"name":"Kroatien","regions":{"518":{"code":"HR-07","name":"Bjelovarsko-bilogorska \u017eupanija"},"523":{"code":"HR-12","name":"Brodsko-posavska \u017eupanija"},"530":{"code":"HR-19","name":"Dubrova\u010dko-neretvanska \u017eupanija"},"532":{"code":"HR-21","name":"Grad Zagreb"},"529":{"code":"HR-18","name":"Istarska \u017eupanija"},"515":{"code":"HR-04","name":"Karlova\u010dka \u017eupanija"},"517":{"code":"HR-06","name":"Koprivni\u010dko-kri\u017eeva\u010dka \u017eupanija"},"513":{"code":"HR-02","name":"Krapinsko-zagorska \u017eupanija"},"520":{"code":"HR-09","name":"Li\u010dko-senjska \u017eupanija"},"531":{"code":"HR-20","name":"Me\u0111imurska \u017eupanija"},"525":{"code":"HR-14","name":"Osje\u010dko-baranjska \u017eupanija"},"522":{"code":"HR-11","name":"Po\u017ee\u0161ko-slavonska \u017eupanija"},"519":{"code":"HR-08","name":"Primorsko-goranska \u017eupanija"},"526":{"code":"HR-15","name":"\u0160ibensko-kninska \u017eupanija"},"514":{"code":"HR-03","name":"Sisa\u010dko-moslava\u010dka \u017eupanija"},"528":{"code":"HR-17","name":"Splitsko-dalmatinska \u017eupanija"},"516":{"code":"HR-05","name":"Vara\u017edinska \u017eupanija"},"521":{"code":"HR-10","name":"Viroviti\u010dko-podravska \u017eupanija"},"527":{"code":"HR-16","name":"Vukovarsko-srijemska \u017eupanija"},"524":{"code":"HR-13","name":"Zadarska \u017eupanija"},"512":{"code":"HR-01","name":"Zagreba\u010dka \u017eupanija"}}},"HT":{"name":"Haiti"},"HU":{"name":"Ungarn"},"ID":{"name":"Indonesien"},"IE":{"name":"Irland"},"IL":{"name":"Israel"},"IM":{"name":"Isle of Man"},"IN":{"name":"Indien","regions":{"533":{"code":"AN","name":"Andaman and Nicobar Islands"},"534":{"code":"AP","name":"Andhra Pradesh"},"535":{"code":"AR","name":"Arunachal Pradesh"},"536":{"code":"AS","name":"Assam"},"537":{"code":"BR","name":"Bihar"},"538":{"code":"CH","name":"Chandigarh"},"539":{"code":"CT","name":"Chhattisgarh"},"540":{"code":"DN","name":"Dadra and Nagar Haveli"},"541":{"code":"DD","name":"Daman and Diu"},"542":{"code":"DL","name":"Delhi"},"543":{"code":"GA","name":"Goa"},"544":{"code":"GJ","name":"Gujarat"},"545":{"code":"HR","name":"Haryana"},"546":{"code":"HP","name":"Himachal Pradesh"},"547":{"code":"JK","name":"Jammu and Kashmir"},"548":{"code":"JH","name":"Jharkhand"},"549":{"code":"KA","name":"Karnataka"},"550":{"code":"KL","name":"Kerala"},"1156":{"code":"LA","name":"Ladakh"},"551":{"code":"LD","name":"Lakshadweep"},"552":{"code":"MP","name":"Madhya Pradesh"},"553":{"code":"MH","name":"Maharashtra"},"554":{"code":"MN","name":"Manipur"},"555":{"code":"ML","name":"Meghalaya"},"556":{"code":"MZ","name":"Mizoram"},"557":{"code":"NL","name":"Nagaland"}
2443,"558":{"code":"OR","name":"Odisha"},"559":{"code":"PY","name":"Puducherry"},"560":{"code":"PB","name":"Punjab"},"561":{"code":"RJ","name":"Rajasthan"},"562":{"code":"SK","name":"Sikkim"},"563":{"code":"TN","name":"Tamil Nadu"},"564":{"code":"TG","name":"Telangana"},"565":{"code":"TR","name":"Tripura"},"566":{"code":"UP","name":"Uttar Pradesh"},"567":{"code":"UT","name":"Uttarakhand"},"568":{"code":"WB","name":"West Bengal"}}},"IO":{"name":"Britisches Territorium im Indischen Ozean"},"IQ":{"name":"Irak"},"IR":{"name":"Iran"},"IS":{"name":"Island","regions":{"960":{"code":"IS-07","name":"Austurland"},"954":{"code":"IS-01","name":"H\u00f6fu\u00f0borgarsv\u00e6\u00f0i"},"959":{"code":"IS-06","name":"Nor\u00f0urland eystra"},"958":{"code":"IS-05","name":"Nor\u00f0urland vestra"},"961":{"code":"IS-08","name":"Su\u00f0urland"},"955":{"code":"IS-02","name":"Su\u00f0urnes"},"957":{"code":"IS-04","name":"Vestfir\u00f0ir"},"956":{"code":"IS-03","name":"Vesturland"}}},"IT":{"name":"Italien","regions":{"714":{"code":"AG","name":"Agrigento"},"715":{"code":"AL","name":"Alessandria"},"716":{"code":"AN","name":"Ancona"},"717":{"code":"AO","name":"Aosta"},"719":{"code":"AR","name":"Arezzo"},"720":{"code":"AP","name":"Ascoli-Piceno"},"721":{"code":"AT","name":"Asti"},"722":{"code":"AV","name":"Avellino"},"723":{"code":"BA","name":"Bari"},"724":{"code":"BT","name":"Barletta-Andria-Trani"},"725":{"code":"BL","name":"Belluno"},"726":{"code":"BN","name":"Benevento"},"727":{"code":"BG","name":"Bergamo"},"728":{"code":"BI","name":"Biella"},"729":{"code":"BO","name":"Bologna"},"730":{"code":"BZ","name":"Bolzano"},"731":{"code":"BS","name":"Brescia"},"732":{"code":"BR","name":"Brindisi"},"733":{"code":"CA","name":"Cagliari"},"734":{"code":"CL","name":"Caltanissetta"},"735":{"code":"CB","name":"Campobasso"},"736":{"code":"CI","name":"Carbonia Iglesias"},"737":{"code":"CE","name":"Caserta"},"738":{"code":"CT","name":"Catania"},"739":{"code":"CZ","name":"Catanzaro"},"740":{"code":"CH","name":"Chieti"},"741":{"code":"CO","name":"Como"},"742":{"code":"CS","name":"Cosenza"},"743":{"code":"CR","name":"Cremona"},"744":{"code":"KR","name":"Crotone"},"745":{"code":"CN","name":"Cuneo"},"746":{"code":"EN","name":"Enna"},"747":{"code":"FM","name":"Fermo"},"748":{"code":"FE","name":"Ferrara"},"749":{"code":"FI","name":"Firenze"},"750":{"code":"FG","name":"Foggia"},"751":{"code":"FC","name":"Forli-Cesena"},"752":{"code":"FR","name":"Frosinone"},"753":{"code":"GE","name":"Genova"},"754":{"code":"GO","name":"Gorizia"},"755":{"code":"GR","name":"Grosseto"},"756":{"code":"IM","name":"Imperia"},"757":{"code":"IS","name":"Isernia"},"718":{"code":"AQ","name":"L'Aquila"},"758":{"code":"SP","name":"La-Spezia"},"759":{"code":"LT","name":"Latina"},"760":{"code":"LE","name":"Lecce"},"761":{"code":"LC","name":"Lecco"},"762":{"code":"LI","name":"Livorno"},"763":{"code":"LO","name":"Lodi"},"764":{"code":"LU","name":"Lucca"},"765":{"code":"MC","name":"Macerata"},"766":{"code":"MN","name":"Mantova"},"767":{"code":"MS","name":"Massa-Carrara"},"768":{"code":"MT","name":"Matera"},"769":{"code":"VS","name":"Medio Campidano"},"770":{"code":"ME","name":"Messina"},"771":{"code":"MI","name":"Milano"},"772":{"code":"MO","name":"Modena"},"773":{"code":"MB","name":"Monza-Brianza"},"774":{"code":"NA","name":"Napoli"},"775":{"code":"NO","name":"Novara"},"776":{"code":"NU","name":"Nuoro"},"777":{"code":"OG","name":"Ogliastra"},"778":{"code":"OT","name":"Olbia Tempio"},"779":{"code":"OR","name":"Oristano"},"780":{"code":"PD","name":"Padova"},"781":{"code":"PA","name":"Palermo"},"782":{"code":"PR","name":"Parma"},"783":{"code":"PV","name":"Pavia"},"784":{"code":"PG","name":"Perugia"},"785":{"code":"PU","name":"Pesaro-Urbino"},"786":{"code":"PE","name":"Pescara"},"787":{"code":"PC","name":"Piacenza"},"788":{"code":"PI","name":"Pisa"},"789":{"code":"PT","name":"Pistoia"},"790":{"code":"PN","name":"Pordenone"},"791":{"code":"PZ","name":"Potenza"},"792":{"code":"PO","name":"Prato"},"793":{"code":"RG","name":"Ragusa"},"794":{"code":"RA","name":"Ravenna"},"795":{"code":"RC","name":"Reggio-Calabria"},"796":{"code":"RE","name":"Reggio-Emilia"},"797":{"code":"RI","name":"Rieti"},"798":{"code":"RN","name":"Rimini"},"799":{"code":"RM","name":"Roma"},"800":{"code":"RO","name":"Rovigo"},"801":{"code":"SA","name":"Salerno"},"802":{"code":"SS","name":"Sassari"},"803":{"code":"SV","name":"Savona"},"804":{"code":"SI","name":"Siena"},"805":{"code":"SR","name":"Siracusa"},"806":{"code":"SO","name":"Sondrio"},"807":{"code":"TA","name":"Taranto"},"808":{"code":"TE","name":"Teramo"},"809":{"code":"TR","name":"Terni"},"810":{"code":"TO","name":"Torino"},"811":{"code":"TP","name":"Trapani"},"812":{"code":"TN","name":"Trento"},"813":{"code":"TV","name":"Treviso"},"814":{"code":"TS","name":"Trieste"},"815":{"code":"UD","name":"Udine"},"816":{"code":"VA","name":"Varese"},"817":{"code":"VE","name":"Venezia"},"818":{"code":"VB","name":"Verbania"},"819":{"code":"VC","name":"Vercelli"},"820":{"code":"VR","name":"Verona"}
2443,"821":{"code":"VV","name":"Vibo-Valentia"},"822":{"code":"VI","name":"Vicenza"},"823":{"code":"VT","name":"Viterbo"}}},"JE":{"name":"Jersey"},"JM":{"name":"Jamaika"},"JO":{"name":"Jordanien"},"JP":{"name":"Japan"},"KE":{"name":"Kenia"},"KG":{"name":"Kirgisistan"},"KH":{"name":"Kambodscha"},"KI":{"name":"Kiribati"},"KM":{"name":"Komoren"},"KN":{"name":"St. Kitts und Nevis"},"KP":{"name":"Nordkorea"},"KR":{"name":"S\u00fcdkorea"},"KW":{"name":"Kuwait"},"KY":{"name":"Kaimaninseln"},"KZ":{"name":"Kasachstan"},"LA":{"name":"Laos"},"LB":{"name":"Libanon"},"LC":{"name":"St. Lucia"},"LI":{"name":"Liechtenstein"},"LK":{"name":"Sri Lanka"},"LR":{"name":"Liberia"},"LS":{"name":"Lesotho"},"LT":{"name":"Litauen","regions":{"475":{"code":"LT-AL","name":"Alytaus Apskritis"},"476":{"code":"LT-KU","name":"Kauno Apskritis"},"477":{"code":"LT-KL","name":"Klaip\u0117dos Apskritis"},"478":{"code":"LT-MR","name":"Marijampol\u0117s Apskritis"},"479":{"code":"LT-PN","name":"Panev\u0117\u017eio Apskritis"},"480":{"code":"LT-SA","name":"\u0160iauli\u0173 Apskritis"},"481":{"code":"LT-TA","name":"Taurag\u0117s Apskritis"},"482":{"code":"LT-TE","name":"Tel\u0161i\u0173 Apskritis"},"483":{"code":"LT-UT","name":"Utenos Apskritis"},"484":{"code":"LT-VL","name":"Vilniaus Apskritis"}}},"LU":{"name":"Luxemburg"},"LV":{"name":"Lettland","regions":{"471":{"code":"\u0100da\u017eu novads","name":"\u0100da\u017eu novads"},"366":{"code":"Aglonas novads","name":"Aglonas novads"},"367":{"code":"LV-AI","name":"Aizkraukles novads"},"368":{"code":"Aizputes novads","name":"Aizputes novads"},"369":{"code":"Akn\u012bstes novads","name":"Akn\u012bstes novads"},"370":{"code":"Alojas novads","name":"Alojas novads"},"371":{"code":"Alsungas novads","name":"Alsungas novads"},"372":{"code":"LV-AL","name":"Al\u016bksnes novads"},"373":{"code":"Amatas novads","name":"Amatas novads"},"374":{"code":"Apes novads","name":"Apes novads"},"375":{"code":"Auces novads","name":"Auces novads"},"376":{"code":"Bab\u012btes novads","name":"Bab\u012btes novads"},"377":{"code":"Baldones novads","name":"Baldones novads"},"378":{"code":"Baltinavas novads","name":"Baltinavas novads"},"379":{"code":"LV-BL","name":"Balvu novads"},"380":{"code":"LV-BU","name":"Bauskas novads"},"381":{"code":"Bever\u012bnas novads","name":"Bever\u012bnas novads"},"382":{"code":"Broc\u0113nu novads","name":"Broc\u0113nu novads"},"383":{"code":"Burtnieku novads","name":"Burtnieku novads"},"384":{"code":"Carnikavas novads","name":"Carnikavas novads"},"387":{"code":"LV-CE","name":"C\u0113su novads"},"385":{"code":"Cesvaines novads","name":"Cesvaines novads"},"386":{"code":"Ciblas novads","name":"Ciblas novads"},"388":{"code":"Dagdas novads","name":"Dagdas novads"},"355":{"code":"LV-DGV","name":"Daugavpils"},"389":{"code":"LV-DA","name":"Daugavpils novads"},"390":{"code":"LV-DO","name":"Dobeles novads"},"391":{"code":"Dundagas novads","name":"Dundagas novads"},"392":{"code":"Durbes novads","name":"Durbes novads"},"393":{"code":"Engures novads","name":"Engures novads"},"472":{"code":"\u0112rg\u013cu novads","name":"\u0112rg\u013cu novads"},"394":{"code":"Garkalnes novads","name":"Garkalnes novads"},"395":{"code":"Grobi\u0146as novads","name":"Grobi\u0146as novads"},"396":{"code":"LV-GU","name":"Gulbenes novads"},"397":{"code":"Iecavas novads","name":"Iecavas novads"},"398":{"code":"Ik\u0161\u0137iles novads","name":"Ik\u0161\u0137iles novads"},"399":{"code":"Il\u016bkstes novads","name":"Il\u016bkstes novads"},"400":{"code":"In\u010dukalna novads","name":"In\u010dukalna novads"},"401":{"code":"Jaunjelgavas novads","name":"Jaunjelgavas novads"},"402":{"code":"Jaunpiebalgas novads","name":"Jaunpiebalgas novads"},"403":{"code":"Jaunpils novads","name":"Jaunpils novads"},"357":{"code":"J\u0113kabpils","name":"J\u0113kabpils"},"405":{"code":"LV-JK","name":"J\u0113kabpils novads"},"356":{"code":"LV-JEL","name":"Jelgava"},"404":{"code":"LV-JL","name":"Jelgavas novads"},"358":{"code":"LV-JUR","name":"J\u016brmala"},"406":{"code":"Kandavas novads","name":"Kandavas novads"},"412":{"code":"K\u0101rsavas novads","name":"K\u0101rsavas novads"},"473":{"code":"\u0136eguma novads","name":"\u0136eguma novads"},"474":{"code":"\u0136ekavas novads","name":"\u0136ekavas novads"},"407":{"code":"Kokneses novads","name":"Kokneses novads"},"410":{"code":"LV-KR","name":"Kr\u0101slavas novads"},"408":{"code":"Krimuldas novads","name":"Krimuldas novads"},"409":{"code":"Krustpils novads","name":"Krustpils novads"},"411":{"code":"LV-KU","name":"Kuld\u012bgas novads"},"413":{"code":"Lielv\u0101rdes novads","name":"Lielv\u0101rdes novads"},"359":{"code":"LV-LPX","name":"Liep\u0101ja"},"360":{"code":"LV-LE","name":"Liep\u0101jas novads"},"417":{"code":"L\u012bgatnes novads","name":"L\u012bgatnes novads"},"414":{"code":"LV-LM","name":"Limba\u017eu novads"},"418":{"code":"L\u012bv\u0101nu novads","name":"L\u012bv\u0101nu novads"},"415":{"code":"Lub\u0101nas novads","name":"Lub\u0101nas novads"},"416":{"code":"LV-LU","name":"Ludzas novads"},"419":{"code":"LV-MA","name":"Madonas novads"},"421":{"code":"M\u0101lpils novads","name":"M\u0101lpils novads"},"422":{"code":"M\u0101rupes novads","name":"M\u0101rupes novads"},"420":{"code":"Mazsalacas novads","name":"Mazsalacas novads"},"423":{"code":"Nauk\u0161\u0113nu novads","name":"Nauk\u0161\u0113nu novads"},"424":{"code":"Neretas novads","name":"Neretas novads"},"425":{"code":"N\u012bcas novads","name":"N\u012bcas novads"},"426":{"code":"LV-OG","name":"Ogres novads"},"427":{"code":"Olaines novads","name":"Olaines novads"},"428":{"code":"Ozolnieku novads","name":"Ozolnieku novads"},"432":{"code":"P\u0101rgaujas novads","name":"P\u0101rgaujas novads"},"433":{"code":"P\u0101vilostas novads","name":"P\u0101vilostas novads"},"434":{"code":"P\u013cavi\u0146u novads","name":"P\u013cavi\u0146u novads"},"429":{"code":"LV-PR","name":"Prei\u013cu novads"},"430":{"code":"Priekules novads","name":"Priekules novads"},"431":{"code":"Prieku\u013cu novads","name":"Prieku\u013cu novads"},"435":{"code":"Raunas novads","name":"Raunas novads"},"361":{"code":"LV-REZ","name":"R\u0113zekne"},"442":{"code":"LV-RE","name":"R\u0113zeknes novads"},"436":{"code":"Riebi\u0146u novads","name":"Riebi\u0146u novads"},"362":{"code":"LV-RIX","name":"R\u012bga"},"363":{"code":"LV-RI","name":"R\u012bgas novads"},"437":{"code":"Rojas novads","name":"Rojas novads"},"438":{"code":"Ropa\u017eu novads","name":"Ropa\u017eu novads"},"439":{"code":"Rucavas novads","name":"Rucavas novads"},"440":{"code":"Rug\u0101ju novads","name":"Rug\u0101ju novads"},"443":{"code":"R\u016bjienas novads","name":"R\u016bjienas novads"},"441":{"code":"Rund\u0101les novads","name":"Rund\u0101les novads"},"444":{"code":"Salacgr\u012bvas novads","name":"Salacgr\u012bvas novads"},"445":{"code":"Salas novads","name":"Salas novads"},"446":{"code":"Salaspils novads","name":"Salaspils novads"},"447":{"code":"LV-SA","name":"Saldus novads"},"448":{"code":"Saulkrastu novads","name":"Saulkrastu novads"},"455":{"code":"S\u0113jas novads","name":"S\u0113jas novads"},"449":{"code":"Siguldas novads","name":"Siguldas novads"}
2443,"451":{"code":"Skr\u012bveru novads","name":"Skr\u012bveru novads"},"450":{"code":"Skrundas novads","name":"Skrundas novads"},"452":{"code":"Smiltenes novads","name":"Smiltenes novads"},"453":{"code":"Stopi\u0146u novads","name":"Stopi\u0146u novads"},"454":{"code":"Stren\u010du novads","name":"Stren\u010du novads"},"456":{"code":"LV-TA","name":"Talsu novads"},"458":{"code":"T\u0113rvetes novads","name":"T\u0113rvetes novads"},"457":{"code":"LV-TU","name":"Tukuma novads"},"459":{"code":"Vai\u0146odes novads","name":"Vai\u0146odes novads"},"460":{"code":"LV-VK","name":"Valkas novads"},"364":{"code":"Valmiera","name":"Valmiera"},"461":{"code":"LV-VM","name":"Valmieras novads"},"462":{"code":"Varak\u013c\u0101nu novads","name":"Varak\u013c\u0101nu novads"},"469":{"code":"V\u0101rkavas novads","name":"V\u0101rkavas novads"},"463":{"code":"Vecpiebalgas novads","name":"Vecpiebalgas novads"},"464":{"code":"Vecumnieku novads","name":"Vecumnieku novads"},"365":{"code":"LV-VEN","name":"Ventspils"},"465":{"code":"LV-VE","name":"Ventspils novads"},"466":{"code":"Vies\u012btes novads","name":"Vies\u012btes novads"},"467":{"code":"Vi\u013cakas novads","name":"Vi\u013cakas novads"},"468":{"code":"Vi\u013c\u0101nu novads","name":"Vi\u013c\u0101nu novads"},"470":{"code":"Zilupes novads","name":"Zilupes novads"}}},"LY":{"name":"Libyen"},"MA":{"name":"Marokko"},"MC":{"name":"Monaco"},"MD":{"name":"Republik Moldau"},"ME":{"name":"Montenegro"},"MF":{"name":"St. Martin"},"MG":{"name":"Madagaskar"},"MH":{"name":"Marshallinseln"},"MK":{"name":"Nordmazedonien"},"ML":{"name":"Mali"},"MM":{"name":"Myanmar"},"MN":{"name":"Mongolei"},"MO":{"name":"Sonderverwaltungsregion Macau"},"MP":{"name":"N\u00f6rdliche Marianen"},"MQ":{"name":"Martinique"},"MR":{"name":"Mauretanien"},"MS":{"name":"Montserrat"},"MT":{"name":"Malta"},"MU":{"name":"Mauritius"},"MV":{"name":"Malediven"},"MW":{"name":"Malawi"},"MX":{"name":"Mexiko","regions":{"577":{"code":"AGU","name":"Aguascalientes"},"578":{"code":"BCN","name":"Baja California"},"579":{"code":"BCS","name":"Baja California Sur"},"580":{"code":"CAM","name":"Campeche"},"581":{"code":"CHP","name":"Chiapas"},"582":{"code":"CHH","name":"Chihuahua"},"583":{"code":"CMX","name":"Ciudad de M\u00e9xico"},"584":{"code":"COA","name":"Coahuila"},"585":{"code":"COL","name":"Colima"},"586":{"code":"DUR","name":"Durango"},"587":{"code":"MEX","name":"Estado de M\u00e9xico"},"588":{"code":"GUA","name":"Guanajuato"},"589":{"code":"GRO","name":"Guerrero"},"590":{"code":"HID","name":"Hidalgo"},"591":{"code":"JAL","name":"Jalisco"},"592":{"code":"MIC","name":"Michoac\u00e1n"},"593":{"code":"MOR","name":"Morelos"},"594":{"code":"NAY","name":"Nayarit"},"595":{"code":"NLE","name":"Nuevo Le\u00f3n"},"596":{"code":"OAX","name":"Oaxaca"},"597":{"code":"PUE","name":"Puebla"},"598":{"code":"QUE","name":"Quer\u00e9taro"},"599":{"code":"ROO","name":"Quintana Roo"},"600":{"code":"SLP","name":"San Luis Potos\u00ed"},"601":{"code":"SIN","name":"Sinaloa"},"602":{"code":"SON","name":"Sonora"},"603":{"code":"TAB","name":"Tabasco"},"604":{"code":"TAM","name":"Tamaulipas"},"605":{"code":"TLA","name":"Tlaxcala"},"606":{"code":"VER","name":"Veracruz"},"607":{"code":"YUC","name":"Yucat\u00e1n"},"608":{"code":"ZAC","name":"Zacatecas"}}},"MY":{"name":"Malaysia"},"MZ":{"name":"Mosambik"},"NA":{"name":"Namibia"},"NC":{"name":"Neukaledonien"},"NE":{"name":"Niger"},"NF":{"name":"Norfolkinsel"},"NG":{"name":"Nigeria"},"NI":{"name":"Nicaragua"},"NL":{"name":"Niederlande"},"NO":{"name":"Norwegen"},"NP":{"name":"Nepal"},"NR":{"name":"Nauru"},"NU":{"name":"Niue"},"NZ":{"name":"Neuseeland"},"OM":{"name":"Oman"},"PA":{"name":"Panama"},"PE":{"name":"Peru","regions":{"981":{"code":"PE-AMA","name":"Amazonas"},"982":{"code":"PE-ANC","name":"Ancash"},"983":{"code":"PE-APU","name":"Apur\u00edmac"},"984":{"code":"PE-ARE","name":"Arequipa"},"985":{"code":"PE-AYA","name":"Ayacucho"},"986":{"code":"PE-CAJ","name":"Cajamarca"},"987":{"code":"PE-CUS","name":"Cusco"},"988":{"code":"PE-CAL","name":"El Callao"},"989":{"code":"PE-HUV","name":"Huancavelica"},"990":{"code":"PE-HUC","name":"Hu\u00e1nuco"},"991":{"code":"PE-ICA","name":"Ica"},"992":{"code":"PE-JUN","name":"Jun\u00edn"},"993":{"code":"PE-LAL","name":"La Libertad"},"994":{"code":"PE-LAM","name":"Lambayeque"},"995":{"code":"PE-LIM","name":"Lima"},"996":{"code":"PE-LOR","name":"Loreto"},"997":{"code":"PE-MDD","name":"Madre de Dios"},"998":{"code":"PE-MOQ","name":"Moquegua"}
2443,"980":{"code":"PE-LMA","name":"Municipalidad Metropolitana de Lima"},"999":{"code":"PE-PAS","name":"Pasco"},"1000":{"code":"PE-PIU","name":"Piura"},"1001":{"code":"PE-PUN","name":"Puno"},"1002":{"code":"PE-SAM","name":"San Mart\u00edn"},"1003":{"code":"PE-TAC","name":"Tacna"},"1004":{"code":"PE-TUM","name":"Tumbes"},"1005":{"code":"PE-UCA","name":"Ucayali"}}},"PF":{"name":"Franz\u00f6sisch-Polynesien"},"PG":{"name":"Papua-Neuguinea"},"PH":{"name":"Philippinen"},"PK":{"name":"Pakistan"},"PL":{"name":"Polen","regions":{"824":{"code":"PL-02","name":"dolno\u015bl\u0105skie"},"825":{"code":"PL-04","name":"kujawsko-pomorskie"},"826":{"code":"PL-06","name":"lubelskie"},"827":{"code":"PL-08","name":"lubuskie"},"830":{"code":"PL-14","name":"mazowieckie"},"829":{"code":"PL-12","name":"ma\u0142opolskie"},"831":{"code":"PL-16","name":"opolskie"},"832":{"code":"PL-18","name":"podkarpackie"},"833":{"code":"PL-20","name":"podlaskie"},"834":{"code":"PL-22","name":"pomorskie"},"835":{"code":"PL-24","name":"\u015bl\u0105skie"},"836":{"code":"PL-26","name":"\u015bwi\u0119tokrzyskie"},"837":{"code":"PL-28","name":"warmi\u0144sko-mazurskie"},"838":{"code":"PL-30","name":"wielkopolskie"},"839":{"code":"PL-32","name":"zachodniopomorskie"},"828":{"code":"PL-10","name":"\u0142\u00f3dzkie"}}},"PM":{"name":"St. Pierre und Miquelon"},"PN":{"name":"Pitcairninseln"},"PS":{"name":"Pal\u00e4stinensische Autonomiegebiete"},"PT":{"name":"Portugal","regions":{"1006":{"code":"PT-01","name":"Aveiro"},"1007":{"code":"PT-02","name":"Beja"},"1008":{"code":"PT-03","name":"Braga"},"1009":{"code":"PT-04","name":"Bragan\u00e7a"},"1010":{"code":"PT-05","name":"Castelo Branco"},"1011":{"code":"PT-06","name":"Coimbra"},"1012":{"code":"PT-07","name":"\u00c9vora"},"1013":{"code":"PT-08","name":"Faro"},"1014":{"code":"PT-09","name":"Guarda"},"1015":{"code":"PT-10","name":"Leiria"},"1016":{"code":"PT-11","name":"Lisboa"},"1017":{"code":"PT-12","name":"Portalegre"},"1018":{"code":"PT-13","name":"Porto"},"1025":{"code":"PT-30","name":"Regi\u00e3o Aut\u00f3noma da Madeira"},"1024":{"code":"PT-20","name":"Regi\u00e3o Aut\u00f3noma dos A\u00e7ores"},"1019":{"code":"PT-14","name":"Santar\u00e9m"},"1020":{"code":"PT-15","name":"Set\u00fabal"},"1021":{"code":"PT-16","name":"Viana do Castelo"},"1022":{"code":"PT-17","name":"Vila Real"},"1023":{"code":"PT-18","name":"Viseu"}}},"PW":{"name":"Palau"},"PY":{"name":"Paraguay","regions":{"963":{"code":"PY-16","name":"Alto Paraguay"},"964":{"code":"PY-10","name":"Alto Paran\u00e1"},"965":{"code":"PY-13","name":"Amambay"},"962":{"code":"PY-ASU","name":"Asunci\u00f3n"},"966":{"code":"PY-19","name":"Boquer\u00f3n"},"967":{"code":"PY-5","name":"Caaguaz\u00fa"},"968":{"code":"PY-6","name":"Caazap\u00e1"},"969":{"code":"PY-14","name":"Canindey\u00fa"},"970":{"code":"PY-11","name":"Central"},"971":{"code":"PY-1","name":"Concepci\u00f3n"},"972":{"code":"PY-3","name":"Cordillera"},"973":{"code":"PY-4","name":"Guair\u00e1"},"974":{"code":"PY-7","name":"Itap\u00faa"},"975":{"code":"PY-8","name":"Misiones"},"976":{"code":"PY-12","name":"\u00d1eembuc\u00fa"},"977":{"code":"PY-9","name":"Paraguar\u00ed"},"978":{"code":"PY-15","name":"Presidente Hayes"},"979":{"code":"PY-2","name":"San Pedro"}}},"QA":{"name":"Katar"},"RE":{"name":"R\u00e9union"},"RO":{"name":"Rum\u00e4nien","regions":{"278":{"code":"AB","name":"Alba"},"279":{"code":"AR","name":"Arad"},"280":{"code":"AG","name":"Arge\u015f"},"281":{"code":"BC","name":"Bac\u0103u"},"282":{"code":"BH","name":"Bihor"},"283":{"code":"BN","name":"Bistri\u0163a-N\u0103s\u0103ud"},"284":{"code":"BT","name":"Boto\u015fani"},"286":{"code":"BR","name":"Br\u0103ila"},"285":{"code":"BV","name":"Bra\u015fov"},"287":{"code":"B","name":"Bucure\u015fti"},"288":{"code":"BZ","name":"Buz\u0103u"},"290":{"code":"CL","name":"C\u0103l\u0103ra\u015fi"},"289":{"code":"CS","name":"Cara\u015f-Severin"},"291":{"code":"CJ","name":"Cluj"},"292":{"code":"CT","name":"Constan\u0163a"},"293":{"code":"CV","name":"Covasna"},"294":{"code":"DB","name":"D\u00e2mbovi\u0163a"},"295":{"code":"DJ","name":"Dolj"},"296":{"code":"GL","name":"Gala\u0163i"},"297":{"code":"GR","name":"Giurgiu"},"298":{"code":"GJ","name":"Gorj"},"299":{"code":"HR","name":"Harghita"},"300":{"code":"HD","name":"Hunedoara"},"301":{"code":"IL","name":"Ialomi\u0163a"},"302":{"code":"IS","name":"Ia\u015fi"},"303":{"code":"IF","name":"Ilfov"},"304":{"code":"MM","name":"Maramure\u015f"},"305":{"code":"MH","name":"Mehedin\u0163i"},"306":{"code":"MS","name":"Mure\u015f"},"307":{"code":"NT","name":"Neam\u0163"},"308":{"code":"OT","name":"Olt"},"309":{"code":"PH","name":"Prahova"},"311":{"code":"SJ","name":"S\u0103laj"},"310":{"code":"SM","name":"Satu-Mare"},"312":{"code":"SB","name":"Sibiu"},"313":{"code":"SV","name":"Suceava"},"314":{"code":"TR","name":"Teleorman"},"315":{"code":"TM","name":"Timi\u015f"},"316":{"code":"TL","name":"Tulcea"},"318":{"code":"VL","name":"V\u00e2lcea"},"317":{"code":"VS","name":"Vaslui"},"319":{"code":"VN","name":"Vrancea"}}},"RS":{"name":"Serbien"},"RU":{"name":"Russland"},"RW":{"name":"Ruanda"},"SA":{"name":"Saudi-Arabien"},"SB":{"name":"Salomonen"},"SC":{"name":"Seychellen"},"SD":{"name":"Sudan"},"SE":{"name":"Schweden","regions":{"1036":{"code":"SE-K","name":"Blekinge l\u00e4n"}
2443,"1037":{"code":"SE-W","name":"Dalarnas l\u00e4n"},"1039":{"code":"SE-X","name":"G\u00e4vleborgs l\u00e4n"},"1038":{"code":"SE-I","name":"Gotlands l\u00e4n"},"1040":{"code":"SE-N","name":"Hallands l\u00e4n"},"1041":{"code":"SE-Z","name":"J\u00e4mtlands l\u00e4n"},"1042":{"code":"SE-F","name":"J\u00f6nk\u00f6pings l\u00e4n"},"1043":{"code":"SE-H","name":"Kalmar l\u00e4n"},"1044":{"code":"SE-G","name":"Kronobergs l\u00e4n"},"1045":{"code":"SE-BD","name":"Norrbottens l\u00e4n"},"1055":{"code":"SE-T","name":"\u00d6rebro l\u00e4n"},"1056":{"code":"SE-E","name":"\u00d6sterg\u00f6tlands l\u00e4n"},"1046":{"code":"SE-M","name":"Sk\u00e5ne l\u00e4n"},"1048":{"code":"SE-D","name":"S\u00f6dermanlands l\u00e4n"},"1047":{"code":"SE-AB","name":"Stockholms l\u00e4n"},"1049":{"code":"SE-C","name":"Uppsala l\u00e4n"},"1050":{"code":"SE-S","name":"V\u00e4rmlands l\u00e4n"},"1051":{"code":"SE-AC","name":"V\u00e4sterbottens l\u00e4n"},"1052":{"code":"SE-Y","name":"V\u00e4sternorrlands l\u00e4n"},"1053":{"code":"SE-U","name":"V\u00e4stmanlands l\u00e4n"},"1054":{"code":"SE-O","name":"V\u00e4stra G\u00f6talands l\u00e4n"}}},"SG":{"name":"Singapur"},"SH":{"name":"St. Helena"},"SI":{"name":"Slowenien"},"SJ":{"name":"Spitzbergen und Jan Mayen"},"SK":{"name":"Slowakei"},"SL":{"name":"Sierra Leone"},"SM":{"name":"San Marino"},"SN":{"name":"Senegal"},"SO":{"name":"Somalia"},"SR":{"name":"Suriname","regions":{"1026":{"code":"SR-BR","name":"Brokopondo"},"1027":{"code":"SR-CM","name":"Commewijne"},"1028":{"code":"SR-CR","name":"Coronie"},"1029":{"code":"SR-MA","name":"Marowijne"},"1030":{"code":"SR-NI","name":"Nickerie"},"1031":{"code":"SR-PR","name":"Para"},"1032":{"code":"SR-PM","name":"Paramaribo"},"1033":{"code":"SR-SA","name":"Saramacca"},"1034":{"code":"SR-SI","name":"Sipaliwini"},"1035":{"code":"SR-WA","name":"Wanica"}}},"ST":{"name":"S\u00e3o Tom\u00e9 und Pr\u00edncipe"},"SV":{"name":"El Salvador"},"SX":{"name":"Sint Maarten"},"SY":{"name":"Syrien"},"SZ":{"name":"Eswatini"},"TC":{"name":"Turks- und Caicosinseln"},"TD":{"name":"Tschad"},"TF":{"name":"Franz\u00f6sische S\u00fcd- und Antarktisgebiete"},"TG":{"name":"Togo"},"TH":{"name":"Thailand"},"TJ":{"name":"Tadschikistan"},"TK":{"name":"Tokelau"},"TL":{"name":"Timor-Leste"},"TM":{"name":"Turkmenistan"},"TN":{"name":"Tunesien"},"TO":{"name":"Tonga"},"TR":{"name":"T\u00fcrkei"},"TT":{"name":"Trinidad und Tobago"},"TV":{"name":"Tuvalu"},"TW":{"name":"Taiwan"},"TZ":{"name":"Tansania"},"UA":{"name":"Ukraine","regions":{"1153":{"code":"UA-43","name":"Avtonomna Respublika Krym"},"1129":{"code":"UA-71","name":"Cherkaska oblast"},"1130":{"code":"UA-74","name":"Chernihivska oblast"},"1131":{"code":"UA-77","name":"Chernivetska oblast"},"1132":{"code":"UA-12","name":"Dnipropetrovska oblast"},"1133":{"code":"UA-14","name":"Donetska oblast"},"1134":{"code":"UA-26","name":"Ivano-Frankivska oblast"},"1135":{"code":"UA-63","name":"Kharkivska oblast"},"1136":{"code":"UA-65","name":"Khersonska oblast"},"1137":{"code":"UA-68","name":"Khmelnytska oblast"},"1138":{"code":"UA-35","name":"Kirovohradska oblast"},"1154":{"code":"UA-30","name":"Kyiv"},"1139":{"code":"UA-32","name":"Kyivska oblast"},"1140":{"code":"UA-09","name":"Luhanska oblast"},"1141":{"code":"UA-46","name":"Lvivska oblast"},"1142":{"code":"UA-48","name":"Mykolaivska oblast"},"1143":{"code":"UA-51","name":"Odeska oblast"},"1144":{"code":"UA-53","name":"Poltavska oblast"},"1145":{"code":"UA-56","name":"Rivnenska oblast"},"1155":{"code":"UA-40","name":"Sevastopol"},"1146":{"code":"UA-59","name":"Sumska oblast"},"1147":{"code":"UA-61","name":"Ternopilska oblast"},"1148":{"code":"UA-05","name":"Vinnytska oblast"},"1149":{"code":"UA-07","name":"Volynska oblast"},"1150":{"code":"UA-21","name":"Zakarpatska oblast"},"1151":{"code":"UA-23","name":"Zaporizka oblast"},"1152":{"code":"UA-18","name":"Zhytomyrska oblast"}}},"UG":{"name":"Uganda"},"UM":{"name":"Amerikanische \u00dcberseeinseln"},"US":{"name":"Vereinigte Staaten","regions":{"1":{"code":"AL","name":"Alabama"},"2":{"code":"AK","name":"Alaska"},"3":{"code":"AS","name":"American Samoa"},"4":{"code":"AZ","name":"Arizona"},"5":{"code":"AR","name":"Arkansas"},"6":{"code":"AE","name":"Armed Forces Africa"},"7":{"code":"AA","name":"Armed Forces Americas"},"8":{"code":"AE","name":"Armed Forces Canada"},"9":{"code":"AE","name":"Armed Forces Europe"},"10":{"code":"AE","name":"Armed Forces Middle East"},"11":{"code":"AP","name":"Armed Forces Pacific"},"12":{"code":"CA","name":"California"},"13":{"code":"CO","name":"Colorado"},"14":{"code":"CT","name":"Connecticut"},"15":{"code":"DE","name":"Delaware"},"16":{"code":"DC","name":"District of Columbia"},"17":{"code":"FM","name":"Federated States Of Micronesia"}
2443,"18":{"code":"FL","name":"Florida"},"19":{"code":"GA","name":"Georgia"},"20":{"code":"GU","name":"Guam"},"21":{"code":"HI","name":"Hawaii"},"22":{"code":"ID","name":"Idaho"},"23":{"code":"IL","name":"Illinois"},"24":{"code":"IN","name":"Indiana"},"25":{"code":"IA","name":"Iowa"},"26":{"code":"KS","name":"Kansas"},"27":{"code":"KY","name":"Kentucky"},"28":{"code":"LA","name":"Louisiana"},"29":{"code":"ME","name":"Maine"},"30":{"code":"MH","name":"Marshall Islands"},"31":{"code":"MD","name":"Maryland"},"32":{"code":"MA","name":"Massachusetts"},"33":{"code":"MI","name":"Michigan"},"34":{"code":"MN","name":"Minnesota"},"35":{"code":"MS","name":"Mississippi"},"36":{"code":"MO","name":"Missouri"},"37":{"code":"MT","name":"Montana"},"38":{"code":"NE","name":"Nebraska"},"39":{"code":"NV","name":"Nevada"},"40":{"code":"NH","name":"New Hampshire"},"41":{"code":"NJ","name":"New Jersey"},"42":{"code":"NM","name":"New Mexico"},"43":{"code":"NY","name":"New York"},"44":{"code":"NC","name":"North Carolina"},"45":{"code":"ND","name":"North Dakota"},"46":{"code":"MP","name":"Northern Mariana Islands"},"47":{"code":"OH","name":"Ohio"},"48":{"code":"OK","name":"Oklahoma"},"49":{"code":"OR","name":"Oregon"},"50":{"code":"PW","name":"Palau"},"51":{"code":"PA","name":"Pennsylvania"},"52":{"code":"PR","name":"Puerto Rico"},"53":{"code":"RI","name":"Rhode Island"},"54":{"code":"SC","name":"South Carolina"},"55":{"code":"SD","name":"South Dakota"},"56":{"code":"TN","name":"Tennessee"},"57":{"code":"TX","name":"Texas"},"58":{"code":"UT","name":"Utah"},"59":{"code":"VT","name":"Vermont"},"60":{"code":"VI","name":"Virgin Islands"},"61":{"code":"VA","name":"Virginia"},"62":{"code":"WA","name":"Washington"},"63":{"code":"WV","name":"West Virginia"},"64":{"code":"WI","name":"Wisconsin"},"65":{"code":"WY","name":"Wyoming"}}},"UY":{"name":"Uruguay","regions":{"1057":{"code":"UY-AR","name":"Artigas"},"1058":{"code":"UY-CA","name":"Canelones"},"1059":{"code":"UY-CL","name":"Cerro Largo"},"1060":{"code":"UY-CO","name":"Colonia"},"1061":{"code":"UY-DU","name":"Durazno"},"1062":{"code":"UY-FS","name":"Flores"},"1063":{"code":"UY-FD","name":"Florida"},"1064":{"code":"UY-LA","name":"Lavalleja"},"1065":{"code":"UY-MA","name":"Maldonado"},"1066":{"code":"UY-MO","name":"Montevideo"},"1067":{"code":"UY-PA","name":"Paysandu"},"1068":{"code":"UY-RN","name":"R\u00edo Negro"},"1069":{"code":"UY-RV","name":"Rivera"},"1070":{"code":"UY-RO","name":"Rocha"},"1071":{"code":"UY-SA","name":"Salto"},"1072":{"code":"UY-SJ","name":"San Jos\u00e9"},"1073":{"code":"UY-SO","name":"Soriano"},"1074":{"code":"UY-TA","name":"Tacuaremb\u00f3"},"1075":{"code":"UY-TT","name":"Treinta y Tres"}}},"UZ":{"name":"Usbekistan"},"VA":{"name":"Vatikanstadt"},"VC":{"name":"St. Vincent und die Grenadinen"},"VE":{"name":"Venezuela","regions":{"1078":{"code":"VE-Z","name":"Amazonas"},"1079":{"code":"VE-B","name":"Anzo\u00e1tegui"},"1080":{"code":"VE-C","name":"Apure"},"1081":{"code":"VE-D","name":"Aragua"},"1082":{"code":"VE-E","name":"Barinas"},"1083":{"code":"VE-F","name":"Bol\u00edvar"},"1084":{"code":"VE-G","name":"Carabobo"},"1085":{"code":"VE-H","name":"Cojedes"},"1086":{"code":"VE-Y","name":"Delta Amacuro"},"1076":{"code":"VE-W","name":"Dependencias Federales"},"1077":{"code":"VE-A","name":"Distrito Capital"},"1087":{"code":"VE-I","name":"Falc\u00f3n"},"1088":{"code":"VE-J","name":"Gu\u00e1rico"},"1089":{"code":"VE-K","name":"Lara"},"1090":{"code":"VE-L","name":"M\u00e9rida"},"1091":{"code":"VE-M","name":"Miranda"},"1092":{"code":"VE-N","name":"Monagas"},"1093":{"code":"VE-O","name":"Nueva Esparta"},"1094":{"code":"VE-P","name":"Portuguesa"},"1095":{"code":"VE-R","name":"Sucre"},"1096":{"code":"VE-S","name":"T\u00e1chira"},"1097":{"code":"VE-T","name":"Trujillo"},"1098":{"code":"VE-X","name":"Vargas"},"1099":{"code":"VE-U","name":"Yaracuy"},"1100":{"code":"VE-V","name":"Zulia"}}},"VG":{"name":"Britische Jungferninseln"},"VI":{"name":"Amerikanische Jungferninseln"},"VN":{"name":"Vietnam"},"VU":{"name":"Vanuatu"},"WF":{"name":"Wallis und Futuna"},"WS":{"name":"Samoa"},"XK":{"name":"Kosovo"},"YE":{"name":"Jemen"},"YT":{"name":"Mayotte"},"ZA":{"name":"S\u00fcdafrika"},"ZM":{"name":"Sambia"},"ZW":{"name":"Simbabwe"},"data_id":1791442989},"captcha":[],"instant-purchase":[],"loggedAsCustomer":[],"persistent":[],"review":[],"payments":[],"wishlist":{"items":[]},"ammessages":[],"dnovo-customer-data":[],"hyva_checkout":[],"hyva_commerce_messages":[],"partial_delivery":[],"multisafepay-payment-request":[],"site-data":[],"customer_usps":[],"gtm-checkout":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[],"paypal-buyer-country":[]}</script>
vendor: 1 bytes, line 2443
2443
2444<script>
2445    window.processSectionDataBeforeDispatch && (window.processSectionDataBeforeDispatch = new Proxy(window.processSectionDataBeforeDispatch, {
2446        apply(target, thisArg, [data]) {
2447            data.hyva_commerce_messages = data.hyva_commerce_messages || {};
2448            return target.call(thisArg, data);
2449        }
2450    }));
2451</script>
2451
2452</div><div class="addtocart-popup-wrapper" data-bind='scope: "addtocart-popup"'>
2453    <div class="addtocart-popup" style="display: none" data-bind='visible: visible'>
2454                    <!-- ko template: "Dnovo_AddtocartPopup/addtocart-popup-before" --><!-- /ko -->
2455                    <!-- ko template: "Dnovo_AddtocartPopup/addtocart-popup" --><!-- /ko -->
2456                    <!-- ko template: "Dnovo_AddtocartPopup/addtocart-popup-after" --><!-- /ko -->
2457            </div>
2458    <div class="addtocart-popup-backdrop" style="display: none" data-bind="click: function () { visible(!visible()) }, visible: visible"></div>
2459</div>
2460<script type="text/x-magento-init">
2461        {
2462            "*": {
2463                "Magento_Ui/js/core/app": {
2464                    "components": {
2465                        "addtocart-popup": {
2466                            "component": "Dnovo_AddtocartPopup/js/addtocart-popup"
2467                        }
2468                    }
2469                }
2470            }
2471        }
2472</script>
vendor: 1 bytes, line 2472
2472
2473<script nonce="dWdnc21hMXp1MzJobjh5eTlld3Q1Zjh5NmswdGFjdG8=">
2474    yireoGoogleTagManager2Pusher({"version":"3.10.7","page_type":"customer\/account\/login","page_path":"https:\/\/www.haibu.de\/customer\/account\/login\/","page_title":"Kundenanmeldung","virtual_page":"\/customer\/account\/login","breadcrumb":[],"user":{"has_transacted":false},"0":{"currency_code":"EUR"}}, 'push (initial page) [data-layer.phtml]');
2475        yireoGoogleTagManager2Pusher({"currency_code":"EUR"}, 'push (page-based event) [data-layer.phtml]');
2476    </script>
vendor: 1 bytes, line 2476
2476
2477<script nonce="dWdnc21hMXp1MzJobjh5eTlld3Q1Zjh5NmswdGFjdG8=">
2478    function yireoGoogleTagManager2FindParentElementWithName(element, parentTagName) {
2479        if (!element.parentElement) {
2480            return null;
2481        }
2482
2483        if (element.parentElement.tagName.toLowerCase() === parentTagName) {
2484            return element.parentElement;
2485        }
2486
2487        return yireoGoogleTagManager2FindParentElementWithName(element.parentElement, parentTagName);
2488    }
2489
2490    const products = document.querySelectorAll('.products\u0020a.product,\u0020.products\u0020a.product\u002Ditem\u002Dlink,\u0020.card\u0020a.product\u002Ditem\u002Dlink,\u0020.card\u0020a.product\u002Ditem\u002Dphoto,\u0020.card\u0020a.btn\u002Dprimary');
2491    if (products && products.length > 0) {
2492        products.forEach(function(product) {
2493            product.addEventListener('click', function(event, s) {
2494                let parentElement = yireoGoogleTagManager2FindParentElementWithName(event.target, 'form');
2495                if (!parentElement) {
2496                    return;
2497                }
2498
2499                const inputElement = parentElement.querySelector('input[name="product"]');
2500                const productId = inputElement.value;
2501                const productData = window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_' + productId] || {};
2502                productData.item_id = productId;
2503
2504                const eventData = {
2505                    'event': 'select_item',
2506                    'ecommerce': {
2507                        'items': [productData]
2508                    }
2509                }
2510
2511                yireoGoogleTagManager2Pusher(eventData, 'push (page event "select_item") [script-product-clicks.phtml]');
2512
2513                if (window['YIREO_GOOGLETAGMANAGER2_DEBUG_CLICKS'] && confirm("Press to continue with redirect") === false) {
2514                    event.preventDefault();
2515                }
2516            });
2517        })
2518    }
2519</script>
vendor: 1 bytes, line 2519
2519
2520<script nonce="dWdnc21hMXp1MzJobjh5eTlld3Q1Zjh5NmswdGFjdG8=">
2521    window.addEventListener('private-content-loaded', function(event) {
2522        window.dataLayer = window.dataLayer || [];
2523
2524        var isEmpty = function (variable) {
2525            if (typeof variable === 'undefined') {
2526                return true;
2527            }
2528
2529            if (Array.isArray(variable) && variable.length === 0) {
2530                return true;
2531            }
2532
2533            return typeof variable === 'object' && Object.keys(variable).length === 0;
2534        }
2535
2536        var getSectionNames = function () {
2537            return ['cart', 'customer'];
2538        }
2539
2540        getSectionNames().forEach(function (sectionName) {
2541            if (!event.detail.data[sectionName].gtm) {
2542                return;
2543            }
2544
2545            const attributes = event.detail.data[sectionName].gtm;
2546            if (!Object.keys(attributes).length > 0) {
2547                return;
2548            }
2549
2550            yireoGoogleTagManager2Pusher(attributes, 'push (attributes) [script-additions.phtml]');
2551        });
2552
2553        let attributes = {};
2554        getSectionNames().forEach(function (sectionName) {
2555            if (!event.detail.data[sectionName].gtm_events) {
2556                return;
2557            }
2558
2559            const gtmEvents = event.detail.data[sectionName].gtm_events;
2560            for (const [eventId, eventData] of Object.entries(gtmEvents)) {
2561                yireoGoogleTagManager2Logger('found event in section "' + sectionName + '"', eventData);
2562
2563                const metaData = eventData.meta;
2564                yireoGoogleTagManager2Pusher(eventData, 'push (customerData "' + sectionName + '"  event "' + eventId + '")');
2565
2566                if (!metaData || metaData.cacheable !== true) {
2567                    yireoGoogleTagManager2Logger('removing event "' + eventId + '" from section "' + sectionName + '"')
2568
2569                    let mageCacheStorage = event.detail.data;
2570
2571                    if (mageCacheStorage !== null
2572                        && typeof mageCacheStorage[sectionName] !== 'undefined'
2573                        && typeof mageCacheStorage[sectionName].gtm_events !== 'undefined'
2574                        && eventId in mageCacheStorage[sectionName].gtm_events) {
2575                        delete mageCacheStorage[sectionName].gtm_events[eventId];
2576                    }
2577
2578                    window.localStorage.setItem('mage-cache-storage', JSON.stringify(mageCacheStorage));
2579                }
2580            }
2581        });
2582
2583        if (false === isEmpty(attributes)) {
2584            yireoGoogleTagManager2Pusher(attributes, 'dataLayer (initial js) [script-additions.phtml]');
2585        }
2586    });
2587
2588    window.addEventListener('toggle-cart', (event) => {
2589        if (!event.detail || !event.detail.isOpen) {
2590            return;
2591        }
2592
2593        window.dispatchEvent(new CustomEvent('minicart_collapse'));
2594    });
2595</script>
vendor: 1 bytes, line 2595
2595
2596<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"7e6ebfcf6442404392acc2e74b2b3720","r":1,"spa":2}' crossorigin="anonymous"></script>
2596
2597</body>
2598</html>

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.