PageSourceSearch

https://www.savoie.fr/js/jspacker.jsp?v=20260916&js=js%2Fjalios%2F…asReferencement%2Fjs%2FinitTarteaucitron.js

js savoie.fr collected 2026-09-24 19:36:52 UTC 88,482 bytes, 922 lines download raw bytes

1!(function ($) {
2const ACTION_URL = 'front/imageEditor/imageEditorActionHandler.jsp';
3const LIB_URL = 'frontlib/filerobot-image-editor/build/4.x/filerobot-image-editor.min.js';
4const LIB_TRANSLATIONS_URL = 'js/jalios/core/components/imageEditor/jalios-image-editor-translations.jsp';
5let imageEditorLoaded = false;
6let activeImageEditor;
7const DEFAULT_CONFIG = {
8language: document.documentElement.lang,
9annotationsCommon: {
10fill: '#ff0000'
11},
12savingPixelRatio: 2,
13useBackendTranslations: false
14};
15const triggerImageEditorEvent = function (eventType, data) {
16var event = $.Event('jalios:imageEditor');
17event.imageEditor = {};
18event.imageEditor.type = eventType;
19event.imageEditor.editor = activeImageEditor;
20event.imageEditor.data = data;
21$(document).trigger(event);
22return event;
23};
24const handleComplete = function (url, dataId) {
25let absoluteUrl = JcmsJsContext.getBaseUrl() + url;
26// Invalidate cache for original image
27$.ajax({
28url: absoluteUrl,
29type: 'GET',
30headers: {
31'Cache-Control': 'no-cache'
32}
33}).done(function (infos) {
34$('img[data-jalios-data-id=' + activeImageEditor.editorContext.dataId + ']').each(function (idx, element) {
35// Replace image reference in the image element data to handle the case where image could be edited multiple times on same page
36let lightboxOptions = $(element).data("jalios-lightbox-options");
37if (lightboxOptions) {
38if (lightboxOptions.imageEditorOption) {
39lightboxOptions.imageEditorOption.filePath = url;
40}
41}
42//Replace image in DOM
43setTimeout(() => {
44element.src = url;
45}, 500);
46if (!$(element).closest('.wysiwyg').exists()) {
47$(element).css('max-height', $(element).outerHeight()).css('max-width', $(element).outerWidth());
48}
49$(element).css('height', 'initial').css('width', 'initial');
50$(element).removeClass('lightbox-initialized');
51// Reset lightbox
52if (lightboxOptions && lightboxOptions.thumb) {
53lightboxOptions.thumb = url;
54// Update element data for lightbox / image editor
55$(element).data('jalios-lightbox-options', lightboxOptions);
56let gallery = $.jalios.Lightbox.getGallery(element);
57if (gallery) {
58// Remove backdrop
59$(gallery.$backdrop.selector).closest(".lg-container.lg-show-in").removeClass("lg-show-in").removeClass("lg-show");
60// Destroy gallery
61gallery && gallery.destroy();
62}
63// Remove initialized lightGallery plugin
64$(element).removeData('lightGallery');
65}
66});
67// Also replace all elements that might target the old url (Usually, link or button that triggers the image editor)
68$("[data-jalios-image-editor-context]").each(function (idx, element) {
69let imageEditorContext = $(element).data("jalios-image-editor-context");
70if (imageEditorContext.dataId === dataId) {
71imageEditorContext.filePath = url;
72$(element).data("jalios-image-editor-context", imageEditorContext);
73}
74});
75});
76};
77const closeImageEditor = function () {
78showLightBox();
79$('#image-editor-wrapper').remove();
80activeImageEditor.terminate();
81};
82const getImageEditorWrapperDiv = function () {
83if ($('#image-editor-wrapper').exists()) {
84return $('#image-editor-wrapper');
85}
86let div = jQuery('<div>', {
87id: 'image-editor-wrapper',
88class: 'image-editor-wrapper'
89}).appendTo('body');
90return $(div);
91};
92const getImageEditorBackdrop = function () {
93if ($(".image-editor-inline").exists()) {
94return;
95}
96if (!$('#image-editor-backdrop').exists()) {
97jQuery('<div>', {
98id: 'image-editor-backdrop',
99class: 'image-editor-backdrop'
100}).appendTo('body');
101$('#image-editor-backdrop').on('click', function (_event) {
102closeImageEditor();
103});
104}
105return {
106show: function () {
107$('#image-editor-backdrop').show();
108},
109hide: function () {
110$('#image-editor-backdrop').hide();
111}
112};
113};
114const saveImage = function (imageData, imageDesignState, editorContext) {
115triggerImageEditorEvent($.jalios.ImageEditor.EditorEventType.BEFORE_COMPLETE);
116imageData.imageCanvas.toBlob((blob) => {
117const file = new File([blob], editorContext.filePath.split(/[\\\/]/).pop());
118var formData = new FormData();
119formData.append('filename', file);
120formData.append('id', activeImageEditor.editorContext.dataId);
121formData.append('opUpload', 'true');
122formData.append('removeFile', 'true');
123triggerImageEditorEvent($.jalios.ImageEditor.EditorEventType.SAVE, {
124file: file
125});
126$.ajax({
127type: 'POST',
128url: ACTION_URL,
129data: formData,
130processData: false,
131contentType: false
132})
133.done(function (infos) {
134handleComplete(infos.data.filename, infos.data.dataId);
135triggerImageEditorEvent($.jalios.ImageEditor.EditorEventType.AFTER_IMAGE_REFRESHED, {
136file: file
137});
138closeImageEditor();
139})
140.fail(function (_infos) {
141triggerImageEditorEvent($.jalios.ImageEditor.EditorEventType.ERROR);
142});
143});
144return false;
145};
146const hideLightBox = function () {
147if ($('.lg-container.lg-show-in').length > 0) {
148$('.lg-container.lg-show-in').removeClass("lg-show");
149}
150getImageEditorBackdrop().show();
151};
152const showLightBox = function () {
153if ($('.lg-container.lg-show-in').length > 0) {
154$('.lg-container.lg-show-in').addClass("lg-show");
155}
156getImageEditorBackdrop().hide();
157};
158const getImageType = function (filename) {
159let extension = filename.substring(filename.lastIndexOf('.') + 1, filename.length) || filename;
160switch (extension) {
161case 'jpg':
162case 'jpeg':
163return "jpg";
164case 'webp':
165return 'webp';
166case 'png':
167return "png";
168default:
169return "jpg";
170};
171}
172$.jalios.ImageEditor = {
173EditorEventType: {
174OPEN: 'open',
175ERROR: 'error',
176BEFORE_COMPLETE: 'before',
177SAVE: 'save',
178AFTER_IMAGE_REFRESHED: 'after',
179CLOSE: 'closed'
180},
181launchImageEditor: function (editorContext, config) {
182try {
183let callback = function () {
184imageEditorLoaded = true;
185let extendedConfig = $.extend({}, DEFAULT_CONFIG, config);
186extendedConfig = $.extend({}, extendedConfig, {
187translations: Object.fromEntries(FILE_ROBOT_IMAGE_EDITOR_TRANSLATIONS),
188defaultSavedImageName: editorContext.filePath.split(/[\\\/]/).pop(),
189defaultSavedImageType: getImageType(editorContext.filePath)
190});
191extendedConfig = $.extend({}, extendedConfig, {
192tabsIds: [
193window.FilerobotImageEditor.TABS.ADJUST,
194window.FilerobotImageEditor.TABS.FINETUNE,
195window.FilerobotImageEditor.TABS.ANNOTATE,
196window.FilerobotImageEditor.TABS.RESIZE
197], // or ['Adjust', 'Annotate', 'Watermark']
198defaultTabId: window.FilerobotImageEditor.TABS.RESIZE, // or 'Annotate'
199defaultToolId: window.FilerobotImageEditor.TOOLS.TEXT, // or 'Text'
200source: editorContext.filePath
201});
202if (editorContext.options) {
203extendedConfig = $.extend({}, extendedConfig, editorContext.options);
204}
205// Use timeout since in some cases, file editor js is not loaded yet through getScript
206setTimeout(() => {
207let editorContainer = editorContext.container
208? jQuery(editorContext.container)[0]
209: getImageEditorWrapperDiv()[0];
210activeImageEditor = new window.FilerobotImageEditor(editorContainer, extendedConfig);
211activeImageEditor.editorContext = editorContext;
212activeImageEditor.render({
213onBeforeSave: function (_imageFileInfo) {
214if (_imageFileInfo) {
215_imageFileInfo.quality = 0.80;
216}
217return false;
218},
219onSave: function (imageData, imageDesignState) {
220saveImage(imageData, imageDesignState, editorContext);
221},
222onClose: function (closingReason) {
223triggerImageEditorEvent($.jalios.ImageEditor.EditorEventType.CLOSE, {
224closingReason: closingReason
225});
226closeImageEditor();
227}
228});
229}, 0);
230};
231if (imageEditorLoaded) {
232callback();
233} else {
234loadScripts([
235LIB_TRANSLATIONS_URL,
236LIB_URL
237]).then(callback);
238}
239hideLightBox();
240triggerImageEditorEvent($.jalios.ImageEditor.EditorEventType.OPEN);
241} catch (err) {
242$.console.log(err);
243triggerImageEditorEvent($.jalios.ImageEditor.EditorEventType.ERROR);
244}
245}
246};
247function loadScripts(urls, path) {
248return new Promise(function (resolve) {
249urls.forEach(function (src, i) {
250let script = document.createElement('script');
251script.type = 'text/javascript';
252script.src = (path || "") + src;
253script.async = false;
254// If last script, bind the callback event to resolve
255if (i == urls.length - 1) {
256// Multiple binding for browser compatibility
257script.onreadystatechange = resolve;
258script.onload = resolve;
259}
260// Fire the loading
261document.body.appendChild(script);
262});
263});
264}
265$(document).ready(function () {
266$(document).on('click', '.js-image-editor', function (event) {
267event.preventDefault();
268let editorContext = $(event.currentTarget).data('jalios-image-editor-context');
269$.jalios.ImageEditor.launchImageEditor(editorContext);
270});
271});
272})(window.jQuery);
273;
274(function(c){var a=function(){if(c(".wysiwyg table").length>0){c(".wysiwyg table").wrap('<div class="table-responsive"></div>')}};c(document).ready(function(){a()});var d=function(){if(c(".paragraphe .wysiwyg p > img").length>0){c(".paragraphe .wysiwyg p > img:not(.imageSansHabillage)").parent().wrap('<div class="wrapMedia"></div>')}if(c(".paragraphe .wysiwyg p > picture").length>0){c(".paragraphe .wysiwyg p >
vendor: 4,303 bytes, lines 274-369
274 picture:not(.imageSansHabillage)").parent().wrap('<div class="wrapMedia"></div>')}if(c(".paragraphe .wysiwyg video").length>0){c(".paragraphe .wysiwyg video").parent().wrap('<div class="wrapMedia"></div>')}if(c(".paragraphe .wysiwyg .wrapMedia").length>0){c(".paragraphe .wysiwyg .wrapMedia").parent().addClass("withImg").wrapInner('<div class="clearfix"></div>')}};c(document).ready(function(){a();d()});var b=function(e){var g=e.substring(e.indexOf("#"));var f=c(g);if(f[0]==null){f=c("a[name='"+g.substring(1)+"'")}if(f){c("html, body").animate({scrollTop:f.offset().top-15},"fast")}};c(document).ready(function(){if(location.href.indexOf("#")!=-1){b(location.href);setTimeout(function(){b(location.href)},500)}});c("a[href*='#']").on("click",function(h){var f=false;if(c(this).attr("href").indexOf("#")==0&&c(this).attr("href").length>1){f=true}if(!f){var g=c(this).attr("href");if(g.indexOf("?")!=-1){g=g.substring(0,g.indexOf("?"))}if(g.indexOf("#")!=-1){g=g.substring(0,g.indexOf("#"))}var i=location.href;if(i.indexOf("?")!=-1){i=i.substring(0,i.indexOf("?"))}if(i.indexOf("#")!=-1){i=i.substring(0,i.indexOf("#"))}if(g==i){f=true}}if(f&&c(this).attr("data-toggle")!=undefined){f=false}if(f&&c(this).attr("onclick")!=undefined){f=false}if(f&&c(this).hasClass("notAnAnchor")){f=false}if(f){h.preventDefault();b(c(this).attr("href"));return false}else{return true}});if(jQuery("#scrollToHere").length>0){b("#scrollToHere")}}(jQuery));;
275/*! ie11CustomProperties.js v3.0.6 | MIT License | https://git.io/fjXMN */
276!function () {
277'use strict';
278// check for support
279var testEl = document.createElement('i');
280testEl.style.setProperty('--x', 'y');
281if (testEl.style.getPropertyValue('--x') === 'y' || !testEl.msMatchesSelector) return;
282if (!Element.prototype.matches) Element.prototype.matches = Element.prototype.msMatchesSelector;
283var listeners = [],
284root = document,
285Observer;
286function qsa(el, selector){
287try {
288return el.querySelectorAll(selector);
289} catch(e) {
290// console.warn('the Selector '+selector+' can not be parsed');
291return [];
292}
293}
294function onElement (selector, callback) {
295var listener = {
296selector: selector,
297callback: callback,
298elements: new WeakMap(),
299};
300var els = qsa(root, listener.selector), i=0, el;
301while (el = els[i++]) {
302listener.elements.set(el, true);
303listener.callback.call(el, el);
304}
305listeners.push(listener);
306if (!Observer) {
307Observer = new MutationObserver(checkMutations);
308Observer.observe(root, {
309childList: true,
310subtree: true
311});
312}
313checkListener(listener);
314};
315function checkListener(listener, target) {
316var i = 0, el, els = [];
317try {
318target && target.matches(listener.selector) && els.push(target);
319} catch(e) {}
320if (loaded) { // ok? check inside node on innerHTML - only when loaded
321Array.prototype.push.apply(els, qsa(target || root, listener.selector));
322}
323while (el = els[i++]) {
324if (listener.elements.has(el)) continue;
325listener.elements.set(el,true);
326listener.callback.call(el, el);
327}
328}
329function checkListeners(inside) {
330var i = 0, listener;
331while (listener = listeners[i++]) checkListener(listener, inside);
332}
333function checkMutations(mutations) {
334var j = 0, i, mutation, nodes, target;
335while (mutation = mutations[j++]) {
336nodes = mutation.addedNodes, i = 0;
337while (target = nodes[i++]) target.nodeType === 1 && checkListeners(target);
338}
339}
340var loaded = false;
341document.addEventListener('DOMContentLoaded', function () {
342loaded = true;
343});
344// svg polyfills
345function copyProperty(prop, from, to){
346var desc = Object.getOwnPropertyDescriptor(from, prop);
347Object.defineProperty(to, prop, desc);
348}
349if (!('classList' in Element.prototype)) {
350copyProperty('classList', HTMLElement.prototype, Element.prototype);
351}
352if (!('innerHTML' in Element.prototype)) {
353copyProperty('innerHTML', HTMLElement.prototype, Element.prototype);
354}
355if (!('sheet' in SVGStyleElement.prototype)) {
356Object.defineProperty(SVGStyleElement.prototype, 'sheet', {
357get:function(){
358var all = document.styleSheets, i=0, sheet;
359while (sheet=all[i++]) {
360if (sheet.ownerNode === this) return sheet;
361}
362}
363});
364}
365// main logic
366// cached regexps, better performance
367const regFindSetters = /([\s{;])(--([A-Za-z0-9-_]*)\s*:([^;!}{]+)(!important)?)(?=\s*([;}]|$))/g;
368const regFindGetters = /([{;]\s*)([A-Za-z0-9-_]+\s*:[^;}{]*var\([^!;}{]+)(!important)?(?=\s*([;}$]|$))/g;
369const regRuleIEGetters = /-ieVar-([^:]+):/g
370const regRuleIESetters = /-ie-([^};]+)/g
371//const regHasVar = /var\(/;
372const regPseudos = /:(hover|active|focus|target|:before|:after|:first-letter|:first-line)/;
373onElement('link[rel="stylesheet"]', function (el) {
374fetchCss(el.href, function (css) {
375var newCss = rewriteCss(css);
376if (css === newCss) return;
377newCss = relToAbs(el.href, newCss);
378el.disabled = true;
379var style = document.createElement('style');
380if (el.media) style.setAttribute('media', el.media);
381el.parentNode.insertBefore(style, el);
382activateStyleElement(style, newCss);
383});
384});
385function foundStyle(el){
386if (el.ieCP_polyfilled) return;
387if (el.ieCP_elementSheet) return;
388var css = el.innerHTML;
389var newCss = rewriteCss(css);
390if (css === newCss) return;
391activateStyleElement(el, newCss);
392}
393onElement('style', foundStyle);
394// immediate, to pass w3c-tests, bud its a bad idea
395// addEventListener('DOMNodeInserted',function(e){ e.target.tagName === 'STYLE' && foundStyle(e.target); });
396onElement('[ie-style]', function (el) {
397var newCss = rewriteCss('{'+el.getAttribute('ie-style')).substr(1);
398el.style.cssText += ';'+ newCss;
399var found = parseRewrittenStyle(el.style);
400if (found.getters) addGetterElement(el, found.getters, '%styleAttr');
401if (found.setters) addSetterElement(el, found.setters);
402});
403function relToAbs(base, css) {
404return css.replace(/url\(([^)]+)\)/g, function($0, $1){
405$1 = $1.trim().replace(/(^['"]|['"]$)/g,'');
406if ($1.match(/^([a-z]+:|\/)/)) return $0;
407base = base.replace(/\?.*/,'');
408return 'url('+ base + './../' + $1 +')';
409});
410}
411// ie has a bug, where unknown properties at pseudo-selectors are computed at the element
412// #el::after { -content:'x'; } => getComputedStyle(el)['-content'] == 'x'
413// should we add something like -ieVar-pseudo_after-content:'x'?
414function rewriteCss(css) {
415/* uncomment if spec finished and needed by someone
416css = css.replace(/@property ([^{]+){([^}]+)}/, function($0, prop, body){
417prop = prop.trim();
418const declaration = {name:prop};
419body.split(';').forEach(function(pair){
420const x = pair.split(':');
421if (x[1]) declaration[ x[0].trim() ] = x[1];
422});
423declaration['inherits'] = declaration['inherits'].trim()==='true' ? true : false;
424declaration['initialValue'] = declaration['initial-value'];
425CSS.registerProperty(declaration)
426return '/*\n @property ... removed \n*'+'/';
427});
428*/
429return css.replace(regFindSetters, function($0, $1, $2, $3, $4, important){
430return $1+'-ie-'+(important?'❗':'')+$3+':'+encodeValue($4);
431}).replace(regFindGetters, function($0, $1, $2, important){
432return $1+'-ieVar-'+(important?'❗':'')+$2+'; '+$2; // keep the original, so chaining works "--x:var(--y)"
433});
434}
435function encodeValue(value){
436return value;
437return value.replace(/ /g,'␣');
438}
439const keywords = {initial:1,inherit:1,revert:1,unset:1};
440function decodeValue(value){
441return value;
442if (value===undefined) return;
443value =  value.replace(/␣/g,' ');
444const trimmed = value.trim();
445if (keywords[trimmed]) return trimmed;
446return value;
447}
448// beta
449const styles_of_getter_properties = {};
450function parseRewrittenStyle(style) { // less memory then parameter cssText?
451// beta
452style['z-index']; // ie11 can access unknown properties in stylesheets only if accessed a dashed known property
453const cssText = style.cssText;
454var matchesGetters = cssText.match(regRuleIEGetters), j, match;
455if (matchesGetters) {
456var getters = []; // eg. [border,color]
457for (j = 0; match = matchesGetters[j++];) {
458let propName = match.slice(7, -1);
459if (propName[0] === '❗') propName = propName.substr(1);
460getters.push(propName);
461// beta
462if (!styles_of_getter_properties[propName]) styles_of_getter_properties[propName] = [];
463styles_of_getter_properties[propName].push(style);
464}
465}
466var matchesSetters = cssText.match(regRuleIESetters);
467if (matchesSetters) {
468var setters = {}; // eg. [--color:#fff, --padding:10px];
469for (j = 0; match = matchesSetters[j++];) {
470let x = match.substr(4).split(':');
471let propName = x[0];
472let propValue = x[1];
473if (propName[0] === '❗') propName = propName.substr(1);
474setters[propName] = propValue;
475}
476}
477return {getters:getters, setters:setters};
478}
479function activateStyleElement(style, css) {
480style.innerHTML = css;
481style.ieCP_polyfilled = true;
482var rules = style.sheet.rules, i=0, rule; // cssRules = CSSRuleList, rules = MSCSSRuleList
483while (rule = rules[i++]) {
484const found = parseRewrittenStyle(rule.style);
485if (found.getters) addGettersSelector(rule.selectorText, found.getters);
486if (found.setters) addSettersSelector(rule.selectorText, found.setters);
487// mediaQueries: redraw the hole document
488// better add events for each element?
489const media = rule.parentRule && rule.parentRule.media && rule.parentRule.media.mediaText;
490if (media && (found.getters || found.setters)) {
491matchMedia(media).addListener(function(){
492drawTree(document.documentElement)
493})
494}
495}
496// beta
497redrawStyleSheets()
498}
499function addGettersSelector(selector, properties) {
500selectorAddPseudoListeners(selector);
501onElement(unPseudo(selector), function (el) {
502addGetterElement(el, properties, selector);
503drawElement(el);
504});
505}
506function addGetterElement(el, properties, selector) {
507var i=0, prop, j;
508const selectors = selector.split(','); // split grouped selectors
509el.setAttribute('iecp-needed', true);
510if (!el.ieCPSelectors) el.ieCPSelectors = {};
511while (prop = properties[i++]) {
512for (j = 0; selector = selectors[j++];) {
513const parts = selector.trim().split('::');
514if (!el.ieCPSelectors[prop]) el.ieCPSelectors[prop] = [];
515el.ieCPSelectors[prop].push({
516selector: parts[0],
517pseudo: parts[1] ? '::' + parts[1] : ''
518});
519}
520}
521}
522function addSettersSelector(selector, propVals) {
523selectorAddPseudoListeners(selector);
524onElement(unPseudo(selector), function (el) {
525addSetterElement(el, propVals);
526});
527}
528function addSetterElement(el, propVals) {
529if (!el.ieCP_setters) el.ieCP_setters = {};
530for (var prop in propVals) { // eg. {foo:#fff, bar:baz}
531el.ieCP_setters['--' + prop] = 1;
532}
533drawTree(el);
534}
535//beta
536function redrawStyleSheets() {
537for (var prop in styles_of_getter_properties) {
538let styles = styles_of_getter_properties[prop];
539for (var i=0, style; style=styles[i++];) {
540if (style.owningElement) continue;
541var value = style['-ieVar-'+prop];
542if (!value) continue;
543value = styleComputeValueWidthVars(getComputedStyle(document.documentElement), value);
544if (value === '') continue;
545try {
546style[prop] = value;
547} catch(e) {}
548}
549}
550}
551const pseudos = {
552hover:{
553on:'mouseenter',
554off:'mouseleave'
555},
556focus:{
557on:'focusin',
558off:'focusout'
559},
560active:{
561on:'CSSActivate',
562off:'CSSDeactivate'
563},
564};
565function selectorAddPseudoListeners(selector){
566// ie11 has the strange behavoir, that groups of selectors are individual rules, but starting with the full selector:
567// td, th, button { color:red } results in this rules:
568// "td, th, button" | "th, th" | "th"
569selector = selector.split(',')[0];
570for (var pseudo in pseudos) {
571var parts = selector.split(':'+pseudo);
572if (parts.length > 1) {
573var ending = parts[1].match(/^[^\s]*/); // ending elementpart of selector (used for not(:active))
574let sel = unPseudo(parts[0]+ending);
575const listeners = pseudos[pseudo];
576onElement(sel, function (el) {
577el.addEventListener(listeners.on, drawTreeEvent);
578el.addEventListener(listeners.off, drawTreeEvent);
579});
580}
581}
582}
583let CSSActive = null;
584document.addEventListener('mousedown',function(e){
585setTimeout(function(){
586if (e.target === document.activeElement) {
587var evt = document.createEvent('Event');
588evt.initEvent('CSSActivate', true, true);
589CSSActive = e.target;
590CSSActive.dispatchEvent(evt);
591}
592})
593});
594document.addEventListener('mouseup',function(){
595if (CSSActive) {
596var evt = document.createEvent('Event');
597evt.initEvent('CSSDeactivate', true, true);
598CSSActive.dispatchEvent(evt);
599CSSActive = null;
600}
601});
602function unPseudo(selector){
603return selector.replace(regPseudos,'').replace(':not()','');
604}
605var uniqueCounter = 0;
606/* old *
607function _drawElement(el) {
608if (!el.ieCP_unique) { // use el.uniqueNumber? but needs class for the css-selector => test performance
609el.ieCP_unique = ++uniqueCounter;
610el.classList.add('iecp-u' + el.ieCP_unique);
611}
612var style = getComputedStyle(el);
613if (el.ieCP_sheet) while (el.ieCP_sheet.rules[0]) el.ieCP_sheet.deleteRule(0);
614for (var prop in el.ieCPSelectors) {
615var important = style['-ieVar-❗' + prop];
616let valueWithVar = important || style['-ieVar-' + prop];
617if (!valueWithVar) continue; // todo, what if '0'
618var details = {};
619var value = styleComputeValueWidthVars(style, valueWithVar, details);
620if (important) value += ' !important';
621for (var i=0, item; item=el.ieCPSelectors[prop][i++];) { // todo: split and use requestAnimationFrame?
622if (item.selector === '%styleAttr') {
623el.style[prop] = value;
624} else {
625// beta
626if (!important && details.allByRoot !== false) continue; // dont have to draw root-properties
627//let selector = item.selector.replace(/>? \.[^ ]+/, ' ', item.selector); // todo: try to equalize specificity
628let selector = item.selector;
629elementStyleSheet(el).insertRule(selector + '.iecp-u' + el.ieCP_unique + item.pseudo + ' {' + prop + ':' + value + '}', 0);
630}
631}
632}
633}
634function elementStyleSheet(el){
635if (!el.ieCP_sheet) {
636const styleEl = document.createElement('style');
637styleEl.ieCP_elementSheet = 1;
638//el.appendChild(styleEl); // yes! self-closing tags can have style as children, but - if i set innerHTML, the stylesheet is lost
639document.head.appendChild(styleEl);
640el.ieCP_sheet = styleEl.sheet;
641}
642return el.ieCP_sheet;
643}
644/* */
645function _drawElement(el) {
646if (!el.ieCP_unique) { // use el.uniqueNumber? but needs class for the css-selector => test performance
647el.ieCP_unique = ++uniqueCounter;
648el.classList.add('iecp-u' + el.ieCP_unique);
649}
650var style = getComputedStyle(el);
651let css = '';
652for (var prop in el.ieCPSelectors) {
653var important = style['-ieVar-❗' + prop];
654let valueWithVar = important || style['-ieVar-' + prop];
655if (!valueWithVar) continue; // todo, what if '0'
656var details = {};
657var value = styleComputeValueWidthVars(style, valueWithVar, details);
658//if (value==='initial') value = initials[prop];
659if (important) value += ' !important';
660for (var i=0, item; item=el.ieCPSelectors[prop][i++];) { // todo: split and use requestAnimationFrame?
661if (item.selector === '%styleAttr') {
662el.style[prop] = value;
663} else {
664// beta
665if (!important && details.allByRoot !== false) continue; // dont have to draw root-properties
666//let selector = item.selector.replace(/>? \.[^ ]+/, ' ', item.selector); // todo: try to equalize specificity
667let selector = item.selector;
668css += selector + '.iecp-u' + el.ieCP_unique + item.pseudo + '{' + prop + ':' + value + '}\n';
669}
670}
671}
672elementSetCss(el, css);
673}
674function elementSetCss(el, css){
675if (!el.ieCP_styleEl && css) {
676const styleEl = document.createElement('style');
677styleEl.ieCP_elementSheet = 1;
678//el.appendChild(styleEl); // yes! self-closing tags can have style as children, but - if i set innerHTML, the stylesheet is lost
679document.head.appendChild(styleEl);
680el.ieCP_styleEl = styleEl;
681}
682if (el.ieCP_styleEl) el.ieCP_styleEl.innerHTML = css;
683}
684/* */
685function drawTree(target) {
686if (!target) return;
687var els = target.querySelectorAll('[iecp-needed]');
688if (target.hasAttribute && target.hasAttribute('iecp-needed')) drawElement(target); // self
689for (var i = 0, el; el = els[i++];) drawElement(el); // tree
690}
691// draw queue
692let drawQueue = new Set();
693let collecting = false;
vendor: 4,379 bytes, lines 694-827
694let drawing = false;
695function drawElement(el){
696drawQueue.add(el);
697if (collecting) return;
698collecting = true;
699requestAnimationFrame(function(){
700//setImmediate(function(){
701collecting = false;
702drawing = true;
703drawQueue.forEach(_drawElement);
704drawQueue.clear();
705setTimeout(function(){ // mutationObserver will trigger delayed, requestAnimationFrame will miss some changes
706drawing = false;
707})
708})
709}
710function drawTreeEvent(e) {
711drawTree(e.target)
712}
713function findVars(str, cb){ // css value parser
714let level=0, openedLevel=null, lastPoint=0, newStr = '', i=0, char, insideCalc;
715while (char=str[i++]) {
716if (char === '(') {
717++level;
718if (openedLevel === null && str[i-4]+str[i-3]+str[i-2] === 'var') {
719openedLevel = level;
720newStr += str.substring(lastPoint, i-4);
721lastPoint = i;
722}
723if (str[i-5]+str[i-4]+str[i-3]+str[i-2] === 'calc') {
724insideCalc = level;
725}
726}
727if (char === ')' && openedLevel === level) {
728let variable = str.substring(lastPoint, i-1).trim(), fallback;
729let x = variable.indexOf(',');
730if (x!==-1) {
731fallback = variable.slice(x+1);
732variable = variable.slice(0,x);
733}
734newStr += cb(variable, fallback, insideCalc);
735lastPoint = i;
736openedLevel = null;
737}
738if (char === ')') {
739--level;
740if (insideCalc === level) insideCalc = null;
741}
742}
743newStr += str.substring(lastPoint);
744return newStr;
745}
746function styleComputeValueWidthVars(style, valueWithVars, details){
747return findVars(valueWithVars, function(variable, fallback, insideCalc){
748var value = style.getPropertyValue(variable);
749if (insideCalc) value = value.replace(/^calc\(/, '('); // prevent nested calc
750if (details && style.lastPropertyServedBy !== document.documentElement) details.allByRoot = false;
751if (value==='' && fallback) value = styleComputeValueWidthVars(style, fallback, details);
752return value;
753});
754}
755// mutation listener
756var observer = new MutationObserver(function(mutations) {
757if (drawing) return;
758for (var i=0, mutation; mutation=mutations[i++];) {
759if (mutation.attributeName === 'iecp-needed') continue; // why?
760// recheck all selectors if it targets new elements?
761drawTree(mutation.target);
762}
763});
764setTimeout(function(){
765observer.observe(document,{attributes: true, subtree: true });
766})
767// :target listener
768var oldHash = location.hash
769addEventListener('hashchange',function(e){
770var newEl = document.getElementById(location.hash.substr(1));
771if (newEl) {
772var oldEl = document.getElementById(oldHash.substr(1));
773drawTree(newEl);
774drawTree(oldEl);
775} else {
776drawTree(document);
777}
778oldHash = location.hash;
779});
780// add owningElement to Element.style
781var descriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'style');
782var styleGetter = descriptor.get;
783descriptor.get = function () {
784const style = styleGetter.call(this);
785style.owningElement = this;
786return style;
787}
788Object.defineProperty(HTMLElement.prototype, 'style', descriptor);
789// add computedFor to computed style-objects
790var originalGetComputed = getComputedStyle;
791window.getComputedStyle = function (el) {
792var style = originalGetComputed.apply(this, arguments);
793style.computedFor = el;
794//style.pseudoElt = pseudoElt; //not needed at the moment
795return style;
796}
797// getPropertyValue / setProperty hooks
798const StyleProto = CSSStyleDeclaration.prototype;
799const oldGetP = StyleProto.getPropertyValue;
800StyleProto.getPropertyValue = function (property) {
801this.lastPropertyServedBy = false;
802property = property.trim();
803/* *
804if (this.owningElement) {
805const ieProperty = '-ieVar-'+property;
806const iePropertyImportant = '-ieVar-❗'+property;
807let value = this[iePropertyImportant] || this[ieProperty];
808if (value !== undefined) {
809// todo, test if syntax valid
810return value;
811}
812}
813/* */
814if (property[0] !== '-' || property[1] !== '-') return oldGetP.apply(this, arguments);
815const undashed = property.substr(2);
816const ieProperty = '-ie-'+undashed;
817const iePropertyImportant = '-ie-❗'+undashed;
818let value = decodeValue(this[iePropertyImportant] || this[ieProperty]);
819if (this.computedFor) { // computedStyle
820if (value !== undefined && !inheritingKeywords[value]) {
821//if (regHasVar.test(value))  // todo: to i need this check?!!! i think its faster without
822value = styleComputeValueWidthVars(this, value);
823this.lastPropertyServedBy = this.computedFor;
824} else { // inherited
825if (inheritingKeywords[value] || !register[property] || register[property].inherits) {
826//let el = this.pseudoElt ? this.computedFor : this.computedFor.parentNode;
827let el = this.computedFor.parentNode;
828while (el.nodeType === 1) {
829// how slower would it be to getComputedStyle for every element, not just with defined ieCP_setters
830if (el.ieCP_setters && el.ieCP_setters[property]) {
831// i could make
832// value = el.nodeType ? getComputedStyle(this.computedFor.parentNode).getPropertyValue(property)
833// but i fear performance, stupid?
834var style = getComputedStyle(el);
835var tmpVal = decodeValue(style[iePropertyImportant] || style[ieProperty]);
836if (tmpVal !== undefined) {
837// calculated style from current element not from the element the value was inherited from! (style, value)
838//value = tmpVal; if (regHasVar.test(tmpVal))  // todo: to i need this check?!!! i think its faster without
839value = styleComputeValueWidthVars(this, tmpVal);
840this.lastPropertyServedBy = el;
841break;
842}
843}
844el = el.parentNode;
845}
846}
847}
848if (value==='initial') return '';
849}
850//if ((value === undefined || value === 'initial') && register[property]) value = register[property].initialValue; // todo?
851if (value === undefined && register[property]) value = register[property].initialValue;
852if (value === undefined) return '';
853return value;
854};
855const inheritingKeywords = {inherit:1,revert:1,unset:1};
856const oldSetP = StyleProto.setProperty;
857StyleProto.setProperty = function (property, value, prio) {
858if (property[0] !== '-' || property[1] !== '-') return oldSetP.apply(this, arguments);
859const el = this.owningElement;
860if (el) {
861if (!el.ieCP_setters) el.ieCP_setters = {};
862el.ieCP_setters[property] = 1;
863}
864property = '-ie-'+(prio==='important'?'❗':'') + property.substr(2);
865this.cssText += '; ' + property + ':' + encodeValue(value) + ';';
866//this[property] = value;
867el === document.documentElement && redrawStyleSheets();
868el && drawTree(el); // its delayed internal
869};
870/*
871var descriptor = Object.getOwnPropertyDescriptor(StyleProto, 'cssText');
872var cssTextGetter = descriptor.get;
873var cssTextSetter = descriptor.set;
874// descriptor.get = function () {
875// 	const style = styleGetter.call(this);
876// 	style.owningElement = this;
877// 	return style;
878// }
879descriptor.set = function (css) {
880var el = this.owningElement;
881if (el) {
882css = rewriteCss('{'+css).substr(1);
883cssTextSetter.call(this, css);
884var found = parseRewrittenStyle(this);
885if (found.getters) addGetterElement(el, found.getters, '%styleAttr');
886if (found.setters) addSetterElement(el, found.setters);
887return;
888}
889return cssTextSetter.call(this, css);
890}
891Object.defineProperty(StyleProto, 'cssText', descriptor);
892*/
893if (!window.CSS) window.CSS = {};
894const register = {}
895CSS.registerProperty = function(options){
896register[options.name] = options;
897}
898// fix "initial" keyword with generated custom properties, this is not supported ad all by ie, should i make a separate "inherit"-polyfill?
899/*
900const computed = getComputedStyle(document.documentElement)
901const initials = {};
902for (let i in computed) {
903initials[i.replace(/([A-Z])/, function(x){ return '-'+x.toLowerCase(x) })] = computed[i];
904}
905initials['display'] = 'inline';
906*/
907// utils
908function fetchCss(url, callback) {
909var request = new XMLHttpRequest();
910request.open('GET', url);
911request.overrideMimeType('text/css');
912request.onload = function () {
913if (request.status >= 200 && request.status < 400) {
914callback(request.responseText);
915}
916};
917request.send();
918}
919}();
920;
921var scripts=document.getElementsByTagName("script"),path=scripts[scripts.length-1].src.split("?")[0],tarteaucitronForceCDN=(tarteaucitronForceCDN===undefined)?"":tarteaucitronForceCDN,cdn=(tarteaucitronForceCDN==="")?path.split("/").slice(0,-1).join("/")+"/":tarteaucitronForceCDN,alreadyLaunch=(alreadyLaunch===undefined)?0:alreadyLaunch,tarteaucitronForceLanguage=(tarteaucitronForceLanguage===undefined)?"":tarteaucitronForceLanguage,tarteaucitronForceExpire=(tarteaucitronForceExpire===undefined)?"":tarteaucitronForceExpire,tarteaucitronCustomText=(tarteaucitronCustomText===undefined)?"":tarteaucitronCustomText,tarteaucitronExpireInDay=(tarteaucitronExpireInDay===undefined||typeof tarteaucitronExpireInDay!=="boolean")?true:tarteaucitronExpireInDay,timeExpire=31536000000,tarteaucitronProLoadServices,tarteaucitronNoAdBlocker=false;var tarteaucitron={version:20210422,cdn:cdn,user:{},lang:{},services:{},added:[],idprocessed:[],state:[],launch:[],parameters:{},isAjax:false,reloadThePage:false,events:{init:function(){},load:function(){}},init:function(b){var a;tarteaucitron.parameters=b;if(alreadyLaunch===0){alreadyLaunch=1;if(window.addEventListener){window.addEventListener("load",function(){tarteaucitron.initEvents.loadEvent(false)},false);window.addEventListener("scroll",function(){tarteaucitron.initEvents.scrollEvent()},false);window.addEventListener("keydown",function(c){tarteaucitron.initEvents.keydownEvent(false,c)},false);window.addEventListener("hashchange",function(){tarteaucitron.initEvents.hashchangeEvent()},false);window.addEventListener("resize",function(){tarteaucitron.initEvents.resizeEvent()},false)}else{window.attachEvent("onload",function(){tarteaucitron.initEvents.loadEvent(true)});window.attachEvent("onscroll",function(){tarteaucitron.initEvents.scrollEvent()});window.attachEvent("onkeydown",function(c){tarteaucitron.initEvents.keydownEvent(true,c)});window.attachEvent("onhashchange",function(){tarteaucitron.initEvents.hashchangeEvent()});window.attachEvent("onresize",function(){tarteaucitron.initEvents.resizeEvent()})}if(typeof XMLHttpRequest!=="undefined"){a=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(){if(window.addEventListener){this.addEventListener("load",function(){if(typeof tarteaucitronProLoadServices==="function"){tarteaucitronProLoadServices()}},false)}else{if(typeof this.attachEvent!=="undefined"){this.attachEvent("onload",function(){if(typeof tarteaucitronProLoadServices==="function"){tarteaucitronProLoadServices()}})}else{if(typeof tarteaucitronProLoadServices==="function"){setTimeout(tarteaucitronProLoadServices,1000)}}}try{a.apply(this,arguments)}catch(c){}}}}if(tarteaucitron.events.init){tarteaucitron.events.init()}},initEvents:{loadEvent:function(a){tarteaucitron.load();tarteaucitron.fallback(["tarteaucitronOpenPanel"],function(b){if(a){b.attachEvent("onclick",function(c){tarteaucitron.userInterface.openPanel
921();c.preventDefault()})}else{b.addEventListener("click",function(c){tarteaucitron.userInterface.openPanel();c.preventDefault()},false)}},true)},keydownEvent:function(b,a){if(a.keyCode===27){tarteaucitron.userInterface.closePanel()}if(b){if(a.keyCode===9&&focusableEls.indexOf(a.target)>=0){if(a.shiftKey){if(document.activeElement===firstFocusableEl){lastFocusableEl.focus();a.preventDefault()}}else{if(document.activeElement===lastFocusableEl){firstFocusableEl.focus();a.preventDefault()}}}}},hashchangeEvent:function(){if(document.location.hash===tarteaucitron.hashtag&&tarteaucitron.hashtag!==""){tarteaucitron.userInterface.openPanel()}},resizeEvent:function(){var b=document.getElementById("tarteaucitron");var a=document.getElementById("tarteaucitronCookiesListContainer");if(b&&b.style.display==="block"){tarteaucitron.userInterface.jsSizing("main")}if(a&&a.style.display==="block"){tarteaucitron.userInterface.jsSizing("cookie")}},scrollEvent:function(){var d=window.pageYOffset||document.documentElement.scrollTop;var a;var c=document.getElementById("tarteaucitronPercentage");var b=document.getElementById("tarteaucitronAlertBig");if(b&&!tarteaucitron.highPrivacy){if(b.style.display==="block"){a=b.offsetHeight+"px";if(d>(screen.height*2)){tarteaucitron.userInterface.respondAll(true)}else{if(d>(screen.height/2)){document.getElementById("tarteaucitronDisclaimerAlert").innerHTML="<strong>"+tarteaucitron.lang.alertBigScroll+"</strong> "+tarteaucitron.lang.alertBig}}if(c){if(tarteaucitron.orientation==="top"){c.style.top=a}else{c.style.bottom=a}c.style.width=((100/(screen.height*2))*d)+"%"}}}}},load:function(){var i=tarteaucitron.cdn,h=tarteaucitron.getLanguage(),a=(i.indexOf("cdn.jsdelivr.net")>=0),b=i+"lang/tarteaucitron."+h+(a?".min":"")+".js?v="+tarteaucitron.version,c=i+"tarteaucitron.services"+(a?".min":"")+".js?v="+tarteaucitron.version,d=document.createElement("link"),g={adblocker:false,hashtag:"#tarteaucitron",cookieName:"tarteaucitron",highPrivacy:true,orientation:"middle",bodyPosition:"bottom",removeCredit:false,showAlertSmall:false,showIcon:true,iconPosition:"BottomRight",cookieslist:false,handleBrowserDNTRequest:false,DenyAllCta:true,AcceptAllCta:true,moreInfoLink:true,privacyUrl:"",useExternalCss:false,useExternalJs:false,mandatory:true,closePopup:false,groupServices:false},f=tarteaucitron.parameters;if(((tarteaucitron.parameters.readmoreLink!==undefined&&window.location.href==tarteaucitron.parameters.readmoreLink)||window.location.href==tarteaucitron.parameters.privacyUrl)&&tarteaucitron.parameters.orientation=="middle"){tarteaucitron.parameters.orientation="bottom"}if(typeof tarteaucitronCustomPremium!=="undefined"){tarteaucitronCustomPremium()}if(f!==undefined){for(var e in g){if(!tarteaucitron.parameters.hasOwnProperty(e)){tarteaucitron.parameters[e]=g[e]}}}tarteaucitron.orientation=tarteaucitron.parameters.orientation;tarteaucitron.hashtag=tarteaucitron.parameters.hashtag;tarteaucitron.highPrivacy=tarteaucitron.parameters.highPrivacy;tarteaucitron.handleBrowserDNTRequest=tarteaucitron.parameters.handleBrowserDNTRequest;if(!tarteaucitron.parameters.useExternalCss){d.rel="stylesheet";d.type="text/css";d.href=i+"css/tarteaucitron"+(a?".min":"")+".css?v="+tarteaucitron.version;document.getElementsByTagName("head")[0].appendChild(d)}tarteaucitron.addInternalScript(b,"",function(){if(tarteaucitronCustomText!==""){tarteaucitron.lang=tarteaucitron.AddOrUpdate(tarteaucitron.lang,tarteaucitronCustomText)}tarteaucitron.addInternalScript(c,"",function(){if(tarteaucitron.orientation==="middle"){var j=document.createElement("style"),n="div#tarteaucitronRoot.tarteaucitronBeforeVisible:before {content: '';position: fixed;width: 100%;height: 100%;background: white;top: 0;left: 0;z-index: 999;opacity: 0.5;}div#tarteaucitronAlertBig:before {content: '"+tarteaucitron.lang.middleBarHead+"';font-size: 35px;}body #tarteaucitronRoot div#tarteaucitronAlertBig {width: 60%;min-width: 285px;height: auto;margin: auto;left: 50%;top: 50%;transform: translate(-50%, -50%);box-shadow: 0 0 9000px #000;border-radius: 20px;padding: 35px 25px;}
921span#tarteaucitronDisclaimerAlert {padding: 0 30px;}#tarteaucitronRoot span#tarteaucitronDisclaimerAlert {margin: 10px 0 30px;display: block;text-align: center;font-size: 21px;}@media screen and (max-width: 900px) {div#tarteaucitronAlertBig button {margin: 0 auto 10px!important;display: block!important;}}";j.type="text/css";if(j.styleSheet){j.styleSheet.cssText=n}else{j.appendChild(document.createTextNode(n))}document.getElementsByTagName("head")[0].appendChild(j)}if(tarteaucitron.orientation==="popup"){var v=document.createElement("style"),t="div#tarteaucitronAlertBig:before {content: '"+tarteaucitron.lang.middleBarHead+"';font-size: 22px;}body #tarteaucitronRoot div#tarteaucitronAlertBig {bottom: 0;top: auto!important;left: 8px!important;right: auto!important;transform: initial!important;border-radius: 5px 5px 0 0!important;max-width: 250px!important;width: Calc(100% - 16px)!important;min-width: 0!important;padding: 25px 0;}span#tarteaucitronDisclaimerAlert {padding: 0 30px;font-size: 15px!important;}#tarteaucitronRoot span#tarteaucitronDisclaimerAlert {margin: 10px 0 30px;display: block;text-align: center;font-size: 21px;}div#tarteaucitronAlertBig button {margin: 0 auto 10px!important;display: block!important;width: Calc(100% - 60px);box-sizing: border-box;}";v.type="text/css";if(v.styleSheet){v.styleSheet.cssText=t}else{v.appendChild(document.createTextNode(t))}document.getElementsByTagName("head")[0].appendChild(v)}var q=document.body,k=document.createElement("div"),p="",r,l="Top",s=["ads","analytic","api","comment","social","support","video","other"],o;s=s.sort(function(x,w){if(tarteaucitron.lang[x].title>tarteaucitron.lang[w].title){return 1}if(tarteaucitron.lang[x].title<tarteaucitron.lang[w].title){return -1}return 0});p+='<div id="tarteaucitronPremium"></div>';p+='<button type="button" id="tarteaucitronBack" aria-label="'+tarteaucitron.lang.close+'"></button>';p+='<div id="tarteaucitron" role="dialog" aria-labelledby="dialogTitle">';p+='   <button type="button" id="tarteaucitronClosePanel">';p+="       "+tarteaucitron.lang.close;p+="   </button>";p+='   <div id="tarteaucitronServices">';p+='      <div class="tarteaucitronLine tarteaucitronMainLine" id="tarteaucitronMainLineOffset">';p+='         <span class="tarteaucitronH1" role="heading" aria-level="1" id="dialogTitle">'+tarteaucitron.lang.title+"</span>";p+='         <div id="tarteaucitronInfo">';p+="         "+tarteaucitron.lang.disclaimer;if(tarteaucitron.parameters.privacyUrl!==""){p+="   <br/><br/>";p+='   <button type="button" id="tarteaucitronPrivacyUrlDialog">';p+="       "+tarteaucitron.lang.privacyUrl;p+="   </button>"}p+="         </div>";p+='         <div class="tarteaucitronName">';p+='            <span class="tarteaucitronH2" role="heading" aria-level="2">'+tarteaucitron.lang.all+"</span>";p+="         </div>";p+='         <div class="tarteaucitronAsk" id="tarteaucitronScrollbarAdjust">';p+='            <button type="button" id="tarteaucitronAllAllowed" class="tarteaucitronAllow">';p+='               <span class="tarteaucitronCheck"></span> '+tarteaucitron.lang.allowAll;p+="            </button> ";p+='            <button type="button" id="tarteaucitronAllDenied" class="tarteaucitronDeny">';p+='               <span class="tarteaucitronCross"></span> '+tarteaucitron.lang.denyAll;p+="            </button>";p+="         </div>";p+="      </div>";p+='      <div class="tarteaucitronBorder">';p+='         <div class="clear"></div><ul>';if(tarteaucitron.parameters.mandatory==true){p+='<li id="tarteaucitronServicesTitle_mandatory">';p+='<div class="tarteaucitronTitle">';p+='   <button type="button" tabindex="-1"><span class="tarteaucitronPlus"></span> '+tarteaucitron.lang.mandatoryTitle+"</button>";p+="</div>";p+='<ul id="tarteaucitronServices_mandatory">';p+='<li class="tarteaucitronLine">';p+='   <div class="tarteaucitronName">';p+='       <span class="tarteaucitronH3" role="heading" aria-level="3">'+tarteaucitron.lang.mandatoryText+"</span>";p+='       <span class="tarteaucitronListCookies"></span><br/>';p+="   </div>";p+='   <div class="tarteaucitronAsk">';p+='       <button type="button" class="tarteaucitronAllow" tabindex="-1" disabled>';
921p+='           <span class="tarteaucitronCheck"></span> '+tarteaucitron.lang.allow;p+="       </button> ";p+='       <button type="button" class="tarteaucitronDeny" style="visibility:hidden" tabindex="-1">';p+='           <span class="tarteaucitronCross"></span> '+tarteaucitron.lang.deny;p+="       </button> ";p+="   </div>";p+="</li>";p+="</ul></li>"}for(o=0;o<s.length;o+=1){p+='         <li id="tarteaucitronServicesTitle_'+s[o]+'" class="tarteaucitronHidden">';p+='            <div class="tarteaucitronTitle">';p+='               <button type="button" class="catToggleBtn" data-cat="tarteaucitronDetails'+s[o]+'"><span class="tarteaucitronPlus"></span> '+tarteaucitron.lang[s[o]].title+"</button>";p+="            </div>";p+='            <div id="tarteaucitronDetails'+s[o]+'" class="tarteaucitronDetails tarteaucitronInfoBox">';p+="               "+tarteaucitron.lang[s[o]].details;p+="            </div>";p+='         <ul id="tarteaucitronServices_'+s[o]+'"></ul></li>'}p+='             <li id="tarteaucitronNoServicesTitle" class="tarteaucitronLine">'+tarteaucitron.lang.noServices+"</li>";p+="         </ul>";p+='         <div class="tarteaucitronHidden tarteaucitron-spacer-20" id="tarteaucitronScrollbarChild"></div>';if(tarteaucitron.parameters.removeCredit===false){p+='     <a class="tarteaucitronSelfLink" href="https://tarteaucitron.io/" rel="nofollow noreferrer noopener" target="_blank" title="tarteaucitron '+tarteaucitron.lang.newWindow+'"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAAAeCAYAAAAWwoEYAAADl0lEQVRoge1Y0W3bQAx9CjKARlC+9GVUmqDJBHEmiDyB6wkcTxBngtgTxJ0gzgQW4C/9aYOmE6g4lTQo+k6y3Rb94QOERNQd+cjj8XiGwWAwGAwGg8FgMBgMBoPB8F8RNRXe+whEKe7c36ZCAeCRxC9Rig2PUd8kPgAsoxSfQ3YAzAA8D/HwYYCb05kBKKO0teFkmbC1jlKsAnq/Abjn+QBqAIsoRS30ttwG/HNz1wH/XIxWTicLdvtW7xTAGEAMtP685CNsBTe2d/BLydfXAG57SEnMAST0zgYZSUCPk02bCvkJduIzuJzDLfPolbY+tLKmar+/8+IRePy4qdpE03qHuH8fipFb4N2+XdA3AJ/0vaQxt7s9FvkIS2XvtqnwM0rxpOQfbnE5G2LhTCmUO2fHIngOmcv+KG3HafDchB6ntwjYqenR2PqC7sOZ3E7FXHB0vqxoFyUyLh7OEH7LOGouvhhN3eIBeKXv0n5MsufdHqXcwYR5U2EbpV35lSspVPJmQj4TcgRK7jTg5IzmPUhhwM5a2WHUFCx+NgiDucmgh7idikLovHFlL0pxQ9xzX+IIP9Y6FrJsqhjlQpZRAkFVDCjZfcCHt6bqJDmuh5ylCWx0RVnk3oumaknqTH5sqrY0fBWyULaHUIgAgxb46MxV3DbieAhxOxUxjSuljig9lMQ/Bcfoi9BTEv9aLORSndVxYOH525sUDC6u2gWxcNzBNRxPanyh3ktKinOgy3WoxPbtUM0t6RkbQnzBnFPgi9GCOEubY9UffIryz9iKRe8s/FUfEWosJJGxagp85bpUO3VywQ46lOtAWfNxKwa4JXQ+628+bpxYGXXMzp5rXH401VEyXwIdowXFaKWSMFHvMTVmGnc+P3oXV2QOiBCfgex8QtcQCbcQE/H+eoHzrkFo1KM7zVO4jVVj5s6lRiWF7zyXyfRMc97J3tzj87mYqZ7E2YjzUct9GUi4tjHLR8dVkBLjQcuHFleWvQfRNEhFR7uX7pkctOwvZXsft7sAtyldEUIN2UTeLxnEfxKYswzdi88BdbZ8hifUoSMftQvP+muRwN6+Q3DeqqRExP9QmTtcheiHh0Ot1x2i2km1bP9pbufw5zZdyWsOrh7vQae5OZWbsMv30pi7cd/CKj3coPEVaCP4Zhx4eQWhOZ1Y9MTXGyP8/iGjEyfa1T4fO/4Lea9vBoPBYDAYDAaDwWAwGAwGwz8GgF8siXCCbrSRhgAAAABJRU5ErkJggg==" alt="tarteaucitron.io" /></a>'}p+="       </div>";p+="   </div>";p+="</div>";if(tarteaucitron.parameters.orientation==="bottom"){l="Bottom"}if(tarteaucitron.parameters.highPrivacy&&!tarteaucitron.parameters.AcceptAllCta){p+='<div tabindex="-1" id="tarteaucitronAlertBig" class="tarteaucitronAlertBig'+l+'">';p+='   <span id="tarteaucitronDisclaimerAlert">';p+="       "+tarteaucitron.lang.alertBigPrivacy;p+="   </span>";p+='   <button type="button" id="tarteaucitronPersonalize">';p+="       "+tarteaucitron.lang.personalize;p+="   </button>";if(tarteaucitron.parameters.privacyUrl!==""){p+='   <button type="button" id="tarteaucitronPrivacyUrl">';p+="       "+tarteaucitron.lang.privacyUrl;p+="   </button>"}p+="</div>"}else{p+='<div tabindex="-1" id="tarteaucitronAlertBig" class="tarteaucitronAlertBig'+l+'">';p+='   <span id="tarteaucitronDisclaimerAlert">';if(tarteaucitron.parameters.highPrivacy){p+="       "+tarteaucitron.lang.alertBigPrivacy}else{p+="       "+tarteaucitron.lang.alertBigClick+" "+tarteaucitron.lang.alertBig}p+="   </span>";p+='   <button type="button" class="tarteaucitronCTAButton tarteaucitronAllow" id="tarteaucitronPersonalize2">';p+='       <span class="tarteaucitronCheck"></span> '+tarteaucitron.lang.acceptAll;p+="   </button>";if(tarteaucitron.parameters.DenyAllCta){p+='   <button type="button" class="tarteaucitronCTAButton tarteaucitronDeny" id="tarteaucitronAllDenied2">';
921p+='       <span class="tarteaucitronCross"></span> '+tarteaucitron.lang.denyAll;p+="   </button>"}p+='   <button type="button" id="tarteaucitronCloseAlert">';p+="       "+tarteaucitron.lang.personalize;p+="   </button>";if(tarteaucitron.parameters.privacyUrl!==""){p+='   <button type="button" id="tarteaucitronPrivacyUrl">';p+="       "+tarteaucitron.lang.privacyUrl;p+="   </button>"}p+="</div>";p+='<div id="tarteaucitronPercentage"></div>'}if(tarteaucitron.parameters.showIcon===true){p+='<div id="tarteaucitronIcon" class="tarteaucitronIcon'+tarteaucitron.parameters.iconPosition+'">';p+='   <button type="button" id="tarteaucitronManager">';p+='       <img src="'+(tarteaucitron.parameters.iconSrc?tarteaucitron.parameters.iconSrc:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAGA0lEQVRoge1a207bWBRdBtJwLYZhKDMVmlSK1LxNkPo+ZH6g8B6p5AuALwC+APoFoVLeoT8whPeRSt+CZKmZVu3AiIsRlEtCktGyjy8xzuXYhvahS0JJHJ/4rLP3XnuffcAPfGdQ7mM6jRLSAF4BxqsbewB2lRS2o35mpEQaJcwCyANIdLi1DGBNSWEzqmdHRqRRwjqAJclhtExOSUEP+/xIiDRKhhUWfL7ShTtBuJnqcw+/z4Ql0xNmMEwSSz4ku
921NIzSgpjSsqYJP/GeE185wYJroedRyiLNEpGLLzzrHSuk+83SgbxvOcyyRaDziWsRVZkSRDinpzPbwVGWIucuohsKynMS47fAQyls/BMSRmKJo3AFhG5wm2N1wF+Zs3zebbFfR0RxrXcJHQlgH+LMW616pR/WiIMEXfW3mtzXyeEGWsjKot8c4TOI98L+iKaR5PS6IUk88RLAO9F8UjrbYoYMOosNavpfmODIiwRXRR/G3ohaWVo1RU/c30jV8ab2mV8qVGzHWBOLyTLZiWs5Rolg/C3ySOi0tXP/k4aEwOwSBKPJs7Rp16ABJTe+p1xVX0It/owqqdDEMRoqd3RFxqDPh20Ig6VEPVC0i5RSCD+6wl6HlW7GksSlUMV11/GrUs5NasFLusDE9ELSVphXemtJwaT/8JyIRvxNNCfBmIiNdR04LII3DSrbe0yjqvyJF/ppptqVlt+MCLCEh/oOkPPP6N38Mb5cnQBGFsEqmXg5j3QMwoMzwGnr4HYbybBq13gZAOom/FO63zdf2qQArCsZrUN2TlJy69eSDKYV+6Q4MpP75ivHzPA53ngaBW4eGuSOt0A/lsGPmXMz0+3TFJcTfFbPfFbfnwlhON+iQhlWmA82CQ4ocQ7c6KcfL3DHuls0yT6Sx4YnLXJDCQOIRRv5yGIJBgP8Sdisj2qubpc5UGJmo+W49ifVmzL8HcpGhQPvZCUKiCliIhEN0tr2OCqHuSA8gwQ/92MkU7gxEmeVqGrTTgpxPXbUrtGWYus0I9thRIraagRQUIDf7Qn4yZhKRiFQIyhfMfUr3yblokVWSJ6k8xSnc7eNN/RjowfCYiFoDUFer1S3gW6JiJ8Nt30EMbEhU+vzSIztuRYjRLsR8IHLjlf7HZ+MrWWEXxNmbvapt4jGSqZRYSkGUetSNTPzHsui5YMQ2ajJUNks6mw4wT54Ok2ShnzzIPCUGshzawCRKy5FqvrTZe0RWzQGvw79m67XZjKmxJrLsICjtZa55gxXy+6F4sYsEtxTqhXdRTLC8ulSDaWoCLsolfN+8YUhOsJV709H7Cudr0LlVEtzqBcN+shEyThdR941OnAbF8pirKJqXyupTRTtQSReiVmXW1j7oBErB0d9xM2WEd5J9ZKYtuR4WKwwBSoORbpGrJ5ZI9lt71irJmGX1px0JYE26uNErawr2zfIcP4OHEKXm66PA3wjpCNEfpJunI4muifPjKvsFCkGjExTq63yxMJsZNMYF/J4HmDC5A3Yq36jy0ClePHVhwuu/b1HSFlEfHD5ZtD1bEK44Qu1mWys6tbWmZyPWckzlPTGiRw/XHCuk+q4Rek+mVrVL/UppwrdDEGNV2kpyuhccgc5Oxm9vWnn+19vJrVpLor0kTUrGacMplb1CfOFyTD4o9uNrHqr2Z+ZMSp1c2XcVSORnh9Q81q3k599ETgkNnjg0nGzi10K7rX+bZpHbrblPcY5A4Zxk2xcjzCvTpd9027Aa0QtouyyrKFRR6D/04DwkFGvHPXM3Qda/Jb4nPgI7hQLVM1q5HIBt2MzQNa57Z1DiiLAGa5Mi+O4Sz3Mpp6laPHO6InII3ITnX1QtI+EOX+m9ZxleOZ/j9PiuKoLi3aqXPuEoSye/Vhkm+LalbLtHhMS0R6zu7aZ3vP2jOjL7QVv4McxhcDnZIelAQibGIbULOapf3PuE1Vs9qeaOTdkVKr00gCQiw4NlBzDvf1Lxx+uP5r3Dgv5KQZRzWn+GRwz8jmDS8itUg7iB6vLuJCF5Uty4A9mVKkFR6MiJDachST/oHvHgD+B4SoUIitpF05AAAAAElFTkSuQmCC")+'" alt="'+tarteaucitron.lang.icon+'" title="'+tarteaucitron.lang.icon+'">';p+="   </button>";p+="</div>"}if(tarteaucitron.parameters.showAlertSmall===true){p+='<div id="tarteaucitronAlertSmall" class="tarteaucitronAlertSmall'+l+'">';p+='   <button type="button" id="tarteaucitronManager">';p+="       "+tarteaucitron.lang.alertSmall;p+='       <span id="tarteaucitronDot">';p+='           <span id="tarteaucitronDotGreen"></span>';p+='           <span id="tarteaucitronDotYellow"></span>';p+='           <span id="tarteaucitronDotRed"></span>';p+="       </span>";if(tarteaucitron.parameters.cookieslist===true){p+="   </button><!-- @whitespace";p+='   --><button type="button" id="tarteaucitronCookiesNumber">0</button>';p+='   <div id="tarteaucitronCookiesListContainer">';p+='       <button type="button" id="tarteaucitronClosePanelCookie">';p+="           "+tarteaucitron.lang.close;p+="       </button>";p+='       <div class="tarteaucitronCookiesListMain" id="tarteaucitronCookiesTitle">';p+='            <span class="tarteaucitronH2" role="heading" aria-level="2" id="tarteaucitronCookiesNumberBis">0 cookie</span>';p+="       </div>";p+='       <div id="tarteaucitronCookiesList"></div>';p+="    </div>"}else{p+="   </div>"}p+="</div>"}tarteaucitron.addInternalScript(tarteaucitron.cdn+"advertising"+(a?".min":"")+".js?v="+tarteaucitron.version,"",function(){if(tarteaucitronNoAdBlocker===true||tarteaucitron.parameters.adblocker===false){k.id="tarteaucitronRoot";if(tarteaucitron.parameters.bodyPosition==="top"){var w=q.firstChild;q.insertBefore(k,w)}else{q.appendChild(k,q)}k.innerHTML=p;var x;if(typeof(Event)==="function"){x=new Event("tac.root_available")}else{x=document.createEvent("Event");x.initEvent("tac.root_available",true,true)}window.dispatchEvent(x);if(tarteaucitron.job!==undefined){tarteaucitron.job=tarteaucitron.cleanArray(tarteaucitron.job);for(r=0;r<tarteaucitron.job.length;r+=1){tarteaucitron.addService(tarteaucitron.job[r])}}else{tarteaucitron.job=[]}if(tarteaucitron.job.length===0){tarteaucitron.userInterface.closeAlert()}tarteaucitron.isAjax=true;tarteaucitron.job.push=function(y){if(typeof tarteaucitron.job.indexOf==="undefined"){tarteaucitron.job.indexOf=function(B,C){var A,z=this.length;for(A=(C||0);A<z;A+=1){if(this[A]===B){return A}}return -1}}if(tarteaucitron.job.indexOf(y)===-1){Array.prototype.push.call(this,y)}
921tarteaucitron.launch[y]=false;tarteaucitron.addService(y)};if(document.location.hash===tarteaucitron.hashtag&&tarteaucitron.hashtag!==""){tarteaucitron.userInterface.openPanel()}tarteaucitron.cookie.number();setInterval(tarteaucitron.cookie.number,60000)}},tarteaucitron.parameters.adblocker);if(tarteaucitron.parameters.adblocker===true){setTimeout(function(){if(tarteaucitronNoAdBlocker===false){p='<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig'+l+' tarteaucitron-display-block" role="alert" aria-live="polite">';p+='   <p id="tarteaucitronDisclaimerAlert">';p+="       "+tarteaucitron.lang.adblock+"<br/>";p+="       <strong>"+tarteaucitron.lang.adblock_call+"</strong>";p+="   </p>";p+='   <button type="button" class="tarteaucitronCTAButton" id="tarteaucitronCTAButton">';p+="       "+tarteaucitron.lang.reload;p+="   </button>";p+="</div>";p+='<div id="tarteaucitronPremium"></div>';k.id="tarteaucitronRoot";if(tarteaucitron.parameters.bodyPosition==="top"){var w=q.firstChild;q.insertBefore(k,w)}else{q.appendChild(k,q)}k.innerHTML=p}},1500)}if(tarteaucitron.parameters.closePopup===true){setTimeout(function(){var w=document.getElementById("tarteaucitronAlertBig"),x=document.createElement("span");if(w){x.textContent="X";x.setAttribute("id","tarteaucitronCloseCross");w.insertBefore(x,w.firstElementChild)}},100)}if(tarteaucitron.parameters.groupServices===true){var m=document.createElement("style");m.innerHTML=".tarteaucitronTitle{display:none}";document.head.appendChild(m);var u=document.querySelectorAll('[id^="tarteaucitronServicesTitle_"]');Array.prototype.forEach.call(u,function(z){var w=z.getAttribute("id").replace(/^(tarteaucitronServicesTitle_)/,"");if(w!=="mandatory"){var y="";y+='<li  class="tarteaucitronLine">';y+='   <div class="tarteaucitronName">';y+='       <span class="tarteaucitronH3" role="heading" aria-level="3">'+tarteaucitron.lang[w].title+"</span>";y+="       <span>"+tarteaucitron.lang[w].details+"</span>";y+='   <button type="button" class="tarteaucitron-toggle-group" id="tarteaucitron-toggle-group-'+w+'">'+tarteaucitron.lang.alertSmall+" ("+document.getElementById("tarteaucitronServices_"+w).childElementCount+")</button>";y+="   </div>";y+='   <div class="tarteaucitronAsk" id="tarteaucitron-group-'+w+'">';y+='       <button type="button"  class="tarteaucitronAllow" id="tarteaucitron-accept-group-'+w+'">';y+='           <span class="tarteaucitronCheck"></span> '+tarteaucitron.lang.allow;y+="       </button> ";y+='       <button type="button"  class="tarteaucitronDeny" id="tarteaucitron-reject-group-'+w+'">';y+='           <span class="tarteaucitronCross"></span> '+tarteaucitron.lang.deny;y+="       </button>";y+="   </div>";y+="</li>";var x=document.createElement("ul");x.innerHTML=y;z.insertBefore(x,z.querySelector("#tarteaucitronServices_"+w+""));document.querySelector("#tarteaucitronServices_"+w).style.display="none";tarteaucitron.addClickEventToId("tarteaucitron-toggle-group-"+w,function(){tarteaucitron.userInterface.toggle("tarteaucitronServices_"+w);if(document.getElementById("tarteaucitronServices_"+w).style.display=="block"){tarteaucitron.userInterface.addClass("tarteaucitronServicesTitle_"+w,"tarteaucitronIsExpanded")}else{tarteaucitron.userInterface.removeClass("tarteaucitronServicesTitle_"+w,"tarteaucitronIsExpanded")}});tarteaucitron.addClickEventToId("tarteaucitron-accept-group-"+w,function(){tarteaucitron.userInterface.respondAll(true,w)});tarteaucitron.addClickEventToId("tarteaucitron-reject-group-"+w,function(){tarteaucitron.userInterface.respondAll(false,w)})}})}tarteaucitron.userInterface.color("",true);setTimeout(function(){tarteaucitron.addClickEventToId("tarteaucitronCloseCross",function(){tarteaucitron.userInterface.closeAlert()});tarteaucitron.addClickEventToId("tarteaucitronPersonalize",function(){tarteaucitron.userInterface.openPanel
921()});tarteaucitron.addClickEventToId("tarteaucitronPersonalize2",function(){tarteaucitron.userInterface.respondAll(true)});tarteaucitron.addClickEventToId("tarteaucitronManager",function(){tarteaucitron.userInterface.openPanel()});tarteaucitron.addClickEventToId("tarteaucitronBack",function(){tarteaucitron.userInterface.closePanel()});tarteaucitron.addClickEventToId("tarteaucitronClosePanel",function(){tarteaucitron.userInterface.closePanel()});tarteaucitron.addClickEventToId("tarteaucitronClosePanelCookie",function(){tarteaucitron.userInterface.closePanel()});tarteaucitron.addClickEventToId("tarteaucitronPrivacyUrl",function(){document.location=tarteaucitron.parameters.privacyUrl});tarteaucitron.addClickEventToId("tarteaucitronPrivacyUrlDialog",function(){document.location=tarteaucitron.parameters.privacyUrl});tarteaucitron.addClickEventToId("tarteaucitronCookiesNumber",function(){tarteaucitron.userInterface.toggleCookiesList()});tarteaucitron.addClickEventToId("tarteaucitronAllAllowed",function(){tarteaucitron.userInterface.respondAll(true)});tarteaucitron.addClickEventToId("tarteaucitronAllDenied",function(){tarteaucitron.userInterface.respondAll(false)});tarteaucitron.addClickEventToId("tarteaucitronAllDenied2",function(){tarteaucitron.userInterface.respondAll(false,"",true);if(tarteaucitron.reloadThePage===true){window.location.reload()}});tarteaucitron.addClickEventToId("tarteaucitronCloseAlert",function(){tarteaucitron.userInterface.openPanel
921()});tarteaucitron.addClickEventToId("tarteaucitronCTAButton",function(){location.reload()});var z=document.getElementsByClassName("catToggleBtn"),y;for(y=0;y<z.length;y++){z[y].dataset.index=y;tarteaucitron.addClickEventToElement(z[y],function(){tarteaucitron.userInterface.toggle("tarteaucitronDetails"+s[this.dataset.index],"tarteaucitronInfoBox");return false})}var x=document.getElementsByClassName("tarteaucitronAllow");for(y=0;y<x.length;y++){tarteaucitron.addClickEventToElement(x[y],function(){tarteaucitron.userInterface.respond(this,true)})}var w=document.getElementsByClassName("tarteaucitronDeny");for(y=0;y<w.length;y++){tarteaucitron.addClickEventToElement(w[y],function(){tarteaucitron.userInterface.respond(this,false)})}if(tarteaucitron.events.load){tarteaucitron.events.load()}},500)})})},addService:function(n){var g="",p=tarteaucitron.services,j=p[n],b=tarteaucitron.cookie.read(),m=document.location.hostname,h=document.referrer.split("/")[2],i=(h===m&&window.location.href!==tarteaucitron.parameters.privacyUrl),a=(!j.needConsent),f=(b.indexOf(j.key+"=wait")>=0),c=(b.indexOf(j.key+"=false")>=0),d=((b.indexOf(j.key+"=true")>=0)||(!j.needConsent&&b.indexOf(j.key+"=false")<0)),l=(b.indexOf(j.key+"=false")>=0||b.indexOf(j.key+"=true")>=0),e=(navigator.doNotTrack==="1"||navigator.doNotTrack==="yes"||navigator.msDoNotTrack==="1"||window.doNotTrack==="1"),o=(d)?tarteaucitron.lang.allowed:tarteaucitron.lang.disallowed;if(tarteaucitron.added[j.key]!==true){tarteaucitron.added[j.key]=true;g+='<li id="'+j.key+'Line" class="tarteaucitronLine">';g+='   <div class="tarteaucitronName">';g+='       <span class="tarteaucitronH3" role="heading" aria-level="3">'+j.name+' (<span id="tacCurrentStatus'+j.key+'">'+o+"</span>)</span>";g+='       <span id="tacCL'+j.key+'" class="tarteaucitronListCookies"></span><br/>';if(tarteaucitron.parameters.moreInfoLink==true){var k="https://tarteaucitron.io/service/"+j.key+"/";if(j.readmoreLink!==undefined&&j.readmoreLink!==""){k=j.readmoreLink}if(tarteaucitron.parameters.readmoreLink!==undefined&&tarteaucitron.parameters.readmoreLink!==""){k=tarteaucitron.parameters.readmoreLink}g+='       <a href="'+k+'" target="_blank" rel="noreferrer noopener nofollow" title="'+tarteaucitron.lang.cookieDetail+" "+j.name+" "+tarteaucitron.lang.ourSite+" "+tarteaucitron.lang.newWindow+'" class="tarteaucitronReadmoreInfo">';g+="           "+tarteaucitron.lang.more;g+="       </a>";g+='       <span class="tarteaucitronReadmoreSeparator"> - </span>';g+='       <a href="'+j.uri+'" target="_blank" rel="noreferrer noopener" title="'+j.name+" "+tarteaucitron.lang.newWindow+'" class="tarteaucitronReadmoreOfficial">';g+="           "+tarteaucitron.lang.source;g+="       </a>"}g+="   </div>";g+='   <div class="tarteaucitronAsk">';g+='       <button type="button" id="'+j.key+'Allowed" class="tarteaucitronAllow">';g+='           <span class="tarteaucitronCheck"></span> '+tarteaucitron.lang.allow;g+="       </button> ";g+='       <button type="button" id="'+j.key+'Denied" class="tarteaucitronDeny">';g+='           <span class="tarteaucitronCross"></span> '+tarteaucitron.lang.deny;g+="       </button>";g+="   </div>";g+="</li>";tarteaucitron.userInterface.css("tarteaucitronServicesTitle_"+j.type,"display","block");if(document.getElementById("tarteaucitronServices_"+j.type)!==null){document.getElementById("tarteaucitronServices_"+j.type).innerHTML+=g}tarteaucitron.userInterface.css("tarteaucitronNoServicesTitle","display","none");tarteaucitron.userInterface.order(j.type);tarteaucitron.addClickEventToId(j.key+"Allowed",function(){tarteaucitron.userInterface.respond(this,true)});tarteaucitron.addClickEventToId(j.key+"Denied",function(){tarteaucitron.userInterface.respond(this,false)})}tarteaucitron.pro("!"+j.key+"="+d);if(l===false&&tarteaucitron.user.bypass===true){d=true;tarteaucitron.cookie.create(j.key,true)}if((!l&&(a||(i&&f))&&!tarteaucitron.highPrivacy)||d){if(!d||(!j.needConsent&&b.indexOf(j.key+"=false")<0)){tarteaucitron.cookie.create(j.key,true)}if(tarteaucitron.launch[j.key]!==true){tarteaucitron.launch[j.key]=true;if(typeof tarteaucitronMagic==="undefined"||tarteaucitronMagic.indexOf("_"+j.key+"_")<0){j.js()}tarteaucitron.sendEvent(j.key+"_loaded")}tarteaucitron.state[j.key]=true;tarteaucitron.userInterface.color(j.key,true)}else{if(c){if(typeof j.fallback==="function"){if(typeof tarteaucitronMagic==="undefined"||tarteaucitronMagic.indexOf("_"+j.key+"_")<0){j.fallback()}}tarteaucitron.state[j.key]=false;tarteaucitron.userInterface.color(j.key,false)}else{if(!l&&e&&tarteaucitron.handleBrowserDNTRequest){tarteaucitron.cookie.create(j.key,"false");if(typeof j.fallback==="function"){if(typeof tarteaucitronMagic==="undefined"||tarteaucitronMagic.indexOf("_"+j.key+"_")<0){j.fallback()}}tarteaucitron.state[j.key]=false;tarteaucitron.userInterface.color(j.key,false)}else{if(!l){tarteaucitron.cookie.create(j.key,"wait");if(typeof j.fallback==="function"){if(typeof tarteaucitronMagic==="undefined"||tarteaucitronMagic.indexOf("_"+j.key+"_")<0){j.fallback()}}tarteaucitron.userInterface.color(j.key,"wait");tarteaucitron.userInterface.openAlert()}}}}tarteaucitron.cookie.checkCount(j.key);tarteaucitron.sendEvent(j.key+"_added")},sendEvent:function(b){if(b!==undefined){var a;if(typeof(Event)==="function"){a=new Event(b)}else{a=document.createEvent("Event");a.initEvent(b,true,true)}document.dispatchEvent(a)}},cleanArray:function cleanArray(b){var d,a=b.length,c=[],f={},e=tarteaucitron.services;for(d=0;d<a;d+=1){if(!f[b[d]]){f[b[d]]={};if(tarteaucitron.services[b[d]]!==undefined){c.push(b[d])}}}c=c.sort(function(h,g){if(e[h].type+e[h].key>e[g].type+e[g].key){return 1}if(e[h].type+e[h].key<e[g].type+e[g].key){return -1}return 0});return c},userInterface:{css:function(c,b,a){if(document.getElementById(c)!==null){if(b=="display"&&a=="none"&&(c=="tarteaucitron"||c=="tarteaucitronBack"||c=="tarteaucitronAlertBig")){document.getElementById(c).style.opacity="0";setTimeout(function(){document.getElementById(c).style[b]=a},200)}else{document.getElementById(c).style[b]=a;if(b=="display"&&a=="block"&&(c=="tarteaucitron"||c=="tarteaucitronAlertBig")){document.getElementById(c).style.opacity="0";setTimeout(function(){document.getElementById(c).style.opacity="1"},1)}if(b=="display"&&a=="block"&&c=="tarteaucitronBack"){document.getElementById(c).style.opacity="0";setTimeout(function(){document.getElementById(c).style.opacity="0.7"},1)}}}},addClass:function(b,a){if(document.getElementById(b)!==null){document.getElementById(b).classList.add(a)}},removeClass:function(b,a){if(document.getElementById(b)!==null){document.getElementById(b).classList.remove(a)}},respondAll:function(c,h,b){var g=tarteaucitron.services,a,f,e=0;for(e=0;e<tarteaucitron.job.length;e+=1){if(typeof h!=="undefined"&&h!==""&&g[tarteaucitron.job[e]].type!==h){continue}if(b&&typeof g[tarteaucitron.job[e]].safeanalytic!=="undefined"&&g[tarteaucitron.job[e]].safeanalytic===true){continue}a=g[tarteaucitron.job[e]];f=a.key;
921if(tarteaucitron.state[f]!==c){if(c===false&&tarteaucitron.launch[f]===true){tarteaucitron.reloadThePage=true}if(tarteaucitron.launch[f]!==true&&c===true){tarteaucitron.pro("!"+f+"=engage");tarteaucitron.launch[f]=true;if(typeof tarteaucitronMagic==="undefined"||tarteaucitronMagic.indexOf("_"+f+"_")<0){tarteaucitron.services[f].js()}tarteaucitron.sendEvent(f+"_loaded")}var d=document.getElementById("tacCurrentStatus"+f);if(c==true){d.innerHTML=tarteaucitron.lang.allowed}else{d.innerHTML=tarteaucitron.lang.disallowed}tarteaucitron.state[f]=c;tarteaucitron.cookie.create(f,c);tarteaucitron.userInterface.color(f,c)}}},respond:function(d,a){if(d.id===""){return}var c=d.id.replace(new RegExp("(Eng[0-9]+|Allow|Deni)ed","g"),"");if(c.substring(0,13)==="tarteaucitron"||c===""){return}if(tarteaucitron.state[c]===a){return}if(a===false&&tarteaucitron.launch[c]===true){tarteaucitron.reloadThePage=true}if(a===true){if(tarteaucitron.launch[c]!==true){tarteaucitron.pro("!"+c+"=engage");tarteaucitron.launch[c]=true;tarteaucitron.sendEvent(c+"_loaded");if(typeof tarteaucitronMagic==="undefined"||tarteaucitronMagic.indexOf("_"+c+"_")<0){tarteaucitron.services[c].js()}}}var b=document.getElementById("tacCurrentStatus"+c);if(a==true){b.innerHTML=tarteaucitron.lang.allowed}else{b.innerHTML=tarteaucitron.lang.disallowed}tarteaucitron.state[c]=a;tarteaucitron.cookie.create(c,a);tarteaucitron.userInterface.color(c,a)},color:function(j,b){var g="tarteaucitron",a=0,h=0,d=0,e=tarteaucitron.job.length,f,l=tarteaucitron.services;if(j!==""){if(b===true){document.getElementById(j+"Line").classList.add("tarteaucitronIsAllowed");document.getElementById(j+"Line").classList.remove("tarteaucitronIsDenied")}else{if(b===false){document.getElementById(j+"Line").classList.remove("tarteaucitronIsAllowed");document.getElementById(j+"Line").classList.add("tarteaucitronIsDenied")}}var i=0;for(f=0;f<e;f+=1){if(typeof l[tarteaucitron.job[f]].safeanalytic!=="undefined"&&l[tarteaucitron.job[f]].safeanalytic===true){i+=1;continue}if(tarteaucitron.state[tarteaucitron.job[f]]===false){a+=1}else{if(tarteaucitron.state[tarteaucitron.job[f]]===undefined){h+=1}else{if(tarteaucitron.state[tarteaucitron.job[f]]===true){d+=1}}}}e-=i;tarteaucitron.userInterface.css(g+"DotGreen","width",((100/e)*d)+"%");tarteaucitron.userInterface.css(g+"DotYellow","width",((100/e)*h)+"%");tarteaucitron.userInterface.css(g+"DotRed","width",((100/e)*a)+"%");if(a===0&&h===0){tarteaucitron.userInterface.removeClass(g+"AllDenied",g+"IsSelected");tarteaucitron.userInterface.addClass(g+"AllAllowed",g+"IsSelected");tarteaucitron.userInterface.addClass(g+"MainLineOffset",g+"IsAllowed");tarteaucitron.userInterface.removeClass(g+"MainLineOffset",g+"IsDenied")}else{if(d===0&&h===0){tarteaucitron.userInterface.removeClass(g+"AllAllowed",g+"IsSelected");tarteaucitron.userInterface.addClass(g+"AllDenied",g+"IsSelected");tarteaucitron.userInterface.removeClass(g+"MainLineOffset",g+"IsAllowed");tarteaucitron.userInterface.addClass(g+"MainLineOffset",g+"IsDenied")}else{tarteaucitron.userInterface.removeClass(g+"AllAllowed",g+"IsSelected");tarteaucitron.userInterface.removeClass(g+"AllDenied",g+"IsSelected");tarteaucitron.userInterface.removeClass(g+"MainLineOffset",g+"IsAllowed");tarteaucitron.userInterface.removeClass(g+"MainLineOffset",g+"IsDenied")}}if(h===0){tarteaucitron.userInterface.closeAlert()}if(tarteaucitron.services[j].cookies.length>0&&b===false){tarteaucitron.cookie.purge(tarteaucitron.services[j].cookies)}if(b===true){if(document.getElementById("tacCL"+j)!==null){document.getElementById("tacCL"+j).innerHTML="..."}setTimeout(function(){tarteaucitron.cookie.checkCount(j)},2500)}else{tarteaucitron.cookie.checkCount(j)}}var k=document.querySelectorAll('[id^="tarteaucitronServicesTitle_"]');Array.prototype.forEach.call(k,function(p){var m=p.getAttribute("id").replace(/^(tarteaucitronServicesTitle_)/,""),o=document.getElementById("tarteaucitronServices_"+m).childElementCount;var r=document.getElementById("tarteaucitronServices_"+m),q=0,c=0;for(var n=0;n<r.children.length;n++){if(r.children[n].className=="tarteaucitronLine tarteaucitronIsDenied"){q++}if(r.children[n].className=="tarteaucitronLine tarteaucitronIsAllowed"){c++}}if(o===c){tarteaucitron.userInterface.removeClass("tarteaucitron-group-"+m,"tarteaucitronIsDenied");tarteaucitron.userInterface.addClass("tarteaucitron-group-"+m,"tarteaucitronIsAllowed")}if(o===q){tarteaucitron.userInterface.addClass("tarteaucitron-group-"+m,"tarteaucitronIsDenied");tarteaucitron.userInterface.removeClass("tarteaucitron-group-"+m,"tarteaucitronIsAllowed")}if(o!==q&&o!==c){tarteaucitron.userInterface.removeClass("tarteaucitron-group-"+m,"tarteaucitronIsDenied");tarteaucitron.userInterface.removeClass("tarteaucitron-group-"+m,"tarteaucitronIsAllowed")}q=0;c=0})},openPanel:function(){tarteaucitron.userInterface.css("tarteaucitron","display","block");tarteaucitron.userInterface.css("tarteaucitronBack","display","block");tarteaucitron.userInterface.css("tarteaucitronCookiesListContainer","display","none");document.getElementById("tarteaucitronClosePanel").focus();document.getElementsByTagName("body")[0].classList.add("tarteaucitron-modal-open");tarteaucitron.userInterface.focusTrap();tarteaucitron.userInterface.jsSizing("main");var a;if(typeof(Event)==="function"){a=new Event("tac.open_panel")}else{a=document.createEvent("Event");a.initEvent("tac.open_panel",true,true)}window.dispatchEvent(a)},closePanel:function(){if(document.location.hash===tarteaucitron.hashtag){if(window.history){window.history.replaceState("",document.title,window.location.pathname+window.location.search)}else{document.location.hash=""}}tarteaucitron.userInterface.css("tarteaucitron","display","none");tarteaucitron.userInterface.css("tarteaucitronCookiesListContainer","display","none");tarteaucitron.fallback(["tarteaucitronInfoBox"],function(b){b.style.display="none"},true);if(tarteaucitron.reloadThePage===true){window.location.reload()}else{tarteaucitron.userInterface.css("tarteaucitronBack","display","none")}if(document.getElementById("tarteaucitronCloseAlert")!==null){document.getElementById("tarteaucitronCloseAlert").focus()}document.getElementsByTagName("body")[0].classList.remove("tarteaucitron-modal-open");var a;if(typeof(Event)==="function"){a=new Event("tac.close_panel")}else{a=document.createEvent("Event");a.initEvent("tac.close_panel",true,true)}window.dispatchEvent(a)},focusTrap:function(){var e,f,d,b;e=document.getElementById("tarteaucitron").querySelectorAll("a[href], button");b=[];for(var c=0,a=e.length;c<a;c++){if(e[c].offsetHeight>0){b.push(e[c])}}f=b[0];d=b[b.length-1];document.getElementById("tarteaucitron").addEventListener("keydown",function(g){if(g.key==="Tab"||g.keyCode===9){if(g.shiftKey){if(document.activeElement===f){d.focus();g.preventDefault()}}else{if(document.activeElement===d){f.focus();g.preventDefault()}}}})},openAlert:function(){var b="tarteaucitron";tarteaucitron.userInterface.css(b+"Percentage","display","block");tarteaucitron.userInterface.css(b+"AlertSmall","display","none");tarteaucitron.userInterface.css(b+"Icon","display","none");tarteaucitron.userInterface.css(b+"AlertBig","display","block");tarteaucitron.userInterface.addClass(b+"Root","tarteaucitronBeforeVisible");var a;if(typeof(Event)==="function"){a=new Event("tac.open_alert")}else{a=document.createEvent("Event");a.initEvent("tac.open_alert",true,true)}if(document.getElementById("tarteaucitronAlertBig")!==null){document.getElementById("tarteaucitronAlertBig").focus()}window.dispatchEvent(a)},closeAlert:function(){var b="tarteaucitron";tarteaucitron.userInterface.css(b+"Percentage","display","none");tarteaucitron.userInterface.css(b+"AlertSmall","display","block");tarteaucitron.userInterface.css(b+"Icon","display","block");tarteaucitron.userInterface.css(b+"AlertBig","display","none");tarteaucitron.userInterface.removeClass(b+"Root","tarteaucitronBeforeVisible");tarteaucitron.userInterface.jsSizing("box");var a;if(typeof(Event)==="function"){a=new Event("tac.close_alert")}else{a=document.createEvent("Event");a.initEvent("tac.close_alert",true,true)}window.dispatchEvent(a)},toggleCookiesList:function(){var a=document.getElementById("tarteaucitronCookiesListContainer");if(a===null){return}if(a.style.display!=="block"){tarteaucitron.cookie.number();a.style.display="block";tarteaucitron.userInterface.jsSizing("cookie");tarteaucitron.userInterface.css("tarteaucitron","display","none");tarteaucitron.userInterface.css("tarteaucitronBack","display","block");tarteaucitron.fallback(["tarteaucitronInfoBox"],function(b){b.style.display="none"},true)}else{a.style.display="none";tarteaucitron.userInterface.css("tarteaucitron","display","none");tarteaucitron.userInterface.css("tarteaucitronBack","display","none")}},toggle:function(c,a){var b=document.getElementById(c);if(b===null){return}if(a!==undefined){tarteaucitron.fallback([a],function(d){if(d.id!==c){d.style.display="none"}},true)}if(b.style.display!=="block"){b.style.display="block"}else{b.style.display="none"}},order:function(e){var a=document.getElementById("tarteaucitronServices_"+e),d,b=[],c;if(a===null){return}d=a.childNodes;if(typeof Array.prototype.map==="function"&&typeof Enumerable==="undefined"){Array.prototype.map.call(a.children,Object).sort(function(g,f){if(tarteaucitron.services[g.id.replace(/Line/g,"")].name>tarteaucitron.services[f.id.replace(/Line/g,"")].name){return 1}if(tarteaucitron.services[g.id.replace(/Line/g,"")].name<tarteaucitron.services[f.id.replace(/Line/g,"")].name){return -1}return 0}
921).forEach(function(f){a.appendChild(f)})}},jsSizing:function(g){var b=10,h,q,r,p=window,s="inner",l=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,j,k,f,o,i,m,t,n,d,c;if(g==="box"){if(document.getElementById("tarteaucitronAlertSmall")!==null&&document.getElementById("tarteaucitronCookiesNumber")!==null){tarteaucitron.userInterface.css("tarteaucitronCookiesNumber","padding","0px 10px");d=document.getElementById("tarteaucitronAlertSmall").offsetHeight;c=document.getElementById("tarteaucitronCookiesNumber").offsetHeight;n=(d-c)/2;tarteaucitron.userInterface.css("tarteaucitronCookiesNumber","padding",n+"px 10px")}}else{if(g==="main"){if(window.innerWidth===undefined){s="client";p=document.documentElement||document.body}if(document.getElementById("tarteaucitron")!==null&&document.getElementById("tarteaucitronClosePanel")!==null&&document.getElementById("tarteaucitronMainLineOffset")!==null){tarteaucitron.userInterface.css("tarteaucitronServices","height","auto");k=document.getElementById("tarteaucitron").offsetHeight;f=document.getElementById("tarteaucitronClosePanel").offsetHeight;r=(k-f+2);tarteaucitron.userInterface.css("tarteaucitronServices","height",r+"px");tarteaucitron.userInterface.css("tarteaucitronServices","overflow-x","auto")}if(document.getElementById("tarteaucitronServices")!==null&&document.getElementById("tarteaucitronScrollbarChild")!==null){if(p[s+"Width"]<=479){}else{if(p[s+"Width"]<=767){b=12}}h=document.getElementById("tarteaucitronServices").offsetWidth;q=document.getElementById("tarteaucitronScrollbarChild").offsetWidth}if(document.getElementById("tarteaucitron")!==null){if(p[s+"Width"]<=767){j=0}else{j=((l-document.getElementById("tarteaucitron").offsetHeight)/2)-21}if(document.getElementById("tarteaucitronMainLineOffset")!==null){if(document.getElementById("tarteaucitron").offsetHeight<(l/2)){j-=document.getElementById("tarteaucitronMainLineOffset").offsetHeight}}if(j<0){j=0}tarteaucitron.userInterface.css("tarteaucitron","top",j+"px")}}else{if(g==="cookie"){if(document.getElementById("tarteaucitronAlertSmall")!==null){tarteaucitron.userInterface.css("tarteaucitronCookiesListContainer","bottom",(document.getElementById("tarteaucitronAlertSmall").offsetHeight)+"px")}if(document.getElementById("tarteaucitronCookiesListContainer")!==null){tarteaucitron.userInterface.css("tarteaucitronCookiesList","height","auto");i=document.getElementById("tarteaucitronCookiesListContainer").offsetHeight;m=document.getElementById("tarteaucitronClosePanelCookie").offsetHeight;t=document.getElementById("tarteaucitronCookiesTitle").offsetHeight;tarteaucitron.userInterface.css("tarteaucitronCookiesList","height",(i-m-t-2)+"px")}}}}}},cookie:{owner:{},create:function(k,g){if(tarteaucitronForceExpire!==""){if((tarteaucitronExpireInDay&&tarteaucitronForceExpire<365)||(!tarteaucitronExpireInDay&&tarteaucitronForceExpire<8760)){if(tarteaucitronExpireInDay){timeExpire=tarteaucitronForceExpire*86400000}else{timeExpire=tarteaucitronForceExpire*3600000}}}var h=new Date(),e=h.getTime(),b=e+timeExpire,i=new RegExp("!"+k+"=(wait|true|false)","g"),c=tarteaucitron.cookie.read().replace(i,""),j=tarteaucitron.parameters.cookieName+"="+c+"!"+k+"="+g,f=(tarteaucitron.parameters.cookieDomain!==undefined&&tarteaucitron.parameters.cookieDomain!=="")?"; domain="+tarteaucitron.parameters.cookieDomain:"",a=location.protocol==="https:"?"; Secure":"";h.setTime(b);document.cookie=j+"; expires="+h.toGMTString()+"; path=/"+f+a+"; samesite=lax"},read:function(){var d=tarteaucitron.parameters.cookieName+"=",a=document.cookie.split(";"),b,e;for(b=0;b<a.length;b+=1){e=a[b];while(e.charAt(0)===" "){e=e.substring(1,e.length)}if(e.indexOf(d)===0){return e.substring(d.length,e.length)}}return""},purge:function(a){var b;for(b=0;b<a.length;b+=1){document.cookie=a[b]+"=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/;";document.cookie=a[b]+"=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=."+location.hostname+";";document.cookie=a[b]+"=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=."+location.hostname.split(".").slice(-2).join(".")+";"}},checkCount:function(g){var b=tarteaucitron.services[g].cookies,a=b.length,f=0,e="",d,c=document.cookie.indexOf(g+"=true");if(c>=0&&a===0){e+=tarteaucitron.lang.useNoCookie}else{if(c>=0){for(d=0;d<a;d+=1){if(document.cookie.indexOf(b[d]+"=")!==-1){f+=1;if(tarteaucitron.cookie.owner[b[d]]===undefined){tarteaucitron.cookie.owner[b[d]]=[]}if(tarteaucitron.cookie.crossIndexOf(tarteaucitron.cookie.owner[b[d]],tarteaucitron.services[g].name)===false){tarteaucitron.cookie.owner[b[d]].push(tarteaucitron.services[g].name)}}}if(f>0){e+=tarteaucitron.lang.useCookieCurrent+" "+f+" cookie";if(f>1){e+="s"}e+="."}else{e+=tarteaucitron.lang.useNoCookie}}else{if(a===0){e=tarteaucitron.lang.noCookie}else{e+=tarteaucitron.lang.useCookie+" "+a+" cookie";if(a>1){e+="s"}e+="."}}}if(document.getElementById("tacCL"+g)!==null){document.getElementById("tacCL"+g).innerHTML=e}},crossIndexOf:function(a,b){var c;for(c=0;c<a.length;c+=1){if(a[c]===b){return true}}return false},number:function(){var o=document.cookie.split(";"),h=(document.cookie!=="")?o.length:0,f="",b,a,g,e,k,j,r=(h>1)?"s":"",m,l=/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i,q=(tarteaucitron.cdn.match(l)!==null)?tarteaucitron.cdn.match(l)[1]:tarteaucitron.cdn,p=(tarteaucitron.domain!==undefined)?tarteaucitron.domain:q;o=o.sort(function(d,c){g=d.split("=",1).toString().replace(/ /g,"");e=c.split("=",1).toString().replace(/ /g,"");
921k=(tarteaucitron.cookie.owner[g]!==undefined)?tarteaucitron.cookie.owner[g]:"0";j=(tarteaucitron.cookie.owner[e]!==undefined)?tarteaucitron.cookie.owner[e]:"0";if(k+d>j+c){return 1}if(k+d<j+c){return -1}return 0});if(document.cookie!==""){for(b=0;b<h;b+=1){a=o[b].split("=",1).toString().replace(/ /g,"");if(tarteaucitron.cookie.owner[a]!==undefined&&tarteaucitron.cookie.owner[a].join(" // ")!==m){m=tarteaucitron.cookie.owner[a].join(" // ");f+='<div class="tarteaucitronHidden">';f+='     <span class="tarteaucitronTitle tarteaucitronH3" role="heading" aria-level="3">';f+="        "+tarteaucitron.cookie.owner[a].join(" // ");f+="    </span>";f+='</div><ul class="cookie-list">'}else{if(tarteaucitron.cookie.owner[a]===undefined&&p!==m){m=p;f+='<div class="tarteaucitronHidden">';f+='     <span class="tarteaucitronTitle tarteaucitronH3" role="heading" aria-level="3">';f+="        "+p;f+="    </span>";f+='</div><ul class="cookie-list">'}}f+='<li class="tarteaucitronCookiesListMain">';f+='    <div class="tarteaucitronCookiesListLeft"><button type="button" class="purgeBtn" data-cookie="'+tarteaucitron.fixSelfXSS(o[b].split("=",1))+'"><strong>&times;</strong></button> <strong>'+tarteaucitron.fixSelfXSS(a)+"</strong>";f+="    </div>";f+='    <div class="tarteaucitronCookiesListRight">'+tarteaucitron.fixSelfXSS(o[b].split("=").slice(1).join("="))+"</div>";f+="</li>"}f+="</ul>"}else{f+='<div class="tarteaucitronCookiesListMain">';f+='    <div class="tarteaucitronCookiesListLeft"><strong>-</strong></div>';f+='    <div class="tarteaucitronCookiesListRight"></div>';f+="</div>"}f+='<div class="tarteaucitronHidden tarteaucitron-spacer-20"></div>';if(document.getElementById("tarteaucitronCookiesList")!==null){document.getElementById("tarteaucitronCookiesList").innerHTML=f}if(document.getElementById("tarteaucitronCookiesNumber")!==null){document.getElementById("tarteaucitronCookiesNumber").innerHTML=h}if(document.getElementById("tarteaucitronCookiesNumberBis")!==null){document.getElementById("tarteaucitronCookiesNumberBis").innerHTML=h+" cookie"+r}var n=document.getElementsByClassName("purgeBtn");for(b=0;b<n.length;b++){tarteaucitron.addClickEventToElement(n[b],function(){tarteaucitron.cookie.purge([this.dataset.cookie]);tarteaucitron.cookie.number();tarteaucitron.userInterface.jsSizing("cookie");return false})}for(b=0;b<tarteaucitron.job.length;b+=1){tarteaucitron.cookie.checkCount(tarteaucitron.job[b])}}},fixSelfXSS:function(a){return a.toString().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},getLanguage:function(){var b="bg,ca,cn,cs,da,de,el,en,es,fi,fr,hu,it,ja,lv,nl,no,oc,pl,pt,ro,ru,se,sk,sv,tr,vi,zh",d="en";if(tarteaucitronForceLanguage!==""){if(b.indexOf(tarteaucitronForceLanguage)!==-1){return tarteaucitronForceLanguage}}if(!navigator){return"en"}var a=navigator.language||navigator.browserLanguage||navigator.systemLanguage||navigator.userLang||null,c=a?a.substr(0,2):null;if(b.indexOf(c)===-1){return d}return c},getLocale:function(){if(!navigator){return"en_US"}var a=navigator.language||navigator.browserLanguage||navigator.systemLanguage||navigator.userLang||null,b=a?a.substr(0,2):null;if(b==="fr"){return"fr_FR"}else{if(b==="en"){return"en_US"}else{if(b==="de"){return"de_DE"}else{if(b==="es"){return"es_ES"}else{if(b==="it"){return"it_IT"}else{if(b==="pt"){return"pt_PT"}else{if(b==="nl"){return"nl_NL"}else{if(b==="el"){return"el_EL"}else{return"en_US"}}}}}}}}},addScript:function(a,b,i,g,f,e,d){var h,c=false;if(g===false){if(typeof i==="function"){i()}}else{h=document.createElement("script");h.id=(b!==undefined)?b:"";h.async=true;h.src=a;if(f!==undefined&&e!==undefined){h.setAttribute(f,e)}if(typeof i==="function"){if(!tarteaucitron.parameters.useExternalJs||!d){h.onreadystatechange=h.onload=function(){var j=h.readyState;if(!c&&(!j||/loaded|complete/.test(j))){c=true;i()}}}else{i()}}if(!tarteaucitron.parameters.useExternalJs||!d){document.getElementsByTagName("head")[0].appendChild(h)}}},addInternalScript:function(b,f,e,d,c,a){tarteaucitron.addScript(b,f,e,d,c,a,true)},makeAsync:{antiGhost:0,buffer:"",init:function(b,d){var c=document.write,a=document.writeln;document.write=function(e){tarteaucitron.makeAsync.buffer+=e};document.writeln=function(e){tarteaucitron.makeAsync.buffer+=e.concat("\n")};setTimeout(function(){document.write=c;document.writeln=a},20000);tarteaucitron.makeAsync.getAndParse(b,d)},getAndParse:function(a,b){if(tarteaucitron.makeAsync.antiGhost>9){tarteaucitron.makeAsync.antiGhost=0;return}tarteaucitron.makeAsync.antiGhost+=1;tarteaucitron.addInternalScript(a,"",function(){if(document.getElementById(b)!==null){document.getElementById(b).innerHTML+="<span class='tarteaucitron-display-none'>&nbsp;</span>"+tarteaucitron.makeAsync.buffer;tarteaucitron.makeAsync.buffer="";tarteaucitron.makeAsync.execJS(b)}})},execJS:function(id){var i,scripts,childId,type;if(document.getElementById(id)===null){return}scripts=document.getElementById(id).getElementsByTagName("script");for(i=0;i<scripts.length;i+=1){type=(scripts[i].getAttribute("type")!==null)?scripts[i].getAttribute("type"):"";if(type===""){type=(scripts[i].getAttribute("language")!==null)?scripts[i].getAttribute("language"):""}if(scripts[i].getAttribute("src")!==null&&scripts[i].getAttribute("src")!==""){childId=id+Math.floor(Math.random()*99999999999);document.getElementById(id).innerHTML+='<div id="'+childId+'"></div>';tarteaucitron.makeAsync.getAndParse(scripts[i].getAttribute("src"),childId)}else{if(type.indexOf("javascript")!==-1||type===""){eval(scripts[i].innerHTML)}}}}},fallback:function(e,f,a){var b=document.getElementsByTagName("*"),d,c=0;for(d in b){if(b[d]!==undefined){for(c=0;c<e.length;c+=1){if((" "+b[d].className+" ").indexOf(" "+e[c]+" ")>-1){if(typeof f==="function"){if(a===true){f(b[d])}else{b[d].innerHTML=f(b[d])}}else{b[d].innerHTML=f}}}}}},engage:function(d){var b="",c=Math.floor(Math.random()*100000),a=tarteaucitron.services[d].name+" "+tarteaucitron.lang.fallback;if(tarteaucitron.lang["engage-"+d]!==undefined){a=tarteaucitron.lang["engage-"+d]}b+='<div class="tac_activate tac_activate_'+d+'">';b+='   <div class="tac_float">';b+="      "+a;b+='      <button type="button" class="tarteaucitronAllow" id="Eng'+c+"ed"+d+'">';
921b+='          <span class="tarteaucitronCheck"></span> '+tarteaucitron.lang.allow;b+="       </button>";b+="   </div>";b+="</div>";return b},extend:function(d,c){var e;for(e in c){if(c.hasOwnProperty(e)){d[e]=c[e]}}},proTemp:"",proTimer:function(){setTimeout(tarteaucitron.proPing,500)},pro:function(a){tarteaucitron.proTemp+=a;clearTimeout(tarteaucitron.proTimer);tarteaucitron.proTimer=setTimeout(tarteaucitron.proPing,500)},proPing:function(){if(tarteaucitron.uuid!==""&&tarteaucitron.uuid!==undefined&&tarteaucitron.proTemp!==""){var c=document.getElementById("tarteaucitronPremium"),b=new Date().getTime(),a="https://tarteaucitron.io/log/?";if(c===null){return}a+="account="+tarteaucitron.uuid+"&";a+="domain="+tarteaucitron.domain+"&";a+="status="+encodeURIComponent(tarteaucitron.proTemp)+"&";a+="_time="+b;c.innerHTML='<img src="'+a+'" class="tarteaucitron-display-none" alt="" />';tarteaucitron.proTemp=""}tarteaucitron.cookie.number()},AddOrUpdate:function(b,a){for(key in a){if(a[key] instanceof Object){b[key]=tarteaucitron.AddOrUpdate(b[key],a[key])}else{b[key]=a[key]}}return b},getElemWidth:function(a){return a.getAttribute("width")||a.clientWidth},getElemHeight:function(a){return a.getAttribute("height")||a.clientHeight},addClickEventToId:function(b,a){tarteaucitron.addClickEventToElement(document.getElementById(b),a)},addClickEventToElement:function(b,a){if(b){if(b.addEventListener){b.addEventListener("click",a)}else{b.attachEvent("onclick",a)}}},triggerJobsAfterAjaxCall:function(){tarteaucitron.job.forEach(function(d){tarteaucitron.job.push(d)});var c;var b=document.getElementsByClassName("tarteaucitronAllow");for(c=0;c<b.length;c++){tarteaucitron.addClickEventToElement(b[c],function(){tarteaucitron.userInterface.respond(this,true)})}var a=document.getElementsByClassName("tarteaucitronDeny");for(c=0;c<a.length;c++){tarteaucitron.addClickEventToElement(a[c],function(){tarteaucitron.userInterface.respond(this,false)})}}};;
922!function(a){a(document).ready(function(){tarteaucitron.init({privacyUrl:"cookiespolicy",hashtag:"#tarteaucitron",cookieName:"tarteaucitron",orientation:"top",showAlertSmall:false,cookieslist:false,closePopup:false,showIcon:true,iconPosition:"BottomLeft",adblocker:false,DenyAllCta:true,AcceptAllCta:true,highPrivacy:true,handleBrowserDNTRequest:false,removeCredit:false,moreInfoLink:true,useExternalCss:false,useExternalJs:false,readmoreLink:"",mandatory:true});tarteaucitron.load()})}(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.