PageSourceSearch

https://employmentabroad.com/wp-content/themes/noo-jobmonster/assets/vendor/notify.js

js employmentabroad.com collected 2026-09-25 23:56:18 UTC 21,302 bytes, 615 lines download raw bytes

vendor: 21,302 bytes, lines 1-615
1/* Notify.js - http://notifyjs.com/ Copyright (c) 2015 MIT */
2(function (factory) {
3	// UMD start
4	// https://github.com/umdjs/umd/blob/master/jqueryPluginCommonjs.js
5	if (typeof define === 'function' && define.amd) {
6		// AMD. Register as an anonymous module.
7		define(['jquery'], factory);
8	} else if (typeof module === 'object' && module.exports) {
9		// Node/CommonJS
10		module.exports = function( root, jQuery ) {
11			if ( jQuery === undefined ) {
12				// require('jQuery') returns a factory that requires window to
13				// build a jQuery instance, we normalize how we use modules
14				// that require this pattern but the window provided is a noop
15				// if it's defined (how jquery works)
16				if ( typeof window !== 'undefined' ) {
17					jQuery = require('jquery');
18				}
19				else {
20					jQuery = require('jquery')(root);
21				}
22			}
23			factory(jQuery);
24			return jQuery;
25		};
26	} else {
27		// Browser globals
28		factory(jQuery);
29	}
30}(function ($) {
31	//IE8 indexOf polyfill
32	var indexOf = [].indexOf || function(item) {
33		for (var i = 0, l = this.length; i < l; i++) {
34			if (i in this && this[i] === item) {
35				return i;
36			}
37		}
38		return -1;
39	};
40
41	var pluginName = "notify";
42	var pluginClassName = pluginName + "js";
43	var blankFieldName = pluginName + "!blank";
44
45	var positions = {
46		t: "top",
47		m: "middle",
48		b: "bottom",
49		l: "left",
50		c: "center",
51		r: "right"
52	};
53	var hAligns = ["l", "c", "r"];
54	var vAligns = ["t", "m", "b"];
55	var mainPositions = ["t", "b", "l", "r"];
56	var opposites = {
57		t: "b",
58		m: null,
59		b: "t",
60		l: "r",
61		c: null,
62		r: "l"
63	};
64
65	var parsePosition = function(str) {
66		var pos;
67		pos = [];
68		$.each(str.split(/\W+/), function(i, word) {
69			var w;
70			w = word.toLowerCase().charAt(0);
71			if (positions[w]) {
72				return pos.push(w);
73			}
74		});
75		return pos;
76	};
77
78	var styles = {};
79
80	var coreStyle = {
81		name: "core",
82		html: "<div class=\"" + pluginClassName + "-wrapper\">\n	<div class=\"" + pluginClassName + "-arrow\"></div>\n	<div class=\"" + pluginClassName + "-container\"></div>\n</div>",
83		css: "." + pluginClassName + "-corner {\n	position: fixed;\n	margin: 5px;\n	z-index: 1050;\n}\n\n." + pluginClassName + "-corner ." + pluginClassName + "-wrapper,\n." + pluginClassName + "-corner ." + pluginClassName + "-container {\n	position: relative;\n	display: block;\n	height: inherit;\n	width: inherit;\n	margin: 3px;\n}\n\n." + pluginClassName + "-wrapper {\n	z-index: 1;\n	position: absolute;\n	display: inline-block;\n	height: 0;\n	width: 0;\n}\n\n." + pluginClassName + "-container {\n	display: none;\n	z-index: 1;\n	position: absolute;\n}\n\n." + pluginClassName + "-hidable {\n	cursor: pointer;\n}\n\n[data-notify-text],[data-notify-html] {\n	position: relative;\n}\n\n." + pluginClassName + "-arrow {\n	position: absolute;\n	z-index: 2;\n	width: 0;\n	height: 0;\n}"
84	};
85
86	var stylePrefixes = {
87		"border-radius": ["-webkit-", "-moz-"]
88	};
89
90	var getStyle = function(name) {
91		return styles[name];
92	};
93
94	var addStyle = function(name, def) {
95		if (!name) {
96			throw "Missing Style name";
97		}
98		if (!def) {
99			throw "Missing Style definition";
100		}
101		if (!def.html) {
102			throw "Missing Style HTML";
103		}
104		//remove existing style
105		var existing = styles[name];
106		if (existing && existing.cssElem) {
107			if (window.console) {
108				console.warn(pluginName + ": overwriting style '" + name + "'");
109			}
110			styles[name].cssElem.remove();
111		}
112		def.name = name;
113		styles[name] = def;
114		var cssText = "";
115		if (def.classes) {
116			$.each(def.classes, function(className, props) {
117				cssText += "." + pluginClassName + "-" + def.name + "-" + className + " {\n";
118				$.each(props, function(name, val) {
119					if (stylePrefixes[name]) {
120						$.each(stylePrefixes[name], function(i, prefix) {
121							return cssText += "	" + prefix + name + ": " + val + ";\n";
122						});
123					}
124					return cssText += "	" + name + ": " + val + ";\n";
125				});
126				return cssText += "}\n";
127			});
128		}
129		if (def.css) {
130			cssText += "/* styles for " + def.name + " */\n" + def.css;
131		}
132		if (cssText) {
133			def.cssElem = insertCSS(cssText);
134			def.cssElem.attr("id", "notify-" + def.name);
135		}
136		var fields = {};
137		var elem = $(def.html);
138		findFields("html", elem, fields);
139		findFields("text", elem, fields);
140		def.fields = fields;
141	};
142
143	var insertCSS = function(cssText) {
144		var e, elem, error;
145		elem = createElem("style");
146		elem.attr("type", 'text/css');
147		$("head").append(elem);
148		try {
149			elem.html(cssText);
150		} catch (_) {
151			elem[0].styleSheet.cssText = cssText;
152		}
153		return elem;
154	};
155
156	var findFields = function(type, elem, fields) {
157		var attr;
158		if (type !== "html") {
159			type = "text";
160		}
161		attr = "data-notify-" + type;
162		return find(elem, "[" + attr + "]").each(function() {
163			var name;
164			name = $(this).attr(attr);
165			if (!name) {
166				name = blankFieldName;
167			}
168			fields[name] = type;
169		});
170	};
171
172	var find = function(elem, selector) {
173		if (elem.is(selector)) {
174			return elem;
175		} else {
176			return elem.find(selector);
177		}
178	};
179
180	var pluginOptions = {
181		clickToHide: true,
182		autoHide: true,
183		autoHideDelay: 5000,
184		arrowShow: true,
185		arrowSize: 5,
186		breakNewLines: true,
187		elementPosition: "bottom",
188		globalPosition: "top right",
189		style: "bootstrap",
190		className: "error",
191		showAnimation: "slideDown",
192		showDuration: 400,
193		hideAnimation: "slideUp",
194		hideDuration: 200,
195		gap: 5
196	};
197
198	var inherit = function(a, b) {
199		var F;
200		F = function() {};
201		F.prototype = a;
202		return $.extend(true, new F(), b);
203	};
204
205	var defaults = function(opts) {
206		return $.extend(pluginOptions, opts);
207	};
208
209	var createElem = function(tag) {
210		return $("<" + tag + "></" + tag + ">");
211	};
212
213	var globalAnchors = {};
214
215	var getAnchorElement = function(element) {
216		var radios;
217		if (element.is('[type=radio]')) {
218			radios = element.parents('form:first').find('[type=radio]').filter(function(i, e) {
219				return $(e).attr("name") === element.attr("name");
220			});
221			element = radios.first();
222		}
223		return element;
224	};
225
226	var incr = function(obj, pos, val) {
227		var opp, temp;
228		if (typeof val === "string") {
229			val = parseInt(val, 10);
230		} else if (typeof val !== "number") {
231			return;
232		}
233		if (isNaN(val)) {
234			return;
235		}
236		opp = positions[opposites[pos.charAt(0)]];
237		temp = pos;
238		if (obj[opp] !== undefined) {
239			pos = positions[opp.charAt(0)];
240			val = -val;
241		}
242		if (obj[pos] === undefined) {
243			obj[pos] = val;
244		} else {
245			obj[pos] += val;
246		}
247		return null;
248	};
249
250	var realign = function(alignment, inner, outer) {
251		if (alignment === "l" || alignment === "t") {
252			return 0;
253		} else if (alignment === "c" || alignment === "m") {
254			return outer / 2 - inner / 2;
255		} else if (alignment === "r" || alignment === "b") {
256			return outer - inner;
257		}
258		throw "Invalid alignment";
259	};
260
261	var encode = function(text) {
262		encode.e = encode.e || createElem("div");
263		return encode.e.text(text).html();
264	};
265
266	function Notification(elem, data, options) {
267		if (typeof options === "string") {
268			options = {
269				className: options
270			};
271		}
272		this.options = inherit(pluginOptions, $.isPlainObject(options) ? options : {});
273		this.loadHTML();
274		this.wrapper = $(coreStyle.html);
275		if (this.options.clickToHide) {
276			this.wrapper.addClass(pluginClassName + "-hidable");
277		}
278		this.wrapper.data(pluginClassName, this);
279		this.arrow = this.wrapper.find("." + pluginClassName + "-arrow");
280		this.container = this.wrapper.find("." + pluginClassName + "-container");
281		this.container.append(this.userContainer);
282		if (elem && elem.length) {
283			this.elementType = elem.attr("type");
284			this.originalElement = elem;
285			this.elem = getAnchorElement(elem);
286			this.elem.data(pluginClassName, this);
287			this.elem.before(this.wrapper);
288		}
289		this.container.hide();
290		this.run(data);
291	}
292
293	Notification.prototype.loadHTML = function() {
294		var style;
295		style = this.getStyle();
296		this.userContainer = $(style.html);
297		this.userFields = style.fields;
298	};
299
300	Notification.prototype.show = function(show, userCallback) {
301		var args, callback, elems, fn, hidden;
302		callback = (function(_this) {
303			return function() {
304				if (!show && !_this.elem) {
305					_this.destroy();
306				}
307				if (userCallback) {
308					return userCallback();
309				}
310			};
311		})(this);
312		hidden = this.container.parent().parents(':hidden').length > 0;
313		elems = this.container.add(this.arrow);
314		args = [];
315		if (hidden && show) {
316			fn = "show";
317		} else if (hidden && !show) {
318			fn = "hide";
319		} else if (!hidden && show) {
320			fn = this.options.showAnimation;
321			args.push(this.options.showDuration);
322		} else if (!hidden && !show) {
323			fn = this.options.hideAnimation;
324			args.push(this.options.hideDuration);
325		} else {
326			return callback();
327		}
328		args.push(callback);
329		return elems[fn].apply(elems, args);
330	};
331
332	Notification.prototype.setGlobalPosition = function() {
333		var p = this.getPosition();
334		var pMain = p[0];
335		var pAlign = p[1];
336		var main = positions[pMain];
337		var align = positions[pAlign];
338		var key = pMain + "|" + pAlign;
339		var anchor = globalAnchors[key];
340		if (!anchor) {
341			anchor = globalAnchors[key] = createElem("div");
342			var css = {};
343			css[main] = 0;
344			if (align === "middle") {
345				css.top = '45%';
346			} else if (align === "center") {
347				css.left = '45%';
348			} else {
349				css[align] = 0;
350			}
351			anchor.css(css).addClass(pluginClassName + "-corner");
352			$("body").append(anchor);
353		}
354		return anchor.prepend(this.wrapper);
355	};
356
357	Notification.prototype.setElementPosition = function() {
358		var arrowColor, arrowCss, arrowSize, color, contH, contW, css, elemH, elemIH, elemIW, elemPos, elemW, gap, j, k, len, len1, mainFull, margin, opp, oppFull, pAlign, pArrow, pMain, pos, posFull, position, ref, wrapPos;
359		position = this.getPosition();
360		pMain = position[0];
361		pAlign = position[1];
362		pArrow = position[2];
363		elemPos = this.elem.position();
364		elemH = this.elem.outerHeight();
365		elemW = this.elem.outerWidth();
366		elemIH = this.elem.innerHeight();
367		elemIW = this.elem.innerWidth();
368		wrapPos = this.wrapper.position();
369		contH = this.container.height();
370		contW = this.container.width();
371		mainFull = positions[pMain];
372		opp = opposites[pMain];
373		oppFull = positions[opp];
374		css = {};
375		css[oppFull] = pMain === "b" ? elemH : pMain === "r" ? elemW : 0;
376		incr(css, "top", elemPos.top - wrapPos.top);
377		incr(css, "left", elemPos.left - wrapPos.left);
378		ref = ["top", "left"];
379		for (j = 0, len = ref.length; j < len; j++) {
380			pos = ref[j];
381			margin = parseInt(this.elem.css("margin-" + pos), 10);
382			if (margin) {
383				incr(css, pos, margin);
384			}
385		}
386		gap = Math.max(0, this.options.gap - (this.options.arrowShow ? arrowSize : 0));
387		incr(css, oppFull, gap);
388		if (!this.options.arrowShow) {
389			this.arrow.hide();
390		} else {
391			arrowSize = this.options.arrowSize;
392			arrowCss = $.extend({}, css);
393			arrowColor = this.userContainer.css("border-color") || this.userContainer.css("border-top-color") || this.userContainer.css("background-color") || "white";
394			for (k = 0, len1 = mainPositions.length; k < len1; k++) {
395				pos = mainPositions[k];
396				posFull = positions[pos];
397				if (pos === opp) {
398					continue;
399				}
400				color = posFull === mainFull ? arrowColor : "transparent";
401				arrowCss["border-" + posFull] = arrowSize + "px solid " + color;
402			}
403			incr(css, positions[opp], arrowSize);
404			if (indexOf.call(mainPositions, pAlign) >= 0) {
405				incr(arrowCss, positions[pAlign], arrowSize * 2);
406			}
407		}
408		if (indexOf.call(vAligns, pMain) >= 0) {
409			incr(css, "left", realign(pAlign, contW, elemW));
410			if (arrowCss) {
411				incr(arrowCss, "left", realign(pAlign, arrowSize, elemIW));
412			}
413		} else if (indexOf.call(hAligns, pMain) >= 0) {
414			incr(css, "top", realign(pAlign, contH, elemH));
415			if (arrowCss) {
416				incr(arrowCss, "top", realign(pAlign, arrowSize, elemIH));
417			}
418		}
419		if (this.container.is(":visible")) {
420			css.display = "block";
421		}
422		this.container.removeAttr("style").css(css);
423		if (arrowCss) {
424			return this.arrow.removeAttr("style").css(arrowCss);
425		}
426	};
427
428	Notification.prototype.getPosition = function() {
429		var pos, ref, ref1, ref2, ref3, ref4, ref5, text;
430		text = this.options.position || (this.elem ? this.options.elementPosition : this.options.globalPosition);
431		pos = parsePosition(text);
432		if (pos.length === 0) {
433			pos[0] = "b";
434		}
435		if (ref = pos[0], indexOf.call(mainPositions, ref) < 0) {
436			throw "Must be one of [" + mainPositions + "]";
437		}
438		if (pos.length === 1 || ((ref1 = pos[0], indexOf.call(vAligns, ref1) >= 0) && (ref2 = pos[1], indexOf.call(hAligns, ref2) < 0)) || ((ref3 = pos[0], indexOf.call(hAligns, ref3) >= 0) && (ref4 = pos[1], indexOf.call(vAligns, ref4) < 0))) {
439			pos[1] = (ref5 = pos[0], indexOf.call(hAligns, ref5) >= 0) ? "m" : "l";
440		}
441		if (pos.length === 2) {
442			pos[2] = pos[1];
443		}
444		return pos;
445	};
446
447	Notification.prototype.getStyle = function(name) {
448		var style;
449		if (!name) {
450			name = this.options.style;
451		}
452		if (!name) {
453			name = "default";
454		}
455		style = styles[name];
456		if (!style) {
457			throw "Missing style: " + name;
458		}
459		return style;
460	};
461
462	Notification.prototype.updateClasses = function() {
463		var classes, style;
464		classes = ["base"];
465		if ($.isArray(this.options.className)) {
466			classes = classes.concat(this.options.className);
467		} else if (this.options.className) {
468			classes.push(this.options.className);
469		}
470		style = this.getStyle();
471		classes = $.map(classes, function(n) {
472			return pluginClassName + "-" + style.name + "-" + n;
473		}).join(" ");
474		return this.userContainer.attr("class", classes);
475	};
476
477	Notification.prototype.run = function(data, options) {
478		var d, datas, name, type, value;
479		if ($.isPlainObject(options)) {
480			$.extend(this.options, options);
481		} else if ($.type(options) === "string") {
482			this.options.className = options;
483		}
484		if (this.container && !data) {
485			this.show(false);
486			return;
487		} else if (!this.container && !data) {
488			return;
489		}
490		datas = {};
491		if ($.isPlainObject(data)) {
492			datas = data;
493		} else {
494			datas[blankFieldName] = data;
495		}
496		for (name in datas) {
497			d = datas[name];
498			type = this.userFields[name];
499			if (!type) {
500				continue;
501			}
502			if (type === "text") {
503				d = encode(d);
504				if (this.options.breakNewLines) {
505					d = d.replace(/\n/g, '<br/>');
506				}
507			}
508			value = name === blankFieldName ? '' : '=' + name;
509			find(this.userContainer, "[data-notify-" + type + value + "]").html(d);
510		}
511		this.updateClasses();
512		if (this.elem) {
513			this.setElementPosition();
514		} else {
515			this.setGlobalPosition();
516		}
517		this.show(true);
518		if (this.options.autoHide) {
519			clearTimeout(this.autohideTimer);
520			this.autohideTimer = setTimeout(this.show.bind(this, false), this.options.autoHideDelay);
521		}
522	};
523
524	Notification.prototype.destroy = function() {
525		this.wrapper.data(pluginClassName, null);
526		this.wrapper.remove();
527	};
528
529	$[pluginName] = function(elem, data, options) {
530		if ((elem && elem.nodeName) || elem.jquery) {
531			$(elem)[pluginName](data, options);
532		} else {
533			options = data;
534			data = elem;
535			new Notification(null, data, options);
536		}
537		return elem;
538	};
539
540	$.fn[pluginName] = function(data, options) {
541		$(this).each(function() {
542			var prev = getAnchorElement($(this)).data(pluginClassName);
543			if (prev) {
544				prev.destroy();
545			}
546			var curr = new Notification($(this), data, options);
547		});
548		return this;
549	};
550
551	$.extend($[pluginName], {
552		defaults: defaults,
553		addStyle: addStyle,
554		pluginOptions: pluginOptions,
555		getStyle: getStyle,
556		insertCSS: insertCSS
557	});
558
559	//always include the default bootstrap style
560	addStyle("bootstrap", {
561		html: "<div>\n<span data-notify-text></span>\n</div>",
562		classes: {
563			base: {
564				"font-weight": "bold",
565				"padding": "8px 15px 8px 14px",
566				"text-shadow": "0 1px 0 rgba(255, 255, 255, 0.5)",
567				"background-color": "#fcf8e3",
568				"border": "1px solid #fbeed5",
569				"border-radius": "4px",
570				"white-space": "nowrap",
571				"padding-left": "25px",
572				"background-repeat": "no-repeat",
573				"background-position": "3px 7px"
574			},
575			error: {
576				"color": "#B94A48",
577				"background-color": "#F2DEDE",
578				"border-color": "#EED3D7",
579				"background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAtRJREFUeNqkVc1u00AQHq+dOD+0poIQfkIjalW0SEGqRMuRnHos3DjwAH0ArlyQeANOOSMeAA5VjyBxKBQhgSpVUKKQNGloFdw4cWw2jtfMOna6JOUArDTazXi/b3dm55socPqQhFka++aHBsI8GsopRJERNFlY88FCEk9Yiwf8RhgRyaHFQpPHCDmZG5oX2ui2yilkcTT1AcDsbYC1NMAyOi7zTX2Agx7A9luAl88BauiiQ/cJaZQfIpAlngDcvZZMrl8vFPK5+XktrWlx3/ehZ5r9+t6e+WVnp1pxnNIjgBe4/6dAysQc8dsmHwPcW9C0h3fW1hans1ltwJhy0GxK7XZbUlMp5Ww2eyan6+ft/f2FAqXGK4CvQk5HueFz7D6GOZtIrK+srupdx1GRBBqNBtzc2AiMr7nPplRdKhb1q6q6zjFhrklEFOUutoQ50xcX86ZlqaZpQrfbBdu2R6/G19zX6XSgh6RX5ubyHCM8nqSID6ICrGiZjGYYxojEsiw4PDwMSL5VKsC8Yf4VRYFzMzMaxwjlJSlCyAQ9l0CW44PBADzXhe7xMdi9HtTrdYjFYkDQL0cn4Xdq2/EAE+InCnvADTf2eah4Sx9vExQjkqXT6aAERICMewd/UAp/IeYANM2joxt+q5VI+ieq2i0Wg3l6DNzHwTERPgo1ko7XBXj3vdlsT2F+UuhIhYkp7u7CarkcrFOCtR3H5JiwbAIeImjT/YQKKBtGjRFCU5IUgFRe7fF4cCNVIPMYo3VKqxwjyNAXNepuopyqnld602qVsfRpEkkz+GFL1wPj6ySXBpJtWVa5xlhpcyhBNwpZHmtX8AGgfIExo0ZpzkWVTBGiXCSEaHh62/PoR0p/vHaczxXGnj4bSo+G78lELU80h1uogBwWLf5YlsPmgDEd4M236xjm+8nm4IuE/9u+/PH2JXZfbwz4zw1WbO+SQPpXfwG/BBgAhCNZiSb/pOQAAAAASUVORK5CYII=)"
580			},
581			success: {
582				"color": "#468847",
583				"background-color": "#DFF0D8",
584				"border-color": "#D6E9C6",
585				"background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAutJREFUeNq0lctPE0Ecx38zu/RFS1EryqtgJFA08YCiMZIAQQ4eRG8eDGdPJiYeTIwHTfwPiAcvXIwXLwoXPaDxkWgQ6islKlJLSQWLUraPLTv7Gme32zoF9KSTfLO7v53vZ3d/M7/fIth+IO6INt2jjoA7bjHCJoAlzCRw59YwHYjBnfMPqAKWQYKjGkfCJqAF0xwZjipQtA3MxeSG87VhOOYegVrUCy7UZM9S6TLIdAamySTclZdYhFhRHloGYg7mgZv1Zzztvgud7V1tbQ2twYA34LJmF4p5dXF1KTufnE+SxeJtuCZNsLDCQU0+RyKTF27Unw101l8e6hns3u0PBalORVVVkcaEKBJDgV3+cGM4tKKmI+ohlIGnygKX00rSBfszz/n2uXv81wd6+rt1orsZCHRdr1Imk2F2Kob3hutSxW8thsd8AXNaln9D7CTfA6O+0UgkMuwVvEFFUbbAcrkcTA8+AtOk8E6KiQiDmMFSDqZItAzEVQviRkdDdaFgPp8HSZKAEAL5Qh7Sq2lIJBJwv2scUqkUnKoZgNhcDKhKg5aH+1IkcouCAdFGAQsuWZYhOjwFHQ96oagWgRoUov1T9kRBEODAwxM2QtEUl+Wp+Ln9VRo6BcMw4ErHRYjH4/B26AlQoQQTRdHWwcd9AH57+UAXddvDD37DmrBBV34WfqiXPl61g+vr6xA9zsGeM9gOdsNXkgpEtTwVvwOklXLKm6+/p5ezwk4B+j6droBs2CsGa/gNs6RIxazl4Tc25mpTgw/apPR1LYlNRFAzgsOxkyXYLIM1V8NMwyAkJSctD1eGVKiq5wWjSPdjmeTkiKvVW4f2YPHWl3GAVq6ymcyCTgovM3FzyRiDe2TaKcEKsLpJvNHjZgPNqEtyi6mZIm4SRFyLMUsONSSdkPeFtY1n0mczoY3BHTLhwPRy9/lzcziCw9ACI+yql0VLzcGAZbYSM5CCSZg1/9oc/nn7+i8N9p/8An4JMADxhH+xHfuiKwAAAABJRU5ErkJggg==)"
586			},
587			info: {
588				"color": "#3A87AD",
589				"background-color": "#D9EDF7",
590				"border-color": "#BCE8F1",
591				"background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QYFAhkSsdes/QAAA8dJREFUOMvVlGtMW2UYx//POaWHXg6lLaW0ypAtw1UCgbniNOLcVOLmAjHZolOYlxmTGXVZdAnRfXQm+7SoU4mXaOaiZsEpC9FkiQs6Z6bdCnNYruM6KNBw6YWewzl9z+sHImEWv+vz7XmT95f/+3/+7wP814v+efDOV3/SoX3lHAA+6ODeUFfMfjOWMADgdk+eEKz0pF7aQdMAcOKLLjrcVMVX3xdWN29/GhYP7SvnP0cWfS8caSkfHZsPE9Fgnt02JNutQ0QYHB2dDz9/pKX8QjjuO9xUxd/66HdxTeCHZ3rojQObGQBcuNjfplkD3b19Y/6MrimSaKgSMmpGU5WevmE/swa6Oy73tQHA0Rdr2Mmv/6A1n9w9suQ7097Z9lM4FlTgTDrzZTu4StXVfpiI48rVcUDM5cmEksrFnHxfpTtU/3BFQzCQF/2bYVoNbH7zmItbSoMj40JSzmMyX5qDvriA7QdrIIpA+3cdsMpu0nXI8cV0MtKXCPZev+gCEM1S2NHPvWfP/hL+7FSr3+0p5RBEyhEN5JCKYr8XnASMT0xBNyzQGQeI8fjsGD39RMPk7se2bd5ZtTyoFYXftF6y37gx7NeUtJJOTFlAHDZLDuILU3j3+H5oOrD3yWbIztugaAzgnBKJuBLpGfQrS8wO4FZgV+c1IxaLgWVU0tMLEETCos4xMzEIv9cJXQcyagIwigDGwJgOAtHAwAhisQUjy0ORGERiELgG4iakkzo4MYAxcM5hAMi1WWG1yYCJIcMUaBkVRLdGeSU2995TLWzcUAzONJ7J6FBVBYIggMzmFbvdBV44Corg8vjhzC+EJEl8U1kJtgYrhCzgc/vvTwXKSib1paRFVRVORDAJAsw5FuTaJEhWM2SHB3mOAlhkNxwuLzeJsGwqWzf5TFNdKgtY5qHp6ZFf67Y/sAVadCaVY5YACDDb3Oi4NIjLnWMw2QthCBIsVhsUTU9tvXsjeq9+X1d75/KEs4LNOfcdf/+HthMnvwxOD0wmHaXr7ZItn2wuH2SnBzbZAbPJwpPx+VQuzcm7dgRCB57a1uBzUDRL4bfnI0RE0eaXd9W89mpjqHZnUI5Hh2l2dkZZUhOqpi2qSmpOmZ64Tuu9qlz/SEXo6MEHa3wOip46F1n7633eekV8ds8Wxjn37Wl63VVa+ej5oeEZ/82ZBETJjpJ1Rbij2D3Z/1trXUvLsblCK0XfOx0SX2kMsn9dX+d+7Kf6h8o4AIykuffjT8L20LU+w4AZd5VvEPY+XpWqLV327HR7DzXuDnD8r+ovkBehJ8i+y8YAAAAASUVORK5CYII=)"
592			},
593			warn: {
594				"color": "#C09853",
595				"background-color": "#FCF8E3",
596				"border-color": "#FBEED5",
597				"background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAABJlBMVEXr6eb/2oD/wi7/xjr/0mP/ykf/tQD/vBj/3o7/uQ//vyL/twebhgD/4pzX1K3z8e349vK6tHCilCWbiQymn0jGworr6dXQza3HxcKkn1vWvV/5uRfk4dXZ1bD18+/52YebiAmyr5S9mhCzrWq5t6ufjRH54aLs0oS+qD751XqPhAybhwXsujG3sm+Zk0PTwG6Shg+PhhObhwOPgQL4zV2nlyrf27uLfgCPhRHu7OmLgAafkyiWkD3l49ibiAfTs0C+lgCniwD4sgDJxqOilzDWowWFfAH08uebig6qpFHBvH/aw26FfQTQzsvy8OyEfz20r3jAvaKbhgG9q0nc2LbZxXanoUu/u5WSggCtp1anpJKdmFz/zlX/1nGJiYmuq5Dx7+sAAADoPUZSAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfdBgUBGhh4aah5AAAAlklEQVQY02NgoBIIE8EUcwn1FkIXM1Tj5dDUQhPU502Mi7XXQxGz5uVIjGOJUUUW81HnYEyMi2HVcUOICQZzMMYmxrEyMylJwgUt5BljWRLjmJm4pI1hYp5SQLGYxDgmLnZOVxuooClIDKgXKMbN5ggV1ACLJcaBxNgcoiGCBiZwdWxOETBDrTyEFey0jYJ4eHjMGWgEAIpRFRCUt08qAAAAAElFTkSuQmCC)"
598			}
599		}
600	});
601
602	$(function() {
603		insertCSS(coreStyle.css).attr("id", "core-notify");
604		$(document).on("click", "." + pluginClassName + "-hidable", function(e) {
605			$(this).trigger("notify-hide");
606		});
607		$(document).on("notify-hide", "." + pluginClassName + "-wrapper", function(e) {
608			var elem = $(this).data(pluginClassName);
609			if(elem) {
610				elem.show(false);
611			}
612		});
613	});
614
615}));

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.