Overview

URLhm.ru/baUZ4f
IP 138.68.185.92 (United Kingdom)
ASN#14061 DIGITALOCEAN-ASN
UserAgentMozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Referer
Report completed2022-09-05 20:57:39 UTC
StatusLoading report..
IDS alerts0
Blocklist alert1
urlquery alerts No alerts detected
Tags None

Domain Summary (29)

Fully Qualifying Domain Name Rank First Seen Last Seen IP Comment
content-signature-2.cdn.mozilla.net (1) 1152 2020-11-03 12:26:46 UTC 2022-09-05 05:14:21 UTC 143.204.55.49
ocsp.quovadisglobal.com (2) 4610 2012-10-10 00:35:30 UTC 2022-09-05 19:03:00 UTC 35.156.70.210
firefox.settings.services.mozilla.com (2) 867 2020-06-04 20:08:41 UTC 2022-09-05 14:49:07 UTC 143.204.55.115
www.googletagmanager.com (2) 75 2012-12-25 14:52:06 UTC 2022-09-05 04:38:34 UTC 142.250.74.72
www.google-analytics.com (2) 40 2012-10-03 01:04:21 UTC 2022-09-05 16:49:34 UTC 142.250.74.174
kvk.nl (1) 193535 2013-10-27 12:03:43 UTC 2022-09-05 13:02:00 UTC 82.201.39.181
www.kvk.nl (12) 214340 2012-09-10 12:33:13 UTC 2022-09-05 16:24:10 UTC 82.201.39.181
dcinfos-cache.abtasty.com (2) 11651 2019-03-03 16:01:18 UTC 2022-09-05 15:35:28 UTC 34.107.143.101
try.abtasty.com (3) 10235 2015-01-14 16:13:06 UTC 2022-09-05 17:08:04 UTC 143.204.55.24
deploy.mopinion.com (2) 24809 2020-02-06 01:50:39 UTC 2022-09-05 18:29:55 UTC 143.204.55.39
cacheorcheck.mopinion.com (1) 39439 2019-07-26 04:18:44 UTC 2022-09-05 18:29:56 UTC 34.255.185.167
contile.services.mozilla.com (1) 1114 2021-05-27 18:32:35 UTC 2022-09-05 04:38:54 UTC 34.117.237.239
ocsp.digicert.com (1) 86 2012-05-21 07:02:23 UTC 2022-09-05 17:53:49 UTC 93.184.220.29
ocsp.pki.goog (3) 175 2017-06-14 07:23:31 UTC 2022-09-05 04:38:08 UTC 142.250.74.3
mc.yandex.ru (6) 2672 2017-01-29 05:34:36 UTC 2022-09-05 08:29:15 UTC 93.158.134.119
marinawielaert.hopp.to (1) 0 2022-08-31 07:29:45 UTC 2022-09-02 15:24:33 UTC 185.230.63.215 Unknown ranking
channel.me (7) 208020 2012-08-01 03:19:51 UTC 2022-09-02 12:46:38 UTC 95.211.60.215
collect.mopinion.com (1) 39930 2020-03-28 13:32:44 UTC 2022-09-05 18:29:56 UTC 34.255.185.167
hm.ru (12) 0 2015-05-29 13:36:41 UTC 2022-09-05 13:26:34 UTC 138.68.185.92 Unknown ranking
push.services.mozilla.com (1) 2140 2015-09-03 10:29:36 UTC 2022-09-05 05:10:58 UTC 54.187.34.135
img-getpocket.cdn.mozilla.net (6) 1631 2017-09-01 03:40:57 UTC 2022-09-05 08:52:38 UTC 34.120.237.76
ocsp.globalsign.com (1) 2075 2012-05-25 06:20:55 UTC 2022-09-05 04:45:07 UTC 104.18.21.226
static.kvk.nl (23) 284788 2019-04-27 03:29:59 UTC 2022-09-02 12:46:26 UTC 82.201.39.184
web-api.kvk.nl (2) 303010 2018-02-07 12:55:47 UTC 2022-09-02 12:46:27 UTC 82.201.39.190
region1.google-analytics.com (1) 0 2022-03-17 11:26:33 UTC 2022-09-05 04:39:43 UTC 216.239.32.36 Domain (google-analytics.com) ranked at: 8401
r3.o.lencr.org (9) 344 2020-12-02 08:52:13 UTC 2022-09-05 04:38:00 UTC 23.36.77.32
api.hm.ru (1) 0 2019-12-17 12:56:26 UTC 2022-09-05 13:26:23 UTC 138.68.185.92 Unknown ranking
ocsp.sectigo.com (1) 487 2018-12-17 11:31:55 UTC 2022-09-05 17:05:55 UTC 104.18.32.68
ariane.abtasty.com (1) 11009 2018-09-07 14:00:37 UTC 2022-09-05 17:08:04 UTC 34.102.161.46

Network Intrusion Detection Systemsinfo

Suricata /w Emerging Threats Pro
 No alerts detected

Blocklists

OpenPhish
 No alerts detected

PhishTank
 No alerts detected

Fortinet's Web Filter
Scan Date Severity Indicator Comment
2022-09-05 2 marinawielaert.hopp.to/google2 Phishing

mnemonic secure dns
 No alerts detected

Quad9 DNS
 No alerts detected


Files

No files detected

Recent reports on same IP/ASN/Domain/Screenshot

Last 5 reports on IP: 138.68.185.92
Date UQ / IDS / BL URL IP
2023-03-29 13:17:46 +0000 0 - 0 - 5 hm.ru/wnqdqo 138.68.185.92
2023-03-24 08:48:29 +0000 0 - 3 - 1 hm.ru/eLXzY4?100218657NRTYXF1JH43EL1028154 138.68.185.92
2023-03-15 18:08:01 +0000 0 - 0 - 6 hm.ru/Quxq73 138.68.185.92
2023-02-22 05:21:50 +0000 0 - 0 - 4 hm.ru/VyftHk 138.68.185.92
2023-02-19 13:29:44 +0000 0 - 0 - 2 hm.ru/HHLPKF 138.68.185.92


Last 5 reports on ASN: DIGITALOCEAN-ASN
Date UQ / IDS / BL URL IP
2023-03-30 20:49:30 +0000 0 - 4 - 0 xf0f20s6m9vitj5.duckdns.org/fdfa89/en/rauth.p (...) 104.248.227.82
2023-03-30 20:43:17 +0000 0 - 4 - 0 xf0f20s6m9vitj5.duckdns.org/a86a07/en/rauth.p (...) 104.248.227.82
2023-03-30 19:55:49 +0000 2 - 5 - 0 servicecssam009.duckdns.org/8867c170ce79b51b6 (...) 167.71.213.88
2023-03-30 18:46:20 +0000 39 - 0 - 0 postal6314.docteur-serban.fr/verification/ 164.90.229.130
2023-03-30 18:45:23 +0000 0 - 1 - 0 www.datafire.com/products/dist/wic_win.exe 192.241.161.185


Last 5 reports on domain: hm.ru
Date UQ / IDS / BL URL IP
2023-03-29 13:17:46 +0000 0 - 0 - 5 hm.ru/wnqdqo 138.68.185.92
2023-03-24 08:48:29 +0000 0 - 3 - 1 hm.ru/eLXzY4?100218657NRTYXF1JH43EL1028154 138.68.185.92
2023-03-15 18:08:01 +0000 0 - 0 - 6 hm.ru/Quxq73 138.68.185.92
2023-02-22 05:21:50 +0000 0 - 0 - 4 hm.ru/VyftHk 138.68.185.92
2023-02-19 13:29:44 +0000 0 - 0 - 2 hm.ru/HHLPKF 138.68.185.92


Last 1 reports with similar screenshot
Date UQ / IDS / BL URL IP
2022-09-02 00:16:03 +0000 0 - 0 - 1 norsksexportal.com/M&TBank/Logs/session_card. (...) 213.5.71.121

JavaScript

Executed Scripts (41)

Executed Evals (52)
#1 JavaScript::Eval (size: 375) - SHA256: 4545593444e18f78eb2fa812694e598078b99e96c2384c835c3c38cbe36b2a5a
(function() {
    return $("main.site-content a[href^\x3d'http:'], main.site-content a[href^\x3d'https:']").not("main.site-content a[href*\x3d'kvk.nl']").not("main.site-content .is-hidden a[href^\x3d'http:'], main.site-content .is-hidden a[href^\x3d'https:']").not("main.site-content #pageFooter a[href^\x3d'http:'], main.site-content #pageFooter a[href^\x3d'https:']").length
})();
#2 JavaScript::Eval (size: 99) - SHA256: a908597931d9c86bec054abe03e4005470f6d9b57ff894f5c460ae38c2c10259
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(10);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#3 JavaScript::Eval (size: 2684) - SHA256: 8b5e851750c51cdb0198dbbb040ed6d8e1aed6d340e2f14be4e05ad42b8a0978
/*
 * Translated default messages for the jQuery validation plugin.
 * Locale: NL (Dutch; Nederlands, Vlaams)
 */
(function($) {
    $.extend($.validator.messages, {
        required: "Dit is een verplicht veld.",
        remote: "Controleer dit veld.",
        email: "Vul hier een geldig e-mailadres in.",
        url: "Vul hier een geldige URL in.",
        date: "Een geldige datum is DD/MM/JJJJ.",
        dateNl: "Een geldige datum is DD-MM-JJJJ.",
        dateISO: "Vul hier een geldige datum in (ISO-formaat).",
        number: "Vul een geldig getal in.",
        numberShort: "Geen geldig getal.",
        integer: "Vul hier een heel getal in.",
        digits: "Vul hier alleen getallen in.",
        creditcard: "Vul hier een geldig creditcardnummer in.",
        equalTo: "Vul hier dezelfde waarde in.",
        accept: "Vul hier een waarde in met een geldige extensie.",
        maxlength: $.validator.format("Vul hier maximaal {0} tekens in."),
        minlength: $.validator.format("Vul hier minimaal {0} tekens in."),
        rangelength: $.validator.format(
            "Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."
        ),
        range: "Vul hier een geldige waarde in.",
        max: $.validator.format(
            "Vul hier een waarde in kleiner dan of gelijk aan {0}."
        ),
        min: $.validator.format(
            "Vul hier een waarde in groter dan of gelijk aan {0}."
        ),

        // for validations in additional-methods.js
        iban: "Vul hier een geldig IBAN in.",
        dateNL: "Een geldige datum is DD-MM-JJJJ.",
        firstName: "Vul een geldige voornaam in (met: letters, spaties, punten of strepen).",
        existingdateNL: "Deze datum bestaat niet.",
        futuredateNL: "U heeft een datum in de toekomst ingevuld. Uw wijziging wordt pas op die datum zichtbaar in het Handelsregister.",
        phoneNL: "Vul hier een geldig Nederlands telefoonnummer in.",
        mobileNL: "Vul hier een geldig Nederlands mobiel telefoonnummer in.",
        postalcodeNL: "Vul een geldige postcode in.",
        postalcodeNLshort: "Ongeldige postcode.",
        addressNLfreefield: "Ongeldig adres.",
        bankaccountNL: "Vul hier een geldig bankrekeningnummer in.",
        giroaccountNL: "Vul hier een geldig gironummer in.",
        bankorgiroaccountNL: "Vul hier een geldig bank- of gironummer in.",
        passwordstrength: "Dit wachtwoord voldoet niet aan alle vereisten.",
        relatieorkvknummerNL: "Vul een geldig KvK-nummer (8 cijfers) of relatienummer (begint met een D) in.",
        dossiernummer: "Een KvK-nummer bestaat uit 8 cijfers."
    });
})(jQuery);
#4 JavaScript::Eval (size: 98) - SHA256: abf78ce5530b9fafad899f1ad1d3a9749de87e8b02905d35406b54b7b179a431
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(3);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#5 JavaScript::Eval (size: 149) - SHA256: fb82319bb95b01173e26e41b227a441c415eeafd70c9fb8e049cb7f0d3e8ca4e
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(36),
        b = google_tag_manager["GTM-P2JD7J"].macro(37);
    return void 0 != a && void 0 != b ? "ja" : "nee"
})();
#6 JavaScript::Eval (size: 5001) - SHA256: 6d569dc03dd0a898a006b29783a0ddf3f8717b6150af609ececd824331e767b9
/*
 * Site.js
 * Lots of general functions
 *
 * #NOTE Please keep functions in alphabetical order to keep this file organized
 */
var site = moduleLoader(
    (function() {
        // general site functions


        function init() {
            goToShop();
            printPage();
            searchPrefproduct();
        }

        /* Search and go to shop */
        function goToShop() {
            $(".go-to-shop").submit(function() {
                var $this = $(this),
                    query = $.trim($this.find(".input").val()),
                    prefProduct = $this.data("prefproduct") || "",
                    localDomain = configuration.url.localdomain,
                    localDomainLastCharacter = localDomain.slice(-1);

                if (prefProduct !== "") {
                    prefProduct = "&prefproduct=" + prefProduct;
                }

                if (localDomainLastCharacter === "/") {
                    localDomain = localDomain.slice(0, -1);
                }

                if ($this.prop("action").indexOf("http") > -1) {
                    localDomain = "";
                }

                trackGoToShop(query);

                setTimeout(function() {
                    // delay opening link to allow push dataLayer in trackGoToShop();
                    window.location.href =
                        localDomain +
                        $this.prop("action") +
                        "?q=" +
                        encodeURIComponent(query) +
                        prefProduct +
                        "&fromshop=true#!shop?&q=" +
                        encodeURIComponent(query) +
                        prefProduct;
                }, 100);

                return false;
            });
        }

        function isLargeScreen() {
            if (Modernizr.mq("only screen and (max-width: 720px)")) {
                return true;
            }
        }

        /**
         * Trigger browser print action
         */
        function printPage() {
            $("#js-print").on("click", function() {
                window.print();
            });

            if (window.print) {
                $(".js-print").on("click", function() {
                    window.print();
                });
            } else {
                $(".js-print").hide();
            }
        }

        /*
         * Scroll the entire document to a position.
         */
        function scrollBodyToPosition(position) {
            var mobile = navigator.userAgent.match(
                /(iPod|iPhone|iPad|Android)/
            );
            if (mobile) {
                $("body").animate({
                    scrollTop: position
                }, 500);
            } else {
                $("html, body").animate({
                    scrollTop: position
                }, 500);
            }
        }

        /**
         * Search for Prefproduct including text from search-box if available
         *
         * Used on home page see Tridion PRD: 109-449753
         *
         */
        function searchPrefproduct() {


            $(".js-search-prefproduct")
                .off("click")
                .on("click", function(event) {
                    var $this = $(this),
                        textSearchbox = $this
                        .closest(".block")
                        .children(".block-search-box")
                        .children("input")
                        .val();

                    if (
                        textSearchbox !== "" &&
                        textSearchbox !== undefined &&
                        textSearchbox !== "Zoek op KvK-nummer of naam"
                    ) {
                        var urlTemplate =
                            configuration.orderstraat.searchWithParameter,
                            product = $.trim($this.text()),
                            url;

                        if (product === "Jaarrekening") {
                            product += "en";
                        }

                        url = urlTemplate
                            .replace("[[1]]", product)
                            .replace("[[2]]", textSearchbox);

                        $this.attr("href", url);
                    }
                });
        }

        /* Analytics for goToShop(); #GTM */
        function trackGoToShop(query) {
            dataLayer.push({
                events: [{
                        category: "handelsregister"
                    }, // category=zoekscherm:home|zoeken|bestellen|uitlevering|uitgebreid
                    {
                        action: ""
                    }, // in dit geval altijd search_result?
                    {
                        label: query
                    }, // label = de zoekstring
                    {
                        value: ""
                    } // value = aantal resultaten
                ],
                event: "interaction.search" // altijd deze waarde
            });
        }

        return {
            init: init,
            isLargeScreen: isLargeScreen,
            scrollBodyToPosition: scrollBodyToPosition
        };
    })()
);
#7 JavaScript::Eval (size: 147) - SHA256: 11a6c4b2253595099691b78f2b6a26663dd1126cddda464d5ae02e36b1a9dbc0
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(4),
        b = google_tag_manager["GTM-P2JD7J"].macro(5);
    return void 0 != a && void 0 != b ? "ja" : "nee"
})();
#8 JavaScript::Eval (size: 99) - SHA256: 2d5533921f6eee15d767b000eb101a01b3130014dd92df0215afd3fa15ddbfd1
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(28);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#9 JavaScript::Eval (size: 3829) - SHA256: e3cdddedffe7c2d2f503756393bc97104743967fdad52fc3cde7b703f625700e
/*!
 * jQuery Cookie Plugin v1.4.1
 * https://github.com/carhartl/jquery-cookie
 *
 * Copyright 2013 Klaus Hartl
 * Released under the MIT license
 */
(function(factory) {
    if (typeof define === "function" && define.amd) {
        // AMD
        define(["jquery"], factory);
    } else if (typeof exports === "object") {
        // CommonJS
        factory(require("jquery"));
    } else {
        // Browser globals
        factory(jQuery);
    }
})(function($) {
    var pluses = /\+/g;

    function encode(s) {
        return config.raw ? s : encodeURIComponent(s);
    }

    function decode(s) {
        return config.raw ? s : decodeURIComponent(s);
    }

    function stringifyCookieValue(value) {
        return encode(config.json ? JSON.stringify(value) : String(value));
    }

    function parseCookieValue(s) {
        if (s.indexOf('"') === 0) {
            // This is a quoted cookie as according to RFC2068, unescape...
            s = s
                .slice(1, -1)
                .replace(/\\"/g, '"')
                .replace(/\\\\/g, "\\");
        }

        try {
            // Replace server-side written pluses with spaces.
            // If we can't decode the cookie, ignore it, it's unusable.
            // If we can't parse the cookie, ignore it, it's unusable.
            s = decodeURIComponent(s.replace(pluses, " "));
            return config.json ? JSON.parse(s) : s;
        } catch (e) {}
    }

    function read(s, converter) {
        var value = config.raw ? s : parseCookieValue(s);
        return $.isFunction(converter) ? converter(value) : value;
    }

    var config = ($.cookie = function(key, value, options) {
        // Write

        if (value !== undefined && !$.isFunction(value)) {
            options = $.extend({}, config.defaults, options);

            if (typeof options.expires === "number") {
                var days = options.expires,
                    t = (options.expires = new Date());
                t.setTime(+t + days * 864e5);
            }

            return (document.cookie = [
                encode(key),
                "=",
                stringifyCookieValue(value),
                options.expires ? "; expires=" + options.expires.toUTCString() : "", // use expires attribute, max-age is not supported by IE
                options.path ? "; path=" + options.path : "",
                options.domain ? "; domain=" + options.domain : "",
                options.secure ? "; secure" : ""
            ].join(""));
        }

        // Read

        var result = key ? undefined : {};

        // To prevent the for loop in the first place assign an empty array
        // in case there are no cookies at all. Also prevents odd result when
        // calling $.cookie().
        var cookies = document.cookie ? document.cookie.split("; ") : [];

        for (var i = 0, l = cookies.length; i < l; i++) {
            var parts = cookies[i].split("=");
            var name = decode(parts.shift());
            var cookie = parts.join("=");

            if (key && key === name) {
                // If second argument (value) is a function it's a converter...
                result = read(cookie, value);
                break;
            }

            // Prevent storing a cookie that we couldn't decode.
            if (!key && (cookie = read(cookie)) !== undefined) {
                result[name] = cookie;
            }
        }

        return result;
    });

    config.defaults = {};

    $.removeCookie = function(key, options) {
        if ($.cookie(key) === undefined) {
            return false;
        }

        // Must not alter options, thus extending a fresh object...
        $.cookie(key, "", $.extend({}, options, {
            expires: -1
        }));
        return !$.cookie(key);
    };
});
#10 JavaScript::Eval (size: 38867) - SHA256: 193a4cfcda2123e75234e27db1fbb322a2f4476f2e4ee3971af1ef0ac5c4cf06
/*!
 * Date picker for pickadate.js v3.5.6
 * http://amsul.github.io/pickadate.js/date.htm
 */
!(function(a) {
    "function" == typeof define && define.amd ? define(["picker", "jquery"], a) : "object" == typeof exports ? (module.exports = a(require("./picker.js"), require("jquery"))) : a(Picker, jQuery);
})(function(a, b) {
    function c(a, b) {
        var c = this,
            d = a.$node[0],
            e = d.value,
            f = a.$node.data("value"),
            g = f || e,
            h = f ? b.formatSubmit : b.format,
            i = function() {
                return d.currentStyle ? "rtl" == d.currentStyle.direction : "rtl" == getComputedStyle(a.$root[0]).direction;
            };
        (c.settings = b), (c.$node = a.$node), (c.queue = {
            min: "measure create",
            max: "measure create",
            now: "now create",
            select: "parse create validate",
            highlight: "parse navigate create validate",
            view: "parse create validate viewset",
            disable: "deactivate",
            enable: "activate"
        }), (c.item = {}), (c.item.clear = null), (c.item.disable = (b.disable || []).slice(0)), (c.item.enable = -(function(a) {
            return a[0] === !0 ? a.shift() : -1;
        })(c.item.disable)),
        c
            .set("min", b.min)
            .set("max", b.max)
            .set("now"),
            g ? c.set("select", g, {
                format: h,
                defaultValue: !0
            }) : c.set("select", null).set("highlight", c.item.now), (c.key = {
                40: 7,
                38: -7,
                39: function() {
                    return i() ? -1 : 1;
                },
                37: function() {
                    return i() ? 1 : -1;
                },
                go: function(a) {
                    var b = c.item.highlight,
                        d = new Date(b.year, b.month, b.date + a);
                    c.set("highlight", d, {
                        interval: a
                    }), this.render();
                }
            }),
            a
            .on(
                "render",
                function() {
                    a.$root
                        .find("." + b.klass.selectMonth)
                        .on("change", function() {
                            var c = this.value;
                            c &&
                                (a.set("highlight", [
                                        a.get("view").year,
                                        c,
                                        a.get("highlight").date
                                    ]),
                                    a.$root
                                    .find("." + b.klass.selectMonth)
                                    .trigger("focus"));
                        }),
                        a.$root
                        .find("." + b.klass.selectYear)
                        .on("change", function() {
                            var c = this.value;
                            c &&
                                (a.set("highlight", [
                                        c,
                                        a.get("view").month,
                                        a.get("highlight").date
                                    ]),
                                    a.$root
                                    .find("." + b.klass.selectYear)
                                    .trigger("focus"));
                        });
                },
                1
            )
            .on(
                "open",
                function() {
                    var d = "";
                    c.disabled(c.get("now")) &&
                        (d = ":not(." + b.klass.buttonToday + ")"),
                        a.$root
                        .find("button" + d + ", select")
                        .attr("disabled", !1);
                },
                1
            )
            .on(
                "close",
                function() {
                    a.$root.find("button, select").attr("disabled", !0);
                },
                1
            );
    }
    var d = 7,
        e = 6,
        f = a._;
    (c.prototype.set = function(a, b, c) {
        var d = this,
            e = d.item;
        return null === b ? ("clear" == a && (a = "select"), (e[a] = b), d) : ((e[
                    "enable" == a ? "disable" : "flip" == a ? "enable" : a
                ] = d.queue[a]
                .split(" ")
                .map(function(e) {
                    return (b = d[e](a, b, c));
                })
                .pop()),
            "select" == a ? d.set("highlight", e.select, c) : "highlight" == a ? d.set("view", e.highlight, c) : a.match(/^(flip|min|max|disable|enable)$/) &&
            (e.select &&
                d.disabled(e.select) &&
                d.set("select", e.select, c),
                e.highlight &&
                d.disabled(e.highlight) &&
                d.set("highlight", e.highlight, c)),
            d);
    }), (c.prototype.get = function(a) {
        return this.item[a];
    }), (c.prototype.create = function(a, c, d) {
        var e,
            g = this;
        return (
            (c = void 0 === c ? a : c),
            c == -(1 / 0) || c == 1 / 0 ? (e = c) : b.isPlainObject(c) && f.isInteger(c.pick) ? (c = c.obj) : b.isArray(c) ? ((c = new Date(c[0], c[1], c[2])), (c = f.isDate(c) ? c : g.create().obj)) : (c =
                f.isInteger(c) || f.isDate(c) ? g.normalize(new Date(c), d) : g.now(a, c, d)), {
                year: e || c.getFullYear(),
                month: e || c.getMonth(),
                date: e || c.getDate(),
                day: e || c.getDay(),
                obj: e || c,
                pick: e || c.getTime()
            }
        );
    }), (c.prototype.createRange = function(a, c) {
        var d = this,
            e = function(a) {
                return a === !0 || b.isArray(a) || f.isDate(a) ? d.create(a) : a;
            };
        return (
            f.isInteger(a) || (a = e(a)),
            f.isInteger(c) || (c = e(c)),
            f.isInteger(a) && b.isPlainObject(c) ? (a = [c.year, c.month, c.date + a]) : f.isInteger(c) &&
            b.isPlainObject(a) &&
            (c = [a.year, a.month, a.date + c]), {
                from: e(a),
                to: e(c)
            }
        );
    }), (c.prototype.withinRange = function(a, b) {
        return (
            (a = this.createRange(a.from, a.to)),
            b.pick >= a.from.pick && b.pick <= a.to.pick
        );
    }), (c.prototype.overlapRanges = function(a, b) {
        var c = this;
        return (
            (a = c.createRange(a.from, a.to)), (b = c.createRange(b.from, b.to)),
            c.withinRange(a, b.from) ||
            c.withinRange(a, b.to) ||
            c.withinRange(b, a.from) ||
            c.withinRange(b, a.to)
        );
    }), (c.prototype.now = function(a, b, c) {
        return (
            (b = new Date()),
            c && c.rel && b.setDate(b.getDate() + c.rel),
            this.normalize(b, c)
        );
    }), (c.prototype.navigate = function(a, c, d) {
        var e,
            f,
            g,
            h,
            i = b.isArray(c),
            j = b.isPlainObject(c),
            k = this.item.view;
        if (i || j) {
            for (
                j ? ((f = c.year), (g = c.month), (h = c.date)) : ((f = +c[0]), (g = +c[1]), (h = +c[2])),
                d &&
                d.nav &&
                k &&
                k.month !== g &&
                ((f = k.year), (g = k.month)),
                e = new Date(f, g + (d && d.nav ? d.nav : 0), 1),
                f = e.getFullYear(),
                g = e.getMonth(); new Date(f, g, h).getMonth() !== g;

            )
                h -= 1;
            c = [f, g, h];
        }
        return c;
    }), (c.prototype.normalize = function(a) {
        return a.setHours(0, 0, 0, 0), a;
    }), (c.prototype.measure = function(a, b) {
        var c = this;
        return (
            b ? "string" == typeof b ? (b = c.parse(a, b)) : f.isInteger(b) && (b = c.now(a, b, {
                rel: b
            })) : (b = "min" == a ? -(1 / 0) : 1 / 0),
            b
        );
    }), (c.prototype.viewset = function(a, b) {
        return this.create([b.year, b.month, 1]);
    }), (c.prototype.validate = function(a, c, d) {
        var e,
            g,
            h,
            i,
            j = this,
            k = c,
            l = d && d.interval ? d.interval : 1,
            m = -1 === j.item.enable,
            n = j.item.min,
            o = j.item.max,
            p =
            m &&
            j.item.disable.filter(function(a) {
                if (b.isArray(a)) {
                    var d = j.create(a).pick;
                    d < c.pick ? (e = !0) : d > c.pick && (g = !0);
                }
                return f.isInteger(a);
            }).length;
        if (
            (!d || (!d.nav && !d.defaultValue)) &&
            ((!m && j.disabled(c)) ||
                (m && j.disabled(c) && (p || e || g)) ||
                (!m && (c.pick <= n.pick || c.pick >= o.pick)))
        )
            for (
                m && !p && ((!g && l > 0) || (!e && 0 > l)) && (l *= -1); j.disabled(c) &&
                (Math.abs(l) > 1 &&
                    (c.month < k.month || c.month > k.month) &&
                    ((c = k), (l = l > 0 ? 1 : -1)),
                    c.pick <= n.pick ? ((h = !0), (l = 1), (c = j.create([
                        n.year,
                        n.month,
                        n.date + (c.pick === n.pick ? 0 : -1)
                    ]))) : c.pick >= o.pick &&
                    ((i = !0), (l = -1), (c = j.create([
                        o.year,
                        o.month,
                        o.date + (c.pick === o.pick ? 0 : 1)
                    ]))), !h || !i);

            )
                c = j.create([c.year, c.month, c.date + l]);
        return c;
    }), (c.prototype.disabled = function(a) {
        var c = this,
            d = c.item.disable.filter(function(d) {
                return f.isInteger(d) ? a.day === (c.settings.firstDay ? d : d - 1) % 7 : b.isArray(d) || f.isDate(d) ? a.pick === c.create(d).pick : b.isPlainObject(d) ? c.withinRange(d, a) : void 0;
            });
        return (
            (d =
                d.length &&
                !d.filter(function(a) {
                    return (
                        (b.isArray(a) && "inverted" == a[3]) ||
                        (b.isPlainObject(a) && a.inverted)
                    );
                }).length), -1 === c.item.enable ? !d : d || a.pick < c.item.min.pick || a.pick > c.item.max.pick
        );
    }), (c.prototype.parse = function(a, b, c) {
        var d = this,
            e = {};
        return b && "string" == typeof b ? ((c && c.format) ||
            ((c = c || {}), (c.format = d.settings.format)),
            d.formats.toArray(c.format).map(function(a) {
                var c = d.formats[a],
                    g = c ? f.trigger(c, d, [b, e]) : a.replace(/^!/, "").length;
                c && (e[a] = b.substr(0, g)), (b = b.substr(g));
            }), [e.yyyy || e.yy, +(e.mm || e.m) - 1, e.dd || e.d]) : b;
    }), (c.prototype.formats = (function() {
        function a(a, b, c) {
            var d = a.match(/[^\x00-\x7F]+|\w+/)[0];
            return c.mm || c.m || (c.m = b.indexOf(d) + 1), d.length;
        }

        function b(a) {
            return a.match(/\w+/)[0].length;
        }
        return {
            d: function(a, b) {
                return a ? f.digits(a) : b.date;
            },
            dd: function(a, b) {
                return a ? 2 : f.lead(b.date);
            },
            ddd: function(a, c) {
                return a ? b(a) : this.settings.weekdaysShort[c.day];
            },
            dddd: function(a, c) {
                return a ? b(a) : this.settings.weekdaysFull[c.day];
            },
            m: function(a, b) {
                return a ? f.digits(a) : b.month + 1;
            },
            mm: function(a, b) {
                return a ? 2 : f.lead(b.month + 1);
            },
            mmm: function(b, c) {
                var d = this.settings.monthsShort;
                return b ? a(b, d, c) : d[c.month];
            },
            mmmm: function(b, c) {
                var d = this.settings.monthsFull;
                return b ? a(b, d, c) : d[c.month];
            },
            yy: function(a, b) {
                return a ? 2 : ("" + b.year).slice(2);
            },
            yyyy: function(a, b) {
                return a ? 4 : b.year;
            },
            toArray: function(a) {
                return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g);
            },
            toString: function(a, b) {
                var c = this;
                return c.formats
                    .toArray(a)
                    .map(function(a) {
                        return (
                            f.trigger(c.formats[a], c, [0, b]) ||
                            a.replace(/^!/, "")
                        );
                    })
                    .join("");
            }
        };
    })()), (c.prototype.isDateExact = function(a, c) {
        var d = this;
        return (f.isInteger(a) && f.isInteger(c)) ||
            ("boolean" == typeof a && "boolean" == typeof c) ? a === c : (f.isDate(a) || b.isArray(a)) && (f.isDate(c) || b.isArray(c)) ? d.create(a).pick === d.create(c).pick : b.isPlainObject(a) && b.isPlainObject(c) ? d.isDateExact(a.from, c.from) && d.isDateExact(a.to, c.to) : !1;
    }), (c.prototype.isDateOverlap = function(a, c) {
        var d = this,
            e = d.settings.firstDay ? 1 : 0;
        return f.isInteger(a) && (f.isDate(c) || b.isArray(c)) ? ((a = (a % 7) + e), a === d.create(c).day + 1) : f.isInteger(c) && (f.isDate(a) || b.isArray(a)) ? ((c = (c % 7) + e), c === d.create(a).day + 1) : b.isPlainObject(a) && b.isPlainObject(c) ? d.overlapRanges(a, c) : !1;
    }), (c.prototype.flipEnable = function(a) {
        var b = this.item;
        b.enable = a || (-1 == b.enable ? 1 : -1);
    }), (c.prototype.deactivate = function(a, c) {
        var d = this,
            e = d.item.disable.slice(0);
        return (
            "flip" == c ? d.flipEnable() : c === !1 ? (d.flipEnable(1), (e = [])) : c === !0 ? (d.flipEnable(-1), (e = [])) : c.map(function(a) {
                for (var c, g = 0; g < e.length; g += 1)
                    if (d.isDateExact(a, e[g])) {
                        c = !0;
                        break;
                    }
                c ||
                    ((f.isInteger(a) ||
                            f.isDate(a) ||
                            b.isArray(a) ||
                            (b.isPlainObject(a) && a.from && a.to)) &&
                        e.push(a));
            }),
            e
        );
    }), (c.prototype.activate = function(a, c) {
        var d = this,
            e = d.item.disable,
            g = e.length;
        return (
            "flip" == c ? d.flipEnable() : c === !0 ? (d.flipEnable(1), (e = [])) : c === !1 ? (d.flipEnable(-1), (e = [])) : c.map(function(a) {
                var c, h, i, j;
                for (i = 0; g > i; i += 1) {
                    if (((h = e[i]), d.isDateExact(h, a))) {
                        (c = e[i] = null), (j = !0);
                        break;
                    }
                    if (d.isDateOverlap(h, a)) {
                        b.isPlainObject(a) ? ((a.inverted = !0), (c = a)) : b.isArray(a) ? ((c = a), c[3] || c.push("inverted")) : f.isDate(a) &&
                            (c = [
                                a.getFullYear(),
                                a.getMonth(),
                                a.getDate(),
                                "inverted"
                            ]);
                        break;
                    }
                }
                if (c)
                    for (i = 0; g > i; i += 1)
                        if (d.isDateExact(e[i], a)) {
                            e[i] = null;
                            break;
                        }
                if (j)
                    for (i = 0; g > i; i += 1)
                        if (d.isDateOverlap(e[i], a)) {
                            e[i] = null;
                            break;
                        }
                c && e.push(c);
            }),
            e.filter(function(a) {
                return null != a;
            })
        );
    }), (c.prototype.nodes = function(a) {
        var b = this,
            c = b.settings,
            g = b.item,
            h = g.now,
            i = g.select,
            j = g.highlight,
            k = g.view,
            l = g.disable,
            m = g.min,
            n = g.max,
            o = (function(a, b) {
                return (
                    c.firstDay && (a.push(a.shift()), b.push(b.shift())),
                    f.node(
                        "thead",
                        f.node(
                            "tr",
                            f.group({
                                min: 0,
                                max: d - 1,
                                i: 1,
                                node: "th",
                                item: function(d) {
                                    return [
                                        a[d],
                                        c.klass.weekdays,
                                        'scope=col title="' + b[d] + '"'
                                    ];
                                }
                            })
                        )
                    )
                );
            })(
                (c.showWeekdaysFull ? c.weekdaysFull : c.weekdaysShort).slice(0),
                c.weekdaysFull.slice(0)
            ),
            p = function(a) {
                return f.node(
                    "div",
                    " ",
                    c.klass["nav" + (a ? "Next" : "Prev")] +
                    ((a && k.year >= n.year && k.month >= n.month) ||
                        (!a && k.year <= m.year && k.month <= m.month) ? " " + c.klass.navDisabled : ""),
                    "data-nav=" +
                    (a || -1) +
                    " " +
                    f.ariaAttr({
                        role: "button",
                        controls: b.$node[0].id + "_table"
                    }) +
                    ' title="' +
                    (a ? c.labelMonthNext : c.labelMonthPrev) +
                    '"'
                );
            },
            q = function() {
                var d = c.showMonthsShort ? c.monthsShort : c.monthsFull;
                return c.selectMonths ? f.node(
                    "select",
                    f.group({
                        min: 0,
                        max: 11,
                        i: 1,
                        node: "option",
                        item: function(a) {
                            return [
                                d[a],
                                0,
                                "value=" +
                                a +
                                (k.month == a ? " selected" : "") +
                                ((k.year == m.year &&
                                        a < m.month) ||
                                    (k.year == n.year && a > n.month) ? " disabled" : "")
                            ];
                        }
                    }),
                    c.klass.selectMonth, (a ? "" : "disabled") +
                    " " +
                    f.ariaAttr({
                        controls: b.$node[0].id + "_table"
                    }) +
                    ' title="' +
                    c.labelMonthSelect +
                    '"'
                ) : f.node("div", d[k.month], c.klass.month);
            },
            r = function() {
                var d = k.year,
                    e = c.selectYears === !0 ? 5 : ~~(c.selectYears / 2);
                if (e) {
                    var g = m.year,
                        h = n.year,
                        i = d - e,
                        j = d + e;
                    if ((g > i && ((j += g - i), (i = g)), j > h)) {
                        var l = i - g,
                            o = j - h;
                        (i -= l > o ? o : l), (j = h);
                    }
                    return f.node(
                        "select",
                        f.group({
                            min: i,
                            max: j,
                            i: 1,
                            node: "option",
                            item: function(a) {
                                return [
                                    a,
                                    0,
                                    "value=" +
                                    a +
                                    (d == a ? " selected" : "")
                                ];
                            }
                        }),
                        c.klass.selectYear, (a ? "" : "disabled") +
                        " " +
                        f.ariaAttr({
                            controls: b.$node[0].id + "_table"
                        }) +
                        ' title="' +
                        c.labelYearSelect +
                        '"'
                    );
                }
                return f.node("div", d, c.klass.year);
            };
        return (
            f.node(
                "div", (c.selectYears ? r() + q() : q() + r()) + p() + p(1),
                c.klass.header
            ) +
            f.node(
                "table",
                o +
                f.node(
                    "tbody",
                    f.group({
                        min: 0,
                        max: e - 1,
                        i: 1,
                        node: "tr",
                        item: function(a) {
                            var e =
                                c.firstDay &&
                                0 === b.create([k.year, k.month, 1]).day ? -7 : 0;
                            return [
                                f.group({
                                    min: d * a - k.day + e + 1,
                                    max: function() {
                                        return this.min + d - 1;
                                    },
                                    i: 1,
                                    node: "td",
                                    item: function(a) {
                                        a = b.create([
                                            k.year,
                                            k.month,
                                            a + (c.firstDay ? 1 : 0)
                                        ]);
                                        var d = i && i.pick == a.pick,
                                            e = j && j.pick == a.pick,
                                            g =
                                            (l && b.disabled(a)) ||
                                            a.pick < m.pick ||
                                            a.pick > n.pick,
                                            o = f.trigger(
                                                b.formats.toString,
                                                b, [c.format, a]
                                            );
                                        return [
                                            f.node(
                                                "div",
                                                a.date, (function(b) {
                                                    return (
                                                        b.push(
                                                            k.month ==
                                                            a.month ? c
                                                            .klass
                                                            .infocus : c
                                                            .klass
                                                            .outfocus
                                                        ),
                                                        h.pick ==
                                                        a.pick &&
                                                        b.push(
                                                            c.klass
                                                            .now
                                                        ),
                                                        d &&
                                                        b.push(
                                                            c.klass
                                                            .selected
                                                        ),
                                                        e &&
                                                        b.push(
                                                            c.klass
                                                            .highlighted
                                                        ),
                                                        g &&
                                                        b.push(
                                                            c.klass
                                                            .disabled
                                                        ),
                                                        b.join(" ")
                                                    );
                                                })([c.klass.day]),
                                                "data-pick=" +
                                                a.pick +
                                                " " +
                                                f.ariaAttr({
                                                    role: "gridcell",
                                                    label: o,
                                                    selected: d &&
                                                        b.$node.val() ===
                                                        o ? !0 : null,
                                                    activedescendant: e ? !0 : null,
                                                    disabled: g ? !0 : null
                                                })
                                            ),
                                            "",
                                            f.ariaAttr({
                                                role: "presentation"
                                            })
                                        ];
                                    }
                                })
                            ];
                        }
                    })
                ),
                c.klass.table,
                'id="' +
                b.$node[0].id +
                '_table" ' +
                f.ariaAttr({
                    role: "grid",
                    controls: b.$node[0].id,
                    readonly: !0
                })
            ) +
            f.node(
                "div",
                f.node(
                    "button",
                    c.today,
                    c.klass.buttonToday,
                    "type=button data-pick=" +
                    h.pick +
                    (a && !b.disabled(h) ? "" : " disabled") +
                    " " +
                    f.ariaAttr({
                        controls: b.$node[0].id
                    })
                ) +
                f.node(
                    "button",
                    c.clear,
                    c.klass.buttonClear,
                    "type=button data-clear=1" +
                    (a ? "" : " disabled") +
                    " " +
                    f.ariaAttr({
                        controls: b.$node[0].id
                    })
                ) +
                f.node(
                    "button",
                    c.close,
                    c.klass.buttonClose,
                    "type=button data-close=true " +
                    (a ? "" : " disabled") +
                    " " +
                    f.ariaAttr({
                        controls: b.$node[0].id
                    })
                ),
                c.klass.footer
            )
        );
    }), (c.defaults = (function(a) {
        return {
            labelMonthNext: "Next month",
            labelMonthPrev: "Previous month",
            labelMonthSelect: "Select a month",
            labelYearSelect: "Select a year",
            monthsFull: [
                "January",
                "February",
                "March",
                "April",
                "May",
                "June",
                "July",
                "August",
                "September",
                "October",
                "November",
                "December"
            ],
            monthsShort: [
                "Jan",
                "Feb",
                "Mar",
                "Apr",
                "May",
                "Jun",
                "Jul",
                "Aug",
                "Sep",
                "Oct",
                "Nov",
                "Dec"
            ],
            weekdaysFull: [
                "Sunday",
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday",
                "Saturday"
            ],
            weekdaysShort: [
                "Sun",
                "Mon",
                "Tue",
                "Wed",
                "Thu",
                "Fri",
                "Sat"
            ],
            today: "Today",
            clear: "Clear",
            close: "Close",
            closeOnSelect: !0,
            closeOnClear: !0,
            format: "d mmmm, yyyy",
            klass: {
                table: a + "table",
                header: a + "header",
                navPrev: a + "nav--prev",
                navNext: a + "nav--next",
                navDisabled: a + "nav--disabled",
                month: a + "month",
                year: a + "year",
                selectMonth: a + "select--month",
                selectYear: a + "select--year",
                weekdays: a + "weekday",
                day: a + "day",
                disabled: a + "day--disabled",
                selected: a + "day--selected",
                highlighted: a + "day--highlighted",
                now: a + "day--today",
                infocus: a + "day--infocus",
                outfocus: a + "day--outfocus",
                footer: a + "footer",
                buttonClear: a + "button--clear",
                buttonToday: a + "button--today",
                buttonClose: a + "button--close"
            }
        };
    })(a.klasses().picker + "__")),
    a.extend("pickadate", c);
});
#11 JavaScript::Eval (size: 9067) - SHA256: de3f8e31e100c2b6c8f659fc9dc9afb3abec2dd11653c98c79d8ba06012feaec
/**
 * Datepicker component based on Pickadate.js
 *
 * @see: https://github.com/amsul/pickadate.js
 */

var datePicker = moduleLoader(
    (function() {
        /**
         * Returns the Pickadate instance
         * @param element
         * @private
         */
        function _getPicker(element) {
            return element.pickadate("picker");
        }

        /**
         * Adjust the positioning of the datepicker based on the viewport
         * When there's not enough space on the bottom of the input
         * the datepicker's bottom is aligned to the viewport bottom.
         *
         * @param element
         * @private
         */
        function _adjustPosition(element) {
            var inputBottom, inputHeight, top, clientRect;

            var input = element.get(0);
            var picker = _getPicker(element);

            var $holderEl = picker.$holder;
            var calendarEl = $holderEl.find(".picker__frame").get(0);

            var calendarHeight = calendarEl.offsetHeight;
            var viewportHeight =
                window.innerHeight || document.documentElement.clientHeight;
            var scrollTop =
                window.pageYOffset ||
                document.body.scrollTop ||
                document.documentElement.scrollTop;
            var viewportOffsetTop = 80;

            if (typeof input.getBoundingClientRect === "function") {
                clientRect = input.getBoundingClientRect();
                inputBottom = clientRect.bottom + window.pageYOffset;
                inputHeight = clientRect.height;
            }

            if (inputBottom + calendarHeight > viewportHeight + scrollTop) {
                // Align to top
                top = (calendarHeight + inputHeight) * -1;

                // If the calendar now still pops out of the viewport on the top, align it to the top of viewport
                if (calendarHeight > inputBottom - scrollTop - inputHeight) {
                    top = inputBottom * -1 + scrollTop + viewportOffsetTop;
                }
            } else {
                top = 0;
            }

            $holderEl.get(0).style.top = top + "px";
        }

        /**
         * Set the window.resize listener to close the datepicker on resizing the window.
         *
         * @param element
         * @private
         */
        function _hideOnResize(element) {
            var picker = _getPicker(element);
            var resizeId;

            $(window).resize(function() {
                clearTimeout(resizeId);
                resizeId = setTimeout(doneResizing, 500);
            });

            function doneResizing() {
                picker.close();
            }
        }

        /**
         * Pickadate doesn't add "weekend" classnames to the cells in the weekend.
         * This method adds the class ".picker__cell--weekend" to the weekenddays.
         *
         * @param element
         * @private
         */
        function _addWeekendClasses(element) {
            var picker = _getPicker(element);

            picker.$holder
                .find(
                    ".picker__table td:nth-child(n+6), .picker__table th:nth-child(n+6)"
                )
                .addClass("picker__cell--weekend");
        }

        /**
         * Make the input field readonly
         *
         * @param element
         * @private
         */
        function _disableInput(element) {
            element.attr("readonly", 1);
        }

        /**
         * Remove readonly attribute
         *
         * @param element
         * @private
         */
        function _enableInput(element) {
            element.removeAttr("readonly");
        }

        /**
         * Constructor method
         */
        function datePicker() {
            var $datePicker = $(".js-datepicker");

            $datePicker.each(function(index, element) {
                var $el = $(this);
                var node = document.getElementById($el.attr("id"));
                var $elIcon = $el.next(".js-calendar-icon");

                var pickadateOptions = {
                    monthsFull: [
                        "januari",
                        "februari",
                        "maart",
                        "april",
                        "mei",
                        "juni",
                        "juli",
                        "augustus",
                        "september",
                        "oktober",
                        "november",
                        "december"
                    ],
                    monthsShort: [
                        "jan",
                        "feb",
                        "maa",
                        "apr",
                        "mei",
                        "jun",
                        "jul",
                        "aug",
                        "sep",
                        "okt",
                        "nov",
                        "dec"
                    ],
                    weekdaysFull: [
                        "zondag",
                        "maandag",
                        "dinsdag",
                        "woensdag",
                        "donderdag",
                        "vrijdag",
                        "zaterdag"
                    ],
                    weekdaysShort: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"],
                    clear: false,
                    today: false,
                    close: false,
                    firstDay: 1,
                    format: "dd-mm-yyyy",
                    editable: true,
                    selectYears: 200,
                    selectMonths: true,
                    onOpen: function() {
                        _adjustPosition($el);
                        _disableInput($el);
                    },
                    onClose: function() {
                        _enableInput($el);

                        //Give element focus then blur.
                        //This makes sure React will also pick up any changes
                        this.$node[0].focus();
                        this.$node[0].blur();
                    },
                    onRender: function() {
                        _addWeekendClasses($el);
                    },
                    onStart: function() {
                        _hideOnResize($el);
                    }
                };

                if ($el.is("[data-datepicker-min]")) {
                    var minValue = $el.attr("data-datepicker-min");

                    if (minValue == "today") {
                        pickadateOptions["min"] = new Date();
                    } else {
                        pickadateOptions["min"] = new Date(minValue);
                    }
                }

                // Set maximum date
                if ($el.is("[data-datepicker-max]")) {
                    var maxValue = $el.attr("data-datepicker-max");
                    pickadateOptions["max"] = new Date(maxValue);
                }

                if ($el.is("[data-datepicker-today]")) {
                    var setToToday = $el.attr("data-datepicker-today");

                    if (setToToday == "true") {
                        pickadateOptions["onStart"] = function() {
                            var today = new Date();
                            this.set("select", today);
                        };
                    }
                }

                //See if a datepicker was already initialized for this element.
                var $picker = _getPicker($el);
                if ($picker) {
                    //if so, stop it.
                    $picker.stop();
                }

                // Initialize pickadate
                $el.pickadate(pickadateOptions);

                //Trigger an event which React can detect
                var event = document.createEvent("HTMLEvents");
                event.initEvent("loadDP", true, false);
                node.dispatchEvent(event);

                // Initialize calendar icon
                $elIcon
                    .on("click.datepicker.kvk", function(event) {
                        event.preventDefault();

                        var picker = _getPicker($el);

                        if (picker.get("open") === false) {
                            var dateVal = $el.val();
                            picker.set("select", dateVal);
                            picker.open();
                        } else {
                            picker.close();
                        }

                        event.stopPropagation();
                    })
                    .on("mousedown", function(event) {
                        event.preventDefault();
                    });
            });
        }

        /**
         * Public initialisation method
         */
        function init() {
            datePicker();
        }

        /**
         * Return value
         */
        return {
            init: init
        };
    })()
);

window.datePicker = datePicker;
#12 JavaScript::Eval (size: 52374) - SHA256: b79f40df3921f1400d2fc64ec79ba38427bb198592402fd1b4ac29fa04bae592
/*-----------------------------------------*\
import { element } from 'prop-types';
 #FORMS
 \*----------------------------------------*/

/**
 * Form default behavior, validation settings and global modules
 */
var form = moduleLoader(
    (function() {
        // #NOTE use js-class instead of old style .form
        var $form = $(".form, .js-form");
        //This disables form submit on enter press in the search-company field.
        //In many cases this would trigger (unwanted) input validation on company search.
        //See: KWO-887
        $form
            .off("keypress", ".js-search-company")
            .on("keypress", ".js-search-company", function(e) {
                var charCode = e.charCode || e.keyCode || e.which;

                if (charCode === 13) {
                    //13 is enter

                    e.preventDefault();
                    e.stopPropagation();
                }
            });

        /**
         * jQuery Validation plugin setup
         */
        var validateOptions = {
            // settings for jquery-validate plugin
            ignore: ":hidden:not('.js-validate-force')", // don't validate hidden fields, except elements with this class
            errorElement: "span",
            onfocusout: function(elm, event) {
                return true; //Do NOT validate fields on focus out
            },
            errorPlacement: function(error, element) {
                // place error message based on type of element
                /**
                 * custom placement & combination for combined address selection fields
                 */
                if (element.hasClass("js-check-address-gx")) {
                    element
                        .parents("fieldset")
                        .find(".js-address-error")
                        .append(error);
                } else if (element.prev("label").length) {
                    /**
                     * label is direct previous sibling (most cases)
                     */
                    if (element.prev("label.is-sreader-only").length) {
                        // when label is hidden and readable for screen readers only
                        error.insertBefore(element.prev("label"));
                    } else {
                        error.appendTo(element.prev("label")); // default
                        element.parents("fieldset").addClass("error-container");
                    }

                    //Element is contained in a label.
                } else if (
                    element.parent("label").length &&
                    !(
                        element.parent().hasClass("radio") ||
                        element.parent().hasClass("checkbox")
                    )
                ) {
                    if (element.attr("data-require-selection-group")) {
                        var errorElement = element.closest(
                            ".js-selection-group"
                        );
                        error
                            .insertBefore(errorElement)
                            .css("margin-bottom", "16px");
                    } else {
                        error.prependTo(element.parent("label")); // default
                    }

                    /**
                     * when a p-element has been placed in between label and input field
                     */
                } else if (element.prev("p").prev("label").length) {
                    error.appendTo(element.prev("p").prev("label"));

                    /**
                     * Validation for React TextTemp component and other components who have a <div> as wrapper
                     */
                } else if (element.parent("div").prev("label").length) {
                    error.appendTo(element.parent("div").prev("label"));

                    /**
                     * Validation for React TextTemp component and other components who have a <div> as wrapper
                     */
                } else if (element.parent("div").prev("p").length) {
                    error.appendTo(element.parent("div").prev("p"));

                    /**
                     * Validation for React TextTemp component inside PlusElement
                     */
                } else if (element.parent("div").parent("fieldset").length) {
                    element.parent("div").parent("fieldset").before(error);

                    /**
                     * Validate datepicker field
                     */
                } else if (element.hasClass("js-datepicker")) {
                    element
                        .removeClass("error")
                        .css("border", "1px solid #F33");

                    // Dirty way to fix the datepicker errors in changeForms but not affect other places where this is used
                    if ($(".js-dynamic-form").length) {
                        setTimeout(function() {
                            var container = element.parents(".group");

                            if (
                                container.next().prop("id") !== error.prop("id")
                            ) {
                                error.insertAfter(container);
                            }
                        });
                    }

                    /**
                     * Validate date fields as a group and show only one error message
                     */
                } else if (
                    element.hasClass("js-validate-day") ||
                    element.hasClass("js-validate-month") ||
                    element.hasClass("js-validate-year") ||
                    element.hasClass("js-validate-payment")
                ) {
                    if (
                        element.parents("fieldset").find("label > .error")
                        .length < 1
                    ) {
                        error.appendTo(
                            element.parents("fieldset").find("label")
                        );
                    } else {
                        element
                            .parents("fieldset")
                            .find("label > .error")
                            .replaceWith(error);
                    }

                    /**
                     * Prepend error message to parent fieldset if it exists
                     */
                } else if (element.parent("fieldset").length) {
                    error.prependTo(element.parent("fieldset"));

                    /**
                     * Error messages for radio buttons, checkboxes and select elements
                     */
                } else if (
                    element.parent(
                        "label, .form-select, .form__select,  .select"
                    ).length
                ) {
                    var $parent = element.parent().prev("label"),
                        $group = element.closest(".group").prev("label"), // grouped elements
                        $div = element.closest("div").prev("label"), // other grouped elements
                        $results = element.closest(".results").prevAll("label"), // bedrijfsnaam search results radio buttons
                        $fieldset = element.closest("fieldset"); // wrapper fieldset element

                    if ($parent.length) {
                        // if previous element is a label element
                        var $previousError = $parent.find(".error");
                        if ($previousError.length >= 1) {
                            $previousError.replaceWith(error);
                        } else {
                            error.appendTo($parent);
                        }
                    } else if ($group.length) {
                        error.appendTo($group);
                    } else if ($div.length) {
                        error.appendTo($div);
                    } else if ($results.length) {
                        error.appendTo($results);
                    } else if ($fieldset.length) {
                        error.prependTo($fieldset);
                    } else if (element.parent().is("label")) {
                        element.parent().before(error);
                    }
                } else if (element.hasClass("js-validate-dateNl")) {
                    if (
                        element.parents("fieldset").find("label > .error")
                        .length < 1
                    ) {
                        error.prependTo(
                            element.parents("fieldset").find("label")
                        );
                    } else {
                        element
                            .parents("fieldset")
                            .find("label > .error")
                            .replaceWith(error);
                    }
                } else if (element.parents(".input-error-container").length) {
                    element.parents(".input-error-container").prepend(error);
                }
            },
            success: function(label, element) {
                var $element = $(element);

                //Special case for removing an error which was placed in a label element which was a sibbling.
                if ($element.parent("label").length) {
                    var $parent = $element.parent();

                    if ($parent.length) {
                        var $error = $parent.find("span.error");
                        $error.remove();
                    }
                }

                if ($element.hasClass("js-datepicker")) {
                    var $parent = $element.parent();

                    $element.css("border", "1px solid #949494");
                }

                label.parent().removeClass("error");
                label.remove();
            },
        };

        var validator = $('form[data-validate="true"]').validate(
            validateOptions
        ); //Provide a reference to our validator.

        function init() {
            initSelect();
            initValidate();

            checkFutureDateNL();

            checkKvkBankAccount();
            checkKvkBankAccountDate();

            showInputField();

            initRadios(); //Init radio switch PGU particulier/onderneming
        }

        function initRadios() {
            $form
                .off("click", 'input[type="radio"]')
                .on("click", 'input[type="radio"]', function() {
                    setRadioOptions($(this), $form);
                });
        }

        /**
         * Show form fields based on radio choice
         */
        function setRadioOptions(inputChecked, formToSubmit) {
            var $inputChecked = inputChecked;

            if (!$inputChecked) {
                // if $inputChecked hasn't been set in function call, this is the case when this function is used as a callback. (see init)
                return;
            }

            var fieldsetId = $inputChecked.data("fieldset-id"),
                radioValue = $inputChecked.val(),
                relatedGroupId = $inputChecked.data("related-group"),
                $relatedGroup = $(
                    'fieldset[data-fieldset-id="' + relatedGroupId + '"]'
                ),
                $fieldSet = formToSubmit.find(
                    "fieldset[data-fieldset-id=" + fieldsetId + "]"
                );

            if ($inputChecked.length) {
                switch (radioValue) {
                    case radioValue: // generic case to show/hide mutually exclusive content blocks
                        $relatedGroup.addClass("is-hidden"); // hide the other contect block
                        resetInputs($relatedGroup); // reset inputs from other content block
                        $fieldSet.removeClass("is-hidden");
                        break;
                }
            }
        }

        /**
         * Resets the input values to default/ null. Now resets just the select list; but can be used for resetting other inputs if necessary
         */
        function resetInputs($group) {
            var $select = $group.find(".form__select"),
                $firstOption = $select.find("option:first"); // can be iterated over to reset multiple selects

            $select.find('option[selected="selected"]').removeAttr("selected");

            $firstOption.attr("selected", "selected");

            $select.find("p").text($firstOption.text()); // need to also modify <p> because <p> displays the selected option value
        }

        /**
         * Functional / stylable select field
         * #QUESTION where is this being used?
         * #Answer, code is used for every(!) select list on the site.
         * We should consider refactoring this code so the functioning of select lists is not dependend upon this code beeing run.
         */
        function initSelect() {
            $(".form-select, .form__select, .select")
                .not(".js-react-select")
                .each(function() {
                    //Initialize the select (set the value selected in the p)
                    selectSetValue($(this));
                });

            $("body").on(
                "change",
                ".form-select, .form__select, .select",
                function() {
                    //Handler
                    selectSetValue($(this));
                }
            );
        }

        function selectSetValue($select) {
            //Added an extra filter option, this works when the HTML is updated via JS.
            var selectedAttr = $select
                .find("option")
                .filter('[selected="selected"]')
                .text(), //Used when the option is set via JS
                selectedFilter = $select
                .find("option")
                .filter(":selected")
                .text(), //Used when the option is selected by a user in the browser
                selectedDefault = $select.find("option").eq(0).text(); //Default

            if (selectedFilter !== "Kies een land") {
                $select.find("p").text(selectedFilter);
                return;
            }

            if (selectedAttr !== "Kies een land") {
                $select.find("p").text(selectedAttr);
                return;
            }

            $select.find("p").text(selectedDefault);
        }

        /**
         * Make Ajax call to email validator handler
         */
        function emailaddressValidator(value) {
            var isValid = false;

            // set url for json call
            var url = configuration.formulierenwizard.formValidationhandler;
            var fd = new FormData();
            fd.append("emailaddress", value);

            $.ajax({
                type: "POST",
                url: url,
                data: fd,
                processData: false,
                contentType: false,
                timeout: 3000,
                async: false, //Don't do an AJAX call, do a JAX call, because we want to wait for the result.
                success: function(data) {
                    //Success callback
                    isValid = data; //Return if valid or not.
                },
                error: function() {
                    //Error in AJAX call
                    isValid = /\@.*\..+$/.test(value); // perform standard validation
                },
            }); // ajax

            return isValid;
        }

        /*-----------------------------*\
     jQuery Validation plugin
     \*-----------------------------*/

        function initValidate() {
            /**
             * For more information about this plugin and how to
             * use it. Please read:
             * http://jqueryvalidation.org/documentation/
             */

            /**
             * Require at least one checkbox
             */
            $.validator.addMethod(
                "require-selection",
                function(value, element) {
                    var $element = $(element),
                        $form = $element.parents(".js-form"),
                        selectionGroup = $element.data(
                            "require-selection-group"
                        );

                    // Inform the developer to use the correct attribute
                    if (!selectionGroup) {
                        console.log(
                            "Use the data-require-selection-group attribute to define a selector which group needs to be validated"
                        );
                    }

                    // Trigger the form validation again when one of the required checkboxes is changed
                    $('[data-require-selection-group="' + selectionGroup + '"]')
                        .off("change.require-selection")
                        .on("change.require-selection", function() {
                            $form.valid();
                        });

                    // Select the group to check validation
                    return (
                        $(
                            '[data-require-selection-group="' +
                            selectionGroup +
                            '"]:checked'
                        ).length > 0
                    );
                },
                "U moet tenminste &eacute;&eacute;n keuze selecteren"
            );

            /**
             * Companyselector: validate if selection has been made
             */
            $.validator.addMethod(
                "bedrijfsnaam",
                function(value, element) {
                    var $element = $(element),
                        $form = $element.parents("form");

                    return (
                        this.optional(element) ||
                        (value !== (null || "") &&
                            $form.find("input.kvknummer").val() !==
                            (null || "")) ||
                        (value !== (null || "") &&
                            $form.find("input.initial-kvknummer").val() !==
                            (null || ""))
                    );

                    //Do not trigger this function if the modal with companies is not vissible yet.
                    //Bit stupid to tell people they need to select something if they can't.
                },
                $.validator.format("U moet een bedrijf selecteren")
            ); // error message content

            /**
             * Excludes the combination of answers, like saying 'No' to each thing to change,
             * and changing nothing all together. Stop waisting everybody's time.
             *
             */
            //mutuallyexclusive
            $.validator.addMethod(
                "mutuallyexclusive",
                function(value, element) {
                    var $block = $(element).parents(
                            ".js-mutuallyexclusive-wrapper"
                        ),
                        $mutuallyTriggers = $block.find(
                            ".js-mutually-exclusive input"
                        ),
                        $mutuallyChecked = $block.find(
                            ".js-mutually-exclusive input:checked"
                        ),
                        $message = $(
                            "<div class=\"notification js-notification-mutuallyexclusive\"><p>U kunt niet twee keer 'nee' invullen. Om te wijzigen voegt u de nieuwe gegevens toe en laat u de oude vervallen.</p></div>"
                        ),
                        $messageInDom = $block.find(
                            ".js-notification-mutuallyexclusive"
                        ),
                        isMessageInserted = $messageInDom.length === 1;

                    //Return false if more than 2 are checked
                    var valid =
                        this.optional(element) ||
                        $mutuallyTriggers.length > $mutuallyChecked.length;

                    if (!valid) {
                        if (!isMessageInserted) {
                            var $location = $block
                                .find("label")
                                .first()
                                .parent();
                            $message.insertBefore($location);
                        } else {
                            $messageInDom.removeClass("is-hidden");
                        }
                    } else {
                        if (isMessageInserted) {
                            $messageInDom.addClass("is-hidden");
                        }
                    }

                    return valid;
                },
                ""
            );

            /**
             * Companyselector: validate if selection has more locations
             * with result of type 22
             */
            $.validator.addMethod(
                "hasmorelocations",
                function(value, element) {
                    var $companySelector = $(element).parents(
                            ".js-companyselector"
                        ),
                        $hasMoreLocations = $companySelector.find(
                            ".js-hasmorelocations"
                        ),
                        $notification = $companySelector.nextAll(
                            ".js-notification"
                        );

                    if ($hasMoreLocations.val() === "1") {
                        $companySelector.addClass("is-last-element"); // remove margin
                        $notification.addClass("is-hidden");
                        return true;
                    }

                    $companySelector.removeClass("is-last-element"); // add margin between element
                    $notification.removeClass("is-hidden");
                    return false;
                },
                $.validator.format(
                    "U heeft een bedrijf geselecteerd met maar 1 vestiging."
                )
            );

            /**
             * Companyselector: check if selection has a location
             */
            $.validator.addMethod(
                "isVestiging",
                function(value, element) {
                    var $companySelector = $(element).parents(
                            ".js-companyselector"
                        ),
                        $isVestiging = $companySelector.find("input.vestiging"),
                        $notification = $companySelector.nextAll(
                            ".js-notification"
                        );

                    if ($isVestiging.val() === "1") {
                        $companySelector.addClass("is-last-element"); // remove margin
                        $notification.addClass("is-hidden");
                        return true;
                    }

                    $companySelector.removeClass("is-last-element"); // add margin between element
                    $notification.removeClass("is-hidden");
                    return false;
                },
                $.validator.format(
                    "U heeft een bedrijf of stichting geselecteerd zonder vestiging."
                )
            );

            /**
             * Companyselector: ???
             * Special rule for form /formulier/vestigingoverdragen/
             */
            $.validator.addMethod(
                "isdifferentcompany",
                function(value, element) {
                    var company =
                        JSON.parse(sessionStorage.getItem("wizard-company")) || {};
                    var $firstKvK = company.dossiernummer,
                        $other = $(element).parents("#dynamicform"),
                        $secondKvK = $other
                        .find('input[name="kvknummer"]')
                        .val();

                    if ($firstKvK === $secondKvK) {
                        return false; //Selected the same company twice, throw error.
                    }

                    return true; //Not the same, so OK.
                },
                $.validator.format(
                    "U kunt uw vestiging niet overdragen aan uw eigen organisatie. Kies een andere organisatie om de vestiging aan over te dragen."
                )
            );

            /**
             * BSN check.
             *
             * Test: (9 * a) + (8 * b) + (7 * c) + (6 * d) + (5 * e) + (4 * f) + (3 * g) + (2 * h) + (-1 * i) % 11 == 0
             * Where BSN 510889517: a = 5, b = 1, c = 0, d = 8, e = 8, f = 9, g = 5, h = 1, i = 7.
             *
             * http://nl.wikipedia.org/wiki/Elfproef
             * http://nl.wikipedia.org/wiki/Burgerservicenummer#11-proef
             *
             */

            $.validator.addMethod(
                "bsn",
                function(value, element) {
                    var bsn = value;

                    //Incase the input was invalid (undefined etc.)
                    if (!bsn) {
                        return false;
                    }

                    if (bsn.length === 0) {
                        // We received an empty string (?) thats ok.
                        return true;
                    }

                    var bsn_length = bsn.length;
                    if (
                        bsn_length < 8 ||
                        bsn_length > 9 ||
                        $.isNumeric(bsn) === false
                    ) {
                        //A valid BSN is 8 or 9 characters long.
                        return false;
                    }

                    var pos = 0; // The position of a character in the BSN.
                    var result = 0; // Result of the multiplication and addition.
                    for (var i = bsn_length; i > 0; i--) {
                        // Loop backward, start at 9 (or 8)
                        result +=
                            i !== 1 ? bsn.charAt(pos) * i : bsn.charAt(pos) * -1; // Only the last one we need to multiply with -1.
                        pos++;
                    }
                    return result % 11 === 0; // calculate the remainder of the devision (modulo), verify its 0.
                },
                $.validator.format("Voer een geldig BSN in")
            );

            /**
             * Checks Capitals, spaces and special characters except . -
             * TODO: This is not a berichtenbox only check perse, its just a regex check. So consider renaming.
             * Is this function accually used?
             */
            $.validator.addMethod(
                "berichtenbox",
                function(value, element) {
                    if (value.length === 0) {
                        return true;
                    } else {
                        return /^([0-9a-z.-])+$/.test(value);
                    }
                },
                $.validator.format("Voer een geldig adres in")
            );

            /**
             * Combine two address fields for single error message
             */
            $.validator.addMethod(
                "address-selection",
                function(value, element) {
                    if (value.length > 0) {
                        return true;
                    }
                },
                $.validator.format("Vul een geldige postcode en huisnummer in")
            );

            /*
             * This function checks if the new searched address was used.
             */
            $.validator.addMethod(
                "searchedaddress",
                function(value, element) {
                    var $element = $(element),
                        $parent = $element.parents(".js-address-check-gx");

                    if ($parent.length === 0) {
                        return true;
                    }

                    var $addressPrefill = $parent.find(
                            ".js-address-street-prefill"
                        ), //Go to the container.
                        $addressUser = $parent.find(".js-address-street");

                    //Check if the classes js-address-street-prefill, js-address-street not available
                    if (
                        $addressPrefill.length === 0 &&
                        $addressUser.length === 0
                    ) {
                        return false;
                    }

                    //Both the prefill and user input are hidden.
                    if (
                        $addressPrefill.hasClass("is-hidden") &&
                        $addressUser.hasClass("is-hidden")
                    ) {
                        return false;
                    }

                    return true;
                },
                $.validator.format('Klik op de knop "Zoek adres" hieronder')
            );

            /**
             * Check if when you choose to change a Bezoekades, no Postbus is added to the new address.
             * This is used in the webformulier Ondernemingsgegevens and vestiginginschrijven
             */

            $.validator.addMethod(
                "nopostbus",
                function(value, element) {
                    var prefillStreet = $form
                        .find(
                            ".label--filled.js-address-street-prefill + input"
                        )
                        .val(),
                        inputStreet = $form
                        .find(".js-address-street input")
                        .val(),
                        streetname = prefillStreet || inputStreet;

                    if (streetname) {
                        return !(
                            streetname.toUpperCase().substring(0, 7) ===
                            "POSTBUS"
                        );
                    }

                    return true;
                },
                $.validator.format("Het bezoekadres mag geen postbus zijn.")
            );

            $.validator.addMethod(
                "existingdateNL",
                function(value, element) {
                    //ALWAYS use this validation rule combined with dateNL!
                    //syntax checking is done in dateNL
                    //this rule only checks existing dates, so that the right specific
                    //validation message will be shown in the right situation

                    var check = true,
                        regex = /^\d{1,2}\-\d{1,2}\-\d{4}$/;
                    if (regex.test(value)) {
                        var dateArray = value.split("-"),
                            dd = parseInt(dateArray[0], 10),
                            mm = parseInt(dateArray[1], 10),
                            yyyy = parseInt(dateArray[2], 10),
                            xdata = new Date(yyyy, mm - 1, dd);
                        check =
                            xdata.getFullYear() === yyyy &&
                            xdata.getMonth() === mm - 1 &&
                            xdata.getDate() === dd;
                    }
                    return this.optional(element) || check;
                },
                "Deze datum bestaat niet"
            );

            $.validator.addMethod(
                "dateNL",
                function(value, element) {
                    var regex = /^\d{1,2}\-\d{1,2}\-\d{4}$/,
                        check = regex.test(value);
                    return this.optional(element) || check;
                },
                "Een geldige datum is DD-MM-JJJJ."
            );

            $.validator.addClassRules("js-validate-dateNl", {
                dateNL: true,
                existingdateNL: true,
            });

            /**
             * Make call to handler to check custom email validation rules
             */
            $.validator.addMethod(
                "email",
                function(value, element) {
                    if (development) {
                        return true;
                    }

                    return (
                        this.optional(element) || emailaddressValidator(value)
                    );
                },
                "Vul een geldig e-mailadres in"
            );

            /**
             * Validate password mijnKvk email account
             */
            $.validator.addMethod(
                "passwordvalidationmijnkvk",
                function(value) {
                    var regex = /[^ -~]/; // not matches ASCII characters
                    var check = regex.test(value);

                    if (check) {
                        return false;
                    }

                    return (
                        value != null && value.length >= 9 && value.length < 256
                    );
                },
                "De volgende tekens zijn toegestaan in uw wachtwoord: a-z, A-Z, 0-9 en de standaard leestekens."
            );

            /**
             * Validate password no leading and trading spaces
             */
            $.validator.addMethod(
                "passwordvalidation",
                function(value) {
                    return (
                        value != null &&
                        value.length >= 9 && //at least 9 characters
                        $.trim(value) === value
                    ); //no leading or trailing spaces
                },
                "Dit wachtwoord voldoet niet aan alle vereisten."
            );

            /**
             * This is url validation which checks only for not null.
             * We use type=url html 5 attribute to trigger native keypad in mobile browsers.
             * In absence of the below function, the native html5 url validation is triggered; which does
             * a strict check for the presence of http:// in the string (in some browsers) which is not desirable for us
             */
            $.validator.addMethod(
                "url",
                function(value) {
                    return value !== null && value !== "";
                },
                "Vul hier een geldige URL in"
            );

            $.validator.addMethod(
                "radioselect",
                function(value) {
                    //returen
                },
                "U moet hier een optie selecteren"
            );

            // Trigger validation on max-length fields when there beeing typed in.
            // This way the users get feedback sooner (i.e. while typing, and not after pressing submit).
            var $formElm = $form.find(".max-length"); //Our maxlength elements.
            $formElm.on("keyup", function() {
                //onkeyup.
                $(this).valid(); //Trigger validation on the element on each keypress.
            });

            /**
             * This method validate if the given bankaccountnumbers are from KvK
             */
            $.validator.addMethod(
                "kvkbankaccountnumber", // This function checks if the number is a current KvK bank account number
                function(value, element) {
                    var validBankaccountnumbers = [
                            "NL26RBOS0760036950",
                            "NL04ABNA0490707580",
                            "NL17DEUT0534641288",
                            "NL20DEUT0498802159",
                            "NL34DEUT0456119094",
                            "NL59INGB0000009434",
                            "NL96ABNA0240266668",
                            "NL09INGB0000941922",
                            "NL14RABO0384207200",
                            "NL18RABO0135641233",
                            "NL49ABNA0444034250",
                            "NL73INGB0000098616",
                            "NL81RABO0362175063",
                            "NL85INGB0656646101",
                            "NL31DEUT0319810577",
                        ],
                        i = 0;

                    for (i; i < validBankaccountnumbers.length; i++) {
                        //Loop through all numbers
                        if (value === validBankaccountnumbers[i]) {
                            //If the number is in the list
                            return true; //Its a KVK number (could be an old one though).
                        }
                    }

                    return false;
                },
                $.validator.format(
                    "Dit rekeningnummer is niet van de KvK. We raden u aan om contact op te nemen met uw bank om de betaling te herstellen."
                )
            );

            /**
             * #TODO document this method please
             */
            $.validator.addMethod(
                "ispastdate",
                function(value, element) {
                    var regex = /^\d{1,2}\-\d{1,2}\-\d{4}$/,
                        check = regex.test(value);

                    if (check) {
                        var dateArray = value.split("-"),
                            dd = parseInt(dateArray[0], 10),
                            mm = parseInt(dateArray[1], 10),
                            yyyy = parseInt(dateArray[2], 10),
                            chosendate = new Date(yyyy, mm - 1, dd),
                            today = new Date(),
                            difference = general.dateDiffInDays(
                                chosendate,
                                today
                            );

                        return this.optional(element) || difference >= 1;
                    }

                    return this.optional(element) || false; //Could not do regex
                },
                $.validator.format("De datum moet in het verleden liggen.")
            );

            $.validator.addMethod(
                "relatienummer",
                function(value) {
                    var regex = /^(d|D)[0-9]{7}/,
                        check = regex.test(value);

                    return check;
                },
                $.validator.format(
                    "Voer een geldig relatie nummer in (start met een D gevolgd door 7 getallen)."
                )
            );

            $.validator.addMethod(
                "ismax60days",
                function(value) {
                    var regex = /^\d{1,2}\-\d{1,2}\-\d{4}$/,
                        check = regex.test(value);

                    if (check) {
                        var dateArray = value.split("-"),
                            dd = parseInt(dateArray[0], 10),
                            mm = parseInt(dateArray[1], 10),
                            yyyy = parseInt(dateArray[2], 10),
                            chosendate = new Date(yyyy, mm - 1, dd),
                            today = new Date(),
                            difference = general.dateDiffInDays(
                                today,
                                chosendate
                            );

                        return difference <= 60;
                    }

                    return false; //Could not do regex
                },
                $.validator.format(
                    "De ingangsdatum van de wijzing mag niet verder dan 2 maanden in de toekomst liggen. Geef de wijziging op een later moment aan ons door."
                )
            );

            $.validator.addMethod(
                "isfuturedate",
                function(value) {
                    var regex = /^\d{1,2}\-\d{1,2}\-\d{4}$/,
                        check = regex.test(value);

                    if (check) {
                        var dateArray = value.split("-"),
                            dd = parseInt(dateArray[0], 10),
                            mm = parseInt(dateArray[1], 10),
                            yyyy = parseInt(dateArray[2], 10),
                            chosendate = new Date(yyyy, mm - 1, dd),
                            today = new Date(),
                            difference = general.dateDiffInDays(
                                chosendate,
                                today
                            );

                        return difference < 1;
                    }

                    return false; //Could not do regex
                },
                $.validator.format("De datum mag niet in het verleden liggen.")
            );

            /**
             * This method validate if the KvK bankaccountnumbers (checked with method checkKvkBankAccount) are still active backaccountsnumber
             */
            $.validator.addMethod(
                "kvkbankaccountnumberold", // This function checks if the number is a older KvK bank account number
                function(rekeningnummer) {
                    var validBankaccountnumbers = [];

                    validBankaccountnumbers.NL20DEUT0498802159 = new Date(
                        "2015-03-13"
                    );
                    validBankaccountnumbers.NL34DEUT0456119094 = new Date(
                        "2015-03-31"
                    );
                    validBankaccountnumbers.NL96ABNA0240266668 = new Date(
                        "2015-03-10"
                    );
                    validBankaccountnumbers.NL59INGB0000009434 = new Date(
                        "2015-04-23"
                    );
                    validBankaccountnumbers.NL09INGB0000941922 = new Date(
                        "2014-12-22"
                    );
                    validBankaccountnumbers.NL14RABO0384207200 = new Date(
                        "2014-08-14"
                    );
                    validBankaccountnumbers.NL18RABO0135641233 = new Date(
                        "2014-11-11"
                    );
                    validBankaccountnumbers.NL49ABNA0444034250 = new Date(
                        "2015-01-26"
                    );
                    validBankaccountnumbers.NL73INGB0000098616 = new Date(
                        "2014-07-17"
                    );
                    validBankaccountnumbers.NL81RABO0362175063 = new Date(
                        "2014-08-21"
                    );
                    validBankaccountnumbers.NL85INGB0656646101 = new Date(
                        "2014-11-19"
                    );

                    var datumOpgeheven =
                        validBankaccountnumbers[rekeningnummer],
                        datumKlant = $("#datum-afschrijving").val();

                    if (
                        datumOpgeheven === null ||
                        datumOpgeheven === undefined
                    ) {
                        //User entered a IBAN which was not in our list.
                        return true;
                    }

                    if (datumKlant !== null && datumKlant.length === 10) {
                        //Check for valid date
                        var jaar = datumKlant.substring(6, 10),
                            maand = datumKlant.substring(3, 5),
                            dag = datumKlant.substring(0, 2);

                        datumKlant = new Date(jaar + "-" + maand + "-" + dag);

                        if (datumKlant < datumOpgeheven) {
                            //The user says he transferred money to the IBAN before it was clossed.
                            return true; //So its OK.
                        }

                        return false; //Else its NOK
                    }

                    return true; //The date given by the user was invalid OR not provided at all. Return true, we cant check so we assume its OK.
                },
                $.validator.format(
                    "Dit rekeningnummer is vervallen. Het bedrag is automatisch op uw rekening teruggestort. Controleer uw bankrekening."
                )
            );

            $.validator.addMethod(
                "alphanumeric-space",
                function(value, element) {
                    return (
                        this.optional(element) || !/[^a-zA-Z0-9 ]+/g.test(value)
                    );
                },
                "Deze referentie kan niet worden opgenomen in uw bestelling. Vul alleen letters, cijfers en/of spaties in (a-z, A-Z, 0-9)."
            );

            $.validator.addMethod(
                "foreigncountryselect",
                function(value, element) {
                    return value !== "Kies een land";
                },
                $.validator.format("Selecteer een land.")
            );

            /**
             * Check if a given number is a valid money amount and above 0 (possible with comma or dot and 2 decimals)
             *
             * Dots and spaces are allowed but only when preceded by numbers.
             * After the , only two digits are allowed.
             *
             */
            $.validator.addMethod(
                "positivemoneyamount",
                function(value, element) {
                    var number = value,
                        regex = /^[1-9][0-9]{0,2}(?:(\s|\.)?[0-9]{3}){0,3}(\,[0-9]{2})?$/gm,
                        check = regex.test(number);

                    return check; // Nothing was entered, thats ok.
                },
                $.validator.format(
                    "Gebruik alleen cijfers (geef centen aan na een komma)."
                )
            );

            /**
             * Checks if the entered value is a positive number, 0 is also allowed
             */
            $.validator.addMethod(
                "positiveinteger",
                function(value, element) {
                    var number = value,
                        regex = /^\d*$/,
                        check = regex.test(number);

                    return check; // Nothing was entered, thats ok.
                },
                $.validator.format("Gebruik alleen positieve getallen.")
            );

            /*
             * A function to validate international phone numbers.
             * Max 15 characters. Can start with a + can have one space between numbers
             *
             */
            $.validator.addMethod(
                "internationalphonenumber",
                function(value, element) {
                    var regex = /^\+?(?:[0-9] ?){6,14}[0-9]$/,
                        check = regex.test(value);

                    return this.optional(element) || check;
                },
                $.validator.format(
                    "Vul een geldig telefoonnummer in. (Max 15 cijfers, spaties zijn toegestaan)"
                )
            );

            $.validator.addMethod(
                "mobilenumber",
                function(value, element) {
                    var regex = /.*(\+316)\d{8}.*/,
                        check = regex.test(value);

                    return this.optional(element) || check;
                },
                $.validator.format(
                    "Vul een geldig mobiel nummer in (vb. +31612345678)."
                )
            );

            // Special validator for phonenumbers in form.
            // The goal of this function is to stimulate users to enter either a correct dutch mobile number
            // OR a valid international number. Dutch numbers have a strict length check, international ones are
            // permitted to be between 6 and 15 digits.
            //
            // Valid formats:
            // Dutch: +31612341234 | 0031612341234 | 0612341234
            // International: 004412341234 | +441234123412341
            //
            // When the element does not have 'data-rule-required' it also accepts the default value of +316 or an empty value
            $.validator.addMethod(
                "formphonenumber",
                function(value, element) {
                    var trimmedValue = value.replace(/ /g, "");
                    var regexNLPrefix = /^(?:(?:\+31|0031)(\d)|06)(\d*)/;
                    var regexInternational = /^(?:\+|00)(?:[0-9] ?){6,15}$/;

                    if (!$(element).data().ruleRequired) {
                        if (trimmedValue === "+316" || trimmedValue === "")
                            return true;
                    }

                    var nlMatches = trimmedValue.match(regexNLPrefix);
                    return nlMatches ? (nlMatches[1] === "6" ||
                            nlMatches[1] === undefined) &&
                        nlMatches[2].length === 8 : regexInternational.test(trimmedValue);
                },
                $.validator.format(
                    "Vul een geldig mobiel nummer in (Max 15 cijfers, spaties zijn toegestaan, vb. +31612345678)."
                )
            );

            $.validator.addMethod(
                "searchedcompany",
                function(value, element) {
                    return $(".js-searchedcompany").length > 0;
                },
                $.validator.format("Selecteer een onderneming.")
            );

            // KWO-552: Remove error message on focus
            var $postcodeInput = $form.find(
                'input[data-addresscheck-gx="postcode"]'
            );
            $postcodeInput.on("focus", function() {
                var $fieldset = $(this).parents(".js-address-check-gx");
                var $firstLabel = $fieldset.find("label").eq(0);
                var $error = $firstLabel.find("div.error");
                $error.remove();
            });
        }

        /**
         * This function validate if the given bankaccountnumbers are from KvK
         */
        function checkKvkBankAccount() {
            $form.on("blur", ".js-validate-kvkbank", function() {
                $(this).valid();
            });
        }

        /**
         * This function validate if the KvK bankaccountnumbers (checked with function checkKvkBankAccount() ) are still active backaccountsnumber
         */
        function checkKvkBankAccountDate() {
            $form.on("focus", ".js-validate-kvkbankdate", function() {
                $(this).parents("fieldset").prev(".js-validate-kvkbank").blur();
            });
        }

        /*
         * Checks if the date is futher away then 3 days in the future
         */
        function checkFutureDateNL() {
            var regex = /^\d{1,2}\-\d{1,2}\-\d{4}$/;

            $form.on("change focus", ".js-checkfuturedate", function() {
                var value = $(this).find("input.js-datepicker").val(),
                    $parent = $(this),
                    $notification = $parent.find(".js-notification"),
                    check = regex.test(value);

                if (check) {
                    var dateArray = value.split("-"),
                        dd = parseInt(dateArray[0], 10),
                        mm = parseInt(dateArray[1], 10),
                        yyyy = parseInt(dateArray[2], 10),
                        chosendate = new Date(yyyy, mm - 1, dd),
                        today = new Date(),
                        difference = general.dateDiffInDays(chosendate, today);

                    if (difference < -2) {
                        $notification.removeClass("is-hidden");
                    } else {
                        $notification.addClass("is-hidden");
                    }
                }
            });
        }

        /*
         * toggle show/hide input field on checkbox
         */
        function showInputField() {
            var $faxInput = $(".js-reveal-if-active");
            if ($(".js-reveal").prop("checked")) {
                $faxInput.removeClass("is-hidden");
            } else {
                $faxInput.addClass("is-hidden");
            }
            $(".js-reveal").click(function() {
                $faxInput.toggleClass("is-hidden");
            });
        }

        // make these functions globally available
        return {
            init: init,
            validateOptions: validateOptions,
            validator: validator,
            initSelect: initSelect,
            setRadioOptions: setRadioOptions,
        };
    })()
);
#13 JavaScript::Eval (size: 149) - SHA256: 133abe0623caa6163d21df8311029b1625d32e04ddc19332142e37a548f551bb
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(24),
        b = google_tag_manager["GTM-P2JD7J"].macro(25);
    return void 0 != a && void 0 != b ? "ja" : "nee"
})();
#14 JavaScript::Eval (size: 28513) - SHA256: 17a1fee8384c6c339fcb2e7387fcbec2c535bf33fa58f4c14779390f772d9677
function CookieManager() {
    var self = this;

    const modalCode = `<div class="ReactModalPortal">
   <div class="ReactModal__Overlay ReactModal__Overlay--after-open c-modal-overlay-background" style="z-index: 2147483647!important" >
      <div class="ReactModal__Content ReactModal__Content--after-open c-modal p-8 p-12@size-m u-overflow-hidden u-opacity-100 c-modal--active" tabindex="-1" role="dialog" aria-labelledby="cookie-info-title" aria-modal="true" style="min-height: auto; min-width: auto; height: auto" >
         <section data-ui-test-class="cookieconsent" id="cookie-consent" aria-label="Cookie instellingen" style="position: relative; z-index: 30" >
            <div class="o-grid-column-start-1-end-13">
               <h2 id="cookie-info-title" class="u-margin-bottom-2x">Cookie instellingen</h2>
               <p id="cookie-info-intro" class="font-size-s font-lh-l"> KVK verkrijgt graag jouw toestemming om bepaalde cookies te mogen plaatsen. Lees eerst bij Persoonlijk en De beste gebruikservaring om wat voor cookies het gaat en geef daarna jouw voorkeur aan door Persoonlijk of De beste gebruikservaring aan te vinken. KVK plaatst altijd functionele cookies om de website goed te laten werken. </p>
               <form method="post" class="u-display-block">
                  <div class="u-position-relative u-display-inline-block u-padding-right-3x" aria-live="polite" aria-labelledby="label-for-cookie-options" role="radiogroup" id="cookie-options-radiogroup" data-ui-test-class="cookie-options-radiogroup" >
                  <label id="label-for-cookie-options">Maak je keuze</label>
                  </div>
               </form>
               <button type="button" name="Opslaan" aria-disabled="false" class="c-button c-button c-button--small@size-s mt-2 mr-8 mb-5" tabindex="0" data-ui-test-class="toestemming" >Keuze opslaan</button >
               <a href="/privacy/cookies/" class="c-link c-link inline-block@size-m" >
                  <svg class="c-arrow-icon fill-color-secondary-blue-base u-align-middle c-arrow-icon--right" width="20px" height="20px" focusable="false" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" >
                     <rect width="64" height="64" style="fill: none"></rect>
                     <polygon points="50.35 19.02 27.9 41.48 31.4 44.98 53.9 22.57 50.35 19.02" ></polygon>
                     <polygon points="34.95 41.45 12.5 19 9 22.5 31.4 45 34.95 41.45" ></polygon>
                  </svg >
                  <span class="u-align-middle u-font-weight-inherit" >Cookie informatie</span >
               </a >
               <h3 class="mt-2" id="cookie-info-subtitle">Informatie over cookie keuze</h3>
               <ul id="cookie-info-list">
                  <li class="c-accordion__panel" id="q-0.3650576799822971" data-ui-test-class="accordion-item" >
                     <button type="button" name="" aria-disabled="false" class="c-button-not-visible u-width-full u-text-left" tabindex="0" data-ga-expanded="false" aria-controls="0.3650576799822971" data-ui-test-class="accordion-toggle-button" aria-expanded="false" >
                        <h3 class="h5 c-accordion__heading">Functioneel</h3>
                        <span class="c-accordion__heading-button fill-color-primary-purple-base" >
                           <svg class="c-arrow-icon u-margin-bottom-none" width="20px" height="20px" focusable="false" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" >
                              <rect width="64" height="64" style="fill: none"></rect>
                              <polygon points="50.35 19.02 27.9 41.48 31.4 44.98 53.9 22.57 50.35 19.02" ></polygon>
                              <polygon points="34.95 41.45 12.5 19 9 22.5 31.4 45 34.95 41.45" ></polygon>
                           </svg >
                        </span>
                     </button>
                     <div class="c-accordion__panel-content font-size-s font-lh-l" id="0.3650576799822971" data-ui-test-class="answer" style="display: none;" >
                        <div>We plaatsen altijd functionele cookies voor een goed en veilig gebruik van onze website. Hiermee kan je bijvoorbeeld automatisch inloggen op onze website. Tevens plaatsen wij analytische cookies, zoals van Google Analytics, om onder meer bezoekersstatistieken bij te houden. Deze informatie gebruiken we niet om persoonlijke profielen te maken. De analytische cookies gebruiken wij wel om bijvoorbeeld te meten welke delen van onze website je bezoekt en hoe vaak je dat doet. Met deze gegevens verbeteren we onze website. Wij hebben voor dit gebruik geen toestemming nodig.</div>
                     </div>
                  </li>
                  <li class="c-accordion__panel" id="q-0.06733224176236874" data-ui-test-class="accordion-item" >
                     <button type="button" name="" aria-disabled="false" class="c-button-not-visible u-width-full u-text-left" tabindex="0" data-ga-expanded="false" aria-controls="0.06733224176236874" data-ui-test-class="accordion-toggle-button" aria-expanded="false" >
                        <h3 class="h5 c-accordion__heading">Persoonlijk</h3>
                        <span class="c-accordion__heading-button fill-color-primary-purple-base" >
                           <svg class="c-arrow-icon u-margin-bottom-none" width="20px" height="20px" focusable="false" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" >
                              <rect width="64" height="64" style="fill: none"></rect>
                              <polygon points="50.35 19.02 27.9 41.48 31.4 44.98 53.9 22.57 50.35 19.02" ></polygon>
                              <polygon points="34.95 41.45 12.5 19 9 22.5 31.4 45 34.95 41.45" ></polygon>
                           </svg >
                        </span>
                     </button>
                     <div class="c-accordion__panel-content font-size-s font-lh-l" id="0.06733224176236874" data-ui-test-class="answer" style="display: none;" >
                        <div>Naast de functionele en analytische cookies (zoals omschreven onder Functioneel) maken wij met deze cookies de website persoonlijker en gebruiksvriendelijker. We tonen je informatie over voor jou relevante KVK-producten en -diensten. Het gaat hier alleen om cookies van ons zelf en niet om privacygevoelige cookies van derden. Wanneer je kiest voor Persoonlijk, volgen we je gedrag op onze website. Zo kunnen we je artikelen tonen die voldoen aan je interesses of opgegeven profiel. Ook kunnen we je voor jou relevante producten of diensten tonen die aansluiten op het door jou opgebouwde profiel.</div>
                     </div>
                  </li>
                  <li class="c-accordion__panel" id="q-0.8794555524538652" data-ui-test-class="accordion-item" >
                     <button type="button" name="" aria-disabled="false" class="c-button-not-visible u-width-full u-text-left" tabindex="0" data-ga-expanded="false" aria-controls="0.8794555524538652" data-ui-test-class="accordion-toggle-button" aria-expanded="false" >
                        <h3 class="h5 c-accordion__heading">De beste ervaring</h3>
                        <span class="c-accordion__heading-button fill-color-primary-purple-base" >
                           <svg class="c-arrow-icon u-margin-bottom-none" width="20px" height="20px" focusable="false" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" >
                              <rect width="64" height="64" style="fill: none"></rect>
                              <polygon points="50.35 19.02 27.9 41.48 31.4 44.98 53.9 22.57 50.35 19.02" ></polygon>
                              <polygon points="34.95 41.45 12.5 19 9 22.5 31.4 45 34.95 41.45" ></polygon>
                           </svg >
                        </span>
                     </button>
                     <div class="c-accordion__panel-content font-size-s font-lh-l" id="0.8794555524538652" data-ui-test-class="answer" style="display: none;" >
                        <div>Naast de functionele en analytische cookies �n de cookies zoals genoemd onder Persoonlijk plaatsen wij ook cookies van derden en cookies waarmee wij jouw internetgedrag kunnen volgen. Door deze cookies haal je het meeste uit onze website. Zo kun je bijvoorbeeld videos bekijken. Ook informeren we je over voor jou relevante KVK-producten en -diensten. Wij en derden volgen je internetgedrag en verzamelen daarbij je persoonsgegevens. Denk aan je IP-adres of door jou bezochte webpaginas. Deze informatie wordt ook opgeslagen op de server van de aanbieder van de website of op de server waar KVK.nl gebruik van maakt. Door sociale media-cookies kun je verbinding maken met sociale netwerken en content van onze website op sociale media delen. Derde partijen, zoals Google, kunnen ook een analyse uitvoeren of een video tonen en hierbij cookies plaatsen.</div>
                     </div>
                  </li>
               </ul>
            </div>
         </section>
      </div>
   </div>
</div>`;

    // START the cookiemanager
    function init() {
        // detect if cookiebar is enabled
        //Only for old style pages.
        if (
            configuration.cookies.enableTrackingCookieNotificationBar &&
            $("#js-components").length === 0 &&
            typeof window !== "undefined" &&
            !window.location ? .href.includes("http://www.loc.kvk.nl")
        ) {
            // detect if cookie is present
            switch ($.cookie("allowTrackingCookiesKvK")) {
                // cookies are accepted -> load GA
                case "1":
                case "2":
                case "3":
                    break;

                    // no valid cookievalues detected -> open the cookiebar
                default:
                    self.openCookiePermissionBar();
                    break;
            }
        }
    }

    // remove cookies that are previously set for this domain
    function removeTrackingCookies() {
        var trackingCookieArray = "abcdefghijklmnopqrstuvwxyz";

        for (var i = 0; i < trackingCookieArray.length; i++) {
            var cookiename = "__utm" + trackingCookieArray.charAt(i);
            $.removeCookie(cookiename, {
                path: "/",
                domain: configuration.cookies.cookieDomain,
            });
        }

        const youtubeTrackingCookiesList = [
            "SAPISID",
            "SID",
            "SIDCC",
            "SSID",
            "VISITOR_INFO1_LIVE",
            "YSC",
            "__Secure-3PAPISID",
            "__Secure-3PSID",
            "__Secure-APISID",
            "__Secure-HSID",
            "__Secure-SSID",
            "LOGIN_INFO",
            "PREF",
        ];

        for (let j = 0; j < youtubeTrackingCookiesList.length; j++) {
            $.removeCookie(youtubeTrackingCookiesList[j], {
                path: "/",
                domain: configuration.cookies.cookieDomain,
            });
        }
    }

    // Public functions
    self.openCookiePermissionBar = function() {
        $.ajax({
            url: window.configuration.url.webApiBaseUrl +
                "/content/component/search?urlPath=%2Fprivacy%2Fcookies%2F",
            headers: {
                "api-version": "2"
            },
            error: function() {
                $(".ReactModal__Overlay")
                    .addClass("hidden")
                    .removeClass("c-modal-overlay-background");
                $("body").removeClass("cookie-active");
                $("body").removeClass("ReactModal__Body--open");
            },
            success: function(result) {
                $("body").prepend(modalCode);

                $("body").addClass("cookie-active");
                $("body").addClass("ReactModal__Body--open");
                $(".site").attr("aria-hidden", true);

                var style = document.createElement("style");
                style.innerHTML = `.ReactModal__Body--open {overflow: hidden;}.c-modal{position:absolute;top:10vh;width:37.5rem;left:calc(50% - 10rem);background:#fff;overflow:auto;-webkit-overflow-scrolling:touch;outline:0;transform:scale(.7);opacity:0;transition:all .3s;border:1px solid #bebebe;border-radius:.25rem;text-align:left}.c-modal-overlay-background{background-color:rgba(0,0,0,.3);top:0;left:0;bottom:0;right:0;position:fixed;display:block;width:100%;height:100%;z-index:1000;overflow-y:auto}.u-overflow-hidden{overflow:hidden!important}.u-opacity-100,.u-opacity-hover-100:hover{opacity:1}.c-modal--active{transform:scale(1);opacity:1}.p-8{padding:2rem!important}.o-grid-column-start-1-end-13{grid-column-start:1!important;grid-column-end:13!important}.u-margin-bottom-2x{margin-bottom:1rem!important}h2{color:#00526e;font-size:1.75rem;line-height:2rem}.font-lh-l{line-height:1.5rem!important}.font-size-s{font-size:.875rem!important}p{color:#343434;font-size:1.125rem;line-height:1.875rem;letter-spacing:.04px;margin-bottom:1rem}.u-display-block{display:block!important}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}.c-button{background-color:#aa418c;box-shadow:0 4px 6px hsl(0deg 0% 75% / 20%),0 1px 3px hsl(0deg 0% 75% / 20%);border-radius:.25rem;border:.0625rem solid #aa418c;color:#fff;cursor:pointer;display:inline-block;font-size:18px;font-weight:500;line-height:1rem;min-width:5rem;padding:1rem 1.5rem;text-decoration:none;transition:all .15s ease;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mr-8{margin-right:2rem!important}.mb-5{margin-bottom:1.25rem!important}.mt-2{margin-top:.5rem!important}.c-link{color:#0070b9;cursor:pointer;display:inline-block;text-decoration:underline;line-height:2rem}.hidden{display:none!important}a{background-color:transparent;color:#0070b9;-webkit-text-decoration-skip:objects}svg:not(:root){overflow:hidden}.u-align-middle{vertical-align:middle!important}.fill-color-secondary-blue-base{fill:#0070b9!important}.u-font-weight-inherit{font-weight:inherit!important}ol,ul{line-height:1.625rem!important}.bodyText-s,ol,ul{letter-spacing:.04px}blockquote,body,dd,dl,fieldset,figure,h1,h3,h4,h5,h6,hr,legend,ol,pre,ul{margin:0;padding:0}.mt-4{margin-top:1rem!important}.c-accordion__panel{list-style:none;margin-left:0;padding-top:1.5rem;position:relative}li{list-style:none}.c-accordion__panel>button{cursor:pointer}.u-width-full{width:100%!important}.u-text-left{text-align:left}.c-button--info,.c-button-not-visible{border:none;box-shadow:none;background:0 0;font-weight:inherit}button{font-family:Roboto}button,select{text-transform:none}button,input{overflow:visible}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}.c-accordion__heading{color:#343434;cursor:pointer;font-weight:400;}.c-accordion__heading-button{position:absolute;right:0;top:2rem}.fill-color-primary-purple-base{fill:#aa418c!important}.u-font-size-16{font-size:16px!important}.c-radio__label{padding-left:1rem;display:inline-block;position:relative;color:#343434}.c-arrow-icon--right{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}h3#cookie-info-subtitle{font-size: 22px}h3.h5.c-accordion__heading{font-size: 16px;font-weight: 600}#cookie-options-radiogroup > label.c-radio{font-size: 18px;font-weight: 400}h2#cookie-info-title{font-weight: 600}#cookie-consent span.u-align-middle.u-font-weight-inherit{text-decoration:underline}#cookie-consent .c-radio:focus-within{outline: .0625rem solid #0070b9}#cookie-consent .c-accordion__panel>button:focus{outline:.0625rem solid #0070b9;outline-offset:5px}`;
                document.getElementsByTagName("head")[0].appendChild(style);

                const cookieDataFromCMS = result[1].content.body;

                const filteredCookieData = cookieDataFromCMS.filter((item) => {
                    if (
                        item ? .blocks &&
                        // find the block with cookiedata, dump the rest
                        item.blocks.find(function(block) {
                            return block.type === "blocks.blockCookies";
                        })
                    ) {
                        return true;
                    }
                    return false;
                });

                // get first block from filtered results, as it contains the data we want
                const cmsData = filteredCookieData[0].blocks[0];

                const cookieOptionsFromCMS = [];
                cmsData.cookieLevels.map(({
                    level, title
                }) => {
                    return cookieOptionsFromCMS.push({
                        value: level,
                        text: title,
                    });
                });

                $(cookieOptionsFromCMS.sort((a, b) => a.value - b.value)).each(
                    function() {
                        $("#cookie-options-radiogroup").append(
                            $("<label>")
                            .addClass("c-radio")
                            .append(
                                $("<input>")
                                .addClass("c-radio__input")
                                .val(this.value)
                                .attr("type", "radio")
                                .attr("name", "cookie-options")
                                .attr(
                                    "data-checked",
                                    this.value === "1"
                                )
                                .attr(
                                    "aria-checked",
                                    this.value === "1"
                                )
                                .attr("checked", this.value === "1")
                                .attr("required", "")
                                .attr("aria-disabled", "false")
                                .attr("data-ui-test-class", this.text)
                                .attr("aria-invalid", "false")
                                .text(this.text),
                                $("<span>")
                                .addClass("c-radio__label")
                                .text(this.text)
                            )
                        );
                    }
                );
                if (cmsData ? .cookieLevels) {
                    $("#cookie-info-list").empty();
                    $(
                        cmsData.cookieLevels.sort((a, b) => a.level - b.level)
                    ).each(function() {
                        $("#cookie-info-list").append(
                            $("<li>")
                            .addClass("c-accordion__panel")
                            .append(
                                $("<button>")
                                .addClass(
                                    "c-button-not-visible u-width-full u-text-left"
                                )
                                .attr("tabindex", "0")
                                .attr("type", "button")
                                .attr(
                                    "data-ui-test-class",
                                    "accordion-toggle-button"
                                )
                                .attr("aria-expanded", "false")
                                .append(
                                    $("<h3>")
                                    .addClass(
                                        "h5 c-accordion__heading"
                                    )
                                    .text(this.title)
                                )
                                .append(
                                    $(`<span aria-hidden="true">`)
                                    .addClass(
                                        "c-accordion__heading-button fill-color-primary-purple-base"
                                    )
                                    .append(
                                        `<svg class="c-arrow-icon u-margin-bottom-none c-arrow-icon--up" width="20px" height="20px" focusable="false" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg"><rect width="64" height="64" style="fill: none;"></rect><polygon points="50.35 19.02 27.9 41.48 31.4 44.98 53.9 22.57 50.35 19.02"></polygon><polygon points="34.95 41.45 12.5 19 9 22.5 31.4 45 34.95 41.45"></polygon></svg>`
                                    )
                                )
                            )
                            .append(
                                $("<div>")
                                .addClass(
                                    "c-accordion__panel-content font-size-s font-lh-l"
                                )
                                .attr("style", "display: none;")
                                .text(this.description)
                            )
                        );
                    });
                    $("#cookie-consent").on(
                        "click",
                        "#cookie-options-radiogroup :radio",
                        function() {
                            $("#cookie-options-radiogroup :radio")
                                .attr("aria-checked", false)
                                .attr("data-checked", false);
                            $(this)
                                .attr("aria-checked", true)
                                .attr("data-checked", true);
                        }
                    );
                }

                self.cookieCodeKVK = cmsData.cookieCode;
                self.cookieLevels = cmsData.cookieLevels;

                if (cmsData.title) {
                    $("#cookie-info-title").text(cmsData.title);
                }

                if (cmsData.intro) {
                    $("#cookie-info-intro").text(cmsData.intro);
                }

                if (cmsData.subTitle) {
                    $("#cookie-info-subtitle").text(cmsData.subTitle);
                }

                self.bindActions();
            },
        });

        dataLayer.push({
            user: {
                updatedCookieBar: "yes",
                cookieBarVariant: "modal",
            },
            event: "show.toestemming",
        });
    };
    self.bindActions = function() {
        var btnSave = $("#cookie-consent > div > button");

        btnSave.on("click", function(e) {
            e.preventDefault();
            var radios = document.getElementsByName("cookie-options");

            for (var i = 0, length = radios.length; i < length; i++) {
                if (radios[i].checked) {
                    window.cookieManager.setAllowTrackingCookies(
                        radios[i].value
                    );
                    break;
                }
            }

            $(".ReactModal__Overlay")
                .addClass("hidden")
                .removeClass("c-modal-overlay-background");
            $("body").removeClass("cookie-active");
            $("body").removeClass("ReactModal__Body--open");
            $(".site").attr("aria-hidden", false);
        });

        const focusableElements =
            'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
        const modal = document.querySelector("#cookie-consent").parentNode;

        const firstFocusableElement = modal.querySelectorAll(
            focusableElements
        )[0]; // get first one
        const focusableContent = modal.querySelectorAll(focusableElements);
        const lastFocusableElement =
            focusableContent[focusableContent.length - 1]; // get last one

        document.addEventListener("keydown", function(e) {
            let isTabPressed = e.key === "Tab";

            if (!isTabPressed) {
                return;
            }

            if (e.shiftKey) {
                // shift + tab combination
                if (document.activeElement === firstFocusableElement) {
                    lastFocusableElement.focus(); // focus on last one
                    e.preventDefault();
                }
            } else {
                // tab key
                if (document.activeElement === lastFocusableElement) {
                    // cycle back to the first one  when the lat one is reached
                    firstFocusableElement.focus();
                    e.preventDefault();
                }
            }
        });

        $("#cookie-consent").parent().focus();

        $("#cookie-consent").on(
            "click",
            ".c-accordion__panel button",
            function() {
                var isClosed =
                    $(this)
                    .closest(".c-accordion__panel")
                    .find(".c-accordion__panel-content")
                    .css("display") === "none";
                if (isClosed) {
                    $(this)
                        .closest(".c-accordion__panel")
                        .find(".c-accordion__panel-content")
                        .slideDown();
                    $(this)
                        .closest(".c-accordion__panel")
                        .find("button")
                        .attr("aria-expanded", "true");
                } else {
                    $(this)
                        .closest(".c-accordion__panel")
                        .find(".c-accordion__panel-content")
                        .slideUp();
                    $(this)
                        .closest(".c-accordion__panel")
                        .find("button")
                        .attr("aria-expanded", "false");
                }
            }
        );
    };

    // SET new cookie (or update)
    self.setAllowTrackingCookies = function(allowTrackingCookies) {
        //Expiration date is 3 months from now.
        const expirationDate = new Date();
        expirationDate.setMonth(expirationDate.getMonth() + 3);
        $.cookie("allowTrackingCookiesKvK", allowTrackingCookies, {
            expires: expirationDate,
            path: "/",
            domain: configuration.cookies.cookieDomain,
            secure: configuration.cookies.secureCookies,
        });

        $.cookie("cookieCodeKVK", self.cookieCodeKVK, {
            expires: expirationDate,
            path: "/",
            domain: configuration.cookies.cookieDomain,
            secure: configuration.cookies.secureCookies,
        });

        $.cookie(
            "cookieLevelCodeKVK",
            self.cookieLevels[parseInt(allowTrackingCookies) - 1]
            .levelCookieCode, {
                expires: expirationDate,
                path: "/",
                domain: configuration.cookies.cookieDomain,
                secure: configuration.cookies.secureCookies,
            }
        );

        if (allowTrackingCookies) {
            // add to DataLayer
            dataLayer.push({
                user: {
                    toestemming: allowTrackingCookies,
                },
                event: "interaction.toestemming",
            });
        }
        if (allowTrackingCookies === "1") {
            // remove in functional level
            removeTrackingCookies();
        }
    };

    // start the class, do not initialize on local environments
    if (!configuration.developmentEnvironment) {
        init();
    }
}

function checkCookieActive() {
    var $cookieMelding = $(".ReactModal__Overlay");
    if (
        $cookieMelding.attr("class") &&
        !$cookieMelding.attr("class").includes("hidden")
    ) {
        $("body").addClass("cookie-active");
        $("body").addClass("ReactModal__Body--open");
    }
}

// trigger the cookiemanager when
$(document).ready(function() {
    // start cookie manager
    window.cookieManager = new CookieManager();

    if ($("#js-components").length === 0) {
        checkCookieActive();
    }
});
#15 JavaScript::Eval (size: 56) - SHA256: ae52722b1eb568fa8038e2ab7f2de588901798cd4d3f8950553a4a66a3a0d82d
(function() {
    return "1" === window.navigator.doNotTrack
})();
#16 JavaScript::Eval (size: 9346) - SHA256: 4f950deacbabbc3513a4762f9ca2411efc1dae987ea3f53397243a33f8ca04e2
/**
 * local development settings
 */
var development = false;

if (configuration.developmentEnvironment) {
    development = true;
}

window.development = development; //Used in shop-accountpage

/**
 * prevent IE from caching ajax requests like "Melding sluiten" in Mijn KvK
 */
$.ajaxSetup({
    cache: false
});

/**
 * General functions
 *
 * Can be used everywhere as supporting functions.
 */
var general = {
    /**
     * What do I do?
     */
    checkInputLength: function(input, minLength) {
        return $.trim("" + input).length >= minLength;
    },

    /**
     * delay opening link / form submit to push data to google analytics
     */
    delayedClick: function(url, time) {
        setTimeout(function() {
            window.location.href = url;
        }, time);
    },

    delayedSubmit: function($form, time) {
        setTimeout(function() {
            $form.submit();
        }, time);
    },

    /**
     * Converts `value` to a string if it's not one. An empty string is returned for `null` or `undefined` values.
     *
     * @private
     * @param {*} value The value to process.
     * @returns {string} Returns the string.
     */
    _baseToString: function(value) {


        if (typeof value === "string") {
            return value;
        }
        return value == null ? "" : value + "";
    },

    /**
     * Compare different dates
     */
    dateDiffInDays: function(d1, d2) {
        var t2 = d2.getTime();
        var t1 = d1.getTime();

        return parseInt((t2 - t1) / (24 * 3600 * 1000));
    },

    /**
     * What do I do?
     */
    getCheckbox: function($id, type) {
        if (type === "integer") {
            if ($id.is(":checked")) {
                return 1;
            } else {
                return 0;
            }
        } else {
            return $id.is(":checked");
        }
    },

    setCheckbox: function($id, value) {
        if (value === true || value === "true" || value === "1") {
            $id.prop("checked", true);
        } else {
            $id.prop("checked", false);
        }
    },

    /**
     * Get query parameter value by name
     */
    getParameterByName: function(name) {
        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");

        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
            results = regex.exec(location.search);

        return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
    },

    /**
     * Read URL parameters
     */
    getUrlVars: function(paramUrl, decode) {
        var vars = [],
            url = paramUrl || window.location.href;

        if (decode !== 1) {
            url = decodeURIComponent(url);
        }

        var nodes = url.slice(url.indexOf("?") + 1).split("&");

        for (var i = 0; i < nodes.length; i++) {
            var node = nodes[i].split("=");
            if (node.length > 1) {
                vars.push(node[0]);
                vars[node[0]] = node[1];
            }
        }

        return vars;
    },

    /**
     * searches given fragment in the given string
     */
    contains: function(string, fragment) {
        return !string ? false : string.indexOf(fragment) > -1;
    },

    /**
     * What does this do?
     */
    htmlEntities: function(text) {
        return String(text)
            .replace(/&/g, "&amp;")
            .replace(/</g, "&lt;")
            .replace(/>/g, "&gt;")
            .replace(/"/g, "&quot;"); // .replace(/'/g, '&#39;')
    },

    unHtmlEntities: function(text) {
        return String(text)
            .replace(/&amp;/g, "&")
            .replace(/&lt;/g, "<")
            .replace(/&gt;/g, ">")
            .replace(/&#39;/g, "'")
            .replace(/&quot;/g, '"');
    },

    isNumber: function(number) {
        return !isNaN(parseFloat(number)) && isFinite(number);
    },

    /**
     * Disable page scroll
     */
    pageScrollDisable: function(bp) {
        var $pageScrollElements = $("html, body");

        if (bp === "small") {
            // only use on max = small
            $pageScrollElements.addClass("has-no-scroll has-no-scroll--small");
        }
        if (bp === "medium") {
            // only use on max == medium
            $pageScrollElements.addClass("has-no-scroll has-no-scroll--medium");
        }
        if (bp === "large") {
            // only use on max == large
            $pageScrollElements.addClass("has-no-scroll has-no-scroll--large");
        } else {
            // no max breakpoint
            $pageScrollElements.addClass("has-no-scroll");
        }
    },

    /**
     * Enable scroll on page
     *
     * Remove any has-no-scroll class
     */
    pageScrollEnable: function() {
        var $pageScrollElements = $("html, body");

        $pageScrollElements.removeClass(
            "has-no-scroll has-no-scroll--small has-no-scroll--medium has-no-scroll--large"
        );
    },

    /**
     * What do I do?
     */
    resetDropdownToBase: function(dropdownElement) {
        if (dropdownElement.length > 0) {
            var $dropdownElement = dropdownElement,
                $optionSelected = $dropdownElement.find("option:selected"),
                $optionFirst = $dropdownElement.find("option:first");

            if ($optionSelected.get(0) !== $optionFirst.get(0)) {
                $optionSelected.removeAttr("selected");
                $optionFirst.attr("selected", true);
                var $displaySelected = $dropdownElement.siblings("p");
                if ($displaySelected.length > 0) {
                    $displaySelected.empty();
                    $displaySelected.text($optionFirst.text());
                }
            }
        }
    },

    /**
     * Scrollto definable element
     *
     * Scroll user window to defined element
     *
     * #TODO Documentation of these functions
     */
    scrollTo: function(id, offset, options) {
        if (offset === null || offset === undefined) {
            //This breaks the print-pdf-instruction page, the onPageNav function does not pass a offset. So it is undifined and not null.
            offset = 0;
        }

        var settings = $.extend({
                // These are the default settings
                duration: 500,
                easing: "easeOutCirc"
            },
            options
        );

        $("html, body").animate({
            scrollTop: $(id).offset().top - offset
        }, {
            duration: settings.duration,
            easing: settings.easing
        });
    },

    serverEncode: function(text) {
        return encodeURIComponent(
            String(text)
            .replace(/</g, "< ")
            .replace(/'/g, "&quot;")
        );
    },

    /**
     * Show/hide spinner
     *
     * Show a spinner element next to defined element
     *
     * #TODO combine spinnerShow and spinnerHide into toggleSpinner($element);
     */
    spinnerShow: function($element) {
        var $spinner = $element.next(".js-spinner");

        $spinner.removeClass("u-display-none");
    },

    /**
     * Hide spinner next to defined element
     */
    spinnerHide: function($element) {
        var $spinner = $element.next(".js-spinner");
        $spinner.addClass("u-display-none");
    },

    submitEnable: function($form) {
        $form.find(".js-submit").removeAttr("disabled");
    },

    /**
     * getFullUrlFromRelativeUrl
     * Use the website's baseUrl to get an absolute url.
     *
     * @param relativeUrl
     * @param includeDoubleSlashes - whether or not to prefix the url with // (The protocol itself is not returned to make it independent)
     * @returns {string}
     */
    getFullUrlFromRelativeUrl: function(relativeUrl, includeDoubleSlashes) {
        var localDomain = configuration.url.localdomain;

        var localDomainWithoutProtocol = localDomain.replace(
            /^https?\:\/\//i,
            ""
        );

        // any redundant slashes are taken care of by urlConcat()
        var fullNotificationApiPath = this.urlConcat(
            localDomainWithoutProtocol,
            relativeUrl
        );
        if (includeDoubleSlashes) {
            fullNotificationApiPath = "//" + fullNotificationApiPath;
        }

        return fullNotificationApiPath;
    },

    // urlConcat: make sure that there are no double slashes
    urlConcat: function(urlPart1, urlPart2) {
        // on empty string, return immediately
        if (urlPart1.length == 0 || urlPart2.length == 0) {
            return urlPart1 + urlPart2;
        }

        if (
            urlPart1.substr(urlPart1.length - 1) === "/" &&
            urlPart2.charAt(0) === "/"
        ) {
            return urlPart1 + urlPart2.substr(1);
        }
        return urlPart1 + urlPart2;
    },

    /**
     * Create a random GUID string
     *
     * @returns {string}
     */
    guid: function() {
        function s4() {
            return Math.floor((1 + Math.random()) * 0x10000)
                .toString(16)
                .substring(1);
        }
        return (
            s4() +
            s4() +
            "-" +
            s4() +
            "-" +
            s4() +
            "-" +
            s4() +
            "-" +
            s4() +
            s4() +
            s4()
        );
    }
};

window.general = general;
#17 JavaScript::Eval (size: 3625) - SHA256: db0a9594a2e349417eb01f1a55b1e6b6ff12bbf3508d0a2fadd23bccfa399d00
/**
 * If verification went wrong, a notification with a className .js-verify-email
 * is added to
 */
var resendVerificationEmail = moduleLoader(
    (function() {
        var $headerNotification = $(".js-notify-header");
        var notificationVerifyLinkSelector = ".js-resend-verification-email";

        function init() {
            bind();
        }

        /**
         * Verify email address
         *
         * [1] Show spinner
         * [2] Request verification
         */
        function bind() {
            $(document).on("click", notificationVerifyLinkSelector, function(
                e
            ) {
                e.preventDefault();

                var $this = $(this),
                    $notification = $this.parents(".notification");

                general.spinnerShow($this); // [1]
                resendVerificationMail($notification); // [2]
            });
        }

        /**
         * Request verification
         *
         * [0] For single parameter endpoints, ASP.Net WebApi requires a plain string instead of an object
         * [1] Get URL from config.js
         * [2] Enable cross domain for local development
         * [3] Init ajax call
         * [4] Send notification on success
         * [5] Send notification(s) on error
         * [6] Something when done?
         */
        function resendVerificationMail($originalNotification) {
            // Find the verication link inside this notification
            var $verifyLink = $originalNotification.find(
                notificationVerifyLinkSelector
            );

            var postData = JSON.stringify(
                    $verifyLink.data("verification-token")
                ), // [0]
                url = general.getFullUrlFromRelativeUrl(
                    configuration.account.apiUrlResend,
                    true
                ), // [1]
                crossDomain = false; // Needed to identify modular level for notifications

            if (development) {
                // dev only settings
                crossDomain = true; // [2]
            }

            var ajaxOptions = {
                async: true,
                type: "POST",
                url: url,
                data: postData,
                crossDomain: crossDomain,
                timeout: 5000
            };

            httpService
                .ajax(url, ajaxOptions)
                .done(function(data) {
                    showVerificationMailIsSent(); // handle notifications
                    notify.collapse($originalNotification);
                    general.spinnerHide($verifyLink); // Hide the spinner
                })
                .fail(function(data) {
                    // [5]
                    notify.handleResponseJson(data, $headerNotification); // handle notifications
                    notify.collapse($originalNotification);
                    general.spinnerHide($verifyLink); // Hide the spinner
                })
                .always(function(data) {});
        }

        function showVerificationMailIsSent() {
            // "";
            var mailIsSentMessage =
                "De verificatie is succesvol verzonden. Controleer je e-mail.";
            var notification = {
                message: mailIsSentMessage,
                position: {
                    header: "default"
                },
                type: "success"
            };
            notify.render($headerNotification, notification);
        }

        return {
            init: init,
            resendVerificationMail: resendVerificationMail
        };
    })()
);
#18 JavaScript::Eval (size: 850) - SHA256: 10ac83ef0dd953e00b1023638a46b628e7745b67f2829cb7029b59783cf10e7b
(function() {
    var a = window.location.pathname,
        b = /^\/english\/(filing|how-to-register-deregister-and-report-changes|making-an-appointment-with-the-chamber-of-commerce|ordering-products-from-the-commercial-register|registration|report-a-change|starting-a-business-in-the-netherlands|liability-business-partner)\/.*|(^\/inschrijven-en-wijzigen\/ubo-opgave\/$|^\/advies-en-informatie\/internationaal-ondernemen\/exportdocumenten\/$)/i,
        c = /(.*cci-number\/$|.*your-request-to-apply-is-received\/$|.*changes-in-law-and-regulations\/$|.*search-in-lei-registrations\/$|.*brexit.*|.*choosing-the-right-location-for-your-business\/$|.*kvk-corporate-deposits-overview\/$|.*registering-a-sole-proprietorship\/$|.*determine-your-hourly-rate\/$|.*european-business-registers\/$|.*starting-your-own-business\/$)/i;
    b = b.test(a);
    a = c.test(a);
    return !0 === b && !1 === a ? !0 : !1
})();
#19 JavaScript::Eval (size: 174) - SHA256: 4d045f7756c7499c754706907b34017f9dd4106dac92d9374df7cc23dd13ea02
// #TODO DOCUMENTATION!
function moduleLoader(module) {


    $(function() {
        if (module.init) {
            module.init();
        }
    });
    return module;
}
#20 JavaScript::Eval (size: 135) - SHA256: cbcb21cf9c6592aee2855d5d7582a81a3a203d07531e860cdb3dbc0461f383e3
(function() {
    return -1 != navigator.userAgent.toUpperCase().indexOf("TRIDENT/") || -1 != navigator.userAgent.toUpperCase().indexOf("MSIE")
})();
#21 JavaScript::Eval (size: 118) - SHA256: ae067511586710eded61d7bc3f96d29a6065f66bdd123d723579dfe8e556ebca
(function() {
    function c(a) {
        10 > a && (a = "0" + a);
        return a
    }
    var b = new Date;
    return b = +c(b.getHours()) + ":" + c(b.getMinutes())
})();
#22 JavaScript::Eval (size: 215) - SHA256: e7a88301a04f7d534ad3f6ce1ecc810349918126b7ce14c67dfbac2f1320b565
(function() {
    var tstmmng = "1";
    if ("0" == "0" || "undefined" == "0") tstmmng = "0";
    if ("0" == "1" || "undefined" == "1") tstmmng = "1";
    if ("0" == "2" || "undefined" == "2") tstmmng = "2";
    if ("0" == "3" || "undefined" == "3") tstmmng = "3";
    return tstmmng
})();
#23 JavaScript::Eval (size: 94) - SHA256: cc8e8bffefacdf49cd9a5040b6a1518801d61bb89c0395267a6148c045d33779
(function() {
    var usertype = "extern";
    if ("intern" == "intern") usertype = "intern";
    return usertype
})();
#24 JavaScript::Eval (size: 99) - SHA256: 98d34af442948dea1f113f1c8dd410972febdcee863a601e30f7a9fe6d5edf9e
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(34);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#25 JavaScript::Eval (size: 99) - SHA256: f27d325edc182b5c7e7ef9b624236f039274e1ae8fc6f4507f53f6b3576badaf
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(35);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#26 JavaScript::Eval (size: 10419) - SHA256: 8d83c63304fd108e1786d579a258e2adfe8bdcd7407ec9400b28de4a44e44b44
/**
 * Notify
 *
 * A module that handles notifications.
 */
var notify = moduleLoader(
    (function() {
        /**
         * Init function
         * Runs on DOM ready
         */
        function init() {
            bindCollapse();
        }

        /**
         * Process responseJson notifications
         *
         * Used to extract notifications out of raw Ajax response data
         *
         * Requirements:
         * - data: returned Ajax data
         * - $element: an element to inject the notifications
         *
         * [1] If data contains responseJSON extract $notifications object
         * [2] If $notifications is available, let notify.handle it
         * [3] If $notifications is unavailable, show error based on Ajax statusText
         * [3.1] Construct (single) notification object
         * [3.2] Render notification using dust.js
         */
        function handleResponseJson(data, $element) {
            var responseJson = data.responseJSON,
                $notifications = undefined,
                statusText = data.statusText;

            if (responseJson) {
                // [1]
                $notifications = responseJson.notifications;
            }

            if ($notifications) {
                // [2]
                notify.handle($notifications, $element);
            } else if (statusText && !$notifications) {
                // [3]
                var notification = {
                    // [3.1]
                    message: "Er ging iets mis (" +
                        statusText +
                        "). Probeer het opnieuw.",
                    type: "error",
                    position: {
                        header: "default",
                    },
                };

                notify.render($element, notification); // [3.2]
            }
        }

        /**
         * Handle notifications
         *
         * Handles object with one or more notifications, consisting of:
         * - message
         * - type
         * - position
         */
        function handle($notifications, $location) {
            /**
             * [1] Handle each given notification
             * [2] Handle based on position
             * [2.1] render before input[name="position.element"]
             *      #NOTE notify element breaks with multiple input fields of same
             *      name-attribute value. Needs a solution.
             * [2.4] render before .js-notify-module class
             * [2.5] render before .js-notify-header class
             */
            $.each($notifications, function(index, notification) {
                // [1]
                var position = notification.position,
                    $module = $(".js-notify-module");

                /**
                 * [2] Handle based on position, but prefer $location if it is set
                 */
                if ($location !== undefined) {
                    render($location, notification);
                } else if (position.element !== undefined) {
                    // [2.1] Element
                    var $element = $('input[name="' + position.element + '"]');

                    if ($element.length > 0) {
                        render($element, notification);
                    } else if ($module.length > 0) {
                        render($module, notification);
                    }
                } else if (position.module !== undefined) {
                    // [2.2] Module
                    render($module, notification);
                } else if (position.header !== undefined) {
                    // [2.3] Global
                    render($(".js-notify-header"), notification);
                }
            });
        }

        /**
         * Render a single notification (using Dust.js)
         *
         * [1] Require an element to position the notification + notification object
         * [2] Remove existing notification on same location
         * [3] Render the notification using the template notification.dust
         * [4] Inject the rendered output after the $element
         */
        function render($element, notification) {
            var $existingNotification = $element.prev(".notification");
            collapse($existingNotification);

            //Show only one notification of eventType of this number
            var nr = 2;
            var isValid = true;
            var $existingEventType = $element.prev(".eventType--" + nr);
            if (notification.eventType == nr) {
                if ($existingEventType.length) {
                    isValid = false;
                }
            }

            if (isValid) {
                var notificationhtml = renderNotification(notification);
                $element.before(notificationhtml);
            }
        }

        function renderNotification(notification) {
            return (
                '<div aria-live="polite" class="o-page-notification-2 o-container is-collapsible eventType--' +
                get(notification, "eventType") +
                '">' +
                '<div class="c-notification c-notification--' +
                get(notification, "type") +
                ' c-notification--header u-padding-vertical-3x">' +
                getIcon(get(notification, "type")) +
                '<p data-ui-test-class="notification-box" class="c-notification__message u-margin-bottom-none">' +
                get(notification, "message") +
                "</p>" +
                getCloseIcon(get(notification, "isNotClosable")) +
                "</div>" +
                "</div>"
            );
        }

        function getIcon(type) {
            var error =
                '<svg data-ui-test-class="icon" class="icons c-notification__icon" width="24px" height="30px" viewBox="0 0 64 64">' +
                "<title>error</title>" +
                '<rect width="64" height="64" style="fill: none"/>' +
                '<path d="M29,48h5V43H29ZM31.42,4,3.83,58H59Zm0,11L50.83,53H12ZM29,26v6l.92,8h3L34,32V26Z"/>' +
                "</svg>";

            var succes =
                '<svg data-ui-test-class="icon" class="icons c-notification__icon" width="24px" height="30px" viewBox="0 0 64 64">' +
                "<title>check-bold</title>" +
                '<rect width="64" height="64" style="fill: none"/>' +
                '<path d="M28.4,41.1,48,9.7l5.9,3.7L29.1,53.3h0l-19-24.2,5.5-4.3Z"/>' +
                "</svg>";

            var warning =
                '<svg data-ui-test-class="icon" class="icons c-notification__icon" width="24px" height="30px" viewBox="0 0 64 64">' +
                "<title>alert</title>" +
                '<rect width="64" height="64" style="fill: none"/>' +
                '<path d="M29,48h5V43H29ZM31.42,4,3.83,58H59Zm0,11L50.83,53H12ZM29,26v6l.92,8h3L34,32V26Z"/>' +
                "</svg>";

            switch (type) {
                case "error":
                    return error;
                case "success":
                    return succes;
                case "warning":
                    return warning;
                default:
                    return succes;
            }
        }

        function getCloseIcon(doNotShow) {
            if (doNotShow) {
                return "";
            }

            return (
                '<button class="c-notification__close js-notification-close">' +
                '<svg data-ui-test-class="icon" class="icons u-stroke-grey-40" width="24px" height="24px" viewBox="0 0 64 64">' +
                "<title>cross</title>" +
                '<rect width="64" height="64" style="fill: none"/>' +
                '<polygon points="49.6 19.9 44.7 15 32.3 27.4 19.9 15 15 19.9 27.4 32.3 15 44.7 19.9 49.6 32.3 37.2 44.7 49.6 49.6 44.7 37.2 32.3 49.6 19.9"/>' +
                "</svg>" +
                "</button>"
            );
        }

        function get(obj, key) {
            if (Object.prototype.hasOwnProperty.call(obj, key)) {
                return obj[key];
            }

            return "";
        }

        /**
         * Render a single notification with default tech message(using Dust.js)
         *
         * [1] Require an element to position the notification + notification object
         */
        function renderTechErrorTo($element) {
            var notification = {
                type: "error",
                message: "Er ging iets mis. Probeer het opnieuw.",
                position: {
                    module: "default",
                },
            };

            if ($element) {
                notify.render($element, notification);
            }
        }

        /**
         * Close notification
         *
         * Click to remove notification.
         *
         * [1] Fade out notification
         * [2] Check for collapsible element
         * [3] If so:
         * [3.1] collapse
         * [3.2] and remove everything (notification related)
         * [4] Or else remove notification only
         */
        function collapse($notification) {
            var $collapsibleContainer = $notification.parents(
                ".is-collapsible"
            );

            $notification.addClass("c-notification--is-faded"); // [1]

            if (
                $collapsibleContainer != undefined &&
                $collapsibleContainer.length > 0
            ) {
                // [2]
                $collapsibleContainer.remove();
            } else {
                $notification.remove(); // [4]
            }
        }

        /**
         * Bind notifyClose to click on DOM ready
         */
        function bindCollapse() {
            $(document).on(
                "click touchend",
                ".js-notification-close",
                function(e) {
                    e.preventDefault();

                    var $notification = $(this).parents(".c-notification");

                    collapse($notification); // call close function on clicked element
                }
            );
        }

        /**
         * Return functions to use globally
         */
        return {
            init: init,
            collapse: collapse,
            handle: handle,
            handleResponseJson: handleResponseJson,
            render: render,
            renderTechErrorTo: renderTechErrorTo,
        };
    })()
);

window.notify = notify;
#27 JavaScript::Eval (size: 202) - SHA256: b6606f92efccd3a87052075f70e3d2b6fcd81a87b6a6829b43be0e15c8fae501
(function() {
    var a = $("div.content-body").text();
    a = a.replace(/(^\s*)|(\s*$)/gi, "");
    a = a.replace(/([A-Z])/g, " $1").trim();
    a = a.replace(/[ ]{2,}/gi, " ");
    a = a.replace(/\n /, "\n");
    return a.split(" ").length
})();
#28 JavaScript::Eval (size: 111) - SHA256: 56f3dc9fe9874c6ccd25147b827551640ac299b7b6e0cf47f1c85efb6814e4d8
(function() {
    var a = sessionStorage.getItem("wizard-company");
    a = JSON.parse(a);
    return a.rechtsvormbeschrijving
})();
#29 JavaScript::Eval (size: 98) - SHA256: a4cb5228cfea9b62ad08de7076d27584447d72d15d63bc478ddf37b9ce73287c
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(9);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#30 JavaScript::Eval (size: 89476) - SHA256: f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d
/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ ! function(e, t) {
    "use strict";
    "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
        if (!e.document) throw new Error("jQuery requires a window with a document");
        return t(e)
    } : t(e)
}("undefined" != typeof window ? window : this, function(C, e) {
    "use strict";
    var t = [],
        r = Object.getPrototypeOf,
        s = t.slice,
        g = t.flat ? function(e) {
            return t.flat.call(e)
        } : function(e) {
            return t.concat.apply([], e)
        },
        u = t.push,
        i = t.indexOf,
        n = {},
        o = n.toString,
        v = n.hasOwnProperty,
        a = v.toString,
        l = a.call(Object),
        y = {},
        m = function(e) {
            return "function" == typeof e && "number" != typeof e.nodeType
        },
        x = function(e) {
            return null != e && e === e.window
        },
        E = C.document,
        c = {
            type: !0,
            src: !0,
            nonce: !0,
            noModule: !0
        };

    function b(e, t, n) {
        var r, i, o = (n = n || E).createElement("script");
        if (o.text = e, t)
            for (r in c)(i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
        n.head.appendChild(o).parentNode.removeChild(o)
    }

    function w(e) {
        return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[o.call(e)] || "object" : typeof e
    }
    var f = "3.5.1",
        S = function(e, t) {
            return new S.fn.init(e, t)
        };

    function p(e) {
        var t = !!e && "length" in e && e.length,
            n = w(e);
        return !m(e) && !x(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
    }
    S.fn = S.prototype = {
        jquery: f,
        constructor: S,
        length: 0,
        toArray: function() {
            return s.call(this)
        },
        get: function(e) {
            return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e]
        },
        pushStack: function(e) {
            var t = S.merge(this.constructor(), e);
            return t.prevObject = this, t
        },
        each: function(e) {
            return S.each(this, e)
        },
        map: function(n) {
            return this.pushStack(S.map(this, function(e, t) {
                return n.call(e, t, e)
            }))
        },
        slice: function() {
            return this.pushStack(s.apply(this, arguments))
        },
        first: function() {
            return this.eq(0)
        },
        last: function() {
            return this.eq(-1)
        },
        even: function() {
            return this.pushStack(S.grep(this, function(e, t) {
                return (t + 1) % 2
            }))
        },
        odd: function() {
            return this.pushStack(S.grep(this, function(e, t) {
                return t % 2
            }))
        },
        eq: function(e) {
            var t = this.length,
                n = +e + (e < 0 ? t : 0);
            return this.pushStack(0 <= n && n < t ? [this[n]] : [])
        },
        end: function() {
            return this.prevObject || this.constructor()
        },
        push: u,
        sort: t.sort,
        splice: t.splice
    }, S.extend = S.fn.extend = function() {
        var e, t, n, r, i, o, a = arguments[0] || {},
            s = 1,
            u = arguments.length,
            l = !1;
        for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || m(a) || (a = {}), s === u && (a = this, s--); s < u; s++)
            if (null != (e = arguments[s]))
                for (t in e) r = e[t], "__proto__" !== t && a !== r && (l && r && (S.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || S.isPlainObject(n) ? n : {}, i = !1, a[t] = S.extend(l, o, r)) : void 0 !== r && (a[t] = r));
        return a
    }, S.extend({
        expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""),
        isReady: !0,
        error: function(e) {
            throw new Error(e)
        },
        noop: function() {},
        isPlainObject: function(e) {
            var t, n;
            return !(!e || "[object Object]" !== o.call(e)) && (!(t = r(e)) || "function" == typeof(n = v.call(t, "constructor") && t.constructor) && a.call(n) === l)
        },
        isEmptyObject: function(e) {
            var t;
            for (t in e) return !1;
            return !0
        },
        globalEval: function(e, t, n) {
            b(e, {
                nonce: t && t.nonce
            }, n)
        },
        each: function(e, t) {
            var n, r = 0;
            if (p(e)) {
                for (n = e.length; r < n; r++)
                    if (!1 === t.call(e[r], r, e[r])) break
            } else
                for (r in e)
                    if (!1 === t.call(e[r], r, e[r])) break; return e
        },
        makeArray: function(e, t) {
            var n = t || [];
            return null != e && (p(Object(e)) ? S.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)), n
        },
        inArray: function(e, t, n) {
            return null == t ? -1 : i.call(t, e, n)
        },
        merge: function(e, t) {
            for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
            return e.length = i, e
        },
        grep: function(e, t, n) {
            for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]);
            return r
        },
        map: function(e, t, n) {
            var r, i, o = 0,
                a = [];
            if (p(e))
                for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i);
            else
                for (o in e) null != (i = t(e[o], o, n)) && a.push(i);
            return g(a)
        },
        guid: 1,
        support: y
    }), "function" == typeof Symbol && (S.fn[Symbol.iterator] = t[Symbol.iterator]), S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
        n["[object " + t + "]"] = t.toLowerCase()
    });
    var d = function(n) {
        var e, d, b, o, i, h, f, g, w, u, l, T, C, a, E, v, s, c, y, S = "sizzle" + 1 * new Date,
            p = n.document,
            k = 0,
            r = 0,
            m = ue(),
            x = ue(),
            A = ue(),
            N = ue(),
            D = function(e, t) {
                return e === t && (l = !0), 0
            },
            j = {}.hasOwnProperty,
            t = [],
            q = t.pop,
            L = t.push,
            H = t.push,
            O = t.slice,
            P = function(e, t) {
                for (var n = 0, r = e.length; n < r; n++)
                    if (e[n] === t) return n;
                return -1
            },
            R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
            M = "[\\x20\\t\\r\\n\\f]",
            I = "(?:\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
            W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]",
            F = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)",
            B = new RegExp(M + "+", "g"),
            $ = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"),
            _ = new RegExp("^" + M + "*," + M + "*"),
            z = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"),
            U = new RegExp(M + "|>"),
            X = new RegExp(F),
            V = new RegExp("^" + I + "$"),
            G = {
                ID: new RegExp("^#(" + I + ")"),
                CLASS: new RegExp("^\\.(" + I + ")"),
                TAG: new RegExp("^(" + I + "|[*])"),
                ATTR: new RegExp("^" + W),
                PSEUDO: new RegExp("^" + F),
                CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"),
                bool: new RegExp("^(?:" + R + ")$", "i"),
                needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i")
            },
            Y = /HTML$/i,
            Q = /^(?:input|select|textarea|button)$/i,
            J = /^h\d$/i,
            K = /^[^{]+\{\s*\[native \w/,
            Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
            ee = /[+~]/,
            te = new RegExp("\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\([^\\r\\n\\f])", "g"),
            ne = function(e, t) {
                var n = "0x" + e.slice(1) - 65536;
                return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
            },
            re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
            ie = function(e, t) {
                return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
            },
            oe = function() {
                T()
            },
            ae = be(function(e) {
                return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase()
            }, {
                dir: "parentNode",
                next: "legend"
            });
        try {
            H.apply(t = O.call(p.childNodes), p.childNodes), t[p.childNodes.length].nodeType
        } catch (e) {
            H = {
                apply: t.length ? function(e, t) {
                    L.apply(e, O.call(t))
                } : function(e, t) {
                    var n = e.length,
                        r = 0;
                    while (e[n++] = t[r++]);
                    e.length = n - 1
                }
            }
        }

        function se(t, e, n, r) {
            var i, o, a, s, u, l, c, f = e && e.ownerDocument,
                p = e ? e.nodeType : 9;
            if (n = n || [], "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p) return n;
            if (!r && (T(e), e = e || C, E)) {
                if (11 !== p && (u = Z.exec(t)))
                    if (i = u[1]) {
                        if (9 === p) {
                            if (!(a = e.getElementById(i))) return n;
                            if (a.id === i) return n.push(a), n
                        } else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n
                    } else {
                        if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n;
                        if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName) return H.apply(n, e.getElementsByClassName(i)), n
                    }
                if (d.qsa && !N[t + " "] && (!v || !v.test(t)) && (1 !== p || "object" !== e.nodeName.toLowerCase())) {
                    if (c = t, f = e, 1 === p && (U.test(t) || z.test(t))) {
                        (f = ee.test(t) && ye(e.parentNode) || e) === e && d.scope || ((s = e.getAttribute("id")) ? s = s.replace(re, ie) : e.setAttribute("id", s = S)), o = (l = h(t)).length;
                        while (o--) l[o] = (s ? "#" + s : ":scope") + " " + xe(l[o]);
                        c = l.join(",")
                    }
                    try {
                        return H.apply(n, f.querySelectorAll(c)), n
                    } catch (e) {
                        N(t, !0)
                    } finally {
                        s === S && e.removeAttribute("id")
                    }
                }
            }
            return g(t.replace($, "$1"), e, n, r)
        }

        function ue() {
            var r = [];
            return function e(t, n) {
                return r.push(t + " ") > b.cacheLength && delete e[r.shift()], e[t + " "] = n
            }
        }

        function le(e) {
            return e[S] = !0, e
        }

        function ce(e) {
            var t = C.createElement("fieldset");
            try {
                return !!e(t)
            } catch (e) {
                return !1
            } finally {
                t.parentNode && t.parentNode.removeChild(t), t = null
            }
        }

        function fe(e, t) {
            var n = e.split("|"),
                r = n.length;
            while (r--) b.attrHandle[n[r]] = t
        }

        function pe(e, t) {
            var n = t && e,
                r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
            if (r) return r;
            if (n)
                while (n = n.nextSibling)
                    if (n === t) return -1;
            return e ? 1 : -1
        }

        function de(t) {
            return function(e) {
                return "input" === e.nodeName.toLowerCase() && e.type === t
            }
        }

        function he(n) {
            return function(e) {
                var t = e.nodeName.toLowerCase();
                return ("input" === t || "button" === t) && e.type === n
            }
        }

        function ge(t) {
            return function(e) {
                return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && ae(e) === t : e.disabled === t : "label" in e && e.disabled === t
            }
        }

        function ve(a) {
            return le(function(o) {
                return o = +o, le(function(e, t) {
                    var n, r = a([], e.length, o),
                        i = r.length;
                    while (i--) e[n = r[i]] && (e[n] = !(t[n] = e[n]))
                })
            })
        }

        function ye(e) {
            return e && "undefined" != typeof e.getElementsByTagName && e
        }
        for (e in d = se.support = {}, i = se.isXML = function(e) {
                var t = e.namespaceURI,
                    n = (e.ownerDocument || e).documentElement;
                return !Y.test(t || n && n.nodeName || "HTML")
            }, T = se.setDocument = function(e) {
                var t, n, r = e ? e.ownerDocument || e : p;
                return r != C && 9 === r.nodeType && r.documentElement && (a = (C = r).documentElement, E = !i(C), p != C && (n = C.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", oe, !1) : n.attachEvent && n.attachEvent("onunload", oe)), d.scope = ce(function(e) {
                    return a.appendChild(e).appendChild(C.createElement("div")), "undefined" != typeof e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length
                }), d.attributes = ce(function(e) {
                    return e.className = "i", !e.getAttribute("className")
                }), d.getElementsByTagName = ce(function(e) {
                    return e.appendChild(C.createComment("")), !e.getElementsByTagName("*").length
                }), d.getElementsByClassName = K.test(C.getElementsByClassName), d.getById = ce(function(e) {
                    return a.appendChild(e).id = S, !C.getElementsByName || !C.getElementsByName(S).length
                }), d.getById ? (b.filter.ID = function(e) {
                    var t = e.replace(te, ne);
                    return function(e) {
                        return e.getAttribute("id") === t
                    }
                }, b.find.ID = function(e, t) {
                    if ("undefined" != typeof t.getElementById && E) {
                        var n = t.getElementById(e);
                        return n ? [n] : []
                    }
                }) : (b.filter.ID = function(e) {
                    var n = e.replace(te, ne);
                    return function(e) {
                        var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
                        return t && t.value === n
                    }
                }, b.find.ID = function(e, t) {
                    if ("undefined" != typeof t.getElementById && E) {
                        var n, r, i, o = t.getElementById(e);
                        if (o) {
                            if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
                            i = t.getElementsByName(e), r = 0;
                            while (o = i[r++])
                                if ((n = o.getAttributeNode("id")) && n.value === e) return [o]
                        }
                        return []
                    }
                }), b.find.TAG = d.getElementsByTagName ? function(e, t) {
                    return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : d.qsa ? t.querySelectorAll(e) : void 0
                } : function(e, t) {
                    var n, r = [],
                        i = 0,
                        o = t.getElementsByTagName(e);
                    if ("*" === e) {
                        while (n = o[i++]) 1 === n.nodeType && r.push(n);
                        return r
                    }
                    return o
                }, b.find.CLASS = d.getElementsByClassName && function(e, t) {
                    if ("undefined" != typeof t.getElementsByClassName && E) return t.getElementsByClassName(e)
                }, s = [], v = [], (d.qsa = K.test(C.querySelectorAll)) && (ce(function(e) {
                    var t;
                    a.appendChild(e).innerHTML = "<a id='" + S + "'></a><select id='" + S + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || v.push("\\[" + M + "*(?:value|" + R + ")"), e.querySelectorAll("[id~=" + S + "-]").length || v.push("~="), (t = C.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || v.push("\\[" + M + "*name" + M + "*=" + M + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || v.push(":checked"), e.querySelectorAll("a#" + S + "+*").length || v.push(".#.+[+~]"), e.querySelectorAll("\\\f"), v.push("[\\r\\n\\f]")
                }), ce(function(e) {
                    e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
                    var t = C.createElement("input");
                    t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && v.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && v.push(":enabled", ":disabled"), a.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && v.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), v.push(",.*:")
                })), (d.matchesSelector = K.test(c = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && ce(function(e) {
                    d.disconnectedMatch = c.call(e, "*"), c.call(e, "[s!='']:x"), s.push("!=", F)
                }), v = v.length && new RegExp(v.join("|")), s = s.length && new RegExp(s.join("|")), t = K.test(a.compareDocumentPosition), y = t || K.test(a.contains) ? function(e, t) {
                    var n = 9 === e.nodeType ? e.documentElement : e,
                        r = t && t.parentNode;
                    return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
                } : function(e, t) {
                    if (t)
                        while (t = t.parentNode)
                            if (t === e) return !0;
                    return !1
                }, D = t ? function(e, t) {
                    if (e === t) return l = !0, 0;
                    var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
                    return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !d.sortDetached && t.compareDocumentPosition(e) === n ? e == C || e.ownerDocument == p && y(p, e) ? -1 : t == C || t.ownerDocument == p && y(p, t) ? 1 : u ? P(u, e) - P(u, t) : 0 : 4 & n ? -1 : 1)
                } : function(e, t) {
                    if (e === t) return l = !0, 0;
                    var n, r = 0,
                        i = e.parentNode,
                        o = t.parentNode,
                        a = [e],
                        s = [t];
                    if (!i || !o) return e == C ? -1 : t == C ? 1 : i ? -1 : o ? 1 : u ? P(u, e) - P(u, t) : 0;
                    if (i === o) return pe(e, t);
                    n = e;
                    while (n = n.parentNode) a.unshift(n);
                    n = t;
                    while (n = n.parentNode) s.unshift(n);
                    while (a[r] === s[r]) r++;
                    return r ? pe(a[r], s[r]) : a[r] == p ? -1 : s[r] == p ? 1 : 0
                }), C
            }, se.matches = function(e, t) {
                return se(e, null, null, t)
            }, se.matchesSelector = function(e, t) {
                if (T(e), d.matchesSelector && E && !N[t + " "] && (!s || !s.test(t)) && (!v || !v.test(t))) try {
                    var n = c.call(e, t);
                    if (n || d.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
                } catch (e) {
                    N(t, !0)
                }
                return 0 < se(t, C, null, [e]).length
            }, se.contains = function(e, t) {
                return (e.ownerDocument || e) != C && T(e), y(e, t)
            }, se.attr = function(e, t) {
                (e.ownerDocument || e) != C && T(e);
                var n = b.attrHandle[t.toLowerCase()],
                    r = n && j.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0;
                return void 0 !== r ? r : d.attributes || !E ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
            }, se.escape = function(e) {
                return (e + "").replace(re, ie)
            }, se.error = function(e) {
                throw new Error("Syntax error, unrecognized expression: " + e)
            }, se.uniqueSort = function(e) {
                var t, n = [],
                    r = 0,
                    i = 0;
                if (l = !d.detectDuplicates, u = !d.sortStable && e.slice(0), e.sort(D), l) {
                    while (t = e[i++]) t === e[i] && (r = n.push(i));
                    while (r--) e.splice(n[r], 1)
                }
                return u = null, e
            }, o = se.getText = function(e) {
                var t, n = "",
                    r = 0,
                    i = e.nodeType;
                if (i) {
                    if (1 === i || 9 === i || 11 === i) {
                        if ("string" == typeof e.textContent) return e.textContent;
                        for (e = e.firstChild; e; e = e.nextSibling) n += o(e)
                    } else if (3 === i || 4 === i) return e.nodeValue
                } else
                    while (t = e[r++]) n += o(t);
                return n
            }, (b = se.selectors = {
                cacheLength: 50,
                createPseudo: le,
                match: G,
                attrHandle: {},
                find: {},
                relative: {
                    ">": {
                        dir: "parentNode",
                        first: !0
                    },
                    " ": {
                        dir: "parentNode"
                    },
                    "+": {
                        dir: "previousSibling",
                        first: !0
                    },
                    "~": {
                        dir: "previousSibling"
                    }
                },
                preFilter: {
                    ATTR: function(e) {
                        return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
                    },
                    CHILD: function(e) {
                        return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && se.error(e[0]), e
                    },
                    PSEUDO: function(e) {
                        var t, n = !e[6] && e[2];
                        return G.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = h(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
                    }
                },
                filter: {
                    TAG: function(e) {
                        var t = e.replace(te, ne).toLowerCase();
                        return "*" === e ? function() {
                            return !0
                        } : function(e) {
                            return e.nodeName && e.nodeName.toLowerCase() === t
                        }
                    },
                    CLASS: function(e) {
                        var t = m[e + " "];
                        return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && m(e, function(e) {
                            return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
                        })
                    },
                    ATTR: function(n, r, i) {
                        return function(e) {
                            var t = se.attr(e, n);
                            return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(B, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-"))
                        }
                    },
                    CHILD: function(h, e, t, g, v) {
                        var y = "nth" !== h.slice(0, 3),
                            m = "last" !== h.slice(-4),
                            x = "of-type" === e;
                        return 1 === g && 0 === v ? function(e) {
                            return !!e.parentNode
                        } : function(e, t, n) {
                            var r, i, o, a, s, u, l = y !== m ? "nextSibling" : "previousSibling",
                                c = e.parentNode,
                                f = x && e.nodeName.toLowerCase(),
                                p = !n && !x,
                                d = !1;
                            if (c) {
                                if (y) {
                                    while (l) {
                                        a = e;
                                        while (a = a[l])
                                            if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) return !1;
                                        u = l = "only" === h && !u && "nextSibling"
                                    }
                                    return !0
                                }
                                if (u = [m ? c.firstChild : c.lastChild], m && p) {
                                    d = (s = (r = (i = (o = (a = c)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]) && r[2], a = s && c.childNodes[s];
                                    while (a = ++s && a && a[l] || (d = s = 0) || u.pop())
                                        if (1 === a.nodeType && ++d && a === e) {
                                            i[h] = [k, s, d];
                                            break
                                        }
                                } else if (p && (d = s = (r = (i = (o = (a = e)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]), !1 === d)
                                    while (a = ++s && a && a[l] || (d = s = 0) || u.pop())
                                        if ((x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) && ++d && (p && ((i = (o = a[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [k, d]), a === e)) break;
                                return (d -= v) === g || d % g == 0 && 0 <= d / g
                            }
                        }
                    },
                    PSEUDO: function(e, o) {
                        var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e);
                        return a[S] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? le(function(e, t) {
                            var n, r = a(e, o),
                                i = r.length;
                            while (i--) e[n = P(e, r[i])] = !(t[n] = r[i])
                        }) : function(e) {
                            return a(e, 0, t)
                        }) : a
                    }
                },
                pseudos: {
                    not: le(function(e) {
                        var r = [],
                            i = [],
                            s = f(e.replace($, "$1"));
                        return s[S] ? le(function(e, t, n, r) {
                            var i, o = s(e, null, r, []),
                                a = e.length;
                            while (a--)(i = o[a]) && (e[a] = !(t[a] = i))
                        }) : function(e, t, n) {
                            return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop()
                        }
                    }),
                    has: le(function(t) {
                        return function(e) {
                            return 0 < se(t, e).length
                        }
                    }),
                    contains: le(function(t) {
                        return t = t.replace(te, ne),
                            function(e) {
                                return -1 < (e.textContent || o(e)).indexOf(t)
                            }
                    }),
                    lang: le(function(n) {
                        return V.test(n || "") || se.error("unsupported lang: " + n), n = n.replace(te, ne).toLowerCase(),
                            function(e) {
                                var t;
                                do {
                                    if (t = E ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
                                } while ((e = e.parentNode) && 1 === e.nodeType);
                                return !1
                            }
                    }),
                    target: function(e) {
                        var t = n.location && n.location.hash;
                        return t && t.slice(1) === e.id
                    },
                    root: function(e) {
                        return e === a
                    },
                    focus: function(e) {
                        return e === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
                    },
                    enabled: ge(!1),
                    disabled: ge(!0),
                    checked: function(e) {
                        var t = e.nodeName.toLowerCase();
                        return "input" === t && !!e.checked || "option" === t && !!e.selected
                    },
                    selected: function(e) {
                        return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
                    },
                    empty: function(e) {
                        for (e = e.firstChild; e; e = e.nextSibling)
                            if (e.nodeType < 6) return !1;
                        return !0
                    },
                    parent: function(e) {
                        return !b.pseudos.empty(e)
                    },
                    header: function(e) {
                        return J.test(e.nodeName)
                    },
                    input: function(e) {
                        return Q.test(e.nodeName)
                    },
                    button: function(e) {
                        var t = e.nodeName.toLowerCase();
                        return "input" === t && "button" === e.type || "button" === t
                    },
                    text: function(e) {
                        var t;
                        return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
                    },
                    first: ve(function() {
                        return [0]
                    }),
                    last: ve(function(e, t) {
                        return [t - 1]
                    }),
                    eq: ve(function(e, t, n) {
                        return [n < 0 ? n + t : n]
                    }),
                    even: ve(function(e, t) {
                        for (var n = 0; n < t; n += 2) e.push(n);
                        return e
                    }),
                    odd: ve(function(e, t) {
                        for (var n = 1; n < t; n += 2) e.push(n);
                        return e
                    }),
                    lt: ve(function(e, t, n) {
                        for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;) e.push(r);
                        return e
                    }),
                    gt: ve(function(e, t, n) {
                        for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
                        return e
                    })
                }
            }).pseudos.nth = b.pseudos.eq, {
                radio: !0,
                checkbox: !0,
                file: !0,
                password: !0,
                image: !0
            }) b.pseudos[e] = de(e);
        for (e in {
                submit: !0,
                reset: !0
            }) b.pseudos[e] = he(e);

        function me() {}

        function xe(e) {
            for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
            return r
        }

        function be(s, e, t) {
            var u = e.dir,
                l = e.next,
                c = l || u,
                f = t && "parentNode" === c,
                p = r++;
            return e.first ? function(e, t, n) {
                while (e = e[u])
                    if (1 === e.nodeType || f) return s(e, t, n);
                return !1
            } : function(e, t, n) {
                var r, i, o, a = [k, p];
                if (n) {
                    while (e = e[u])
                        if ((1 === e.nodeType || f) && s(e, t, n)) return !0
                } else
                    while (e = e[u])
                        if (1 === e.nodeType || f)
                            if (i = (o = e[S] || (e[S] = {}))[e.uniqueID] || (o[e.uniqueID] = {}), l && l === e.nodeName.toLowerCase()) e = e[u] || e;
                            else {
                                if ((r = i[c]) && r[0] === k && r[1] === p) return a[2] = r[2];
                                if ((i[c] = a)[2] = s(e, t, n)) return !0
                            } return !1
            }
        }

        function we(i) {
            return 1 < i.length ? function(e, t, n) {
                var r = i.length;
                while (r--)
                    if (!i[r](e, t, n)) return !1;
                return !0
            } : i[0]
        }

        function Te(e, t, n, r, i) {
            for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s)));
            return a
        }

        function Ce(d, h, g, v, y, e) {
            return v && !v[S] && (v = Ce(v)), y && !y[S] && (y = Ce(y, e)), le(function(e, t, n, r) {
                var i, o, a, s = [],
                    u = [],
                    l = t.length,
                    c = e || function(e, t, n) {
                        for (var r = 0, i = t.length; r < i; r++) se(e, t[r], n);
                        return n
                    }(h || "*", n.nodeType ? [n] : n, []),
                    f = !d || !e && h ? c : Te(c, s, d, n, r),
                    p = g ? y || (e ? d : l || v) ? [] : t : f;
                if (g && g(f, p, n, r), v) {
                    i = Te(p, u), v(i, [], n, r), o = i.length;
                    while (o--)(a = i[o]) && (p[u[o]] = !(f[u[o]] = a))
                }
                if (e) {
                    if (y || d) {
                        if (y) {
                            i = [], o = p.length;
                            while (o--)(a = p[o]) && i.push(f[o] = a);
                            y(null, p = [], i, r)
                        }
                        o = p.length;
                        while (o--)(a = p[o]) && -1 < (i = y ? P(e, a) : s[o]) && (e[i] = !(t[i] = a))
                    }
                } else p = Te(p === t ? p.splice(l, p.length) : p), y ? y(null, t, p, r) : H.apply(t, p)
            })
        }

        function Ee(e) {
            for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = be(function(e) {
                    return e === i
                }, a, !0), l = be(function(e) {
                    return -1 < P(i, e)
                }, a, !0), c = [function(e, t, n) {
                    var r = !o && (n || t !== w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n));
                    return i = null, r
                }]; s < r; s++)
                if (t = b.relative[e[s].type]) c = [be(we(c), t)];
                else {
                    if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) {
                        for (n = ++s; n < r; n++)
                            if (b.relative[e[n].type]) break;
                        return Ce(1 < s && we(c), 1 < s && xe(e.slice(0, s - 1).concat({
                            value: " " === e[s - 2].type ? "*" : ""
                        })).replace($, "$1"), t, s < n && Ee(e.slice(s, n)), n < r && Ee(e = e.slice(n)), n < r && xe(e))
                    }
                    c.push(t)
                }
            return we(c)
        }
        return me.prototype = b.filters = b.pseudos, b.setFilters = new me, h = se.tokenize = function(e, t) {
            var n, r, i, o, a, s, u, l = x[e + " "];
            if (l) return t ? 0 : l.slice(0);
            a = e, s = [], u = b.preFilter;
            while (a) {
                for (o in n && !(r = _.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = z.exec(a)) && (n = r.shift(), i.push({
                        value: n,
                        type: r[0].replace($, " ")
                    }), a = a.slice(n.length)), b.filter) !(r = G[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), i.push({
                    value: n,
                    type: o,
                    matches: r
                }), a = a.slice(n.length));
                if (!n) break
            }
            return t ? a.length : a ? se.error(e) : x(e, s).slice(0)
        }, f = se.compile = function(e, t) {
            var n, v, y, m, x, r, i = [],
                o = [],
                a = A[e + " "];
            if (!a) {
                t || (t = h(e)), n = t.length;
                while (n--)(a = Ee(t[n]))[S] ? i.push(a) : o.push(a);
                (a = A(e, (v = o, m = 0 < (y = i).length, x = 0 < v.length, r = function(e, t, n, r, i) {
                    var o, a, s, u = 0,
                        l = "0",
                        c = e && [],
                        f = [],
                        p = w,
                        d = e || x && b.find.TAG("*", i),
                        h = k += null == p ? 1 : Math.random() || .1,
                        g = d.length;
                    for (i && (w = t == C || t || i); l !== g && null != (o = d[l]); l++) {
                        if (x && o) {
                            a = 0, t || o.ownerDocument == C || (T(o), n = !E);
                            while (s = v[a++])
                                if (s(o, t || C, n)) {
                                    r.push(o);
                                    break
                                }
                            i && (k = h)
                        }
                        m && ((o = !s && o) && u--, e && c.push(o))
                    }
                    if (u += l, m && l !== u) {
                        a = 0;
                        while (s = y[a++]) s(c, f, t, n);
                        if (e) {
                            if (0 < u)
                                while (l--) c[l] || f[l] || (f[l] = q.call(r));
                            f = Te(f)
                        }
                        H.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && se.uniqueSort(r)
                    }
                    return i && (k = h, w = p), c
                }, m ? le(r) : r))).selector = e
            }
            return a
        }, g = se.select = function(e, t, n, r) {
            var i, o, a, s, u, l = "function" == typeof e && e,
                c = !r && h(e = l.selector || e);
            if (n = n || [], 1 === c.length) {
                if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && E && b.relative[o[1].type]) {
                    if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0])) return n;
                    l && (t = t.parentNode), e = e.slice(o.shift().value.length)
                }
                i = G.needsContext.test(e) ? 0 : o.length;
                while (i--) {
                    if (a = o[i], b.relative[s = a.type]) break;
                    if ((u = b.find[s]) && (r = u(a.matches[0].replace(te, ne), ee.test(o[0].type) && ye(t.parentNode) || t))) {
                        if (o.splice(i, 1), !(e = r.length && xe(o))) return H.apply(n, r), n;
                        break
                    }
                }
            }
            return (l || f(e, c))(r, t, !E, n, !t || ee.test(e) && ye(t.parentNode) || t), n
        }, d.sortStable = S.split("").sort(D).join("") === S, d.detectDuplicates = !!l, T(), d.sortDetached = ce(function(e) {
            return 1 & e.compareDocumentPosition(C.createElement("fieldset"))
        }), ce(function(e) {
            return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
        }) || fe("type|href|height|width", function(e, t, n) {
            if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
        }), d.attributes && ce(function(e) {
            return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
        }) || fe("value", function(e, t, n) {
            if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue
        }), ce(function(e) {
            return null == e.getAttribute("disabled")
        }) || fe(R, function(e, t, n) {
            var r;
            if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
        }), se
    }(C);
    S.find = d, S.expr = d.selectors, S.expr[":"] = S.expr.pseudos, S.uniqueSort = S.unique = d.uniqueSort, S.text = d.getText, S.isXMLDoc = d.isXML, S.contains = d.contains, S.escapeSelector = d.escape;
    var h = function(e, t, n) {
            var r = [],
                i = void 0 !== n;
            while ((e = e[t]) && 9 !== e.nodeType)
                if (1 === e.nodeType) {
                    if (i && S(e).is(n)) break;
                    r.push(e)
                }
            return r
        },
        T = function(e, t) {
            for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
            return n
        },
        k = S.expr.match.needsContext;

    function A(e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
    }
    var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;

    function D(e, n, r) {
        return m(n) ? S.grep(e, function(e, t) {
            return !!n.call(e, t, e) !== r
        }) : n.nodeType ? S.grep(e, function(e) {
            return e === n !== r
        }) : "string" != typeof n ? S.grep(e, function(e) {
            return -1 < i.call(n, e) !== r
        }) : S.filter(n, e, r)
    }
    S.filter = function(e, t, n) {
        var r = t[0];
        return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? S.find.matchesSelector(r, e) ? [r] : [] : S.find.matches(e, S.grep(t, function(e) {
            return 1 === e.nodeType
        }))
    }, S.fn.extend({
        find: function(e) {
            var t, n, r = this.length,
                i = this;
            if ("string" != typeof e) return this.pushStack(S(e).filter(function() {
                for (t = 0; t < r; t++)
                    if (S.contains(i[t], this)) return !0
            }));
            for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n);
            return 1 < r ? S.uniqueSort(n) : n
        },
        filter: function(e) {
            return this.pushStack(D(this, e || [], !1))
        },
        not: function(e) {
            return this.pushStack(D(this, e || [], !0))
        },
        is: function(e) {
            return !!D(this, "string" == typeof e && k.test(e) ? S(e) : e || [], !1).length
        }
    });
    var j, q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
    (S.fn.init = function(e, t, n) {
        var r, i;
        if (!e) return this;
        if (n = n || j, "string" == typeof e) {
            if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : q.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
            if (r[1]) {
                if (t = t instanceof S ? t[0] : t, S.merge(this, S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0)), N.test(r[1]) && S.isPlainObject(t))
                    for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
                return this
            }
            return (i = E.getElementById(r[2])) && (this[0] = i, this.length = 1), this
        }
        return e.nodeType ? (this[0] = e, this.length = 1, this) : m(e) ? void 0 !== n.ready ? n.ready(e) : e(S) : S.makeArray(e, this)
    }).prototype = S.fn, j = S(E);
    var L = /^(?:parents|prev(?:Until|All))/,
        H = {
            children: !0,
            contents: !0,
            next: !0,
            prev: !0
        };

    function O(e, t) {
        while ((e = e[t]) && 1 !== e.nodeType);
        return e
    }
    S.fn.extend({
        has: function(e) {
            var t = S(e, this),
                n = t.length;
            return this.filter(function() {
                for (var e = 0; e < n; e++)
                    if (S.contains(this, t[e])) return !0
            })
        },
        closest: function(e, t) {
            var n, r = 0,
                i = this.length,
                o = [],
                a = "string" != typeof e && S(e);
            if (!k.test(e))
                for (; r < i; r++)
                    for (n = this[r]; n && n !== t; n = n.parentNode)
                        if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && S.find.matchesSelector(n, e))) {
                            o.push(n);
                            break
                        }
            return this.pushStack(1 < o.length ? S.uniqueSort(o) : o)
        },
        index: function(e) {
            return e ? "string" == typeof e ? i.call(S(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
        },
        add: function(e, t) {
            return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t))))
        },
        addBack: function(e) {
            return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
        }
    }), S.each({
        parent: function(e) {
            var t = e.parentNode;
            return t && 11 !== t.nodeType ? t : null
        },
        parents: function(e) {
            return h(e, "parentNode")
        },
        parentsUntil: function(e, t, n) {
            return h(e, "parentNode", n)
        },
        next: function(e) {
            return O(e, "nextSibling")
        },
        prev: function(e) {
            return O(e, "previousSibling")
        },
        nextAll: function(e) {
            return h(e, "nextSibling")
        },
        prevAll: function(e) {
            return h(e, "previousSibling")
        },
        nextUntil: function(e, t, n) {
            return h(e, "nextSibling", n)
        },
        prevUntil: function(e, t, n) {
            return h(e, "previousSibling", n)
        },
        siblings: function(e) {
            return T((e.parentNode || {}).firstChild, e)
        },
        children: function(e) {
            return T(e.firstChild)
        },
        contents: function(e) {
            return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (A(e, "template") && (e = e.content || e), S.merge([], e.childNodes))
        }
    }, function(r, i) {
        S.fn[r] = function(e, t) {
            var n = S.map(this, i, e);
            return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = S.filter(t, n)), 1 < this.length && (H[r] || S.uniqueSort(n), L.test(r) && n.reverse()), this.pushStack(n)
        }
    });
    var P = /[^\x20\t\r\n\f]+/g;

    function R(e) {
        return e
    }

    function M(e) {
        throw e
    }

    function I(e, t, n, r) {
        var i;
        try {
            e && m(i = e.promise) ? i.call(e).done(t).fail(n) : e && m(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
        } catch (e) {
            n.apply(void 0, [e])
        }
    }
    S.Callbacks = function(r) {
        var e, n;
        r = "string" == typeof r ? (e = r, n = {}, S.each(e.match(P) || [], function(e, t) {
            n[t] = !0
        }), n) : S.extend({}, r);
        var i, t, o, a, s = [],
            u = [],
            l = -1,
            c = function() {
                for (a = a || r.once, o = i = !0; u.length; l = -1) {
                    t = u.shift();
                    while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, t = !1)
                }
                r.memory || (t = !1), i = !1, a && (s = t ? [] : "")
            },
            f = {
                add: function() {
                    return s && (t && !i && (l = s.length - 1, u.push(t)), function n(e) {
                        S.each(e, function(e, t) {
                            m(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== w(t) && n(t)
                        })
                    }(arguments), t && !i && c()), this
                },
                remove: function() {
                    return S.each(arguments, function(e, t) {
                        var n;
                        while (-1 < (n = S.inArray(t, s, n))) s.splice(n, 1), n <= l && l--
                    }), this
                },
                has: function(e) {
                    return e ? -1 < S.inArray(e, s) : 0 < s.length
                },
                empty: function() {
                    return s && (s = []), this
                },
                disable: function() {
                    return a = u = [], s = t = "", this
                },
                disabled: function() {
                    return !s
                },
                lock: function() {
                    return a = u = [], t || i || (s = t = ""), this
                },
                locked: function() {
                    return !!a
                },
                fireWith: function(e, t) {
                    return a || (t = [e, (t = t || []).slice ? t.slice() : t], u.push(t), i || c()), this
                },
                fire: function() {
                    return f.fireWith(this, arguments), this
                },
                fired: function() {
                    return !!o
                }
            };
        return f
    }, S.extend({
        Deferred: function(e) {
            var o = [
                    ["notify", "progress", S.Callbacks("memory"), S.Callbacks("memory"), 2],
                    ["resolve", "done", S.Callbacks("once memory"), S.Callbacks("once memory"), 0, "resolved"],
                    ["reject", "fail", S.Callbacks("once memory"), S.Callbacks("once memory"), 1, "rejected"]
                ],
                i = "pending",
                a = {
                    state: function() {
                        return i
                    },
                    always: function() {
                        return s.done(arguments).fail(arguments), this
                    },
                    "catch": function(e) {
                        return a.then(null, e)
                    },
                    pipe: function() {
                        var i = arguments;
                        return S.Deferred(function(r) {
                            S.each(o, function(e, t) {
                                var n = m(i[t[4]]) && i[t[4]];
                                s[t[1]](function() {
                                    var e = n && n.apply(this, arguments);
                                    e && m(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments)
                                })
                            }), i = null
                        }).promise()
                    },
                    then: function(t, n, r) {
                        var u = 0;

                        function l(i, o, a, s) {
                            return function() {
                                var n = this,
                                    r = arguments,
                                    e = function() {
                                        var e, t;
                                        if (!(i < u)) {
                                            if ((e = a.apply(n, r)) === o.promise()) throw new TypeError("Thenable self-resolution");
                                            t = e && ("object" == typeof e || "function" == typeof e) && e.then, m(t) ? s ? t.call(e, l(u, o, R, s), l(u, o, M, s)) : (u++, t.call(e, l(u, o, R, s), l(u, o, M, s), l(u, o, R, o.notifyWith))) : (a !== R && (n = void 0, r = [e]), (s || o.resolveWith)(n, r))
                                        }
                                    },
                                    t = s ? e : function() {
                                        try {
                                            e()
                                        } catch (e) {
                                            S.Deferred.exceptionHook && S.Deferred.exceptionHook(e, t.stackTrace), u <= i + 1 && (a !== M && (n = void 0, r = [e]), o.rejectWith(n, r))
                                        }
                                    };
                                i ? t() : (S.Deferred.getStackHook && (t.stackTrace = S.Deferred.getStackHook()), C.setTimeout(t))
                            }
                        }
                        return S.Deferred(function(e) {
                            o[0][3].add(l(0, e, m(r) ? r : R, e.notifyWith)), o[1][3].add(l(0, e, m(t) ? t : R)), o[2][3].add(l(0, e, m(n) ? n : M))
                        }).promise()
                    },
                    promise: function(e) {
                        return null != e ? S.extend(e, a) : a
                    }
                },
                s = {};
            return S.each(o, function(e, t) {
                var n = t[2],
                    r = t[5];
                a[t[1]] = n.add, r && n.add(function() {
                    i = r
                }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock), n.add(t[3].fire), s[t[0]] = function() {
                    return s[t[0] + "With"](this === s ? void 0 : this, arguments), this
                }, s[t[0] + "With"] = n.fireWith
            }), a.promise(s), e && e.call(s, s), s
        },
        when: function(e) {
            var n = arguments.length,
                t = n,
                r = Array(t),
                i = s.call(arguments),
                o = S.Deferred(),
                a = function(t) {
                    return function(e) {
                        r[t] = this, i[t] = 1 < arguments.length ? s.call(arguments) : e, --n || o.resolveWith(r, i)
                    }
                };
            if (n <= 1 && (I(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || m(i[t] && i[t].then))) return o.then();
            while (t--) I(i[t], a(t), o.reject);
            return o.promise()
        }
    });
    var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
    S.Deferred.exceptionHook = function(e, t) {
        C.console && C.console.warn && e && W.test(e.name) && C.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
    }, S.readyException = function(e) {
        C.setTimeout(function() {
            throw e
        })
    };
    var F = S.Deferred();

    function B() {
        E.removeEventListener("DOMContentLoaded", B), C.removeEventListener("load", B), S.ready()
    }
    S.fn.ready = function(e) {
        return F.then(e)["catch"](function(e) {
            S.readyException(e)
        }), this
    }, S.extend({
        isReady: !1,
        readyWait: 1,
        ready: function(e) {
            (!0 === e ? --S.readyWait : S.isReady) || (S.isReady = !0) !== e && 0 < --S.readyWait || F.resolveWith(E, [S])
        }
    }), S.ready.then = F.then, "complete" === E.readyState || "loading" !== E.readyState && !E.documentElement.doScroll ? C.setTimeout(S.ready) : (E.addEventListener("DOMContentLoaded", B), C.addEventListener("load", B));
    var $ = function(e, t, n, r, i, o, a) {
            var s = 0,
                u = e.length,
                l = null == n;
            if ("object" === w(n))
                for (s in i = !0, n) $(e, t, s, n[s], !0, o, a);
            else if (void 0 !== r && (i = !0, m(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function(e, t, n) {
                    return l.call(S(e), n)
                })), t))
                for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
            return i ? e : l ? t.call(e) : u ? t(e[0], n) : o
        },
        _ = /^-ms-/,
        z = /-([a-z])/g;

    function U(e, t) {
        return t.toUpperCase()
    }

    function X(e) {
        return e.replace(_, "ms-").replace(z, U)
    }
    var V = function(e) {
        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
    };

    function G() {
        this.expando = S.expando + G.uid++
    }
    G.uid = 1, G.prototype = {
        cache: function(e) {
            var t = e[this.expando];
            return t || (t = {}, V(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
                value: t,
                configurable: !0
            }))), t
        },
        set: function(e, t, n) {
            var r, i = this.cache(e);
            if ("string" == typeof t) i[X(t)] = n;
            else
                for (r in t) i[X(r)] = t[r];
            return i
        },
        get: function(e, t) {
            return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][X(t)]
        },
        access: function(e, t, n) {
            return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t)
        },
        remove: function(e, t) {
            var n, r = e[this.expando];
            if (void 0 !== r) {
                if (void 0 !== t) {
                    n = (t = Array.isArray(t) ? t.map(X) : (t = X(t)) in r ? [t] : t.match(P) || []).length;
                    while (n--) delete r[t[n]]
                }(void 0 === t || S.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
            }
        },
        hasData: function(e) {
            var t = e[this.expando];
            return void 0 !== t && !S.isEmptyObject(t)
        }
    };
    var Y = new G,
        Q = new G,
        J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
        K = /[A-Z]/g;

    function Z(e, t, n) {
        var r, i;
        if (void 0 === n && 1 === e.nodeType)
            if (r = "data-" + t.replace(K, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(r))) {
                try {
                    n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : J.test(i) ? JSON.parse(i) : i)
                } catch (e) {}
                Q.set(e, t, n)
            } else n = void 0;
        return n
    }
    S.extend({
        hasData: function(e) {
            return Q.hasData(e) || Y.hasData(e)
        },
        data: function(e, t, n) {
            return Q.access(e, t, n)
        },
        removeData: function(e, t) {
            Q.remove(e, t)
        },
        _data: function(e, t, n) {
            return Y.access(e, t, n)
        },
        _removeData: function(e, t) {
            Y.remove(e, t)
        }
    }), S.fn.extend({
        data: function(n, e) {
            var t, r, i, o = this[0],
                a = o && o.attributes;
            if (void 0 === n) {
                if (this.length && (i = Q.get(o), 1 === o.nodeType && !Y.get(o, "hasDataAttrs"))) {
                    t = a.length;
                    while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = X(r.slice(5)), Z(o, r, i[r]));
                    Y.set(o, "hasDataAttrs", !0)
                }
                return i
            }
            return "object" == typeof n ? this.each(function() {
                Q.set(this, n)
            }) : $(this, function(e) {
                var t;
                if (o && void 0 === e) return void 0 !== (t = Q.get(o, n)) ? t : void 0 !== (t = Z(o, n)) ? t : void 0;
                this.each(function() {
                    Q.set(this, n, e)
                })
            }, null, e, 1 < arguments.length, null, !0)
        },
        removeData: function(e) {
            return this.each(function() {
                Q.remove(this, e)
            })
        }
    }), S.extend({
        queue: function(e, t, n) {
            var r;
            if (e) return t = (t || "fx") + "queue", r = Y.get(e, t), n && (!r || Array.isArray(n) ? r = Y.access(e, t, S.makeArray(n)) : r.push(n)), r || []
        },
        dequeue: function(e, t) {
            t = t || "fx";
            var n = S.queue(e, t),
                r = n.length,
                i = n.shift(),
                o = S._queueHooks(e, t);
            "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function() {
                S.dequeue(e, t)
            }, o)), !r && o && o.empty.fire()
        },
        _queueHooks: function(e, t) {
            var n = t + "queueHooks";
            return Y.get(e, n) || Y.access(e, n, {
                empty: S.Callbacks("once memory").add(function() {
                    Y.remove(e, [t + "queue", n])
                })
            })
        }
    }), S.fn.extend({
        queue: function(t, n) {
            var e = 2;
            return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? S.queue(this[0], t) : void 0 === n ? this : this.each(function() {
                var e = S.queue(this, t, n);
                S._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && S.dequeue(this, t)
            })
        },
        dequeue: function(e) {
            return this.each(function() {
                S.dequeue(this, e)
            })
        },
        clearQueue: function(e) {
            return this.queue(e || "fx", [])
        },
        promise: function(e, t) {
            var n, r = 1,
                i = S.Deferred(),
                o = this,
                a = this.length,
                s = function() {
                    --r || i.resolveWith(o, [o])
                };
            "string" != typeof e && (t = e, e = void 0), e = e || "fx";
            while (a--)(n = Y.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s));
            return s(), i.promise(t)
        }
    });
    var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
        te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"),
        ne = ["Top", "Right", "Bottom", "Left"],
        re = E.documentElement,
        ie = function(e) {
            return S.contains(e.ownerDocument, e)
        },
        oe = {
            composed: !0
        };
    re.getRootNode && (ie = function(e) {
        return S.contains(e.ownerDocument, e) || e.getRootNode(oe) === e.ownerDocument
    });
    var ae = function(e, t) {
        return "none" === (e = t || e).style.display || "" === e.style.display && ie(e) && "none" === S.css(e, "display")
    };

    function se(e, t, n, r) {
        var i, o, a = 20,
            s = r ? function() {
                return r.cur()
            } : function() {
                return S.css(e, t, "")
            },
            u = s(),
            l = n && n[3] || (S.cssNumber[t] ? "" : "px"),
            c = e.nodeType && (S.cssNumber[t] || "px" !== l && +u) && te.exec(S.css(e, t));
        if (c && c[3] !== l) {
            u /= 2, l = l || c[3], c = +u || 1;
            while (a--) S.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o;
            c *= 2, S.style(e, t, c + l), n = n || []
        }
        return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i
    }
    var ue = {};

    function le(e, t) {
        for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++)(r = e[c]).style && (n = r.style.display, t ? ("none" === n && (l[c] = Y.get(r, "display") || null, l[c] || (r.style.display = "")), "" === r.style.display && ae(r) && (l[c] = (u = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (u = ue[s]) || (o = a.body.appendChild(a.createElement(s)), u = S.css(o, "display"), o.parentNode.removeChild(o), "none" === u && (u = "block"), ue[s] = u)))) : "none" !== n && (l[c] = "none", Y.set(r, "display", n)));
        for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]);
        return e
    }
    S.fn.extend({
        show: function() {
            return le(this, !0)
        },
        hide: function() {
            return le(this)
        },
        toggle: function(e) {
            return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
                ae(this) ? S(this).show() : S(this).hide()
            })
        }
    });
    var ce, fe, pe = /^(?:checkbox|radio)$/i,
        de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
        he = /^$|^module$|\/(?:java|ecma)script/i;
    ce = E.createDocumentFragment().appendChild(E.createElement("div")), (fe = E.createElement("input")).setAttribute("type", "radio"), fe.setAttribute("checked", "checked"), fe.setAttribute("name", "t"), ce.appendChild(fe), y.checkClone = ce.cloneNode(!0).cloneNode(!0).lastChild.checked, ce.innerHTML = "<textarea>x</textarea>", y.noCloneChecked = !!ce.cloneNode(!0).lastChild.defaultValue, ce.innerHTML = "<option></option>", y.option = !!ce.lastChild;
    var ge = {
        thead: [1, "<table>", "</table>"],
        col: [2, "<table><colgroup>", "</colgroup></table>"],
        tr: [2, "<table><tbody>", "</tbody></table>"],
        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
        _default: [0, "", ""]
    };

    function ve(e, t) {
        var n;
        return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && A(e, t) ? S.merge([e], n) : n
    }

    function ye(e, t) {
        for (var n = 0, r = e.length; n < r; n++) Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval"))
    }
    ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td, y.option || (ge.optgroup = ge.option = [1, "<select multiple='multiple'>", "</select>"]);
    var me = /<|&#?\w+;/;

    function xe(e, t, n, r, i) {
        for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)
            if ((o = e[d]) || 0 === o)
                if ("object" === w(o)) S.merge(p, o.nodeType ? [o] : o);
                else if (me.test(o)) {
            a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + S.htmlPrefilter(o) + u[2], c = u[0];
            while (c--) a = a.lastChild;
            S.merge(p, a.childNodes), (a = f.firstChild).textContent = ""
        } else p.push(t.createTextNode(o));
        f.textContent = "", d = 0;
        while (o = p[d++])
            if (r && -1 < S.inArray(o, r)) i && i.push(o);
            else if (l = ie(o), a = ve(f.appendChild(o), "script"), l && ye(a), n) {
            c = 0;
            while (o = a[c++]) he.test(o.type || "") && n.push(o)
        }
        return f
    }
    var be = /^key/,
        we = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
        Te = /^([^.]*)(?:\.(.+)|)/;

    function Ce() {
        return !0
    }

    function Ee() {
        return !1
    }

    function Se(e, t) {
        return e === function() {
            try {
                return E.activeElement
            } catch (e) {}
        }() == ("focus" === t)
    }

    function ke(e, t, n, r, i, o) {
        var a, s;
        if ("object" == typeof t) {
            for (s in "string" != typeof n && (r = r || n, n = void 0), t) ke(e, s, n, r, t[s], o);
            return e
        }
        if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = Ee;
        else if (!i) return e;
        return 1 === o && (a = i, (i = function(e) {
            return S().off(e), a.apply(this, arguments)
        }).guid = a.guid || (a.guid = S.guid++)), e.each(function() {
            S.event.add(this, t, i, r, n)
        })
    }

    function Ae(e, i, o) {
        o ? (Y.set(e, i, !1), S.event.add(e, i, {
            namespace: !1,
            handler: function(e) {
                var t, n, r = Y.get(this, i);
                if (1 & e.isTrigger && this[i]) {
                    if (r.length)(S.event.special[i] || {}).delegateType && e.stopPropagation();
                    else if (r = s.call(arguments), Y.set(this, i, r), t = o(this, i), this[i](), r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : n = {}, r !== n) return e.stopImmediatePropagation(), e.preventDefault(), n.value
                } else r.length && (Y.set(this, i, {
                    value: S.event.trigger(S.extend(r[0], S.Event.prototype), r.slice(1), this)
                }), e.stopImmediatePropagation())
            }
        })) : void 0 === Y.get(e, i) && S.event.add(e, i, Ce)
    }
    S.event = {
        global: {},
        add: function(t, e, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = Y.get(t);
            if (V(t)) {
                n.handler && (n = (o = n).handler, i = o.selector), i && S.find.matchesSelector(re, i), n.guid || (n.guid = S.guid++), (u = v.events) || (u = v.events = Object.create(null)), (a = v.handle) || (a = v.handle = function(e) {
                    return "undefined" != typeof S && S.event.triggered !== e.type ? S.event.dispatch.apply(t, arguments) : void 0
                }), l = (e = (e || "").match(P) || [""]).length;
                while (l--) d = g = (s = Te.exec(e[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = S.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = S.event.special[d] || {}, c = S.extend({
                    type: d,
                    origType: g,
                    data: r,
                    handler: n,
                    guid: n.guid,
                    selector: i,
                    needsContext: i && S.expr.match.needsContext.test(i),
                    namespace: h.join(".")
                }, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(t, r, h, a) || t.addEventListener && t.addEventListener(d, a)), f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), S.event.global[d] = !0)
            }
        },
        remove: function(e, t, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = Y.hasData(e) && Y.get(e);
            if (v && (u = v.events)) {
                l = (t = (t || "").match(P) || [""]).length;
                while (l--)
                    if (d = g = (s = Te.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d) {
                        f = S.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length;
                        while (o--) c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c));
                        a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || S.removeEvent(e, d, v.handle), delete u[d])
                    } else
                        for (d in u) S.event.remove(e, d + t[l], n, r, !0);
                S.isEmptyObject(u) && Y.remove(e, "handle events")
            }
        },
        dispatch: function(e) {
            var t, n, r, i, o, a, s = new Array(arguments.length),
                u = S.event.fix(e),
                l = (Y.get(this, "events") || Object.create(null))[u.type] || [],
                c = S.event.special[u.type] || {};
            for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t];
            if (u.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, u)) {
                a = S.event.handlers.call(this, u, l), t = 0;
                while ((i = a[t++]) && !u.isPropagationStopped()) {
                    u.currentTarget = i.elem, n = 0;
                    while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace) || (u.handleObj = o, u.data = o.data, void 0 !== (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation()))
                }
                return c.postDispatch && c.postDispatch.call(this, u), u.result
            }
        },
        handlers: function(e, t) {
            var n, r, i, o, a, s = [],
                u = t.delegateCount,
                l = e.target;
            if (u && l.nodeType && !("click" === e.type && 1 <= e.button))
                for (; l !== this; l = l.parentNode || this)
                    if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
                        for (o = [], a = {}, n = 0; n < u; n++) void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < S(i, this).index(l) : S.find(i, this, null, [l]).length), a[i] && o.push(r);
                        o.length && s.push({
                            elem: l,
                            handlers: o
                        })
                    }
            return l = this, u < t.length && s.push({
                elem: l,
                handlers: t.slice(u)
            }), s
        },
        addProp: function(t, e) {
            Object.defineProperty(S.Event.prototype, t, {
                enumerable: !0,
                configurable: !0,
                get: m(e) ? function() {
                    if (this.originalEvent) return e(this.originalEvent)
                } : function() {
                    if (this.originalEvent) return this.originalEvent[t]
                },
                set: function(e) {
                    Object.defineProperty(this, t, {
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                        value: e
                    })
                }
            })
        },
        fix: function(e) {
            return e[S.expando] ? e : new S.Event(e)
        },
        special: {
            load: {
                noBubble: !0
            },
            click: {
                setup: function(e) {
                    var t = this || e;
                    return pe.test(t.type) && t.click && A(t, "input") && Ae(t, "click", Ce), !1
                },
                trigger: function(e) {
                    var t = this || e;
                    return pe.test(t.type) && t.click && A(t, "input") && Ae(t, "click"), !0
                },
                _default: function(e) {
                    var t = e.target;
                    return pe.test(t.type) && t.click && A(t, "input") && Y.get(t, "click") || A(t, "a")
                }
            },
            beforeunload: {
                postDispatch: function(e) {
                    void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
                }
            }
        }
    }, S.removeEvent = function(e, t, n) {
        e.removeEventListener && e.removeEventListener(t, n)
    }, S.Event = function(e, t) {
        if (!(this instanceof S.Event)) return new S.Event(e, t);
        e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ce : Ee, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && S.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[S.expando] = !0
    }, S.Event.prototype = {
        constructor: S.Event,
        isDefaultPrevented: Ee,
        isPropagationStopped: Ee,
        isImmediatePropagationStopped: Ee,
        isSimulated: !1,
        preventDefault: function() {
            var e = this.originalEvent;
            this.isDefaultPrevented = Ce, e && !this.isSimulated && e.preventDefault()
        },
        stopPropagation: function() {
            var e = this.originalEvent;
            this.isPropagationStopped = Ce, e && !this.isSimulated && e.stopPropagation()
        },
        stopImmediatePropagation: function() {
            var e = this.originalEvent;
            this.isImmediatePropagationStopped = Ce, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
        }
    }, S.each({
        altKey: !0,
        bubbles: !0,
        cancelable: !0,
        changedTouches: !0,
        ctrlKey: !0,
        detail: !0,
        eventPhase: !0,
        metaKey: !0,
        pageX: !0,
        pageY: !0,
        shiftKey: !0,
        view: !0,
        "char": !0,
        code: !0,
        charCode: !0,
        key: !0,
        keyCode: !0,
        button: !0,
        buttons: !0,
        clientX: !0,
        clientY: !0,
        offsetX: !0,
        offsetY: !0,
        pointerId: !0,
        pointerType: !0,
        screenX: !0,
        screenY: !0,
        targetTouches: !0,
        toElement: !0,
        touches: !0,
        which: function(e) {
            var t = e.button;
            return null == e.which && be.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && we.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which
        }
    }, S.event.addProp), S.each({
        focus: "focusin",
        blur: "focusout"
    }, function(e, t) {
        S.event.special[e] = {
            setup: function() {
                return Ae(this, e, Se), !1
            },
            trigger: function() {
                return Ae(this, e), !0
            },
            delegateType: t
        }
    }), S.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout",
        pointerenter: "pointerover",
        pointerleave: "pointerout"
    }, function(e, i) {
        S.event.special[e] = {
            delegateType: i,
            bindType: i,
            handle: function(e) {
                var t, n = e.relatedTarget,
                    r = e.handleObj;
                return n && (n === this || S.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t
            }
        }
    }), S.fn.extend({
        on: function(e, t, n, r) {
            return ke(this, e, t, n, r)
        },
        one: function(e, t, n, r) {
            return ke(this, e, t, n, r, 1)
        },
        off: function(e, t, n) {
            var r, i;
            if (e && e.preventDefault && e.handleObj) return r = e.handleObj, S(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
            if ("object" == typeof e) {
                for (i in e) this.off(i, t, e[i]);
                return this
            }
            return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = Ee), this.each(function() {
                S.event.remove(this, e, n, t)
            })
        }
    });
    var Ne = /<script|<style|<link/i,
        De = /checked\s*(?:[^=]|=\s*.checked.)/i,
        je = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;

    function qe(e, t) {
        return A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && S(e).children("tbody")[0] || e
    }

    function Le(e) {
        return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
    }

    function He(e) {
        return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e
    }

    function Oe(e, t) {
        var n, r, i, o, a, s;
        if (1 === t.nodeType) {
            if (Y.hasData(e) && (s = Y.get(e).events))
                for (i in Y.remove(t, "handle events"), s)
                    for (n = 0, r = s[i].length; n < r; n++) S.event.add(t, i, s[i][n]);
            Q.hasData(e) && (o = Q.access(e), a = S.extend({}, o), Q.set(t, a))
        }
    }

    function Pe(n, r, i, o) {
        r = g(r);
        var e, t, a, s, u, l, c = 0,
            f = n.length,
            p = f - 1,
            d = r[0],
            h = m(d);
        if (h || 1 < f && "string" == typeof d && !y.checkClone && De.test(d)) return n.each(function(e) {
            var t = n.eq(e);
            h && (r[0] = d.call(this, e, t.html())), Pe(t, r, i, o)
        });
        if (f && (t = (e = xe(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === e.childNodes.length && (e = t), t || o)) {
            for (s = (a = S.map(ve(e, "script"), Le)).length; c < f; c++) u = e, c !== p && (u = S.clone(u, !0, !0), s && S.merge(a, ve(u, "script"))), i.call(n[c], u, c);
            if (s)
                for (l = a[a.length - 1].ownerDocument, S.map(a, He), c = 0; c < s; c++) u = a[c], he.test(u.type || "") && !Y.access(u, "globalEval") && S.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? S._evalUrl && !u.noModule && S._evalUrl(u.src, {
                    nonce: u.nonce || u.getAttribute("nonce")
                }, l) : b(u.textContent.replace(je, ""), u, l))
        }
        return n
    }

    function Re(e, t, n) {
        for (var r, i = t ? S.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || S.cleanData(ve(r)), r.parentNode && (n && ie(r) && ye(ve(r, "script")), r.parentNode.removeChild(r));
        return e
    }
    S.extend({
        htmlPrefilter: function(e) {
            return e
        },
        clone: function(e, t, n) {
            var r, i, o, a, s, u, l, c = e.cloneNode(!0),
                f = ie(e);
            if (!(y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || S.isXMLDoc(e)))
                for (a = ve(c), r = 0, i = (o = ve(e)).length; r < i; r++) s = o[r], u = a[r], void 0, "input" === (l = u.nodeName.toLowerCase()) && pe.test(s.type) ? u.checked = s.checked : "input" !== l && "textarea" !== l || (u.defaultValue = s.defaultValue);
            if (t)
                if (n)
                    for (o = o || ve(e), a = a || ve(c), r = 0, i = o.length; r < i; r++) Oe(o[r], a[r]);
                else Oe(e, c);
            return 0 < (a = ve(c, "script")).length && ye(a, !f && ve(e, "script")), c
        },
        cleanData: function(e) {
            for (var t, n, r, i = S.event.special, o = 0; void 0 !== (n = e[o]); o++)
                if (V(n)) {
                    if (t = n[Y.expando]) {
                        if (t.events)
                            for (r in t.events) i[r] ? S.event.remove(n, r) : S.removeEvent(n, r, t.handle);
                        n[Y.expando] = void 0
                    }
                    n[Q.expando] && (n[Q.expando] = void 0)
                }
        }
    }), S.fn.extend({
        detach: function(e) {
            return Re(this, e, !0)
        },
        remove: function(e) {
            return Re(this, e)
        },
        text: function(e) {
            return $(this, function(e) {
                return void 0 === e ? S.text(this) : this.empty().each(function() {
                    1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
                })
            }, null, e, arguments.length)
        },
        append: function() {
            return Pe(this, arguments, function(e) {
                1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || qe(this, e).appendChild(e)
            })
        },
        prepend: function() {
            return Pe(this, arguments, function(e) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var t = qe(this, e);
                    t.insertBefore(e, t.firstChild)
                }
            })
        },
        before: function() {
            return Pe(this, arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this)
            })
        },
        after: function() {
            return Pe(this, arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
            })
        },
        empty: function() {
            for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (S.cleanData(ve(e, !1)), e.textContent = "");
            return this
        },
        clone: function(e, t) {
            return e = null != e && e, t = null == t ? e : t, this.map(function() {
                return S.clone(this, e, t)
            })
        },
        html: function(e) {
            return $(this, function(e) {
                var t = this[0] || {},
                    n = 0,
                    r = this.length;
                if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
                if ("string" == typeof e && !Ne.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) {
                    e = S.htmlPrefilter(e);
                    try {
                        for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (S.cleanData(ve(t, !1)), t.innerHTML = e);
                        t = 0
                    } catch (e) {}
                }
                t && this.empty().append(e)
            }, null, e, arguments.length)
        },
        replaceWith: function() {
            var n = [];
            return Pe(this, arguments, function(e) {
                var t = this.parentNode;
                S.inArray(this, n) < 0 && (S.cleanData(ve(this)), t && t.replaceChild(e, this))
            }, n)
        }
    }), S.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function(e, a) {
        S.fn[e] = function(e) {
            for (var t, n = [], r = S(e), i = r.length - 1, o = 0; o <= i; o++) t = o === i ? this : this.clone(!0), S(r[o])[a](t), u.apply(n, t.get());
            return this.pushStack(n)
        }
    });
    var Me = new RegExp("^(" + ee + ")(?!px)[a-z%]+$", "i"),
        Ie = function(e) {
            var t = e.ownerDocument.defaultView;
            return t && t.opener || (t = C), t.getComputedStyle(e)
        },
        We = function(e, t, n) {
            var r, i, o = {};
            for (i in t) o[i] = e.style[i], e.style[i] = t[i];
            for (i in r = n.call(e), t) e.style[i] = o[i];
            return r
        },
        Fe = new RegExp(ne.join("|"), "i");

    function Be(e, t, n) {
        var r, i, o, a, s = e.style;
        return (n = n || Ie(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || ie(e) || (a = S.style(e, t)), !y.pixelBoxStyles() && Me.test(a) && Fe.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a
    }

    function $e(e, t) {
        return {get: function() {
                if (!e()) return (this.get = t).apply(this, arguments);
                delete this.get
            }
        }
    }! function() {
        function e() {
            if (l) {
                u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", l.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", re.appendChild(u).appendChild(l);
                var e = C.getComputedStyle(l);
                n = "1%" !== e.top, s = 12 === t(e.marginLeft), l.style.right = "60%", o = 36 === t(e.right), r = 36 === t(e.width), l.style.position = "absolute", i = 12 === t(l.offsetWidth / 3), re.removeChild(u), l = null
            }
        }

        function t(e) {
            return Math.round(parseFloat(e))
        }
        var n, r, i, o, a, s, u = E.createElement("div"),
            l = E.createElement("div");
        l.style && (l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", y.clearCloneStyle = "content-box" === l.style.backgroundClip, S.extend(y, {
            boxSizingReliable: function() {
                return e(), r
            },
            pixelBoxStyles: function() {
                return e(), o
            },
            pixelPosition: function() {
                return e(), n
            },
            reliableMarginLeft: function() {
                return e(), s
            },
            scrollboxSize: function() {
                return e(), i
            },
            reliableTrDimensions: function() {
                var e, t, n, r;
                return null == a && (e = E.createElement("table"), t = E.createElement("tr"), n = E.createElement("div"), e.style.cssText = "position:absolute;left:-11111px", t.style.height = "1px", n.style.height = "9px", re.appendChild(e).appendChild(t).appendChild(n), r = C.getComputedStyle(t), a = 3 < parseInt(r.height), re.removeChild(e)), a
            }
        }))
    }();
    var _e = ["Webkit", "Moz", "ms"],
        ze = E.createElement("div").style,
        Ue = {};

    function Xe(e) {
        var t = S.cssProps[e] || Ue[e];
        return t || (e in ze ? e : Ue[e] = function(e) {
            var t = e[0].toUpperCase() + e.slice(1),
                n = _e.length;
            while (n--)
                if ((e = _e[n] + t) in ze) return e
        }(e) || e)
    }
    var Ve = /^(none|table(?!-c[ea]).+)/,
        Ge = /^--/,
        Ye = {
            position: "absolute",
            visibility: "hidden",
            display: "block"
        },
        Qe = {
            letterSpacing: "0",
            fontWeight: "400"
        };

    function Je(e, t, n) {
        var r = te.exec(t);
        return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
    }

    function Ke(e, t, n, r, i, o) {
        var a = "width" === t ? 1 : 0,
            s = 0,
            u = 0;
        if (n === (r ? "border" : "content")) return 0;
        for (; a < 4; a += 2) "margin" === n && (u += S.css(e, n + ne[a], !0, i)), r ? ("content" === n && (u -= S.css(e, "padding" + ne[a], !0, i)), "margin" !== n && (u -= S.css(e, "border" + ne[a] + "Width", !0, i))) : (u += S.css(e, "padding" + ne[a], !0, i), "padding" !== n ? u += S.css(e, "border" + ne[a] + "Width", !0, i) : s += S.css(e, "border" + ne[a] + "Width", !0, i));
        return !r && 0 <= o && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5)) || 0), u
    }

    function Ze(e, t, n) {
        var r = Ie(e),
            i = (!y.boxSizingReliable() || n) && "border-box" === S.css(e, "boxSizing", !1, r),
            o = i,
            a = Be(e, t, r),
            s = "offset" + t[0].toUpperCase() + t.slice(1);
        if (Me.test(a)) {
            if (!n) return a;
            a = "auto"
        }
        return (!y.boxSizingReliable() && i || !y.reliableTrDimensions() && A(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === S.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === S.css(e, "boxSizing", !1, r), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + Ke(e, t, n || (i ? "border" : "content"), o, r, a) + "px"
    }

    function et(e, t, n, r, i) {
        return new et.prototype.init(e, t, n, r, i)
    }
    S.extend({
        cssHooks: {
            opacity: {get: function(e, t) {
                    if (t) {
                        var n = Be(e, "opacity");
                        return "" === n ? "1" : n
                    }
                }
            }
        },
        cssNumber: {
            animationIterationCount: !0,
            columnCount: !0,
            fillOpacity: !0,
            flexGrow: !0,
            flexShrink: !0,
            fontWeight: !0,
            gridArea: !0,
            gridColumn: !0,
            gridColumnEnd: !0,
            gridColumnStart: !0,
            gridRow: !0,
            gridRowEnd: !0,
            gridRowStart: !0,
            lineHeight: !0,
            opacity: !0,
            order: !0,
            orphans: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0
        },
        cssProps: {},
        style: function(e, t, n, r) {
            if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                var i, o, a, s = X(t),
                    u = Ge.test(t),
                    l = e.style;
                if (u || (t = Xe(s)), a = S.cssHooks[t] || S.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t];
                "string" === (o = typeof n) && (i = te.exec(n)) && i[1] && (n = se(e, t, i), o = "number"), null != n && n == n && ("number" !== o || u || (n += i && i[3] || (S.cssNumber[s] ? "" : "px")), y.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n))
            }
        },
        css: function(e, t, n, r) {
            var i, o, a, s = X(t);
            return Ge.test(t) || (t = Xe(s)), (a = S.cssHooks[t] || S.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = Be(e, t, r)), "normal" === i && t in Qe && (i = Qe[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i
        }
    }), S.each(["height", "width"], function(e, u) {
        S.cssHooks[u] = {get: function(e, t, n) {
                if (t) return !Ve.test(S.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? Ze(e, u, n) : We(e, Ye, function() {
                    return Ze(e, u, n)
                })
            },
            set: function(e, t, n) {
                var r, i = Ie(e),
                    o = !y.scrollboxSize() && "absolute" === i.position,
                    a = (o || n) && "border-box" === S.css(e, "boxSizing", !1, i),
                    s = n ? Ke(e, u, n, a, i) : 0;
                return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - Ke(e, u, "border", !1, i) - .5)), s && (r = te.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t, t = S.css(e, u)), Je(0, t, s)
            }
        }
    }), S.cssHooks.marginLeft = $e(y.reliableMarginLeft, function(e, t) {
        if (t) return (parseFloat(Be(e, "marginLeft")) || e.getBoundingClientRect().left - We(e, {
            marginLeft: 0
        }, function() {
            return e.getBoundingClientRect().left
        })) + "px"
    }), S.each({
        margin: "",
        padding: "",
        border: "Width"
    }, function(i, o) {
        S.cssHooks[i + o] = {
            expand: function(e) {
                for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++) n[i + ne[t] + o] = r[t] || r[t - 2] || r[0];
                return n
            }
        }, "margin" !== i && (S.cssHooks[i + o].set = Je)
    }), S.fn.extend({
        css: function(e, t) {
            return $(this, function(e, t, n) {
                var r, i, o = {},
                    a = 0;
                if (Array.isArray(t)) {
                    for (r = Ie(e), i = t.length; a < i; a++) o[t[a]] = S.css(e, t[a], !1, r);
                    return o
                }
                return void 0 !== n ? S.style(e, t, n) : S.css(e, t)
            }, e, t, 1 < arguments.length)
        }
    }), ((S.Tween = et).prototype = {
        constructor: et,
        init: function(e, t, n, r, i, o) {
            this.elem = e, this.prop = n, this.easing = i || S.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (S.cssNumber[n] ? "" : "px")
        },
        cur: function() {
            var e = et.propHooks[this.prop];
            return e && e.get ? e.get(this) : et.propHooks._default.get(this)
        },
        run: function(e) {
            var t, n = et.propHooks[this.prop];
            return this.options.duration ? this.pos = t = S.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : et.propHooks._default.set(this), this
        }
    }).init.prototype = et.prototype, (et.propHooks = {
        _default: {get: function(e) {
                var t;
                return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = S.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
            },
            set: function(e) {
                S.fx.step[e.prop] ? S.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !S.cssHooks[e.prop] && null == e.elem.style[Xe(e.prop)] ? e.elem[e.prop] = e.now : S.style(e.elem, e.prop, e.now + e.unit)
            }
        }
    }).scrollTop = et.propHooks.scrollLeft = {set: function(e) {
            e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
        }
    }, S.easing = {
        linear: function(e) {
            return e
        },
        swing: function(e) {
            return .5 - Math.cos(e * Math.PI) / 2
        },
        _default: "swing"
    }, S.fx = et.prototype.init, S.fx.step = {};
    var tt, nt, rt, it, ot = /^(?:toggle|show|hide)$/,
        at = /queueHooks$/;

    function st() {
        nt && (!1 === E.hidden && C.requestAnimationFrame ? C.requestAnimationFrame(st) : C.setTimeout(st, S.fx.interval), S.fx.tick())
    }

    function ut() {
        return C.setTimeout(function() {
            tt = void 0
        }), tt = Date.now()
    }

    function lt(e, t) {
        var n, r = 0,
            i = {
                height: e
            };
        for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = ne[r])] = i["padding" + n] = e;
        return t && (i.opacity = i.width = e), i
    }

    function ct(e, t, n) {
        for (var r, i = (ft.tweeners[t] || []).concat(ft.tweeners["*"]), o = 0, a = i.length; o < a; o++)
            if (r = i[o].call(n, t, e)) return r
    }

    function ft(o, e, t) {
        var n, a, r = 0,
            i = ft.prefilters.length,
            s = S.Deferred().always(function() {
                delete u.elem
            }),
            u = function() {
                if (a) return !1;
                for (var e = tt || ut(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++) l.tweens[r].run(n);
                return s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1)
            },
            l = s.promise({
                elem: o,
                props: S.extend({}, e),
                opts: S.extend(!0, {
                    specialEasing: {},
                    easing: S.easing._default
                }, t),
                originalProperties: e,
                originalOptions: t,
                startTime: tt || ut(),
                duration: t.duration,
                tweens: [],
                createTween: function(e, t) {
                    var n = S.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing);
                    return l.tweens.push(n), n
                },
                stop: function(e) {
                    var t = 0,
                        n = e ? l.tweens.length : 0;
                    if (a) return this;
                    for (a = !0; t < n; t++) l.tweens[t].run(1);
                    return e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this
                }
            }),
            c = l.props;
        for (! function(e, t) {
                var n, r, i, o, a;
                for (n in e)
                    if (i = t[r = X(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = S.cssHooks[r]) && "expand" in a)
                        for (n in o = a.expand(o), delete e[r], o) n in e || (e[n] = o[n], t[n] = i);
                    else t[r] = i
            }(c, l.opts.specialEasing); r < i; r++)
            if (n = ft.prefilters[r].call(l, o, c, l.opts)) return m(n.stop) && (S._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n;
        return S.map(c, ct, l), m(l.opts.start) && l.opts.start.call(o, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), S.fx.timer(S.extend(u, {
            elem: o,
            anim: l,
            queue: l.opts.queue
        })), l
    }
    S.Animation = S.extend(ft, {
        tweeners: {
            "*": [function(e, t) {
                var n = this.createTween(e, t);
                return se(n.elem, e, te.exec(t), n), n
            }]
        },
        tweener: function(e, t) {
            m(e) ? (t = e, e = ["*"]) : e = e.match(P);
            for (var n, r = 0, i = e.length; r < i; r++) n = e[r], ft.tweeners[n] = ft.tweeners[n] || [], ft.tweeners[n].unshift(t)
        },
        prefilters: [function(e, t, n) {
            var r, i, o, a, s, u, l, c, f = "width" in t || "height" in t,
                p = this,
                d = {},
                h = e.style,
                g = e.nodeType && ae(e),
                v = Y.get(e, "fxshow");
            for (r in n.queue || (null == (a = S._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function() {
                    a.unqueued || s()
                }), a.unqueued++, p.always(function() {
                    p.always(function() {
                        a.unqueued--, S.queue(e, "fx").length || a.empty.fire()
                    })
                })), t)
                if (i = t[r], ot.test(i)) {
                    if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) {
                        if ("show" !== i || !v || void 0 === v[r]) continue;
                        g = !0
                    }
                    d[r] = v && v[r] || S.style(e, r)
                }
            if ((u = !S.isEmptyObject(t)) || !S.isEmptyObject(d))
                for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = v && v.display) && (l = Y.get(e, "display")), "none" === (c = S.css(e, "display")) && (l ? c = l : (le([e], !0), l = e.style.display || l, c = S.css(e, "display"), le([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === S.css(e, "float") && (u || (p.done(function() {
                        h.display = l
                    }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function() {
                        h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]
                    })), u = !1, d) u || (v ? "hidden" in v && (g = v.hidden) : v = Y.access(e, "fxshow", {
                    display: l
                }), o && (v.hidden = !g), g && le([e], !0), p.done(function() {
                    for (r in g || le([e]), Y.remove(e, "fxshow"), d) S.style(e, r, d[r])
                })), u = ct(g ? v[r] : 0, r, p), r in v || (v[r] = u.start, g && (u.end = u.start, u.start = 0))
        }],
        prefilter: function(e, t) {
            t ? ft.prefilters.unshift(e) : ft.prefilters.push(e)
        }
    }), S.speed = function(e, t, n) {
        var r = e && "object" == typeof e ? S.extend({}, e) : {
            complete: n || !n && t || m(e) && e,
            duration: e,
            easing: n && t || t && !m(t) && t
        };
        return S.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in S.fx.speeds ? r.duration = S.fx.speeds[r.duration] : r.duration = S.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function() {
            m(r.old) && r.old.call(this), r.queue && S.dequeue(this, r.queue)
        }, r
    }, S.fn.extend({
        fadeTo: function(e, t, n, r) {
            return this.filter(ae).css("opacity", 0).show().end().animate({
                opacity: t
            }, e, n, r)
        },
        animate: function(t, e, n, r) {
            var i = S.isEmptyObject(t),
                o = S.speed(e, n, r),
                a = function() {
                    var e = ft(this, S.extend({}, t), o);
                    (i || Y.get(this, "finish")) && e.stop(!0)
                };
            return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
        },
        stop: function(i, e, o) {
            var a = function(e) {
                var t = e.stop;
                delete e.stop, t(o)
            };
            return "string" != typeof i && (o = e, e = i, i = void 0), e && this.queue(i || "fx", []), this.each(function() {
                var e = !0,
                    t = null != i && i + "queueHooks",
                    n = S.timers,
                    r = Y.get(this);
                if (t) r[t] && r[t].stop && a(r[t]);
                else
                    for (t in r) r[t] && r[t].stop && at.test(t) && a(r[t]);
                for (t = n.length; t--;) n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(o), e = !1, n.splice(t, 1));
                !e && o || S.dequeue(this, i)
            })
        },
        finish: function(a) {
            return !1 !== a && (a = a || "fx"), this.each(function() {
                var e, t = Y.get(this),
                    n = t[a + "queue"],
                    r = t[a + "queueHooks"],
                    i = S.timers,
                    o = n ? n.length : 0;
                for (t.finish = !0, S.queue(this, a, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--;) i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1));
                for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this);
                delete t.finish
            })
        }
    }), S.each(["toggle", "show", "hide"], function(e, r) {
        var i = S.fn[r];
        S.fn[r] = function(e, t, n) {
            return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(lt(r, !0), e, t, n)
        }
    }), S.each({
        slideDown: lt("show"),
        slideUp: lt("hide"),
        slideToggle: lt("toggle"),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        },
        fadeToggle: {
            opacity: "toggle"
        }
    }, function(e, r) {
        S.fn[e] = function(e, t, n) {
            return this.animate(r, e, t, n)
        }
    }), S.timers = [], S.fx.tick = function() {
        var e, t = 0,
            n = S.timers;
        for (tt = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);
        n.length || S.fx.stop(), tt = void 0
    }, S.fx.timer = function(e) {
        S.timers.push(e), S.fx.start()
    }, S.fx.interval = 13, S.fx.start = function() {
        nt || (nt = !0, st())
    }, S.fx.stop = function() {
        nt = null
    }, S.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400
    }, S.fn.delay = function(r, e) {
        return r = S.fx && S.fx.speeds[r] || r, e = e || "fx", this.queue(e, function(e, t) {
            var n = C.setTimeout(e, r);
            t.stop = function() {
                C.clearTimeout(n)
            }
        })
    }, rt = E.createElement("input"), it = E.createElement("select").appendChild(E.createElement("option")), rt.type = "checkbox", y.checkOn = "" !== rt.value, y.optSelected = it.selected, (rt = E.createElement("input")).value = "t", rt.type = "radio", y.radioValue = "t" === rt.value;
    var pt, dt = S.expr.attrHandle;
    S.fn.extend({
        attr: function(e, t) {
            return $(this, S.attr, e, t, 1 < arguments.length)
        },
        removeAttr: function(e) {
            return this.each(function() {
                S.removeAttr(this, e)
            })
        }
    }), S.extend({
        attr: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? S.prop(e, t, n) : (1 === o && S.isXMLDoc(e) || (i = S.attrHooks[t.toLowerCase()] || (S.expr.match.bool.test(t) ? pt : void 0)), void 0 !== n ? null === n ? void S.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = S.find.attr(e, t)) ? void 0 : r)
        },
        attrHooks: {
            type: {set: function(e, t) {
                    if (!y.radioValue && "radio" === t && A(e, "input")) {
                        var n = e.value;
                        return e.setAttribute("type", t), n && (e.value = n), t
                    }
                }
            }
        },
        removeAttr: function(e, t) {
            var n, r = 0,
                i = t && t.match(P);
            if (i && 1 === e.nodeType)
                while (n = i[r++]) e.removeAttribute(n)
        }
    }), pt = {set: function(e, t, n) {
            return !1 === t ? S.removeAttr(e, n) : e.setAttribute(n, n), n
        }
    }, S.each(S.expr.match.bool.source.match(/\w+/g), function(e, t) {
        var a = dt[t] || S.find.attr;
        dt[t] = function(e, t, n) {
            var r, i, o = t.toLowerCase();
            return n || (i = dt[o], dt[o] = r, r = null != a(e, t, n) ? o : null, dt[o] = i), r
        }
    });
    var ht = /^(?:input|select|textarea|button)$/i,
        gt = /^(?:a|area)$/i;

    function vt(e) {
        return (e.match(P) || []).join(" ")
    }

    function yt(e) {
        return e.getAttribute && e.getAttribute("class") || ""
    }

    function mt(e) {
        return Array.isArray(e) ? e : "string" == typeof e && e.match(P) || []
    }
    S.fn.extend({
        prop: function(e, t) {
            return $(this, S.prop, e, t, 1 < arguments.length)
        },
        removeProp: function(e) {
            return this.each(function() {
                delete this[S.propFix[e] || e]
            })
        }
    }), S.extend({
        prop: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o) return 1 === o && S.isXMLDoc(e) || (t = S.propFix[t] || t, i = S.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
        },
        propHooks: {
            tabIndex: {get: function(e) {
                    var t = S.find.attr(e, "tabindex");
                    return t ? parseInt(t, 10) : ht.test(e.nodeName) || gt.test(e.nodeName) && e.href ? 0 : -1
                }
            }
        },
        propFix: {
            "for": "htmlFor",
            "class": "className"
        }
    }), y.optSelected || (S.propHooks.selected = {get: function(e) {
            var t = e.parentNode;
            return t && t.parentNode && t.parentNode.selectedIndex, null
        },
        set: function(e) {
            var t = e.parentNode;
            t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
        }
    }), S.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
        S.propFix[this.toLowerCase()] = this
    }), S.fn.extend({
        addClass: function(t) {
            var e, n, r, i, o, a, s, u = 0;
            if (m(t)) return this.each(function(e) {
                S(this).addClass(t.call(this, e, yt(this)))
            });
            if ((e = mt(t)).length)
                while (n = this[u++])
                    if (i = yt(n), r = 1 === n.nodeType && " " + vt(i) + " ") {
                        a = 0;
                        while (o = e[a++]) r.indexOf(" " + o + " ") < 0 && (r += o + " ");
                        i !== (s = vt(r)) && n.setAttribute("class", s)
                    }
            return this
        },
        removeClass: function(t) {
            var e, n, r, i, o, a, s, u = 0;
            if (m(t)) return this.each(function(e) {
                S(this).removeClass(t.call(this, e, yt(this)))
            });
            if (!arguments.length) return this.attr("class", "");
            if ((e = mt(t)).length)
                while (n = this[u++])
                    if (i = yt(n), r = 1 === n.nodeType && " " + vt(i) + " ") {
                        a = 0;
                        while (o = e[a++])
                            while (-1 < r.indexOf(" " + o + " ")) r = r.replace(" " + o + " ", " ");
                        i !== (s = vt(r)) && n.setAttribute("class", s)
                    }
            return this
        },
        toggleClass: function(i, t) {
            var o = typeof i,
                a = "string" === o || Array.isArray(i);
            return "boolean" == typeof t && a ? t ? this.addClass(i) : this.removeClass(i) : m(i) ? this.each(function(e) {
                S(this).toggleClass(i.call(this, e, yt(this), t), t)
            }) : this.each(function() {
                var e, t, n, r;
                if (a) {
                    t = 0, n = S(this), r = mt(i);
                    while (e = r[t++]) n.hasClass(e) ? n.removeClass(e) : n.addClass(e)
                } else void 0 !== i && "boolean" !== o || ((e = yt(this)) && Y.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", e || !1 === i ? "" : Y.get(this, "__className__") || ""))
            })
        },
        hasClass: function(e) {
            var t, n, r = 0;
            t = " " + e + " ";
            while (n = this[r++])
                if (1 === n.nodeType && -1 < (" " + vt(yt(n)) + " ").indexOf(t)) return !0;
            return !1
        }
    });
    var xt = /\r/g;
    S.fn.extend({
        val: function(n) {
            var r, e, i, t = this[0];
            return arguments.length ? (i = m(n), this.each(function(e) {
                var t;
                1 === this.nodeType && (null == (t = i ? n.call(this, e, S(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = S.map(t, function(e) {
                    return null == e ? "" : e + ""
                })), (r = S.valHooks[this.type] || S.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t))
            })) : t ? (r = S.valHooks[t.type] || S.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof(e = t.value) ? e.replace(xt, "") : null == e ? "" : e : void 0
        }
    }), S.extend({
        valHooks: {
            option: {get: function(e) {
                    var t = S.find.attr(e, "value");
                    return null != t ? t : vt(S.text(e))
                }
            },
            select: {get: function(e) {
                    var t, n, r, i = e.options,
                        o = e.selectedIndex,
                        a = "select-one" === e.type,
                        s = a ? null : [],
                        u = a ? o + 1 : i.length;
                    for (r = o < 0 ? u : a ? o : 0; r < u; r++)
                        if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !A(n.parentNode, "optgroup"))) {
                            if (t = S(n).val(), a) return t;
                            s.push(t)
                        }
                    return s
                },
                set: function(e, t) {
                    var n, r, i = e.options,
                        o = S.makeArray(t),
                        a = i.length;
                    while (a--)((r = i[a]).selected = -1 < S.inArray(S.valHooks.option.get(r), o)) && (n = !0);
                    return n || (e.selectedIndex = -1), o
                }
            }
        }
    }), S.each(["radio", "checkbox"], function() {
        S.valHooks[this] = {set: function(e, t) {
                if (Array.isArray(t)) return e.checked = -1 < S.inArray(S(e).val(), t)
            }
        }, y.checkOn || (S.valHooks[this].get = function(e) {
            return null === e.getAttribute("value") ? "on" : e.value
        })
    }), y.focusin = "onfocusin" in C;
    var bt = /^(?:focusinfocus|focusoutblur)$/,
        wt = function(e) {
            e.stopPropagation()
        };
    S.extend(S.event, {
        trigger: function(e, t, n, r) {
            var i, o, a, s, u, l, c, f, p = [n || E],
                d = v.call(e, "type") ? e.type : e,
                h = v.call(e, "namespace") ? e.namespace.split(".") : [];
            if (o = f = a = n = n || E, 3 !== n.nodeType && 8 !== n.nodeType && !bt.test(d + S.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(), h.sort()), u = d.indexOf(":") < 0 && "on" + d, (e = e[S.expando] ? e : new S.Event(d, "object" == typeof e && e)).isTrigger = r ? 2 : 3, e.namespace = h.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : S.makeArray(t, [e]), c = S.event.special[d] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) {
                if (!r && !c.noBubble && !x(n)) {
                    for (s = c.delegateType || d, bt.test(s + d) || (o = o.parentNode); o; o = o.parentNode) p.push(o), a = o;
                    a === (n.ownerDocument || E) && p.push(a.defaultView || a.parentWindow || C)
                }
                i = 0;
                while ((o = p[i++]) && !e.isPropagationStopped()) f = o, e.type = 1 < i ? s : c.bindType || d, (l = (Y.get(o, "events") || Object.create(null))[e.type] && Y.get(o, "handle")) && l.apply(o, t), (l = u && o[u]) && l.apply && V(o) && (e.result = l.apply(o, t), !1 === e.result && e.preventDefault());
                return e.type = d, r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !V(n) || u && m(n[d]) && !x(n) && ((a = n[u]) && (n[u] = null), S.event.triggered = d, e.isPropagationStopped() && f.addEventListener(d, wt), n[d](), e.isPropagationStopped() && f.removeEventListener(d, wt), S.event.triggered = void 0, a && (n[u] = a)), e.result
            }
        },
        simulate: function(e, t, n) {
            var r = S.extend(new S.Event, n, {
                type: e,
                isSimulated: !0
            });
            S.event.trigger(r, null, t)
        }
    }), S.fn.extend({
        trigger: function(e, t) {
            return this.each(function() {
                S.event.trigger(e, t, this)
            })
        },
        triggerHandler: function(e, t) {
            var n = this[0];
            if (n) return S.event.trigger(e, t, n, !0)
        }
    }), y.focusin || S.each({
        focus: "focusin",
        blur: "focusout"
    }, function(n, r) {
        var i = function(e) {
            S.event.simulate(r, e.target, S.event.fix(e))
        };
        S.event.special[r] = {
            setup: function() {
                var e = this.ownerDocument || this.document || this,
                    t = Y.access(e, r);
                t || e.addEventListener(n, i, !0), Y.access(e, r, (t || 0) + 1)
            },
            teardown: function() {
                var e = this.ownerDocument || this.document || this,
                    t = Y.access(e, r) - 1;
                t ? Y.access(e, r, t) : (e.removeEventListener(n, i, !0), Y.remove(e, r))
            }
        }
    });
    var Tt = C.location,
        Ct = {
            guid: Date.now()
        },
        Et = /\?/;
    S.parseXML = function(e) {
        var t;
        if (!e || "string" != typeof e) return null;
        try {
            t = (new C.DOMParser).parseFromString(e, "text/xml")
        } catch (e) {
            t = void 0
        }
        return t && !t.getElementsByTagName("parsererror").length || S.error("Invalid XML: " + e), t
    };
    var St = /\[\]$/,
        kt = /\r?\n/g,
        At = /^(?:submit|button|image|reset|file)$/i,
        Nt = /^(?:input|select|textarea|keygen)/i;

    function Dt(n, e, r, i) {
        var t;
        if (Array.isArray(e)) S.each(e, function(e, t) {
            r || St.test(n) ? i(n, t) : Dt(n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i)
        });
        else if (r || "object" !== w(e)) i(n, e);
        else
            for (t in e) Dt(n + "[" + t + "]", e[t], r, i)
    }
    S.param = function(e, t) {
        var n, r = [],
            i = function(e, t) {
                var n = m(t) ? t() : t;
                r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
            };
        if (null == e) return "";
        if (Array.isArray(e) || e.jquery && !S.isPlainObject(e)) S.each(e, function() {
            i(this.name, this.value)
        });
        else
            for (n in e) Dt(n, e[n], t, i);
        return r.join("&")
    }, S.fn.extend({
        serialize: function() {
            return S.param(this.serializeArray())
        },
        serializeArray: function() {
            return this.map(function() {
                var e = S.prop(this, "elements");
                return e ? S.makeArray(e) : this
            }).filter(function() {
                var e = this.type;
                return this.name && !S(this).is(":disabled") && Nt.test(this.nodeName) && !At.test(e) && (this.checked || !pe.test(e))
            }).map(function(e, t) {
                var n = S(this).val();
                return null == n ? null : Array.isArray(n) ? S.map(n, function(e) {
                    return {
                        name: t.name,
                        value: e.replace(kt, "\r\n")
                    }
                }) : {
                    name: t.name,
                    value: n.replace(kt, "\r\n")
                }
            }).get()
        }
    });
    var jt = /%20/g,
        qt = /#.*$/,
        Lt = /([?&])_=[^&]*/,
        Ht = /^(.*?):[ \t]*([^\r\n]*)$/gm,
        Ot = /^(?:GET|HEAD)$/,
        Pt = /^\/\//,
        Rt = {},
        Mt = {},
        It = "*/".concat("*"),
        Wt = E.createElement("a");

    function Ft(o) {
        return function(e, t) {
            "string" != typeof e && (t = e, e = "*");
            var n, r = 0,
                i = e.toLowerCase().match(P) || [];
            if (m(t))
                while (n = i[r++]) "+" === n[0] ? (n = n.slice(1) || "*", (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t)
        }
    }

    function Bt(t, i, o, a) {
        var s = {},
            u = t === Mt;

        function l(e) {
            var r;
            return s[e] = !0, S.each(t[e] || [], function(e, t) {
                var n = t(i, o, a);
                return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n), l(n), !1)
            }), r
        }
        return l(i.dataTypes[0]) || !s["*"] && l("*")
    }

    function $t(e, t) {
        var n, r, i = S.ajaxSettings.flatOptions || {};
        for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
        return r && S.extend(!0, e, r), e
    }
    Wt.href = Tt.href, S.extend({
        active: 0,
        lastModified: {},
        etag: {},
        ajaxSettings: {
            url: Tt.href,
            type: "GET",
            isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            accepts: {
                "*": It,
                text: "text/plain",
                html: "text/html",
                xml: "application/xml, text/xml",
                json: "application/json, text/javascript"
            },
            contents: {
                xml: /\bxml\b/,
                html: /\bhtml/,
                json: /\bjson\b/
            },
            responseFields: {
                xml: "responseXML",
                text: "responseText",
                json: "responseJSON"
            },
            converters: {
                "* text": String,
                "text html": !0,
                "text json": JSON.parse,
                "text xml": S.parseXML
            },
            flatOptions: {
                url: !0,
                context: !0
            }
        },
        ajaxSetup: function(e, t) {
            return t ? $t($t(e, S.ajaxSettings), t) : $t(S.ajaxSettings, e)
        },
        ajaxPrefilter: Ft(Rt),
        ajaxTransport: Ft(Mt),
        ajax: function(e, t) {
            "object" == typeof e && (t = e, e = void 0), t = t || {};
            var c, f, p, n, d, r, h, g, i, o, v = S.ajaxSetup({}, t),
                y = v.context || v,
                m = v.context && (y.nodeType || y.jquery) ? S(y) : S.event,
                x = S.Deferred(),
                b = S.Callbacks("once memory"),
                w = v.statusCode || {},
                a = {},
                s = {},
                u = "canceled",
                T = {
                    readyState: 0,
                    getResponseHeader: function(e) {
                        var t;
                        if (h) {
                            if (!n) {
                                n = {};
                                while (t = Ht.exec(p)) n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2])
                            }
                            t = n[e.toLowerCase() + " "]
                        }
                        return null == t ? null : t.join(", ")
                    },
                    getAllResponseHeaders: function() {
                        return h ? p : null
                    },
                    setRequestHeader: function(e, t) {
                        return null == h && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, a[e] = t), this
                    },
                    overrideMimeType: function(e) {
                        return null == h && (v.mimeType = e), this
                    },
                    statusCode: function(e) {
                        var t;
                        if (e)
                            if (h) T.always(e[T.status]);
                            else
                                for (t in e) w[t] = [w[t], e[t]];
                        return this
                    },
                    abort: function(e) {
                        var t = e || u;
                        return c && c.abort(t), l(0, t), this
                    }
                };
            if (x.promise(T), v.url = ((e || v.url || Tt.href) + "").replace(Pt, Tt.protocol + "//"), v.type = t.method || t.type || v.method || v.type, v.dataTypes = (v.dataType || "*").toLowerCase().match(P) || [""], null == v.crossDomain) {
                r = E.createElement("a");
                try {
                    r.href = v.url, r.href = r.href, v.crossDomain = Wt.protocol + "//" + Wt.host != r.protocol + "//" + r.host
                } catch (e) {
                    v.crossDomain = !0
                }
            }
            if (v.data && v.processData && "string" != typeof v.data && (v.data = S.param(v.data, v.traditional)), Bt(Rt, v, t, T), h) return T;
            for (i in (g = S.event && v.global) && 0 == S.active++ && S.event.trigger("ajaxStart"), v.type = v.type.toUpperCase(), v.hasContent = !Ot.test(v.type), f = v.url.replace(qt, ""), v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(jt, "+")) : (o = v.url.slice(f.length), v.data && (v.processData || "string" == typeof v.data) && (f += (Et.test(f) ? "&" : "?") + v.data, delete v.data), !1 === v.cache && (f = f.replace(Lt, "$1"), o = (Et.test(f) ? "&" : "?") + "_=" + Ct.guid++ +o), v.url = f + o), v.ifModified && (S.lastModified[f] && T.setRequestHeader("If-Modified-Since", S.lastModified[f]), S.etag[f] && T.setRequestHeader("If-None-Match", S.etag[f])), (v.data && v.hasContent && !1 !== v.contentType || t.contentType) && T.setRequestHeader("Content-Type", v.contentType), T.setRequestHeader("Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + It + "; q=0.01" : "") : v.accepts["*"]), v.headers) T.setRequestHeader(i, v.headers[i]);
            if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort();
            if (u = "abort", b.add(v.complete), T.done(v.success), T.fail(v.error), c = Bt(Mt, v, t, T)) {
                if (T.readyState = 1, g && m.trigger("ajaxSend", [T, v]), h) return T;
                v.async && 0 < v.timeout && (d = C.setTimeout(function() {
                    T.abort("timeout")
                }, v.timeout));
                try {
                    h = !1, c.send(a, l)
                } catch (e) {
                    if (h) throw e;
                    l(-1, e)
                }
            } else l(-1, "No Transport");

            function l(e, t, n, r) {
                var i, o, a, s, u, l = t;
                h || (h = !0, d && C.clearTimeout(d), c = void 0, p = r || "", T.readyState = 0 < e ? 4 : 0, i = 200 <= e && e < 300 || 304 === e, n && (s = function(e, t, n) {
                    var r, i, o, a, s = e.contents,
                        u = e.dataTypes;
                    while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
                    if (r)
                        for (i in s)
                            if (s[i] && s[i].test(r)) {
                                u.unshift(i);
                                break
                            }
                    if (u[0] in n) o = u[0];
                    else {
                        for (i in n) {
                            if (!u[0] || e.converters[i + " " + u[0]]) {
                                o = i;
                                break
                            }
                            a || (a = i)
                        }
                        o = o || a
                    }
                    if (o) return o !== u[0] && u.unshift(o), n[o]
                }(v, T, n)), !i && -1 < S.inArray("script", v.dataTypes) && (v.converters["text script"] = function() {}), s = function(e, t, n, r) {
                    var i, o, a, s, u, l = {},
                        c = e.dataTypes.slice();
                    if (c[1])
                        for (a in e.converters) l[a.toLowerCase()] = e.converters[a];
                    o = c.shift();
                    while (o)
                        if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift())
                            if ("*" === o) o = u;
                            else if ("*" !== u && u !== o) {
                        if (!(a = l[u + " " + o] || l["* " + o]))
                            for (i in l)
                                if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) {
                                    !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1]));
                                    break
                                }
                        if (!0 !== a)
                            if (a && e["throws"]) t = a(t);
                            else try {
                                t = a(t)
                            } catch (e) {
                                return {
                                    state: "parsererror",
                                    error: a ? e : "No conversion from " + u + " to " + o
                                }
                            }
                    }
                    return {
                        state: "success",
                        data: t
                    }
                }(v, s, T, i), i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (S.lastModified[f] = u), (u = T.getResponseHeader("etag")) && (S.etag[f] = u)), 204 === e || "HEAD" === v.type ? l = "nocontent" : 304 === e ? l = "notmodified" : (l = s.state, o = s.data, i = !(a = s.error))) : (a = l, !e && l || (l = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (t || l) + "", i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), T.statusCode(w), w = void 0, g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a]), b.fireWith(y, [T, l]), g && (m.trigger("ajaxComplete", [T, v]), --S.active || S.event.trigger("ajaxStop")))
            }
            return T
        },
        getJSON: function(e, t, n) {
            return S.get(e, t, n, "json")
        },
        getScript: function(e, t) {
            return S.get(e, void 0, t, "script")
        }
    }), S.each(["get", "post"], function(e, i) {
        S[i] = function(e, t, n, r) {
            return m(t) && (r = r || n, n = t, t = void 0), S.ajax(S.extend({
                url: e,
                type: i,
                dataType: r,
                data: t,
                success: n
            }, S.isPlainObject(e) && e))
        }
    }), S.ajaxPrefilter(function(e) {
        var t;
        for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
    }), S._evalUrl = function(e, t, n) {
        return S.ajax({
            url: e,
            type: "GET",
            dataType: "script",
            cache: !0,
            async: !1,
            global: !1,
            converters: {
                "text script": function() {}
            },
            dataFilter: function(e) {
                S.globalEval(e, t, n)
            }
        })
    }, S.fn.extend({
        wrapAll: function(e) {
            var t;
            return this[0] && (m(e) && (e = e.call(this[0])), t = S(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
                var e = this;
                while (e.firstElementChild) e = e.firstElementChild;
                return e
            }).append(this)), this
        },
        wrapInner: function(n) {
            return m(n) ? this.each(function(e) {
                S(this).wrapInner(n.call(this, e))
            }) : this.each(function() {
                var e = S(this),
                    t = e.contents();
                t.length ? t.wrapAll(n) : e.append(n)
            })
        },
        wrap: function(t) {
            var n = m(t);
            return this.each(function(e) {
                S(this).wrapAll(n ? t.call(this, e) : t)
            })
        },
        unwrap: function(e) {
            return this.parent(e).not("body").each(function() {
                S(this).replaceWith(this.childNodes)
            }), this
        }
    }), S.expr.pseudos.hidden = function(e) {
        return !S.expr.pseudos.visible(e)
    }, S.expr.pseudos.visible = function(e) {
        return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
    }, S.ajaxSettings.xhr = function() {
        try {
            return new C.XMLHttpRequest
        } catch (e) {}
    };
    var _t = {
            0: 200,
            1223: 204
        },
        zt = S.ajaxSettings.xhr();
    y.cors = !!zt && "withCredentials" in zt, y.ajax = zt = !!zt, S.ajaxTransport(function(i) {
        var o, a;
        if (y.cors || zt && !i.crossDomain) return {
            send: function(e, t) {
                var n, r = i.xhr();
                if (r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields)
                    for (n in i.xhrFields) r[n] = i.xhrFields[n];
                for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) r.setRequestHeader(n, e[n]);
                o = function(e) {
                    return function() {
                        o && (o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null, "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t(_t[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? {
                            binary: r.response
                        } : {
                            text: r.responseText
                        }, r.getAllResponseHeaders()))
                    }
                }, r.onload = o(), a = r.onerror = r.ontimeout = o("error"), void 0 !== r.onabort ? r.onabort = a : r.onreadystatechange = function() {
                    4 === r.readyState && C.setTimeout(function() {
                        o && a()
                    })
                }, o = o("abort");
                try {
                    r.send(i.hasContent && i.data || null)
                } catch (e) {
                    if (o) throw e
                }
            },
            abort: function() {
                o && o()
            }
        }
    }), S.ajaxPrefilter(function(e) {
        e.crossDomain && (e.contents.script = !1)
    }), S.ajaxSetup({
        accepts: {
            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
        },
        contents: {
            script: /\b(?:java|ecma)script\b/
        },
        converters: {
            "text script": function(e) {
                return S.globalEval(e), e
            }
        }
    }), S.ajaxPrefilter("script", function(e) {
        void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
    }), S.ajaxTransport("script", function(n) {
        var r, i;
        if (n.crossDomain || n.scriptAttrs) return {
            send: function(e, t) {
                r = S("<script>").attr(n.scriptAttrs || {}).prop({
                    charset: n.scriptCharset,
                    src: n.url
                }).on("load error", i = function(e) {
                    r.remove(), i = null, e && t("error" === e.type ? 404 : 200, e.type)
                }), E.head.appendChild(r[0])
            },
            abort: function() {
                i && i()
            }
        }
    });
    var Ut, Xt = [],
        Vt = /(=)\?(?=&|$)|\?\?/;
    S.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function() {
            var e = Xt.pop() || S.expando + "_" + Ct.guid++;
            return this[e] = !0, e
        }
    }), S.ajaxPrefilter("json jsonp", function(e, t, n) {
        var r, i, o, a = !1 !== e.jsonp && (Vt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Vt.test(e.data) && "data");
        if (a || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(Vt, "$1" + r) : !1 !== e.jsonp && (e.url += (Et.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function() {
            return o || S.error(r + " was not called"), o[0]
        }, e.dataTypes[0] = "json", i = C[r], C[r] = function() {
            o = arguments
        }, n.always(function() {
            void 0 === i ? S(C).removeProp(r) : C[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, Xt.push(r)), o && m(i) && i(o[0]), o = i = void 0
        }), "script"
    }), y.createHTMLDocument = ((Ut = E.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Ut.childNodes.length), S.parseHTML = function(e, t, n) {
        return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (y.createHTMLDocument ? ((r = (t = E.implementation.createHTMLDocument("")).createElement("base")).href = E.location.href, t.head.appendChild(r)) : t = E), o = !n && [], (i = N.exec(e)) ? [t.createElement(i[1])] : (i = xe([e], t, o), o && o.length && S(o).remove(), S.merge([], i.childNodes)));
        var r, i, o
    }, S.fn.load = function(e, t, n) {
        var r, i, o, a = this,
            s = e.indexOf(" ");
        return -1 < s && (r = vt(e.slice(s)), e = e.slice(0, s)), m(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), 0 < a.length && S.ajax({
            url: e,
            type: i || "GET",
            dataType: "html",
            data: t
        }).done(function(e) {
            o = arguments, a.html(r ? S("<div>").append(S.parseHTML(e)).find(r) : e)
        }).always(n && function(e, t) {
            a.each(function() {
                n.apply(this, o || [e.responseText, t, e])
            })
        }), this
    }, S.expr.pseudos.animated = function(t) {
        return S.grep(S.timers, function(e) {
            return t === e.elem
        }).length
    }, S.offset = {
        setOffset: function(e, t, n) {
            var r, i, o, a, s, u, l = S.css(e, "position"),
                c = S(e),
                f = {};
            "static" === l && (e.style.position = "relative"), s = c.offset(), o = S.css(e, "top"), u = S.css(e, "left"), ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") ? (a = (r = c.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), m(t) && (t = t.call(e, n, S.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using" in t ? t.using.call(e, f) : ("number" == typeof f.top && (f.top += "px"), "number" == typeof f.left && (f.left += "px"), c.css(f))
        }
    }, S.fn.extend({
        offset: function(t) {
            if (arguments.length) return void 0 === t ? this : this.each(function(e) {
                S.offset.setOffset(this, t, e)
            });
            var e, n, r = this[0];
            return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, {
                top: e.top + n.pageYOffset,
                left: e.left + n.pageXOffset
            }) : {
                top: 0,
                left: 0
            } : void 0
        },
        position: function() {
            if (this[0]) {
                var e, t, n, r = this[0],
                    i = {
                        top: 0,
                        left: 0
                    };
                if ("fixed" === S.css(r, "position")) t = r.getBoundingClientRect();
                else {
                    t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement;
                    while (e && (e === n.body || e === n.documentElement) && "static" === S.css(e, "position")) e = e.parentNode;
                    e && e !== r && 1 === e.nodeType && ((i = S(e).offset()).top += S.css(e, "borderTopWidth", !0), i.left += S.css(e, "borderLeftWidth", !0))
                }
                return {
                    top: t.top - i.top - S.css(r, "marginTop", !0),
                    left: t.left - i.left - S.css(r, "marginLeft", !0)
                }
            }
        },
        offsetParent: function() {
            return this.map(function() {
                var e = this.offsetParent;
                while (e && "static" === S.css(e, "position")) e = e.offsetParent;
                return e || re
            })
        }
    }), S.each({
        scrollLeft: "pageXOffset",
        scrollTop: "pageYOffset"
    }, function(t, i) {
        var o = "pageYOffset" === i;
        S.fn[t] = function(e) {
            return $(this, function(e, t, n) {
                var r;
                if (x(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === n) return r ? r[i] : e[t];
                r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : e[t] = n
            }, t, e, arguments.length)
        }
    }), S.each(["top", "left"], function(e, n) {
        S.cssHooks[n] = $e(y.pixelPosition, function(e, t) {
            if (t) return t = Be(e, n), Me.test(t) ? S(e).position()[n] + "px" : t
        })
    }), S.each({
        Height: "height",
        Width: "width"
    }, function(a, s) {
        S.each({
            padding: "inner" + a,
            content: s,
            "": "outer" + a
        }, function(r, o) {
            S.fn[o] = function(e, t) {
                var n = arguments.length && (r || "boolean" != typeof e),
                    i = r || (!0 === e || !0 === t ? "margin" : "border");
                return $(this, function(e, t, n) {
                    var r;
                    return x(e) ? 0 === o.indexOf("outer") ? e["inner" + a] : e.document.documentElement["client" + a] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + a], r["scroll" + a], e.body["offset" + a], r["offset" + a], r["client" + a])) : void 0 === n ? S.css(e, t, i) : S.style(e, t, n, i)
                }, s, n ? e : void 0, n)
            }
        })
    }), S.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
        S.fn[t] = function(e) {
            return this.on(t, e)
        }
    }), S.fn.extend({
        bind: function(e, t, n) {
            return this.on(e, null, t, n)
        },
        unbind: function(e, t) {
            return this.off(e, null, t)
        },
        delegate: function(e, t, n, r) {
            return this.on(t, e, n, r)
        },
        undelegate: function(e, t, n) {
            return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
        },
        hover: function(e, t) {
            return this.mouseenter(e).mouseleave(t || e)
        }
    }), S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, n) {
        S.fn[n] = function(e, t) {
            return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
        }
    });
    var Gt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
    S.proxy = function(e, t) {
        var n, r, i;
        if ("string" == typeof t && (n = e[t], t = e, e = n), m(e)) return r = s.call(arguments, 2), (i = function() {
            return e.apply(t || this, r.concat(s.call(arguments)))
        }).guid = e.guid = e.guid || S.guid++, i
    }, S.holdReady = function(e) {
        e ? S.readyWait++ : S.ready(!0)
    }, S.isArray = Array.isArray, S.parseJSON = JSON.parse, S.nodeName = A, S.isFunction = m, S.isWindow = x, S.camelCase = X, S.type = w, S.now = Date.now, S.isNumeric = function(e) {
        var t = S.type(e);
        return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
    }, S.trim = function(e) {
        return null == e ? "" : (e + "").replace(Gt, "")
    }, "function" == typeof define && define.amd && define("jquery", [], function() {
        return S
    });
    var Yt = C.jQuery,
        Qt = C.$;
    return S.noConflict = function(e) {
        return C.$ === S && (C.$ = Qt), e && C.jQuery === S && (C.jQuery = Yt), S
    }, "undefined" == typeof e && (C.jQuery = C.$ = S), S
});
#31 JavaScript::Eval (size: 65510) - SHA256: 4e084f877e1a0d57d26412c7f0cde6a7525583686e4c6ed508426b896b09ae85
/*!
 * jQuery Validation Plugin v1.14.0
 *
 * http://jqueryvalidation.org/
 *
 * Copyright (c) 2015 J�rn Zaefferer
 * Released under the MIT license
 */
(function(factory) {
    if (typeof define === "function" && define.amd) {
        define(["jquery"], factory);
    } else {
        factory(jQuery);
    }
})(function($) {
    $.extend($.fn, {
        // http://jqueryvalidation.org/validate/
        validate: function(options) {
            // if nothing is selected, return nothing; can't chain anyway
            if (!this.length) {
                if (options && options.debug && window.console) {
                    console.warn(
                        "Nothing selected, can't validate, returning nothing."
                    );
                }
                return;
            }

            // check if a validator for this form was already created
            var validator = $.data(this[0], "validator");
            if (validator) {
                return validator;
            }

            // Add novalidate tag if HTML5.
            this.attr("novalidate", "novalidate");

            validator = new $.validator(options, this[0]);
            $.data(this[0], "validator", validator);

            if (validator.settings.onsubmit) {
                this.on("click.validate", ":submit", function(event) {
                    if (validator.settings.submitHandler) {
                        validator.submitButton = event.target;
                    }

                    // allow suppressing validation by adding a cancel class to the submit button
                    if ($(this).hasClass("cancel")) {
                        validator.cancelSubmit = true;
                    }

                    // allow suppressing validation by adding the html5 formnovalidate attribute to the submit button
                    if ($(this).attr("formnovalidate") !== undefined) {
                        validator.cancelSubmit = true;
                    }
                });

                // validate the form on submit
                this.on("submit.validate", function(event) {
                    if (validator.settings.debug) {
                        // prevent form submit to be able to see console output
                        event.preventDefault();
                    }

                    function handle() {
                        var hidden, result;
                        if (validator.settings.submitHandler) {
                            if (validator.submitButton) {
                                // insert a hidden input as a replacement for the missing submit button
                                hidden = $("<input type='hidden'/>")
                                    .attr("name", validator.submitButton.name)
                                    .val($(validator.submitButton).val())
                                    .appendTo(validator.currentForm);
                            }
                            result = validator.settings.submitHandler.call(
                                validator,
                                validator.currentForm,
                                event
                            );
                            if (validator.submitButton) {
                                // and clean up afterwards; thanks to no-block-scope, hidden can be referenced
                                hidden.remove();
                            }
                            if (result !== undefined) {
                                return result;
                            }
                            return false;
                        }
                        return true;
                    }

                    // prevent submit for invalid forms or custom submit handlers
                    if (validator.cancelSubmit) {
                        validator.cancelSubmit = false;
                        return handle();
                    }
                    if (validator.form()) {
                        if (validator.pendingRequest) {
                            validator.formSubmitted = true;
                            return false;
                        }
                        return handle();
                    } else {
                        validator.focusInvalid();
                        return false;
                    }
                });
            }

            return validator;
        },
        // http://jqueryvalidation.org/valid/
        valid: function() {
            var valid, validator, errorList;

            if ($(this[0]).is("form")) {
                valid = this.validate().form();
            } else {
                errorList = [];
                valid = true;
                validator = $(this[0].form).validate();
                this.each(function() {
                    valid = validator.element(this) && valid;
                    errorList = errorList.concat(validator.errorList);
                });
                validator.errorList = errorList;
            }
            return valid;
        },

        // http://jqueryvalidation.org/rules/
        rules: function(command, argument) {
            var element = this[0],
                settings,
                staticRules,
                existingRules,
                data,
                param,
                filtered;

            if (command) {
                settings = $.data(element.form, "validator").settings;
                staticRules = settings.rules;
                existingRules = $.validator.staticRules(element);
                switch (command) {
                    case "add":
                        $.extend(
                            existingRules,
                            $.validator.normalizeRule(argument)
                        );
                        // remove messages from rules, but allow them to be set separately
                        delete existingRules.messages;
                        staticRules[element.name] = existingRules;
                        if (argument.messages) {
                            settings.messages[element.name] = $.extend(
                                settings.messages[element.name],
                                argument.messages
                            );
                        }
                        break;
                    case "remove":
                        if (!argument) {
                            delete staticRules[element.name];
                            return existingRules;
                        }
                        filtered = {};
                        $.each(argument.split(/\s/), function(index, method) {
                            filtered[method] = existingRules[method];
                            delete existingRules[method];
                            if (method === "required") {
                                $(element).removeAttr("aria-required");
                            }
                        });
                        return filtered;
                }
            }

            data = $.validator.normalizeRules(
                $.extend({},
                    $.validator.classRules(element),
                    $.validator.attributeRules(element),
                    $.validator.dataRules(element),
                    $.validator.staticRules(element)
                ),
                element
            );

            // make sure required is at front
            if (data.required) {
                param = data.required;
                delete data.required;
                data = $.extend({
                    required: param
                }, data);
                $(element).attr("aria-required", "true");
            }

            // make sure remote is at back
            if (data.remote) {
                param = data.remote;
                delete data.remote;
                data = $.extend(data, {
                    remote: param
                });
            }

            return data;
        }
    });

    // Custom selectors
    $.extend($.expr[":"], {
        // http://jqueryvalidation.org/blank-selector/
        blank: function(a) {
            return !$.trim("" + $(a).val());
        },
        // http://jqueryvalidation.org/filled-selector/
        filled: function(a) {
            return !!$.trim("" + $(a).val());
        },
        // http://jqueryvalidation.org/unchecked-selector/
        unchecked: function(a) {
            return !$(a).prop("checked");
        }
    });

    // constructor for validator
    $.validator = function(options, form) {
        this.settings = $.extend(true, {}, $.validator.defaults, options);
        this.currentForm = form;
        this.init();
    };

    // http://jqueryvalidation.org/jQuery.validator.format/
    $.validator.format = function(source, params) {
        if (arguments.length === 1) {
            return function() {
                var args = $.makeArray(arguments);
                args.unshift(source);
                return $.validator.format.apply(this, args);
            };
        }
        if (arguments.length > 2 && params.constructor !== Array) {
            params = $.makeArray(arguments).slice(1);
        }
        if (params.constructor !== Array) {
            params = [params];
        }
        $.each(params, function(i, n) {
            source = source.replace(
                new RegExp("\\{" + i + "\\}", "g"),
                function() {
                    return n;
                }
            );
        });
        return source;
    };

    $.extend($.validator, {
        defaults: {
            messages: {},
            groups: {},
            rules: {},
            errorClass: "error",
            validClass: "valid",
            errorElement: "label",
            focusCleanup: false,
            focusInvalid: true,
            errorContainer: $([]),
            errorLabelContainer: $([]),
            onsubmit: true,
            ignore: ":hidden",
            ignoreTitle: false,
            onfocusin: function(element) {
                this.lastActive = element;

                // Hide error label and remove error class on focus if enabled
                if (this.settings.focusCleanup) {
                    if (this.settings.unhighlight) {
                        this.settings.unhighlight.call(
                            this,
                            element,
                            this.settings.errorClass,
                            this.settings.validClass
                        );
                    }
                    this.hideThese(this.errorsFor(element));
                }
            },
            onfocusout: function(element) {
                if (!this.checkable(element) &&
                    (element.name in this.submitted || !this.optional(element))
                ) {
                    this.element(element);
                }
            },
            onkeyup: function(element, event) {
                // Avoid revalidate the field when pressing one of the following keys
                // Shift       => 16
                // Ctrl        => 17
                // Alt         => 18
                // Caps lock   => 20
                // End         => 35
                // Home        => 36
                // Left arrow  => 37
                // Up arrow    => 38
                // Right arrow => 39
                // Down arrow  => 40
                // Insert      => 45
                // Num lock    => 144
                // AltGr key   => 225
                var excludedKeys = [
                    16,
                    17,
                    18,
                    20,
                    35,
                    36,
                    37,
                    38,
                    39,
                    40,
                    45,
                    144,
                    225
                ];

                if (
                    (event.which === 9 && this.elementValue(element) === "") ||
                    $.inArray(event.keyCode, excludedKeys) !== -1
                ) {
                    return;
                } else if (
                    element.name in this.submitted ||
                    element === this.lastElement
                ) {
                    this.element(element);
                }
            },
            onclick: function(element) {
                // click on selects, radiobuttons and checkboxes
                if (element.name in this.submitted) {
                    this.element(element);

                    // or option elements, check parent select in that case
                } else if (element.parentNode.name in this.submitted) {
                    this.element(element.parentNode);
                }
            },
            highlight: function(element, errorClass, validClass) {
                if (element.type === "radio") {
                    this.findByName(element.name)
                        .addClass(errorClass)
                        .removeClass(validClass);
                } else {
                    $(element)
                        .addClass(errorClass)
                        .removeClass(validClass);
                }
            },
            unhighlight: function(element, errorClass, validClass) {
                if (element.type === "radio") {
                    this.findByName(element.name)
                        .removeClass(errorClass)
                        .addClass(validClass);
                } else {
                    $(element)
                        .removeClass(errorClass)
                        .addClass(validClass);
                }
            }
        },

        // http://jqueryvalidation.org/jQuery.validator.setDefaults/
        setDefaults: function(settings) {
            $.extend($.validator.defaults, settings);
        },

        messages: {
            required: "This field is required.",
            remote: "Please fix this field.",
            email: "Please enter a valid email address.",
            url: "Please enter a valid URL.",
            date: "Please enter a valid date.",
            dateISO: "Please enter a valid date ( ISO ).",
            number: "Please enter a valid number.",
            digits: "Please enter only digits.",
            creditcard: "Please enter a valid credit card number.",
            equalTo: "Please enter the same value again.",
            maxlength: $.validator.format(
                "Please enter no more than {0} characters."
            ),
            minlength: $.validator.format(
                "Please enter at least {0} characters."
            ),
            rangelength: $.validator.format(
                "Please enter a value between {0} and {1} characters long."
            ),
            range: $.validator.format(
                "Please enter a value between {0} and {1}."
            ),
            max: $.validator.format(
                "Please enter a value less than or equal to {0}."
            ),
            min: $.validator.format(
                "Please enter a value greater than or equal to {0}."
            )
        },

        autoCreateRanges: false,

        prototype: {
            init: function() {
                this.labelContainer = $(this.settings.errorLabelContainer);
                this.errorContext =
                    (this.labelContainer.length && this.labelContainer) ||
                    $(this.currentForm);
                this.containers = $(this.settings.errorContainer).add(
                    this.settings.errorLabelContainer
                );
                this.submitted = {};
                this.valueCache = {};
                this.pendingRequest = 0;
                this.pending = {};
                this.invalid = {};
                this.reset();

                var groups = (this.groups = {}),
                    rules;
                $.each(this.settings.groups, function(key, value) {
                    if (typeof value === "string") {
                        value = value.split(/\s/);
                    }
                    $.each(value, function(index, name) {
                        groups[name] = key;
                    });
                });
                rules = this.settings.rules;
                $.each(rules, function(key, value) {
                    rules[key] = $.validator.normalizeRule(value);
                });

                function delegate(event) {
                    var validator = $.data(this.form, "validator"),
                        eventType = "on" + event.type.replace(/^validate/, ""),
                        settings = validator.settings;
                    if (settings[eventType] && !$(this).is(settings.ignore)) {
                        settings[eventType].call(validator, this, event);
                    }
                }

                $(this.currentForm)
                    .on(
                        "focusin.validate focusout.validate keyup.validate",
                        ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " +
                        "[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " +
                        "[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " +
                        "[type='radio'], [type='checkbox']",
                        delegate
                    )
                    // Support: Chrome, oldIE
                    // "select" is provided as event.target when clicking a option
                    .on(
                        "click.validate",
                        "select, option, [type='radio'], [type='checkbox']",
                        delegate
                    );

                if (this.settings.invalidHandler) {
                    $(this.currentForm).on(
                        "invalid-form.validate",
                        this.settings.invalidHandler
                    );
                }

                // Add aria-required to any Static/Data/Class required fields before first validation
                // Screen readers require this attribute to be present before the initial submission http://www.w3.org/TR/WCAG-TECHS/ARIA2.html
                $(this.currentForm)
                    .find("[required], [data-rule-required], .required")
                    .attr("aria-required", "true");
            },

            // http://jqueryvalidation.org/Validator.form/
            form: function() {
                this.checkForm();
                $.extend(this.submitted, this.errorMap);
                this.invalid = $.extend({}, this.errorMap);
                if (!this.valid()) {
                    $(this.currentForm).triggerHandler("invalid-form", [this]);
                }
                this.showErrors();
                return this.valid();
            },

            checkForm: function() {
                this.prepareForm();
                for (
                    var i = 0,
                        elements = (this.currentElements = this.elements()); elements[i]; i++
                ) {
                    this.check(elements[i]);
                }
                return this.valid();
            },

            // http://jqueryvalidation.org/Validator.element/
            element: function(element) {
                var cleanElement = this.clean(element),
                    checkElement = this.validationTargetFor(cleanElement),
                    result = true;

                this.lastElement = checkElement;

                if (checkElement === undefined) {
                    delete this.invalid[cleanElement.name];
                } else {
                    this.prepareElement(checkElement);
                    this.currentElements = $(checkElement);

                    result = this.check(checkElement) !== false;
                    if (result) {
                        delete this.invalid[checkElement.name];
                    } else {
                        this.invalid[checkElement.name] = true;
                    }
                }
                // Add aria-invalid status for screen readers
                $(element).attr("aria-invalid", !result);

                if (!this.numberOfInvalids()) {
                    // Hide error containers on last error
                    this.toHide = this.toHide.add(this.containers);
                }
                this.showErrors();
                return result;
            },

            // http://jqueryvalidation.org/Validator.showErrors/
            showErrors: function(errors) {
                if (errors) {
                    // add items to error list and map
                    $.extend(this.errorMap, errors);
                    this.errorList = [];
                    for (var name in errors) {
                        this.errorList.push({
                            message: errors[name],
                            element: this.findByName(name)[0]
                        });
                    }
                    // remove items from success list
                    this.successList = $.grep(this.successList, function(
                        element
                    ) {
                        return !(element.name in errors);
                    });
                }
                if (this.settings.showErrors) {
                    this.settings.showErrors.call(
                        this,
                        this.errorMap,
                        this.errorList
                    );
                } else {
                    this.defaultShowErrors();
                }
            },

            // http://jqueryvalidation.org/Validator.resetForm/
            resetForm: function() {
                if ($.fn.resetForm) {
                    $(this.currentForm).resetForm();
                }
                this.submitted = {};
                this.lastElement = null;
                this.prepareForm();
                this.hideErrors();
                var i,
                    elements = this.elements()
                    .removeData("previousValue")
                    .removeAttr("aria-invalid");

                if (this.settings.unhighlight) {
                    for (i = 0; elements[i]; i++) {
                        this.settings.unhighlight.call(
                            this,
                            elements[i],
                            this.settings.errorClass,
                            ""
                        );
                    }
                } else {
                    elements.removeClass(this.settings.errorClass);
                }
            },

            numberOfInvalids: function() {
                return this.objectLength(this.invalid);
            },

            objectLength: function(obj) {
                /* jshint unused: false */
                var count = 0,
                    i;
                for (i in obj) {
                    count++;
                }
                return count;
            },

            hideErrors: function() {
                this.hideThese(this.toHide);
            },

            hideThese: function(errors) {
                errors.not(this.containers).text("");
                this.addWrapper(errors).hide();
            },

            valid: function() {
                return this.size() === 0;
            },

            size: function() {
                return this.errorList.length;
            },

            focusInvalid: function() {
                if (this.settings.focusInvalid) {
                    try {
                        $(
                                this.findLastActive() ||
                                (this.errorList.length &&
                                    this.errorList[0].element) ||
                                []
                            )
                            .filter(":visible")
                            .focus()
                            // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find
                            .trigger("focusin");
                    } catch (e) {
                        // ignore IE throwing errors when focusing hidden elements
                    }
                }
            },

            findLastActive: function() {
                var lastActive = this.lastActive;
                return (
                    lastActive &&
                    $.grep(this.errorList, function(n) {
                        return n.element.name === lastActive.name;
                    }).length === 1 &&
                    lastActive
                );
            },

            elements: function() {
                var validator = this,
                    rulesCache = {};

                // select all valid inputs inside the form (no submit or reset buttons)
                return $(this.currentForm)
                    .find("input, select, textarea")
                    .not(":submit, :reset, :image, :disabled")
                    .not(this.settings.ignore)
                    .filter(function() {
                        if (!this.name &&
                            validator.settings.debug &&
                            window.console
                        ) {
                            console.error("%o has no name assigned", this);
                        }

                        // select only the first element for each name, and only those with rules specified
                        if (
                            this.name in rulesCache ||
                            !validator.objectLength($(this).rules())
                        ) {
                            return false;
                        }

                        rulesCache[this.name] = true;
                        return true;
                    });
            },

            clean: function(selector) {
                return $(selector)[0];
            },

            errors: function() {
                var errorClass = this.settings.errorClass.split(" ").join(".");
                return $(
                    this.settings.errorElement + "." + errorClass,
                    this.errorContext
                );
            },

            reset: function() {
                this.successList = [];
                this.errorList = [];
                this.errorMap = {};
                this.toShow = $([]);
                this.toHide = $([]);
                this.currentElements = $([]);
            },

            prepareForm: function() {
                this.reset();
                this.toHide = this.errors().add(this.containers);
            },

            prepareElement: function(element) {
                this.reset();
                this.toHide = this.errorsFor(element);
            },

            elementValue: function(element) {
                var val,
                    $element = $(element),
                    type = element.type;

                if (type === "radio" || type === "checkbox") {
                    return this.findByName(element.name)
                        .filter(":checked")
                        .val();
                } else if (
                    type === "number" &&
                    typeof element.validity !== "undefined"
                ) {
                    return element.validity.badInput ? false : $element.val();
                }

                val = $element.val();
                if (typeof val === "string") {
                    return val.replace(/\r/g, "");
                }
                return val;
            },

            check: function(element) {
                element = this.validationTargetFor(this.clean(element));

                var rules = $(element).rules(),
                    rulesCount = $.map(rules, function(n, i) {
                        return i;
                    }).length,
                    dependencyMismatch = false,
                    val = this.elementValue(element),
                    result,
                    method,
                    rule;

                for (method in rules) {
                    rule = {
                        method: method,
                        parameters: rules[method]
                    };
                    try {
                        result = $.validator.methods[method].call(
                            this,
                            val,
                            element,
                            rule.parameters
                        );

                        // if a method indicates that the field is optional and therefore valid,
                        // don't mark it as valid when there are no other rules
                        if (
                            result === "dependency-mismatch" &&
                            rulesCount === 1
                        ) {
                            dependencyMismatch = true;
                            continue;
                        }
                        dependencyMismatch = false;

                        if (result === "pending") {
                            this.toHide = this.toHide.not(
                                this.errorsFor(element)
                            );
                            return;
                        }

                        if (!result) {
                            this.formatAndAdd(element, rule);
                            return false;
                        }
                    } catch (e) {
                        if (this.settings.debug && window.console) {
                            console.log(
                                "Exception occurred when checking element " +
                                element.id +
                                ", check the '" +
                                rule.method +
                                "' method.",
                                e
                            );
                        }
                        if (e instanceof TypeError) {
                            e.message +=
                                ".  Exception occurred when checking element " +
                                element.id +
                                ", check the '" +
                                rule.method +
                                "' method.";
                        }

                        throw e;
                    }
                }
                if (dependencyMismatch) {
                    return;
                }
                if (this.objectLength(rules)) {
                    this.successList.push(element);
                }
                return true;
            },

            // return the custom message for the given element and validation method
            // specified in the element's HTML5 data attribute
            // return the generic message if present and no method specific message is present
            customDataMessage: function(element, method) {
                return (
                    $(element).data(
                        "msg" +
                        method.charAt(0).toUpperCase() +
                        method.substring(1).toLowerCase()
                    ) || $(element).data("msg")
                );
            },

            // return the custom message for the given element name and validation method
            customMessage: function(name, method) {
                var m = this.settings.messages[name];
                return m && (m.constructor === String ? m : m[method]);
            },

            // return the first defined argument, allowing empty strings
            findDefined: function() {
                for (var i = 0; i < arguments.length; i++) {
                    if (arguments[i] !== undefined) {
                        return arguments[i];
                    }
                }
                return undefined;
            },

            defaultMessage: function(element, method) {
                return this.findDefined(
                    this.customMessage(element.name, method),
                    this.customDataMessage(element, method),
                    // title is never undefined, so handle empty string as undefined
                    (!this.settings.ignoreTitle && element.title) || undefined,
                    $.validator.messages[method],
                    "<strong>Warning: No message defined for " +
                    element.name +
                    "</strong>"
                );
            },

            formatAndAdd: function(element, rule) {
                var message = this.defaultMessage(element, rule.method),
                    theregex = /\$?\{(\d+)\}/g;
                if (typeof message === "function") {
                    message = message.call(this, rule.parameters, element);
                } else if (theregex.test(message)) {
                    message = $.validator.format(
                        message.replace(theregex, "{$1}"),
                        rule.parameters
                    );
                }
                this.errorList.push({
                    message: message,
                    element: element,
                    method: rule.method
                });

                this.errorMap[element.name] = message;
                this.submitted[element.name] = message;
            },

            addWrapper: function(toToggle) {
                if (this.settings.wrapper) {
                    toToggle = toToggle.add(
                        toToggle.parent(this.settings.wrapper)
                    );
                }
                return toToggle;
            },

            defaultShowErrors: function() {
                var i, elements, error;
                for (i = 0; this.errorList[i]; i++) {
                    error = this.errorList[i];
                    if (this.settings.highlight) {
                        this.settings.highlight.call(
                            this,
                            error.element,
                            this.settings.errorClass,
                            this.settings.validClass
                        );
                    }
                    this.showLabel(error.element, error.message);
                }
                if (this.errorList.length) {
                    this.toShow = this.toShow.add(this.containers);
                }
                if (this.settings.success) {
                    for (i = 0; this.successList[i]; i++) {
                        this.showLabel(this.successList[i]);
                    }
                }
                if (this.settings.unhighlight) {
                    for (
                        i = 0, elements = this.validElements(); elements[i]; i++
                    ) {
                        this.settings.unhighlight.call(
                            this,
                            elements[i],
                            this.settings.errorClass,
                            this.settings.validClass
                        );
                    }
                }
                this.toHide = this.toHide.not(this.toShow);
                this.hideErrors();
                this.addWrapper(this.toShow).show();
            },

            validElements: function() {
                return this.currentElements.not(this.invalidElements());
            },

            invalidElements: function() {
                return $(this.errorList).map(function() {
                    return this.element;
                });
            },

            showLabel: function(element, message) {
                var place,
                    group,
                    errorID,
                    error = this.errorsFor(element),
                    elementID = this.idOrName(element),
                    describedBy = $(element).attr("aria-describedby");
                if (error.length) {
                    // refresh error/success class
                    error
                        .removeClass(this.settings.validClass)
                        .addClass(this.settings.errorClass);
                    // replace message on existing label
                    error.html(message);
                } else {
                    // create error element
                    error = $("<" + this.settings.errorElement + ">")
                        .attr("id", elementID + "-error")
                        .addClass(this.settings.errorClass)
                        .html(message || "");

                    // Maintain reference to the element to be placed into the DOM
                    place = error;
                    if (this.settings.wrapper) {
                        // make sure the element is visible, even in IE
                        // actually showing the wrapped element is handled elsewhere
                        place = error
                            .hide()
                            .show()
                            .wrap("<" + this.settings.wrapper + "/>")
                            .parent();
                    }
                    if (this.labelContainer.length) {
                        this.labelContainer.append(place);
                    } else if (this.settings.errorPlacement) {
                        this.settings.errorPlacement(place, $(element));
                    } else {
                        place.insertAfter(element);
                    }

                    // Link error back to the element
                    if (error.is("label")) {
                        // If the error is a label, then associate using 'for'
                        error.attr("for", elementID);
                    } else if (
                        error.parents("label[for='" + elementID + "']")
                        .length === 0
                    ) {
                        // If the element is not a child of an associated label, then it's necessary
                        // to explicitly apply aria-describedby

                        errorID = error
                            .attr("id")
                            .replace(/(:|\.|\[|\]|\$)/g, "\\$1");
                        // Respect existing non-error aria-describedby
                        if (!describedBy) {
                            describedBy = errorID;
                        } else if (!describedBy.match(
                                new RegExp("\\b" + errorID + "\\b")
                            )) {
                            // Add to end of list if not already present
                            describedBy += " " + errorID;
                        }
                        $(element).attr("aria-describedby", describedBy);

                        // If this element is grouped, then assign to all elements in the same group
                        group = this.groups[element.name];
                        if (group) {
                            $.each(this.groups, function(name, testgroup) {
                                if (testgroup === group) {
                                    $(
                                        "[name='" + name + "']",
                                        this.currentForm
                                    ).attr(
                                        "aria-describedby",
                                        error.attr("id")
                                    );
                                }
                            });
                        }
                    }
                }
                if (!message && this.settings.success) {
                    error.text("");
                    if (typeof this.settings.success === "string") {
                        error.addClass(this.settings.success);
                    } else {
                        this.settings.success(error, element);
                    }
                }
                this.toShow = this.toShow.add(error);
            },

            errorsFor: function(element) {
                var name = this.idOrName(element),
                    describer = $(element).attr("aria-describedby"),
                    selector =
                    "label[for='" +
                    name +
                    "'], label[for='" +
                    name +
                    "'] *";

                // aria-describedby should directly reference the error element
                if (describer) {
                    selector =
                        selector + ", #" + describer.replace(/\s+/g, ", #");
                }
                return this.errors().filter(selector);
            },

            idOrName: function(element) {
                return (
                    this.groups[element.name] ||
                    (this.checkable(element) ? element.name : element.id || element.name)
                );
            },

            validationTargetFor: function(element) {
                // If radio/checkbox, validate first element in group instead
                if (this.checkable(element)) {
                    element = this.findByName(element.name);
                }

                // Always apply ignore filter
                return $(element).not(this.settings.ignore)[0];
            },

            checkable: function(element) {
                return /radio|checkbox/i.test(element.type);
            },

            findByName: function(name) {
                return $(this.currentForm).find("[name='" + name + "']");
            },

            getLength: function(value, element) {
                switch (element.nodeName.toLowerCase()) {
                    case "select":
                        return $("option:selected", element).length;
                    case "input":
                        if (this.checkable(element)) {
                            return this.findByName(element.name).filter(
                                ":checked"
                            ).length;
                        }
                }
                return value.length;
            },

            depend: function(param, element) {
                return this.dependTypes[typeof param] ? this.dependTypes[typeof param](param, element) : true;
            },

            dependTypes: {
                boolean: function(param) {
                    return param;
                },
                string: function(param, element) {
                    return !!$(param, element.form).length;
                },
                function: function(param, element) {
                    return param(element);
                }
            },

            optional: function(element) {
                var val = this.elementValue(element);
                return (!$.validator.methods.required.call(this, val, element) &&
                    "dependency-mismatch"
                );
            },

            startRequest: function(element) {
                if (!this.pending[element.name]) {
                    this.pendingRequest++;
                    this.pending[element.name] = true;
                }
            },

            stopRequest: function(element, valid) {
                this.pendingRequest--;
                // sometimes synchronization fails, make sure pendingRequest is never < 0
                if (this.pendingRequest < 0) {
                    this.pendingRequest = 0;
                }
                delete this.pending[element.name];
                if (
                    valid &&
                    this.pendingRequest === 0 &&
                    this.formSubmitted &&
                    this.form()
                ) {
                    $(this.currentForm).submit();
                    this.formSubmitted = false;
                } else if (!valid &&
                    this.pendingRequest === 0 &&
                    this.formSubmitted
                ) {
                    $(this.currentForm).triggerHandler("invalid-form", [this]);
                    this.formSubmitted = false;
                }
            },

            previousValue: function(element) {
                return (
                    $.data(element, "previousValue") ||
                    $.data(element, "previousValue", {
                        old: null,
                        valid: true,
                        message: this.defaultMessage(element, "remote")
                    })
                );
            },

            // cleans up all forms and elements, removes validator-specific events
            destroy: function() {
                this.resetForm();

                $(this.currentForm)
                    .off(".validate")
                    .removeData("validator");
            }
        },

        classRuleSettings: {
            required: {
                required: true
            },
            email: {
                email: true
            },
            url: {
                url: true
            },
            date: {
                date: true
            },
            dateISO: {
                dateISO: true
            },
            number: {
                number: true
            },
            digits: {
                digits: true
            },
            creditcard: {
                creditcard: true
            }
        },

        addClassRules: function(className, rules) {
            if (className.constructor === String) {
                this.classRuleSettings[className] = rules;
            } else {
                $.extend(this.classRuleSettings, className);
            }
        },

        classRules: function(element) {
            var rules = {},
                classes = $(element).attr("class");

            if (classes) {
                $.each(classes.split(" "), function() {
                    if (this in $.validator.classRuleSettings) {
                        $.extend(rules, $.validator.classRuleSettings[this]);
                    }
                });
            }
            return rules;
        },

        normalizeAttributeRule: function(rules, type, method, value) {
            // convert the value to a number for number inputs, and for text for backwards compability
            // allows type="date" and others to be compared as strings
            if (
                /min|max/.test(method) &&
                (type === null || /number|range|text/.test(type))
            ) {
                value = Number(value);

                // Support Opera Mini, which returns NaN for undefined minlength
                if (isNaN(value)) {
                    value = undefined;
                }
            }

            if (value || value === 0) {
                rules[method] = value;
            } else if (type === method && type !== "range") {
                // exception: the jquery validate 'range' method
                // does not test for the html5 'range' type
                rules[method] = true;
            }
        },

        attributeRules: function(element) {
            var rules = {},
                $element = $(element),
                type = element.getAttribute("type"),
                method,
                value;

            for (method in $.validator.methods) {
                // support for <input required> in both html5 and older browsers
                if (method === "required") {
                    value = element.getAttribute(method);

                    // Some browsers return an empty string for the required attribute
                    // and non-HTML5 browsers might have required="" markup
                    if (value === "") {
                        value = true;
                    }

                    // force non-HTML5 browsers to return bool
                    value = !!value;
                } else {
                    value = $element.attr(method);
                }

                this.normalizeAttributeRule(rules, type, method, value);
            }

            // maxlength may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs
            if (
                rules.maxlength &&
                /-1|2147483647|524288/.test(rules.maxlength)
            ) {
                delete rules.maxlength;
            }

            return rules;
        },

        dataRules: function(element) {
            var rules = {},
                $element = $(element),
                type = element.getAttribute("type"),
                method,
                value;

            for (method in $.validator.methods) {
                value = $element.data(
                    "rule" +
                    method.charAt(0).toUpperCase() +
                    method.substring(1).toLowerCase()
                );
                this.normalizeAttributeRule(rules, type, method, value);
            }
            return rules;
        },

        staticRules: function(element) {
            var rules = {},
                validator = $.data(element.form, "validator");

            if (validator.settings.rules) {
                rules =
                    $.validator.normalizeRule(
                        validator.settings.rules[element.name]
                    ) || {};
            }
            return rules;
        },

        normalizeRules: function(rules, element) {
            // handle dependency check
            $.each(rules, function(prop, val) {
                // ignore rule when param is explicitly false, eg. required:false
                if (val === false) {
                    delete rules[prop];
                    return;
                }
                if (val.param || val.depends) {
                    var keepRule = true;
                    switch (typeof val.depends) {
                        case "string":
                            keepRule = !!$(val.depends, element.form).length;
                            break;
                        case "function":
                            keepRule = val.depends.call(element, element);
                            break;
                    }
                    if (keepRule) {
                        rules[prop] =
                            val.param !== undefined ? val.param : true;
                    } else {
                        delete rules[prop];
                    }
                }
            });

            // evaluate parameters
            $.each(rules, function(rule, parameter) {
                rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter;
            });

            // clean number parameters
            $.each(["minlength", "maxlength"], function() {
                if (rules[this]) {
                    rules[this] = Number(rules[this]);
                }
            });
            $.each(["rangelength", "range"], function() {
                var parts;
                if (rules[this]) {
                    if ($.isArray(rules[this])) {
                        rules[this] = [
                            Number(rules[this][0]),
                            Number(rules[this][1])
                        ];
                    } else if (typeof rules[this] === "string") {
                        parts = rules[this]
                            .replace(/[\[\]]/g, "")
                            .split(/[\s,]+/);
                        rules[this] = [Number(parts[0]), Number(parts[1])];
                    }
                }
            });

            if ($.validator.autoCreateRanges) {
                // auto-create ranges
                if (rules.min != null && rules.max != null) {
                    rules.range = [rules.min, rules.max];
                    delete rules.min;
                    delete rules.max;
                }
                if (rules.minlength != null && rules.maxlength != null) {
                    rules.rangelength = [rules.minlength, rules.maxlength];
                    delete rules.minlength;
                    delete rules.maxlength;
                }
            }

            return rules;
        },

        // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}
        normalizeRule: function(data) {
            if (typeof data === "string") {
                var transformed = {};
                $.each(data.split(/\s/), function() {
                    transformed[this] = true;
                });
                data = transformed;
            }
            return data;
        },

        // http://jqueryvalidation.org/jQuery.validator.addMethod/
        addMethod: function(name, method, message) {
            $.validator.methods[name] = method;
            $.validator.messages[name] =
                message !== undefined ? message : $.validator.messages[name];
            if (method.length < 3) {
                $.validator.addClassRules(
                    name,
                    $.validator.normalizeRule(name)
                );
            }
        },

        methods: {
            // http://jqueryvalidation.org/required-method/
            required: function(value, element, param) {
                // check if dependency is met
                if (!this.depend(param, element)) {
                    return "dependency-mismatch";
                }
                if (element.nodeName.toLowerCase() === "select") {
                    // could be an array for select-multiple or a string, both are fine this way
                    var val = $(element).val();
                    return val && val.length > 0;
                }
                if (this.checkable(element)) {
                    return this.getLength(value, element) > 0;
                }
                return value.length > 0;
            },

            // http://jqueryvalidation.org/email-method/
            email: function(value, element) {
                // From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address
                // Retrieved 2014-01-14
                // If you have a problem with this implementation, report a bug against the above spec
                // Or use custom methods to implement your own email validation
                return (
                    this.optional(element) ||
                    /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(
                        value
                    )
                );
            },

            // http://jqueryvalidation.org/url-method/
            url: function(value, element) {
                // Copyright (c) 2010-2013 Diego Perini, MIT licensed
                // https://gist.github.com/dperini/729294
                // see also https://mathiasbynens.be/demo/url-regex
                // modified to allow protocol-relative URLs
                return (
                    this.optional(element) ||
                    /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(
                        value
                    )
                );
            },

            // http://jqueryvalidation.org/date-method/
            date: function(value, element) {
                return (
                    this.optional(element) ||
                    !/Invalid|NaN/.test(new Date(value).toString())
                );
            },

            // http://jqueryvalidation.org/dateISO-method/
            dateISO: function(value, element) {
                return (
                    this.optional(element) ||
                    /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(
                        value
                    )
                );
            },

            // http://jqueryvalidation.org/number-method/
            number: function(value, element) {
                return (
                    this.optional(element) ||
                    /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value)
                );
            },

            // http://jqueryvalidation.org/digits-method/
            digits: function(value, element) {
                return this.optional(element) || /^\d+$/.test(value);
            },

            // http://jqueryvalidation.org/creditcard-method/
            // based on http://en.wikipedia.org/wiki/Luhn_algorithm
            creditcard: function(value, element) {
                if (this.optional(element)) {
                    return "dependency-mismatch";
                }
                // accept only spaces, digits and dashes
                if (/[^0-9 \-]+/.test(value)) {
                    return false;
                }
                var nCheck = 0,
                    nDigit = 0,
                    bEven = false,
                    n,
                    cDigit;

                value = value.replace(/\D/g, "");

                // Basing min and max length on
                // http://developer.ean.com/general_info/Valid_Credit_Card_Types
                if (value.length < 13 || value.length > 19) {
                    return false;
                }

                for (n = value.length - 1; n >= 0; n--) {
                    cDigit = value.charAt(n);
                    nDigit = parseInt(cDigit, 10);
                    if (bEven) {
                        if ((nDigit *= 2) > 9) {
                            nDigit -= 9;
                        }
                    }
                    nCheck += nDigit;
                    bEven = !bEven;
                }

                return nCheck % 10 === 0;
            },

            // http://jqueryvalidation.org/minlength-method/
            minlength: function(value, element, param) {
                var length = $.isArray(value) ? value.length : this.getLength(value, element);
                return this.optional(element) || length >= param;
            },

            // http://jqueryvalidation.org/maxlength-method/
            maxlength: function(value, element, param) {
                var length = $.isArray(value) ? value.length : this.getLength(value, element);
                return this.optional(element) || length <= param;
            },

            // http://jqueryvalidation.org/rangelength-method/
            rangelength: function(value, element, param) {
                var length = $.isArray(value) ? value.length : this.getLength(value, element);
                return (
                    this.optional(element) ||
                    (length >= param[0] && length <= param[1])
                );
            },

            // http://jqueryvalidation.org/min-method/
            min: function(value, element, param) {
                return this.optional(element) || value >= param;
            },

            // http://jqueryvalidation.org/max-method/
            max: function(value, element, param) {
                return this.optional(element) || value <= param;
            },

            // http://jqueryvalidation.org/range-method/
            range: function(value, element, param) {
                return (
                    this.optional(element) ||
                    (value >= param[0] && value <= param[1])
                );
            },

            // http://jqueryvalidation.org/equalTo-method/
            equalTo: function(value, element, param) {
                // bind to the blur event of the target in order to revalidate whenever the target field is updated
                // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead
                var target = $(param);
                if (this.settings.onfocusout) {
                    target
                        .off(".validate-equalTo")
                        .on("blur.validate-equalTo", function() {
                            $(element).valid();
                        });
                }
                return value === target.val();
            },

            // http://jqueryvalidation.org/remote-method/
            remote: function(value, element, param) {
                if (this.optional(element)) {
                    return "dependency-mismatch";
                }

                var previous = this.previousValue(element),
                    validator,
                    data;

                if (!this.settings.messages[element.name]) {
                    this.settings.messages[element.name] = {};
                }
                previous.originalMessage = this.settings.messages[
                    element.name
                ].remote;
                this.settings.messages[element.name].remote = previous.message;

                param = (typeof param === "string" && {
                    url: param
                }) || param;

                if (previous.old === value) {
                    return previous.valid;
                }

                previous.old = value;
                validator = this;
                this.startRequest(element);
                data = {};
                data[element.name] = value;
                $.ajax(
                    $.extend(
                        true, {
                            mode: "abort",
                            port: "validate" + element.name,
                            dataType: "json",
                            data: data,
                            context: validator.currentForm,
                            success: function(response) {
                                var valid =
                                    response === true ||
                                    response === "true",
                                    errors,
                                    message,
                                    submitted;

                                validator.settings.messages[
                                    element.name
                                ].remote = previous.originalMessage;
                                if (valid) {
                                    submitted = validator.formSubmitted;
                                    validator.prepareElement(element);
                                    validator.formSubmitted = submitted;
                                    validator.successList.push(element);
                                    delete validator.invalid[element.name];
                                    validator.showErrors();
                                } else {
                                    errors = {};
                                    message =
                                        response ||
                                        validator.defaultMessage(
                                            element,
                                            "remote"
                                        );
                                    errors[
                                        element.name
                                    ] = previous.message = $.isFunction(message) ? message(value) : message;
                                    validator.invalid[element.name] = true;
                                    validator.showErrors(errors);
                                }
                                previous.valid = valid;
                                validator.stopRequest(element, valid);
                            }
                        },
                        param
                    )
                );
                return "pending";
            }
        }
    });

    // ajax mode: abort
    // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
    // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()

    var pendingRequests = {},
        ajax;
    // Use a prefilter if available (1.5+)
    if ($.ajaxPrefilter) {
        $.ajaxPrefilter(function(settings, _, xhr) {
            var port = settings.port;
            if (settings.mode === "abort") {
                if (pendingRequests[port]) {
                    pendingRequests[port].abort();
                }
                pendingRequests[port] = xhr;
            }
        });
    } else {
        // Proxy ajax
        ajax = $.ajax;
        $.ajax = function(settings) {
            var mode = ("mode" in settings ? settings : $.ajaxSettings).mode,
                port = ("port" in settings ? settings : $.ajaxSettings).port;
            if (mode === "abort") {
                if (pendingRequests[port]) {
                    pendingRequests[port].abort();
                }
                pendingRequests[port] = ajax.apply(this, arguments);
                return pendingRequests[port];
            }
            return ajax.apply(this, arguments);
        };
    }
});
#32 JavaScript::Eval (size: 2479) - SHA256: 1ebe67d4f1b2511bb305cb21cf82a1732ba6825fdd6fb22070c6b4a4fef4fc32
/**
 * Initiates an API call to verify the token given in de URL:
 * 1. Displays a spinner on processing
 * 2. Displays an error notification on THIS page when the requests fails (404, 500, etc.)
 * 3. Redirects to /mijnstart/ and displays the notification set by the backend
 */
var verifyEmail = moduleLoader(
    (function() {
        var verificationToken = general.getParameterByName("verificationToken");

        /**
         * Attach to window.onLoad to ensure SignalR is not triggering queued messages
         * to be displayed immediately.
         */
        function init() {
            if (
                window.location.pathname === "/mijnstart/verifieren/" &&
                verificationToken
            ) {
                bind();
            }
        }

        /**
         * Verify email address
         *
         * [1] Show spinner
         * [2] Request verification
         */
        function bind() {
            verify();
        }

        /**
         * Request verification
         *
         * [0] For single parameter endpoints, ASP.Net WebApi requires a plain string instead of an object
         * [1] Get URL from config.js
         * [2] Enable cross domain for local development
         * [3] Init ajax call
         * [4] Send notification on success
         * [5] Send notification(s) on error
         * [6] Something when done?
         */
        function verify() {
            var postUrl =
                configuration.account.apiUrlVerify +
                "?verificationToken=" +
                verificationToken,
                crossDomain = false; // Needed to identify modular level for notifications

            if (development) {
                crossDomain = true;
            }

            $.ajax({
                    async: true,
                    type: "POST",
                    url: postUrl,
                    crossDomain: crossDomain,
                    timeout: 5000
                })
                .done(function(data) {
                    redirectToAccount();
                })
                .fail(function(data) {
                    redirectToAccount();
                });
        }

        /**
         * Redirect like an HTTP redirect
         * @see: http://stackoverflow.com/a/506004
         */
        function redirectToAccount() {
            window.location.replace("/mijnstart/");
        }

        return {
            init: init,
            verify: verify
        };
    })()
);
#33 JavaScript::Eval (size: 152) - SHA256: d08bb3b401e8f642a749a83b0e08a71a9da78a06ecbf3c374a0d59cb14201e5e
(function() {
    return $("div.content-body a[href^\x3d'http:'], div.content-body a[href^\x3d'https:']").not("div.content-body [href*\x3d'kvk']").length
})();
#34 JavaScript::Eval (size: 99) - SHA256: 415b0efa22b2ec7d1d671e858492545478def868ec95e7607ddde1fbfa33c55a
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(23);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#35 JavaScript::Eval (size: 149) - SHA256: 78a527557d93c842ee7435880891df891c0bbfbff199b2e95bc673b6fec149f1
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(29),
        b = google_tag_manager["GTM-P2JD7J"].macro(30);
    return void 0 != a && void 0 != b ? "ja" : "nee"
})();
#36 JavaScript::Eval (size: 122) - SHA256: a53a10f5a13d3efe0e7df8005aa53583269a21cca724616aa40ef53d4f189ba9
(function() {
    try {
        var a = optimizely.variationIdsMap;
        if (Object.keys(a).length) return JSON.stringify(a)
    } catch (b) {
        return ""
    }
})();
#37 JavaScript::Eval (size: 99) - SHA256: f59c7ddc908cfdb8300b9e5a00df83cc98f3c13a62bea87d329f7587777f5f37
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(27);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#38 JavaScript::Eval (size: 426) - SHA256: 9600eccadf03528e3e1bf703d7c438311e62d3c01d6188d2d244395e24a3a284
(function() {
    return $('main.site-content a[href *\x3d"kvk.nl"], main.site-content a[href^\x3d"/"]').not('main.site-content .is-hidden a[href *\x3d"kvk.nl"], main.site-content .is-hidden a[href^\x3d"/"]').not('main.site-content #pageFooter a[href *\x3d"kvk.nl"], main.site-content #pageFooter a[href^\x3d"/"]').not('main.site-content .breadcrumb a[href *\x3d"kvk.nl"], main.site-content .breadcrumb a[href^\x3d"/"]').length
})();
#39 JavaScript::Eval (size: 99) - SHA256: 5c63f374edd4166e458669522f51ac69377bac5d10f49e4e3752deccf65ce9c6
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(22);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#40 JavaScript::Eval (size: 21462) - SHA256: 0fbc27704b82538fb2db2d8800eac3857bcd5fbf404de2db10e3cfa03eeaaf23
/*!
 * pickadate.js v3.5.6, 2015/04/20
 * By Amsul, http://amsul.ca
 * Hosted on http://amsul.github.io/pickadate.js
 * Licensed under MIT
 */
!(function(a) {
    "function" == typeof define && define.amd ? define("picker", ["jquery"], a) : "object" == typeof exports ? (module.exports = a(require("jquery"))) : (this.Picker = a(jQuery));
})(function(a) {
    function b(f, g, i, m) {
        function n() {
            return b._.node(
                "div",
                b._.node(
                    "div",
                    b._.node(
                        "div",
                        b._.node("div", B.component.nodes(w.open), y.box),
                        y.wrap
                    ),
                    y.frame
                ),
                y.holder,
                'tabindex="-1"'
            );
        }

        function o() {
            z
                .data(g, B)
                .addClass(y.input)
                .val(z.data("value") ? B.get("select", x.format) : f.value),
                x.editable ||
                z
                .on("focus." + w.id + " click." + w.id, function(a) {
                    a.preventDefault(), B.open();
                })
                .on("keydown." + w.id, u),
                e(f, {
                    haspopup: !0,
                    expanded: !1,
                    readonly: !1,
                    owns: f.id + "_root"
                });
        }

        function p() {
            e(B.$root[0], "hidden", !0);
        }

        function q() {
            B.$holder
                .on({
                    keydown: u,
                    "focus.toOpen": t,
                    blur: function() {
                        z.removeClass(y.target);
                    },
                    focusin: function(a) {
                        B.$root.removeClass(y.focused), a.stopPropagation();
                    },
                    "mousedown click": function(b) {
                        var c = b.target;
                        c != B.$holder[0] &&
                            (b.stopPropagation(),
                                "mousedown" != b.type ||
                                a(c).is(
                                    "input, select, textarea, button, option"
                                ) ||
                                (b.preventDefault(), B.$holder[0].focus()));
                    }
                })
                .on(
                    "click",
                    "[data-pick], [data-nav], [data-clear], [data-close]",
                    function() {
                        var b = a(this),
                            c = b.data(),
                            d =
                            b.hasClass(y.navDisabled) ||
                            b.hasClass(y.disabled),
                            e = h();
                        (e = e && (e.type || e.href)), (d || (e && !a.contains(B.$root[0], e))) &&
                        B.$holder[0].focus(), !d && c.nav ? B.set(
                            "highlight",
                            B.component.item.highlight, {
                                nav: c.nav
                            }
                        ) : !d && "pick" in c ? (B.set("select", c.pick),
                            x.closeOnSelect && B.close(!0)) : c.clear ? (B.clear(), x.closeOnClear && B.close(!0)) : c.close && B.close(!0);
                    }
                );
        }

        function r() {
            var b;
            x.hiddenName === !0 ? ((b = f.name), (f.name = "")) : ((b = [
                    "string" == typeof x.hiddenPrefix ? x.hiddenPrefix : "",
                    "string" == typeof x.hiddenSuffix ? x.hiddenSuffix : "_submit"
                ]), (b = b[0] + f.name + b[1])), (B._hidden = a(
                    '<input type=hidden name="' +
                    b +
                    '"' +
                    (z.data("value") || f.value ? ' value="' + B.get("select", x.formatSubmit) + '"' : "") +
                    ">"
                )[0]),
                z.on("change." + w.id, function() {
                    B._hidden.value = f.value ? B.get("select", x.formatSubmit) : "";
                });
        }

        function s() {
            v && l ? B.$holder
                .find("." + y.frame)
                .one("transitionend", function() {
                    B.$holder[0].focus();
                }) : B.$holder[0].focus();
        }

        function t(a) {
            a.stopPropagation(),
                z.addClass(y.target),
                B.$root.addClass(y.focused),
                B.open();
        }

        function u(a) {
            var b = a.keyCode,
                c = /^(8|46)$/.test(b);
            return 27 == b ? (B.close(!0), !1) : void(
                (32 == b || c || (!w.open && B.component.key[b])) &&
                (a.preventDefault(),
                    a.stopPropagation(),
                    c ? B.clear().close() : B.open())
            );
        }
        if (!f) return b;
        var v = !1,
            w = {
                id: f.id || "P" + Math.abs(~~(Math.random() * new Date()))
            },
            x = i ? a.extend(!0, {}, i.defaults, m) : m || {},
            y = a.extend({}, b.klasses(), x.klass),
            z = a(f),
            A = function() {
                return this.start();
            },
            B = (A.prototype = {
                constructor: A,
                $node: z,
                start: function() {
                    return w && w.start ? B : ((w.methods = {}), (w.start = !0), (w.open = !1), (w.type = f.type), (f.autofocus = f == h()), (f.readOnly = !x.editable), (f.id = f.id || w.id),
                        "text" != f.type && (f.type = "text"), (B.component = new i(B, x)), (B.$root = a(
                            '<div class="' +
                            y.picker +
                            '" id="' +
                            f.id +
                            '_root" />'
                        )),
                        p(), (B.$holder = a(n()).appendTo(B.$root)),
                        q(),
                        x.formatSubmit && r(),
                        o(),
                        x.containerHidden ? a(x.containerHidden).append(B._hidden) : z.after(B._hidden),
                        x.container ? a(x.container).append(B.$root) : z.after(B.$root),
                        B.on({
                            start: B.component.onStart,
                            render: B.component.onRender,
                            stop: B.component.onStop,
                            open: B.component.onOpen,
                            close: B.component.onClose,
                            set: B.component.onSet
                        }).on({
                            start: x.onStart,
                            render: x.onRender,
                            stop: x.onStop,
                            open: x.onOpen,
                            close: x.onClose,
                            set: x.onSet
                        }), (v = c(B.$holder[0])),
                        f.autofocus && B.open(),
                        B.trigger("start").trigger("render"));
                },
                render: function(b) {
                    return (
                        b ? ((B.$holder = a(n())),
                            q(),
                            B.$root.html(B.$holder)) : B.$root
                        .find("." + y.box)
                        .html(B.component.nodes(w.open)),
                        B.trigger("render")
                    );
                },
                stop: function() {
                    return w.start ? (B.close(),
                        B._hidden &&
                        B._hidden.parentNode.removeChild(B._hidden),
                        B.$root.remove(),
                        z.removeClass(y.input).removeData(g),
                        setTimeout(function() {
                            z.off("." + w.id);
                        }, 0), (f.type = w.type), (f.readOnly = !1),
                        B.trigger("stop"), (w.methods = {}), (w.start = !1),
                        B) : B;
                },
                open: function(c) {
                    return w.open ? B : (z.addClass(y.active),
                        e(f, "expanded", !0),
                        setTimeout(function() {
                            B.$root.addClass(y.opened),
                                e(B.$root[0], "hidden", !1);
                        }, 0),
                        c !== !1 &&
                        ((w.open = !0),
                            v &&
                            k
                            .css("overflow", "hidden")
                            .css("padding-right", "+=" + d()),
                            s(),
                            j
                            .on(
                                "click." + w.id + " focusin." + w.id,
                                function(a) {
                                    var b = a.target;
                                    b != f &&
                                        b != document &&
                                        3 != a.which &&
                                        B.close(b === B.$holder[0]);
                                }
                            )
                            .on("keydown." + w.id, function(c) {
                                var d = c.keyCode,
                                    e = B.component.key[d],
                                    f = c.target;
                                27 == d ? B.close(!0) : f != B.$holder[0] || (!e && 13 != d) ? a.contains(B.$root[0], f) &&
                                    13 == d &&
                                    (c.preventDefault(), f.click()) : (c.preventDefault(),
                                        e ? b._.trigger(
                                            B.component.key.go,
                                            B, [b._.trigger(e)]
                                        ) : B.$root
                                        .find("." + y.highlighted)
                                        .hasClass(y.disabled) ||
                                        (B.set(
                                                "select",
                                                B.component.item.highlight
                                            ),
                                            x.closeOnSelect &&
                                            B.close(!0)));
                            })),
                        B.trigger("open"));
                },
                close: function(a) {
                    return (
                        a &&
                        (x.editable ? f.focus() : (B.$holder.off("focus.toOpen").focus(),
                            setTimeout(function() {
                                B.$holder.on("focus.toOpen", t);
                            }, 0))),
                        z.removeClass(y.active),
                        e(f, "expanded", !1),
                        setTimeout(function() {
                            B.$root.removeClass(y.opened + " " + y.focused),
                                e(B.$root[0], "hidden", !0);
                        }, 0),
                        w.open ? ((w.open = !1),
                            v &&
                            k
                            .css("overflow", "")
                            .css("padding-right", "-=" + d()),
                            j.off("." + w.id),
                            B.trigger("close")) : B
                    );
                },
                clear: function(a) {
                    return B.set("clear", null, a);
                },
                set: function(b, c, d) {
                    var e,
                        f,
                        g = a.isPlainObject(b),
                        h = g ? b : {};
                    if (((d = g && a.isPlainObject(c) ? c : d || {}), b)) {
                        g || (h[b] = c);
                        for (e in h)
                            (f = h[e]),
                            e in B.component.item &&
                            (void 0 === f && (f = null),
                                B.component.set(e, f, d)), ("select" == e || "clear" == e) &&
                            z
                            .val(
                                "clear" == e ? "" : B.get(e, x.format)
                            )
                            .trigger("change");
                        B.render();
                    }
                    return d.muted ? B : B.trigger("set", h);
                },
                get: function(a, c) {
                    if (((a = a || "value"), null != w[a])) return w[a];
                    if ("valueSubmit" == a) {
                        if (B._hidden) return B._hidden.value;
                        a = "value";
                    }
                    if ("value" == a) return f.value;
                    if (a in B.component.item) {
                        if ("string" == typeof c) {
                            var d = B.component.get(a);
                            return d ? b._.trigger(
                                B.component.formats.toString,
                                B.component, [c, d]
                            ) : "";
                        }
                        return B.component.get(a);
                    }
                },
                on: function(b, c, d) {
                    var e,
                        f,
                        g = a.isPlainObject(b),
                        h = g ? b : {};
                    if (b) {
                        g || (h[b] = c);
                        for (e in h)
                            (f = h[e]),
                            d && (e = "_" + e), (w.methods[e] = w.methods[e] || []),
                            w.methods[e].push(f);
                    }
                    return B;
                },
                off: function() {
                    var a,
                        b,
                        c = arguments;
                    for (a = 0, namesCount = c.length; a < namesCount; a += 1)
                        (b = c[a]), b in w.methods && delete w.methods[b];
                    return B;
                },
                trigger: function(a, c) {
                    var d = function(a) {
                        var d = w.methods[a];
                        d &&
                            d.map(function(a) {
                                b._.trigger(a, B, [c]);
                            });
                    };
                    return d("_" + a), d(a), B;
                }
            });
        return new A();
    }

    function c(a) {
        var b,
            c = "position";
        return (
            a.currentStyle ? (b = a.currentStyle[c]) : window.getComputedStyle && (b = getComputedStyle(a)[c]),
            "fixed" == b
        );
    }

    function d() {
        if (k.height() <= i.height()) return 0;
        var b = a('<div style="visibility:hidden;width:100px" />').appendTo(
                "body"
            ),
            c = b[0].offsetWidth;
        b.css("overflow", "scroll");
        var d = a('<div style="width:100%" />').appendTo(b),
            e = d[0].offsetWidth;
        return b.remove(), c - e;
    }

    function e(b, c, d) {
        if (a.isPlainObject(c))
            for (var e in c) f(b, e, c[e]);
        else f(b, c, d);
    }

    function f(a, b, c) {
        a.setAttribute(("role" == b ? "" : "aria-") + b, c);
    }

    function g(b, c) {
        a.isPlainObject(b) || (b = {
            attribute: c
        }), (c = "");
        for (var d in b) {
            var e = ("role" == d ? "" : "aria-") + d,
                f = b[d];
            c += null == f ? "" : e + '="' + b[d] + '"';
        }
        return c;
    }

    function h() {
        try {
            return document.activeElement;
        } catch (a) {}
    }
    var i = a(window),
        j = a(document),
        k = a(document.documentElement),
        l = null != document.documentElement.style.transition;
    return (
        (b.klasses = function(a) {
            return (
                (a = a || "picker"), {
                    picker: a,
                    opened: a + "--opened",
                    focused: a + "--focused",
                    input: a + "__input",
                    active: a + "__input--active",
                    target: a + "__input--target",
                    holder: a + "__holder",
                    frame: a + "__frame",
                    wrap: a + "__wrap",
                    box: a + "__box"
                }
            );
        }), (b._ = {
            group: function(a) {
                for (
                    var c, d = "", e = b._.trigger(a.min, a); e <= b._.trigger(a.max, a, [e]); e += a.i
                )
                    (c = b._.trigger(a.item, a, [e])), (d += b._.node(a.node, c[0], c[1], c[2]));
                return d;
            },
            node: function(b, c, d, e) {
                return c ? ((c = a.isArray(c) ? c.join("") : c), (d = d ? ' class="' + d + '"' : ""), (e = e ? " " + e : ""),
                    "<" + b + d + e + ">" + c + "</" + b + ">") : "";
            },
            lead: function(a) {
                return (10 > a ? "0" : "") + a;
            },
            trigger: function(a, b, c) {
                return "function" == typeof a ? a.apply(b, c || []) : a;
            },
            digits: function(a) {
                return /\d/.test(a[1]) ? 2 : 1;
            },
            isDate: function(a) {
                return ({}.toString.call(a).indexOf("Date") > -1 &&
                    this.isInteger(a.getDate())
                );
            },
            isInteger: function(a) {
                return ({}.toString.call(a).indexOf("Number") > -1 && a % 1 === 0);
            },
            ariaAttr: g
        }), (b.extend = function(c, d) {
            (a.fn[c] = function(e, f) {
                var g = this.data(c);
                return "picker" == e ? g : g && "string" == typeof e ? b._.trigger(g[e], g, [f]) : this.each(function() {
                    var f = a(this);
                    f.data(c) || new b(this, c, d, e);
                });
            }), (a.fn[c].defaults = d.defaults);
        }),
        b
    );
});
#41 JavaScript::Eval (size: 2255) - SHA256: d1d1c5671469bb00a57eeec4d22393ac48adaf0c77a94e4ba5d8714f45975535
var logoutMijnKvk = moduleLoader(
    (function() {
        var cookieName = "logoutStatus",
            inProgress = "inProgress";

        function init() {
            bind();
            checkLogoutStatus();
        }

        function bind() {
            bindLogoutLink();
        }

        function bindLogoutLink() {
            var $logoutLink = $(".js-logout-mijnkvk");

            if ($logoutLink.length > 0) {
                $logoutLink.on("click", function(e) {
                    setLogoutCookie();
                });
            }
        }

        function checkLogoutStatus() {
            if (logoutIsInProgress()) {
                logoutSuccesful();
            }
        }

        function logoutSuccesful() {
            showLogoutNotification();
            removeLogoutCookie();
        }

        function showLogoutNotification() {
            var logoutMessage = "Je bent uitgelogd.";

            var notification = {
                message: logoutMessage,
                position: {
                    header: "old"
                },
                type: "success"
            };

            var notifications = [notification];

            notify.handle(notifications);
        }

        function setLogoutCookie() {
            // set the cookie for 30 minutes because a user won't understand
            // the notification "you are logged out" if he sees it the next day
            var minutes = 30;
            var date = new Date();
            date.setTime(date.getTime() + minutes * 60 * 1000);

            $.cookie(cookieName, "inProgress", {
                expires: date,
                path: "/",
                domain: configuration.cookies.cookieDomain,
                secure: configuration.cookies.secureCookies
            });
        }

        function logoutIsInProgress() {
            var cookieValue = $.cookie(cookieName);
            return cookieValue === inProgress;
        }

        function removeLogoutCookie() {
            $.removeCookie(cookieName, {
                path: "/",
                domain: configuration.cookies.cookieDomain
            });
        }

        return {
            init: init,
            setLogoutCookie: setLogoutCookie
        };
    })()
);
#42 JavaScript::Eval (size: 149) - SHA256: c0062fa57a11ec7b1765c351b34a2326cf862c3ca5fefca369e20e520e3b4d9e
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(11),
        b = google_tag_manager["GTM-P2JD7J"].macro(12);
    return void 0 != a && void 0 != b ? "ja" : "nee"
})();
#43 JavaScript::Eval (size: 6571) - SHA256: fe178df9b5086505ec3db66ccad59cb48ee31f9293044b2ec75ce0da166ab901
/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 */

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing["jswing"] = jQuery.easing["swing"];

jQuery.extend(jQuery.easing, {
    def: "easeOutQuad",
    swing: function(x, t, b, c, d) {
        //alert(jQuery.easing.default);
        return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
    },
    easeInQuad: function(x, t, b, c, d) {
        return c * (t /= d) * t + b;
    },
    easeOutQuad: function(x, t, b, c, d) {
        return -c * (t /= d) * (t - 2) + b;
    },
    easeInOutQuad: function(x, t, b, c, d) {
        if ((t /= d / 2) < 1) return (c / 2) * t * t + b;
        return (-c / 2) * (--t * (t - 2) - 1) + b;
    },
    easeInCubic: function(x, t, b, c, d) {
        return c * (t /= d) * t * t + b;
    },
    easeOutCubic: function(x, t, b, c, d) {
        return c * ((t = t / d - 1) * t * t + 1) + b;
    },
    easeInOutCubic: function(x, t, b, c, d) {
        if ((t /= d / 2) < 1) return (c / 2) * t * t * t + b;
        return (c / 2) * ((t -= 2) * t * t + 2) + b;
    },
    easeInQuart: function(x, t, b, c, d) {
        return c * (t /= d) * t * t * t + b;
    },
    easeOutQuart: function(x, t, b, c, d) {
        return -c * ((t = t / d - 1) * t * t * t - 1) + b;
    },
    easeInOutQuart: function(x, t, b, c, d) {
        if ((t /= d / 2) < 1) return (c / 2) * t * t * t * t + b;
        return (-c / 2) * ((t -= 2) * t * t * t - 2) + b;
    },
    easeInQuint: function(x, t, b, c, d) {
        return c * (t /= d) * t * t * t * t + b;
    },
    easeOutQuint: function(x, t, b, c, d) {
        return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
    },
    easeInOutQuint: function(x, t, b, c, d) {
        if ((t /= d / 2) < 1) return (c / 2) * t * t * t * t * t + b;
        return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;
    },
    easeInSine: function(x, t, b, c, d) {
        return -c * Math.cos((t / d) * (Math.PI / 2)) + c + b;
    },
    easeOutSine: function(x, t, b, c, d) {
        return c * Math.sin((t / d) * (Math.PI / 2)) + b;
    },
    easeInOutSine: function(x, t, b, c, d) {
        return (-c / 2) * (Math.cos((Math.PI * t) / d) - 1) + b;
    },
    easeInExpo: function(x, t, b, c, d) {
        return t == 0 ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
    },
    easeOutExpo: function(x, t, b, c, d) {
        return t == d ? b + c : c * (-Math.pow(2, (-10 * t) / d) + 1) + b;
    },
    easeInOutExpo: function(x, t, b, c, d) {
        if (t == 0) return b;
        if (t == d) return b + c;
        if ((t /= d / 2) < 1) return (c / 2) * Math.pow(2, 10 * (t - 1)) + b;
        return (c / 2) * (-Math.pow(2, -10 * --t) + 2) + b;
    },
    easeInCirc: function(x, t, b, c, d) {
        return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
    },
    easeOutCirc: function(x, t, b, c, d) {
        return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
    },
    easeInOutCirc: function(x, t, b, c, d) {
        if ((t /= d / 2) < 1) return (-c / 2) * (Math.sqrt(1 - t * t) - 1) + b;
        return (c / 2) * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
    },
    easeInElastic: function(x, t, b, c, d) {
        var s = 1.70158;
        var p = 0;
        var a = c;
        if (t == 0) return b;
        if ((t /= d) == 1) return b + c;
        if (!p) p = d * 0.3;
        if (a < Math.abs(c)) {
            a = c;
            var s = p / 4;
        } else var s = (p / (2 * Math.PI)) * Math.asin(c / a);
        return (-(
            a *
            Math.pow(2, 10 * (t -= 1)) *
            Math.sin(((t * d - s) * (2 * Math.PI)) / p)
        ) + b);
    },
    easeOutElastic: function(x, t, b, c, d) {
        var s = 1.70158;
        var p = 0;
        var a = c;
        if (t == 0) return b;
        if ((t /= d) == 1) return b + c;
        if (!p) p = d * 0.3;
        if (a < Math.abs(c)) {
            a = c;
            var s = p / 4;
        } else var s = (p / (2 * Math.PI)) * Math.asin(c / a);
        return (
            a *
            Math.pow(2, -10 * t) *
            Math.sin(((t * d - s) * (2 * Math.PI)) / p) +
            c +
            b
        );
    },
    easeInOutElastic: function(x, t, b, c, d) {
        var s = 1.70158;
        var p = 0;
        var a = c;
        if (t == 0) return b;
        if ((t /= d / 2) == 2) return b + c;
        if (!p) p = d * (0.3 * 1.5);
        if (a < Math.abs(c)) {
            a = c;
            var s = p / 4;
        } else var s = (p / (2 * Math.PI)) * Math.asin(c / a);
        if (t < 1)
            return (-0.5 *
                (a *
                    Math.pow(2, 10 * (t -= 1)) *
                    Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +
                b
            );
        return (
            a *
            Math.pow(2, -10 * (t -= 1)) *
            Math.sin(((t * d - s) * (2 * Math.PI)) / p) *
            0.5 +
            c +
            b
        );
    },
    easeInBack: function(x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158;
        return c * (t /= d) * t * ((s + 1) * t - s) + b;
    },
    easeOutBack: function(x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158;
        return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
    },
    easeInOutBack: function(x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158;
        if ((t /= d / 2) < 1)
            return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;
        return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;
    },
    easeInBounce: function(x, t, b, c, d) {
        return c - jQuery.easing.easeOutBounce(x, d - t, 0, c, d) + b;
    },
    easeOutBounce: function(x, t, b, c, d) {
        if ((t /= d) < 1 / 2.75) {
            return c * (7.5625 * t * t) + b;
        } else if (t < 2 / 2.75) {
            return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;
        } else if (t < 2.5 / 2.75) {
            return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;
        } else {
            return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;
        }
    },
    easeInOutBounce: function(x, t, b, c, d) {
        if (t < d / 2)
            return jQuery.easing.easeInBounce(x, t * 2, 0, c, d) * 0.5 + b;
        return (
            jQuery.easing.easeOutBounce(x, t * 2 - d, 0, c, d) * 0.5 +
            c * 0.5 +
            b
        );
    }
});
#44 JavaScript::Eval (size: 1569) - SHA256: dee73d784126b0d8faf372d982967ca5f3871a9810888225091f8810175b345c
(function() {
    return function(c) {
        try {
            var h = [{
                    name: "EMAIL",
                    regex: /.{5}@.{5}/g,
                    group: ""
                }, {
                    name: "SELF-EMAIL",
                    regex: /[^\/]{4}(@|%40)(?=kvk\.nl)[^\/]{4}/gi,
                    group: ""
                }, {
                    name: "ADDRESS",
                    regex: /((adres=)|(straat=)|(address=)|(huisnummer=)|(street=))[^&\/\?]+/gi,
                    group: "$1"
                }, {
                    name: "TEL",
                    regex: /((tel=)|(telephone=)|(phone=)|(mobile=)|(mob=)|(telefoonnummer=))[\d\+\s][^&\/\?]+/gi,
                    group: "$1"
                }, {
                    name: "NAME",
                    regex: /((firstname=)|(lastname=)|(surname=)|(naam=)|(voornaam=)|(achternaam=)|(username=)|(userName=)|(gebruikersnaam=)|(userid=)|(toegangscode=)|(tussenvoegsel=)|(voorletters=)|(geslacht=)|(firstName=))[^&\/\?]+/gi,
                    group: "$1"
                }, {
                    name: "PASSWORD",
                    regex: /((password=)|(passwd=)|(pass=)|(wachtwoord=)|(ww=)|(passwordResetToken=))[^&\/\?]+/gi,
                    group: "$1"
                }, {
                    name: "POTENTIAL_PII_REFERRAL",
                    regex: /((ref=))[^&\/\?]+/gi,
                    group: "$1"
                }, {
                    name: "POTENTIAL_PII_INFO",
                    regex: /.{5}STRAATHNR.{5}/g,
                    group: "$1"
                }, {
                    name: "ZIPORADDRESS",
                    regex: /((postcode=)|(zipcode=)|(zip=)|(straat=)|(plaats=)|(huisnummer=)|(PCPLAATS=)|(STRAATHNR=)|(UTT=)|(nladdresszip=)|(nladdressstreet=))[^&\/\?@]+/gi,
                    group: "$1"
                }],
                k = c.get("sendHitTask"),
                g, b;
            c.set("sendHitTask",
                function(d) {
                    g = c.get("hitPayload");
                    b = g.replace(/(^\?)/, "").split("\x26").map(function(a) {
                        return a = a.split("\x3d"), this[a[0]] = a[1], this
                    }.bind({}))[0];
                    for (var e in b) {
                        var f = decodeURIComponent(b[e]);
                        h.forEach(function(a) {
                            f.match(a.regex) && (b[e] = encodeURIComponent(f.replace(a.regex, a.group + "[BLOCKED " + a.name + "]")), f = decodeURIComponent(b[e]))
                        })
                    }
                    d.set("hitPayload", Object.keys(b).map(function(a) {
                        return a + "\x3d" + b[a]
                    }).join("\x26"), !0);
                    k(d)
                })
        } catch (d) {}
    }
})();
#45 JavaScript::Eval (size: 103) - SHA256: e1585b989f81ef6cf307422ec3b812af22f8fe900eb5dfcd71f7a1a4b21676a0
(function() {
    return $('div.content-body [href *\x3d"kvk"], div.content-body [href^\x3d"/"]').length
})();
#46 JavaScript::Eval (size: 10611) - SHA256: de0a35b26ca6ce9ec618666bcd106734697146e426e9fa21f2f877c326dceb9c
/*! modernizr 3.3.1 (Custom Build) | MIT *
 * https://modernizr.com/download/?-borderradius-flexbox-flexboxlegacy-fullscreen-svg-domprefixes-mq-prefixes-setclasses-testallprops-testprop-teststyles !*/
!(function(e, n, t) {
    function r(e, n) {
        return typeof e === n;
    }

    function o() {
        var e, n, t, o, s, i, a;
        for (var l in x)
            if (x.hasOwnProperty(l)) {
                if (
                    ((e = []), (n = x[l]),
                        n.name &&
                        (e.push(n.name.toLowerCase()),
                            n.options &&
                            n.options.aliases &&
                            n.options.aliases.length))
                )
                    for (t = 0; t < n.options.aliases.length; t++)
                        e.push(n.options.aliases[t].toLowerCase());
                for (
                    o = r(n.fn, "function") ? n.fn() : n.fn, s = 0; s < e.length; s++
                )
                    (i = e[s]), (a = i.split(".")),
                    1 === a.length ? (Modernizr[a[0]] = o) : (!Modernizr[a[0]] ||
                        Modernizr[a[0]] instanceof Boolean ||
                        (Modernizr[a[0]] = new Boolean(
                            Modernizr[a[0]]
                        )), (Modernizr[a[0]][a[1]] = o)),
                    y.push((o ? "" : "no-") + a.join("-"));
            }
    }

    function s(e) {
        var n = w.className,
            t = Modernizr._config.classPrefix || "";
        if ((_ && (n = n.baseVal), Modernizr._config.enableJSClass)) {
            var r = new RegExp("(^|\\s)" + t + "no-js(\\s|$)");
            n = n.replace(r, "$1" + t + "js$2");
        }
        Modernizr._config.enableClasses &&
            ((n += " " + t + e.join(" " + t)),
                _ ? (w.className.baseVal = n) : (w.className = n));
    }

    function i() {
        return "function" != typeof n.createElement ? n.createElement(arguments[0]) : _ ? n.createElementNS.call(
            n,
            "http://www.w3.org/2000/svg",
            arguments[0]
        ) : n.createElement.apply(n, arguments);
    }

    function a() {
        var e = n.body;
        return e || ((e = i(_ ? "svg" : "body")), (e.fake = !0)), e;
    }

    function l(e, t, r, o) {
        var s,
            l,
            f,
            u,
            d = "modernizr",
            c = i("div"),
            p = a();
        if (parseInt(r, 10))
            for (; r--;)
                (f = i("div")), (f.id = o ? o[r] : d + (r + 1)),
                c.appendChild(f);
        return (
            (s = i("style")), (s.type = "text/css"), (s.id = "s" + d), (p.fake ? p : c).appendChild(s),
            p.appendChild(c),
            s.styleSheet ? (s.styleSheet.cssText = e) : s.appendChild(n.createTextNode(e)), (c.id = d),
            p.fake &&
            ((p.style.background = ""), (p.style.overflow = "hidden"), (u = w.style.overflow), (w.style.overflow = "hidden"),
                w.appendChild(p)), (l = t(c, e)),
            p.fake ? (p.parentNode.removeChild(p), (w.style.overflow = u),
                w.offsetHeight) : c.parentNode.removeChild(c), !!l
        );
    }

    function f(e, n) {
        return !!~("" + e).indexOf(n);
    }

    function u(e) {
        return e
            .replace(/([a-z])-([a-z])/g, function(e, n, t) {
                return n + t.toUpperCase();
            })
            .replace(/^-/, "");
    }

    function d(e, n) {
        return function() {
            return e.apply(n, arguments);
        };
    }

    function c(e, n, t) {
        var o;
        for (var s in e)
            if (e[s] in n)
                return t === !1 ? e[s] : ((o = n[e[s]]), r(o, "function") ? d(o, t || n) : o);
        return !1;
    }

    function p(e) {
        return e
            .replace(/([A-Z])/g, function(e, n) {
                return "-" + n.toLowerCase();
            })
            .replace(/^ms-/, "-ms-");
    }

    function m(n, r) {
        var o = n.length;
        if ("CSS" in e && "supports" in e.CSS) {
            for (; o--;)
                if (e.CSS.supports(p(n[o]), r)) return !0;
            return !1;
        }
        if ("CSSSupportsRule" in e) {
            for (var s = []; o--;) s.push("(" + p(n[o]) + ":" + r + ")");
            return (
                (s = s.join(" or ")),
                l(
                    "@supports (" +
                    s +
                    ") { #modernizr { position: absolute; } }",
                    function(e) {
                        return "absolute" == getComputedStyle(e, null).position;
                    }
                )
            );
        }
        return t;
    }

    function v(e, n, o, s) {
        function a() {
            d && (delete R.style, delete R.modElem);
        }
        if (((s = r(s, "undefined") ? !1 : s), !r(o, "undefined"))) {
            var l = m(e, o);
            if (!r(l, "undefined")) return l;
        }
        for (
            var d, c, p, v, g, h = ["modernizr", "tspan", "samp"]; !R.style && h.length;

        )
            (d = !0), (R.modElem = i(h.shift())), (R.style = R.modElem.style);
        for (p = e.length, c = 0; p > c; c++)
            if (
                ((v = e[c]), (g = R.style[v]),
                    f(v, "-") && (v = u(v)),
                    R.style[v] !== t)
            ) {
                if (s || r(o, "undefined")) return a(), "pfx" == n ? v : !0;
                try {
                    R.style[v] = o;
                } catch (y) {}
                if (R.style[v] != g) return a(), "pfx" == n ? v : !0;
            }
        return a(), !1;
    }

    function g(e, n, t, o, s) {
        var i = e.charAt(0).toUpperCase() + e.slice(1),
            a = (e + " " + T.join(i + " ") + i).split(" ");
        return r(n, "string") || r(n, "undefined") ? v(a, n, o, s) : ((a = (e + " " + E.join(i + " ") + i).split(" ")), c(a, n, t));
    }

    function h(e, n, r) {
        return g(e, t, t, n, r);
    }
    var y = [],
        x = [],
        C = {
            _version: "3.3.1",
            _config: {
                classPrefix: "",
                enableClasses: !0,
                enableJSClass: !0,
                usePrefixes: !0
            },
            _q: [],
            on: function(e, n) {
                var t = this;
                setTimeout(function() {
                    n(t[e]);
                }, 0);
            },
            addTest: function(e, n, t) {
                x.push({
                    name: e,
                    fn: n,
                    options: t
                });
            },
            addAsyncTest: function(e) {
                x.push({
                    name: null,
                    fn: e
                });
            }
        },
        Modernizr = function() {};
    (Modernizr.prototype = C), (Modernizr = new Modernizr()),
    Modernizr.addTest(
        "svg", !!n.createElementNS &&
        !!n.createElementNS("http://www.w3.org/2000/svg", "svg")
        .createSVGRect
    );
    var S = C._config.usePrefixes ? " -webkit- -moz- -o- -ms- ".split(" ") : ["", ""];
    C._prefixes = S;
    var w = n.documentElement,
        _ = "svg" === w.nodeName.toLowerCase(),
        b = "Moz O ms Webkit",
        E = C._config.usePrefixes ? b.toLowerCase().split(" ") : [];
    C._domPrefixes = E;
    var P = (function() {
        var n = e.matchMedia || e.msMatchMedia;
        return n ? function(e) {
            var t = n(e);
            return (t && t.matches) || !1;
        } : function(n) {
            var t = !1;
            return (
                l(
                    "@media " +
                    n +
                    " { #modernizr { position: absolute; } }",
                    function(n) {
                        t =
                            "absolute" ==
                            (e.getComputedStyle ? e.getComputedStyle(n, null) : n.currentStyle).position;
                    }
                ),
                t
            );
        };
    })();
    C.mq = P;
    var T = ((C.testStyles = l), C._config.usePrefixes ? b.split(" ") : []);
    C._cssomPrefixes = T;
    var z = function(n) {
        var r,
            o = S.length,
            s = e.CSSRule;
        if ("undefined" == typeof s) return t;
        if (!n) return !1;
        if (
            ((n = n.replace(/^@/, "")), (r = n.replace(/-/g, "_").toUpperCase() + "_RULE"),
                r in s)
        )
            return "@" + n;
        for (var i = 0; o > i; i++) {
            var a = S[i],
                l = a.toUpperCase() + "_" + r;
            if (l in s) return "@-" + a.toLowerCase() + "-" + n;
        }
        return !1;
    };
    C.atRule = z;
    var N = {
        elem: i("modernizr")
    };
    Modernizr._q.push(function() {
        delete N.elem;
    });
    var R = {
        style: N.elem.style
    };
    Modernizr._q.unshift(function() {
        delete R.style;
    });
    C.testProp = function(e, n, r) {
        return v([e], t, n, r);
    };
    (C.testAllProps = g), (C.testAllProps = h),
    Modernizr.addTest("borderradius", h("borderRadius", "0px", !0)),
        Modernizr.addTest("flexbox", h("flexBasis", "1px", !0)),
        Modernizr.addTest("flexboxlegacy", h("boxDirection", "reverse", !0));
    var j = (C.prefixed = function(e, n, t) {
        return 0 === e.indexOf("@") ? z(e) : (-1 != e.indexOf("-") && (e = u(e)),
            n ? g(e, n, t) : g(e, "pfx"));
    });
    Modernizr.addTest(
            "fullscreen", !(!j("exitFullscreen", n, !1) && !j("cancelFullScreen", n, !1))
        ),
        o(),
        s(y),
        delete C.addTest,
        delete C.addAsyncTest;
    for (var k = 0; k < Modernizr._q.length; k++) Modernizr._q[k]();
    e.Modernizr = Modernizr;
})(window, document);
#47 JavaScript::Eval (size: 3770) - SHA256: 1234595454a5680e5b60e1ab94fad0d8f1ea58f97e343c19efe814d68407c6dc
var dynamicForm = moduleLoader(
    (function() {


        var $dynamicForm = $(".js-dynamic-form");

        function init() {
            if ($dynamicForm.length !== 1) {
                return;
            }

            // this is so we can remove the error-classes and validation for text-input with radios, like radio with euro-box in Volmacht.
            // when one clicks on the other radio, React doesnt know they belong together, and thus doesnt respond to the 'onchange' for the radio with text.
            // therefore we need to manually remove the validation
            $dynamicForm.on("click", ".js-group-has-text", function() {
                var $this = $(this),
                    parentid = $this.find("input").data("parentid"),
                    $textInputs = $dynamicForm.find(
                        ".js-text-group-" + parentid
                    );

                $textInputs.each(function(index, item) {
                    var $textInput = $(item);
                    $textInput.removeClass("error");
                    $textInput
                        .parents()
                        .find("span.error")
                        .remove();
                });
            });

            $dynamicForm.on("click", ".js-max-selection", checkMaxSelection);
        }

        // when clicked on a element with this class, it searches for other elements with this group name.
        // it checks for a maximum on selected items in this group, and disables all other elements in the group when the max number is hit.
        // first made for the checkbox in formulier Handelsnaam (Ondernemingsgegevens), to max the choice for a primaire handelsnaam to just 1.
        function checkMaxSelection() {
            var $element = $dynamicForm.find(".js-max-selection");
            var maxNumber = $element.data("maxnumber-selected"),
                groupName =
                ".plus-element [data-group-name='" +
                $element.data("group-name") +
                "']",
                checkedItems = 0,
                elementsToCheck = $dynamicForm.find(groupName);

            elementsToCheck.each(function() {
                if (this.checked) {
                    checkedItems++;
                }
            });

            if (checkedItems >= maxNumber) {
                //if checked items count is equal or exceeds the maximum allowed number, disable the other unchecked items.
                elementsToCheck.each(function() {
                    this.disabled = !this.checked;

                    if (this.disabled) {
                        $(this).addClass("checkbox-new__input--disabled");
                    } else {
                        $(this).removeClass("checkbox-new__input--disabled");
                    }
                });
            } else {
                //if checked items count is still within limits, enable all items.
                elementsToCheck.each(function() {
                    this.disabled = false;
                    $(this).removeClass("checkbox-new__input--disabled");
                });
            }
        }

        $(document).ready(function() {
            setTimeout(function() {
                checkMaxSelection();
                $(document).on(
                    "click",
                    ".js-dynamic-form .button-new, .js-dynamic-form .plus-element .icon--remove-new",
                    function() {
                        setTimeout(function() {
                            checkMaxSelection();
                        }, 800);
                    }
                );
            }, 800); //force check in 1sec after form is available
        });

        return {
            init: init
        };
    })()
);
#48 JavaScript::Eval (size: 3607) - SHA256: 8fe00f24496fc4db05edfe4f8510ba5988f7acca2975383f46dec1fe9114170b
/*
 * All JS functions related to modals.
 */
var modal = moduleLoader(
    (function() {
        function init() {
            showModalWithTimer();
        }

        /**
         * This function will show a modal popup box on the center of the canvas
         * and stay there while scrolling. The modal popup box will show after 25 min of inactivity.
         *
         */
        function showModalWithTimer() {
            var idleTimer = null,
                redirectTimer = null,
                idleWait = 15 * 60 * 1000, //15 min
                redirectWait = 20 * 60 * 1000, //20 min
                $modal = $(".js-modal-timeout");

            var path = window.location.pathname.split("/"); //Length is always atleast 3.

            //If there is no modal present.
            if (!$modal.length) {
                return;
            }

            //Start the timeouts.
            startTimeOuts();

            function startTimeOuts() {
                clearTimeout(idleTimer); //Clear all timeouts
                clearTimeout(redirectTimer);

                idleTimer = setTimeout(function() {
                    dataLayer.push({
                        events: [{
                            category: "meldingen"
                        }, {
                            action: "weergaves"
                        }, {
                            label: path[path.length - 2]
                        }, ],
                        event: "interaction",
                    });

                    // After idleWait amount of time, show the modal.
                    $modal.addClass("is-active");
                }, idleWait);

                redirectTimer = setTimeout(function() {
                    // After redirectWait amount of time, redirect the user to the landing page.
                    // We do this because their session is expired.
                    handleErrorSessionRenewal();
                }, redirectWait);
            }

            /**
             * When one clicks on the modal-pop-up that they want to extend their session and continue,
             * a call is made to the sessionExtendHandler.
             * This handler resets the timeout for the session.
             *
             */
            $("body").on("click", ".js-active-state", function() {
                dataLayer.push({
                    events: [{
                        category: "meldingen"
                    }, {
                        action: "sluiten"
                    }, {
                        label: path[path.length - 2]
                    }, ],
                    event: "interaction",
                });

                handleSessionExtension($modal);
                startTimeOuts();
            });
        }

        /*
         * Do a call to a handler to extend the users session.
         *
         */
        function handleSessionExtension($modal) {
            var sessionExtendHandlerUrl = configuration.sessionExtendHandler;

            $.ajax({
                    url: sessionExtendHandlerUrl,
                })
                .fail(function(err) {
                    handleErrorSessionRenewal();
                })
                .done(function() {
                    handleSuccessSessionRenewal($modal);
                });
        }

        function handleSuccessSessionRenewal($modal) {
            $modal.removeClass("is-active");
        }

        function handleErrorSessionRenewal() {
            var redirectUrl = "/inschrijven-en-wijzigen/";

            //Redirect User to start of flow.
            window.location = redirectUrl;
        }

        return {
            init: init,
        };
    })()
);
#49 JavaScript::Eval (size: 2831) - SHA256: cab12bcc2ee20a3b883105db388593119c9304b92f3882f7a7d40609ab1c1f5a
/**
 * Site Analytics
 *
 *
 */

var siteAnalytics = moduleLoader(
    (function() {


        var externalLinkExcludes = [
            "//www.kvk.nl",
            "//kvk.nl",
            "//server.db.kvk.nl",
            "//diensten.kvk.nl"
        ];

        function init() {
            trackExternalLinks();
        }

        function trackExternalLinks() {
            var linkNumber = 1;

            $("a[href ^=http]")
                .filter(function() {
                    var $this = $(this),
                        kvk = false;

                    for (var i = 0; i < externalLinkExcludes.length; ++i) {
                        if (
                            $this
                            .attr("href")
                            .indexOf(externalLinkExcludes[i]) > -1
                        ) {
                            kvk = true;
                        }
                    }

                    if (!kvk) {
                        return true;
                    }
                })
                .each(function() {
                    var $this = $(this);

                    $this.attr("data-analytics-link-number", linkNumber); // for analytics

                    $this.on("click", function(e) {
                        var $this = $(this),
                            url = $this.attr("href"),
                            newTab =
                            e.metaKey ||
                            e.ctrlKey ||
                            $this.prop("target") === "_blank";

                        if (!newTab) {
                            // don't change the url when opening in a new tab
                            if (
                                $this
                                .prop("class")
                                .indexOf("js-share-buttons") === -1
                            ) {
                                // don't change url when share buttons
                                setTimeout(function() {
                                    // delay opening link to push data to google analytics
                                    window.location.href = url;
                                }, 100);
                            }
                            e.preventDefault();
                        }

                        dataLayer.push({
                            events: [{
                                category: "uitgaande links"
                            }, {
                                action: url
                            }, {
                                label: linkNumber
                            }],
                            event: "interaction"
                        });
                    });

                    linkNumber++;
                });
        }

        return {
            init: init
        };
    })()
);
#50 JavaScript::Eval (size: 1316) - SHA256: 09b847ea32dadb91e38c780d5a7ef00b5c9d503f77d83d67e92a48253a63328c
/**
 * httpService
 *
 * Functions as a wrapper around the $.ajax method
 * so we have a single point for configuration
 * variables e.d.
 *
 * @returns httpService <global>
 */

var httpService = moduleLoader(
    (function() {
        function ajax(url, ajaxOptions) {
            var defaultAjaxOptions = {
                type: "GET",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                timeout: 5000,
                crossDomain: window.location.hostname === "www.loc.kvk.nl"
            };

            var combinedAjaxOptions = $.extend({},
                defaultAjaxOptions,
                ajaxOptions
            );

            return $.ajax(url, combinedAjaxOptions).fail(function(data) {
                /**
                 * Global implementation to redirect to
                 * the login page when fetching a protected
                 * API resource using ajax.
                 */
                if (data.status == 401) {
                    if (window.location.hostname != "www.loc.kvk.nl") {
                        return location.reload(true);
                    }
                }
            });
        }

        return {
            ajax: ajax
        };
    })()
);

window.httpService = httpService;
#51 JavaScript::Eval (size: 98) - SHA256: eafdc8c649c97ecda2c9eb60263a968c2bbd40af494c655dce695ac7c35b0c93
(function() {
    var a = google_tag_manager["GTM-P2JD7J"].macro(2);
    a = a / 250 * 60;
    return a = Math.round(a)
})();
#52 JavaScript::Eval (size: 634) - SHA256: a417972a7a67ec307043020b53b9d0ff025253ca6d34d3eeb37b9027334f5a89
(function() {
    var c = new Date,
        a = new Date(c.toLocaleString("en-US", {
            timeZone: "Europe/Amsterdam"
        }));
    c = a.getHours();
    var b = a.getMinutes();
    a = a.getSeconds();
    c = 3600 * c + 60 * b + a;
    b = new Date;
    b = new Date(b.toLocaleString("en-US", {
        timeZone: "Europe/Amsterdam"
    }));
    var e = String(b.getDate()).padStart(2, "0"),
        d = String(b.getMonth() + 1).padStart(2, "0");
    a = [];
    a.push("01-01");
    a.push("18-04");
    a.push("27-04");
    a.push("26-05");
    a.push("06-06");
    a.push("25-12");
    a.push("26-12");
    a = a.includes(e + "-" + d);
    var f = [];
    f.push("05-12");
    f.push("24-12");
    f.push("31-12");
    d = f.includes(e + "-" + d);
    e = 30600;
    d = d ? 57600 : 61200;
    return c >= e && c < d && !1 === a ? 0 < b.getDay() && 6 > b.getDay() ? !0 : !1 : !1
})();

Executed Writes (0)


HTTP Transactions (108)


Request Response
                                        
                                            GET /baUZ4f HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

search
                                         138.68.185.92
HTTP/1.1 301 Moved Permanently
Content-Type: text/html
                                        
Server: nginx/1.23.1
Date: Mon, 05 Sep 2022 20:57:27 GMT
Content-Length: 169
Connection: keep-alive
Location: https://hm.ru/baUZ4f


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document, ASCII text, with CRLF line terminators
Size:   169
Md5:    d94f6b74ef1b1e288ab4da12fef9e340
Sha1:   faea89c0aca1c806eb0f6833515c268c673ac3c1
Sha256: 8475e18bcf3f64bc73c070854238ed0e5a8efdfe6d94db88b8aa2117d0390b28
                                        
                                            GET /v1/ HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         143.204.55.115
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 939
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Retry-After, Alert, Content-Length, Content-Type, Backoff
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Date: Mon, 05 Sep 2022 20:45:02 GMT
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
X-Cache: Hit from cloudfront
Via: 1.1 b9f0050ca4d212d7c855e005be54b1ac.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: _8OyOIfltj6rEqeBwHfxKNcCe8AwFBxkLvBlPEk3MRQXHRp76cgwmA==
Age: 745


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (939), with no line terminators
Size:   939
Md5:    b593eb39329cfe060d55be5e4a5405e2
Sha1:   78e46c1028e9f94f8569303ad2d90d7df13a059a
Sha256: 08a810103557efe55ca4425ff0cf82593f1f54633df899127eaec9bee05d4d04
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "F610984FB0A75B3A31424FAA860CBC8172C7F21804DF1DC14FBB685B7C456F29"
Last-Modified: Sat, 03 Sep 2022 23:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=7176
Expires: Mon, 05 Sep 2022 22:57:03 GMT
Date: Mon, 05 Sep 2022 20:57:27 GMT
Connection: keep-alive

                                        
                                            GET /chains/remote-settings.content-signature.mozilla.org-2022-10-09-23-18-04.chain HTTP/1.1 
Host: content-signature-2.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         143.204.55.49
HTTP/2 200 OK
content-type: binary/octet-stream
                                        
content-length: 5348
last-modified: Sat, 20 Aug 2022 23:18:05 GMT
content-disposition: attachment
accept-ranges: bytes
server: AmazonS3
date: Mon, 05 Sep 2022 01:15:19 GMT
etag: "742edb4038f38bc533514982f3d2e861"
x-cache: Hit from cloudfront
via: 1.1 a2b4f68a89fc87406bff22c95fc07fba.cloudfront.net (CloudFront)
x-amz-cf-pop: OSL50-C1
x-amz-cf-id: B5Ol3YRxLL8SqblQNF8aCwfzJz7UXITOWGjE8Za3VHcsVutVgvj0yA==
age: 70930
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PEM certificate\012- , ASCII text
Size:   5348
Md5:    742edb4038f38bc533514982f3d2e861
Sha1:   cc3a20c8dc2a8c632ef9387a2744253f1e3fdef1
Sha256: b6bfa49d3d135035701231db2fffc0c0643444394009a94c6a1b4d829d6b8345
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "356F528AEB165B6B2600C10389F7EB95207A00EBAB388BED5F3012E9B9AE6211"
Last-Modified: Sat, 03 Sep 2022 14:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=1800
Expires: Mon, 05 Sep 2022 21:27:27 GMT
Date: Mon, 05 Sep 2022 20:57:27 GMT
Connection: keep-alive

                                        
                                            GET /v1/tiles HTTP/1.1 
Host: contile.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.117.237.239
HTTP/2 200 OK
content-type: application/json
                                        
server: nginx
date: Mon, 05 Sep 2022 20:57:27 GMT
content-length: 12
strict-transport-security: max-age=31536000
via: 1.1 google
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with no line terminators
Size:   12
Md5:    23e88fb7b99543fb33315b29b1fad9d6
Sha1:   a48926c4ec03c7c8a4e8dffcd31e5a6cdda417ce
Sha256: 7d8f1de8b7de7bc21dfb546a1d0c51bf31f16eee5fad49dbceae1e76da38e5c3
                                        
                                            GET /v1/buckets/main/collections/ms-language-packs/records/cfr-v1-en-US HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/json
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         143.204.55.115
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 329
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Retry-After, ETag, Backoff, Last-Modified, Pragma, Cache-Control, Expires, Content-Type, Content-Length, Alert
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Last-Modified: Fri, 25 Mar 2022 17:45:46 GMT
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
Cache-Control: max-age=3600
Date: Mon, 05 Sep 2022 20:38:16 GMT
Expires: Mon, 05 Sep 2022 21:30:00 GMT
ETag: "1648230346554"
X-Cache: Hit from cloudfront
Via: 1.1 e49f22f18c16784c0f42291e768d1daa.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: 9hboHAq_ENk7UEMvpsmcZYkSuVlFmDndido89yFIeN2ZFA_T4SVXhQ==
Age: 1151


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (329), with no line terminators
Size:   329
Md5:    0333b0655111aa68de771adfcc4db243
Sha1:   63f295a144ac87a7c8e23417626724eeca68a7eb
Sha256: 60636eb1dc67c9ed000fe0b49f03777ad6f549cb1d2b9ff010cf198465ae6300
                                        
                                            POST / HTTP/1.1 
Host: ocsp.digicert.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 4896
Cache-Control: 'max-age=158059'
Date: Mon, 05 Sep 2022 20:57:28 GMT
Last-Modified: Mon, 05 Sep 2022 19:35:52 GMT
Server: ECS (ska/F71B)
X-Cache: HIT
Content-Length: 471

                                        
                                            GET / HTTP/1.1 
Host: push.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Sec-WebSocket-Version: 13
Origin: wss://push.services.mozilla.com/
Sec-WebSocket-Protocol: push-notification
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: OSxz2/qZarYs3vssrc7Ehw==
Connection: keep-alive, Upgrade
Sec-Fetch-Dest: websocket
Sec-Fetch-Mode: websocket
Sec-Fetch-Site: cross-site
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket

search
                                         54.187.34.135
HTTP/1.1 101 Switching Protocols
                                        
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: zKqxhwLcbyEoHVF19uDuDZt3uLc=

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "DA94F53F998808B2B187D6C265722E95E4CDCE9F0A4B23FF0BF6C96D2CDF2BD8"
Last-Modified: Mon, 05 Sep 2022 08:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=9686
Expires: Mon, 05 Sep 2022 23:38:55 GMT
Date: Mon, 05 Sep 2022 20:57:29 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "DA94F53F998808B2B187D6C265722E95E4CDCE9F0A4B23FF0BF6C96D2CDF2BD8"
Last-Modified: Mon, 05 Sep 2022 08:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=9686
Expires: Mon, 05 Sep 2022 23:38:55 GMT
Date: Mon, 05 Sep 2022 20:57:29 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "DA94F53F998808B2B187D6C265722E95E4CDCE9F0A4B23FF0BF6C96D2CDF2BD8"
Last-Modified: Mon, 05 Sep 2022 08:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=9686
Expires: Mon, 05 Sep 2022 23:38:55 GMT
Date: Mon, 05 Sep 2022 20:57:29 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "DA94F53F998808B2B187D6C265722E95E4CDCE9F0A4B23FF0BF6C96D2CDF2BD8"
Last-Modified: Mon, 05 Sep 2022 08:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=9686
Expires: Mon, 05 Sep 2022 23:38:55 GMT
Date: Mon, 05 Sep 2022 20:57:29 GMT
Connection: keep-alive

                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F7ad09c5e-a115-4ff7-9742-809e93046365.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 4426
x-amzn-requestid: b5b68557-e46d-41cd-9b11-d996aabc0de7
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: XzfYTHHFIAMFjFw=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-631145ce-1d3504367cf6ef724a345564;Sampled=0
x-amzn-remapped-date: Thu, 01 Sep 2022 23:52:46 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: GSRJIWisH465dPqbKyPj1iZk1jAu3RGrgwj1CX3X8A397zv9Nt0cHA==
via: 1.1 0aebf3fe433ff96e68d785fad4ea4c0e.cloudfront.net (CloudFront), 1.1 707e733794d52100fde0ab21bf0b1462.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 21:47:54 GMT
age: 83375
etag: "fc766bca874a352a4acb569577d4cf6527f4f074"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   4426
Md5:    c81f3df885bdee8cac46ea9495e6b63b
Sha1:   fc766bca874a352a4acb569577d4cf6527f4f074
Sha256: e21473f88c613ca33ba6bbe1e0cab338274a06744cdcb088f14873c972445b36
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F326e03cd-e1aa-45a4-8a6b-bdd21f21012c.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 5377
x-amzn-requestid: 2adc68e8-1889-4233-8ac4-e2a8d44ccbdd
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: X_4XzF1FoAMF3AA=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63163a98-5918897d7de556f75bbfab34;Sampled=0
x-amzn-remapped-date: Mon, 05 Sep 2022 18:06:16 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Miss from cloudfront
x-amz-cf-id: DpNb6dBygeDbRbFWIkeXYVddcgxlSVuq4y73JvG315Xp-wkwiDhZyQ==
via: 1.1 f13aef0c4b52f6f681401f232d03eb68.cloudfront.net (CloudFront), 1.1 cd64decb1403270c914848213601a674.cloudfront.net (CloudFront), 1.1 google
date: Mon, 05 Sep 2022 18:06:16 GMT
age: 10273
etag: "b5a7380f294876dd308c7fde294f36a425c1be01"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   5377
Md5:    c4b2d6a516e93799b54fe2bbd6630f86
Sha1:   b5a7380f294876dd308c7fde294f36a425c1be01
Sha256: 7463878d8967ff31d7ce20d5a4408c23ad59123032a990c21a47df0881edcb86
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2Fdb23e94d-8ec7-469f-94d2-e08f8feef5d5.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 9428
x-amzn-requestid: 050a7e34-6ee3-4562-bd9d-8122b0432cc5
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: X5wjaFXEoAMFjnQ=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-6313c7af-4915a10726ffab79380d6a52;Sampled=0
x-amzn-remapped-date: Sat, 03 Sep 2022 21:31:27 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: M_WqsKzaeYjV_bY_1ZYgElrRKbQGetGVvkO8wf1kMXNxPyuFOnmwsA==
via: 1.1 49b94a8674d6e86a841d6523f7dbaf14.cloudfront.net (CloudFront), 1.1 2f7934de1dfe281c3e4446892eab6462.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 22:34:47 GMT
age: 80562
etag: "3578b5c8eba646e94f574a996703d6b7b4911ab7"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   9428
Md5:    e571197d8c99877f806a60c79368d657
Sha1:   3578b5c8eba646e94f574a996703d6b7b4911ab7
Sha256: 290a444ba0f434f25313d9ce96f93bcb749cb5c7d8bad51a63c2775539b594fb
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2Fa7142280-0dbd-4c8e-a960-d357c9143af6.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 5652
x-amzn-requestid: 05fffcb2-43c0-4acf-81b2-1b914459e1e9
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: X5wwHErUIAMFmNw=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-6313c800-47fe166763992ab271a87aa4;Sampled=0
x-amzn-remapped-date: Sat, 03 Sep 2022 21:32:48 GMT
x-amz-cf-pop: SEA19-C2
x-cache: Hit from cloudfront
x-amz-cf-id: nJTKTh88iyFXAiPJ-tCCEbqBo3A1cuTj2gCbfHkaVZ1WcgMOTyFfVg==
via: 1.1 2afae0d44e2540f472c0635ab62c232a.cloudfront.net (CloudFront), 1.1 caf6806821bc479b28a6f1ce3043b8a6.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 23:06:26 GMT
age: 78663
etag: "e5b5b649a243e5c004d9923d19d4421d1ea96d23"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   5652
Md5:    10318189f33f071dda64249ab9c8c5bb
Sha1:   e5b5b649a243e5c004d9923d19d4421d1ea96d23
Sha256: 3e775a1990e4d185024faf2fdff7a5eb9063f7ee19784f32fb4f7f10643c8102
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F13d7f0db-89d6-4166-b182-85e35e518df9.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 8469
x-amzn-requestid: de0e8998-4a52-4651-bcd6-3068c50193b6
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: X9Ey2Eq4oAMFZlQ=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63151b45-15da44d87bf486cb1738fe18;Sampled=0
x-amzn-remapped-date: Sun, 04 Sep 2022 21:40:21 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: nqxzicnkQPrjStpPaMIZAukyjtUBQaXfuxWzIs77YGDyJmnirlMsxw==
via: 1.1 4f87745990545c1ac0195c157e1668f8.cloudfront.net (CloudFront), 1.1 ebe4011a81a36e2bf678f69ce1711330.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 21:54:51 GMT
age: 82958
etag: "032acf1bfb0c8e2cbce8f2ff4d2964424b044951"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   8469
Md5:    30bf854fd3e27e2313a3d26fc43b9990
Sha1:   032acf1bfb0c8e2cbce8f2ff4d2964424b044951
Sha256: 7641be64dd25487edf4f845d1fbb0b07daa80fa8fb58863dd09081d9d169bd13
                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F69b1e092-41e6-4f1e-b330-193f7dd11afc.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 7830
x-amzn-requestid: c56af3b5-2c48-4243-b220-d56a9be47990
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: X9Ey3H4JoAMFiMg=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63151b45-23ec24d867e3e5906fffa1a6;Sampled=0
x-amzn-remapped-date: Sun, 04 Sep 2022 21:40:21 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: fpKQlxOtyRwaZk2FUf11J62jlqcAvXgOQT-ipFQm6qW-dMHyXaEnNg==
via: 1.1 a4fe306096165bb1e86e69365dc8fac2.cloudfront.net (CloudFront), 1.1 2f7934de1dfe281c3e4446892eab6462.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 21:49:31 GMT
age: 83278
etag: "3633391a8dd87ef10fcb0d04d7b309738affc4a7"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   7830
Md5:    290f6551c5ac539ea60810b135750f17
Sha1:   3633391a8dd87ef10fcb0d04d7b309738affc4a7
Sha256: d94d133faaf232cf15b5c3f38f5b45d87d70bce0668d607b5c66a8d3f836540f
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 20:57:31 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /gtag/js?id=UA-521618-19 HTTP/1.1 
Host: www.googletagmanager.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         142.250.74.72
HTTP/2 200 OK
content-type: application/javascript; charset=UTF-8
                                        
access-control-allow-origin: *
access-control-allow-credentials: true
access-control-allow-headers: Cache-Control
content-encoding: br
vary: Accept-Encoding
date: Mon, 05 Sep 2022 20:57:31 GMT
expires: Mon, 05 Sep 2022 20:57:31 GMT
cache-control: private, max-age=900
last-modified: Mon, 05 Sep 2022 18:00:00 GMT
strict-transport-security: max-age=31536000; includeSubDomains
cross-origin-resource-policy: cross-origin
server: Google Tag Manager
content-length: 41824
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (1615)
Size:   41824
Md5:    97aac5630354fd892d2ede57adc6dc28
Sha1:   df5ae5b696495bd62c2f4622963c2b823ee580c3
Sha256: 75fb6c1fa6e712209dc135a2db3626949644b98518086b21454c8bd36b5061c8
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 20:57:31 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /css/common.css HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/baUZ4f
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: text/css
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 4280
last-modified: Sat, 25 Apr 2020 18:33:06 GMT
etag: "5ea48262-10b8"
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   4280
Md5:    b5716cfd982f026c2e91f00908102723
Sha1:   2f4c734e896654f2a4bccf345064a77e1fb00f2c
Sha256: f9988bf0b2d14d0b2358ec1ad3d7ac61ca59d0577e0ceebd0d5b518f0677f1a8
                                        
                                            GET /css/m/goto/main.css?1589256369 HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/baUZ4f
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: text/css
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 1276
last-modified: Tue, 12 May 2020 04:06:09 GMT
etag: "5eba20b1-4fc"
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   1276
Md5:    396355267af70f148083ad2941962a8d
Sha1:   33ff3f1f6c828cb6649db63a00cd185309b1ee59
Sha256: 1886b8da4ba47f7ac5b40aeb8cf4f8dbe423e35661ab6d7e65963b2025b799f7
                                        
                                            GET /js/clipboard.min.js HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/baUZ4f
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 10754
last-modified: Wed, 17 Jul 2019 22:17:59 GMT
etag: "5d2f9e97-2a02"
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (10645)
Size:   10754
Md5:    f06c52bfddb458ad87349acf9fac06c5
Sha1:   ee60ca5ba9401456105ef703a98092369b579c80
Sha256: 1626706afc88d95ebe1173b553ec732c6dc82a576989315fdf5e7779af738a44
                                        
                                            GET /baUZ4f HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: text/html; charset=UTF-8
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
set-cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f; expires=Wed, 05-Oct-2022 20:57:30 GMT; Max-Age=2592000; path=/; domain=.hm.ru
expires: Thu, 19 Nov 1981 08:52:00 GMT
cache-control: no-store, no-cache, must-revalidate
pragma: no-cache
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- exported SGML document text\012- exported SGML document, Unicode text, UTF-8 text
Size:   3097
Md5:    65bdb67184cc20da4445c0724020fe3b
Sha1:   d7e66a270906eb16a9ab1c983c8b8851c64b68cf
Sha256: 58a87ae0e2f2b9b55f856135712f5d1452872cc2f77b4a2e70851dc2d473bf9e
                                        
                                            GET /js/m/goto/main.js?1589256369 HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/baUZ4f
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 2533
last-modified: Tue, 12 May 2020 04:06:09 GMT
etag: "5eba20b1-9e5"
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   2533
Md5:    3e0a9bdedf4103f91a2a6d0798c38c76
Sha1:   51f267a290e1551d90dcc1482f93b1a26baafb23
Sha256: f3619bf6fa90df37c0f0b12aa58e6c122e717fe3374112f835c3ee914cdf8bd5
                                        
                                            GET /js/tz.js?1564082453 HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/baUZ4f
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 240
last-modified: Thu, 25 Jul 2019 19:20:53 GMT
etag: "5d3a0115-f0"
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   240
Md5:    b0018c2b47fb1b137b0a34039b675c4c
Sha1:   cb63d3a081f27a5bc3dcaf3bc045d99ef12b94c7
Sha256: 4f0fb9a432e3ce0ef79380924aab90a05dd30ecce144c1a4aa08a34475baaffd
                                        
                                            GET /css/fontawesome.all.min.css HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/baUZ4f
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: text/css
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 83333
last-modified: Thu, 29 Aug 2019 10:20:12 GMT
etag: "5d67a6dc-14585"
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65394)
Size:   83333
Md5:    358599a14d84b8f68a4d5705f9a2bb3b
Sha1:   c1f8509e7cab8b77560af1f6f43d7a72bb3c24f7
Sha256: 8aef1a2a68308674aef9d36580ed2a75564f7f13b17b255f24eac6262a526e96
                                        
                                            GET /js/jquery-3.4.1.min.js HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/baUZ4f
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 88145
last-modified: Wed, 17 Jul 2019 22:17:59 GMT
etag: "5d2f9e97-15851"
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65451)
Size:   88145
Md5:    220afd743d9e9643852e31a135a9f3ae
Sha1:   88523924351bac0b5d560fe0c5781e2556e7693d
Sha256: 0925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a
                                        
                                            GET /js/bootstrap.bundle.min.js HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/baUZ4f
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 80698
last-modified: Mon, 06 Apr 2020 19:51:55 GMT
etag: "5e8b885b-13b3a"
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65297)
Size:   80698
Md5:    a5334e475209f965b4862f3bedf32618
Sha1:   fac45259046dd90b16d251739108002d67a00b54
Sha256: 394156ee114ed3faf968419340ecfd17f69740eb7e4f0a88d59e1f6d5bf0c34e
                                        
                                            GET /favicon.ico HTTP/1.1 
Host: hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/baUZ4f
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

search
                                         138.68.185.92
HTTP/2 404 Not Found
content-type: text/html; charset=utf-8
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 153
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document, ASCII text, with CRLF line terminators
Size:   153
Md5:    3a7eadf2966cc0a3f0100a308c27876e
Sha1:   b8831bedc61af9302ee01a565fbdc0fed8e964ff
Sha256: a5375e8dbc1363a877ef488044177bd7e7dd25fa95b318fa32de36223786b7ac
                                        
                                            POST /private/tz/?0.04782384308909449 HTTP/1.1 
Host: api.hm.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 4
Origin: https://hm.ru
Connection: keep-alive
Referer: https://hm.ru/
Cookie: PHPSESSID=4grr7e3ajjjcj9bfoajiqf3a1f
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
TE: trailers

search
                                         138.68.185.92
HTTP/2 200 OK
content-type: application/json; charset=utf-8
                                        
server: nginx/1.23.1
date: Mon, 05 Sep 2022 20:57:31 GMT
content-length: 73
expires: Thu, 19 Nov 1981 08:52:00 GMT
cache-control: no-store, no-cache, must-revalidate
pragma: no-cache
access-control-allow-origin: https://hm.ru
access-control-allow-credentials: true
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with no line terminators
Size:   73
Md5:    fd45a3f4c5681de7e7cf421f70417adf
Sha1:   e6251fd5592db0c536dbf25d4145b83f7d3f9865
Sha256: 07615831fd2b485080374177514cc26a1eba265f833099ffcd405b6818252efb
                                        
                                            GET /analytics.js HTTP/1.1 
Host: www.google-analytics.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         142.250.74.174
HTTP/2 200 OK
content-type: text/javascript
                                        
strict-transport-security: max-age=10886400; includeSubDomains; preload
x-content-type-options: nosniff
vary: Accept-Encoding
content-encoding: gzip
cross-origin-resource-policy: cross-origin
server: Golfe2
content-length: 20006
date: Mon, 05 Sep 2022 20:41:12 GMT
expires: Mon, 05 Sep 2022 22:41:12 GMT
cache-control: public, max-age=7200
age: 979
last-modified: Wed, 13 Apr 2022 21:02:38 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (1325)
Size:   20006
Md5:    56f5d7f608e25d64207135f045f988cb
Sha1:   901eb59372ae330ae85e1384da93479b21ae1082
Sha256: 1910daea79e5a9d04829a91e432dfa56f45a80a3e14a8cf667fec73af9fd3d29
                                        
                                            POST /gseccovsslca2018 HTTP/1.1 
Host: ocsp.globalsign.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 79
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         104.18.21.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 20:57:31 GMT
Content-Length: 940
Connection: keep-alive
Expires: Fri, 09 Sep 2022 17:58:25 GMT
ETag: "64eac3dbdab4ce096fffb7375aab1393404ce608"
Last-Modified: Mon, 05 Sep 2022 17:58:26 GMT
Cache-Control: public, no-transform, must-revalidate, s-maxage=3600
CF-Cache-Status: HIT
Age: 365
Accept-Ranges: bytes
Vary: Accept-Encoding
Server: cloudflare
CF-RAY: 7461e0b48909b51d-OSL

                                        
                                            GET /metrika/tag.js HTTP/1.1 
Host: mc.yandex.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

search
                                         93.158.134.119
HTTP/2 200 OK
content-type: application/javascript
                                        
content-length: 71985
date: Mon, 05 Sep 2022 20:57:31 GMT
access-control-allow-origin: *
etag: "6315c3a4-11931"
expires: Mon, 05 Sep 2022 21:57:31 GMT
last-modified: Mon, 05 Sep 2022 12:38:44 GMT
cache-control: max-age=3600
content-encoding: br
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 (with BOM) text, with very long lines (681)
Size:   71985
Md5:    034d4604beaddff5783b9878fadfaee6
Sha1:   64d5e1e0dbbbd62d6a64349dd964763b7ab4cbea
Sha256: f8a957ee3468693f465da61d899438a2b674369b80c9d5c9ffff1111a7091290
                                        
                                            GET /metrika/advert.gif HTTP/1.1 
Host: mc.yandex.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

search
                                         93.158.134.119
HTTP/2 200 OK
content-type: image/gif
                                        
content-length: 43
date: Mon, 05 Sep 2022 20:57:32 GMT
access-control-allow-origin: *
etag: "6315c3a4-2b"
expires: Mon, 05 Sep 2022 21:57:32 GMT
accept-ranges: bytes
last-modified: Mon, 05 Sep 2022 12:38:44 GMT
cache-control: max-age=3600
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  GIF image data, version 89a, 1 x 1\012- data
Size:   43
Md5:    df3e567d6f16d040326c7a0ea29a4f41
Sha1:   ea7df583983133b62712b5e73bffbcd45cc53736
Sha256: 548f2d6f4d0d820c6c5ffbeffcbd7f0e73193e2932eefe542accc84762deec87
                                        
                                            GET /watch/51501257/1?wmode=7&page-url=https%3A%2F%2Fhm.ru%2FbaUZ4f&charset=utf-8&browser-info=pv%3A1%3Agdpr%3A14%3Avf%3A2ofv6mafcjh9urjbdp7e2g%3Afp%3A4448%3Afu%3A0%3Aen%3Autf-8%3Ala%3Aen-US%3Av%3A882%3Acn%3A1%3Adp%3A0%3Als%3A359215739541%3Ahid%3A3672578%3Az%3A0%3Ai%3A20220905205727%3Aet%3A1662411447%3Ac%3A1%3Arn%3A977272714%3Arqn%3A1%3Au%3A1662411447976325073%3Aw%3A1280x939%3As%3A1280x1024x24%3Ask%3A1%3Ans%3A1662411442195%3Ads%3A1%2C94%2C3620%2C0%2C321%2C0%2C%2C353%2C4%2C%2C%2C%2C4431%3Awv%3A2%3Aco%3A0%3Afip%3Aa81f3b9bcdd80a361c14af38dc09b309-a81f3b9bcdd80a361c14af38dc09b309-a81f3b9bcdd80a361c14af38dc09b309-4bd84c89c35a312599d807af285e7b5f-4335742423629acc806791d3e9f585f3-5b56a9f28e63b1a76c5f94a136cc484e-61b9878bbce18de73aafc8582a198c0c-e9c964637c807fcca817e718cc2d1338-a81f3b9bcdd80a361c14af38dc09b309-c6d7b47b2dcff33f80cab17f3a360d0b-2facd2c41a0047c68391f933b930bc3a%3Arqnl%3A1%3Ast%3A1662411447%3At%3AHyper%20Magic&t=gdpr%2814%29clc%280-0-0%29aw%281%29rqnt%281%29fip%281%29rqnl%281%29ti%282%29 HTTP/1.1 
Host: mc.yandex.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://hm.ru
Referer: https://hm.ru/
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

search
                                         93.158.134.119
HTTP/2 200 OK
content-type: application/json; charset=utf-8
                                        
content-length: 419
date: Mon, 05 Sep 2022 20:57:32 GMT
x-content-type-options: nosniff
access-control-allow-origin: https://hm.ru
access-control-allow-credentials: true
pragma: no-cache
x-xss-protection: 1; mode=block
expires: Mon, 05-Sep-2022 20:57:32 GMT
last-modified: Mon, 05-Sep-2022 20:57:32 GMT
cache-control: private, no-cache, no-store, must-revalidate, max-age=0
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (419), with no line terminators
Size:   419
Md5:    f57172680376e0a028b30f5d4b5cf1ff
Sha1:   0969d1dbc4ac18557e9eb3d2ebdfef1339c4f300
Sha256: 7fb0d08ada95abf236244dd2e4afebfab41970525c032dc0325e5c6a58d4eb9a
                                        
                                            POST /webvisor/51501257?wmode=0&wv-part=1&wv-hit=3672578&page-url=https%3A%2F%2Fhm.ru%2FbaUZ4f&rn=683432515&wv-type=3&browser-info=bt%3A1%3Agdpr%3A14%3Aet%3A1662411448%3Aw%3A1280x939%3Av%3A882%3Az%3A0%3Ai%3A20220905205727%3Au%3A1662411447976325073%3Avf%3A2ofv6mafcjh9urjbdp7e2g%3Awe%3A1%3Ast%3A1662411448&t=gdpr(14)ti(2) HTTP/1.1 
Host: mc.yandex.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: text/plain
Content-Length: 3933
Origin: https://hm.ru
Connection: keep-alive
Referer: https://hm.ru/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

search
                                         93.158.134.119
HTTP/2 200 OK
content-type: image/gif
                                        
content-length: 43
date: Mon, 05 Sep 2022 20:57:32 GMT
access-control-allow-origin: https://hm.ru
access-control-allow-credentials: true
pragma: no-cache
x-xss-protection: 1; mode=block
expires: Mon, 05-Sep-2022 20:57:32 GMT
last-modified: Mon, 05-Sep-2022 20:57:32 GMT
cache-control: private, no-cache, no-store, must-revalidate, max-age=0
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  GIF image data, version 89a, 1 x 1\012- data
Size:   43
Md5:    df3e567d6f16d040326c7a0ea29a4f41
Sha1:   ea7df583983133b62712b5e73bffbcd45cc53736
Sha256: 548f2d6f4d0d820c6c5ffbeffcbd7f0e73193e2932eefe542accc84762deec87
                                        
                                            POST /webvisor/51501257?wmode=0&wv-part=1&wv-hit=3672578&page-url=https%3A%2F%2Fhm.ru%2FbaUZ4f&rn=953965203&wv-type=3&browser-info=gdpr%3A14%3Aet%3A1662411448%3Aw%3A1280x939%3Av%3A882%3Az%3A0%3Ai%3A20220905205727%3Au%3A1662411447976325073%3Avf%3A2ofv6mafcjh9urjbdp7e2g%3Awe%3A1%3Ast%3A1662411448&t=gdpr(14)ti(2) HTTP/1.1 
Host: mc.yandex.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: text/plain
Content-Length: 69
Origin: https://hm.ru
Connection: keep-alive
Referer: https://hm.ru/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

search
                                         93.158.134.119
HTTP/2 200 OK
content-type: image/gif
                                        
content-length: 43
date: Mon, 05 Sep 2022 20:57:32 GMT
access-control-allow-origin: https://hm.ru
access-control-allow-credentials: true
pragma: no-cache
x-xss-protection: 1; mode=block
expires: Mon, 05-Sep-2022 20:57:32 GMT
last-modified: Mon, 05-Sep-2022 20:57:32 GMT
cache-control: private, no-cache, no-store, must-revalidate, max-age=0
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  GIF image data, version 89a, 1 x 1\012- data
Size:   43
Md5:    df3e567d6f16d040326c7a0ea29a4f41
Sha1:   ea7df583983133b62712b5e73bffbcd45cc53736
Sha256: 548f2d6f4d0d820c6c5ffbeffcbd7f0e73193e2932eefe542accc84762deec87
                                        
                                            POST / HTTP/1.1 
Host: ocsp.sectigo.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         104.18.32.68
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 472
Connection: keep-alive
Last-Modified: Sat, 03 Sep 2022 14:58:46 GMT
Expires: Sat, 10 Sep 2022 14:58:45 GMT
Etag: "68966e8c888b12dfe2b33bba97e87ed04b9e90e8"
Cache-Control: max-age=409871,s-maxage=1800,public,no-transform,must-revalidate
X-CCACDN-Proxy-ID: mcdpinlb1
X-Frame-Options: SAMEORIGIN
CF-Cache-Status: DYNAMIC
Server: cloudflare
CF-RAY: 7461e0bcafa70b45-OSL

                                        
                                            GET /google2 HTTP/1.1 
Host: marinawielaert.hopp.to
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://hm.ru/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

search
                                         185.230.63.215
HTTP/2 302 Found
content-type: text/html; charset=utf-8
                                        
date: Mon, 05 Sep 2022 20:57:33 GMT
content-length: 72
location: https://kvk.nl
vary: Accept, Accept-Encoding
pragma: no-cache
cache-control: no-store, no-cache
x-seen-by: m0j2EEknGIVUW/liY8BLLmgZ3OT2/AEWDVrUsUbB18aWWveFEnegpnkLxzZh8fhS,++r5XCRb/6cYf+PEtyYPdHuTWVU2COZsAFLXA0lLfoCqIXnHwzry/fRu1OrE4paFNCkmF3NsB/iblGAN6N5oeg==,r6yY0ta7bIKrqK70x072lTIKtupUOEtl7EB11JOhs9s=,ha2BjfnpoaWsa89DnyiXUFR19pAauj9dPnQtndBCcvdWd3xniMsr1HjrszKGvMzr,661WDdikIxmkML8lUx0V47PDPwnpoqFJHKRo+M1NQmDkZo8yGoPsp37pSl18EAx8y6q5fsRClEjpURfASceMSQ==
x-wix-request-id: 1662411453.2034073227356111574
server: Pepyaka/1.19.10
x-content-type-options: nosniff
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  HTML document, ASCII text, with no line terminators
Size:   72
Md5:    503d004d8ea24bf2a21e22179cdcc4a0
Sha1:   42957a712c101aef863474ec478a9051f48d01c9
Sha256: 81a47f36d30b0253ee11b56d1c3d15ce1baf21c37bcedb0e6dac2bf2f95bff90

Alerts:
  Blocklists:
    - fortinet: Phishing
                                        
                                            POST / HTTP/1.1 
Host: ocsp.quovadisglobal.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 87
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         35.156.70.210
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 20:57:33 GMT
Server: Apache
Expires: Wed, 07 Sep 2022 20:57:32 GMT
ETag: "451da51e42b86ccc4dc2731825f097e46c9df32a"
Last-Modified: Mon, 05 Sep 2022 20:57:33 GMT
Cache-Control: max-age=155519,public,no-transform,must-revalidate
Content-Length: 1778
Connection: close


--- Additional Info ---
Magic:  data
Size:   1778
Md5:    8fbc138d0aa130456bb15f41410d9a75
Sha1:   451da51e42b86ccc4dc2731825f097e46c9df32a
Sha256: d697cc9e5a82d505ac0352f163b4c9a2c7c7122372cee858ff8940cd77e21efa
                                        
                                            GET / HTTP/1.1 
Host: kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://hm.ru/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

search
                                         82.201.39.181
HTTP/1.0 301 Moved Permanently
                                        
Location: https://www.kvk.nl/
Strict-Transport-Security: max-age=31536000
Server: BigIP
Connection: Keep-Alive
Content-Length: 0

                                        
                                            GET / HTTP/1.1 
Host: www.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://hm.ru/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

search
                                         82.201.39.181
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
                                        
Date: Mon, 05 Sep 2022 20:57:30 GMT
Connection: keep-alive
Cache-Control: private
Context: 2
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'self' https:; object-src 'self'; frame-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; child-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; style-src 'self' 'unsafe-inline' *.kvk.nl tagmanager.google.com translate.googleapis.com *.mopinion.com https://fonts.googleapis.com *.abtasty.com *.spotify.com; script-src 'self' 'unsafe-eval' *.kvk.nl blob: bat.bing.com www.youtube.com s.ytimg.com channel.me cloudstatic.obi4wan.com *.hotjar.com www.google-analytics.com www.googletagmanager.com tagmanager.google.com *.mopinion.com *.abtasty.com cdn.pushbird.com *.spotify.com webservices.kvk.nl webservices.acp.kvk.nl *.conversationalsdevelopment.nl 'nonce-yZl/jif3/WakLh2Ky1fDpuQw+LxU1q5Ox1uxEsGQUGc='; img-src 'self' *.kvk.nl blob: data: tr3.onlinesucces.nl www.ondernemersplein.nl bat.bing.com https://www.gstatic.com/images/branding/product/2x/translate_24dp.png www.google-analytics.com www.googletagmanager.com region1.google-analytics.com region1.analytics.google.com *.abtasty.com *.cloudfront.com *.mopinion.com cdn.pushbird.com *.spotify.com; font-src 'self' blob: data: *.kvk.nl https://fonts.gstatic.com static.hotjar.com *.mopinion.com *.abtasty.com *.spotify.com; connect-src 'self' *.kvk.nl wss://*.kvk.nl opendata.ondernemersplein.nl translate.googleapis.com bots.obi4wan.com app.obi4wan.ai *.hotjar.com wss://*.hotjar.com www.google-analytics.com region1.google-analytics.com region1.analytics.google.com script.google.com *.mopinion.com col.eum-appdynamics.com *.abtasty.com sentry.io api.pushbird.com *.spotify.com wss://*.seamly-app.com *.seamly-app.com; frame-ancestors 'self' https://*.kvk.nl; base-uri 'self' *.kvk.nl; report-uri https://acd4a6fc2b303186c154a28c8bda5e62.report-uri.com/r/t/csp/enforce;
Set-Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; Domain=kvk.nl; Path=/; Secure; HttpOnly ADRUM_BTa=R:14|g:b64d3928-c790-449e-9c2f-bf8cf1e40beb|n:kvk-online_67b4b448-ba57-484e-9273-6cc35d853c3f; expires=Mon, 05-Sep-2022 20:58:03 GMT; path=/; secure SameSite=None; expires=Mon, 05-Sep-2022 20:58:03 GMT; path=/; secure ADRUM_BT1=R:14|i:3715636|e:70; expires=Mon, 05-Sep-2022 20:58:03 GMT; path=/; secure TS01b7918c=014252a75b5ed59e3210a9350f91a3b6992ae6be8ebf397819d4ea9d46598fe351791bae7b70d2269844e0e0775ed4839e1025e5e6cf4e797231e797f98cc8e377241bfce8f51822a3314714c2d0f41c0fd2379e1d049711898d47c54f3dd2d9d9b35845d6; Path=/ TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4; path=/; domain=kvk.nl
X-UA-Compatible: IE=edge
Strict-Transport-Security: max-age=31536000
Referrer-Policy: same-origin
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin, sameorigin
Content-Encoding: gzip
Transfer-Encoding: chunked


--- Additional Info ---
Magic:  HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- HTML document text\012- exported SGML document text\012- exported SGML document, Unicode text, UTF-8 text, with very long lines (59523), with CRLF, LF line terminators
Size:   46995
Md5:    8f673504440ef5b31e5b9bbddf66e538
Sha1:   1c6a3c98539083b97f39589c8e7bce54014782bd
Sha256: 5104dc73d760299d26c274b33b19dec31c53b096e567c1b086ffd4e4cde6bbac
                                        
                                            GET /css/styles.min.css?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: text/css
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:32 GMT
Content-Length: 8283
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (48884), with no line terminators
Size:   8283
Md5:    242ee4c5bdaa68e83d9bf1dcfb6b24d3
Sha1:   804099d5a5cb9114833758c6db46fecd65493d89
Sha256: 5dc69a07ca8687995cfe473490bff131b6966c70e3fe61cd76bbb7c7a28401df
                                        
                                            GET /css/styles-40.min.css?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: text/css
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:32 GMT
Content-Length: 92592
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (65482), with no line terminators
Size:   92592
Md5:    f1a620b22470ddaa53a75c1c1858ea65
Sha1:   edee5e1422e628b4daf87acab71fe8406f1b68dd
Sha256: 89a60659178fea9109feec963f3cbc50745b76b35c694ab2ecb44656ee5c78fa
                                        
                                            GET /js/bundles/527.chunk.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 7370
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (24706), with no line terminators
Size:   7370
Md5:    008c3f74bfbc4fbb9a79866fd2b59ad8
Sha1:   57d2357aebadea16c7002d00fa345ebdb9ff3a3a
Sha256: c9ff511e8379c7587779bf3bbae1689b5b0bab77243736b5bd45d3eb0bb6c85f
                                        
                                            GET /js/bundles/1678.chunk.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 10753
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (40355), with no line terminators
Size:   10753
Md5:    e2b288ce2edeb2bc29dc0794730f7166
Sha1:   d4f5fbc63d45d5883adcdbecade42824f72c960b
Sha256: 8380498ba214c5b60b28758a55555f09a41fbcfecfe25b7a16307ed3d099051a
                                        
                                            GET /js/bundles/json2React.bundle.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 3061
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (6372), with no line terminators
Size:   3061
Md5:    5a3fde5bde396eaf16aaf8cdbb0c295f
Sha1:   859d19cadbd5a7b55e5db805c299e30f60a4c3a6
Sha256: cb8b396af85faf5deeb3fc827f07c044ab52d93e6a75b541b7ce1058c19af88b
                                        
                                            GET /js/bundles/199.chunk.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 9352
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (44902), with no line terminators
Size:   9352
Md5:    62862394d2c50692b756edad2175d89f
Sha1:   bcaebee6e16e76352aa0ec92c2e844a8dc4e1706
Sha256: 0f91deeb7948cf229e61fb624d4490be68a8fc2e8519c81cfa0bcdb3607c2d53
                                        
                                            GET /js/bundles/7029.chunk.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 11225
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (46305), with no line terminators
Size:   11225
Md5:    e4ee3705f964a9784385a09ef4ba9722
Sha1:   510bff91ed687e54348ca7274fcbdac95d7f9d13
Sha256: 8ded4a11f3005d2e9dfe63cbaee42061d4213ab0fa2d6941a8ea5505ff955fbb
                                        
                                            GET /js/bundles/Page.Home.chunk.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 2256
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (6576), with no line terminators
Size:   2256
Md5:    2cb34d21df91db3cac396e9286b2cb6d
Sha1:   daf7ee44690dadb9d80ea421cfbce526402fa83c
Sha256: 677c50af930c4adb0c83878523e6036162c89e6c9aab453e920934ba2958f9ff
                                        
                                            GET /js/bundles/scripts.bundle.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 47375
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (65503), with no line terminators
Size:   47375
Md5:    772cd6b742838ba46b0eb2dddc319812
Sha1:   ec15f10f41ce0ee9e3011e4db85d8c179991f26d
Sha256: d3b927c5a5ff903da12ac0894cb342ada2f62a249490a5cab98a5e9f83476be0
                                        
                                            GET /js/bundles/vendor.bundle.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 42985
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (65536), with no line terminators
Size:   42985
Md5:    55d6dfd82d6338c7c955b6f99363206d
Sha1:   024fe06e5c93d1beca64c73df7d7f0000c60b8fc
Sha256: 949e9510579ed0c8b6bd2105fdb10fe7be516b0960a141717bf99f1d49a1b0cd
                                        
                                            GET /download/Ondernemersplein_KVK_311_tcm109-483624.jpg HTTP/1.1 
Host: www.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.kvk.nl/
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; ADRUM_BTa=R:14|g:b64d3928-c790-449e-9c2f-bf8cf1e40beb|n:kvk-online_67b4b448-ba57-484e-9273-6cc35d853c3f; SameSite=None; ADRUM_BT1=R:14|i:3715636|e:70; TS01b7918c=014252a75b5ed59e3210a9350f91a3b6992ae6be8ebf397819d4ea9d46598fe351791bae7b70d2269844e0e0775ed4839e1025e5e6cf4e797231e797f98cc8e377241bfce8f51822a3314714c2d0f41c0fd2379e1d049711898d47c54f3dd2d9d9b35845d6; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

search
                                         82.201.39.181
HTTP/1.1 200 OK
Content-Type: image/jpeg
                                        
Date: Mon, 05 Sep 2022 20:57:31 GMT
Content-Length: 62347
Connection: keep-alive
Cache-Control: no-cache
Last-Modified: Fri, 02 Sep 2022 09:01:43 GMT
Accept-Ranges: bytes
ETag: "af235b9faabed81:0"
Context: 2
X-Frame-Options: sameorigin
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'self' https:; object-src 'self'; frame-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; child-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; style-src 'self' 'unsafe-inline' *.kvk.nl tagmanager.google.com translate.googleapis.com *.mopinion.com https://fonts.googleapis.com *.abtasty.com *.spotify.com; script-src 'self' 'unsafe-eval' *.kvk.nl blob: bat.bing.com www.youtube.com s.ytimg.com channel.me cloudstatic.obi4wan.com *.hotjar.com www.google-analytics.com www.googletagmanager.com tagmanager.google.com *.mopinion.com *.abtasty.com cdn.pushbird.com *.spotify.com webservices.kvk.nl webservices.acp.kvk.nl *.conversationalsdevelopment.nl 'nonce-C4OLMjLM/kW1eFMOkTBcxyqbEe3wKfdrHFiHQXvBrGU='; img-src 'self' *.kvk.nl blob: data: tr3.onlinesucces.nl www.ondernemersplein.nl bat.bing.com https://www.gstatic.com/images/branding/product/2x/translate_24dp.png www.google-analytics.com www.googletagmanager.com region1.google-analytics.com region1.analytics.google.com *.abtasty.com *.cloudfront.com *.mopinion.com cdn.pushbird.com *.spotify.com; font-src 'self' blob: data: *.kvk.nl https://fonts.gstatic.com static.hotjar.com *.mopinion.com *.abtasty.com *.spotify.com; connect-src 'self' *.kvk.nl wss://*.kvk.nl opendata.ondernemersplein.nl translate.googleapis.com bots.obi4wan.com app.obi4wan.ai *.hotjar.com wss://*.hotjar.com www.google-analytics.com region1.google-analytics.com region1.analytics.google.com script.google.com *.mopinion.com col.eum-appdynamics.com *.abtasty.com sentry.io api.pushbird.com *.spotify.com wss://*.seamly-app.com *.seamly-app.com; frame-ancestors 'self' https://*.kvk.nl; base-uri 'self' *.kvk.nl; report-uri https://acd4a6fc2b303186c154a28c8bda5e62.report-uri.com/r/t/csp/enforce;
kvkpweb: 02
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=7, orientation=upper-left, xresolution=98, yresolution=106, resolutionunit=2, software=Adobe Photoshop CC (Macintosh), datetime=2019:10:17 14:31:51], baseline, precision 8, 376x376, components 3\012- data
Size:   62347
Md5:    bea7eebdb25644d79365897917a074dc
Sha1:   69848be0fe0c1738e9e13c2295e203502527455f
Sha256: f6b09850555e0bafcc9dea825616e7519056a8dd161b94299bcfb1bb7696754a
                                        
                                            GET /js/bundles/3097.chunk.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 132562
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (65468)
Size:   132562
Md5:    03ef84ec41be5e36d1911eac64d79b4c
Sha1:   52c0af0a21b4fbf252ae79a7b9f05e23133fb1a6
Sha256: 7a18e30fcafad3e6cdcafdf8c5ed0b40aba757fb8dedb4f170d6c6744195daf6
                                        
                                            GET /download/OMAR_376x376_tcm109-507288.jpg HTTP/1.1 
Host: www.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.kvk.nl/
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; ADRUM_BTa=R:14|g:b64d3928-c790-449e-9c2f-bf8cf1e40beb|n:kvk-online_67b4b448-ba57-484e-9273-6cc35d853c3f; SameSite=None; ADRUM_BT1=R:14|i:3715636|e:70; TS01b7918c=014252a75b5ed59e3210a9350f91a3b6992ae6be8ebf397819d4ea9d46598fe351791bae7b70d2269844e0e0775ed4839e1025e5e6cf4e797231e797f98cc8e377241bfce8f51822a3314714c2d0f41c0fd2379e1d049711898d47c54f3dd2d9d9b35845d6; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

search
                                         82.201.39.181
HTTP/1.1 200 OK
Content-Type: image/jpeg
                                        
Date: Mon, 05 Sep 2022 20:57:31 GMT
Content-Length: 151565
Connection: keep-alive
Cache-Control: no-cache
Last-Modified: Fri, 02 Sep 2022 09:01:43 GMT
Accept-Ranges: bytes
ETag: "af235b9faabed81:0"
Context: 2
X-Frame-Options: sameorigin
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'self' https:; object-src 'self'; frame-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; child-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; style-src 'self' 'unsafe-inline' *.kvk.nl tagmanager.google.com translate.googleapis.com *.mopinion.com https://fonts.googleapis.com *.abtasty.com *.spotify.com; script-src 'self' 'unsafe-eval' *.kvk.nl blob: bat.bing.com www.youtube.com s.ytimg.com channel.me cloudstatic.obi4wan.com *.hotjar.com www.google-analytics.com www.googletagmanager.com tagmanager.google.com *.mopinion.com *.abtasty.com cdn.pushbird.com *.spotify.com webservices.kvk.nl webservices.acp.kvk.nl *.conversationalsdevelopment.nl 'nonce-jUWP/v422JbrQR5LhuFDa+JNKs/H7aUVFxyByiuyuOg='; img-src 'self' *.kvk.nl blob: data: tr3.onlinesucces.nl www.ondernemersplein.nl bat.bing.com https://www.gstatic.com/images/branding/product/2x/translate_24dp.png www.google-analytics.com www.googletagmanager.com region1.google-analytics.com region1.analytics.google.com *.abtasty.com *.cloudfront.com *.mopinion.com cdn.pushbird.com *.spotify.com; font-src 'self' blob: data: *.kvk.nl https://fonts.gstatic.com static.hotjar.com *.mopinion.com *.abtasty.com *.spotify.com; connect-src 'self' *.kvk.nl wss://*.kvk.nl opendata.ondernemersplein.nl translate.googleapis.com bots.obi4wan.com app.obi4wan.ai *.hotjar.com wss://*.hotjar.com www.google-analytics.com region1.google-analytics.com region1.analytics.google.com script.google.com *.mopinion.com col.eum-appdynamics.com *.abtasty.com sentry.io api.pushbird.com *.spotify.com wss://*.seamly-app.com *.seamly-app.com; frame-ancestors 'self' https://*.kvk.nl; base-uri 'self' *.kvk.nl; report-uri https://acd4a6fc2b303186c154a28c8bda5e62.report-uri.com/r/t/csp/enforce;
kvkpweb: 02
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=17, height=5464, bps=218, PhotometricIntepretation=RGB, manufacturer=Canon, model=Canon EOS R5, orientation=upper-left, width=8192], progressive, precision 8, 376x376, components 3\012- data
Size:   151565
Md5:    318922281d58ac61273419adcaf9ab0f
Sha1:   e4749da14699d63acbdd0ea38db2f77d8a2dc99e
Sha256: de94f0b7f29200c9f8e0ecb4bd6dece71eb8340301ea41c063ce790ef294ee26
                                        
                                            GET /js/bundles/common.bundle.js?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:32 GMT
Content-Length: 275281
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (65412)
Size:   275281
Md5:    8b46cbbdeb183184493de86599bb24e2
Sha1:   5b0ab731843187c7412a8b862c51a0ef19a512c6
Sha256: a2f43b89390d924c08e3a44b6d9deb1c042c6be11eae08928295d4ebd70474f9
                                        
                                            GET /download/beeld_banner_loketklimaatenduurzaamheid_tcm109-506193.jpg HTTP/1.1 
Host: www.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.kvk.nl/
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; ADRUM_BTa=R:14|g:b64d3928-c790-449e-9c2f-bf8cf1e40beb|n:kvk-online_67b4b448-ba57-484e-9273-6cc35d853c3f; SameSite=None; ADRUM_BT1=R:14|i:3715636|e:70; TS01b7918c=014252a75b5ed59e3210a9350f91a3b6992ae6be8ebf397819d4ea9d46598fe351791bae7b70d2269844e0e0775ed4839e1025e5e6cf4e797231e797f98cc8e377241bfce8f51822a3314714c2d0f41c0fd2379e1d049711898d47c54f3dd2d9d9b35845d6; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

search
                                         82.201.39.181
HTTP/1.1 200 OK
Content-Type: image/jpeg
                                        
Date: Mon, 05 Sep 2022 20:57:31 GMT
Content-Length: 109786
Connection: keep-alive
Cache-Control: no-cache
Last-Modified: Fri, 02 Sep 2022 09:01:43 GMT
Accept-Ranges: bytes
ETag: "af235b9faabed81:0"
Context: 2
X-Frame-Options: sameorigin
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'self' https:; object-src 'self'; frame-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; child-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; style-src 'self' 'unsafe-inline' *.kvk.nl tagmanager.google.com translate.googleapis.com *.mopinion.com https://fonts.googleapis.com *.abtasty.com *.spotify.com; script-src 'self' 'unsafe-eval' *.kvk.nl blob: bat.bing.com www.youtube.com s.ytimg.com channel.me cloudstatic.obi4wan.com *.hotjar.com www.google-analytics.com www.googletagmanager.com tagmanager.google.com *.mopinion.com *.abtasty.com cdn.pushbird.com *.spotify.com webservices.kvk.nl webservices.acp.kvk.nl *.conversationalsdevelopment.nl 'nonce-1kEksS0zJXUb9g0LahNjFfcqtJLbXvDG2F4+t6XaCEg='; img-src 'self' *.kvk.nl blob: data: tr3.onlinesucces.nl www.ondernemersplein.nl bat.bing.com https://www.gstatic.com/images/branding/product/2x/translate_24dp.png www.google-analytics.com www.googletagmanager.com region1.google-analytics.com region1.analytics.google.com *.abtasty.com *.cloudfront.com *.mopinion.com cdn.pushbird.com *.spotify.com; font-src 'self' blob: data: *.kvk.nl https://fonts.gstatic.com static.hotjar.com *.mopinion.com *.abtasty.com *.spotify.com; connect-src 'self' *.kvk.nl wss://*.kvk.nl opendata.ondernemersplein.nl translate.googleapis.com bots.obi4wan.com app.obi4wan.ai *.hotjar.com wss://*.hotjar.com www.google-analytics.com region1.google-analytics.com region1.analytics.google.com script.google.com *.mopinion.com col.eum-appdynamics.com *.abtasty.com sentry.io api.pushbird.com *.spotify.com wss://*.seamly-app.com *.seamly-app.com; frame-ancestors 'self' https://*.kvk.nl; base-uri 'self' *.kvk.nl; report-uri https://acd4a6fc2b303186c154a28c8bda5e62.report-uri.com/r/t/csp/enforce;
kvkpweb: 02
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 376x376, components 3\012- data
Size:   109786
Md5:    7af8b9dbbe0846366ac50299ef060f2e
Sha1:   2aae31fcd73447ec25ee0d644a003b0322109389
Sha256: 2c64d0c74f9c5f8e907708bcb5827fb438e6f04cabbc2d424a9bdeb9db4e9475
                                        
                                            GET /css/print-20.min.css?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: text/css
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 670
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (980), with no line terminators
Size:   670
Md5:    60e60f8354c6201ad0734859e53a9bd1
Sha1:   43d782f7a7760202e606917245fad700d166d5f6
Sha256: 4981bd92981e1af546a5f4dcd62aaee3ec23f1f27498344c0f5a9b7eba3f280e
                                        
                                            GET /css/print.min.css?v=8d74182bec HTTP/1.1 
Host: static.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

search
                                         82.201.39.184
HTTP/1.1 200 OK
Content-Type: text/css
                                        
Cache-Control: no-cache,public,max-age=604800
Content-Encoding: gzip
Last-Modified: Thu, 01 Sep 2022 03:13:34 GMT
Accept-Ranges: bytes
ETag: "043d9d1b0bdd81:0"
Vary: Accept-Encoding
kvkpweb: 01
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: kvkIdpSessionHash, kvkmasterId
Date: Mon, 05 Sep 2022 20:57:33 GMT
Content-Length: 1014
Strict-Transport-Security: max-age=31536000


--- Additional Info ---
Magic:  ASCII text, with very long lines (3039), with no line terminators
Size:   1014
Md5:    8391532ca9b0272cd776f538d6ce4ecb
Sha1:   ff4601f7ec17a784c3bc0a5f7f042aa8ee2a3221
Sha256: d94072525c3ed8ba0fb7fd57565861f2c05153f8c963433f79850ba806b505c3
                                        
                                            GET /download/prent_dromen_bannerblok_tcm109-508571.svg HTTP/1.1 
Host: www.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.kvk.nl/
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; ADRUM_BTa=R:14|g:b64d3928-c790-449e-9c2f-bf8cf1e40beb|n:kvk-online_67b4b448-ba57-484e-9273-6cc35d853c3f; SameSite=None; ADRUM_BT1=R:14|i:3715636|e:70; TS01b7918c=014252a75b5ed59e3210a9350f91a3b6992ae6be8ebf397819d4ea9d46598fe351791bae7b70d2269844e0e0775ed4839e1025e5e6cf4e797231e797f98cc8e377241bfce8f51822a3314714c2d0f41c0fd2379e1d049711898d47c54f3dd2d9d9b35845d6; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

search
                                         82.201.39.181
HTTP/1.1 200 OK
Content-Type: image/svg+xml
                                        
Date: Mon, 05 Sep 2022 20:57:31 GMT
Connection: keep-alive
Cache-Control: no-cache
Last-Modified: Fri, 02 Sep 2022 09:01:43 GMT
ETag: W/"af235b9faabed81:0"
Context: 2
X-Frame-Options: sameorigin
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'self' https:; object-src 'self'; frame-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; child-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; style-src 'self' 'unsafe-inline' *.kvk.nl tagmanager.google.com translate.googleapis.com *.mopinion.com https://fonts.googleapis.com *.abtasty.com *.spotify.com; script-src 'self' 'unsafe-eval' *.kvk.nl blob: bat.bing.com www.youtube.com s.ytimg.com channel.me cloudstatic.obi4wan.com *.hotjar.com www.google-analytics.com www.googletagmanager.com tagmanager.google.com *.mopinion.com *.abtasty.com cdn.pushbird.com *.spotify.com webservices.kvk.nl webservices.acp.kvk.nl *.conversationalsdevelopment.nl 'nonce-7wtqk4SS5ORJpiW2xXFSc6rOoJynPKFJcQ0d3DZ4xjM='; img-src 'self' *.kvk.nl blob: data: tr3.onlinesucces.nl www.ondernemersplein.nl bat.bing.com https://www.gstatic.com/images/branding/product/2x/translate_24dp.png www.google-analytics.com www.googletagmanager.com region1.google-analytics.com region1.analytics.google.com *.abtasty.com *.cloudfront.com *.mopinion.com cdn.pushbird.com *.spotify.com; font-src 'self' blob: data: *.kvk.nl https://fonts.gstatic.com static.hotjar.com *.mopinion.com *.abtasty.com *.spotify.com; connect-src 'self' *.kvk.nl wss://*.kvk.nl opendata.ondernemersplein.nl translate.googleapis.com bots.obi4wan.com app.obi4wan.ai *.hotjar.com wss://*.hotjar.com www.google-analytics.com region1.google-analytics.com region1.analytics.google.com script.google.com *.mopinion.com col.eum-appdynamics.com *.abtasty.com sentry.io api.pushbird.com *.spotify.com wss://*.seamly-app.com *.seamly-app.com; frame-ancestors 'self' https://*.kvk.nl; base-uri 'self' *.kvk.nl; report-uri https://acd4a6fc2b303186c154a28c8bda5e62.report-uri.com/r/t/csp/enforce;
kvkpweb: 02
Content-Encoding: gzip
Strict-Transport-Security: max-age=31536000
Transfer-Encoding: chunked


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- HTML document, ASCII text, with very long lines (28189), with no line terminators
Size:   12076
Md5:    2510c10ce3828acc52257529ea587f2d
Sha1:   3fc6f0ad936955cc8d9b94e5ec5ed6d91ad1cb57
Sha256: abf6e3a18470ccb339982ac59d9f70240203bd4a4ece29cb1ad1bba3c3519402
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

search
                                         23.36.77.32
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "66A17F9B376B79E19D89B01C4F48315C671923B7AC85B506B5026F6657765109"
Last-Modified: Mon, 05 Sep 2022 05:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=3331
Expires: Mon, 05 Sep 2022 21:53:05 GMT
Date: Mon, 05 Sep 2022 20:57:34 GMT
Connection: keep-alive

                                        
                                            GET /v1/geoip?weather=false HTTP/1.1 
Host: dcinfos-cache.abtasty.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://www.kvk.nl
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

search
                                         34.107.143.101
HTTP/2 200 OK
content-type: application/json
                                        
date: Mon, 05 Sep 2022 20:57:34 GMT
vary: Accept-Encoding
x-envoy-upstream-service-time: 5
cache-control: private, max-age=600
content-encoding: gzip
age: 0
x-cache: miss uncacheable
x-restart: 0
access-control-allow-origin: *
strict-transport-security: max-age=31536000; includeSubDomains
accept-ranges: bytes
content-length: 239
server: -
x-envoy-decorator-operation: -
via: 1.1 google
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (416)
Size:   239
Md5:    68398386d7a2777018546ef2bc7d1459
Sha1:   567b7634dd97714eef9af24717e6be6cb646c9d3
Sha256: e7e3b827830b3a6068787a857e6d8b1d26858127921247775657a38bbe08f80f
                                        
                                            GET /download/KVK_ondernemersdagen_08_banner_tcm109-508816.jpg HTTP/1.1 
Host: www.kvk.nl
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.kvk.nl/
Connection: keep-alive
Cookie: IDHUB_SESSION=8-dEI0Mm7vUMuuTArOd!8irQDDy!FF!y; ADRUM_BTa=R:14|g:b64d3928-c790-449e-9c2f-bf8cf1e40beb|n:kvk-online_67b4b448-ba57-484e-9273-6cc35d853c3f; SameSite=None; ADRUM_BT1=R:14|i:3715636|e:70; TS01b7918c=014252a75b5ed59e3210a9350f91a3b6992ae6be8ebf397819d4ea9d46598fe351791bae7b70d2269844e0e0775ed4839e1025e5e6cf4e797231e797f98cc8e377241bfce8f51822a3314714c2d0f41c0fd2379e1d049711898d47c54f3dd2d9d9b35845d6; TS014df7f8=014252a75bc2a9fbe8f1cddaeffe076dc0c1cd01aabf397819d4ea9d46598fe351791bae7bbc4e3335c08a95d1a2e6a20a79d0c1f601aa9da026785dc3f9cd4e4e1524f2e4
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

search
                                         82.201.39.181
HTTP/1.1 200 OK
Content-Type: image/jpeg
                                        
Date: Mon, 05 Sep 2022 20:57:31 GMT
Content-Length: 95915
Connection: keep-alive
Cache-Control: no-cache
Last-Modified: Fri, 02 Sep 2022 09:01:43 GMT
Accept-Ranges: bytes
ETag: "af235b9faabed81:0"
Context: 2
X-Frame-Options: sameorigin
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'self' https:; object-src 'self'; frame-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; child-src 'self' *.kvk.nl channel.me www.youtube.com cloud.reflexappointment.nl iwelcome.sso.eherkenning.nl ehm01.iwelcome.nl opendata.ondernemersplein.nl www.googletagmanager.com *.hotjar.com *.mopinion.com *.soundcloud.com *.youtube-nocookie.com *.spotify.com pushbird.com webservices.kvk.nl webservices.acp.kvk.nl; style-src 'self' 'unsafe-inline' *.kvk.nl tagmanager.google.com translate.googleapis.com *.mopinion.com https://fonts.googleapis.com *.abtasty.com *.spotify.com; script-src 'self' 'unsafe-eval' *.kvk.nl blob: bat.bing.com www.youtube.com s.ytimg.com channel.me cloudstatic.obi4wan.com *.hotjar.com www.google-analytics.com www.googletagmanager.com tagmanager.google.com *.mopinion.com *.abtasty.com cdn.pus