PageSourceSearch

https://eduarth.accademiamoda.it/assets/vendors/bootstrapvalidator/js/bootstrapValidator.min.js

js accademiamoda.it collected 2026-10-04 13:24:12 UTC 170,290 bytes, 3,013 lines download raw bytes

1/*!
2 * BootstrapValidator (http://bootstrapvalidator.com)
3 * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3
4 *
5 * @version     v0.5.3, built on 2014-11-05 9:14:18 PM
6 * @author      https://twitter.com/nghuuphuoc
7 * @copyright   (c) 2013 - 2014 Nguyen Huu Phuoc
8 * @license     Commercial: http://bootstrapvalidator.com/license/
9 *              Non-commercial: http://creativecommons.org/licenses/by-nc-nd/3.0/
10 */
11if ("undefined" == typeof jQuery) throw new Error("BootstrapValidator requires jQuery");
12!function (a) {
13    var b = a.fn.jquery.split(" ")[0].split(".");
14    if (+b[0] < 2 && +b[1] < 9 || 1 === +b[0] && 9 === +b[1] && +b[2] < 1) throw new Error("BootstrapValidator requires jQuery version 1.9.1 or higher")
15}(window.jQuery), function (a) {
16    var b = function (b, c) {
17        this.$form = a(b), this.options = a.extend({}, a.fn.bootstrapValidator.DEFAULT_OPTIONS, c), this.$invalidFields = a([]), this.$submitButton = null, this.$hiddenButton = null, this.STATUS_NOT_VALIDATED = "NOT_VALIDATED", this.STATUS_VALIDATING = "VALIDATING", this.STATUS_INVALID = "INVALID", this.STATUS_VALID = "VALID";
18        var d = function () {
19            for (var a = 3, b = document.createElement("div"), c = b.all || []; b.innerHTML = "<!--[if gt IE " + ++a + "]><br><![endif]-->", c[0];) ;
20            return a > 4 ? a : !a
21        }(), e = document.createElement("div");
22        this._changeEvent = 9 !== d && "oninput" in e ? "input" : "keyup", this._submitIfValid = null, this._cacheFields = {}, this._init()
23    };
24    b.prototype = {
25        constructor: b, _init: function () {
26            var b = this, c = {
27                autoFocus: this.$form.attr("data-bv-autofocus"),
28                container: this.$form.attr("data-bv-container"),
29                events: {
30                    formInit: this.$form.attr("data-bv-events-form-init"),
31                    formError: this.$form.attr("data-bv-events-form-error"),
32                    formSuccess: this.$form.attr("data-bv-events-form-success"),
33                    fieldAdded: this.$form.attr("data-bv-events-field-added"),
34                    fieldRemoved: this.$form.attr("data-bv-events-field-removed"),
35                    fieldInit: this.$form.attr("data-bv-events-field-init"),
36                    fieldError: this.$form.attr("data-bv-events-field-error"),
37                    fieldSuccess: this.$form.attr("data-bv-events-field-success"),
38                    fieldStatus: this.$form.attr("data-bv-events-field-status"),
39                    validatorError: this.$form.attr("data-bv-events-validator-error"),
40                    validatorSuccess: this.$form.attr("data-bv-events-validator-success")
41                },
42                excluded: this.$form.attr("data-bv-excluded"),
43                feedbackIcons: {
44                    valid: this.$form.attr("data-bv-feedbackicons-valid"),
45                    invalid: this.$form.attr("data-bv-feedbackicons-invalid"),
46                    validating: this.$form.attr("data-bv-feedbackicons-validating")
47                },
48                group: this.$form.attr("data-bv-group"),
49                live: this.$form.attr("data-bv-live"),
50                message: this.$form.attr("data-bv-message"),
51                onError: this.$form.attr("data-bv-onerror"),
52                onSuccess: this.$form.attr("data-bv-onsuccess"),
53                submitButtons: this.$form.attr("data-bv-submitbuttons"),
54                threshold: this.$form.attr("data-bv-threshold"),
55                trigger: this.$form.attr("data-bv-trigger"),
56                verbose: this.$form.attr("data-bv-verbose"),
57                fields: {}
58            };
59            this.$form.attr("novalidate", "novalidate").addClass(this.options.elementClass).on("submit.bv", function (a) {
60                a.preventDefault(), b.validate()
61            }).on("click.bv", this.options.submitButtons, function () {
62                b.$submitButton = a(this), b._submitIfValid = !0
63            }).find("[name], [data-bv-field]").each(function () {
64                var d = a(this), e = d.attr("name") || d.attr("data-bv-field"), f = b._parseOptions(d);
65                f && (d.attr("data-bv-field", e), c.fields[e] = a.extend({}, f, c.fields[e]))
66            }), this.options = a.extend(!0, this.options, c), this.$hiddenButton = a("<button/>").attr("type", "submit").prependTo(this.$form).addClass("bv-hidden-submit").css({
67                display: "none",
68                width: 0,
69                height: 0
70            }), this.$form.on("click.bv", '[type="submit"]', function (c) {
71                if (!c.isDefaultPrevented()) {
72                    var d = a(c.target), e = d.is('[type="submit"]') ? d.eq(0) : d.parent('[type="submit"]').eq(0);
73                    !b.options.submitButtons || e.is(b.options.submitButtons) || e.is(b.$hiddenButton) || b.$form.off("submit.bv").submit()
74                }
75            });
76            for (var d in this.options.fields) this._initField(d);
77            this.$form.trigger(a.Event(this.options.events.formInit), {
78                bv: this,
79                options: this.options
80            }), this.options.onSuccess && this.$form.on(this.options.events.formSuccess, function (c) {
81                a.fn.bootstrapValidator.helpers.call(b.options.onSuccess, [c])
82            }), this.options.onError && this.$form.on(this.options.events.formError, function (c) {
83                a.fn.bootstrapValidator.helpers.call(b.options.onError, [c])
84            })
85        }, _parseOptions: function (b) {
86            var c, d, e, f, g, h, i, j, k, l = b.attr("name") || b.attr("data-bv-field"), m = {};
87            for (d in a.fn.bootstrapValidator.validators) if (c = a.fn.bootstrapValidator.validators[d], e = "data-bv-" + d.toLowerCase(), f = b.attr(e) + "", k = "function" == typeof c.enableByHtml5 ? c.enableByHtml5(b) : null, k && "false" !== f || k !== !0 && ("" === f || "true" === f || e === f.toLowerCase())) {
88                c.html5Attributes = a.extend({}, {
89                    message: "message",
90                    onerror: "onError",
91                    onsuccess: "onSuccess"
92                }, c.html5Attributes), m[d] = a.extend({}, k === !0 ? {} : k, m[d]);
93                for (j in c.html5Attributes) g = c.html5Attributes[j], h = "data-bv-" + d.toLowerCase() + "-" + j, i = b.attr(h), i && ("true" === i || h === i.toLowerCase() ? i = !0 : "false" === i && (i = !1), m[d][g] = i)
94            }
95            var n = {
96                autoFocus: b.attr("data-bv-autofocus"),
97                container: b.attr("data-bv-container"),
98                excluded: b.attr("data-bv-excluded"),
99                feedbackIcons: b.attr("data-bv-feedbackicons"),
100                group: b.attr("data-bv-group"),
101                message: b.attr("data-bv-message"),
102                onError: b.attr("data-bv-onerror"),
103                onStatus: b.attr("data-bv-onstatus"),
104                onSuccess: b.attr("data-bv-onsuccess"),
105                selector: b.attr("data-bv-selector"),
106                threshold: b.attr("data-bv-threshold"),
107                trigger: b.attr("data-bv-trigger"),
108                verbose: b.attr("data-bv-verbose"),
109                validators: m
110            }, o = a.isEmptyObject(n), p = a.isEmptyObject(m);
111            return !p || !o && this.options.fields && this.options.fields[l] ? (n.validators = m, n) : null
112        }, _initField: function (b) {
113            var c = a([]);
114            switch (typeof b) {
115                case"object":
116                    c = b, b = b.attr("data-bv-field");
117                    break;
118                case"string":
119                    c = this.getFieldElements(b), c.attr("data-bv-field", b)
120            }
121            if (0 !== c.length && null !== this.options.fields[b] && null !== this.options.fields[b].validators) {
122                var d;
123                for (d in this.options.fields[b].validators) a.fn.bootstrapValidator.validators[d] || delete this.options.fields[b].validators[d];
124                null === this.options.fields[b].enabled && (this.options.fields[b].enabled = !0);
125                for (var e = this, f = c.length, g = c.attr("type"), h = 1 === f || "radio" === g || "checkbox" === g, i = "radio" === g || "checkbox" === g || "file" === g || "SELECT" === c.eq(0).get(0).tagName ? "change" : this._changeEvent, j = (this.options.fields[b].trigger || this.options.trigger || i).split(" "), k = a.map(j, function (a) {
126                    return a + ".update.bv"
127                }).join(" "), l = 0; f > l; l++) {
128                    var m = c.eq(l), n = this.options.fields[b].group || this.options.group, o = m.parents(n),
129                        p = "function" == typeof (this.options.fields[b].container || this.options.container) ? (this.options.fields[b].container || this.options.container).call(this, m, this) : this.options.fields[b].container || this.options.container,
130                        q = p && "tooltip" !== p && "popover" !== p ? a(p) : this._getMessageContainer(m, n);
131                    p && "tooltip" !== p && "popover" !== p && q.addClass("has-error"), q.find('.help-block[data-bv-validator][data-bv-for="' + b + '"]').remove(), o.find('i[data-bv-icon-for="' + b + '"]').remove(), m.off(k).on(k, function () {
132                        e.updateStatus(a(this), e.STATUS_NOT_VALIDATED)
133                    }), m.data("bv.messages", q);
134                    for (d in this.options.fields[b].validators) m.data("bv.result." + d, this.STATUS_NOT_VALIDATED), h && l !== f - 1 || a("<small/>").css("display", "none").addClass("help-block").attr("data-bv-validator", d).attr("data-bv-for", b).attr("data-bv-result", this.STATUS_NOT_VALIDATED).html(this._getMessage(b, d)).appendTo(q), "function" == typeof a.fn.bootstrapValidator.validators[d].init && a.fn.bootstrapValidator.validators[d].init(this, m, this.options.fields[b].validators[d]);
135                    if (this.options.fields[b].feedbackIcons !== !1 && "false" !== this.options.fields[b].feedbackIcons && this.options.feedbackIcons && this.options.feedbackIcons.validating && this.options.feedbackIcons.invalid && this.options.feedbackIcons.valid && (!h || l === f - 1)) {
136                        o.addClass("has-feedback");
137                        var r = a("<i/>").css("display", "none").addClass("form-control-feedback").attr("data-bv-icon-for", b).insertAfter(m);
138                        if ("checkbox" === g || "radio" === g) {
139                            var s = m.parent();
140                            s.hasClass(g) ? r.insertAfter(s) : s.parent().hasClass(g) && r.insertAfter(s.parent())
141                        }
142                        0 === o.find("label").length && r.addClass("bv-no-label"), 0 !== o.find(".input-group").length && r.addClass("bv-icon-input-group").insertAfter(o.find(".input-group").eq(0)), h ? l === f - 1 && c.data("bv.icon", r) : m.data("bv.icon", r), p && m.off("focus.container.bv").on("focus.container.bv", function () {
143                            switch (p) {
144                                case"tooltip":
145                                    a(this).data("bv.icon").tooltip("show");
146                                    break;
147                                case"popover":
148                                    a(this).data("bv.icon").popover("show")
149                            }
150                        }).off("blur.container.bv").on("blur.container.bv", function () {
151                            switch (p) {
152                                case"tooltip":
153                                    a(this).data("bv.icon").tooltip("hide");
154                                    break;
155                                case"popover":
156                                    a(this).data("bv.icon").popover("hide")
157                            }
158                        })
159                    }
160                }
161                switch (c.on(this.options.events.fieldSuccess, function (b, c) {
162                    var d = e.getOptions(c.field, null, "onSuccess");
163                    d && a.fn.bootstrapValidator.helpers.call(d, [b, 
163c])
164                }).on(this.options.events.fieldError, function (b, c) {
165                    var d = e.getOptions(c.field, null, "onError");
166                    d && a.fn.bootstrapValidator.helpers.call(d, [b, c])
167                }).on(this.options.events.fieldStatus, function (b, c) {
168                    var d = e.getOptions(c.field, null, "onStatus");
169                    d && a.fn.bootstrapValidator.helpers.call(d, [b, c])
170                }).on(this.options.events.validatorError, function (b, c) {
171                    var d = e.getOptions(c.field, c.validator, "onError");
172                    d && a.fn.bootstrapValidator.helpers.call(d, [b, c])
173                }).on(this.options.events.validatorSuccess, function (b, c) {
174                    var d = e.getOptions(c.field, c.validator, "onSuccess");
175                    d && a.fn.bootstrapValidator.helpers.call(d, [b, c])
176                }), k = a.map(j, function (a) {
177                    return a + ".live.bv"
178                }).join(" "), this.options.live) {
179                    case"submitted":
180                        break;
181                    case"disabled":
182                        c.off(k);
183                        break;
184                    case"enabled":
185                    default:
186                        c.off(k).on(k, function () {
187                            e._exceedThreshold(a(this)) && e.validateField(a(this))
188                        })
189                }
190                c.trigger(a.Event(this.options.events.fieldInit), {bv: this, field: b, element: c})
191            }
192        }, _getMessage: function (b, c) {
193            if (!(this.options.fields[b] && a.fn.bootstrapValidator.validators[c] && this.options.fields[b].validators && this.options.fields[b].validators[c])) return "";
194            var d = this.options.fields[b].validators[c];
195            switch (!0) {
196                case!!d.message:
197                    return d.message;
198                case!!this.options.fields[b].message:
199                    return this.options.fields[b].message;
200                case!!a.fn.bootstrapValidator.i18n[c]:
201                    return a.fn.bootstrapValidator.i18n[c]["default"];
202                default:
203                    return this.options.message
204            }
205        }, _getMessageContainer: function (a, b) {
206            var c = a.parent();
207            if (c.is(b)) return c;
208            var d = c.attr("class");
209            if (!d) return this._getMessageContainer(c, b);
210            d = d.split(" ");
211            for (var e = d.length, f = 0; e > f; f++) if (/^col-(xs|sm|md|lg)-\d+$/.test(d[f]) || /^col-(xs|sm|md|lg)-offset-\d+$/.test(d[f])) return c;
212            return this._getMessageContainer(c, b)
213        }, _submit: function () {
214            var b = this.isValid(), c = b ? this.options.events.formSuccess : this.options.events.formError,
215                d = a.Event(c);
216            this.$form.trigger(d), this.$submitButton && (b ? this._onSuccess(d) : this._onError(d))
217        }, _isExcluded: function (b) {
218            var c = b.attr("data-bv-excluded"), d = b.attr("data-bv-field") || b.attr("name");
219            switch (!0) {
220                case!!d && this.options.fields && this.options.fields[d] && ("true" === this.options.fields[d].excluded || this.options.fields[d].excluded === !0):
221                case"true" === c:
222                case"" === c:
223                    return !0;
224                case!!d && this.options.fields && this.options.fields[d] && ("false" === this.options.fields[d].excluded || this.options.fields[d].excluded === !1):
225                case"false" === c:
226                    return !1;
227                default:
228                    if (this.options.excluded) {
229                        "string" == typeof this.options.excluded && (this.options.excluded = a.map(this.options.excluded.split(","), function (b) {
230                            return a.trim(b)
231                        }));
232                        for (var e = this.options.excluded.length, f = 0; e > f; f++) if ("string" == typeof this.options.excluded[f] && b.is(this.options.excluded[f]) || "function" == typeof this.options.excluded[f] && this.options.excluded[f].call(this, b, this) === !0) return !0
233                    }
234                    return !1
235            }
236        }, _exceedThreshold: function (b) {
237            var c = b.attr("data-bv-field"), d = this.options.fields[c].threshold || this.options.threshold;
238            if (!d) return !0;
239            var e = -1 !== a.inArray(b.attr("type"), ["button", "checkbox", "file", "hidden", "image", "radio", "reset", "submit"]);
240            return e || b.val().length >= d
241        }, _onError: function (b) {
242            if (!b.isDefaultPrevented()) {
243                if ("submitted" === this.options.live) {
244                    this.options.live = "enabled";
245                    var c = this;
246                    for (var d in this.options.fields) !function (b) {
247                        var e = c.getFieldElements(b);
248                        if (e.length) {
249                            var f = a(e[0]).attr("type"),
250                                g = "radio" === f || "checkbox" === f || "file" === f || "
250SELECT" === a(e[0]).get(0).tagName ? "change" : c._changeEvent,
251                                h = c.options.fields[d].trigger || c.options.trigger || g,
252                                i = a.map(h.split(" "), function (a) {
253                                    return a + ".live.bv"
254                                }).join(" ");
255                            e.off(i).on(i, function () {
256                                c._exceedThreshold(a(this)) && c.validateField(a(this))
257                            })
258                        }
259                    }(d)
260                }
261                for (var e = 0; e < this.$invalidFields.length; e++) {
262                    var f = this.$invalidFields.eq(e), g = this._isOptionEnabled(f.attr("data-bv-field"), "autoFocus");
263                    if (g) {
264                        var h, i = f.parents(".tab-pane");
265                        i && (h = i.attr("id")) && a('a[href="#' + h + '"][data-toggle="tab"]').tab("show"), f.focus();
266                        break
267                    }
268                }
269            }
270        }, _onSuccess: function (a) {
271            a.isDefaultPrevented() || this.disableSubmitButtons(!0).defaultSubmit()
272        }, _onFieldValidated: function (b, c) {
273            var d = b.attr("data-bv-field"), e = this.options.fields[d].validators, f = {}, g = 0,
274                h = {bv: this, field: d, element: b, validator: c, result: b.data("bv.response." + c)};
275            if (c) switch (b.data("bv.result." + c)) {
276                case this.STATUS_INVALID:
277                    b.trigger(a.Event(this.options.events.validatorError), h);
278                    break;
279                case this.STATUS_VALID:
280                    b.trigger(a.Event(this.options.events.validatorSuccess), h)
281            }
282            f[this.STATUS_NOT_VALIDATED] = 0, f[this.STATUS_VALIDATING] = 0, f[this.STATUS_INVALID] = 0, f[this.STATUS_VALID] = 0;
283            for (var i in e) if (e[i].enabled !== !1) {
284                g++;
285                var j = b.data("bv.result." + i);
286                j && f[j]++
287            }
288            f[this.STATUS_VALID] === g ? (this.$invalidFields = this.$invalidFields.not(b), b.trigger(a.Event(this.options.events.fieldSuccess), h)) : (0 === f[this.STATUS_NOT_VALIDATED] || !this._isOptionEnabled(d, "verbose")) && 0 === f[this.STATUS_VALIDATING] && f[this.STATUS_INVALID] > 0 && (this.$invalidFields = this.$invalidFields.add(b), b.trigger(a.Event(this.options.events.fieldError), h))
289        }, _isOptionEnabled: function (a, b) {
290            return !this.options.fields[a] || "true" !== this.options.fields[a][b] && this.options.fields[a][b] !== !0 ? !this.options.fields[a] || "false" !== this.options.fields[a][b] && this.options.fields[a][b] !== !1 ? "true" === this.options[b] || this.options[b] === !0 : !1 : !0
291        }, getFieldElements: function (b) {
292            return this._cacheFields[b] || (this._cacheFields[b] = this.options.fields[b] && this.options.fields[b].selector ? a(this.options.fields[b].selector) : this.$form.find('[name="' + b + '"]')), this._cacheFields[b]
293        }, getOptions: function (a, b, c) {
294            if (!a) return c ? this.options[c] : this.options;
295            if ("object" == typeof a && (a = a.attr("data-bv-field")), !this.options.fields[a]) return null;
296            var d = this.options.fields[a];
297            return b ? d.validators && d.validators[b] ? c ? d.validators[b][c] : d.validators[b] : null : c ? d[c] : d
298        }, disableSubmitButtons: function (a) {
299            return a ? "disabled" !== this.options.live && this.$form.find(this.options.submitButtons).attr("disabled", "disabled") : this.$form.find(this.options.submitButtons).removeAttr("disabled"), this
300        }, validate: function () {
301            if (!this.options.fields) return this;
302            this.disableSubmitButtons(!0), this._submitIfValid = !1;
303            for (var a in this.options.fields) this.validateField(a);
304            return this._submit(), this._submitIfValid = !0, this
305        }, validateField: function (b) {
306            var c = a([]);
307            switch (typeof b) {
308                case"object":
309                    c = b, b = b.attr("data-bv-field");
310                    break;
311                case"string":
312                    c = this.getFieldElements(b)
313            }
314            if (0 === c.length || !this.options.fields[b] || this.options.fields[b].enabled === !1) return this;
315            for (var d, e, f = this, g = c.attr("type"), h = "radio" === g || "checkbox" === g ? 1 : c.length, i = "radio" === g || "checkbox" === g, j = this.options.fields[b].validators, k = this._isOptionEnabled(b, "verbose"), l = 0; h > l; l++) {
316                var m = c.eq(l);
317                if (!this._isExcluded(m)) {
318                    var n = !1;
319                    for (d in j) {
320                        if (m.data("bv.dfs." + d) && m.data("bv.dfs." + d).reject(), n) break;
321                        var o = m.data("bv.result." + d);
322                        if (o !== this.STATUS_VALID && o !== this.STATUS_INVALID) if (j[d].enabled !== !1) {
323                            if (m.data("bv.result." + d, this.STATUS_VALIDATING), e = a.fn.bootstrapValidator.validators[d].validate(this, m, j[d]), "object" == typeof e && e.resolve) this.updateStatus(i ? b : m, this.STATUS_VALIDATING, d), m.data("bv.dfs." + d, e), e.done(function (a, b, c) {
324                                a.removeData("bv.dfs." + b).data("bv.response." + b, c), c.message && f.updateMessage(
324a, b, c.message), f.updateStatus(i ? a.attr("data-bv-field") : a, c.valid ? f.STATUS_VALID : f.STATUS_INVALID, b), c.valid && f._submitIfValid === !0 ? f._submit() : c.valid || k || (n = !0)
325                            }); else if ("object" == typeof e && void 0 !== e.valid && void 0 !== e.message) {
326                                if (m.data("bv.response." + d, e), this.updateMessage(i ? b : m, d, e.message), this.updateStatus(i ? b : m, e.valid ? this.STATUS_VALID : this.STATUS_INVALID, d), !e.valid && !k) break
327                            } else if ("boolean" == typeof e && (m.data("bv.response." + d, e), this.updateStatus(i ? b : m, e ? this.STATUS_VALID : this.STATUS_INVALID, d), !e && !k)) break
328                        } else this.updateStatus(i ? b : m, this.STATUS_VALID, d); else this._onFieldValidated(m, d)
329                    }
330                }
331            }
332            return this
333        }, updateMessage: function (b, c, d) {
334            var e = a([]);
335            switch (typeof b) {
336                case"object":
337                    e = b, b = b.attr("data-bv-field");
338                    break;
339                case"string":
340                    e = this.getFieldElements(b)
341            }
342            e.each(function () {
343                a(this).data("bv.messages").find('.help-block[data-bv-validator="' + c + '"][data-bv-for="' + b + '"]').html(d)
344            })
345        }, updateStatus: function (b, c, d) {
346            var e = a([]);
347            switch (typeof b) {
348                case"object":
349                    e = b, b = b.attr("data-bv-field");
350                    break;
351                case"string":
352                    e = this.getFieldElements(b)
353            }
354            c === this.STATUS_NOT_VALIDATED && (this._submitIfValid = !1);
355            for (var f = this, g = e.attr("type"), h = this.options.fields[b].group || this.options.group, i = "radio" === g || "checkbox" === g ? 1 : e.length, j = 0; i > j; j++) {
356                var k = e.eq(j);
357                if (!this._isExcluded(k)) {
358                    var l = k.parents(h), m = k.data("bv.messages"),
359                        n = m.find('.help-block[data-bv-validator][data-bv-for="' + b + '"]'),
360                        o = d ? n.filter('[data-bv-validator="' + d + '"]') : n, p = k.data("bv.icon"),
361                        q = "function" == typeof (this.options.fields[b].container || this.options.container) ? (this.options.fields[b].container || this.options.container).call(this, k, this) : this.options.fields[b].container || this.options.container,
362                        r = null;
363                    if (d) k.data("bv.result." + d, c); else for (var s in this.options.fields[b].validators) k.data("bv.result." + s, c);
364                    o.attr("data-bv-result", c);
365                    var t, u, v = k.parents(".tab-pane");
366                    switch (v && (t = v.attr("id")) && (u = a('a[href="#' + t + '"][data-toggle="tab"]').parent()), c) {
367                        case this.STATUS_VALIDATING:
368                            r = null, this.disableSubmitButtons(!0), l.removeClass("has-success").removeClass("has-error"), p && p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.invalid).addClass(this.options.feedbackIcons.validating).show(), u && u.removeClass("bv-tab-success").removeClass("bv-tab-error");
369                            break;
370                        case this.STATUS_INVALID:
371                            r = !1, this.disableSubmitButtons(!0), l.removeClass("has-success").addClass("has-error"), p && p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.validating).addClass(this.options.feedbackIcons.invalid).show(), u && u.removeClass("bv-tab-success").addClass("bv-tab-error");
372                            break;
373                        case this.STATUS_VALID:
374                            r = 0 === n.filter('[data-bv-result="' + this.STATUS_NOT_VALIDATED + '"]').length ? n.filter('[data-bv-result="' + this.STATUS_VALID + '"]').length === n.length : null, null !== r && (this.disableSubmitButtons(this.$submitButton ? !this.isValid() : !r), p && p.removeClass(this.options.feedbackIcons.invalid).removeClass(this.options.feedbackIcons.validating).removeClass(this.options.feedbackIcons.valid).addClass(r ? this.options.feedbackIcons.valid : this.options.feedbackIcons.invalid).show()), l.removeClass("has-error has-success").addClass(this.isValidContainer(l) ? "has-success" : "has-error"), u && u.removeClass("bv-tab-success").removeClass("bv-tab-error").addClass(this.isValidContainer(v) ? "bv-tab-success" : "bv-tab-error");
375                            break;
376                        case this.STATUS_NOT_VALIDATED:
377                        default:
378                            r = null, this.disableSubmitButtons(!1), l.removeClass("has-success").removeClass("has-error"), p && p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.invalid).removeClass(this.options.feedbackIcons.validating).hide(), u && u.removeClass("bv-tab-success").removeClass("bv-tab-error")
379                    }
380                    switch (!0) {
381                        case p && "tooltip" === q:
382                            r === !1 ? p.css("cursor", "pointer").tooltip("destroy").tooltip({
383                                container: "body",
384                                html: !0,
385                                placement: "auto top",
386                                title: n.filter('[data-bv-result="' + f.STATUS_INVALID + '"]').eq(0).html()
387                            }) : p.css("cursor", "").tooltip("destroy");
388                            break;
389                        case p && "popover" === q:
390                            r === !1 ? p.css("cursor", "pointer").popover("destroy").popover({
391                                container: "body",
392                                content: n.filter('[data-bv-result="' + f.STATUS_INVALID + '"]').eq(0).html(),
393                                html: !0,
394                                placement: "auto top",
395                                trigger: "hover click"
396                            }) : p.css("cursor", "").popover("destroy");
397                            break;
398                        default:
399                            c === this.STATUS_INVALID ? o.show() : o.hide()
400                    }
401                    k.trigger(a.Event(this.options.events.fieldStatus), {
402                        bv: this,
403                        field: b,
404                        element: k,
405                        status: c
406                    }), this._onFieldValidated(k, d)
407                }
408            }
409            return this
410        }, isValid: function () {
411            for (var a in this.options.fields) if (!this.isValidField(a)) return !1;
412            return !0
413        }, isValidField: function (b) {
414            var c = a([]);
415            switch (typeof b) {
416                case"object":
417                    c = b, b = b.attr("data-bv-field");
418                    break;
419                case"string":
420                    c = this.getFieldElements(b)
421            }
422            if (0 === c.length || !this.options.fields[b] || this.options.fields[b].enabled === !1) return !0;
423            for (var d, e, f, g = c.attr("type"), h = "radio" === g || "checkbox" === g ? 1 : c.length, i = 0; h > i; i++) if (d = c.eq(i), !this._isExcluded(d)) for (e in this.options.fields[b].validators) if (this.options.fields[b].validators[e].enabled !== !1 && (f = d.data("bv.result." + e), f !== this.STATUS_VALID)) return !1;
424            return !0
425        }, isValidContainer: function (b) {
426            var c = this, d = {}, e = "string" == typeof b ? a(b) : b;
427            if (0 === e.length) return !0;
428            e.find("[data-bv-field]").each(function () {
429                var b = a(this), e = b.attr("data-bv-field");
430                c._isExcluded(b) || d[e] || (d[e] = b)
431            });
432            for (var f in d) {
433                var g = d[f];
434                if (g.data("bv.messages").find('.help-block[data-bv-validator][data-bv-for="' + f + '"]').filter('[data-bv-result="' + this.STATUS_INVALID + '"]').length > 0) return !1
435            }
436            return !0
437        }, defaultSubmit: function () {
438            this.$submitButton && a("<input/>").attr("type", "hidden").attr("data-bv-submit-hidden", "").attr("name", this.$submitButton.attr("name")).val(this.$submitButton.val()).appendTo(this.$form), this.$form.off("submit.bv").submit()
439        }, getInvalidFields: function () {
440            return this.$invalidFields
441        }, getSubmitButton: function () {
442            return this.$submitButton
443        }, getMessages: function (b, c) {
444            var d = this, e = [], f = a([]);
445            switch (!0) {
446                case b && "object" == typeof b:
447                    f = b;
448                    break;
449                case b && "string" == typeof b:
450                    var g = this.getFieldElements(b);
451                    if (g.length > 0) {
452                        var h = g.attr("type");
453                        f = "radio" === h || "checkbox" === h ? g.eq(0) : g
454                    }
455                    break;
456                default:
457                    f = this.$invalidFields
458            }
459            var i = c ? '[data-bv-validator="' + c + '"]' : "";
460            return f.each(function () {
461                e = e.concat(a(this).data("bv.messages").find('.help-block[data-bv-for="' + a(this).attr("data-bv-field") + '"][data-bv-result="' + d.STATUS_INVALID + '"]' + i).map(function () {
462                    var b = a(this).attr("data-bv-validator"), c = a(this).attr("data-bv-for");
463                    return d.options.fields[c].validators[b].enabled === !1 ? "" : a(this).html()
464                }).get())
465            }), e
466        }, updateOption: function (a, b, c, d) {
467            return "object" == typeof a && (a = a.attr("data-bv-field")), this.options.fields[a] && this.options.fields[a].validators[b] && (this.options.fields[a].validators[b][c] = d, this.updateStatus(a, this.STATUS_NOT_VALIDATED, b)), this
468        }, addField: function (b, c) {
469            var d = a([]);
470            switch (typeof b) {
471                case"object":
472                    d = b, b = b.attr("data-bv-field") || b.attr("name");
473                    break;
474                case"string":
475                    delete this._cacheFields[b], d = this.getFieldElements(b)
476            }
477            d.attr("data-bv-field", b);
478            for (var e = d.attr("type"), f = "radio" === e || "checkbox" === e ? 1 : d.length, g = 0; f > g; g++) {
479                var h = d.eq(g), i = this._parseOptions(h);
480                i = null === i ? c : a.extend(!0, c, i), this.options.fields[b] = a.extend(!0, this.options.fields[b], i), this._cacheFields[b] = this._cacheFields[b] ? this._cacheFields[b].add(h) : h, this._initField("checkbox" === e || "radio" === e ? b : h)
481            }
482            return this.disableSubmitButtons(!1), this.$form.trigger(a.Event(this.options.events.fieldAdded), {
483                field: b,
484                element: d,
485                options: this.options.fields[b]
486            }), this
487        }, removeField: function (b) {
488            var c = a([]);
489            switch (typeof b) {
490                case"object":
491                    c = b, b = b.attr("data-bv-field") || b.attr("name"), c.attr("data-bv-field", b);
492                    break;
493                case"string":
494                    c = this.getFieldElements(b)
495            }
496            if (0 === c.length) return this;
497            for (var d = c.attr("type"), e = "radio" === d || "checkbox" === d ? 1 : c.length, f = 0; e > f; f++) {
498                var g = c.eq(f);
499                this.$invalidFields = this.$invalidFields.not(g), this._cacheFields[b] = this._cacheFields[b].not(g)
500            }
501            return this._cacheFields[b] && 0 !== this._cacheFields[b].length || delete this.options.fields[b], ("checkbox" === d || "radio" === d) && this._initField(b), this.disableSubmitButtons(!1), this.$form.trigger(a.Event(this.options.events.fieldRemoved), {
502                field: b,
503                element: c
504            }), this
505        }, resetField: function (b, c) {
506            var d = a([]);
507            switch (typeof b) {
508                case"object":
509                    d = b, b = b.attr("data-bv-field");
510                    break;
511                case"string":
512                    d = this.getFieldElements(b)
513            }
514            var e = d.length;
515            if (this.options.fields[b]) for (var f = 0; e > f; f++) for (var g in this.options.fields[b].validators) d.eq(f).removeData("bv.dfs." + g);
516            if (this.updateStatus(b, this.STATUS_NOT_VALIDATED), c) {
517                var h = d.attr("type");
518                "radio" === h || "checkbox" === h ? d.removeAttr("checked").removeAttr("selected") : d.val("")
519            }
520            return this
521        }, resetForm: function (b) {
522            for (var c in this.options.fields) this.resetField(c, b);
523            return this.$invalidFields = a([]), this.$submitButton = null, this.disableSubmitButtons(!1), this
524        }, revalidateField: function (a) {
525            return this.updateStatus(a, this.STATUS_NOT_VALIDATED).validateField(a), this
526        }, enableFieldValidators: function (a, b, c) {
527            var d = this.options.fields[a].validators;
528            if (c && d && d[c] && d[c].enabled !== b) this.options.fields[a].validators[c].enabled = b, this.updateStatus(a, this.STATUS_NOT_VALIDATED, c); else if (!c && this.options.fields[a].enabled !== b) {
529                this.options.fields[a].enabled = b;
530                for (var e in d) this.enableFieldValidators(a, b, e)
531            }
532            return this
533        }, getDynamicOption: function (b, c) {
534            var d = "string" == typeof b ? this.getFieldElements(b) : b, e = d.val();
535            if ("function" == typeof c) return a.fn.bootstrapValidator.helpers.call(c, [e, this, d]);
536            if ("string" == typeof c) {
537                var f = this.getFieldElements(c);
538                return f.length ? f.val() : a.fn.bootstrapValidator.helpers.call(c, [e, this, d]) || c
539            }
540            return null
541        }, destroy: function () {
542            var b, c, d, e, f, g;
543            for (b in this.options.fields) {
544                c = this.getFieldElements(b), g = this.options.fields[b].group || this.options.group;
545                for (var h = 0; h < c.length; h++) {
546                    if (d = c.eq(h), d.data("bv.messages").find('.help-block[data-bv-validator][data-bv-for="' + b + '"]').remove().end().end().removeData("bv.messages").parents(g).removeClass("has-feedback has-error has-success").end().off(".bv").removeAttr("data-bv-field"), f = d.data("bv.icon")) {
547                        var i = "function" == typeof (this.options.fields[b].container || this.options.container) ? (this.options.fields[b].container || this.options.container).call(this, d, this) : this.options.fields[b].container || this.options.container;
548                        switch (i) {
549                            case"tooltip":
550                                f.tooltip("destroy").remove();
551                                break;
552                            case"popover":
553                                f.popover("destroy").remove();
554                                break;
555                            default:
556                                f.remove()
557                        }
558                    }
559                    d.removeData("bv.icon");
560                    for (e in this.options.fields[b].validators) d.data("bv.dfs." + e) && d.data("bv.dfs." + e).reject(), d.removeData("bv.result." + e).removeData("bv.response." + e).removeData("bv.dfs." + e), "function" == typeof a.fn.bootstrapValidator.validators[e].destroy && a.fn.bootstrapValidator.validators[e].destroy(this, d, this.options.fields[b].validators[e])
561                }
562            }
563            this.disableSubmitButtons(!1), this.$hiddenButton.remove(), this.$form.removeClass(this.options.elementClass).off(".bv").removeData("bootstrapValidator").find("[data-bv-submit-hidden]").remove().end().find('[type="submit"]').off("
563click.bv")
564        }
565    }, a.fn.bootstrapValidator = function (c) {
566        var d = arguments;
567        return this.each(function () {
568            var e = a(this), f = e.data("bootstrapValidator"), g = "object" == typeof c && c;
569            f || (f = new b(this, g), e.data("bootstrapValidator", f)), "string" == typeof c && f[c].apply(f, Array.prototype.slice.call(d, 1))
570        })
571    }, a.fn.bootstrapValidator.DEFAULT_OPTIONS = {
572        autoFocus: !0,
573        container: null,
574        elementClass: "bv-form",
575        events: {
576            formInit: "init.form.bv",
577            formError: "error.form.bv",
578            formSuccess: "success.form.bv",
579            fieldAdded: "added.field.bv",
580            fieldRemoved: "removed.field.bv",
581            fieldInit: "init.field.bv",
582            fieldError: "error.field.bv",
583            fieldSuccess: "success.field.bv",
584            fieldStatus: "status.field.bv",
585            validatorError: "error.validator.bv",
586            validatorSuccess: "success.validator.bv"
587        },
588        excluded: [":disabled", ":hidden", ":not(:visible)"],
589        feedbackIcons: {valid: null, invalid: null, validating: null},
590        fields: null,
591        group: ".form-group",
592        live: "enabled",
593        message: "This value is not valid",
594        submitButtons: '[type="submit"]',
595        threshold: null,
596        verbose: !0
597    }, a.fn.bootstrapValidator.validators = {}, a.fn.bootstrapValidator.i18n = {}, a.fn.bootstrapValidator.Constructor = b, a.fn.bootstrapValidator.helpers = {
598        call: function (a, b) {
599            if ("function" == typeof a) return a.apply(this, b);
600            if ("string" == typeof a) {
601                "()" === a.substring(a.length - 2) && (a = a.substring(0, a.length - 2));
602                for (var c = a.split("."), d = c.pop(), e = window, f = 0; f < c.length; f++) e = e[c[f]];
603                return "undefined" == typeof e[d] ? null : e[d].apply(this, b)
604            }
605        }, format: function (b, c) {
606            a.isArray(c) || (c = [c]);
607            for (var d in c) b = b.replace("%s", c[d]);
608            return b
609        }, date: function (a, b, c, d) {
610            if (isNaN(a) || isNaN(b) || isNaN(c)) return !1;
611            if (c.length > 2 || b.length > 2 || a.length > 4) return !1;
612            if (c = parseInt(c, 10), b = parseInt(b, 10), a = parseInt(a, 10), 1e3 > a || a > 9999 || 0 >= b || b > 12) return !1;
613            var e = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
614            if ((a % 400 === 0 || a % 100 !== 0 && a % 4 === 0) && (e[1] = 29), 0 >= c || c > e[b - 1]) return !1;
615            if (d === !0) {
616                var f = new Date, g = f.getFullYear(), h = f.getMonth(), i = f.getDate();
617                return g > a || a === g && h > b - 1 || a === g && b - 1 === h && i > c
618            }
619            return !0
620        }, luhn: function (a) {
621            for (var b = a.length, c = 0, d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]], e = 0; b--;) e += d[c][parseInt(a.charAt(b), 10)], c ^= 1;
622            return e % 10 === 0 && e > 0
623        }, mod11And10: function (a) {
624            for (var b = 5, c = a.length, d = 0; c > d; d++) b = (2 * (b || 10) % 11 + parseInt(a.charAt(d), 10)) % 10;
625            return 1 === b
626        }, mod37And36: function (a, b) {
627            b = b || "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
628            for (var c = b.length, d = a.length, e = Math.floor(c / 2), f = 0; d > f; f++) e = (2 * (e || c) % (c + 1) + b.indexOf(a.charAt(f))) % c;
629            return 1 === e
630        }
631    }
632}(window.jQuery), function (a) {
633    a.fn.bootstrapValidator.i18n.base64 = a.extend(a.fn.bootstrapValidator.i18n.base64 || {}, {"default": "Please enter a valid base 64 encoded"}), a.fn.bootstrapValidator.validators.base64 = {
634        validate: function (a, b) {
635            var c = b.val();
636            return "" === c ? !0 : /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/.test(c)
637        }
638    }
639}(window.jQuery), function (a) {
640    a.fn.bootstrapValidator.i18n.between = a.extend(a.fn.bootstrapValidator.i18n.between || {}, {
641        "default": "Please enter a value between %s and %s",
642        notInclusive: "Please enter a value between %s and %s strictly"
643    }), a.fn.bootstrapValidator.validators.between = {
644        html5Attributes: {
645            message: "message",
646            min: "min",
647            max: "max",
648            inclusive: "inclusive"
649        }, enableByHtml5: function (a) {
650            return "range" === a.attr("type") ? {min: a.attr("min"), max: a.attr("max")}
650 : !1
651        }, validate: function (b, c, d) {
652            var e = c.val();
653            if ("" === e) return !0;
654            if (e = this._format(e), !a.isNumeric(e)) return !1;
655            var f = a.isNumeric(d.min) ? d.min : b.getDynamicOption(c, d.min),
656                g = a.isNumeric(d.max) ? d.max : b.getDynamicOption(c, d.max), h = this._format(f), i = this._format(g);
657            return e = parseFloat(e), d.inclusive === !0 || void 0 === d.inclusive ? {
658                valid: e >= h && i >= e,
659                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.between["default"], [f, g])
660            } : {
661                valid: e > h && i > e,
662                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.between.notInclusive, [f, g])
663            }
664        }, _format: function (a) {
665            return (a + "").replace(",", ".")
666        }
667    }
668}(window.jQuery), function (a) {
669    a.fn.bootstrapValidator.validators.blank = {
670        validate: function () {
671            return !0
672        }
673    }
674}(window.jQuery), function (a) {
675    a.fn.bootstrapValidator.i18n.callback = a.extend(a.fn.bootstrapValidator.i18n.callback || {}, {"default": "Please enter a valid value"}), a.fn.bootstrapValidator.validators.callback = {
676        html5Attributes: {
677            message: "message",
678            callback: "callback"
679        }, validate: function (b, c, d) {
680            var e = c.val(), f = new a.Deferred, g = {valid: !0};
681            if (d.callback) {
682                var h = a.fn.bootstrapValidator.helpers.call(d.callback, [e, b, c]);
683                g = "boolean" == typeof h ? {valid: h} : h
684            }
685            return f.resolve(c, "callback", g), f
686        }
687    }
688}(window.jQuery), function (a) {
689    a.fn.bootstrapValidator.i18n.choice = a.extend(a.fn.bootstrapValidator.i18n.choice || {}, {
690        "default": "Please enter a valid value",
691        less: "Please choose %s options at minimum",
692        more: "Please choose %s options at maximum",
693        between: "Please choose %s - %s options"
694    }), a.fn.bootstrapValidator.validators.choice = {
695        html5Attributes: {message: "message", min: "min", max: "max"},
696        validate: function (b, c, d) {
697            var e = c.is("select") ? b.getFieldElements(c.attr("data-bv-field")).find("option").filter(":selected").length : b.getFieldElements(c.attr("data-bv-field")).filter(":checked").length,
698                f = d.min ? a.isNumeric(d.min) ? d.min : b.getDynamicOption(c, d.min) : null,
699                g = d.max ? a.isNumeric(d.max) ? d.max : b.getDynamicOption(c, d.max) : null, h = !0,
700                i = d.message || a.fn.bootstrapValidator.i18n.choice["default"];
701            switch ((f && e < parseInt(f, 10) || g && e > parseInt(g, 10)) && (h = !1), !0) {
702                case!!f && !!g:
703                    i = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.choice.between, [parseInt(f, 10), parseInt(g, 10)]);
704                    break;
705                case!!f:
706                    i = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.choice.less, parseInt(f, 10));
707                    break;
708                case!!g:
709                    i = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.choice.more, parseInt(g, 10))
710            }
711            return {valid: h, message: i}
712        }
713    }
714}(window.jQuery), function (a) {
715    a.fn.bootstrapValidator.i18n.color = a.extend(a.fn.bootstrapValidator.i18n.color || {}, {"default": "Please enter a valid color"}), a.fn.bootstrapValidator.validators.color = {
716        SUPPORTED_TYPES: ["hex", "rgb", "rgba", "hsl", "hsla", "keyword"],
717        KEYWORD_COLORS: ["aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "green", "greenyellow", "grey", "honeydew", "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "n
717avy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "transparent", "turquoise", "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen"],
718        validate: function (b, c, d) {
719            var e = c.val();
720            if ("" === e) return !0;
721            var f = d.type || this.SUPPORTED_TYPES;
722            a.isArray(f) || (f = f.replace(/s/g, "").split(","));
723            for (var g, h, i = !1, j = 0; j < f.length; j++) if (h = f[j], g = "_" + h.toLowerCase(), i = i || this[g](e)) return !0;
724            return !1
725        },
726        _hex: function (a) {
727            return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a)
728        },
729        _hsl: function (a) {
730            return /^hsl\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/.test(a)
731        },
732        _hsla: function (a) {
733            return /^hsla\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/.test(a)
734        },
735        _keyword: function (b) {
736            return a.inArray(b, this.KEYWORD_COLORS) >= 0
737        },
738        _rgb: function (a) {
739            var b = /^rgb\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){2}(\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*)\)$/,
740                c = /^rgb\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/;
741            return b.test(a) || c.test(a)
742        },
743        _rgba: function (a) {
744            var b = /^rgba\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/,
745                c = /^rgba\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/;
746            return b.test(a) || c.test(a)
747        }
748    }
749}(window.jQuery), function (a) {
750    a.fn.bootstrapValidator.i18n.creditCard = a.extend(a.fn.bootstrapValidator.i18n.creditCard || {}, {"default": "Please enter a valid credit card number"}), a.fn.bootstrapValidator.validators.creditCard = {
751        validate: function (b, c) {
752            var d = c.val();
753            if ("" === d) return !0;
754            if (/[^0-9-\s]+/.test(d)) return !1;
755            if (d = d.replace(/\D/g, ""), !a.fn.bootstrapValidator.helpers.luhn(d)) return !1;
756            var e, f, g = {
757                AMERICAN_EXPRESS: {length: [15], prefix: ["34", "37"]},
758                DINERS_CLUB: {length: [14], prefix: ["300", "301", "302", "303", "304", "305", "36"]},
759                DINERS_CLUB_US: {length: [16], prefix: ["54", "55"]},
760                DISCOVER: {
761                    length: [16],
762                    prefix: ["6011", "622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925", "644", "645", "646", "647", "648", "649", "65"]
763                },
764                JCB: {length: [16], prefix: ["3528", "3529", "353", "354", "355", "356", "357", "358"]},
765                LASER: {length: [16, 17, 18, 19], prefix: ["6304", "6706", "6771", "6709"]},
766                MAESTRO: {
767                    length: [12, 13, 14, 15, 16, 17, 18, 19],
768                    prefix: ["5018", "5020", "5038", "6304", "6759", "6761", "6762", "6763", "6764", "6765", "6766"]
769                },
770                MASTERCARD: {length: [16], prefix: ["51", "52", "53", "54", "55"]},
771                SOLO: {length: [16, 18, 19], prefix: ["6334", "6767"]},
772                UNIONPAY: {
773                    length: [16, 17, 18, 19],
774                    prefix: ["622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925"]
775                },
776                VISA: {length: [16], prefix: ["4"]}
777            };
778            for (e in g) for (f in g[e].prefix) if (d.substr(0, g[e].prefix[f].length) === g[e].prefix[f] && -1 !== a.inArray(d.length, g[e].length)) return !0;
779            return !1
780        }
781    }
782}(window.jQuery), function (a) {
783    a.fn.bootstrapValidator.i18n.cusip = a.extend(a.fn.bootstrapValidator.i18n.cusip || {}, {"default": "Please enter a valid CUSIP number"}), a.fn.bootstrapValidator.validators.cusip = {
784        validate: function (b, c) {
785            var d = c.val();
786            if ("" === d) return !0;
787            if (d = d.toUpperCase(), !/^[0-9A-Z]{9}$/.test(d)) return !1;
788            for (var e = a.map(d.split(""), function (a) {
789                var b = a.charCodeAt(0);
790                return b >= "A".charCodeAt(0) && b <= "Z".charCodeAt(0) ? b - "A".charCodeAt(0) + 10 : a
791            }), f = e.length, g = 0, h = 0; f - 1 > h; h++) {
792                var i = parseInt(e[h], 10);
793                h % 2 !== 0 && (i *= 2), i > 9 && (i -= 9), g += i
794            }
795            return g = (10 - g % 10) % 10, g === e[f - 1]
796        }
797    }
798}(window.jQuery), function (a) {
799    a.fn.bootstrapValidator.i18n.cvv = a.extend(a.fn.bootstrapValidator.i18n.cvv || {}, {"default": "Please enter a valid CVV number"}), a.fn.bootstrapValidator.validators.cvv = {
vendor: 16,101 bytes, lines 800-1079
800        html5Attributes: {message: "message", ccfield: "creditCardField"}, validate: function (b, c, d) {
801            var e = c.val();
802            if ("" === e) return !0;
803            if (!/^[0-9]{3,4}$/.test(e)) return !1;
804            if (!d.creditCardField) return !0;
805            var f = b.getFieldElements(d.creditCardField).val();
806            if ("" === f) return !0;
807            f = f.replace(/\D/g, "");
808            var g, h, i = {
809                AMERICAN_EXPRESS: {length: [15], prefix: ["34", "37"]},
810                DINERS_CLUB: {length: [14], prefix: ["300", "301", "302", "303", "304", "305", "36"]},
811                DINERS_CLUB_US: {length: [16], prefix: ["54", "55"]},
812                DISCOVER: {
813                    length: [16],
814                    prefix: ["6011", "622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925", "644", "645", "646", "647", "648", "649", "65"]
815                },
816                JCB: {length: [16], prefix: ["3528", "3529", "353", "354", "355", "356", "357", "358"]},
817                LASER: {length: [16, 17, 18, 19], prefix: ["6304", "6706", "6771", "6709"]},
818                MAESTRO: {
819                    length: [12, 13, 14, 15, 16, 17, 18, 19],
820                    prefix: ["5018", "5020", "5038", "6304", "6759", "6761", "6762", "6763", "6764", "6765", "6766"]
821                },
822                MASTERCARD: {length: [16], prefix: ["51", "52", "53", "54", "55"]},
823                SOLO: {length: [16, 18, 19], prefix: ["6334", "6767"]},
824                UNIONPAY: {
825                    length: [16, 17, 18, 19],
826                    prefix: ["622126", "622127", "622128", "622129", "62213", "62214", "62215", "62216", "62217", "62218", "62219", "6222", "6223", "6224", "6225", "6226", "6227", "6228", "62290", "62291", "622920", "622921", "622922", "622923", "622924", "622925"]
827                },
828                VISA: {length: [16], prefix: ["4"]}
829            }, j = null;
830            for (g in i) for (h in i[g].prefix) if (f.substr(0, i[g].prefix[h].length) === i[g].prefix[h] && -1 !== a.inArray(f.length, i[g].length)) {
831                j = g;
832                break
833            }
834            return null === j ? !1 : "AMERICAN_EXPRESS" === j ? 4 === e.length : 3 === e.length
835        }
836    }
837}(window.jQuery), function (a) {
838    a.fn.bootstrapValidator.i18n.date = a.extend(a.fn.bootstrapValidator.i18n.date || {}, {
839        "default": "Please enter a valid date",
840        min: "Please enter a date after %s",
841        max: "Please enter a date before %s",
842        range: "Please enter a date in the range %s - %s"
843    }), a.fn.bootstrapValidator.validators.date = {
844        html5Attributes: {message: "message", format: "format", min: "min", max: "max", separator: "separator"},
845        validate: function (b, c, d) {
846            var e = c.val();
847            if ("" === e) return !0;
848            d.format = d.format || "MM/DD/YYYY", "date" === c.attr("type") && (d.format = "YYYY-MM-DD");
849            var f = d.format.split(" "), g = f[0], h = f.length > 1 ? f[1] : null, i = f.length > 2 ? f[2] : null,
850                j = e.split(" "), k = j[0], l = j.length > 1 ? j[1] : null;
851            if (f.length !== j.length) return {
852                valid: !1,
853                message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
854            };
855            var m = d.separator;
856            if (m || (m = -1 !== k.indexOf("/") ? "/" : -1 !== k.indexOf("-") ? "-" : null), null === m || -1 === k.indexOf(m)) return {
857                valid: !1,
858                message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
859            };
860            if (k = k.split(m), g = g.split(m), k.length !== g.length) return {
861                valid: !1,
862                message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
863            };
864            var n = k[a.inArray("YYYY", g)], o = k[a.inArray("MM", g)], p = k[a.inArray("DD", g)];
865            if (!n || !o || !p || 4 !== n.length) return {
866                valid: !1,
867                message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
868            };
869            var q = null, r = null, s = null;
870            if (h) {
871                if (h = h.split(":"), l = l.split(":"), h.length !== l.length) return {
872                    valid: !1,
873                    message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
874                };
875                if (r = l.length > 0 ? l[0] : null, q = l.length > 1 ? l[1] : null, s = l.length > 2 ? l[2] : null) {
876                    if (isNaN(s) || s.length > 2) return {
877                        valid: !1,
878                        message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
879                    };
880                    if (s = parseInt(s, 10), 0 > s || s > 60) return {
881                        valid: !1,
882                        message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
883                    }
884                }
885                if (r) {
886                    if (isNaN(r) || r.length > 2) return {
887                        valid: !1,
888                        message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
889                    };
890                    if (r = parseInt(r, 10), 0 > r || r >= 24 || i && r > 12) return {
891                        valid: !1,
892                        message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
893                    }
894                }
895                if (q) {
896                    if (isNaN(q) || q.length > 2) return {
897                        valid: !1,
898                        message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
899                    };
900                    if (q = parseInt(q, 10), 0 > q || q > 59) return {
901                        valid: !1,
902                        message: d.message || a.fn.bootstrapValidator.i18n.date["default"]
903                    }
904                }
905            }
906            var t = a.fn.bootstrapValidator.helpers.date(n, o, p),
907                u = d.message || a.fn.bootstrapValidator.i18n.date["default"], v = null, w = null, x = d.min, y = d.max;
908            switch (x && (isNaN(Date.parse(x)) && (x = b.getDynamicOption(c, x)), v = this._parseDate(x, g, m)), y && (isNaN(Date.parse(y)) && (y = b.getDynamicOption(c, y)), w = this._parseDate(y, g, m)), k = new Date(n, o, p, r, q, s), !0) {
909                case x && !y && t:
910                    t = k.getTime() >= v.getTime(), u = d.message || a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.date.min, x);
911                    break;
912                case y && !x && t:
913                    t = k.getTime() <= w.getTime(), u = d.message || a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.date.max, y);
914                    break;
915                case y && x && t:
916                    t = k.getTime() <= w.getTime() && k.getTime() >= v.getTime(), u = d.message || a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.date.range, [x, y])
917            }
918            return {valid: t, message: u}
919        },
920        _parseDate: function (b, c, d) {
921            var e = 0, f = 0, g = 0, h = b.split(" "), i = h[0], j = h.length > 1 ? h[1] : null;
922            i = i.split(d);
923            var k = i[a.inArray("YYYY", c)], l = i[a.inArray("MM", c)], m = i[a.inArray("DD", c)];
924            return j && (j = j.split(":"), f = j.length > 0 ? j[0] : null, e = j.length > 1 ? j[1] : null, g = j.length > 2 ? j[2] : null), new Date(k, l, m, f, e, g)
925        }
926    }
927}(window.jQuery), function (a) {
928    a.fn.bootstrapValidator.i18n.different = a.extend(a.fn.bootstrapValidator.i18n.different || {}, {"default": "Please enter a different value"}), a.fn.bootstrapValidator.validators.different = {
929        html5Attributes: {
930            message: "message",
931            field: "field"
932        }, validate: function (a, b, c) {
933            var d = b.val();
934            if ("" === d) return !0;
935            for (var e = c.field.split(","), f = !0, g = 0; g < e.length; g++) {
936                var h = a.getFieldElements(e[g]);
937                if (null != h && 0 !== h.length) {
938                    var i = h.val();
939                    d === i ? f = !1 : "" !== i && a.updateStatus(h, a.STATUS_VALID, "different")
940                }
941            }
942            return f
943        }
944    }
945}(window.jQuery), function (a) {
946    a.fn.bootstrapValidator.i18n.digits = a.extend(a.fn.bootstrapValidator.i18n.digits || {}, {"default": "Please enter only digits"}), a.fn.bootstrapValidator.validators.digits = {
947        validate: function (a, b) {
948            var c = b.val();
949            return "" === c ? !0 : /^\d+$/.test(c)
950        }
951    }
952}(window.jQuery), function (a) {
953    a.fn.bootstrapValidator.i18n.ean = a.extend(a.fn.bootstrapValidator.i18n.ean || {}, {"default": "Please enter a valid EAN number"}), a.fn.bootstrapValidator.validators.ean = {
954        validate: function (a, b) {
955            var c = b.val();
956            if ("" === c) return !0;
957            if (!/^(\d{8}|\d{12}|\d{13})$/.test(c)) return !1;
958            for (var d = c.length, e = 0, f = 8 === d ? [3, 1] : [1, 3], g = 0; d - 1 > g; g++) e += parseInt(c.charAt(g), 10) * f[g % 2];
959            return e = (10 - e % 10) % 10, e + "" === c.charAt(d - 1)
960        }
961    }
962}(window.jQuery), function (a) {
963    a.fn.bootstrapValidator.i18n.emailAddress = a.extend(a.fn.bootstrapValidator.i18n.emailAddress || {}, {"default": "Please enter a valid email address"}), a.fn.bootstrapValidator.validators.emailAddress = {
964        html5Attributes: {
965            message: "message",
966            multiple: "multiple",
967            separator: "separator"
968        }, enableByHtml5: function (a) {
969            return "email" === a.attr("type")
970        }, validate: function (a, b, c) {
971            var d = b.val();
972            if ("" === d) return !0;
973            var e = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@[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])?)*$/,
974                f = c.multiple === !0 || "true" === c.multiple;
975            if (f) {
976                for (var g = c.separator || /[,;]/, h = this._splitEmailAddresses(d, g), i = 0; i < h.length; i++) if (!e.test(h[i])) return !1;
977                return !0
978            }
979            return e.test(d)
980        }, _splitEmailAddresses: function (a, b) {
981            for (var c = a.split(/"/), d = c.length, e = [], f = "", g = 0; d > g; g++) if (g % 2 === 0) {
982                var h = c[g].split(b), i = h.length;
983                if (1 === i) f += h[0]; else {
984                    e.push(f + h[0]);
985                    for (var j = 1; i - 1 > j; j++) e.push(h[j]);
986                    f = h[i - 1]
987                }
988            } else f += '"' + c[g], d - 1 > g && (f += '"');
989            return e.push(f), e
990        }
991    }
992}(window.jQuery), function (a) {
993    a.fn.bootstrapValidator.i18n.file = a.extend(a.fn.bootstrapValidator.i18n.file || {}, {"default": "Please choose a valid file"}), a.fn.bootstrapValidator.validators.file = {
994        html5Attributes: {
995            extension: "extension",
996            maxfiles: "maxFiles",
997            minfiles: "minFiles",
998            maxsize: "maxSize",
999            minsize: "minSize",
1000            maxtotalsize: "maxTotalSize",
1001            mintotalsize: "minTotalSize",
1002            message: "message",
1003            type: "type"
1004        }, validate: function (b, c, d) {
1005            var e = c.val();
1006            if ("" === e) return !0;
1007            var f, g = d.extension ? d.extension.toLowerCase().split(",") : null,
1008                h = d.type ? d.type.toLowerCase().split(",") : null,
1009                i = window.File && window.FileList && window.FileReader;
1010            if (i) {
1011                var j = c.get(0).files, k = j.length, l = 0;
1012                if (d.maxFiles && k > parseInt(d.maxFiles, 10) || d.minFiles && k < parseInt(d.minFiles, 10)) return !1;
1013                for (var m = 0; k > m; m++) if (l += j[m].size, f = j[m].name.substr(j[m].name.lastIndexOf(".") + 1), d.minSize && j[m].size < parseInt(d.minSize, 10) || d.maxSize && j[m].size > parseInt(d.maxSize, 10) || g && -1 === a.inArray(f.toLowerCase(), g) || j[m].type && h && -1 === a.inArray(j[m].type.toLowerCase(), h)) return !1;
1014                if (d.maxTotalSize && l > parseInt(d.maxTotalSize, 10) || d.minTotalSize && l < parseInt(d.minTotalSize, 10)) return !1
1015            } else if (f = e.substr(e.lastIndexOf(".") + 1), g && -1 === a.inArray(f.toLowerCase(), g)) return !1;
1016            return !0
1017        }
1018    }
1019}(window.jQuery), function (a) {
1020    a.fn.bootstrapValidator.i18n.greaterThan = a.extend(a.fn.bootstrapValidator.i18n.greaterThan || {}, {
1021        "default": "Please enter a value greater than or equal to %s",
1022        notInclusive: "Please enter a value greater than %s"
1023    }), a.fn.bootstrapValidator.validators.greaterThan = {
1024        html5Attributes: {
1025            message: "message",
1026            value: "value",
1027            inclusive: "inclusive"
1028        }, enableByHtml5: function (a) {
1029            var b = a.attr("type"), c = a.attr("min");
1030            return c && "date" !== b ? {value: c} : !1
1031        }, validate: function (b, c, d) {
1032            var e = c.val();
1033            if ("" === e) return !0;
1034            if (e = this._format(e), !a.isNumeric(e)) return !1;
1035            var f = a.isNumeric(d.value) ? d.value : b.getDynamicOption(c, d.value), g = this._format(f);
1036            return e = parseFloat(e), d.inclusive === !0 || void 0 === d.inclusive ? {
1037                valid: e >= g,
1038                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.greaterThan["default"], f)
1039            } : {
1040                valid: e > g,
1041                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.greaterThan.notInclusive, f)
1042            }
1043        }, _format: function (a) {
1044            return (a + "").replace(",", ".")
1045        }
1046    }
1047}(window.jQuery), function (a) {
1048    a.fn.bootstrapValidator.i18n.grid = a.extend(a.fn.bootstrapValidator.i18n.grid || {}, {"default": "Please enter a valid GRId number"}), a.fn.bootstrapValidator.validators.grid = {
1049        validate: function (b, c) {
1050            var d = c.val();
1051            return "" === d ? !0 : (d = d.toUpperCase(), /^[GRID:]*([0-9A-Z]{2})[-\s]*([0-9A-Z]{5})[-\s]*([0-9A-Z]{10})[-\s]*([0-9A-Z]{1})$/g.test(d) ? (d = d.replace(/\s/g, "").replace(/-/g, ""), "GRID:" === d.substr(0, 5) && (d = d.substr(5)), a.fn.bootstrapValidator.helpers.mod37And36(d)) : !1)
1052        }
1053    }
1054}(window.jQuery), function (a) {
1055    a.fn.bootstrapValidator.i18n.hex = a.extend(a.fn.bootstrapValidator.i18n.hex || {}, {"default": "Please enter a valid hexadecimal number"}), a.fn.bootstrapValidator.validators.hex = {
1056        validate: function (a, b) {
1057            var c = b.val();
1058            return "" === c ? !0 : /^[0-9a-fA-F]+$/.test(c)
1059        }
1060    }
1061}(window.jQuery), function (a) {
1062    a.fn.bootstrapValidator.i18n.hexColor = a.extend(a.fn.bootstrapValidator.i18n.hexColor || {}, {"default": "Please enter a valid hex color"}), a.fn.bootstrapValidator.validators.hexColor = {
1063        enableByHtml5: function (a) {
1064            return "color" === a.attr("type")
1065        }, validate: function (a, b) {
1066            var c = b.val();
1067            return "" === c ? !0 : "color" === b.attr("type") ? /^#[0-9A-F]{6}$/i.test(c) : /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(c)
1068        }
1069    }
1070}(window.jQuery), function (a) {
1071    a.fn.bootstrapValidator.i18n.iban = a.extend(a.fn.bootstrapValidator.i18n.iban || {}, {
1072        "default": "Please enter a valid IBAN number",
1073        countryNotSupported: "The country code %s is not supported",
1074        country: "Please enter a valid IBAN number in %s",
1075        countries: {
1076            AD: "Andorra",
1077            AE: "United Arab Emirates",
1078            AL: "Albania",
1079            AO: "Angola",
1080            AT: "Austria",
1081            AZ: "Azerbaijan",
1082            BA: "Bosnia and Herzegovina",
1083            BE: "Belgium",
1084            BF: "Burkina Faso",
1085            BG: "Bulgaria",
1086            BH: "Bahrain",
1087            BI: "Burundi",
1088            BJ: "Benin",
1089            BR: "Brazil",
1090            CH: "Switzerland",
1091            CI: "Ivory Coast",
1092            CM: "Cameroon",
1093            CR: "Costa Rica",
1094            CV: "Cape Verde",
1095            CY: "Cyprus",
1096            CZ: "Czech Republic",
1097            DE: "Germany",
1098            DK: "Denmark",
1099            DO: "Dominican Republic",
1100            DZ: "Algeria",
1101            EE: "Estonia",
1102            ES: "Spain",
1103            FI: "Finland",
1104            FO: "Faroe Islands",
1105            FR: "France",
1106            GB: "United Kingdom",
1107            GE: "Georgia",
1108            GI: "Gibraltar",
1109            GL: "Greenland",
1110            GR: "Greece",
1111            GT: "Guatemala",
1112            HR: "Croatia",
1113            HU: "Hungary",
1114            IE: "Ireland",
1115            IL: "Israel",
1116            IR: "Iran",
1117            IS: "Iceland",
1118            IT: "Italy",
1119            JO: "Jordan",
1120            KW: "Kuwait",
1121            KZ: "Kazakhstan",
1122            LB: "Lebanon",
1123            LI: "Liechtenstein",
1124            LT: "Lithuania",
1125            LU: "Luxembourg",
1126            LV: "Latvia",
1127            MC: "Monaco",
1128            MD: "Moldova",
1129            ME: "Montenegro",
1130            MG: "Madagascar",
1131            MK: "Macedonia",
1132            ML: "Mali",
1133            MR: "Mauritania",
1134            MT: "Malta",
1135            MU: "Mauritius",
1136            MZ: "Mozambique",
1137            NL: "Netherlands",
1138            NO: "Norway",
1139            PK: "Pakistan",
1140            PL: "Poland",
1141            PS: "Palestine",
1142            PT: "Portugal",
1143            QA: "Qatar",
1144            RO: "Romania",
1145            RS: "Serbia",
1146            SA: "Saudi Arabia",
1147            SE: "Sweden",
1148            SI: "Slovenia",
1149            SK: "Slovakia",
1150            SM: "San Marino",
1151            SN: "Senegal",
1152            TN: "Tunisia",
1153            TR: "Turkey",
1154            VG: "Virgin Islands, British"
1155        }
1156    }), a.fn.bootstrapValidator.validators.iban = {
1157        html5Attributes: {message: "message", country: "country"}, REGEX: {
1158            AD: "AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}",
1159            AE: "AE[0-9]{2}[0-9]{3}[0-9]{16}",
1160            AL: "AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}",
1161            AO: "AO[0-9]{2}[0-9]{21}",
1162            AT: "AT[0-9]{2}[0-9]{5}[0-9]{11}",
1163            AZ: "AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}",
1164            BA: "BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}",
1165            BE: "BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}",
1166            BF: "BF[0-9]{2}[0-9]{23}",
1167            BG: "BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}",
1168            BH: "BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}",
1169            BI: "BI[0-9]{2}[0-9]{12}",
1170            BJ: "BJ[0-9]{2}[A-Z]{1}[0-9]{23}",
1171            BR: "BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]",
1172            CH: "CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}",
1173            CI: "CI[0-9]{2}[A-Z]{1}[0-9]{23}",
1174            CM: "CM[0-9]{2}[0-9]{23}",
1175            CR: "CR[0-9]{2}[0-9]{3}[0-9]{14}",
1176            CV: "CV[0-9]{2}[0-9]{21}",
1177            CY: "CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}",
1178            CZ: "CZ[0-9]{2}[0-9]{20}",
1179            DE: "DE[0-9]{2}[0-9]{8}[0-9]{10}",
1180            DK: "DK[0-9]{2}[0-9]{14}",
1181            DO: "DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}",
1182            DZ: "DZ[0-9]{2}[0-9]{20}",
1183            EE: "EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}",
1184            ES: "ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}",
1185            FI: "FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}",
1186            FO: "FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}",
1187            FR: "FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}",
1188            GB: "GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}",
1189            GE: "GE[0-9]{2}[A-Z]{2}[0-9]{16}",
1190            GI: "GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}",
1191            GL: "GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}",
1192            GR: "GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}",
1193            GT: "GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}",
1194            HR: "HR[0-9]{2}[0-9]{7}
1194[0-9]{10}",
1195            HU: "HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}",
1196            IE: "IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}",
1197            IL: "IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}",
1198            IR: "IR[0-9]{2}[0-9]{22}",
1199            IS: "IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}",
1200            IT: "IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}",
1201            JO: "JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}",
1202            KW: "KW[0-9]{2}[A-Z]{4}[0-9]{22}",
1203            KZ: "KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}",
1204            LB: "LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}",
1205            LI: "LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}",
1206            LT: "LT[0-9]{2}[0-9]{5}[0-9]{11}",
1207            LU: "LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}",
1208            LV: "LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}",
1209            MC: "MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}",
1210            MD: "MD[0-9]{2}[A-Z0-9]{20}",
1211            ME: "ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}",
1212            MG: "MG[0-9]{2}[0-9]{23}",
1213            MK: "MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}",
1214            ML: "ML[0-9]{2}[A-Z]{1}[0-9]{23}",
1215            MR: "MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}",
1216            MT: "MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}",
1217            MU: "MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}",
1218            MZ: "MZ[0-9]{2}[0-9]{21}",
1219            NL: "NL[0-9]{2}[A-Z]{4}[0-9]{10}",
1220            NO: "NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}",
1221            PK: "PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}",
1222            PL: "PL[0-9]{2}[0-9]{8}[0-9]{16}",
1223            PS: "PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}",
1224            PT: "PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}",
1225            QA: "QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}",
1226            RO: "RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}",
1227            RS: "RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}",
1228            SA: "SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}",
1229            SE: "SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}",
1230            SI: "SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}",
1231            SK: "SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}",
1232            SM: "SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}",
1233            SN: "SN[0-9]{2}[A-Z]{1}[0-9]{23}",
1234            TN: "TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}",
1235            TR: "TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}",
1236            VG: "VG[0-9]{2}[A-Z]{4}[0-9]{16}"
1237        }, validate: function (b, c, d) {
1238            var e = c.val();
1239            if ("" === e) return !0;
1240            e = e.replace(/[^a-zA-Z0-9]/g, "").toUpperCase();
1241            var f = d.country;
1242            if (f ? "string" == typeof f && this.REGEX[f] || (f = b.getDynamicOption(c, f)) : f = e.substr(0, 2), !this.REGEX[f]) return {
1243                valid: !1,
1244                message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.iban.countryNotSupported, f)
1245            };
1246            if (!new RegExp("^" + this.REGEX[f] + "$").test(e)) return {
1247                valid: !1,
1248                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.iban.country, a.fn.bootstrapValidator.i18n.iban.countries[f])
1249            };
1250            e = e.substr(4) + e.substr(0, 4), e = a.map(e.split(""), function (a) {
1251                var b = a.charCodeAt(0);
1252                return b >= "A".charCodeAt(0) && b <= "Z".charCodeAt(0) ? b - "A".charCodeAt(0) + 10 : a
1253            }), e = e.join("");
1254            for (var g = parseInt(e.substr(0, 1), 10), h = e.length, i = 1; h > i; ++i) g = (10 * g + parseInt(e.substr(i, 1), 10)) % 97;
1255            return {
1256                valid: 1 === g,
1257                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.iban.country, a.fn.bootstrapValidator.i18n.iban.countries[f])
1258            }
1259        }
1260    }
1261}(window.jQuery), function (a) {
1262    a.fn.bootstrapValidator.i18n.id = a.extend(a.fn.bootstrapValidator.i18n.id || {}, {
1263        "default": "Please enter a valid identification number",
1264        countryNotSupported: "The country code %s is not supported",
1265        country: "Please enter a valid identification number in %s",
1266        countries: {
1267            BA: "Bosnia and Herzegovina",
1268            BG: "Bulgaria",
1269            BR: "Brazil",
1270            CH: "Switzerland",
1271            CL: "Chile",
1272            CN: "China",
1273            CZ: "Czech Republic",
1274            DK: "Denmark",
1275            EE: "Estonia",
1276            ES: "Spain",
1277            FI: "Finland",
1278            HR: "Croatia",
1279            IE: "Ireland",
1280            IS: "Iceland",
1281            LT: "Lithuania",
1282            LV: "Latvia",
1283            ME: "Montenegro",
1284            MK: "Macedonia",
1285            NL: "Netherlands",
1286            RO: "Romania",
1287            RS: "Serbia",
1288            SE: "Sweden",
1289            SI: "Slovenia",
1290            SK: "Slovakia",
1291            SM: "San Marino",
1292            TH: "Thailand",
1293            ZA: "South Africa"
1294        }
1295    }), a.fn.bootstrapValidator.validators.id = {
1296        html5Attributes: {message: "message", country: "country"},
1297        COUNTRY_CODES: ["BA", "BG", "BR", "CH", "CL", "CN", "CZ", "DK", "EE", "ES", "FI", "HR", "IE", "IS", "LT", "LV", "ME", "MK", "NL", "RO", "RS", "SE", "SI", "SK", "SM", "TH", "ZA"],
1298        validate: function (b, c, d) {
1299            var e = c.val();
1300            if ("" === e) return !0;
1301            var f = d.country;
1302            if (f ? ("string" != typeof f || -1 === a.inArray(f.toUpperCase(), this.COUNTRY_CODES)) && (f = b.getDynamicOption(c, f)) : f = e.substr(0, 2), -1 === a.inArray(f, this.COUNTRY_CODES)) return {
1303                valid: !1,
1304                message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.id.countryNotSupported, f)
1305            };
1306            var g = ["_", f.toLowerCase()].join("");
1307            return this[g](e) ? !0 : {
1308                valid: !1,
1309                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.id.country, a.fn.bootstrapValidator.i18n.id.countries[f.toUpperCase()])
1310            }
1311        },
1312        _validateJMBG: function (a, b) {
1313            if (!/^\d{13}$/.test(a)) return !1;
1314            var c = parseInt(a.substr(0, 2), 10), d = parseInt(a.substr(2, 2), 10),
1315                e = (parseInt(a.substr(4, 3), 10), parseInt(a.substr(7, 2), 10)), f = parseInt(a.substr(12, 1), 10);
1316            if (c > 31 || d > 12) return !1;
1317            for (var g = 0, h = 0; 6 > h; h++) g += (7 - h) * (parseInt(a.charAt(h), 10) + parseInt(a.charAt(h + 6), 10));
1318            if (g = 11 - g % 11, (10 === g || 11 === g) && (g = 0), g !== f) return !1;
1319            switch (b.toUpperCase()) {
1320                case"BA":
1321                    return e >= 10 && 19 >= e;
1322                case"MK":
1323                    return e >= 41 && 49 >= e;
1324                case"ME":
1325                    return e >= 20 && 29 >= e;
1326                case"RS":
1327                    return e >= 70 && 99 >= e;
1328                case"SI":
1329                    return e >= 50 && 59 >= e;
1330                default:
1331                    return !0
1332            }
1333        },
1334        _ba: function (a) {
vendor: 38,013 bytes, lines 1335-2089
1335            return this._validateJMBG(a, "BA")
1336        },
1337        _mk: function (a) {
1338            return this._validateJMBG(a, "MK")
1339        },
1340        _me: function (a) {
1341            return this._validateJMBG(a, "ME")
1342        },
1343        _rs: function (a) {
1344            return this._validateJMBG(a, "RS")
1345        },
1346        _si: function (a) {
1347            return this._validateJMBG(a, "SI")
1348        },
1349        _bg: function (b) {
1350            if (!/^\d{10}$/.test(b) && !/^\d{6}\s\d{3}\s\d{1}$/.test(b)) return !1;
1351            b = b.replace(/\s/g, "");
1352            var c = parseInt(b.substr(0, 2), 10) + 1900, d = parseInt(b.substr(2, 2), 10),
1353                e = parseInt(b.substr(4, 2), 10);
1354            if (d > 40 ? (c += 100, d -= 40) : d > 20 && (c -= 100, d -= 20), !a.fn.bootstrapValidator.helpers.date(c, d, e)) return !1;
1355            for (var f = 0, g = [2, 4, 8, 5, 10, 9, 7, 3, 6], h = 0; 9 > h; h++) f += parseInt(b.charAt(h), 10) * g[h];
1356            return f = f % 11 % 10, f + "" === b.substr(9, 1)
1357        },
1358        _br: function (a) {
1359            if (/^1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}|0{11}$/.test(a)) return !1;
1360            if (!/^\d{11}$/.test(a) && !/^\d{3}\.\d{3}\.\d{3}-\d{2}$/.test(a)) return !1;
1361            a = a.replace(/\./g, "").replace(/-/g, "");
1362            for (var b = 0, c = 0; 9 > c; c++) b += (10 - c) * parseInt(a.charAt(c), 10);
1363            if (b = 11 - b % 11, (10 === b || 11 === b) && (b = 0), b + "" !== a.charAt(9)) return !1;
1364            var d = 0;
1365            for (c = 0; 10 > c; c++) d += (11 - c) * parseInt(a.charAt(c), 10);
1366            return d = 11 - d % 11, (10 === d || 11 === d) && (d = 0), d + "" === a.charAt(10)
1367        },
1368        _ch: function (a) {
1369            if (!/^756[\.]{0,1}[0-9]{4}[\.]{0,1}[0-9]{4}[\.]{0,1}[0-9]{2}$/.test(a)) return !1;
1370            a = a.replace(/\D/g, "").substr(3);
1371            for (var b = a.length, c = 0, d = 8 === b ? [3, 1] : [1, 3], e = 0; b - 1 > e; e++) c += parseInt(a.charAt(e), 10) * d[e % 2];
1372            return c = 10 - c % 10, c + "" === a.charAt(b - 1)
1373        },
1374        _cl: function (a) {
1375            if (!/^\d{7,8}[-]{0,1}[0-9K]$/i.test(a)) return !1;
1376            for (a = a.replace(/\-/g, ""); a.length < 9;) a = "0" + a;
1377            for (var b = 0, c = [3, 2, 7, 6, 5, 4, 3, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
1378            return b = 11 - b % 11, 11 === b ? b = 0 : 10 === b && (b = "K"), b + "" === a.charAt(8).toUpperCase()
1379        },
1380        _cn: function (b) {
1381            if (b = b.trim(), !/^\d{15}$/.test(b) && !/^\d{17}[\dXx]{1}$/.test(b)) return !1;
1382            var c = {
1383                11: {0: [0], 1: [[0, 9], [11, 17]], 2: [0, 28, 29]},
1384                12: {0: [0], 1: [[0, 16]], 2: [0, 21, 23, 25]},
1385                13: {
1386                    0: [0],
1387                    1: [[0, 5], 7, 8, 21, [23, 33], [81, 85]],
1388                    2: [[0, 5], [7, 9], [23, 25], 27, 29, 30, 81, 83],
1389                    3: [[0, 4], [21, 24]],
1390                    4: [[0, 4], 6, 21, [23, 35], 81],
1391                    5: [[0, 3], [21, 35], 81, 82],
1392                    6: [[0, 4], [21, 38], [81, 84]],
1393                    7: [[0, 3], 5, 6, [21, 33]],
1394                    8: [[0, 4], [21, 28]],
1395                    9: [[0, 3], [21, 30], [81, 84]],
1396                    10: [[0, 3], [22, 26], 28, 81, 82],
1397                    11: [[0, 2], [21, 28], 81, 82]
1398                },
1399                14: {
1400                    0: [0],
1401                    1: [0, 1, [5, 10], [21, 23], 81],
1402                    2: [[0, 3], 11, 12, [21, 27]],
1403                    3: [[0, 3], 11, 21, 22],
1404                    4: [[0, 2], 11, 21, [23, 31], 81],
1405                    5: [[0, 2], 21, 22, 24, 25, 81],
1406                    6: [[0, 3], [21, 24]],
1407                    7: [[0, 2], [21, 29], 81],
1408                    8: [[0, 2], [21, 30], 81, 82],
1409                    9: [[0, 2], [21, 32], 81],
1410                    10: [[0, 2], [21, 34], 81, 82],
1411                    11: [[0, 2], [21, 30], 81, 82],
1412                    23: [[0, 3], 22, 23, [25, 30], 32, 33]
1413                },
1414                15: {
1415                    0: [0],
1416                    1: [[0, 5], [21, 25]],
1417                    2: [[0, 7], [21, 23]],
1418                    3: [[0, 4]],
1419                    4: [[0, 4], [21, 26], [28, 30]],
1420                    5: [[0, 2], [21, 26], 81],
1421                    6: [[0, 2], [21, 27]],
1422                    7: [[0, 3], [21, 27], [81, 85]],
1423                    8: [[0, 2], [21, 26]],
1424                    9: [[0, 2], [21, 29], 81],
1425                    22: [[0, 2], [21, 24]],
1426                    25: [[0, 2], [22, 31]],
1427                    26: [[0, 2], [24, 27], [29, 32], 34],
1428                    28: [0, 1, [22, 27]],
1429                    29: [0, [21, 23]]
1430                },
1431                21: {
1432                    0: [0],
1433                    1: [[0, 6], [11, 14], [22, 24], 81],
1434                    2: [[0, 4], [11, 13], 24, [81, 83]],
1435                    3: [[0, 4], 11, 21, 23, 81],
1436                    4: [[0, 4], 11, [21, 23]],
1437                    5: [[0, 5], 21, 22],
1438                    6: [[0, 4], 24, 81, 82],
1439                    7: [[0, 3], 11, 26, 27, 81, 82],
1440                    8: [[0, 4], 11, 81, 82],
1441                    9: [[0, 5], 11, 21, 22],
1442                    10: [[0, 5], 11, 21, 81],
1443                    11: [[0, 3], 21, 22],
1444                    12: [[0, 2], 4, 21, 23, 24, 81, 82],
1445                    13: [[0, 3], 21, 22, 24, 81, 82],
1446                    14: [[0, 4], 21, 22, 81]
1447                },
1448                22: {
1449                    0: [0],
1450                    1: [[0, 6], 12, 22, [81, 83]],
1451                    2: [[0, 4], 11, 21, [81, 84]],
1452                    3: [[0, 3], 22, 23, 81, 82],
1453                    4: [[0, 3], 21, 22],
1454                    5: [[0, 3], 21, 23, 24, 81, 82],
1455                    6: [[0, 2], 4, 5, [21, 23], 25, 81],
1456                    7: [[0, 2], [21, 24], 81],
1457                    8: [[0, 2], 21, 22, 81, 82],
1458                    24: [[0, 6], 24, 26]
1459                },
1460                23: {
1461                    0: [0],
1462                    1: [[0, 12], 21, [23, 29], [81, 84]],
1463                    2: [[0, 8], 21, [23, 25], 27, [29, 31], 81],
1464                    3: [[0, 7], 21, 81, 82],
1465                    4: [[0, 7], 21, 22],
1466                    5: [[0, 3], 5, 6, [21, 24]],
1467                    6: [[0, 6], [21, 24]],
1468                    7: [[0, 16], 22, 81],
1469                    8: [[0, 5], 11, 22, 26, 28, 33, 81, 82],
1470                    9: [[0, 4], 21],
1471                    10: [[0, 5], 24, 25, 81, [83, 85]],
1472                    11: [[0, 2], 21, 23, 24, 81, 82],
1473                    12: [[0, 2], [21, 26], [81, 83]],
1474                    27: [[0, 4], [21, 23]]
1475                },
1476                31: {0: [0], 1: [0, 1, [3, 10], [12, 20]], 2: [0, 30]},
1477                32: {
1478                    0: [0],
1479                    1: [[0, 7], 11, [13, 18], 24, 25],
1480                    2: [[0, 6], 11, 81, 82],
1481                    3: [[0, 5], 11, 12, [21, 24], 81, 82],
1482                    4: [[0, 2], 4, 5, 11, 12, 81, 82],
1483                    5: [[0, 9], [81, 85]],
1484                    6: [[0, 2], 11, 12, 21, 23, [81, 84]],
1485                    7: [0, 1, 3, 5, 6, [21, 24]],
1486                    8: [[0, 4], 11, 26, [29, 31]],
1487                    9: [[0, 3], [21, 25], 28, 81, 82],
1488                    10: [[0, 3], 11, 12, 23, 81, 84, 88],
1489                    11: [[0, 2], 11, 12, [81, 83]],
1490                    12: [[0, 4], [81, 84]],
1491                    13: [[0, 2], 11, [21, 24]]
1492                },
1493                33: {
1494                    0: [0],
1495                    1: [[0, 6], [8, 10], 22, 27, 82, 83, 85],
1496                    2: [0, 1, [3, 6], 11, 12, 25, 26, [81, 83]],
1497                    3: [[0, 4], 22, 24, [26, 29], 81, 82],
1498                    4: [[0, 2], 11, 21, 24, [81, 83]],
1499                    5: [[0, 3], [21, 23]],
1500                    6: [[0, 2], 21, 24, [81, 83]],
1501                    7: [[0, 3], 23, 26, 27, [81, 84]],
1502                    8: [[0, 3], 22, 24, 25, 81],
1503                    9: [[0, 3], 21, 22],
1504                    10: [[0, 4], [21, 24], 81, 82],
1505                    11: [[0, 2], [21, 27], 81]
1506                },
1507                34: {
1508                    0: [0],
1509                    1: [[0, 4], 11, [21, 24], 81],
1510                    2: [[0, 4], 7, 8, [21, 23], 25],
1511                    3: [[0, 4], 11, [21, 23]],
1512                    4: [[0, 6], 21],
1513                    5: [[0, 4], 6, [21, 23]],
1514                    6: [[0, 4], 21],
1515                    7: [[0, 3], 11, 21],
1516                    8: [[0, 3], 11, [22, 28], 81],
1517                    10: [[0, 4], [21, 24]],
1518                    11: [[0, 3], 22, [24, 26], 81, 82],
1519                    12: [[0, 4], 21, 22, 25, 26, 82],
1520                    13: [[0, 2], [21, 24]],
1521                    14: [[0, 2], [21, 24]],
1522                    15: [[0, 3], [21, 25]],
1523                    16: [[0, 2], [21, 23]],
1524                    17: [[0, 2], [21, 23]],
1525                    18: [[0, 2], [21, 25], 81]
1526                },
1527                35: {
1528                    0: [0],
1529                    1: [[0, 5], 11, [21, 25], 28, 81, 82],
1530                    2: [[0, 6], [11, 13]],
1531                    3: [[0, 5], 22],
1532                    4: [[0, 3], 21, [23, 30], 81],
1533                    5: [[0, 5], 21, [24, 27], [81, 83]],
1534                    6: [[0, 3], [22, 29], 81],
1535                    7: [[0, 2], [21, 25], [81, 84]],
1536                    8: [[0, 2], [21, 25], 81],
1537                    9: [[0, 2], [21, 26], 81, 82]
1538                },
1539                36: {
1540                    0: [0],
1541                    1: [[0, 5], 11, [21, 24]],
1542                    2: [[0, 3], 22, 81],
1543                    3: [[0, 2], 13, [21, 23]],
1544                    4: [[0, 3], 21, [23, 30], 81, 82],
1545                    5: [[0, 2], 21],
1546                    6: [[0, 2], 22, 81],
1547                    7: [[0, 2], [21, 35], 81, 82],
1548                    8: [[0, 3], [21, 30], 81],
1549                    9: [[0, 2], [21, 26], [81, 83]],
1550                    10: [[0, 2], [21, 30]],
1551                    11: [[0, 2], [21, 30], 81]
1552                },
1553                37: {
1554                    0: [0],
1555                    1: [[0, 5], 12, 13, [24, 26], 81],
1556                    2: [[0, 3], 5, [11, 14], [81, 85]],
1557                    3: [[0, 6], [21, 23]],
1558                    4: [[0, 6], 81],
1559                    5: [[0, 3], [21, 23]],
1560                    6: [[0, 2], [11, 13], 34, [81, 87]],
1561                    7: [[0, 5], 24, 25, [81, 86]],
1562                    8: [[0, 2], 11, [26, 32], [81, 83]],
1563                    9: [[0, 3], 11, 21, 23, 82, 83],
1564                    10: [[0, 2], [81, 83]],
1565                    11: [[0, 3], 21, 22],
1566                    12: [[0, 3]],
1567                    13: [[0, 2], 11, 12, [21, 29]],
1568                    14: [[0, 2], [21, 28], 81, 82],
1569                    15: [[0, 2], [21, 26], 81],
1570                    16: [[0, 2], [21, 26]],
1571                    17: [[0, 2], [21, 28]]
1572                },
1573                41: {
1574                    0: [0],
1575                    1: [[0, 6], 8, 22, [81, 85]],
1576                    2: [[0, 5], 11, [21, 25]],
1577                    3: [[0, 7], 11, [22, 29], 81],
1578                    4: [[0, 4], 11, [21, 23], 25, 81, 82],
1579                    5: [[0, 3], 5, 6, 22, 23, 26, 27, 81],
1580                    6: [[0, 3], 11, 21, 22],
1581                    7: [[0, 4], 11, 21, [24, 28], 81, 82],
1582                    8: [[0, 4], 11, [21, 23], 25, [81, 83]],
1583                    9: [[0, 2], 22, 23, [26, 28]],
1584                    10: [[0, 2], [23, 25], 81, 82],
1585                    11: [[0, 4], [21, 23]],
1586                    12: [[0, 2], 21, 22, 24, 81, 82],
1587                    13: [[0, 3], [21, 30], 81],
1588                    14: [[0, 3], [21, 26], 81],
1589                    15: [[0, 3], [21, 28]],
1590                    16: [[0, 2], [21, 28], 81],
1591                    17: [[0, 2], [21, 29]],
1592                    90: [0, 1]
1593                },
1594                42: {
1595                    0: [0],
1596                    1: [[0, 7], [11, 17]],
1597                    2: [[0, 5], 22, 81],
1598                    3: [[0, 3], [21, 25], 81],
1599                    5: [[0, 6], [25, 29], [81, 83]],
1600                    6: [[0, 2], 6, 7, [24, 26], [82, 84]],
1601                    7: [[0, 4]],
1602                    8: [[0, 2], 4, 21, 22, 81],
1603                    9: [[0, 2], [21, 23], 81, 82, 84],
1604                    10: [[0, 3], [22, 24], 81, 83, 87],
1605                    11: [[0, 2], [21, 27], 81, 82],
1606                    12: [[0, 2], [21, 24], 81],
1607                    13: [[0, 3], 21, 81],
1608                    28: [[0, 2], 22, 23, [25, 28]],
1609                    90: [0, [4, 6], 21]
1610                },
1611                43: {
1612                    0: [0],
1613                    1: [[0, 5], 11, 12, 21, 22, 24, 81],
1614                    2: [[0, 4], 11, 21, [23, 25], 81],
1615                    3: [[0, 2], 4, 21, 81, 82],
1616                    4: [0, 1, [5, 8], 12, [21, 24], 26, 81, 82],
1617                    5: [[0, 3], 11, [21, 25], [27, 29], 81],
1618                    6: [[0, 3], 11, 21, 23, 24, 26, 81, 82],
1619                    7: [[0, 3], [21, 26], 81],
1620                    8: [[0, 2], 11, 21, 22],
1621                    9: [[0, 3], [21, 23], 81],
1622                    10: [[0, 3], [21, 28], 81],
1623                    11: [[0, 3], [21, 29]],
1624                    12: [[0, 2], [21, 30], 81],
1625                    13: [[0, 2], 21, 22, 81, 82],
1626                    31: [0, 1, [22, 27], 30]
1627                },
1628                44: {
1629                    0: [0],
1630                    1: [[0, 7], [11, 16], 83, 84],
1631                    2: [[0, 5], 21, 22, 24, 29, 32, 33, 81, 82],
1632                    3: [0, 1, [3, 8]],
1633                    4: [[0, 4]],
1634                    5: [0, 1, [6, 15], 23, 82, 83],
1635                    6: [0, 1, [4, 8]],
1636                    7: [0, 1, [3, 5], 81, [83, 85]],
1637                    8: [[0, 4], 11, 23, 25, [81, 83]],
1638                    9: [[0, 3], 23, [81, 83]],
1639                    12: [[0, 3], [23, 26], 83, 84],
1640                    13: [[0, 3], [22, 24], 81],
1641                    14: [[0, 2], [21, 24], 26, 27, 81],
1642                    15: [[0, 2], 21, 23, 81],
1643                    16: [[0, 2], [21, 25]],
1644                    17: [[0, 2], 21, 23, 81],
1645                    18: [[0, 3], 21, 23, [25, 27], 81, 82],
1646                    19: [0],
1647                    20: [0],
1648                    51: [[0, 3], 21, 22],
1649                    52: [[0, 3], 21, 22, 24, 81],
1650                    53: [[0, 2], [21, 23], 81]
1651                },
1652                45: {
1653                    0: [0],
1654                    1: [[0, 9], [21, 27]],
1655                    2: [[0, 5], [21, 26]],
1656                    3: [[0, 5], 11, 12, [21, 32]],
1657                    4: [0, 1, [3, 6], 11, [21, 23], 81],
1658                    5: [[0, 3], 12, 21],
1659                    6: [[0, 3], 21, 81],
1660                    7: [[0, 3], 21, 22],
1661                    8: [[0, 4], 21, 81],
1662                    9: [[0, 3], [21, 24], 81],
1663                    10: [[0, 2], [21, 31]],
1664                    11: [[0, 2], [21, 23]],
1665                    12: [[0, 2], [21, 29], 81],
1666                    13: [[0, 2], [21, 24], 81],
1667                    14: [[0, 2], [21, 25], 81]
1668                },
1669                46: {0: [0], 1: [0, 1, [5, 8]], 2: [0, 1], 3: [0, [21, 23]], 90: [[0, 3], [5, 7], [21, 39]]},
1670                50: {0: [0], 1: [[0, 19]], 2: [0, [22, 38], [40, 43]], 3: [0, [81, 84]]},
1671                51: {
1672                    0: [0],
1673                    1: [0, 1, [4, 8], [12, 15], [21, 24], 29, 31, 32, [81, 84]],
1674                    3: [[0, 4], 11, 21, 22],
1675                    4: [[0, 3], 11, 21, 22],
1676                    5: [[0, 4], 21, 22, 24, 25],
1677                    6: [0, 1, 3, 23, 26, [81, 83]],
1678                    7: [0, 1, 3, 4, [22, 27], 81],
1679                    8: [[0, 2], 11, 12, [21, 24]],
1680                    9: [[0, 4], [21, 23]],
1681                    10: [[0, 2], 11, 24, 25, 28],
1682                    11: [[0, 2], [11, 13], 23, 24, 26, 29, 32, 33, 81],
1683                    13: [[0, 4], [21, 25], 81],
1684                    14: [[0, 2], [21, 25]],
1685                    15: [[0, 3], [21, 29]],
1686                    16: [[0, 3], [21, 23], 81],
1687                    17: [[0, 3], [21, 25], 81],
1688                    18: [[0, 3], [21, 27]],
1689                    19: [[0, 3], [21, 23]],
1690                    20: [[0, 2], 21, 22, 81],
1691                    32: [0, [21, 33]],
1692                    33: [0, [21, 38]],
1693                    34: [0, 1, [22, 37]]
1694                },
1695                52: {
1696                    0: [0],
1697                    1: [[0, 3], [11, 15], [21, 23], 81],
1698                    2: [0, 1, 3, 21, 22],
1699                    3: [[0, 3], [21, 30], 81, 82],
1700                    4: [[0, 2], [21, 25]],
1701                    5: [[0, 2], [21, 27]],
1702                    6: [[0, 3], [21, 28]],
1703                    22: [0, 1, [22, 30]],
1704                    23: [0, 1, [22, 28]],
1705                    24: [0, 1, [22, 28]],
1706                    26: [0, 1, [22, 36]],
1707                    27: [[0, 2], 22, 23, [25, 32]]
1708                },
1709                53: {
1710                    0: [0],
1711                    1: [[0, 3], [11, 14], 21, 22, [24, 29], 81],
1712                    3: [[0, 2], [21, 26], 28, 81],
1713                    4: [[0, 2], [21, 28]],
1714                    5: [[0, 2], [21, 24]],
1715                    6: [[0, 2], [21, 30]],
1716                    7: [[0, 2], [21, 24]],
1717                    8: [[0, 2], [21, 29]],
1718                    9: [[0, 2], [21, 27]],
1719                    23: [0, 1, [22, 29], 31],
1720                    25: [[0, 4], [22, 32]],
1721                    26: [0, 1, [21, 28]],
1722                    27: [0, 1, [22, 30]],
1723                    28: [0, 1, 22, 23],
1724                    29: [0, 1, [22, 32]],
1725                    31: [0, 2, 3, [22, 24]],
1726                    34: [0, [21, 23]],
1727                    33: [0, 21, [23, 25]],
1728                    35: [0, [21, 28]]
1729                },
1730                54: {
1731                    0: [0],
1732                    1: [[0, 2], [21, 27]],
1733                    21: [0, [21, 29], 32, 33],
1734                    22: [0, [21, 29], [31, 33]],
1735                    23: [0, 1, [22, 38]],
1736                    24: [0, [21, 31]],
1737                    25: [0, [21, 27]],
1738                    26: [0, [21, 27]]
1739                },
1740                61: {
1741                    0: [0],
1742                    1: [[0, 4], [11, 16], 22, [24, 26]],
1743                    2: [[0, 4], 22],
1744                    3: [[0, 4], [21, 24], [26, 31]],
1745                    4: [[0, 4], [22, 31], 81],
1746                    5: [[0, 2], [21, 28], 81, 82],
1747                    6: [[0, 2], [21, 32]],
1748                    7: [[0, 2], [21, 30]],
1749                    8: [[0, 2], [21, 31]],
1750                    9: [[0, 2], [21, 29]],
1751                    10: [[0, 2], [21, 26]]
1752                },
1753                62: {
1754                    0: [0],
1755                    1: [[0, 5], 11, [21, 23]],
1756                    2: [0, 1],
1757                    3: [[0, 2], 21],
1758                    4: [[0, 3], [21, 23]],
1759                    5: [[0, 3], [21, 25]],
1760                    6: [[0, 2], [21, 23]],
1761                    7: [[0, 2], [21, 25]],
1762                    8: [[0, 2], [21, 26]],
1763                    9: [[0, 2], [21, 24], 81, 82],
1764                    10: [[0, 2], [21, 27]],
1765                    11: [[0, 2], [21, 26]],
1766                    12: [[0, 2], [21, 28]],
1767                    24: [0, 21, [24, 29]],
1768                    26: [0, 21, [23, 30]],
1769                    29: [0, 1, [21, 27]],
1770                    30: [0, 1, [21, 27]]
1771                },
1772                63: {
1773                    0: [0],
1774                    1: [[0, 5], [21, 23]],
1775                    2: [0, 2, [21, 25]],
1776                    21: [0, [21, 23], [26, 28]],
1777                    22: [0, [21, 24]],
1778                    23: [0, [21, 24]],
1779                    25: [0, [21, 25]],
1780                    26: [0, [21, 26]],
1781                    27: [0, 1, [21, 26]],
1782                    28: [[0, 2], [21, 23]]
1783                },
1784                64: {
1785                    0: [0],
1786                    1: [0, 1, [4, 6], 21, 22, 81],
1787                    2: [[0, 3], 5, [21, 23]],
1788                    3: [[0, 3], [21, 24], 81],
1789                    4: [[0, 2], [21, 25]],
1790                    5: [[0, 2], 21, 22]
1791                },
1792                65: {
1793                    0: [0],
1794                    1: [[0, 9], 21],
1795                    2: [[0, 5]],
1796                    21: [0, 1, 22, 23],
1797                    22: [0, 1, 22, 23],
1798                    23: [[0, 3], [23, 25], 27, 28],
1799                    28: [0, 1, [22, 29]],
1800                    29: [0, 1, [22, 29]],
1801                    30: [0, 1, [22, 24]],
1802                    31: [0, 1, [21, 31]],
1803                    32: [0, 1, [21, 27]],
1804                    40: [0, 2, 3, [21, 28]],
1805                    42: [[0, 2], 21, [23, 26]],
1806                    43: [0, 1, [21, 26]],
1807                    90: [[0, 4]],
1808                    27: [[0, 2], 22, 23]
1809                },
1810                71: {0: [0]},
1811                81: {0: [0]},
1812                82: {0: [0]}
1813            }, d = parseInt(b.substr(0, 2), 10), e = parseInt(b.substr(2, 2), 10), f = parseInt(b.substr(4, 2), 10);
1814            if (!c[d] || !c[d][e]) return !1;
1815            for (var g = !1, h = c[d][e], i = 0; i < h.length; i++) if (a.isArray(h[i]) && h[i][0] <= f && f <= h[i][1] || !a.isArray(h[i]) && f === h[i]) {
1816                g = !0;
1817                break
1818            }
1819            if (!g) return !1;
1820            var j;
1821            j = 18 === b.length ? b.substr(6, 8) : "19" + b.substr(6, 6);
1822            var k = parseInt(j.substr(0, 4), 10), l = parseInt(j.substr(4, 2), 10), m = parseInt(j.substr(6, 2), 10);
1823            if (!a.fn.bootstrapValidator.helpers.date(k, l, m)) return !1;
1824            if (18 === b.length) {
1825                var n = 0, o = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
1826                for (i = 0; 17 > i; i++) n += parseInt(b.charAt(i), 10) * o[i];
1827                n = (12 - n % 11) % 11;
1828                var p = "X" !== b.charAt(17).toUpperCase() ? parseInt(b.charAt(17), 10) : 10;
1829                return p === n
1830            }
1831            return !0
1832        },
1833        _cz: function (b) {
1834            if (!/^\d{9,10}$/.test(b)) return !1;
1835            var c = 1900 + parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10) % 50 % 20,
1836                e = parseInt(b.substr(4, 2), 10);
1837            if (9 === b.length) {
1838                if (c >= 1980 && (c -= 100), c > 1953) return !1
1839            } else 1954 > c && (c += 100);
1840            if (!a.fn.bootstrapValidator.helpers.date(c, d, e)) return !1;
1841            if (10 === b.length) {
1842                var f = parseInt(b.substr(0, 9), 10) % 11;
1843                return 1985 > c && (f %= 10), f + "" === b.substr(9, 1)
1844            }
1845            return !0
1846        },
1847        _dk: function (b) {
1848            if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(b)) return !1;
1849            b = b.replace(/-/g, "");
1850            var c = parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10), e = parseInt(b.substr(4, 2), 10);
1851            switch (!0) {
1852                case-1 !== "5678".indexOf(b.charAt(6)) && e >= 58:
1853                    e += 1800;
1854                    break;
1855                case-1 !== "0123".indexOf(b.charAt(6)):
1856                case-1 !== "49".indexOf(b.charAt(6)) && e >= 37:
1857                    e += 1900;
1858                    break;
1859                default:
1860                    e += 2e3
1861            }
1862            return a.fn.bootstrapValidator.helpers.date(e, d, c)
1863        },
1864        _ee: function (a) {
1865            return this._lt(a)
1866        },
1867        _es: function (a) {
1868            if (!/^[0-9A-Z]{8}[-]{0,1}[0-9A-Z]$/.test(a) && !/^[XYZ][-]{0,1}[0-9]{7}[-]{0,1}[0-9A-Z]$/.test(a)) return !1;
1869            a = a.replace(/-/g, "");
1870            var b = "XYZ".indexOf(a.charAt(0));
1871            -1 !== b && (a = b + a.substr(1) + "");
1872            var c = parseInt(a.substr(0, 8), 10);
1873            return c = "TRWAGMYFPDXBNJZSQVHLCKE"[c % 23], c === a.substr(8, 1)
1874        },
1875        _fi: function (b) {
1876            if (!/^[0-9]{6}[-+A][0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/.test(b)) return !1;
1877            var c = parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10), e = parseInt(b.substr(4, 2), 10),
1878                f = {"+": 1800, "-": 1900, A: 2e3};
1879            if (e = f[b.charAt(6)] + e, !a.fn.bootstrapValidator.helpers.date(e, d, c)) return !1;
1880            var g = parseInt(b.substr(7, 3), 10);
1881            if (2 > g) return !1;
1882            var h = b.substr(0, 6) + b.substr(7, 3) + "";
1883            return h = parseInt(h, 10), "0123456789ABCDEFHJKLMNPRSTUVWXY".charAt(h % 31) === b.charAt(10)
1884        },
1885        _hr: function (b) {
1886            return /^[0-9]{11}$/.test(b) ? a.fn.bootstrapValidator.helpers.mod11And10(b) : !1
1887        },
1888        _ie: function (a) {
1889            if (!/^\d{7}[A-W][AHWTX]?$/.test(a)) return !1;
1890            var b = function (a) {
1891                for (; a.length < 7;) a = "0" + a;
1892                for (var b = "WABCDEFGHIJKLMNOPQRSTUV", c = 0, d = 0; 7 > d; d++) c += parseInt(a.charAt(d), 10) * (8 - d);
1893                return c += 9 * b.indexOf(a.substr(7)), b[c % 23]
1894            };
1895            return 9 !== a.length || "A" !== a.charAt(8) && "H" !== a.charAt(8) ? a.charAt(7) === b(a.substr(0, 7)) : a.charAt(7) === b(a.substr(0, 7) + a.substr(8) + "")
1896        },
1897        _is: function (b) {
1898            if (!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(b)) return !1;
1899            b = b.replace(/-/g, "");
1900            var c = parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10), e = parseInt(b.substr(4, 2), 10),
1901                f = parseInt(b.charAt(9), 10);
1902            if (e = 9 === f ? 1900 + e : 100 * (20 + f) + e, !a.fn.bootstrapValidator.helpers.date(e, d, c, !0)) return !1;
1903            for (var g = 0, h = [3, 2, 7, 6, 5, 4, 3, 2], i = 0; 8 > i; i++) g += parseInt(b.charAt(i), 10) * h[i];
1904            return g = 11 - g % 11, g + "" === b.charAt(8)
1905        },
1906        _lt: function (b) {
1907            if (!/^[0-9]{11}$/.test(b)) return !1;
1908            var c = parseInt(b.charAt(0), 10), d = parseInt(b.substr(1, 2), 10), e = parseInt(b.substr(3, 2), 10),
1909                f = parseInt(b.substr(5, 2), 10), g = c % 2 === 0 ? 17 + c / 2 : 17 + (c + 1) / 2;
1910            if (d = 100 * g + d, !a.fn.bootstrapValidator.helpers.date(d, e, f, !0)) return !1;
1911            for (var h = 0, i = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1], j = 0; 10 > j; j++) h += parseInt(b.charAt(j), 10) * i[j];
1912            if (h %= 11, 10 !== h) return h + "" === b.charAt(10);
1913            for (h = 0, i = [3, 4, 5, 6, 7, 8, 9, 1, 2, 3], j = 0; 10 > j; j++) h += parseInt(b.charAt(j), 10) * i[j];
1914            return h %= 11, 10 === h && (h = 0), h + "" === b.charAt(10)
1915        },
1916        _lv: function (b) {
1917            if (!/^[0-9]{6}[-]{0,1}[0-9]{5}$/.test(b)) return !1;
1918            b = b.replace(/\D/g, "");
1919            var c = parseInt(b.substr(0, 2), 10), d = parseInt(b.substr(2, 2), 10), e = parseInt(b.substr(4, 2), 10);
1920            if (e = e + 1800 + 100 * parseInt(b.charAt(6), 10), !a.fn.bootstrapValidator.helpers.date(e, d, c, !0)) return !1;
1921            for (var f = 0, g = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9], h = 0; 10 > h; h++) f += parseInt(b.charAt(h), 10) * g[h];
1922            return f = (f + 1) % 11 % 10, f + "" === b.charAt(10)
1923        },
1924        _nl: function (a) {
1925            for (; a.length < 9;) a = "0" + a;
1926            if (!/^[0-9]{4}[.]{0,1}[0-9]{2}[.]{0,1}[0-9]{3}$/.test(a)) return !1;
1927            if (a = a.replace(/\./g, ""), 0 === parseInt(a, 10)) return !1;
1928            for (var b = 0, c = a.length, d = 0; c - 1 > d; d++) b += (9 - d) * parseInt(a.charAt(d), 10);
1929            return b %= 11, 10 === b && (b = 0), b + "" === a.charAt(c - 1)
1930        },
1931        _ro: function (b) {
1932            if (!/^[0-9]{13}$/.test(b)) return !1;
1933            var c = parseInt(b.charAt(0), 10);
1934            if (0 === c || 7 === c || 8 === c) return !1;
1935            var d = parseInt(b.substr(1, 2), 10), e = parseInt(b.substr(3, 2), 10), f = parseInt(b.substr(5, 2), 10),
1936                g = {1: 1900, 2: 1900, 3: 1800, 4: 1800, 5: 2e3, 6: 2e3};
1937            if (f > 31 && e > 12) return !1;
1938            if (9 !== c && (d = g[c + ""] + d, !a.fn.bootstrapValidator.helpers.date(d, e, f))) return !1;
1939            for (var h = 0, i = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9], j = b.length, k = 0; j - 1 > k; k++) h += parseInt(b.charAt(k), 10) * i[k];
1940            return h %= 11, 10 === h && (h = 1), h + "" === b.charAt(j - 1)
1941        },
1942        _se: function (b) {
1943            if (!/^[0-9]{10}$/.test(b) && !/^[0-9]{6}[-|+][0-9]{4}$/.test(b)) return !1;
1944            b = b.replace(/[^0-9]/g, "");
1945            var c = parseInt(b.substr(0, 2), 10) + 1900, d = parseInt(b.substr(2, 2), 10),
1946                e = parseInt(b.substr(4, 2), 10);
1947            return a.fn.bootstrapValidator.helpers.date(c, d, e) ? a.fn.bootstrapValidator.helpers.luhn(b) : !1
1948        },
1949        _sk: function (a) {
1950            return this._cz(a)
1951        },
1952        _sm: function (a) {
1953            return /^\d{5}$/.test(a)
1954        },
1955        _th: function (a) {
1956            if (13 !== a.length) return !1;
1957            for (var b = 0, c = 0; 12 > c; c++) b += parseInt(a.charAt(c), 10) * (13 - c);
1958            return (11 - b % 11) % 10 === parseInt(a.charAt(12), 10)
1959        },
1960        _za: function (b) {
1961            if (!/^[0-9]{10}[0|1][8|9][0-9]$/.test(b)) return !1;
1962            var c = parseInt(b.substr(0, 2), 10), d = (new Date).getFullYear() % 100, e = parseInt(b.substr(2, 2), 10),
1963                f = parseInt(b.substr(4, 2), 10);
1964            return c = c >= d ? c + 1900 : c + 2e3, a.fn.bootstrapValidator.helpers.date(c, e, f) ? a.fn.bootstrapValidator.helpers.luhn(b) : !1
1965        }
1966    }
1967}(window.jQuery), function (a) {
1968    a.fn.bootstrapValidator.i18n.identical = a.extend(a.fn.bootstrapValidator.i18n.identical || {}, {"default": "Please enter the same value"}), a.fn.bootstrapValidator.validators.identical = {
1969        html5Attributes: {
1970            message: "message",
1971            field: "field"
1972        }, validate: function (a, b, c) {
1973            var d = b.val();
1974            if ("" === d) return !0;
1975            var e = a.getFieldElements(c.field);
1976            return null === e || 0 === e.length ? !0 : d === e.val() ? (a.updateStatus(c.field, a.STATUS_VALID, "identical"), !0) : !1
1977        }
1978    }
1979}(window.jQuery), function (a) {
1980    a.fn.bootstrapValidator.i18n.imei = a.extend(a.fn.bootstrapValidator.i18n.imei || {}, {"default": "Please enter a valid IMEI number"}), a.fn.bootstrapValidator.validators.imei = {
1981        validate: function (b, c) {
1982            var d = c.val();
1983            if ("" === d) return !0;
1984            switch (!0) {
1985                case/^\d{15}$/.test(d):
1986                case/^\d{2}-\d{6}-\d{6}-\d{1}$/.test(d):
1987                case/^\d{2}\s\d{6}\s\d{6}\s\d{1}$/.test(d):
1988                    return d = d.replace(/[^0-9]/g, ""), a.fn.bootstrapValidator.helpers.luhn(d);
1989                case/^\d{14}$/.test(d):
1990                case/^\d{16}$/.test(d):
1991                case/^\d{2}-\d{6}-\d{6}(|-\d{2})$/.test(d):
1992                case/^\d{2}\s\d{6}\s\d{6}(|\s\d{2})$/.test(d):
1993                    return !0;
1994                default:
1995                    return !1
1996            }
1997        }
1998    }
1999}(window.jQuery), function (a) {
2000    a.fn.bootstrapValidator.i18n.imo = a.extend(a.fn.bootstrapValidator.i18n.imo || {}, {"default": "Please enter a valid IMO number"}), a.fn.bootstrapValidator.validators.imo = {
2001        validate: function (a, b) {
2002            var c = b.val();
2003            if ("" === c) return !0;
2004            if (!/^IMO \d{7}$/i.test(c)) return !1;
2005            for (var d = 0, e = c.replace(/^.*(\d{7})$/, "$1"), f = 6; f >= 1; f--) d += e.slice(6 - f, -f) * (f + 1);
2006            return d % 10 === parseInt(e.charAt(6), 10)
2007        }
2008    }
2009}(window.jQuery), function (a) {
2010    a.fn.bootstrapValidator.i18n.integer = a.extend(a.fn.bootstrapValidator.i18n.integer || {}, {"default": "Please enter a valid number"}), a.fn.bootstrapValidator.validators.integer = {
2011        enableByHtml5: function (a) {
2012            return "number" === a.attr("type") && (void 0 === a.attr("step") || a.attr("step") % 1 === 0)
2013        }, validate: function (a, b) {
2014            if (this.enableByHtml5(b) && b.get(0).validity && b.get(0).validity.badInput === !0) return !1;
2015            var c = b.val();
2016            return "" === c ? !0 : /^(?:-?(?:0|[1-9][0-9]*))$/.test(c)
2017        }
2018    }
2019}(window.jQuery), function (a) {
2020    a.fn.bootstrapValidator.i18n.ip = a.extend(a.fn.bootstrapValidator.i18n.ip || {}, {
2021        "default": "Please enter a valid IP address",
2022        ipv4: "Please enter a valid IPv4 address",
2023        ipv6: "Please enter a valid IPv6 address"
2024    }), a.fn.bootstrapValidator.validators.ip = {
2025        html5Attributes: {message: "message", ipv4: "ipv4", ipv6: "ipv6"}, validate: function (b, c, d) {
2026            var e = c.val();
2027            if ("" === e) return !0;
2028            d = a.extend({}, {ipv4: !0, ipv6: !0}, d);
2029            var f, g = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
2030                h = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,
2031                i = !1;
2032            switch (!0) {
2033                case d.ipv4 && !d.ipv6:
2034                    i = g.test(e), f = d.message || a.fn.bootstrapValidator.i18n.ip.ipv4;
2035                    break;
2036                case!d.ipv4 && d.ipv6:
2037                    i = h.test(e), f = d.message || a.fn.bootstrapValidator.i18n.ip.ipv6;
2038                    break;
2039                case d.ipv4 && d.ipv6:
2040                default:
2041                    i = g.test(e) || h.test(e), f = d.message || a.fn.bootstrapValidator.i18n.ip["default"]
2042            }
2043            return {valid: i, message: f}
2044        }
2045    }
2046}(window.jQuery), function (a) {
2047    a.fn.bootstrapValidator.i18n.isbn = a.extend(a.fn.bootstrapValidator.i18n.isbn || {}, {"default": "Please enter a valid ISBN number"}), a.fn.bootstrapValidator.validators.isbn = {
2048        validate: function (a, b) {
2049            var c = b.val();
2050            if ("" === c) return !0;
2051            var d;
2052            switch (!0) {
2053                case/^\d{9}[\dX]$/.test(c):
2054                case 13 === c.length && /^(\d+)-(\d+)-(\d+)-([\dX])$/.test(c):
2055                case 13 === c.length && /^(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(c):
2056                    d = "ISBN10";
2057                    break;
2058                case/^(978|979)\d{9}[\dX]$/.test(c):
2059                case 17 === c.length && /^(978|979)-(\d+)-(\d+)-(\d+)-([\dX])$/.test(c):
2060                case 17 === c.length && /^(978|979)\s(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(c):
2061                    d = "ISBN13";
2062                    break;
2063                default:
2064                    return !1
2065            }
2066            c = c.replace(/[^0-9X]/gi, "");
2067            var e, f, g = c.split(""), h = g.length, i = 0;
2068            switch (d) {
2069                case"ISBN10":
2070                    for (i = 0, e = 0; h - 1 > e; e++) i += parseInt(g[e], 10) * (10 - e);
2071                    return f = 11 - i % 11, 11 === f ? f = 0 : 10 === f && (f = "X"), f + "" === g[h - 1];
2072                case"ISBN13":
2073                    for (i = 0, e = 0; h - 1 > e; e++) i += e % 2 === 0 ? parseInt(g[e], 10) : 3 * parseInt(g[e], 10);
2074                    return f = 10 - i % 10, 10 === f && (f = "0"), f + "" === g[h - 1];
2075                default:
2076                    return !1
2077            }
2078        }
2079    }
2080}(window.jQuery), function (a) {
2081    a.fn.bootstrapValidator.i18n.isin = a.extend(a.fn.bootstrapValidator.i18n.isin || {}, {"default": "Please enter a valid ISIN number"}), a.fn.bootstrapValidator.validators.isin = {
2082        COUNTRY_CODES: "AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW",
2083        validate: function (a, b) {
2084            var c = b.val();
2085            if ("" === c) return !0;
2086            c = c.toUpperCase();
2087            var d = new RegExp("^(" + this.COUNTRY_CODES + ")[0-9A-Z]{10}$");
2088            if (!d.test(c)) return !1;
2089            for (var e = "", f = c.length, g = 0; f - 1 > g; g++) {
2090                var h = c.charCodeAt(g);
2091                e += h > 57 ? (h - 55).toString() : c.charAt(g)
2092            }
2093            var i = "", j = e.length, k = j % 2 !== 0 ? 0 : 1;
2094            for (g = 0; j > g; g++) i += parseInt(e[g], 10) * (g % 2 === k ? 2 : 1) + "";
2095            var l = 0;
2096            for (g = 0; g < i.length; g++) l += parseInt(i.charAt(g), 10);
2097            return l = (10 - l % 10) % 10, l + "" === c.charAt(f - 1)
2098        }
2099    }
2100}(window.jQuery), function (a) {
2101    a.fn.bootstrapValidator.i18n.ismn = a.extend(a.fn.bootstrapValidator.i18n.ismn || {}, {"default": "Please enter a valid ISMN number"}), a.fn.bootstrapValidator.validators.ismn = {
2102        validate: function (a, b) {
2103            var c = b.val();
2104            if ("" === c) return !0;
2105            var d;
2106            switch (!0) {
2107                case/^M\d{9}$/.test(c):
2108                case/^M-\d{4}-\d{4}-\d{1}$/.test(c):
2109                case/^M\s\d{4}\s\d{4}\s\d{1}$/.test(c):
2110                    d = "ISMN10";
2111                    break;
2112                case/^9790\d{9}$/.test(c):
2113                case/^979-0-\d{4}-\d{4}-\d{1}$/.test(c):
2114                case/^979\s0\s\d{4}\s\d{4}\s\d{1}$/.test(c):
2115                    d = "ISMN13";
2116                    break;
2117                default:
2118                    return !1
2119            }
2120            "ISMN10" === d && (c = "9790" + c.substr(1)), c = c.replace(/[^0-9]/gi, "");
2121            for (var e = c.length, f = 0, g = [1, 3], h = 0; e - 1 > h; h++) f += parseInt(c.charAt(h), 10) * g[h % 2];
2122            return f = 10 - f % 10, f + "" === c.charAt(e - 1)
2123        }
2124    }
2125}(window.jQuery), function (a) {
2126    a.fn.bootstrapValidator.i18n.issn = a.extend(a.fn.bootstrapValidator.i18n.issn || {}, {"default": "Please enter a valid ISSN number"}), a.fn.bootstrapValidator.validators.issn = {
2127        validate: function (a, b) {
2128            var c = b.val();
2129            if ("" === c) return !0;
2130            if (!/^\d{4}\-\d{3}[\dX]$/.test(c)) return !1;
2131            c = c.replace(/[^0-9X]/gi, "");
2132            var d = c.split(""), e = d.length, f = 0;
2133            "X" === d[7] && (d[7] = 10);
2134            for (var g = 0; e > g; g++) f += parseInt(d[g], 10) * (8 - g);
2135            return f % 11 === 0
2136        }
2137    }
2138}(window.jQuery), function (a) {
2139    a.fn.bootstrapValidator.i18n.lessThan = a.extend(a.fn.bootstrapValidator.i18n.lessThan || {}, {
2140        "default": "Please enter a value less than or equal to %s",
2141        notInclusive: "Please enter a value less than %s"
2142    }), a.fn.bootstrapValidator.validators.lessThan = {
2143        html5Attributes: {
2144            message: "message",
2145            value: "value",
2146            inclusive: "inclusive"
2147        }, enableByHtml5: function (a) {
2148            var b = a.attr("type"), c = a.attr("max");
2149            return c && "date" !== b ? {value: c} : !1
2150        }, validate: function (b, c, d) {
2151            var e = c.val();
2152            if ("" === e) return !0;
2153            if (e = this._format(e), !a.isNumeric(e)) return !1;
2154            var f = a.isNumeric(d.value) ? d.value : b.getDynamicOption(c, d.value), g = this._format(f);
2155            return e = parseFloat(e), d.inclusive === !0 || void 0 === d.inclusive ? {
2156                valid: g >= e,
2157                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.lessThan["default"], f)
2158            } : {
2159                valid: g > e,
2160                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.lessThan.notInclusive, f)
2161            }
2162        }, _format: function (a) {
2163            return (a + "").replace(",", ".")
2164        }
2165    }
2166}(window.jQuery), function (a) {
2167    a.fn.bootstrapValidator.i18n.mac = a.extend(a.fn.bootstrapValidator.i18n.mac || {}, {"default": "Please enter a valid MAC address"}), a.fn.bootstrapValidator.validators.mac = {
2168        validate: function (a, b) {
2169            var c = b.val();
2170            return "" === c ? !0 : /^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/.test(c)
2171        }
2172    }
2173}(window.jQuery), function (a) {
2174    a.fn.bootstrapValidator.i18n.meid = a.extend(a.fn.bootstrapValidator.i18n.meid || {}, {"default": "Please enter a valid MEID number"}), a.fn.bootstrapValidator.validators.meid = {
2175        validate: function (b, c) {
2176            var d = c.val();
2177            if ("" === d) return !0;
2178            switch (!0) {
2179                case/^[0-9A-F]{15}$/i.test(d):
2180                case/^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}[- ][0-9A-F]$/i.test(d):
2181                case/^\d{19}$/.test(d):
2182                case/^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}[- ]\d$/.test(d):
2183                    var e = d.charAt(d.length - 1);
2184                    if (d = d.replace(/[- ]/g, ""), d.match(/^\d*$/i)) return a.fn.bootstrapValidator.helpers.luhn(d);
2185                    d = d.slice(0, -1);
2186                    for (var f = "", g = 1; 13 >= g; g += 2) f += (2 * parseInt(d.charAt(g), 16)).toString(16);
2187                    var h = 0;
2188                    for (g = 0; g < f.length; g++) h += parseInt(f.charAt(g), 16);
2189                    return h % 10 === 0 ? "0" === e : e === (2 * (10 * Math.floor((h + 10) / 10) - h)).toString(16);
2190                case/^[0-9A-F]{14}$/i.test(d):
2191                case/^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}$/i.test(d):
2192                case/^\d{18}$/.test(d):
2193                case/^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}$/.test(d):
2194                    return !0;
2195                default:
2196                    return !1
2197            }
2198        }
2199    }
2200}(window.jQuery), function (a) {
2201    a.fn.bootstrapValidator.i18n.notEmpty = a.extend(a.fn.bootstrapValidator.i18n.notEmpty || {}, {"default": "Please enter a value"}), a.fn.bootstrapValidator.validators.notEmpty = {
2202        enableByHtml5: function (a) {
2203            var b = a.attr("required") + "";
2204            return "required" === b || "true" === b
2205        }, validate: function (b, c) {
2206            var d = c.attr("type");
2207            return "radio" === d || "checkbox" === d ? b.getFieldElements(c.attr("data-bv-field")).filter(":checked").length > 0 : "number" === d && c.get(0).validity && c.get(0).validity.badInput === !0 ? !0 : "" !== a.trim(c.val())
2208        }
2209    }
2210}(window.jQuery), function (a) {
2211    a.fn.bootstrapValidator.i18n.numeric = a.extend(a.fn.bootstrapValidator.i18n.numeric || {}, {"default": "Please enter a valid float number"}), a.fn.bootstrapValidator.validators.numeric = {
2212        html5Attributes: {
2213            message: "message",
2214            separator: "separator"
2215        }, enableByHtml5: function (a) {
2216            return "number" === a.attr("type") && void 0 !== a.attr("step") && a.attr("step") % 1 !== 0
2217        }, validate: function (a, b, c) {
2218            if (this.enableByHtml5(b) && b.get(0).validity && b.get(0).validity.badInput === !0) return !1;
2219            var d = b.val();
2220            if ("" === d) return !0;
2221            var e = c.separator || ".";
2222            return "." !== e && (d = d.replace(e, ".")), !isNaN(parseFloat(d)) && isFinite(d)
2223        }
2224    }
2225}(window.jQuery), function (a) {
2226    a.fn.bootstrapValidator.i18n.phone = a.extend(a.fn.bootstrapValidator.i18n.phone || {}, {
2227        "default": "Please enter a valid phone number",
2228        countryNotSupported: "The country code %s is not supported",
2229        country: "Please enter a valid phone number in %s",
2230        countries: {
2231            BR: "Brazil",
2232            CN: "China",
2233            CZ: "Czech Republic",
2234            DE: "Germany",
2235            DK: "Denmark",
2236            ES: "Spain",
2237            FR: "France",
2238            GB: "United Kingdom",
2239            MA: "Morocco",
2240            PK: "Pakistan",
2241            RO: "Romania",
2242            RU: "Russia",
2243            SK: "Slovakia",
2244            TH: "Thailand",
2245            US: "USA",
2246            VE: "Venezuela"
2247        }
2248    }), a.fn.bootstrapValidator.validators.phone = {
2249        html5Attributes: {message: "message", country: "country"},
2250        COUNTRY_CODES: ["BR", "CN", "CZ", "DE", "DK", "ES", "FR", "GB", "MA", "PK", "RO", "RU", "SK", "TH", "US", "VE"],
2251        validate: function (b, c, d) {
2252            var e = c.val();
2253            if ("" === e) return !0;
2254            var f = d.country;
2255            if (("string" != typeof f || -1 === a.inArray(f, this.COUNTRY_CODES)) && (f = b.getDynamicOption(c, f)), !f || -1 === a.inArray(f.toUpperCase(), this.COUNTRY_CODES)) return {
2256                valid: !1,
2257                message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.phone.countryNotSupported, f)
2258            };
2259            var g = !0;
2260            switch (f.toUpperCase()) {
2261                case"BR":
2262                    e = a.trim(e), g = /^(([\d]{4}[-.\s]{1}[\d]{2,3}[-.\s]{1}[\d]{2}[-.\s]{1}[\d]{2})|([\d]{4}[-.\s]{1}[\d]{3}[-.\s]{1}[\d]{4})|((\(?\+?[0-9]{2}\)?\s?)?(\(?\d{2}\)?\s?)?\d{4,5}[-.\s]?\d{4}))$/.test(e);
2263                    break;
2264                case"CN":
2265                    e = a.trim(e), g = /^((00|\+)?(86(?:-| )))?((\d{11})|(\d{3}[- ]{1}\d{4}[- ]{1}\d{4})|((\d{2,4}[- ]){1}(\d{7,8}|(\d{3,4}[- ]{1}\d{4}))([- ]{1}\d{1,4})?))$/.test(e);
2266                    break;
2267                case"CZ":
2268                    g = /^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(e);
2269                    break;
2270                case"DE":
2271                    e = a.trim(e), g = /^(((((((00|\+)49[ \-/]?)|0)[1-9][0-9]{1,4})[ \-/]?)|((((00|\+)49\()|\(0)[1-9][0-9]{1,4}\)[ \-/]?))[0-9]{1,7}([ \-/]?[0-9]{1,5})?)$/.test(e);
2272                    break;
2273                case"DK":
2274                    e = a.trim(e), g = /^(\+45|0045|\(45\))?\s?[2-9](\s?\d){7}$/.test(e);
2275                    break;
2276                case"ES":
2277                    e = a.trim(e), g = /^(?:(?:(?:\+|00)34\D?))?(?:9|6)(?:\d\D?){8}$/.test(e);
2278                    break;
2279                case"FR":
2280                    e = a.trim(e), g = /^(?:(?:(?:\+|00)33[ ]?(?:\(0\)[ ]?)?)|0){1}[1-9]{1}([ .-]?)(?:\d{2}\1?){3}\d{2}$/.test(e);
2281                    break;
2282                case"GB":
2283                    e = a.trim(e), g = /^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$/.test(e);
2284                    break;
2285                case"MA":
2286                    e = a.trim(e), g = /^(?:(?:(?:\+|00)212[\s]?(?:[\s]?\(0\)[\s]?)?)|0){1}(?:5[\s.-]?[2-3]|6[\s.-]?[13-9]){1}[0-9]{1}(?:[\s.-]?\d{2}){3}$/.test(e);
2287                    break;
2288                case"PK":
2289                    e = a.trim(e), g = /^0?3[0-9]{2}[0-9]{7}$/.test(e);
2290                    break;
2291                case"RO":
2292                    g = /^(\+4|)?(07[0-8]{1}[0-9]{1}|02[0-9]{2}|03[0-9]{2}){1}?(\s|\.|\-)?([0-9]{3}(\s|\.|\-|)){2}$/g.test(e);
2293                    break;
2294                case"RU":
2295                    g = /^((8|\+7|007)[\-\.\/ ]?)?([\(\/\.]?\d{3}[\)\/\.]?[\-\.\/ ]?)?[\d\-\.\/ ]{7,10}$/g.test(e);
2296                    break;
2297                case"SK":
2298                    g = /^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(e);
2299                    break;
2300                case"TH":
2301                    g = /^0\(?([6|8-9]{2})*-([0-9]{3})*-([0-9]{4})$/.test(e);
2302                    break;
2303                case"VE":
2304                    e = a.trim(e), g = /^0(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789])|4(?:1[246]|2[46]))\d{7}$/.test(e);
2305                    break;
2306                case"US":
2307                default:
2308                    e = e.replace(/\D/g, ""), g = /^(?:(1\-?)|(\+1 ?))?\(?(\d{3})[\)\-\.]?(\d{3})[\-\.]?(\d{4})$/.test(e) && 10 === e.length
2309            }
2310            return {
2311                valid: g,
2312                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.phone.country, a.fn.bootstrapValidator.i18n.phone.countries[f])
2313            }
2314        }
2315    }
2316}(window.jQuery), function (a) {
2317    a.fn.bootstrapValidator.i18n.regexp = a.extend(a.fn.bootstrapValidator.i18n.regexp || {}, {"default": "Please enter a value matching the pattern"}), a.fn.bootstrapValidator.validators.regexp = {
2318        html5Attributes: {
2319            message: "message",
2320            regexp: "regexp"
2321        }, enableByHtml5: function (a) {
2322            var b = a.attr("pattern");
2323            return b ? {regexp: b} : !1
2324        }, validate: function (a, b, c) {
2325            var d = b.val();
2326            if ("" === d) return !0;
2327            var e = "string" == typeof c.regexp ? new RegExp(c.regexp) : c.regexp;
2328            return e.test(d)
2329        }
2330    }
2331}(window.jQuery), function (a) {
2332    a.fn.bootstrapValidator.i18n.remote = a.extend(a.fn.bootstrapValidator.i18n.remote || {}, {"default": "Please enter a valid value"}), a.fn.bootstrapValidator.validators.remote = {
2333        html5Attributes: {
2334            message: "message",
2335            name: "name",
2336            type: "type",
2337            url: "url",
2338            data: "data",
2339            delay: "delay"
2340        }, destroy: function (a, b) {
2341            b.data("bv.remote.timer") && (clearTimeout(b.data("bv.remote.timer")), b.removeData("bv.remote.timer"))
2342        }, validate: function (b, c, d) {
2343            function e() {
2344                var b = a.ajax({type: k, headers: l, url: j, dataType: "json", data: i});
2345                return b.then(function (a) {
2346                    a.valid = a.valid === !0 || "true" === a.valid, g.resolve(c, "remote", a)
2347                }), g.fail(function () {
2348                    b.abort()
2349                }), g
2350            }
2351
2352            var f = c.val(), g = new a.Deferred;
2353            if ("" === f) return g.resolve(c, "remote", {valid: !0}), g;
2354            var h = c.attr("data-bv-field"), i = d.data || {}, j = d.url, k = d.type || "GET", l = d.headers || {};
2355            return "function" == typeof i && (i = i.call(this, b)), "string" == typeof i && (i = JSON.parse(i)), "function" == typeof j && (j = j.call(this, b)), i[d.name || h] = f, d.delay ? (c.data("bv.remote.timer") && clearTimeout(c.data("bv.remote.timer")), c.data("bv.remote.timer", setTimeout(e, d.delay)), g) : e()
2356        }
2357    }
2358}(window.jQuery), function (a) {
2359    a.fn.bootstrapValidator.i18n.rtn = a.extend(a.fn.bootstrapValidator.i18n.rtn || {}, {"default": "Please enter a valid RTN number"}), a.fn.bootstrapValidator.validators.rtn = {
2360        validate: function (a, b) {
2361            var c = b.val();
2362            if ("" === c) return !0;
2363            if (!/^\d{9}$/.test(c)) return !1;
2364            for (var d = 0, e = 0; e < c.length; e += 3) d += 3 * parseInt(c.charAt(e), 10) + 7 * parseInt(c.charAt(e + 1), 10) + parseInt(c.charAt(e + 2), 10);
2365            return 0 !== d && d % 10 === 0
2366        }
2367    }
2368}(window.jQuery), function (a) {
2369    a.fn.bootstrapValidator.i18n.sedol = a.extend(a.fn.bootstrapValidator.i18n.sedol || {}, {"default": "Please enter a valid SEDOL number"}), a.fn.bootstrapValidator.validators.sedol = {
2370        validate: function (a, b) {
2371            var c = b.val();
2372            if ("" === c) return !0;
2373            if (c = c.toUpperCase(), !/^[0-9A-Z]{7}$/.test(c)) return !1;
2374            for (var d = 0, e = [1, 3, 1, 7, 3, 9, 1], f = c.length, g = 0; f - 1 > g; g++) d += e[g] * parseInt(c.charAt(g), 36);
2375            return d = (10 - d % 10) % 10, d + "" === c.charAt(f - 1)
2376        }
2377    }
2378}(window.jQuery), function (a) {
2379    a.fn.bootstrapValidator.i18n.siren = a.extend(a.fn.bootstrapValidator.i18n.siren || {}, {"default": "Please enter a valid SIREN number"}), a.fn.bootstrapValidator.validators.siren = {
2380        validate: function (b, c) {
2381            var d = c.val();
2382            return "" === d ? !0 : /^\d{9}$/.test(d) ? a.fn.bootstrapValidator.helpers.luhn(d) : !1
2383        }
2384    }
2385}(window.jQuery), function (a) {
2386    a.fn.bootstrapValidator.i18n.siret = a.extend(a.fn.bootstrapValidator.i18n.siret || {}, {"default": "Please enter a valid SIRET number"}), a.fn.bootstrapValidator.validators.siret = {
2387        validate: function (a, b) {
2388            var c = b.val();
2389            if ("" === c) return !0;
2390            for (var d, e = 0, f = c.length, g = 0; f > g; g++) d = parseInt(c.charAt(g), 10), g % 2 === 0 && (d = 2 * d, d > 9 && (d -= 9)), e += d;
2391            return e % 10 === 0
2392        }
2393    }
2394}(window.jQuery), function (a) {
2395    a.fn.bootstrapValidator.i18n.step = a.extend(a.fn.bootstrapValidator.i18n.step || {}, {"default": "Please enter a valid step of %s"}), a.fn.bootstrapValidator.validators.step = {
2396        html5Attributes: {
2397            message: "message",
2398            base: "baseValue",
2399            step: "step"
2400        }, validate: function (b, c, d) {
2401            var e = c.val();
2402            if ("" === e) return !0;
2403            if (d = a.extend({}, {baseValue: 0, step: 1}
2403, d), e = parseFloat(e), !a.isNumeric(e)) return !1;
2404            var f = function (a, b) {
2405                var c = Math.pow(10, b);
2406                a *= c;
2407                var d = a > 0 | -(0 > a), e = a % 1 === .5 * d;
2408                return e ? (Math.floor(a) + (d > 0)) / c : Math.round(a) / c
2409            }, g = function (a, b) {
2410                if (0 === b) return 1;
2411                var c = (a + "").split("."), d = (b + "").split("."),
2412                    e = (1 === c.length ? 0 : c[1].length) + (1 === d.length ? 0 : d[1].length);
2413                return f(a - b * Math.floor(a / b), e)
2414            }, h = g(e - d.baseValue, d.step);
2415            return {
2416                valid: 0 === h || h === d.step,
2417                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.step["default"], [d.step])
2418            }
2419        }
2420    }
2421}(window.jQuery), function (a) {
2422    a.fn.bootstrapValidator.i18n.stringCase = a.extend(a.fn.bootstrapValidator.i18n.stringCase || {}, {
2423        "default": "Please enter only lowercase characters",
2424        upper: "Please enter only uppercase characters"
2425    }), a.fn.bootstrapValidator.validators.stringCase = {
2426        html5Attributes: {message: "message", "case": "case"},
2427        validate: function (b, c, d) {
2428            var e = c.val();
2429            if ("" === e) return !0;
2430            var f = (d["case"] || "lower").toLowerCase();
2431            return {
2432                valid: "upper" === f ? e === e.toUpperCase() : e === e.toLowerCase(),
2433                message: d.message || ("upper" === f ? a.fn.bootstrapValidator.i18n.stringCase.upper : a.fn.bootstrapValidator.i18n.stringCase["default"])
2434            }
2435        }
2436    }
2437}(window.jQuery), function (a) {
2438    a.fn.bootstrapValidator.i18n.stringLength = a.extend(a.fn.bootstrapValidator.i18n.stringLength || {}, {
2439        "default": "Please enter a value with valid length",
2440        less: "Please enter less than %s characters",
2441        more: "Please enter more than %s characters",
2442        between: "Please enter value between %s and %s characters long"
2443    }), a.fn.bootstrapValidator.validators.stringLength = {
2444        html5Attributes: {message: "message", min: "min", max: "max", trim: "trim", utf8bytes: "utf8Bytes"},
2445        enableByHtml5: function (b) {
2446            var c = {}, d = b.attr("maxlength"), e = b.attr("minlength");
2447            return d && (c.max = parseInt(d, 10)), e && (c.min = parseInt(e, 10)), a.isEmptyObject(c) ? !1 : c
2448        },
2449        validate: function (b, c, d) {
2450            var e = c.val();
2451            if ((d.trim === !0 || "true" === d.trim) && (e = a.trim(e)), "" === e) return !0;
2452            var f = a.isNumeric(d.min) ? d.min : b.getDynamicOption(c, d.min),
2453                g = a.isNumeric(d.max) ? d.max : b.getDynamicOption(c, d.max), h = function (a) {
2454                    for (var b = a.length, c = a.length - 1; c >= 0; c--) {
2455                        var d = a.charCodeAt(c);
2456                        d > 127 && 2047 >= d ? b++ : d > 2047 && 65535 >= d && (b += 2), d >= 56320 && 57343 >= d && c--
2457                    }
2458                    return b
2459                }, i = d.utf8Bytes ? h(e) : e.length, j = !0,
2460                k = d.message || a.fn.bootstrapValidator.i18n.stringLength["default"];
2461            switch ((f && i < parseInt(f, 10) || g && i > parseInt(g, 10)) && (j = !1), !0) {
2462                case!!f && !!g:
2463                    k = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.stringLength.between, [parseInt(f, 10), parseInt(g, 10)]);
2464                    break;
2465                case!!f:
2466                    k = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.stringLength.more, parseInt(f, 10));
2467                    break;
2468                case!!g:
2469                    k = a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.stringLength.less, parseInt(g, 10))
2470            }
2471            return {valid: j, message: k}
2472        }
2473    }
2474}(window.jQuery), function (a) {
2475    a.fn.bootstrapValidator.i18n.uri = a.extend(a.fn.bootstrapValidator.i18n.uri || {}, {"default": "Please enter a valid URI"}), a.fn.bootstrapValidator.validators.uri = {
2476        html5Attributes: {
2477            message: "message",
2478            allowlocal: "allowLocal",
2479            protocol: "protocol"
2480        }, enableByHtml5: function (a) {
2481            return "url" === a.attr("type")
2482        }, validate: function (a, b, c) {
2483            var d = b.val();
2484            if ("" === d) return !0;
2485            var e = c.allowLocal === !0 || "true" === c.allowLocal,
2486                f = (c.protocol || "http, https, ftp").split(",").join("|").replace(/\s/g, ""),
2487                g = new RegExp("^(?:(?:" + f + ")://)(?:\\S+(?::\\S*)?@)?(?:" + (e ? "" : "(?!(?: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,}))" + (e ? "?" : "") + ")(?::\\d{2,5})?(?:/[^\\s]*)?$", "i");
2488            return g.test(d)
2489        }
2490    }
2491}(window.jQuery), function (a) {
2492    a.fn.bootstrapValidator.i18n.uuid = a.extend(a.fn.bootstrapValidator.i18n.uuid || {}, {
2493        "default": "Please enter a valid UUID number",
2494        version: "Please enter a valid UUID version %s number"
2495    }), a.fn.bootstrapValidator.validators.uuid = {
2496        html5Attributes: {message: "message", version: "version"},
2497        validate: function (b, c, d) {
2498            var e = c.val();
2499            if ("" === e) return !0;
2500            var f = {
2501                3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
2502                4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
2503                5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
2504                all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i
2505            }, g = d.version ? d.version + "" : "all";
2506            return {
2507                valid: null === f[g] ? !0 : f[g].test(e),
2508                message: d.version ? a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.uuid.version, d.version) : d.message || a.fn.bootstrapValidator.i18n.uuid["default"]
2509            }
2510        }
2511    }
2512}(window.jQuery), function (a) {
2513    a.fn.bootstrapValidator.i18n.vat = a.extend(a.fn.bootstrapValidator.i18n.vat || {}, {
2514        "default": "Please enter a valid VAT number",
2515        countryNotSupported: "The country code %s is not supported",
2516        country: "Please enter a valid VAT number in %s",
2517        countries: {
vendor: 22,247 bytes, lines 2518-2907
2518            AT: "Austria",
2519            BE: "Belgium",
2520            BG: "Bulgaria",
2521            BR: "Brazil",
2522            CH: "Switzerland",
2523            CY: "Cyprus",
2524            CZ: "Czech Republic",
2525            DE: "Germany",
2526            DK: "Denmark",
2527            EE: "Estonia",
2528            ES: "Spain",
2529            FI: "Finland",
2530            FR: "France",
2531            GB: "United Kingdom",
2532            GR: "Greek",
2533            EL: "Greek",
2534            HU: "Hungary",
2535            HR: "Croatia",
2536            IE: "Ireland",
2537            IS: "Iceland",
2538            IT: "Italy",
2539            LT: "Lithuania",
2540            LU: "Luxembourg",
2541            LV: "Latvia",
2542            MT: "Malta",
2543            NL: "Netherlands",
2544            NO: "Norway",
2545            PL: "Poland",
2546            PT: "Portugal",
2547            RO: "Romania",
2548            RU: "Russia",
2549            RS: "Serbia",
2550            SE: "Sweden",
2551            SI: "Slovenia",
2552            SK: "Slovakia",
2553            VE: "Venezuela",
2554            ZA: "South Africa"
2555        }
2556    }), a.fn.bootstrapValidator.validators.vat = {
2557        html5Attributes: {message: "message", country: "country"},
2558        COUNTRY_CODES: ["AT", "BE", "BG", "BR", "CH", "CY", "CZ", "DE", "DK", "EE", "EL", "ES", "FI", "FR", "GB", "GR", "HR", "HU", "IE", "IS", "IT", "LT", "LU", "LV", "MT", "NL", "NO", "PL", "PT", "RO", "RU", "RS", "SE", "SK", "SI", "VE", "ZA"],
2559        validate: function (b, c, d) {
2560            var e = c.val();
2561            if ("" === e) return !0;
2562            var f = d.country;
2563            if (f ? ("string" != typeof f || -1 === a.inArray(f.toUpperCase(), this.COUNTRY_CODES)) && (f = b.getDynamicOption(c, f)) : f = e.substr(0, 2), -1 === a.inArray(f, this.COUNTRY_CODES)) return {
2564                valid: !1,
2565                message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.vat.countryNotSupported, f)
2566            };
2567            var g = ["_", f.toLowerCase()].join("");
2568            return this[g](e) ? !0 : {
2569                valid: !1,
2570                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.vat.country, a.fn.bootstrapValidator.i18n.vat.countries[f.toUpperCase()])
2571            }
2572        },
2573        _at: function (a) {
2574            if (/^ATU[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^U[0-9]{8}$/.test(a)) return !1;
2575            a = a.substr(1);
2576            for (var b = 0, c = [1, 2, 1, 2, 1, 2, 1], d = 0, e = 0; 7 > e; e++) d = parseInt(a.charAt(e), 10) * c[e], d > 9 && (d = Math.floor(d / 10) + d % 10), b += d;
2577            return b = 10 - (b + 4) % 10, 10 === b && (b = 0), b + "" === a.substr(7, 1)
2578        },
2579        _be: function (a) {
2580            if (/^BE[0]{0,1}[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0]{0,1}[0-9]{9}$/.test(a)) return !1;
2581            if (9 === a.length && (a = "0" + a), "0" === a.substr(1, 1)) return !1;
2582            var b = parseInt(a.substr(0, 8), 10) + parseInt(a.substr(8, 2), 10);
2583            return b % 97 === 0
2584        },
2585        _bg: function (b) {
2586            if (/^BG[0-9]{9,10}$/.test(b) && (b = b.substr(2)), !/^[0-9]{9,10}$/.test(b)) return !1;
2587            var c = 0, d = 0;
2588            if (9 === b.length) {
2589                for (d = 0; 8 > d; d++) c += parseInt(b.charAt(d), 10) * (d + 1);
2590                if (c %= 11, 10 === c) for (c = 0, d = 0; 8 > d; d++) c += parseInt(b.charAt(d), 10) * (d + 3);
2591                return c %= 10, c + "" === b.substr(8)
2592            }
2593            if (10 === b.length) {
2594                var e = function (b) {
2595                    var c = parseInt(b.substr(0, 2), 10) + 1900, d = parseInt(b.substr(2, 2), 10),
2596                        e = parseInt(b.substr(4, 2), 10);
2597                    if (d > 40 ? (c += 100, d -= 40) : d > 20 && (c -= 100, d -= 20), !a.fn.bootstrapValidator.helpers.date(c, d, e)) return !1;
2598                    for (var f = 0, g = [2, 4, 8, 5, 10, 9, 7, 3, 6], h = 0; 9 > h; h++) f += parseInt(b.charAt(h), 10) * g[h];
2599                    return f = f % 11 % 10, f + "" === b.substr(9, 1)
2600                }, f = function (a) {
2601                    for (var b = 0, c = [21, 19, 17, 13, 11, 9, 7, 3, 1], d = 0; 9 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2602                    return b %= 10, b + "" === a.substr(9, 1)
2603                }, g = function (a) {
2604                    for (var b = 0, c = [4, 3, 2, 7, 6, 5, 4, 3, 2], d = 0; 9 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2605                    return b = 11 - b % 11, 10 === b ? !1 : (11 === b && (b = 0), b + "" === a.substr(9, 1))
2606                };
2607                return e(b) || f(b) || g(b)
2608            }
2609            return !1
2610        },
2611        _br: function (a) {
2612            if ("" === a) return !0;
2613            var b = a.replace(/[^\d]+/g, "");
2614            if ("" === b || 14 !== b.length) return !1;
2615            if ("00000000000000" === b || "11111111111111" === b || "22222222222222" === b || "33333333333333" === b || "44444444444444" === b || "55555555555555" === b || "66666666666666" === b || "77777777777777" === b || "88888888888888" === b || "99999999999999" === b) return !1;
2616            for (var c = b.length - 2, d = b.substring(0, c), e = b.substring(c), f = 0, g = c - 7, h = c; h >= 1; h--) f += parseInt(d.charAt(c - h), 10) * g--, 2 > g && (g = 9);
2617            var i = 2 > f % 11 ? 0 : 11 - f % 11;
2618            if (i !== parseInt(e.charAt(0), 10)) return !1;
2619            for (c += 1, d = b.substring(0, c), f = 0, g = c - 7, h = c; h >= 1; h--) f += parseInt(d.charAt(c - h), 10) * g--, 2 > g && (g = 9);
2620            return i = 2 > f % 11 ? 0 : 11 - f % 11, i === parseInt(e.charAt(1), 10)
2621        },
2622        _ch: function (a) {
2623            if (/^CHE[0-9]{9}(MWST)?$/.test(a) && (a = a.substr(2)), !/^E[0-9]{9}(MWST)?$/.test(a)) return !1;
2624            a = a.substr(1);
2625            for (var b = 0, c = [5, 4, 3, 2, 7, 6, 5, 4], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2626            return b = 11 - b % 11, 10 === b ? !1 : (11 === b && (b = 0), b + "" === a.substr(8, 1))
2627        },
2628        _cy: function (a) {
2629            if (/^CY[0-5|9]{1}[0-9]{7}[A-Z]{1}$/.test(a) && (a = a.substr(2)), !/^[0-5|9]{1}[0-9]{7}[A-Z]{1}$/.test(a)) return !1;
2630            if ("12" === a.substr(0, 2)) return !1;
2631            for (var b = 0, c = {0: 1, 1: 0, 2: 5, 3: 7, 4: 9, 5: 13, 6: 15, 7: 17, 8: 19, 9: 21}, d = 0; 8 > d; d++) {
2632                var e = parseInt(a.charAt(d), 10);
2633                d % 2 === 0 && (e = c[e + ""]), b += e
2634            }
2635            return b = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[b % 26], b + "" === a.substr(8, 1)
2636        },
2637        _cz: function (b) {
2638            if (/^CZ[0-9]{8,10}$/.test(b) && (b = b.substr(2)), !/^[0-9]{8,10}$/.test(b)) return !1;
2639            var c = 0, d = 0;
2640            if (8 === b.length) {
2641                if (b.charAt(0) + "" == "9") return !1;
2642                for (c = 0, d = 0; 7 > d; d++) c += parseInt(b.charAt(d), 10) * (8 - d);
2643                return c = 11 - c % 11, 10 === c && (c = 0), 11 === c && (c = 1), c + "" === b.substr(7, 1)
2644            }
2645            if (9 === b.length && b.charAt(0) + "" == "6") {
2646                for (c = 0, d = 0; 7 > d; d++) c += parseInt(b.charAt(d + 1), 10) * (8 - d);
2647                return c = 11 - c % 11, 10 === c && (c = 0), 11 === c && (c = 1), c = [8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 10][c - 1], c + "" === b.substr(8, 1)
2648            }
2649            if (9 === b.length || 10 === b.length) {
2650                var e = 1900 + parseInt(b.substr(0, 2), 10), f = parseInt(b.substr(2, 2), 10) % 50 % 20,
2651                    g = parseInt(b.substr(4, 2), 10);
2652                if (9 === b.length) {
2653                    if (e >= 1980 && (e -= 100), e > 1953) return !1
2654                } else 1954 > e && (e += 100);
2655                if (!a.fn.bootstrapValidator.helpers.date(e, f, g)) return !1;
2656                if (10 === b.length) {
2657                    var h = parseInt(b.substr(0, 9), 10) % 11;
2658                    return 1985 > e && (h %= 10), h + "" === b.substr(9, 1)
2659                }
2660                return !0
2661            }
2662            return !1
2663        },
2664        _de: function (b) {
2665            return /^DE[0-9]{9}$/.test(b) && (b = b.substr(2)), /^[0-9]{9}$/.test(b) ? a.fn.bootstrapValidator.helpers.mod11And10(b) : !1
2666        },
2667        _dk: function (a) {
2668            if (/^DK[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1;
2669            for (var b = 0, c = [2, 7, 6, 5, 4, 3, 2, 1], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2670            return b % 11 === 0
2671        },
2672        _ee: function (a) {
2673            if (/^EE[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1;
2674            for (var b = 0, c = [3, 7, 1, 3, 7, 1, 3, 7, 1], d = 0; 9 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2675            return b % 10 === 0
2676        },
2677        _es: function (a) {
2678            if (/^ES[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(a) && (a = a.substr(2)), !/^[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(a)) return !1;
2679            var b = function (a) {
2680                var b = parseInt(a.substr(0, 8), 10);
2681                return b = "TRWAGMYFPDXBNJZSQVHLCKE"[b % 23], b + "" === a.substr(8, 1)
2682            }, c = function (a) {
2683                var b = ["XYZ".indexOf(a.charAt(0)), a.substr(1)].join("");
2684                return b = parseInt(b, 10), b = "TRWAGMYFPDXBNJZSQVHLCKE"[b % 23], b + "" === a.substr(8, 1)
2685            }, d = function (a) {
2686                var b, c = a.charAt(0);
2687                if (-1 !== "KLM".indexOf(c)) return b = parseInt(a.substr(1, 8), 10), b = "TRWAGMYFPDXBNJZSQVHLCKE"[b % 23], b + "" === a.substr(8, 1);
2688                if (-1 !== "ABCDEFGHJNPQRSUVW".indexOf(c)) {
2689                    for (var d = 0, e = [2, 1, 2, 1, 2, 1, 2], f = 0, g = 0; 7 > g; g++) f = parseInt(a.charAt(g + 1), 10) * e[g], f > 9 && (f = Math.floor(f / 10) + f % 10), d += f;
2690                    return d = 10 - d % 10, d + "" === a.substr(8, 1) || "JABCDEFGHI"[d] === a.substr(8, 1)
2691                }
2692                return !1
2693            }, e = a.charAt(0);
2694            return /^[0-9]$/.test(e) ? b(a) : /^[XYZ]$/.test(e) ? c(a) : d(a)
2695        },
2696        _fi: function (a) {
2697            if (/^FI[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1;
2698            for (var b = 0, c = [7, 9, 10, 5, 8, 4, 2, 1], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2699            return b % 11 === 0
2700        },
2701        _fr: function (b) {
2702            if (/^FR[0-9A-Z]{2}[0-9]{9}$/.test(b) && (b = b.substr(2)), !/^[0-9A-Z]{2}[0-9]{9}$/.test(b)) return !1;
2703            if (!a.fn.bootstrapValidator.helpers.luhn(b.substr(2))) return !1;
2704            if (/^[0-9]{2}$/.test(b.substr(0, 2))) return b.substr(0, 2) === parseInt(b.substr(2) + "12", 10) % 97 + "";
2705            var c, d = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
2706            return c = /^[0-9]{1}$/.test(b.charAt(0)) ? 24 * d.indexOf(b.charAt(0)) + d.indexOf(b.charAt(1)) - 10 : 34 * d.indexOf(b.charAt(0)) + d.indexOf(b.charAt(1)) - 100, (parseInt(b.substr(2), 10) + 1 + Math.floor(c / 11)) % 11 === c % 11
2707        },
2708        _gb: function (a) {
2709            if ((/^GB[0-9]{9}$/.test(a) || /^GB[0-9]{12}$/.test(a) || /^GBGD[0-9]{3}$/.test(a) || /^GBHA[0-9]{3}$/.test(a) || /^GB(GD|HA)8888[0-9]{5}$/.test(a)) && (a = a.substr(2)), !(/^[0-9]{9}$/.test(a) || /^[0-9]{12}$/.test(a) || /^GD[0-9]{3}$/.test(a) || /^HA[0-9]{3}$/.test(a) || /^(GD|HA)8888[0-9]{5}$/.test(a))) return !1;
2710            var b = a.length;
2711            if (5 === b) {
2712                var c = a.substr(0, 2), d = parseInt(a.substr(2), 10);
2713                return "GD" === c && 500 > d || "HA" === c && d >= 500
2714            }
2715            if (11 === b && ("GD8888" === a.substr(0, 6) || "HA8888" === a.substr(0, 6))) return "GD" === a.substr(0, 2) && parseInt(a.substr(6, 3), 10) >= 500 || "HA" === a.substr(0, 2) && parseInt(a.substr(6, 3), 10) < 500 ? !1 : parseInt(a.substr(6, 3), 10) % 97 === parseInt(a.substr(9, 2), 10);
2716            if (9 === b || 12 === b) {
2717                for (var e = 0, f = [8, 7, 6, 5, 4, 3, 2, 10, 1], g = 0; 9 > g; g++) e += parseInt(a.charAt(g), 10) * f[g];
2718                return e %= 97, parseInt(a.substr(0, 3), 10) >= 100 ? 0 === e || 42 === e || 55 === e : 0 === e
2719            }
2720            return !0
2721        },
2722        _gr: function (a) {
2723            if (/^(GR|EL)[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1;
2724            8 === a.length && (a = "0" + a);
2725            for (var b = 0, c = [256, 128, 64, 32, 16, 8, 4, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2726            return b = b % 11 % 10, b + "" === a.substr(8, 1)
2727        },
2728        _el: function (a) {
2729            return this._gr(a)
2730        },
2731        _hu: function (a) {
2732            if (/^HU[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1;
2733            for (var b = 0, c = [9, 7, 3, 1, 9, 7, 3, 1], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2734            return b % 10 === 0
2735        },
2736        _hr: function (b) {
2737            return /^HR[0-9]{11}$/.test(b) && (b = b.substr(2)), /^[0-9]{11}$/.test(b) ? a.fn.bootstrapValidator.helpers.mod11And10(b) : !1
2738        },
2739        _ie: function (a) {
2740            if (/^IE[0-9]{1}[0-9A-Z\*\+]{1}[0-9]{5}[A-Z]{1,2}$/.test(a) && (a = a.substr(2)), !/^[0-9]{1}[0-9A-Z\*\+]{1}[0-9]{5}[A-Z]{1,2}$/.test(a)) return !1;
2741            var b = function (a) {
2742                for (; a.length < 7;) a = "0" + a;
2743                for (var b = "WABCDEFGHIJKLMNOPQRSTUV", c = 0, d = 0; 7 > d; d++) c += parseInt(a.charAt(d), 10) * (8 - d);
2744                return c += 9 * b.indexOf(a.substr(7)), b[c % 23]
2745            };
2746            return /^[0-9]+$/.test(a.substr(0, 7)) ? a.charAt(7) === b(a.substr(0, 7) + a.substr(8) + "") : -1 !== "ABCDEFGHIJKLMNOPQRSTUVWXYZ+*".indexOf(a.charAt(1)) ? a.charAt(7) === b(a.substr(2, 5) + a.substr(0, 1) + "") : !0
2747        },
2748        _is: function (a) {
2749            return /^IS[0-9]{5,6}$/.test(a) && (a = a.substr(2)), /^[0-9]{5,6}$/.test(a)
2750        },
2751        _it: function (b) {
2752            if (/^IT[0-9]{11}$/.test(b) && (b = b.substr(2)), !/^[0-9]{11}$/.test(b)) return !1;
2753            if (0 === parseInt(b.substr(0, 7), 10)) return !1;
2754            var c = parseInt(b.substr(7, 3), 10);
2755            return 1 > c || c > 201 && 999 !== c && 888 !== c ? !1 : a.fn.bootstrapValidator.helpers.luhn(b)
2756        },
2757        _lt: function (a) {
2758            if (/^LT([0-9]{7}1[0-9]{1}|[0-9]{10}1[0-9]{1})$/.test(a) && (a = a.substr(2)), !/^([0-9]{7}1[0-9]{1}|[0-9]{10}1[0-9]{1})$/.test(a)) return !1;
2759            var b, c = a.length, d = 0;
2760            for (b = 0; c - 1 > b; b++) d += parseInt(a.charAt(b), 10) * (1 + b % 9);
2761            var e = d % 11;
2762            if (10 === e) for (d = 0, b = 0; c - 1 > b; b++) d += parseInt(a.charAt(b), 10) * (1 + (b + 2) % 9);
2763            return e = e % 11 % 10, e + "" === a.charAt(c - 1)
2764        },
2765        _lu: function (a) {
2766            return /^LU[0-9]{8}$/.test(a) && (a = a.substr(2)), /^[0-9]{8}$/.test(a) ? parseInt(a.substr(0, 6), 10) % 89 + "" === a.substr(6, 2) : !1
2767        },
2768        _lv: function (b) {
2769            if (/^LV[0-9]{11}$/.test(b) && (b = b.substr(2)), !/^[0-9]{11}$/.test(b)) return !1;
2770            var c, d = parseInt(b.charAt(0), 10), e = 0, f = [], g = b.length;
2771            if (d > 3) {
2772                for (e = 0, f = [9, 1, 4, 8, 3, 10, 2, 5, 7, 6, 1], c = 0; g > c; c++) e += parseInt(b.charAt(c), 10) * f[c];
2773                return e %= 11, 3 === e
2774            }
2775            var h = parseInt(b.substr(0, 2), 10), i = parseInt(b.substr(2, 2), 10), j = parseInt(b.substr(4, 2), 10);
2776            if (j = j + 1800 + 100 * parseInt(b.charAt(6), 10), !a.fn.bootstrapValidator.helpers.date(j, i, h)) return !1;
2777            for (e = 0, f = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9], c = 0; g - 1 > c; c++) e += parseInt(b.charAt(c), 10) * f[c];
2778            return e = (e + 1) % 11 % 10, e + "" === b.charAt(g - 1)
2779        },
2780        _mt: function (a) {
2781            if (/^MT[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1;
2782            for (var b = 0, c = [3, 4, 6, 7, 8, 9, 10, 1], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2783            return b % 37 === 0
2784        },
2785        _nl: function (a) {
2786            if (/^NL[0-9]{9}B[0-9]{2}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}B[0-9]{2}$/.test(a)) return !1;
2787            for (var b = 0, c = [9, 8, 7, 6, 5, 4, 3, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2788            return b %= 11, b > 9 && (b = 0), b + "" === a.substr(8, 1)
2789        },
2790        _no: function (a) {
2791            if (/^NO[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1;
2792            for (var b = 0, c = [3, 2, 7, 6, 5, 4, 3, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2793            return b = 11 - b % 11, 11 === b && (b = 0), b + "" === a.substr(8, 1)
2794        },
2795        _pl: function (a) {
2796            if (/^PL[0-9]{10}$/.test(a) && (a = a.substr(2)), !/^[0-9]{10}$/.test(a)) return !1;
2797            for (var b = 0, c = [6, 5, 7, 2, 3, 4, 5, 6, 7, -1], d = 0; 10 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2798            return b % 11 === 0
2799        },
2800        _pt: function (a) {
2801            if (/^PT[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1;
2802            for (var b = 0, c = [9, 8, 7, 6, 5, 4, 3, 2], d = 0; 8 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2803            return b = 11 - b % 11, b > 9 && (b = 0), b + "" === a.substr(8, 1)
2804        },
2805        _ro: function (a) {
2806            if (/^RO[1-9][0-9]{1,9}$/.test(a) && (a = a.substr(2)), !/^[1-9][0-9]{1,9}$/.test(a)) return !1;
2807            for (var b = a.length, c = [7, 5, 3, 2, 1, 7, 5, 3, 2].slice(10 - b), d = 0, e = 0; b - 1 > e; e++) d += parseInt(a.charAt(e), 10) * c[e];
2808            return d = 10 * d % 11 % 10, d + "" === a.substr(b - 1, 1)
2809        },
2810        _ru: function (a) {
2811            if (/^RU([0-9]{10}|[0-9]{12})$/.test(a) && (a = a.substr(2)), !/^([0-9]{10}|[0-9]{12})$/.test(a)) return !1;
2812            var b = 0;
2813            if (10 === a.length) {
2814                var c = 0, d = [2, 4, 10, 3, 5, 9, 4, 6, 8, 0];
2815                for (b = 0; 10 > b; b++) c += parseInt(a.charAt(b), 10) * d[b];
2816                return c %= 11, c > 9 && (c %= 10), c + "" === a.substr(9, 1)
2817            }
2818            if (12 === a.length) {
2819                var e = 0, f = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0], g = 0, h = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0];
2820                for (b = 0; 11 > b; b++) e += parseInt(a.charAt(b), 10) * f[b], g += parseInt(a.charAt(b), 10) * h[b];
2821                return e %= 11, e > 9 && (e %= 10), g %= 11, g > 9 && (g %= 10), e + "" === a.substr(10, 1) && g + "" === a.substr(11, 1)
2822            }
2823            return !1
2824        },
2825        _rs: function (a) {
2826            if (/^RS[0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[0-9]{9}$/.test(a)) return !1;
2827            for (var b = 10, c = 0, d = 0; 8 > d; d++) c = (parseInt(a.charAt(d), 10) + b) % 10, 0 === c && (c = 10), b = 2 * c % 11;
2828            return (b + parseInt(a.substr(8, 1), 10)) % 10 === 1
2829        },
2830        _se: function (b) {
2831            return /^SE[0-9]{10}01$/.test(b) && (b = b.substr(2)), /^[0-9]{10}01$/.test(b) ? (b = b.substr(0, 10), a.fn.bootstrapValidator.helpers.luhn(b)) : !1
2832        },
2833        _si: function (a) {
2834            if (/^SI[0-9]{8}$/.test(a) && (a = a.substr(2)), !/^[0-9]{8}$/.test(a)) return !1;
2835            for (var b = 0, c = [8, 7, 6, 5, 4, 3, 2], d = 0; 7 > d; d++) b += parseInt(a.charAt(d), 10) * c[d];
2836            return b = 11 - b % 11, 10 === b && (b = 0), b + "" === a.substr(7, 1)
2837        },
2838        _sk: function (a) {
2839            return /^SK[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(a) && (a = a.substr(2)), /^[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(a) ? parseInt(a, 10) % 11 === 0 : !1
2840        },
2841        _ve: function (a) {
2842            if (/^VE[VEJPG][0-9]{9}$/.test(a) && (a = a.substr(2)), !/^[VEJPG][0-9]{9}$/.test(a)) return !1;
2843            for (var b = {
2844                V: 4,
2845                E: 8,
2846                J: 12,
2847                P: 16,
2848                G: 20
2849            }, c = b[a.charAt(0)], d = [3, 2, 7, 6, 5, 4, 3, 2], e = 0; 8 > e; e++) c += parseInt(a.charAt(e + 1), 10) * d[e];
2850            return c = 11 - c % 11, (11 === c || 10 === c) && (c = 0), c + "" === a.substr(9, 1)
2851        },
2852        _za: function (a) {
2853            return /^ZA4[0-9]{9}$/.test(a) && (a = a.substr(2)), /^4[0-9]{9}$/.test(a)
2854        }
2855    }
2856}(window.jQuery), function (a) {
2857    a.fn.bootstrapValidator.i18n.vin = a.extend(a.fn.bootstrapValidator.i18n.vin || {}, {"default": "Please enter a valid VIN number"}), a.fn.bootstrapValidator.validators.vin = {
2858        validate: function (a, b) {
2859            var c = b.val();
2860            if ("" === c) return !0;
2861            if (!/^[a-hj-npr-z0-9]{8}[0-9xX][a-hj-npr-z0-9]{8}$/i.test(c)) return !1;
2862            c = c.toUpperCase();
2863            for (var d = {
2864                A: 1,
2865                B: 2,
2866                C: 3,
2867                D: 4,
2868                E: 5,
2869                F: 6,
2870                G: 7,
2871                H: 8,
2872                J: 1,
2873                K: 2,
2874                L: 3,
2875                M: 4,
2876                N: 5,
2877                P: 7,
2878                R: 9,
2879                S: 2,
2880                T: 3,
2881                U: 4,
2882                V: 5,
2883                W: 6,
2884                X: 7,
2885                Y: 8,
2886                Z: 9,
2887                1: 1,
2888                2: 2,
2889                3: 3,
2890                4: 4,
2891                5: 5,
2892                6: 6,
2893                7: 7,
2894                8: 8,
2895                9: 9,
2896                0: 0
2897            }, e = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2], f = 0, g = c.length, h = 0; g > h; h++) f += d[c.charAt(h) + ""] * e[h];
2898            var i = f % 11;
2899            return 10 === i && (i = "X"), i + "" === c.charAt(8)
2900        }
2901    }
2902}(window.jQuery), function (a) {
2903    a.fn.bootstrapValidator.i18n.zipCode = a.extend(a.fn.bootstrapValidator.i18n.zipCode || {}, {
2904        "default": "Please enter a valid postal code",
2905        countryNotSupported: "The country code %s is not supported",
2906        country: "Please enter a valid postal code in %s",
2907        countries: {
2908            AT: "Austria",
2909            BR: "Brazil",
2910            CA: "Canada",
2911            CH: "Switzerland",
2912            CZ: "Czech Republic",
2913            DE: "Germany",
2914            DK: "Denmark",
2915            FR: "France",
2916            GB: "United Kingdom",
2917            IE: "Ireland",
2918            IT: "Italy",
2919            MA: "Morocco",
2920            NL: "Netherlands",
2921            PT: "Portugal",
2922            RO: "Romania",
2923            RU: "Russia",
2924            SE: "Sweden",
2925            SG: "Singapore",
2926            SK: "Slovakia",
2927            US: "USA"
2928        }
2929    }), a.fn.bootstrapValidator.validators.zipCode = {
2930        html5Attributes: {message: "message", country: "country"},
2931        COUNTRY_CODES: ["AT", "BR", "CA", "CH", "CZ", "DE", "DK", "FR", "GB", "IE", "IT", "MA", "NL", "PT", "RO", "RU", "SE", "SG", "SK", "US"],
2932        validate: function (b, c, d) {
2933            var e = c.val();
2934            if ("" === e || !d.country) return !0;
2935            var f = d.country;
2936            if (("string" != typeof f || -1 === a.inArray(f, this.COUNTRY_CODES)) && (f = b.getDynamicOption(c, f)), !f || -1 === a.inArray(f.toUpperCase(), this.COUNTRY_CODES)) return {
2937                valid: !1,
2938                message: a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.zipCode.countryNotSupported, f)
2939            };
2940            var g = !1;
2941            switch (f = f.toUpperCase()) {
2942                case"AT":
2943                    g = /^([1-9]{1})(\d{3})$/.test(e);
2944                    break;
2945                case"BR":
2946                    g = /^(\d{2})([\.]?)(\d{3})([\-]?)(\d{3})$/.test(e);
2947                    break;
2948                case"CA":
2949                    g = /^(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|X|Y){1}[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}\s?[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}[0-9]{1}$/i.test(e);
2950                    break;
2951                case"CH":
2952                    g = /^([1-9]{1})(\d{3})$/.test(e);
2953                    break;
2954                case"CZ":
2955                    g = /^(\d{3})([ ]?)(\d{2})$/.test(e);
2956                    break;
2957                case"DE":
2958                    g = /^(?!01000|99999)(0[1-9]\d{3}|[1-9]\d{4})$/.test(e);
2959                    break;
2960                case"DK":
2961                    g = /^(DK(-|\s)?)?\d{4}$/i.test(e);
2962                    break;
2963                case"FR":
2964                    g = /^[0-9]{5}$/i.test(e);
2965                    break;
2966                case"GB":
2967                    g = this._gb(e);
2968                    break;
2969                case"IE":
2970                    g = /^(D6W|[ACDEFHKNPRTVWXY]\d{2})\s[0-9ACDEFHKNPRTVWXY]{4}$/.test(e);
2971                    break;
2972                case"IT":
2973                    g = /^(I-|IT-)?\d{5}$/i.test(e);
2974                    break;
2975                case"MA":
2976                    g = /^[1-9][0-9]{4}$/i.test(e);
2977                    break;
2978                case"NL":
2979                    g = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(e);
2980                    break;
2981                case"PT":
2982                    g = /^[1-9]\d{3}-\d{3}$/.test(e);
2983                    break;
2984                case"RO":
2985                    g = /^(0[1-8]{1}|[1-9]{1}[0-5]{1})?[0-9]{4}$/i.test(e);
2986                    break;
2987                case"RU":
2988                    g = /^[0-9]{6}$/i.test(e);
2989                    break;
2990                case"SE":
2991                    g = /^(S-)?\d{3}\s?\d{2}$/i.test(e);
2992                    break;
2993                case"SG":
2994                    g = /^([0][1-9]|[1-6][0-9]|[7]([0-3]|[5-9])|[8][0-2])(\d{4})$/i.test(e);
2995                    break;
2996                case"SK":
2997                    g = /^(\d{3})([ ]?)(\d{2})$/.test(e);
2998                    break;
2999                case"US":
3000                default:
3001                    g = /^\d{4,5}([\-]?\d{4})?$/.test(e)
3002            }
3003            return {
3004                valid: g,
3005                message: a.fn.bootstrapValidator.helpers.format(d.message || a.fn.bootstrapValidator.i18n.zipCode.country, a.fn.bootstrapValidator.i18n.zipCode.countries[f])
3006            }
3007        },
3008        _gb: function (a) {
3009            for (var b = "[ABCDEFGHIJKLMNOPRSTUWYZ]", c = "[ABCDEFGHKLMNOPQRSTUVWXY]", d = "[ABCDEFGHJKPMNRSTUVWXY]", e = "[ABEHMNPRVWXY]", f = "[ABDEFGHJLNPQRSTUWXYZ]", g = [new RegExp("^(" + b + "{1}" + c + "?[0-9]{1,2})(\\s*)([0-9]{1}" + f + "{2})$", "i"), new RegExp("^(" + b + "{1}[0-9]{1}" + d + "{1})(\\s*)([0-9]{1}" + f + "{2})$", "i"), new RegExp("^(" + b + "{1}" + c + "{1}?[0-9]{1}" + e + "{1})(\\s*)([0-9]{1}" + f + "{2})$", "i"), new RegExp("^(BF1)(\\s*)([0-6]{1}[ABDEFGHJLNPQRST]{1}[ABDEFGHJLNPQRSTUWZYZ]{1})$", "i"), /^(GIR)(\s*)(0AA)$/i, /^(BFPO)(\s*)([0-9]{1,4}
3009)$/i, /^(BFPO)(\s*)(c\/o\s*[0-9]{1,3})$/i, /^([A-Z]{4})(\s*)(1ZZ)$/i, /^(AI-2640)$/i], h = 0; h < g.length; h++) if (g[h].test(a)) return !0;
3010            return !1
3011        }
3012    }
3013}(window.jQuery);

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