vendor: 5,461 bytes, lines 1-128
1/* 2 * tagContainer Generator v100.2 3 * Copyright Commanders Act 4 * https://www.commandersact.com/fr/ 5 * Generated: 2025-12-04 15:56:47 Europe/Paris 6 * --- 7 * Version : 90.05 8 * IDTC : 21 9 * IDS : 4453 10 */ 11 12if(typeof tC == 'undefined'){ 13 if (typeof document.domain == 'undefined' ||typeof document.referrer == 'undefined') 14 document = window.document; // eslint-disable-line no-global-assign, no-implicit-globals 15 16 /* 17 if (typeof console == 'undefined' || typeof console.log == 'undefined') 18 var console = { 19 log : function() {}, 20 error : function() {}, 21 warn : function() {} 22 }; 23 */ 24 25 26 (function(window, undefined) { 27 var 28 roottC, 29 readyList, 30 document = window.document, 31 location = window.location, 32 navigator = window.navigator, 33 _tC = window.tC, 34 _$ = window.$, 35 core_push = Array.prototype.push, 36 core_slice = Array.prototype.slice, 37 core_indexOf = Array.prototype.indexOf, 38 core_toString = Object.prototype.toString, 39 core_hasOwn = Object.prototype.hasOwnProperty, 40 core_trim = String.prototype.trim, 41 tC = function(selector, context) { 42 return new tC.fn.init(selector, context, roottC); 43 }, 44 core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, 45 core_rnotwhite = /\S/, 46 core_rspace = /\s+/, 47 rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, 48 rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, 49 rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, 50 rvalidchars = /^[\],:{}\s]*$/, 51 rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, 52 rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, 53 rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, 54 rmsPrefix = /^-ms-/, 55 rdashAlpha = /-([\da-z])/gi, fcamelCase = function(all, letter) { 56 return (letter + "").toUpperCase(); 57 }, 58 class2type = {}; 59 60 tC.fn = tC.prototype = { 61 constructor : tC, 62 init : function(selector, context, roottC) { 63 var match, elem, ret, doc; 64 if (!selector) { 65 return this; 66 } 67 if (selector.nodeType) { 68 this.context = this[0] = selector; 69 this.length = 1; 70 return this; 71 } 72 if ( typeof selector === "string") { 73 if (selector.charAt(0) === "<" && selector.charAt(selector.length - 1) === ">" && selector.length >= 3) { 74 match = [null, selector, null]; 75 } else { 76 match = rquickExpr.exec(selector); 77 } 78 if (match && (match[1] || !context)) { 79 if (match[1]) { 80 context = context instanceof tC ? context[0] : context; 81 doc = (context && context.nodeType ? context.ownerDocument || context : document); 82 selector = tC.parseHTML(match[1], doc, true); 83 if (rsingleTag.test(match[1]) && tC.isPlainObject(context)) { 84 this.attr.call(selector, context, true); 85 } 86 return tC.merge(this, selector); 87 } else { 88 elem = document.getElementById(match[2]); 89 if (elem && elem.parentNode) { 90 if (elem.id !== match[2]) { 91 return roottC.find(selector); 92 } 93 this.length = 1; 94 this[0] = elem; 95 } 96 this.context = document; 97 this.selector = selector; 98 return this; 99 } 100 } else if (!context || context.tC) { 101 return (context || roottC).find(selector); 102 } else { 103 return this.constructor(context).find(selector); 104 } 105 } else if (tC.isFunction(selector)) { 106 return roottC.ready(selector); 107 } 108 if (selector.selector !== undefined) { 109 this.selector = selector.selector; 110 this.context = selector.context; 111 } 112 return tC.makeArray(selector, this); 113 }, 114 each : function(callback, args) { 115 return tC.each(this, callback, args); 116 }, 117 ready : function(fn) { 118 // Add the callback 119 //tC.ready.promise().done(fn); 120 //CORRECTION SF/DP ... A VALIDER PAR MG 121 tC.ready.promise(fn); 122 return this; 123 } 124 }; 125 126 tC.fn.init.prototype = tC.fn; 127 tC.extend = tC.fn.extend = function() { 128 var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;
129 if ( typeof target === "boolean") { 130 deep = target; 131 target = arguments[1] || {}; 132 i = 2; 133 } 134 if ( typeof target !== "object" && !tC.isFunction(target)) { 135 target = {}; 136 } 137 if (length === i) { 138 target = this; --i; 139 } 140 for (; i < length; i++) { 141 if (( options = arguments[i]) != null) { 142 for (name in options) { 143 src = target[name]; 144 copy = options[name]; 145 if (target === copy) { 146 continue; 147 } 148 if (deep && copy && (tC.isPlainObject(copy) || ( copyIsArray = tC.isArray(copy)))) { 149 if (copyIsArray) { 150 copyIsArray = false; 151 clone = src && tC.isArray(src) ? src : []; 152 } else { 153 clone = src && tC.isPlainObject(src) ? src : {}; 154 } 155 target[name] = tC.extend(deep, clone, copy); 156 } else if (copy !== undefined) { 157 target[name] = copy; 158 } 159 } 160 } 161 } 162 return target; 163 }; 164 165 tC.extend({ 166 ssl : "https://manager.", 167 randOrd : function(){ 168 return (Math.round(Math.random())-0.5); 169 }, 170 nodeNames : "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + 171 "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", 172 rnocache : /<(?:script|object|embed|option|style)/i, 173 rnoshimcache : new RegExp("<(?:" + tC.nodeNames + ")[\\s/>]", "i"), 174 rchecked : /checked\s*(?:[^=]|=\s*.checked.)/i, 175 containersLaunched : {} 176 }); 177 178 tC.extend({ 179 inArray: function( elem, arr, i ) { 180 var len, 181 core_indexOf = Array.prototype.indexOf; 182 183 if ( arr ) { 184 if ( core_indexOf ) { 185 return core_indexOf.call( arr, elem, i ); 186 } 187 188 len = arr.length; 189 i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; 190 191 for ( ; i < len; i++ ) { 192 if ( i in arr && arr[ i ] === elem ) { 193 return i; 194 } 195 } 196 } 197 return -1; 198 }, 199 isFunction : function(obj) { 200 return tC.type(obj) === "function"; 201 }, 202 isArray : Array.isArray || function(obj) { 203 return tC.type(obj) === "array"; 204 }, 205 isWindow : function(obj) { 206 return obj != null && obj == obj.window; 207 }, 208 isNumeric : function(obj) { 209 return !isNaN(parseFloat(obj)) && isFinite(obj); 210 }, 211 type : function(obj) { 212 return obj == null ? String(obj) : class2type[core_toString.call(obj)] || "object"; 213 }, 214 each : function(obj, callback, args) { 215 var name, i = 0, length = obj.length, isObj = length === undefined || tC.isFunction(obj); 216 if (args) { 217 if (isObj) { 218 for (name in obj) { 219 if (callback.apply(obj[name], args) === false) { 220 break; 221 } 222 } 223 } else { 224 for (; i < length; ) { 225 if (callback.apply(obj[i++], args) === false) { 226 break; 227 } 228 } 229 } 230 } else { 231 if (isObj) { 232 for (name in obj) { 233 if (callback.call(obj[name], name, obj[name]) === false) { 234 break; 235 } 236 } 237 } else { 238 for (; i < length; ) { 239 if (callback.call(obj[i], i, obj[i++]) === false) { 240 break; 241 } 242 } 243 } 244 } 245 return obj; 246 }, 247 log : function(v, t) { 248 try { 249 if(tC.getCookie('tCdebugLib') && console) console[t ? t : 'log'](v); // eslint-disable-line no-console 250 }catch(e) {} 251 } 252 }); 253 254 tC.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { 255 class2type["[object " + name + "]"] = name.toLowerCase(); 256 }); 257 258 roottC = tC(document); 259 var optionsCache = {}; 260 261 function createOptions(options) { 262 var object = optionsCache[options] = {}; 263 tC.each(options.split(core_rspace), function(_, flag) { 264 object[flag] = true; 265 }); 266 return object; 267 } 268 269 tC.buildFragment = function( args, context, scripts ) { 270 var fragment, cacheable, cachehit, 271 first = args[ 0 ]; 272 273 // Set context from what may come in as undefined or a jQuery collection or a node 274 // Updated to fix #12266 where accessing context[0] could throw an exception in IE9/10 & 275 // also doubles as fix for #8950 where plain objects caused createDocumentFragment exception 276 context = context || document; 277 context = !context.nodeType && context[0] || context; 278 context = context.ownerDocument || context; 279 280 // Only cache "small" (1/2 KB) HTML strings that are associated with the main document 281 // Cloning options loses the selected state, so don't cache them 282 // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment 283 // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache 284 // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501 285 if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document && 286 first.charAt(0) === "<" && !tC.rnocache.test( first ) && 287 (tC.support.checkClone || !tC.rchecked.test( first )) && 288 (tC.support.html5Clone || !tC.rnoshimcache.test( first )) ) { 289
290 // Mark cacheable and look for a hit 291 cacheable = true; 292 fragment = jQuery.fragments[ first ]; 293 cachehit = fragment !== undefined; 294 } 295 296 if ( !fragment ) { 297 fragment = context.createDocumentFragment(); 298 tC.clean( args, context, fragment, scripts ); 299 300 // Update the cache, but only store false 301 // unless this is a second parsing of the same content 302 if ( cacheable ) { 303 tC.fragments[ first ] = cachehit && fragment; 304 } 305 } 306 307 return { fragment: fragment, cacheable: cacheable }; 308 }; 309 310 window.tC = tC; 311 })(window); 312 313 /*NON utilisée - SF/MG 17/12/2013 314 function createSafeFragment( document ) { 315 var list = nodeNames.split( "|" ), 316 safeFrag = document.createDocumentFragment(); 317 318 if ( safeFrag.createElement ) { 319 while ( list.length ) { 320 safeFrag.createElement( 321 list.pop() 322 ); 323 } 324 } 325 return safeFrag; 326 }*/ 327} 328(function() { 329 if (!tC.maindomain) { 330 var hostname = location.hostname; 331 var tb = hostname.split('.'); 332 // eslint-disable-next-line no-useless-escape 333 var ipregexp = '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'; 334 //if local domain without extension or domain is one ip 335 if( 336 tb.length < 2 || hostname.match(ipregexp) 337 ){ 338 tC.maindomain = hostname; 339 //else it's one other domain 340 }else{ 341 tC.maindomain = tb[tb.length - 2] + '.' + tb[tb.length - 1]; 342 } 343 } 344 345 var currentContainer = { 346 id_container : String(21), 347 id_site : String(4453), 348 frequency : String(30), 349 containerVersion : String(90.05), 350 generatorVersion : String('100.2'), 351 containerStart : Date.now(), 352 sourceKey : String('afa25364-eefd-4f0d-8991-c82db928061e'), 353 defaultCdnDomain : String('cdn.trustcommander.net'), 354 }; 355 356 tC.config = tC.config || {}; 357 tC.extend({ 358 internalvars : typeof tC.internalvars !== 'undefined' ? tC.internalvars : {}, 359 internalFunctions : typeof tC.internalFunctions !== 'undefined' ? tC.internalFunctions : {}, 360 privacyVersion : tC.privacyVersion || '', 361 id_container : currentContainer.id_container, 362 id_site : currentContainer.id_site, 363 containerVersion : currentContainer.containerVersion, 364 generatorVersion : currentContainer.generatorVersion, 365 defaultCdnDomain : currentContainer.defaultCdnDomain, 366 dedup_done : typeof tC.dedup_done !== 'undefined' ? tC.dedup_done : false, 367 // Unique timestamp for first container loaded 368 containerStart : tC.containerStart || currentContainer.containerStart, 369 config : tC.config, 370 }); 371 372 var internalvarsSite = {}; 373 internalvarsSite['internalvars_' + currentContainer.id_site] = typeof tC['internalvars_' + currentContainer.id_site] !== 'undefined' ? tC['internalvars_' + currentContainer.id_site]
373: {}; 374 tC.extend(internalvarsSite); 375 376 window['tC_' + currentContainer.id_site + '_' + currentContainer.id_container] = currentContainer; 377 378 tC.extend({ 379 launchTag : function (id, label, template, idSite, idContainer, idTrigger) { 380 if(typeof idTrigger === 'undefined'){ 381 idTrigger = 0; 382 } 383 384 tC.array_launched_tags.push(label); 385 tC.array_launched_tags_keys.push(id); 386 387 tC.containersLaunched[idSite][idContainer].t.push({ 388 id : id, 389 label : label, 390 idTpl : template 391 }); 392 393 window.top.postMessage('TC.EX:{"id":"'+id+'","idc":"'+idContainer+'","idt":"'+template+'","ids":"'+idSite+'","lb":"'+label.replace(/"/g, '\\"')+'","idtr":"'+idTrigger+'"}', '*'); 394 395 } 396 }); 397 398 if (typeof tC.containersLaunched === 'undefined') { 399 tC.containersLaunched = {}; 400 } 401 402 if (typeof tC.containersLaunched[currentContainer.id_site] === 'undefined') { 403 tC.containersLaunched[currentContainer.id_site] = {}; 404 } 405 406 tC.containersLaunched[currentContainer.id_site][currentContainer.id_container] = {v:currentContainer.containerVersion, t:[], g:currentContainer.generatorVersion}; 407 408 /*extends*/ 409 410tC.coreReadyStandalone = true; 411if (tC.isDOMReady) { 412 tC.coreReadyStandalone = false; 413} 414 415tC.domReady = tC.domReady || false; 416 417tC.isDOMReady = tC.isDOMReady || function() { 418 if (document.readyState === 'complete' || document.readyState === 'loaded') 419 return true; 420 if (document.readyState !== 'interactive') 421 return false; 422 if (!document.documentElement.doScroll) 423 return true; 424 try { 425 document.documentElement.doScroll('left'); 426 return true; 427 } catch (e) { 428 return false; 429 } 430}; 431 432tC.waitingOnDomReadyCallBacks = tC.waitingOnDomReadyCallBacks || []; 433 434tC.excuteOnDomReadyCallBacks = tC.excuteOnDomReadyCallBacks || function() { 435 for (var i = 0; i < tC.waitingOnDomReadyCallBacks.length; i++) { 436 tC.waitingOnDomReadyCallBacks[i](); 437 } 438 tC.waitingOnDomReadyCallBacks = []; 439}; 440 441tC.onDomReady = tC.onDomReady || function(callback) { 442 443 if(this.domReady){ 444 callback(); 445 return; 446 } 447 448 tC.waitingOnDomReadyCallBacks.push(callback); 449 var browserTypeSet = false; 450 /* Mozilla, Chrome, Opera */ 451 if (document.addEventListener) { 452 browserTypeSet = true; 453 document.addEventListener('DOMContentLoaded', function() { 454 document.removeEventListener('DOMContentLoaded', arguments.callee, false); 455 tC.excuteOnDomReadyCallBacks(); 456 }, false); 457 } 458 // If IE event model is used 459 else if (document.attachEvent) { 460 browserTypeSet = true; 461 // ensure firing before onload, 462 // maybe late but safe also for iframes 463 document.attachEvent('onreadystatechange', function() { 464 if (document.readyState === 'complete') { 465 document.detachEvent('onreadystatechange', arguments.callee); 466 tC.excuteOnDomReadyCallBacks(); 467 } 468 }); 469 470 // If IE and not an iframe 471 // continually check to see if the document is ready 472 if (document.documentElement.doScroll && window === window.top) 473 (function() { 474 if (tC.domReady) 475 return; 476 477 try { 478 // If IE is used, use the trick by Diego Perini 479 // http://javascript.nwbox.com/IEContentLoaded/ 480 document.documentElement.doScroll('left'); 481 } catch( error ) { 482 setTimeout(arguments.callee, 0); 483 return; 484 } 485 486 // and execute any waiting functions 487 tC.excuteOnDomReadyCallBacks(); 488 })(); 489 } 490 /* Other web browsers */ 491 if (!browserTypeSet) { 492 window.onload = tC.excuteOnDomReadyCallBacks; 493 } 494}; 495 496if (tC.coreReadyStandalone === true) { 497 if(tC.isDOMReady()){ 498 tC.domReady = true; 499 }else{ 500 tC.onDomReady(function() { 501 tC.domReady = true; 502 }); 503 } 504} 505 506(function() { 507 'use strict'; 508 tC.cactUtils = {}; 509 510 var defaultCallback = function() {}; 511 tC.cactUtils.formatArgumentsV2 = function(args) { 512 var message = {}; 513 var nextArg = 0; 514 515 if (typeof args[nextArg] === 'string') { 516 message.event = args[nextArg++]; 517 } 518 if (typeof args[nextArg] === 'object') { 519 message.properties = Object.assign({}, args[nextArg++]); 520 } 521 if (typeof args[nextArg] === 'object') { 522 message.config = Object.assign({}, args[nextArg++]); 523 } 524 if (typeof args[nextArg] === 'function') { 525 message.callback = args[nextArg++]; 526 } 527 message.properties = message.properties || {}; 528 message.config = message.config || {}; 529 message.callback = message.callback || defaultCallback; 530 return message; 531 }; 532})(); 533 534(function() { 535 'use strict'; 536 537 var tC = window.tC; 538 var apiVersion = 2; 539 540 if (tC == null || (tC.cact && tC.cactInfo && tC.cactInfo.apiVersion >= apiVersion)) { 541 return; 542 } 543 544 var isArrayLike = function(message) { 545 return message.toString() === '[object Arguments]' || Array.isArray(message); 546 }; 547 548 var formatOldQueue = function(queue) { 549 return queue.map(function(message) { 550 if (isArrayLike(message)) { 551 return message; 552 } 553 554 var args = JSON.parse(JSON.stringify(message)); 555 var _done = args._done; 556 delete args.event; 557 delete args.callback; 558 delete args._done; 559 560 var newMessage; 561 if (Object.keys(args).length !== 0) { 562 newMessage = [ message.event, args, message.callback ]; 563 } else { 564 newMessage = [ message.event, message.callback ]; 565 } 566 if (_done) { 567 newMessage._tc_meta = { done: _done }; 568 } 569 return newMessage; 570 }); 571 }; 572 573 window.caReady = window.caReady || []; 574 window.cact = window.cact || function() { 575 window.caReady.push(arguments); 576 }; 577 578 if (tC.cact) { // there is a version to override 579 window.caReady = formatOldQueue(window.caReady); // this will also remove the push override 580 } 581 582 tC.cact = tC.cact || {}; // namespace for container apis 583 tC.cactInfo = { apiVersion: apiVersion }; 584 585 var processEvent = function(message) { 586 message._tc_meta = message._tc_meta || {}; 587 var command = message[0]; 588 if (message._tc_meta.done || tC.cact[command] == null) { 589 return; 590 } 591 592 // preserve from infinite recursion 593 message._tc_meta = message._tc_meta || {}; 594 message._tc_meta.done = true; 595 596 var version = tC.cact[command]._tc_version; 597 message = Array.prototype.slice.call(message, version == null ? 0 : 1); // from version 2, strip command 598 if (version == null) { 599 var formatedMessage = formatArgumentsV1(message); 600 tC.cact[command](formatedMessage, formatedMessage.callback); 601 } else { 602 tC.cact[command].apply(tC.cact, message); 603 } 604 }; 605 606 var defaultCallback = function() {}; 607 var formatArgumentsV1 = function(args) { 608 var message; 609 var callback; 610 if (typeof args[1] === 'object') { 611 message = args[1]; 612 callback = args[2]; 613 } else if (typeof args[1] === 'function') { 614 message = {}; 615 callback = args[1]; 616 } else { 617 message = {}; 618 } 619 message.event = args[0]; 620 message.callback = callback || defaultCallback; 621 return message; 622 }; 623 624 var processAllEvents = function() { 625 for (var i = 0; i < window.caReady.length; ++i) { 626 processEvent(window.caReady[i]); 627 } 628 var message = tC.cactUtils.formatArgumentsV2(arguments); 629 if (message && message.callback) message.callback(); // mostly for test purposes on the "exec" command 630 }; 631 tC.cact.exec = processAllEvents; 632 633 var pushEvent = function(message) { 634 Array.prototype.push.call(window.caReady, message); 635 processEvent(message); 636 };
637 Object.defineProperty(window.caReady, 'push', { configurable: true, value: pushEvent }); 638 639 tC.cact.exec(); 640})(); 641 642(function () { 643 'use strict'; 644 645 tC.config = tC.config || {}; 646 tC.cact.config = function () { 647 var args = tC.cactUtils.formatArgumentsV2(arguments); 648 var callback = args.callback; 649 650 Object.assign(tC.config, args.properties); 651 callback(); 652 }; 653 654 tC.cact.config._tc_version = 2; 655 656})(); 657 658(function () { 659 'use strict'; 660 661 var getElement = function(eventOrElement) { 662 var element; 663 if (eventOrElement instanceof Event) { 664 element = eventOrElement.target; 665 } else { 666 element = eventOrElement; 667 } 668 669 return element instanceof Element ? element : null; 670 }; 671 672 tC.cact.trigger = function () { 673 var args = tC.cactUtils.formatArgumentsV2(arguments); 674 var event = args.event; 675 var properties = Object.assign({}, args.properties); 676 var config = args.config; 677 var callback = args.callback; 678 679 if (typeof event !== 'string' || event === '') { 680 return; 681 } 682 if (tC.trigger) { 683 var eventTarget = getElement(properties.from); 684 if (eventTarget) { 685 config.eventTarget = eventTarget; 686 delete properties.from; 687 } 688 tC.trigger({ 689 event: event, 690 properties: properties, 691 config: config, 692 }); 693 } 694 callback(); 695 return tC.uniqueEventIndex; 696 }; 697 tC.cact.trigger._tc_version = 2; 698 699 tC.cact.setProperty = function (key, value) { 700 if (!tC.set || typeof key !== 'string') { 701 return; 702 } 703 tC.config = tC.config || {}; 704 tC.config.eventData = tC.config.eventData || {}; 705 tC.set(tC.config.eventData, key, value); 706 }; 707 tC.cact.setProperty._tc_version = 2; 708 709 tC.cact.dispatchEvent = function() { 710 var args = tC.cactUtils.formatArgumentsV2(arguments); 711 var event = args.event; 712 var properties = Object.assign({}, args.properties); 713 var config = Object.assign({}, args.config); 714 var callback = args.callback; 715 716 config.eventData = properties; 717 var eventTarget = getElement(properties.from); 718 if (eventTarget) { 719 config.eventTarget = eventTarget; 720 delete properties.from; 721 } 722 tC.eventTarget.dispatchEvent(event, config); 723 callback(); 724 }; 725 tC.cact.dispatchEvent._tc_version = 2; 726 tC.cact.emit = tC.cact.dispatchEvent; // alias for dispatchEvent 727 728 tC.cact.addEventListener = function() { 729 var args = tC.cactUtils.formatArgumentsV2(arguments); 730 var event = args.event; 731 var callback = args.callback; 732 733 return tC.eventTarget.addEventListener(event, callback); 734 }; 735 tC.cact.addEventListener._tc_version = 2; 736 tC.cact.on = tC.cact.addEventListener; // alias for addEventListener 737 738 tC.cact.once = function() { 739 var args = tC.cactUtils.formatArgumentsV2(arguments); 740 var event = args.event; 741 var callback = args.callback; 742 743 return tC.eventTarget.once(event, callback); 744 }; 745 tC.cact.once._tc_version = 2; 746 747 tC.cact.removeEventListener = function() { 748 var args = tC.cactUtils.formatArgumentsV2(arguments); 749 var event = args.event; 750 var callback = args.callback; 751 752 return tC.eventTarget.removeEventListener(event, callback); 753 }; 754 tC.cact.removeEventListener._tc_version = 2; 755 tC.cact.off = tC.cact.removeEventListener; // alias for removeEventListener 756})(); 757 758/* 759 * 760 */ 761tC.extend({ 762 isCurrentVersion:function(){ 763 if (Boolean(tC.bypassBookmarklet) === true) { 764 return true; 765 } 766 /* 767 * return true : 768 * - if bm is disable, 769 * - if bm is enable but the container is loaded by the bookmarklet 770 * else return false 771 */ 772 var v = tC.getCookie('tc_mode_test'); 773 var t = 'testModeIncludeReplaceThisByTrue' ; 774 /* 775 * info : 'testModeIncludeReplaceThisByTrue' is replaced by "true" by the test mode include script 776 */ 777 return v !== '1' || (v === '1' && t === 'true'); 778 } 779}); 780 781 782 783/* 784 * Extension pixelTrack 785 * 786 * @vars 787 */ 788 789tC.pixelTrack = tC.pixelTrack || { 790 add : function(u, t) { 791 u = u || 0; 792 t = t || 'img'; 793 tC.onDomReady(function() { 794 var d; 795 if(t === 'iframe'){ 796 d = document.createElement(t); 797 d.src = u; 798 d.width = 1; 799 d.height = 1; 800 d.style.display = 'none'; 801 document.body.appendChild(d); 802 }else{ 803 d = new Image(); 804 d.src = u; 805 } 806 }); 807 } 808}; 809
810tC.setCookie = tC.setCookie || function(name, value, expires, path, domain, secure, sameSite) { 811 if (!domain) { 812 domain = tC.domain(); 813 } 814 815 tC.config = tC.config || {}; 816 tC.cookieForceSameSite = tC.cookieForceSameSite || ''; 817 sameSite = sameSite || tC.config.cookieForceSameSite || tC.cookieForceSameSite; 818 819 if (!tC.isSameSiteContext()) { 820 sameSite = 'None'; // 'Lax' and 'Strict' will not work in cross-site context iframes 821 } 822 if (!sameSite) { 823 sameSite = tC.isSubdomain(domain) ? 'Lax': 'None'; 824 } 825 826 tC.cookieForceSecure = tC.cookieForceSecure != null ? tC.cookieForceSecure : '';// "first container wins" 827 if (secure == null) { 828 secure = tC.config.cookieForceSecure; // value from cact('config') 829 } 830 if (secure == null) { 831 secure = tC.cookieForceSecure; // value manually set in customJS 832 } 833 secure = Boolean(Number(secure)); // double-cast to handle properly '0' value (0 as a string); 834 835 if (sameSite.toLowerCase() === 'none') {// even if we want to force secure setting, SameSite=None must not be set withtout secure flag (or popular browsers may not set cookie) 836 secure = true; 837 } 838 839 var today = new Date(); 840 today.setTime(today.getTime()); 841 if (expires) 842 expires = expires * 1000 * 60 * 60 * 24; 843 var expires_date = new Date(today.getTime() + (expires)); 844 845 var cookieString = name + '=' + tC.cookieEncode(value) 846 + ((expires) ? ';expires=' + expires_date.toGMTString() : '' ) 847 + ((path) ? ';path=' + path : ';path=/' ) 848 + ((domain) ? ';domain=' + domain : '' ) 849 + ((secure) ? ';secure' : '' ) 850 + ';SameSite=' + sameSite; 851 document.cookie = cookieString; 852}; 853 854tC.cookieEncode = tC.cookieEncode || function (value) { 855 var specialChars = { 856 '!': '%21', 857 "'": '%27', 858 '(': '%28', 859 ')': '%29', 860 '~': '%7E', 861 }; 862 var encoded = encodeURIComponent(value) 863 .replace(/[!~'()]/g, function(x) { 864 return specialChars[x]; 865 }); 866 return encoded; 867}; 868 869tC.getCookie = tC.getCookie || function(key) { 870 if (key == null) { 871 return ''; 872 } 873 var whitelist = '@$'.split(''); 874 var hasWhitelistChars = whitelist.some(function(c) { 875 return key.indexOf(c) !== -1; 876 }); 877 if (!hasWhitelistChars) { 878 key = encodeURIComponent(key); 879 } else { 880 key = key.replace('$', '\\$'); 881 } 882 var result = new RegExp('(?:^|; )' + key + '=([^;]*)').exec(document.cookie); 883 if (result) { 884 var decodedValue = ''; 885 try { 886 decodedValue = decodeURIComponent(result[1]); 887 } catch(e) { 888 decodedValue = unescape(result[1]); 889 } 890 return decodedValue; 891 } 892 893 return ''; 894}; 895 896tC.cookieCheck = function(options) { 897 options = options || {}; 898 var domain = options.domain ? ';domain=' + options.domain : ''; 899 var samesite = options.samesite ? ';samesite=' + options.samesite : ''; 900 var cookieName = 'tc_test_cookie'; 901 var cookieValue = Math.random().toString(36).substr(2, 9); 902 903 var cookieSet; 904 var cookieString = 905 cookieName + '=' + cookieValue + ';expires=0;path=/;' + samesite + domain; 906 document.cookie = cookieString; 907 908 var match = new RegExp('(?:^|; )' + cookieName + '=([^;]*)').exec(document.cookie); 909 if (match) match = match[1]; 910 cookieSet = match === cookieValue; 911 if (cookieSet) { 912 cookieString = 913 cookieName + '=;expires=' + new Date(0).toUTCString() + ';path=/;' + samesite + domain; 914 document.cookie = cookieString; 915 } 916 return cookieSet; 917}; 918 919tC._samesite = tC._samesite || null; 920tC.isSameSiteContext = tC.isSameSiteContext || function() { 921 if (tC._samesite != null) { 922 return tC._samesite; 923 } 924 if (tC.isCrossDomainContext()) { 925 tC._samesite = false; 926 } else { 927 tC._samesite = tC.cookieCheck({ samesite: 'lax' }); 928 } 929 return tC._samesite; 930}; 931 932tC.isCookieEnabled = function () { 933 // Quick test if browser has cookieEnabled host property 934 if (navigator.cookieEnabled && window.navigator.userAgent.indexOf('MSIE') === -1) { 935 return true; 936 } 937 return tC.cookieCheck(); 938}; 939 940tC.removeCookie = tC.removeCookie || function (name, domain) { 941 this.setCookie(name, '', -1, '/', domain); 942}; 943 944/* 945 * Extension domain 946 */ 947 948tC._domain = tC._domain || null; 949tC.domain = tC.domain || function() { 950 if (tC._domain != null) { 951 return tC._domain; 952 } 953 954 var domainParts = (tC.tc_hdoc.domain || '').toLowerCase().split('.'); 955 var domainLength = domainParts.length; 956 if (domainLength === 0) { 957 return ''; 958 } 959
960 var cookieCheck = false; 961 var domain; 962 for (var domainLevel = 2; !cookieCheck && domainLevel <= domainLength; ++domainLevel) { 963 domain = '.' + domainParts.slice(domainLength - domainLevel, domainLength).join('.'); 964 cookieCheck = tC.cookieCheck({ domain: domain }); 965 } 966 967 tC._domain = domain || ''; 968 return tC._domain; 969}; 970 971tC.getDomainLevels = tC.getDomainLevels || function() { 972 var splitted = (tC.tc_hdoc.domain || '').toLowerCase().split('.'); 973 var subdomains = splitted.map(function(level, index) { 974 return '.' + splitted.slice(index).join('.'); 975 }); 976 subdomains.pop(); 977 subdomains.reverse(); 978 return subdomains; 979}; 980 981tC.isSubdomain = tC.isSubdomain || function(domain) { 982 if (domain && domain[0] === '.') { 983 domain = domain.substr(1, domain.length - 1); 984 } 985 return new RegExp(domain + '$').test(tC.tc_hdoc.domain); 986}; 987 988tC.isCrossDomainContext = tC.isCrossDomainContext || function() { 989 try{ 990 window.top.document; 991 return false; 992 }catch(e){ 993 return true; 994 } 995}; 996 997tC.tc_hdoc = tC.tc_hdoc || false; 998if (!tC.tc_hdoc) { 999 // if iframe with different domain/alias => get domain of the iframe as fallback 1000 tC.tc_hdoc = tC.isCrossDomainContext() ? window.document : window.top.document; 1001} 1002 1003tC.isTcDns = function(dns) { 1004 dns = dns || ''; 1005 if (dns === '') { 1006 return false; 1007 } 1008 return dns.indexOf('.commander1.com') !== -1 || dns.indexOf('.tagcommander.com') !== -1; 1009}; 1010 1011tC.isCustomDns = function(dns) { 1012 dns = dns || ''; 1013 if (dns === '') { 1014 return false; 1015 } 1016 return !tC.isTcDns(dns); 1017}; 1018 1019(function(){ 1020 tC.getCdnDomainList = tC.getCdnDomainList || function() { 1021 return [] || []; 1022 }; 1023 1024 tC.getClientDnsList = tC.getClientDnsList || function() { 1025 return ['delta.floapay.it', 'delta.floapay.fr', 'delta.floapay.pt', 'delta.floapay.es', 'delta.floapay.nl', 'delta.floapay.be', 'delta.floapay.de', 'delta.floapay.com'] || []; 1026 }; 1027 1028 var getDomainMatcher = function(getFromCache, getDomainList) { 1029 return function() { 1030 var cachedDomain = getFromCache(); 1031 if (cachedDomain) { 1032 return cachedDomain; 1033 } 1034 1035 var domainLevels = tC.getDomainLevels().map(function (domain) { 1036 return new RegExp('^[\\w,\\d,\\-]*' + domain.replace('.', '\\.') + '$'); 1037 }); 1038 1039 var domainList = getDomainList(); 1040 var matchingDomain = domainList.find(function (dns) { 1041 return domainLevels.find(function (domainRegexp) { 1042 return domainRegexp.test(dns); 1043 }); 1044 }); 1045 1046 return matchingDomain; 1047 }; 1048 }; 1049 1050 tC.getCachedClientCollectDns = function() { 1051 return tC.clientCollectDns; 1052 }; 1053 1054 tC.getCachedClientCdnDomain = function() { 1055 return tC.clientCdnDomain; 1056 }; 1057 1058 tC.getClientCollectDns = getDomainMatcher(tC.getCachedClientCollectDns, tC.getClientDnsList); 1059 tC.clientCollectDns = tC.getClientCollectDns(); 1060 1061 tC.getClientCdnDomain = getDomainMatcher(tC.getCachedClientCdnDomain, tC.getCdnDomainList); 1062 tC.clientCdnDomain = tC.getClientCdnDomain(); 1063 1064 tC.clientCampaignDns = tC.clientCampaignDns || 'banquecasinocb4x.commander1.com'; 1065 tC.getClientCampaignDns = function() { 1066 return tC.clientCampaignDns; 1067 }; 1068 1069 tC.campaignForceCookieFirst = 0; 1070 1071 tC.getCdnDomain = function(options) { 1072 var defaultDomain = options.defaultDomain || tC.defaultCdnDomain; 1073 var customDomain = window.tc_cdn_domain || tC.clientCdnDomain; 1074 1075 return customDomain || defaultDomain; 1076 }; 1077 1078 tC.getPrivacyCdnDomain = function() { 1079 return tC.getCdnDomain({ defaultDomain: (tC.privacy || {}).defaultCdnDomain }); 1080 }; 1081})(); 1082 1083(function() { 1084 'use strict'; 1085 1086 var tC = window.tC; 1087 tC.eventTarget = tC.eventTarget || { 1088 _eventTarget: document.createElement('null'), 1089 addEventListener: function(type, listener, options) { 1090 this._eventTarget.addEventListener(type, listener, options); 1091 }, 1092 once: function(type, listener, options) { 1093 this.addEventListener(type, listener, Object.assign({}, options, {once: true})); 1094 }, 1095 removeEventListener: function(type, callback) { 1096 this._eventTarget.removeEventListener(type, callback); 1097 }, 1098 createEvent: function(eventType, eventData) { 1099 var event; 1100 if (eventType instanceof Event && eventType.target == null) { 1101 event = eventType; 1102 } else if (typeof eventType === 'string' && eventType !== '*') { 1103 event = new Event(eventType); 1104 } else { 1105 return; 1106 } 1107 1108 if (eventData == null || typeof eventData !== 'object') { 1109 eventData = {}; 1110 } 1111 event.eventData = eventData; 1112 return event; 1113 }, 1114 dispatchEvent: function(eventType, options) { 1115 options = options || {}; 1116 var event = tC.eventTarget.createEvent(eventType, options.eventData); 1117 this._eventTarget.dispatchEvent(event); 1118 1119 var broadcast = new Event('*'); 1120 broadcast.originalEvent = event; 1121 this._eventTarget.dispatchEvent(broadcast); 1122 1123 tC.eventTarget.callTagTrigger(event.type, options); 1124 }, 1125 callTagTrigger: function(eventType, options) { 1126 if (options.skipTrigger === true) { 1127 return; 1128 } 1129 1130 var event = tC.eventTarget.createEvent(eventType, options.eventData); 1131 1132 var tagTrigger = options.tagTrigger; 1133 if (tagTrigger == null) { 1134 // ex: 'my-custom-event' -> 'my_custom_event' -> tC.event.my_custom_event 1135 tagTrigger = event.type.replace(/-/g, '_'); 1136 } 1137 1138 var target = options.eventTarget; 1139 var attributes = {}; 1140 if (target && target.getAttributeNames) {
1141 target.getAttributeNames().forEach(function(attr) { 1142 attributes[attr] = target[attr]; 1143 }); 1144 } 1145 Object.defineProperty(event, 'target', { writable: true, value: attributes }); 1146 Object.defineProperty(event, 'target', { writable: false }); 1147 1148 if (tagTrigger != null && tC.event != null && typeof tC.event[tagTrigger] === 'function') { 1149 tC.event[tagTrigger](event, event.eventData); 1150 } 1151 }, 1152 dispatchEventAsync: function(eventType, options) { 1153 options = Object.assign({}, options); 1154 var delay = 0; 1155 if (options.delay > 0) { 1156 delay = Number(options.delay); 1157 delete options.delay; 1158 } 1159 setTimeout(function() { 1160 tC.eventTarget.dispatchEvent(eventType, options); 1161 }, delay); 1162 }, 1163 }; 1164})(); 1165 1166// AI generated function, equivalent to lodash.set 1167tC.set = function (object, path, value) { 1168 if (!object || typeof object !== 'object') return object; 1169 1170 // Convert path to an array if it is not already 1171 if (typeof path === 'string') { 1172 path = path.split('.').map(function(key) { 1173 return key.indexOf('[') > -1 ? key.replace(/\]/g, '').split('[') : key; 1174 }).reduce(function(acc, val) { 1175 return acc.concat(val); 1176 }, []); 1177 } 1178 1179 var current = object; 1180 1181 for (var i = 0; i < path.length; i++) { 1182 var key = path[i]; 1183 1184 // If we are at the last key, set the value 1185 if (i === path.length - 1) { 1186 current[key] = value; 1187 } else { 1188 // If the key doesn't exist or isn't an object, create an object or array 1189 if (!current[key] || typeof current[key] !== 'object') { 1190 current[key] = isNaN(Number(path[i + 1])) ? {} : []; 1191 } 1192 current = current[key]; 1193 } 1194 } 1195 1196 return object; 1197}; 1198 1199 1200// https://stackoverflow.com/a/34749873 1201tC.deepMerge = function() { 1202 var isObject = function(item) { 1203 return (item && typeof item === 'object' && !Array.isArray(item)); 1204 }; 1205 1206 var sources = Array.from(arguments); // eslint-disable-line es/no-array-from 1207 var target = sources.shift(); 1208 if (!sources.length) { 1209 return target; 1210 } 1211 var source = sources.shift(); 1212 1213 if (isObject(target) && isObject(source)) { 1214 var toAssign; 1215 for (var key in source) { 1216 if (isObject(source[key])) { 1217 if (!target[key]) { 1218 toAssign = {}; 1219 toAssign[key] = {}; 1220 Object.assign(target, toAssign); 1221 } 1222 tC.deepMerge(target[key], source[key]); 1223 } else { 1224 toAssign = {}; 1225 toAssign[key] = source[key]; 1226 Object.assign(target, toAssign); 1227 } 1228 } 1229 } 1230 1231 return tC.deepMerge.apply(tC, [target].concat(sources)); 1232}; 1233 1234tC.xhr = tC.xhr || function (reqOptions) { 1235 var req = new XMLHttpRequest(); 1236 if (!req) { 1237 return false; 1238 } 1239 req.open(reqOptions.method || 'GET', reqOptions.url); 1240 if (reqOptions.withCredentials) { 1241 req.withCredentials = true; 1242 } 1243 var data = reqOptions.data; 1244 if (reqOptions.json === true) { 1245 req.setRequestHeader('Content-Type', 'application/json'); 1246 if (typeof data !== 'string') { 1247 try { 1248 data = JSON.stringify(data); 1249 } catch (e) { 1250 data = 'null'; 1251 } 1252 } 1253 } 1254 if (reqOptions.headers) { 1255 Object.keys(reqOptions.headers).forEach(function(header) { 1256 req.setRequestHeader(header, reqOptions.headers[header]); 1257 }); 1258 } 1259 var ajaxCallback = function () { 1260 if (req.readyState === XMLHttpRequest.DONE) { 1261 var callback = reqOptions[(req.status >= 200 && req.status < 300) ? 'done' : 'fail']; 1262 if (callback) { 1263 var response = req.response; 1264 if (reqOptions.json === true) { 1265 try { 1266 response = JSON.parse(response); 1267 } catch (e) { 1268 // nothing to do 1269 } 1270 } 1271 callback(response, req.status); 1272 } 1273 } 1274 }; 1275 req.onload = ajaxCallback; 1276 req.onerror = ajaxCallback; 1277 req.send(data); 1278}; 1279 1280(function() { 1281 'use strict'; 1282 1283 tC.getCrossDomainCookie = tC.getCrossDomainCookie || function(options, callback) { 1284 callback = callback || function() {}; 1285 var siteId = options.siteId; 1286 var cookieName = options.name; 1287 var domain = options.domain; 1288 1289 tC.xhr({ 1290 url: 'https://' + domain + '/get-cookie?tc_s=' + siteId + '&name=' + cookieName, 1291 withCredentials: true, 1292 json: true, 1293 done: function(res) { 1294 var cookieValue = ''; 1295 try { 1296 cookieValue = res[cookieName] || ''; 1297 } catch (err) { 1298 // nothing to do 1299 } 1300 callback(cookieValue); 1301 }, 1302 fail: function(err) { 1303 if (tC.log) { 1304 tC.log('error occured retrieving cookie ' + co
1304okieName, err); 1305 } 1306 callback(''); 1307 }, 1308 }); 1309 }; 1310})(); 1311 1312(function() { 1313 'use strict'; 1314 1315 var routes = { 1316 'cookie-serverside': { 1317 path: 'css', 1318 serverId: 'phoenix', 1319 defaultDomain: 'collect.commander1.com', 1320 siteQueryArg: 'tc_s', 1321 caidSync: false, 1322 }, 1323 'dms': { 1324 path: 'dms', 1325 serverId: 'data', 1326 defaultDomain: 'engage.commander1.com', 1327 siteQueryArg: 'tc_s', 1328 }, 1329 'events': { 1330 path: 'events', 1331 serverId: 'cdp', 1332 defaultDomain: 'collect.commander1.com', 1333 siteQueryArg: 'tc_s', 1334 }, 1335 'measure-click-and-visit': { 1336 path: 'cs3', 1337 serverId: 'mix', 1338 defaultDomain: tC.clientCampaignDns || 'mix.commander1.com', 1339 syncDomain: 'collect.commander1.com', 1340 siteQueryArg: 'tcs', 1341 }, 1342 'measure-visit': { 1343 path: 's3', 1344 serverId: 'mix', 1345 defaultDomain: tC.clientCampaignDns || 'mix.commander1.com', 1346 syncDomain: 'collect.commander1.com', 1347 siteQueryArg: 'tcs', 1348 }, 1349 'privacy-consent': { 1350 path: 'privacy-consent', 1351 serverId: 'trust', 1352 defaultDomain: 'privacy.commander1.com', 1353 cookielessDomains: ['privacy.trustcommander.net'], 1354 siteQueryArg: 'site', 1355 }, 1356 }; 1357 1358 var generateCaid = function() { 1359 var date = new Date(); 1360 var year = date.getFullYear(); 1361 var month = ('0' + (date.getMonth() + 1)).slice(-2); 1362 var day = ('0' + date.getDate()).slice(-2); 1363 var hours = ('0' + date.getHours()).slice(-2); 1364 var minutes = ('0' + date.getMinutes()).slice(-2); 1365 var seconds = ('0' + date.getSeconds()).slice(-2); 1366 var formattedDate = year + month + day + hours + minutes + seconds; 1367 return formattedDate + Math.floor((Math.random() * 12345678942) + 1); 1368 }; 1369 1370 var sendHit = function(url, data) { 1371 var useXhr = false; 1372 if (typeof navigator.sendBeacon !== 'function') { 1373 useXhr = true; 1374 } else if (!navigator.sendBeacon(url, data)) { 1375 useXhr = true; 1376 } 1377 if (useXhr) { 1378 tC.xhr({ 1379 method: 'POST', 1380 json: true, 1381 url: url, 1382 data: data, 1383 withCredentials: true, 1384 }); 1385 } 1386 }; 1387 1388 if (tC.track == null) { 1389 tC._trackVersion = 5; 1390 } 1391 tC.track = tC.track || function(options) { 1392 options = options || {}; 1393 var siteId = options.siteId || tC.config.siteId || tC.id_site; 1394 1395 var route = routes[options.route]; 1396 if (route == null) { 1397 return null; 1398 } 1399 1400 var eventData = JSON.stringify(options.body || {}); 1401 1402 var defaultDomain = '' || route.defaultDomain; 1403 var collectionDomain = options.domain || window.tC_collect_dns || tC.config.collectionDomain || defaultDomain; 1404 collectionDomain = collectionDomain.split('://').slice(-1)[0]; // remove protocol part 1405 if (collectionDomain[collectionDomain.length - 1] === '/') { 1406 collectionDomain = collectionDomain.slice(0, -1); 1407 } 1408 1409 var isFirstParty = tC.isCustomDns(collectionDomain) && !(route.cookielessDomains || []).includes(collectionDomain); 1410 var isCookieless = options.isCookieless || (route.cookielessDomains || []).includes(collectionDomain); 1411 var queryParams = {}; 1412 if (isCookieless) { 1413 queryParams.tc_do_not_track = isCookieless; 1414 } 1415 1416 var byPassCookieExtension = 0; 1417 if (byPassCookieExtension) { 1418 queryParams.force_rewrite_cookie = byPassCookieExtension; 1419 } 1420 if (route.siteQueryArg && siteId) { 1421 queryParams[route.siteQueryArg] = siteId; 1422 } 1423 Object.assign(queryParams, options.queryParams); 1424 var queryString = Object.keys(queryParams).reduce(function(qs, key) { 1425 var value = queryParams[key]; 1426 qs.push(key + '=' + value); 1427 return qs; 1428 }, []); 1429 queryString = queryString.join('&'); 1430 if (queryString) { 1431 queryString = '?' + queryString; 1432 } 1433 1434 var serverId = isFirstParty ? '/' + route.serverId : ''; 1435 var collectionUrl = 'https://' + collectionDomain + serverId + '/' + route.path + queryString; 1436 1437 var cookieName = '' || 'CAID'; 1438 var cookieValue = tC.getCookie(cookieName); 1439 var caidSync = route.caidSync !== false; 1440 if (caidSync) { 1441 caidSync = tC.config.caidSync != null ? tC.config.caidSync : caidSync; 1442 caidSync = options.caidSync != null ? options.caidSync : caidSync; 1443 } 1444 var hasMissingCaid = isFirstParty && !isCookieless && !cookieValue; 1445 if (hasMissingCaid) { 1446 if (caidSync) { 1447 var syncDomain = '' || route.syncDomain || defaultDomain; 1448 tC.getCrossDomainCookie({ name: 'TCID', siteId: siteId, domain: syncDomain }, function(tcid) { 1449 var caid = tcid; 1450 if (!caid) { 1451 caid = generateCaid(); 1452 } 1453 tC.setCookie(cookieName, caid); 1454 sendHit(collectionUrl, eventData); 1455 }); 1456 } else { 1457 var caid = generateCaid(); 1458 tC.setCookie(cookieName, caid); 1459 sendHit(collectionUrl, eventData); 1460 } 1461 } else { 1462 sendHit(collectionUrl, eventData); 1463 } 1464 }; 1465})(); 1466 1467(function () { 1468 'use strict'; 1469 1470 tC.uniqueEventIndex = tC.uniqueEventIndex || 0; 1471 //keep last event in tC 1472 tC.triggeredEvents = tC.triggeredEvents || []; 1473
1474 tC.config = tC.config || {}; 1475 var containerSourceKey = 'afa25364-eefd-4f0d-8991-c82db928061e' || null; 1476 tC.config.collectionDomain = tC.config.collectionDomain || tC.clientCollectDns; 1477 1478 var emailReg = /[a-z0-9-.+_-]+@[a-z0-9-]+(\.[a-z0-9-]+)*/i; 1479 var userLookingSearchParams = /(user|mail|pass(word|phrase)?|secret|((first|last)name))/i; 1480 var anonymize= function(text) { 1481 return (text || '').replace(emailReg, '*****'); 1482 }; 1483 var anonymizeUrl= function(url) { 1484 try { 1485 var safeUrl = new URL(url); 1486 safeUrl.pathname = anonymize(safeUrl.pathname); 1487 safeUrl.searchParams.forEach(function(paramValue, paramKey) { 1488 if (emailReg.test(paramValue)) { 1489 return safeUrl.searchParams.set(paramKey, anonymize(paramValue)); 1490 } else if (userLookingSearchParams.test(paramKey)) { 1491 return safeUrl.searchParams.set(paramKey, '*****'); 1492 } 1493 }); 1494 return safeUrl.toString(); 1495 } catch (e) { 1496 return url; 1497 } 1498 }; 1499 1500 tC.generateEventId = function() { 1501 var eventId = String(Date.now()).slice(2) + Math.round(Math.random() * 10000000000000); 1502 while (eventId.length < 24) { 1503 eventId = eventId + '0'; 1504 } 1505 return eventId; 1506 }; 1507 1508 //Trigger API 1509 tC.trigger = function (options) { 1510 options = options || {}; 1511 var event = options.event; 1512 var properties = Object.assign({}, options.properties); 1513 var config = options.config || {}; 1514 var pageUrl = properties.url || anonymizeUrl(window.location.href); 1515 1516 tC.uniqueEventIndex++; 1517 tC.uniqueEventId = tC.generateEventId(); 1518 //default settings 1519 var queryParams = {}; 1520 var sourceKey = config.sourceKey || tC.config.sourceKey || containerSourceKey; 1521 if (sourceKey) { 1522 queryParams.token = sourceKey; 1523 } 1524 1525 var defaultEventData = tC.config.eventData; 1526 if (typeof defaultEventData === 'object' && tC.deepMerge) { 1527 properties = tC.deepMerge({}, defaultEventData, properties); 1528 } 1529 1530 //add automatic data 1531 properties.user = properties.user || {}; 1532 //get consents 1533 if (!properties.user.consent_categories) { 1534 var consentCategories = []; 1535 if ('privacy' in tC) { 1536 if ('getValidCategories' in tC.privacy) { 1537 consentCategories = tC.privacy.getValidCategories(); 1538 } else { 1539 consentCategories = tC.privacy.getOptinCategories(); 1540 } 1541 } 1542 //manage Trust v1 when consent categories are 'ALL' 1543 var privacyCookie = tC.getCookie(tC.privacy && tC.privacy.getCN() || 'TC_PRIVACY'); 1544 if (/ALL/.test(privacyCookie)) { 1545 consentCategories = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']; 1546 } 1547 properties.user.consent_categories = consentCategories; 1548 } 1549 if (!properties.user.rejected_vendors) { 1550 var rejectedVendors = []; 1551 if (tC.privacy) { 1552 if (tC.privacy.checkOptoutAllVendors && tC.privacy.checkOptoutAllVendors()) { 1553 rejectedVendors = 'ALL'; 1554 } else if (tC.privacy.checkOptinAllVendors && !tC.privacy.checkOptinAllVendors()) { 1555 rejectedVendors = tC.privacy.getOptoutVendors(); 1556 } 1557 } 1558 properties.user.rejected_vendors = rejectedVendors; 1559 } 1560 if (properties.revenue) { 1561 properties.amount = properties.revenue; 1562 } 1563 properties.integrations = properties.integrations || {}; 1564 //Facebook cookies 1565 // TODO: remove once it is handled properly on backend https://tagcommander.atlassian.net/browse/PTMS-6738 1566 properties.integrations.facebook = properties.integrations.facebook || {}; 1567 properties.integrations.facebook.fbc = tC.getCookie('_fbc') || undefined; // eslint-disable-line no-undefined 1568 properties.integrations.facebook.fbp = tC.getCookie('_fbp') || undefined; // eslint-disable-line no-undefined 1569 properties.integrations.facebook.event_id = properties.integrations.facebook.event_id || tC.uniqueEventId; 1570 //specific automatic properties regarding the type of event 1571 switch (event) { 1572 case 'page_view': 1573 properties.title = document.title; 1574 properties.path = location.pathname; 1575 properties.url = pageUrl; 1576 if (document.referrer !== '') properties.referrer = document.referrer; 1577 properties.type = properties.type || (window.tc_vars || {}).env_template || 'other'; 1578 properties.page_type = properties.page_type || (window.tc_vars || {}).env_template || 'other'; 1579 break; 1580 case 'purchase': 1581 properties.status = properties.status || 'in_progress'; 1582 properties.type = properties.type || 'online'; 1583 break; 1584 } 1585 var timezone; 1586 try { 1587 timezone = window.Intl && window.Intl.DateTimeFormat().resolvedOptions().timeZone; 1588 } catch(e) { 1589 // browser doesn't have the feature => skip 1590 } 1591 var de = document.documentElement || {}; 1592 var nav = window.navigator || {}; 1593 var page = { 1594 title: document.title, 1595 url: pageUrl, 1596 lang: de.lang, 1597 referrer: document.referrer || (tC.storage && tC.storage.get('TC_REFERRER')), 1598 viewport: { 1599 width: de.clientWidth, 1600 height: de.clientHeight, 1601 }, 1602 }; 1603 var pickCookies = function() { 1604 // Facebook: _fbp/_fbq 1605 // Google: https://business.safety.google/adscookies/ 1606 //AT-internet: atuserid/xtidc 1607 //Criteo: crto_mapped_user_id 1608 //Awin: awc 1609 var usefulCookies = [ 1610 '_fbp', 1611 '_fbc', 1612 /^_+(ga|gcl|opt_|utm)/, 1613 /^(pm_sess|VISITOR_INFO1|FPGCL|GA_)/, 1614 '__gsas',
1615 'NID', 1616 'DSID', 1617 'test_cookie', 1618 'id', 1619 'GED_PLAYLIST_ACTIVITY', 1620 'ACLK_DATA', 1621 'aboutads_sessNNN', 1622 'FPAU', 1623 'ANID', 1624 'AID', 1625 'IDE', 1626 'TAID', 1627 'FLC', 1628 'RUL', 1629 'FCCDCF', 1630 'FCNEC', 1631 'CUID', 1632 '1P_JAR', 1633 'Conversion', 1634 'YSC', 1635 'FPLC', 1636 '_gid', 1637 'AMP_TOKEN', 1638 'FPID', 1639 '_dc_gtm_', 1640 'PAIDCONTENT', 1641 'atuserid', 1642 'xtidc', 1643 'crto_mapped_user_id', 1644 'awc', 1645 'tduid', 1646 'kwks2s', 1647 '_ttp', 1648 /^_pk_id\./, 1649 '_pcid', // piano 1650 'pa_vid', // piano 1651 'rmStore', // rakuten 1652 '_uetmsclkid', // microsoft uet 1653 /^_dy.*/, // dynamic yield 1654 /^ty_.*/, // thank you analytics 1655 ]; 1656 return (document.cookie || '').split('; ').filter(function(cookie) { 1657 var name = cookie.split('=')[0]; 1658 return usefulCookies.find(function(pattern) { return pattern.test ? pattern.test(name) : (name === pattern); }); 1659 }).join('; '); 1660 }; 1661 var device = { 1662 cookie: pickCookies() || '', 1663 lang: nav.language || nav.userLanguage, 1664 screen: { 1665 width: window.screen.width, 1666 height: window.screen.height, 1667 }, 1668 timezone: timezone 1669 }; 1670 //store it as an internal vars for automatic mapping in other tags 1671 tC.internalvars.caEventData = properties; 1672 var eventId = config.eventId ? String(config.eventId) : tC.uniqueEventId; 1673 //build event data 1674 var eventObject = { 1675 event_name: event, 1676 context: { 1677 page: page, 1678 device: device, 1679 eventId: eventId, 1680 version: 2, 1681 created: new Date().toJSON(), 1682 generatorVersion: tC.generatorVersion, 1683 containerVersion: tC.containerVersion 1684 }, 1685 }; 1686 Object.assign(eventObject, properties); 1687 //limit history size 1688 if (100 < tC.triggeredEvents.length) { 1689 while (tC.triggeredEvents.length > 100) { 1690 tC.triggeredEvents.shift(); 1691 } 1692 } 1693 tC.triggeredEvents.push(eventObject); 1694 tC.lastTriggeredEvent = tC.triggeredEvents[tC.triggeredEvents.length - 1]; 1695 1696 var siteId = config.siteId || config.idSite; 1697 var collectionDomain = config.collectionDomain; 1698 //SEND HIT through sendBeacon or ajax as a fallback 1699 tC.track({ 1700 domain: collectionDomain, 1701 route: 'events', 1702 siteId: siteId, 1703 queryParams: queryParams, 1704 body: eventObject, 1705 caidSync: config.caidSync, 1706 }); 1707 1708 if (tC.eventTarget) { 1709 var dispatchParams = { 1710 eventData: eventObject, 1711 eventTarget: config.eventTarget, 1712 }; 1713 tC.eventTarget.dispatchEvent('track_' + event, dispatchParams); 1714 tC.eventTarget.dispatchEvent('track_all_events', dispatchParams); 1715 } 1716 return tC.uniqueEventIndex; 1717 }; 1718 1719})(); 1720 1721/* 1722 * Extension storage 1723 * 1724 * tC.storage 1725 */ 1726 1727tC.storage = { 1728 // legacy function has Storage 1729 has : function () { 1730 try { 1731 if ('localStorage' in window && window.localStorage != null) { 1732 window.localStorage.setItem('TC_CHECK', '1'); 1733 window.localStorage.removeItem('TC_CHECK'); 1734 return true; 1735 } 1736 return false; 1737 } catch (e) { 1738 return false; 1739 } 1740 }, 1741 isAvailable: function() { 1742 try { 1743 window.localStorage; 1744 return true; 1745 } catch (err) { 1746 return false;
1747 } 1748 }, 1749 //get storage 1750 get : function (k) { 1751 if (!this.isAvailable()) return; 1752 return window.localStorage.getItem(k); 1753 }, 1754 //set storage 1755 set : function (k, v) { 1756 if (!this.isAvailable()) return; 1757 try { 1758 return window.localStorage.setItem(k, v) || true; 1759 } catch (e) { 1760 // most likely localstorage size limit exceeded 1761 return false; 1762 } 1763 }, 1764 //remove storage 1765 remove : function (k) { 1766 if (!this.isAvailable()) return; 1767 return window.localStorage.removeItem(k) || true; 1768 }, 1769 setWithExpiry: function (key, value, nbDays) { 1770 if (!this.isAvailable()) return; 1771 var now = (new Date()).getTime(); 1772 var ttl = nbDays * 1000 * 60 * 60 * 24; 1773 var item = JSON.stringify({ 1774 value: value, 1775 expires: now + ttl, 1776 }); 1777 try { 1778 window.localStorage.setItem(key, item); 1779 } catch (e) { 1780 // most likely localstorage size limit exceeded 1781 } 1782 }, 1783 getWithExpiry: function (key) { 1784 if (!this.isAvailable()) return; 1785 var item = window.localStorage.getItem(key); 1786 if (item == null) { 1787 return null; 1788 } 1789 var now = (new Date()).getTime(); 1790 item = JSON.parse(item); 1791 if (item.expires < now) { 1792 this.remove(key); 1793 return null; 1794 } 1795 1796 return item.value; 1797 }, 1798}; 1799 1800/** 1801 * Extension hitCounter 1802 * 1803 * adds the hit counter for each container 1804 * allows to follow the usage of this container 1805 * will be called once in $frequency times 1806 * 1807 * @vars id_tagcommander,id_site,version,frequency 1808 */ 1809 1810(function() { 1811 var hitCounterExtend = {}; 1812 var containerName = 4453 + '_' + 21; 1813 /* 1814 * f = force le hit 1815 * c = className du hit img 1816 */ 1817 hitCounterExtend['hitCounter_' + containerName] = function() { 1818 var container = window['tC_' + containerName]; 1819 if(Math.floor(Math.random()*parseInt(container.frequency)) === 0){ 1820 var dns = window.tc_collect_dns || tC.clientCollectDns || 'manager.tagcommander.com'; 1821 tC.pixelTrack.add('https://' + dns + '/utils/hit.php?id='+container.id_container+'&site='+container.id_site+'&version='+container.containerVersion+'&frequency='+container.frequency+'&position='+tC.container_position+'&rand='+Math.random()); 1822 } 1823 }; 1824 1825 tC.extend(hitCounterExtend); 1826 1827 /* global tc_container_position */ 1828 tC.container_position = (typeof tc_container_position !== 'undefined') ? tc_container_position : (typeof tC.container_position !== 'undefined') ? tC.container_position : 0; 1829 tC.container_position++; 1830 if(typeof tc_container_position !== 'undefined'){ 1831 tc_container_position++; // eslint-disable-line no-global-assign 1832 } 1833 tC['hitCounter_' + containerName](); 1834})(); 1835/* 1836 * Extension script 1837 */ 1838 1839tC.script = { 1840 add: function(src,callback,abortTime){ 1841 var s = (document.getElementsByTagName('body')[0] || document.getElementsByTagName('script')[0].parentNode); 1842 var e = document.createElement('script'); 1843 e.type = 'text/javascript'; 1844 e.async = true; 1845 e.src = src; 1846 e.charset = 'utf-8'; 1847 e.id = 'tc_script_' + Math.random(); 1848 if(s){ 1849 if(callback){ 1850 if (e.addEventListener) { /* normal browsers (FF, Chrome,IE9+)*/ 1851 e.addEventListener('load', function(){ 1852 callback(); 1853 }, false); 1854 } 1855 else { 1856 e.onreadystatechange = function() { /* old IEs (8-) */ 1857 if (e.readyState in {loaded: 1, complete: 1}){ 1858 e.onreadystatechange = null; 1859 callback(); 1860 } 1861 }; 1862 } 1863 } 1864 if(abortTime && typeof abortTime === 'number'){ 1865 setTimeout(function(){ 1866 if ( s && e.parentNode ) { 1867 s.removeChild(e); 1868 } 1869 },abortTime); 1870 } 1871 s.insertBefore(e, s.firstChild); 1872 } 1873 else{ 1874 tC.log('tC.script error : the element <script> or <body> is not found ! the file '+src+' is not implemented !', 'warn'); 1875 } 1876 } 1877}; 1878 1879/* 1880 * Extension bypassBookmarklet 1881 */ 1882 1883 1884tC.bypassBookmarklet = true; 1885 1886tC.extend({ 1887 addClass: function( value ) { 1888 /* global core_rspace */ 1889 var classNames, i, l, elem, 1890 setClass, c, cl; 1891 1892 if ( tC.isFunction( value ) ) { 1893 return this.each(function( j ) { 1894 jQuery( this ).addClass( value.call(this, j, this.className) ); 1895 }); 1896 } 1897 1898 if ( value && typeof value === "string" ) { 1899 classNames = value.split( core_rspace ); 1900 1901 for ( i = 0, l = this.length; i < l; i++ ) { 1902 elem = this[ i ]; 1903 1904 if ( elem.nodeType === 1 ) { 1905 if ( !elem.className && classNames.length === 1 ) { 1906 elem.className = value; 1907 1908 } else { 1909 setClass = " " + elem.className + " "; 1910 1911 for ( c = 0, cl = classNames.length; c < cl; c++ ) { 1912 if ( setClass.indexOf( " " + classNames[ c ] + " " ) < 0 ) { 1913 setClass += classNames[ c ] + " "; 1914 } 1915 } 1916 elem.className = jQuery.trim( setClass ); 1917 } 1918 } 1919 } 1920 } 1921 1922 return this; 1923 }, 1924 removeClass: function( value ) { 1925 /* global rclass */ 1926 var removes, className, elem, c, cl, i, l; 1927 1928 if ( tC.isFunction( value ) ) { 1929 return this.each(function( j ) { 1930 jQuery( this ).removeClass( value.call(this, j, this.className) ); 1931 }); 1932 } 1933 if ( (value && typeof value === "string") || value === undefined ) { 1934 removes = ( value || "" ).split( core_rspace ); 1935 1936 for ( i = 0, l = this.length; i < l; i++ ) { 1937 elem = this[ i ]; 1938 if ( elem.nodeType === 1 && elem.className ) { 1939 1940 className = (" " + elem.className + " ").replace( rclass, " " ); 1941 1942 // loop over each item in the removal list 1943 for ( c = 0, cl = removes.length; c < cl; c++ ) { 1944 // Remove until there is nothing to remove, 1945 while ( className.indexOf(" " + removes[ c ] + " ") >= 0 ) { 1946 className = className.replace( " " + removes[ c ] + " " , " " ); 1947 } 1948 } 1949 elem.className = value ? jQuery.trim( className ) : ""; 1950 } 1951 } 1952 } 1953 return this; 1954 }, 1955 1956 toggleClass: function( value, stateVal ) { 1957 var type = typeof value, 1958 isBool = typeof stateVal === "boolean"; 1959 1960 if ( tC.isFunction( value ) ) { 1961 return this.each(function( i ) { 1962 tC( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); 1963 }); 1964 } 1965 1966 return this.each(function() { 1967 if ( type === "string" ) { 1968 // toggle individual class names 1969 var className, 1970 i = 0, 1971 self = jQuery( this ), 1972 state = stateVal, 1973 classNames = value.split( core_rspace ); 1974 1975 while ( (className = classNames[ i++ ]) ) { 1976 // check each className given, space separated list 1977 state = isBool ? state : !self.hasClass( className ); 1978 self[ state ? "addClass" : "removeClass" ]( className ); 1979 } 1980 1981 } else if ( type === 'undefined' || type === "boolean" ) { 1982 if ( this.className ) { 1983 // store className if set 1984 jQuery._data( this, "__className__", this.className ); 1985 } 1986 1987 // toggle whole className 1988 this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; 1989 } 1990 }); 1991 }, 1992 1993 hasClass: function( selector ) { 1994 var className = " " + selector + " ", 1995 i = 0, 1996 l = this.length; 1997 for ( ; i < l; i++ ) { 1998 if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { 1999 return true; 2000 } 2001 } 2002 2003 return false;
2004 } 2005}); 2006(function() { 2007 'use strict'; 2008 2009 window.tC = window.tC || {}; 2010 2011 if (window.tC.Bitfield != null) { 2012 return; 2013 } 2014 2015 var bufferIndexFromBitIndex = function(bitIndex, bitfieldSize) { 2016 if (isNaN(bitIndex) || bitIndex < 0 || bitIndex >= bitfieldSize) { 2017 throw new RangeError('Bitfield: invalid index'); 2018 } 2019 var bufferIndex = bitIndex >> 3; // Equivalent to: Math.floor(bitIndex / 8); 2020 return bufferIndex; 2021 }; 2022 2023 var bitMaskFromIndex = function(bitIndex) { 2024 return 1 << (bitIndex % 8); 2025 }; 2026 2027 var Bitfield = function(nbBits) { 2028 if (isNaN(nbBits) || nbBits <= 0) { 2029 throw new Error('Bitfield: size must be greater than zero'); 2030 } 2031 var nbBytes = Math.ceil(nbBits / 8); 2032 /* global Uint8Array */ 2033 this.buffer = new Uint8Array(nbBytes); // eslint-disable-line es/no-typed-arrays 2034 this.length = nbBits; 2035 }; 2036 2037 Bitfield.fromBase64URL = function(str) { 2038 var base64 = str 2039 .replace(/\-/g, '+') // eslint-disable-line no-useless-escape 2040 .replace(/_/g, '/'); 2041 2042 var binaryString = atob(base64); 2043 var bitfield = new Bitfield(binaryString.length * 8); 2044 2045 for (var index in binaryString) { 2046 if (binaryString.hasOwnProperty(index)) { 2047 bitfield.buffer[index] = binaryString.charCodeAt(index); 2048 } 2049 } 2050 return bitfield; 2051 }; 2052 2053 Bitfield.prototype.toBase64URL = function() { 2054 var binaryString = String.fromCharCode.apply(null, this.buffer); 2055 return btoa(binaryString) 2056 .replace(/\+/g, '-') 2057 .replace(/\//g, '_'); 2058 }; 2059 2060 Bitfield.fromArray = function(arr) { 2061 var bitfield = new Bitfield(arr.length); 2062 for (var i = 0; i < arr.length; ++i) { 2063 if (arr[i]) { 2064 bitfield.set(i); 2065 } 2066 } 2067 return bitfield; 2068 }; 2069 2070 Bitfield.prototype.toArray = function() { 2071 var res = Array(this.length); 2072 for (var i = 0; i < this.length; ++i) { 2073 res[i] = this.get(i); 2074 } 2075 return res; 2076 }; 2077 2078 Bitfield.prototype.get = function(index) { 2079 var bufIndex = bufferIndexFromBitIndex(index, this.length); 2080 var bitMask = bitMaskFromIndex(index); 2081 return Boolean(this.buffer[bufIndex] & bitMask); 2082 }; 2083 2084 Bitfield.prototype.set = function(index) { 2085 var bufIndex = bufferIndexFromBitIndex(index, this.length); 2086 var bitMask = bitMaskFromIndex(index); 2087 this.buffer[bufIndex] |= bitMask; 2088 return this; 2089 }; 2090 2091 Bitfield.prototype.unset = function(index) { 2092 var bufIndex = bufferIndexFromBitIndex(index, this.length); 2093 var bitMask = bitMaskFromIndex(index); 2094 this.buffer[bufIndex] &= ~(bitMask); 2095 return this; 2096 }; 2097 2098 window.tC.Bitfield = Bitfield; 2099})(); 2100 2101/* 2102 * Extension privacy common part between V2 and Standalone 2103 */ 2104 2105; 2106 2107tC.arrayUniqueFilter = function (value, index, array) { 2108 return array.indexOf(value) === index; 2109}; 2110 2111tC.privacy = tC.privacy || { 2112 reactived: null, 2113 id: null, 2114 version: null, 2115 categories: null, 2116 vendorsDisabled: null, // legacy IABv1 2117 optinVendors: [], 2118 cookieData: null, 2119 initialized: false, 2120 2121 init: function () { 2122 //get the data cookie 2123 var cookie = tC.getCookie(tC.privacy.getCN()); 2124 if(cookie) { 2125 //we first check if current cookie has the default cookie separator (@) to build cookieData array 2126 tC.privacy.cookieData = cookie.indexOf('@') >= 0 ? cookie.split('@') : cookie.split(tC.privacy.getCS()); 2127 }else{//fallback if tC.getCookie had a problem 2128 tC.privacy.cookieData = []; 2129 } 2130 2131 tC.privacy.vendorsDisabled = tC.getCookie(this.getVCN()).split(','); // legacy IABv1 2132 2133 tC.privacy.optinVendors = []; 2134 var vendorsConsentArray = tC.privacy.cookieData[5] || ''; 2135 if(String(vendorsConsentArray) !== '') { 2136 vendorsConsentArray = tC.Bitfield.fromBase64URL(vendorsConsentArray).toArray(); 2137 vendorsConsentArray.forEach(function (value, index) { 2138 if (value === true) { 2139 tC.privacy.optinVendors.push(String(index)); 2140 } 2141 }); 2142 } 2143 if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) { 2144 var acmVendorsConsentArray = tC.storage.getWithExpiry(this.getCN() + '_ACM'); 2145 if (acmVendorsConsentArray != null && String(acmVendorsConsentArray) !== '') { 2146 acmVendorsConsentArray = tC.Bitfield.fromBase64URL(acmVendorsConsentArray).toArray(); 2147 acmVendorsConsentArray.forEach(function (value, index) { 2148 if (value === true) { 2149 tC.privacy.optinVendors.push('acm_' + index); 2150 } 2151 }); 2152 } 2153 } 2154 2155 //get categories in cookie => this variable stores all OPTIN categories 2156 tC.privacy.categories = tC.privacy.cookieData[2] || ''; 2157 tC.privacy.cachedBlockedOnCategories = tC.privacy.cookieData[3] ? tC.privacy.cookieData[3].split(',') : null; 2158 if (tC.privacy.categories === 'ALL') { // legacy: previous format 2159 //we get the opt type (first parameter in the main cookie, 0 = optin ; 1 = optout) 2160 var optType = parseInt(tC.privacy.cookieData[0] || 0); 2161 if (optType === 1) {//optout to "ALL" => no category optin 2162 tC.privacy.categories = []; 2163 } else {//optin to "ALL" => we set the list to a real list of category ids 2164 tC.privacy.categories = tC.privacy.allSelectableCategoriesId || []; 2165 } 2166 } else {//we have a regular list of ids (may be empty) => split to create an array 2167 tC.privacy.categories = tC.privacy.categories !== '' ? tC.privacy.categories.split(',') : []; 2168 } 2169 2170 if (tC.privacy.cookieData[0] == null && tC.privacy.initIabLegitimateInterests){ 2171 tC.privacy.initIabLegitimateInterests(); 2172 } 2173 2174 var privacyDates = (tC.privacy.cookieData[4] || '').split(','); 2175 tC.privacy.consentDates = { 2176 updatedAt: Number(privacyDates[0]) || null, 2177 createdAt: Number(privacyDates[1]) || null, 2178 expiresAt: Number(privacyDates[2]) || null, 2179 }; 2180 if (!tC.privacy.initialized) { 2181 tC.privacy.initialized = true; 2182 if (tC.gtagInit) { 2183 tC.gtagInit(); 2184 } 2185 if (tC.privacy.gcmEnabled) { 2186 tC.privacy.gcmInit(); 2187 } 2188 // async dispatch so that dispatch happens after tC.event functions are installed 2189 tC.eventTarget.dispatchEventAsync('privacy-module-ready'); 2190 if (tC.privacy.cookieData.length !== 0) { 2191 tC.eventTarget.dispatchEventAsync('consent-ready'); 2192 } 2193 } 2194 } 2195}; 2196 2197tC.privacy.saveConsent = function(options) { 2198 var cookieIsOptin = options.optin; 2199 2200 if (tC.isCookieEnabledBool == null) { 2201 tC.isCookieEnabledBool = tC.isCookieEnabled(); 2202 } 2203 if (tC.isCookieEnabledBool === false) { 2204 return; 2205 } 2206 2207 var categoryList = options.categoryList || ''; 2208 // if there is no category selected but there could be (meaning there is at least one category which is not in "blocked on" configuration) => it's actually an opt-out 2209 if(categoryList.length === 0 && tC.privacy.privacySelectableUnblockedCategoriesId && tC.privacy.privacySelectableUnblockedCategoriesId.length > 0){ 2210 cookieIsOptin = false;
2211 } 2212 var hitIsOptin = options.hitOptin != null ? options.hitOptin : options.optin; 2213 var vendorList = options.vendorList || ''; 2214 var privacyVersion = options.privacyVersion || tC.privacy.getVersion(); 2215 var privacyId = options.privacyId || tC.privacy.getId(); 2216 var action = options.action || 'banner_button'; 2217 2218 var cookieOptions = {}; 2219 if (options.acmVendorList != null) { 2220 cookieOptions.acmVendorList = options.acmVendorList; 2221 } 2222 2223 var isInitialConsent = tC.privacy.cookieData == null || tC.privacy.cookieData.length === 0; 2224 tC.privacy.cok(Number(! cookieIsOptin), privacyVersion, categoryList, vendorList, cookieOptions); 2225 if(options.sendHit !== false) { 2226 tC.privacy.hit(Number(hitIsOptin), privacyVersion, privacyId, action); 2227 } 2228 if (window.tCPrivacyTagManager) { 2229 tC.privacy.sendDataOtherTMS(); 2230 } 2231 if (tC.privacy.gcmEnabled) { 2232 tC.privacy.gcmUpdate(); 2233 } 2234 if (isInitialConsent) { 2235 tC.eventTarget.dispatchEvent('consent-ready'); 2236 } 2237 // avoid collision with existing custom consent-update events, skipTrigger 2238 // legacy event for iab tag and cact('onReady') / cact('onUpdate') 2239 tC.eventTarget.dispatchEvent('consent-update', { skipTrigger: true }); 2240 tC.eventTarget.dispatchEvent('consent-updated'); // new event used for tag triggers 2241}; 2242 2243tC.privacy.In = tC.privacy.In || function (privacyId, privacyVersion, tags, categoryList, action, vendorList, options) { 2244 options = options || {}; 2245 tags = null; // unused, left for retrocompatibility 2246 2247 tC.privacy.saveConsent({ 2248 optin: true, 2249 privacyId: privacyId, 2250 privacyVersion: privacyVersion, 2251 action: action, 2252 categoryList: categoryList, 2253 vendorList: vendorList, 2254 acmVendorList: options.acmVendorList, 2255 sendHit: options.sendHit, 2256 }); 2257}; 2258 2259tC.privacy.Out = tC.privacy.Out || function (privacyId, privacyVersion, tags, categoryList, action, vendorList, options) { 2260 options = options || {}; 2261 tags = null; // unused, left for retrocompatibility 2262 if (categoryList === 'ALL') { 2263 categoryList = ''; 2264 } 2265 2266 tC.privacy.saveConsent({ 2267 optin: false, 2268 privacyId: privacyId, 2269 privacyVersion: privacyVersion, 2270 action: action, 2271 categoryList: categoryList, 2272 vendorList: vendorList, 2273 acmVendorList: options.acmVendorList, 2274 sendHit: options.sendHit, 2275 }); 2276}; 2277 2278tC.privacy.encodeVendorList = function (vendorList) { 2279 if(vendorList.length > 0){ 2280 vendorList = vendorList.map(Number).sort(function (a, b) { 2281 return a - b; 2282 }); 2283 2284 var maxIabId = vendorList[vendorList.length - 1]; 2285 var bitfield = new tC.Bitfield(maxIabId + 1);//+1 because array index begin at 0 & IAB ids begin at 1 2286 vendorList.forEach(function(id){ 2287 bitfield.set(id); 2288 }); 2289 return bitfield.toBase64URL(); 2290 } 2291 return ''; 2292}; 2293 2294tC.privacy.optinAll = function(action, options) { 2295 action = action || 'banner_button'; 2296 options = options || {}; 2297 var listCategories = tC.privacy.getCategoryIdList().join(','); 2298 var listVendors = tC.privacy.getVendorIdList(); 2299 2300 var acmVendorList; 2301 if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) { 2302 var allVendors = tC.privacy.prepareAcmVendorConsent(listVendors); 2303 listVendors = allVendors.nonAcmVendors; 2304 acmVendorList = tC.privacy.encodeVendorList(allVendors.acmVendors); 2305 } 2306 2307 listVendors = tC.privacy.encodeVendorList(listVendors); 2308 tC.privacy.saveConsent({ 2309 optin: true, 2310 action: action, 2311 categoryList: listCategories, 2312 vendorList: listVendors, 2313 acmVendorList: acmVendorList, 2314 sendHit: options.sendHit, 2315 }); 2316}; 2317 2318tC.privacy.prepareConsent = function(options) { 2319 options = options || {}; 2320 var listCategories = (options.categories || []).map(String); 2321 var listVendors = (options.vendors || []).map(String); 2322 2323 if (tC.privacy.iabCategoriesToPublicCategories) { 2324 var iabCategories = tC.privacy.iabCategoriesToPublicCategories({ 2325 purposes: (options.iabPurposes || []).map(String), 2326 legIntPurposes: (options.iabPurposes || []).map(String).filter(function(id) { 2327 return id !== 1; // no legInt for purpose 1 2328 }), 2329 specialFeatures: (options.iabSpecialFeatures || []).map(String) 2330 }); 2331 listCategories = listCategories.concat(iabCategories); 2332 } 2333 if (tC.privacy.iabVendorsToPublicVendors) { 2334 var iabVendors = tC.privacy.iabVendorsToPublicVendors({ 2335 vendors: (options.iabVendors || []).map(String), 2336 legIntVendors: (options.iabVendors || []).map(String), 2337 }); 2338 listVendors = listVendors.concat(iabVendors); 2339 } 2340 return { vendors: listVendors, categories: listCategories }; 2341}; 2342 2343tC.privacy.optin = function(action, options) { 2344 action = action || 'banner_button'; 2345 options = options || {}; 2346 var consent = tC.privacy.prepareConsent(options); 2347 var listCategories = consent.categories; 2348 var listVendors = consent.vendors; 2349 2350 if (listCategories.length === 0 && listVendors.length === 0) { 2351 return; 2352 } 2353 2354 listCategories = listCategories 2355 .concat(options.reset ? [] : tC.privacy.getOptinCategories()) 2356 .filter(tC.arrayUniqueFilter); 2357 listVendors = listVendors 2358 .concat(options.reset ? [] : tC.privacy.getOptinVendors()) 2359 .filter(tC.arrayUniqueFilter); 2360 2361 var acmVendorList; 2362 if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) { 2363 var allVendors = tC.privacy.prepareAcmVendorConsent(listVendors); 2364 listVendors = allVendors.nonAcmVendors; 2365 acmVendorList = tC.privacy.encodeVendorList(allVendors.acmVendors); 2366 } 2367 listVendors = tC.privacy.encodeVendorList(listVendors); 2368 2369 tC.privacy.saveConsent({ 2370 optin: true, 2371 action: action, 2372 categoryList: listCategories, 2373 vendorList: listVendors, 2374 acmVendorList: acmVendorList, 2375 hitOptin: options.hitOptin, // for iab legints (refuse all) 2376 sendHit: options.sendHit, 2377 }); 2378}; 2379 2380tC.privacy.optoutAll = function(action, options) { 2381 action = action || 'banner_button'; 2382 options = options || {}; 2383 var acmVendorList; 2384 if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) { 2385 acmVendorList = ''; 2386 } 2387 tC.privacy.saveConsent({ 2388 optin: false, 2389 action: action, 2390 categoryList: '', 2391 vendorList: '', 2392 acmVendorList: acmVendorList, 2393 sendHit: options.sendHit, 2394 }); 2395}; 2396 2397tC.privacy.optout = function(action, options) { 2398 action = action || 'banner_button'; 2399 var consent = tC.privacy.prepareConsent(options); 2400 var listCategories = consent.categories; 2401 var listVendors = consent.vendors; 2402 2403 if (listCategories.length === 0 && listVendors.length === 0) { 2404 return; 2405 } 2406 2407 var optinCategories = tC.privacy.getOptinCategories(); 2408 var optinVendors = tC.privacy.getOptinVendors(); 2409 2410 listCategories = optinCategories.filter(function(id) { 2411 return listCategories.indexOf((id)) === -1; 2412 }); 2413 listVendors = optinVendors.filter(function(id) { 2414 return listVendors.indexOf((id)) === -1; 2415 }); 2416 if (listCategories.length === 0 && listVendors.length === 0) { 2417 tC.privacy.optoutAll(action, { sendHit: options.sendHit }); 2418 return; 2419 } 2420 2421 var acmVendorList; 2422 if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) { 2423 var allVendors = tC.privacy.prepareAcmVendorConsent(listVendors); 2424 listVendors = allVendors.nonAcmVendors; 2425 acmVendorList = tC.privacy.encodeVendorList(allVendors.acmVendors); 2426 } 2427 listVendors = tC.privacy.encodeVendorList(listVendors); 2428 tC.privacy.saveConsent({ 2429 optin: true, 2430 action: action, 2431 categoryList: listCategories, 2432 vendorList: listVendors, 2433 acmVendorList: acmVendorList, 2434 sendHit: options.sendHit, 2435 }); 2436}; 2437 2438tC.privacy.getFlattenCategories = function() { 2439 return tC.privacy.allCategories.flatMap(function(category) { 2440 return (category.subCategories || []).concat(category); 2441 }); 2442}; 2443 2444tC.privacy.getFlattenCategoryIdList = function() { 2445 return tC.privacy.getFlattenCategories().map(function(category) { 2446 return category.id; 2447 }); 2448}; 2449 2450tC.privacy.getCategoryIdList = function() { 2451 var categories = tC.privacy.privacySelectableUnblockedCategoriesId || tC.privacy.getFlattenCategoryIdList(); 2452 if (tC.privacy.getIabCategoryIdList) { 2453 categories = categories.concat(tC.privacy.getIabCategoryIdList()); 2454 } 2455 return categories; 2456}; 2457 2458tC.privacy.getVendorIdList = function() { 2459 var vendors = (tC.privacy.includedVendorIds || []); 2460 if (tC.privacy.isIabGoogleAcmEnabled != null && tC.privacy.isIabGoogleAcmEnabled()) {
2461 vendors = vendors.filter(function(id) { 2462 return ! (id > 1000); // everything but IAB vendors (predefined, custom, google) 2463 }); 2464 } else { 2465 vendors = vendors.filter(function(id) { 2466 return id < 1000; // filter IAB and ACM vendors 2467 }); 2468 } 2469 if (tC.privacy.getIabVendorIdList) { 2470 vendors = vendors.concat(tC.privacy.getIabVendorIdList()); 2471 } 2472 return vendors; 2473}; 2474 2475tC.privacy.getId = tC.privacy.getId || function() { 2476 return ''; 2477}; 2478 2479tC.privacy.getVersion = tC.privacy.getVersion || function() { 2480 return ''; 2481}; 2482 2483tC.privacy.setTcfConsent = function(tcfConsent, options) { 2484 var index; 2485 var categories = options.categories || {}; 2486 var vendors = options.vendors || {}; 2487 2488 if (tcfConsent.purpose) { 2489 if (tcfConsent.purpose.consents) { 2490 for (var p in tcfConsent.purpose.consents) { 2491 index = 'tcf2_' + p; 2492 categories[index] = categories[index] || {}; 2493 categories[index].status = tcfConsent.purpose.consents[p] === true ? options.on : options.off; 2494 } 2495 } 2496 if (tcfConsent.purpose.legitimateInterests) { 2497 for (var li in tcfConsent.purpose.legitimateInterests) { 2498 index = 'tcf2_' + li; 2499 categories[index] = categories[index] || {}; 2500 categories[index].legIntStatus = tcfConsent.purpose.legitimateInterests[li] === true ? options.on : options.off; 2501 } 2502 } 2503 } 2504 2505 if (tcfConsent.vendor) { 2506 if (tcfConsent.vendor.consents) { 2507 for (var v in tcfConsent.vendor.consents) { 2508 index = 'tcf2_' + v; 2509 vendors[index] = vendors[index] || {}; 2510 vendors[index].status = tcfConsent.vendor.consents[v] === true ? options.on : options.off; 2511 } 2512 } 2513 if (tcfConsent.vendor.legitimateInterests) { 2514 for (var vli in tcfConsent.vendor.legitimateInterests) { 2515 index = 'tcf2_' + vli; 2516 vendors[index] = vendors[index] || {}; 2517 vendors[index].legIntStatus = tcfConsent.vendor.legitimateInterests[vli] === true ? options.on : options.off; 2518 } 2519 } 2520 } 2521 2522 if (tcfConsent.specialFeatureOptins) { 2523 for (var sf in tcfConsent.specialFeatureOptins) { 2524 index = 'tcf2_sf_' + sf; 2525 categories[index] = categories[index] || {}; 2526 categories[index].status = tcfConsent.specialFeatureOptins[sf] === true ? options.on : options.off; 2527 } 2528 } 2529 2530 return { 2531 categories: categories, 2532 vendors: vendors, 2533 }; 2534}; 2535 2536tC.privacy.isSet = tC.privacy.isSet || function() { 2537 return tC.privacy.cookieData != null && tC.privacy.cookieData.length > 0; 2538}; 2539 2540tC.privacy.getConsent = function(options) { 2541 options = options || {}; 2542 var prettyMode = options.pretty; 2543 2544 var defaultStatus = prettyMode ? 'off': false; 2545 var globalStatus = null; 2546 2547 //init cookie Data only when necessary 2548 if (tC.privacy.cookieData == null) { 2549 tC.privacy.init(); 2550 } 2551 2552 if (tC.privacy.cookieData.length === 0) { 2553 defaultStatus = prettyMode ? 'unset': null; 2554 globalStatus = 'unset'; 2555 } else if (Number(tC.privacy.cookieData[0]) === 1) { 2556 globalStatus = 'all-off'; 2557 } 2558 var onStatus = true; 2559 var offStatus = false; 2560 2561 if(prettyMode){ 2562 onStatus = 'on'; 2563 offStatus = 'off'; 2564 } 2565 2566 var optinCategories = tC.privacy.getOptinCategories().reduce(function(res, id) { 2567 res[id] = onStatus; 2568 return res; 2569 }, {}); 2570 var categories = tC.privacy.getCategoryIdList(); 2571 categories = categories.reduce(function(res, catId) { 2572 var key = catId; 2573 var field = 'status'; 2574 2575 if (catId > 10000 && catId < 13000) { 2576 key = 'tcf2_' + Math.ceil((catId - 10000) / 2); 2577 2578 var isLegInt = catId % 2 === 0; 2579 if (isLegInt) { 2580 field = 'legIntStatus'; 2581 } 2582 } else if (catId > 13000) { 2583 key = 'tcf2_sf_' + (catId - 13000); 2584 } 2585 2586 res[key] = res[key] || {}; 2587 res[key][field] = optinCategories[catId] || defaultStatus; 2588 if (globalStatus == null && res[key][field] !== onStatus) { 2589 globalStatus = 'mixed'; 2590 } 2591 return res; 2592 }, {}); 2593
2594 tC.privacy.getBlockedOnCategories().forEach(function (catId) { 2595 categories[catId] = {status: onStatus, required: true}; 2596 }); 2597 2598 var vendors = tC.privacy.getVendorIdList(); 2599 var optinVendors = tC.privacy.getOptinVendors().reduce(function(res, id) { 2600 res[id] = onStatus; 2601 return res; 2602 }, {}); 2603 vendors = vendors.reduce(function(res, catId) { 2604 var key = catId; 2605 var field = 'status'; 2606 2607 if (catId > 1000) { 2608 key = 'tcf2_' + Math.ceil((catId - 1000) / 2); 2609 2610 var isLegInt = catId % 2 === 0; 2611 if (isLegInt) { 2612 field = 'legIntStatus'; 2613 } 2614 } 2615 2616 res[key] = res[key] || {}; 2617 res[key][field] = optinVendors[catId] || defaultStatus; 2618 if (globalStatus == null && res[key][field] !== onStatus) { 2619 globalStatus = 'mixed'; 2620 } 2621 return res; 2622 }, {}); 2623 2624 if (tC.storage.getWithExpiry(tC.privacy.getCN() + '_TCF')) { 2625 var tcfConsent = tC.storage.getWithExpiry(tC.privacy.getCN() + '_TCF'); 2626 var filledConsent = tC.privacy.setTcfConsent(tcfConsent, { 2627 categories: categories, 2628 vendors: vendors, 2629 on: onStatus, 2630 off: offStatus, 2631 }); 2632 categories = filledConsent.categories; 2633 vendors = filledConsent.vendors; 2634 } 2635 2636 globalStatus = globalStatus || 'all-on'; 2637 var meta = { 2638 version: '1.0', 2639 siteId: tC.id_site, 2640 consentId: tC.privacy.getConsentId(), 2641 bannerId: String(tC.privacy.getId()), 2642 bannerVersion: tC.privacy.getVersion(), 2643 }; 2644 if (tC.privacy.iabVendorList) { 2645 meta.tcfPolicyVersion = String(tC.privacy.iabVendorList.tcfPolicyVersion); 2646 } 2647 if (tC.privacy.consentDates) { 2648 meta.dateCreated = tC.privacy.consentDates.createdAt; 2649 meta.dateUpdated = tC.privacy.consentDates.updatedAt; 2650 meta.dateExpires = tC.privacy.consentDates.expiresAt; 2651 } 2652 return { 2653 meta: meta, 2654 consent: { 2655 status: globalStatus, 2656 categories: categories, 2657 vendors: vendors, 2658 } 2659 }; 2660}; 2661 2662tC.privacy.updateConsent = function(options) { 2663 options = options || {}; 2664 if (options.status === 'all-on') { 2665 tC.privacy.optinAll(options.action, { sendHit: options.sendHit }); 2666 return; 2667 } else if (options.status === 'all-off') { 2668 tC.privacy.optoutAll(options.action, { sendHit: options.sendHit }); 2669 return; 2670 } 2671 2672 options.categories = options.categories || {}; 2673 options.vendors = options.vendors || {}; 2674 var onStatus = options.pretty ? 'on' : true; 2675 var offStatus = options.pretty ? 'off' : false; 2676 2677 var optins = { categories: [], vendors: [], sendHit: false }; 2678 var optouts = { categories: [], vendors: [], sendHit: false }; 2679 var hasIab = window.__tcfapi != null; 2680 2681 Object.keys(options.categories).forEach(function(categoryId) { 2682 var internalId = categoryId; 2683 var category = options.categories[categoryId]; 2684 2685 if (hasIab) { 2686 var tcfId = String(categoryId).match(/tcf2_(\d*)/); 2687 var tcfSpFeatId = tcfId ? String(categoryId).match(/tcf2_sf_(\d*)/) : null; 2688 2689 if (tcfSpFeatId) { 2690 internalId = 13000 + Number(tcfSpFeatId[1]); 2691 } 2692 else if (tcfId) { // purpose 2693 internalId = 10000 + (Number(tcfId[1]) * 2 - 1); 2694 if (category.legIntStatus === onStatus) { 2695 optins.categories.push(internalId + 1); 2696 } else if (category.legIntStatus === offStatus) { 2697 optouts.categories.push(internalId + 1); 2698 } 2699 } 2700 } 2701 if (category.status === onStatus) { 2702 optins.categories.push(internalId); 2703 } else if (category.status === offStatus) { 2704 optouts.categories.push(internalId); 2705 } 2706 }); 2707 2708 Object.keys(options.vendors).forEach(function(vendorId) { 2709 var internalId = vendorId; 2710 var vendor = options.vendors[vendorId]; 2711 2712 if (hasIab) { 2713 var tcfId = String(vendorId).match(/tcf2_(\d*)/); 2714 2715 if (tcfId) { // iab vendor 2716 internalId = 1000 + (Number(tcfId[1]) * 2 - 1); 2717 if (vendor.legIntStatus === onStatus) { 2718 optins.vendors.push(internalId + 1); 2719 } else if (vendor.legIntStatus === offStatus) { 2720 optouts.vendors.push(internalId + 1); 2721 } 2722 } 2723 } 2724 if (vendor.status === onStatus) { 2725 optins.vendors.push(internalId); 2726 } else if (vendor.status === offStatus) { 2727 optouts.vendors.push(internalId); 2728 } 2729 }); 2730 2731 tC.privacy.optin(options.action, optins); 2732 tC.privacy.optout(options.action, optouts); 2733 2734 var sendHit = options.sendHit == null ? true : options.sendHit; 2735 if (sendHit) { 2736 var isOptin = tC.privacy.getOptinCategories().length > 0 || tC.privacy.getOptinVendors().length > 0; 2737 var action = options.action || 'banner_button'; 2738 tC.privacy.hit(Number(isOptin), tC.privacy.getVersion(), tC.privacy.getId(), action); 2739 } 2740}; 2741 2742tC.privacy.revokeConsent = function() { 2743 tC.privacy.optoutAll(); 2744 tC.removeCookie(tC.privacy.getCN(), window.tc_privacy_force_domain); 2745 tC.removeCookie(tC.privacy.getPCCN(), window.tc_privacy_force_domain); 2746 tC.privacy.cookieData = []; 2747 2748 if (tC.storage) { 2749 tC.storage.remove(tC.privacy.getCN() + '_TCF'); 2750 tC.storage.remove(tC.privacy.getCN() + '_ACM'); 2751 } 2752 2753 tC.removeCookie('TCPID', window.tc_privacy_force_domain); 2754 tC.setCookie('TCPID', tC.privacy.rand(), 393, '/', window.tc_privacy_force_domain || tC.domain()); 2755 tC.eventTarget.dispatchEvent('consent-revoke'); 2756 tC.eventTarget.dispatchEvent('consent-update'); 2757}; 2758 2759tC.privacy.cok = tC.privacy.cok || function (action, version, categoryList, vendorList, options) { 2760 options = options || {}; 2761 categoryList = categoryList || ''; 2762 vendorList = vendorList || ''; 2763 var consentDuration = tC.privacy.consentDuration || 13; 2764 consentDuration = parseInt(consentDuration) * 30;//conversion in days 2765 var forceDomain = typeof window.tc_privacy_force_domain !== 'undefined' ? window.tc_privacy_force_domain : null;
2766 // in case of IAB TCFv2 context, add vendor list version in cookie 2767 if (tC.privacy.iabVendorList) { 2768 version = version + '|' + tC.privacy.iabVendorList.gvlSpecificationVersion + '|' 2769 + tC.privacy.iabVendorList.tcfPolicyVersion + '|' 2770 + tC.privacy.iabVendorList.vendorListVersion; 2771 } 2772 if (tC.privacy.getId) { 2773 version = version + '|' + tC.privacy.getId() + '|' + tC.id_site; 2774 } 2775 2776 var now = new Date().getTime(); 2777 var consentDates = now; // old format 2778 if (tC.privacy.consentDates) { 2779 var expires = now + (consentDuration * 1000 * 60 * 60 * 24); 2780 2781 tC.privacy.consentDates.updatedAt = now; 2782 tC.privacy.consentDates.createdAt = tC.privacy.consentDates.createdAt || now; 2783 tC.privacy.consentDates.expiresAt = expires; 2784 2785 consentDates = [ 2786 tC.privacy.consentDates.updatedAt, 2787 tC.privacy.consentDates.createdAt, 2788 tC.privacy.consentDates.expiresAt, 2789 ].join(','); 2790 } 2791 var cookieValue = action + tC.privacy.getCS() + version + tC.privacy.getCS() 2792 + categoryList + tC.privacy.getCS() + (tC.privacy.blockedOnCategories || '') 2793 + tC.privacy.getCS() + consentDates + tC.privacy.getCS() + vendorList; 2794 tC.setCookie(tC.privacy.getCN(), cookieValue, consentDuration, '/', forceDomain); 2795 tC.setCookie(tC.privacy.getPCCN(), categoryList, consentDuration, '/', forceDomain); 2796 if (options.acmVendorList != null) { 2797 tC.storage.setWithExpiry(tC.privacy.getCN() + '_ACM', options.acmVendorList, consentDuration); 2798 } 2799 if (window.__tcfapi != null) { 2800 var tcfStorage = tC.privacy.getCN() + '_TCF'; 2801 tC.storage.remove(tcfStorage); 2802 var isAsyncGetTcData = false; 2803 var hasGcmTcfSupport = tC.privacy.gcmEnabled && window.gtag_enable_tcf_support; 2804 window.__tcfapi('getTCData', 2, function(tcfData, success) { 2805 if (success) { 2806 tcfData.vendorListVersion = tC.privacy.iabVendorList.vendorListVersion; 2807 tC.storage.setWithExpiry(tcfStorage, tcfData, consentDuration); 2808 if (isAsyncGetTcData && hasGcmTcfSupport) { 2809 tC.privacy.gcmUpdate(); 2810 } 2811 } 2812 }); 2813 isAsyncGetTcData = true; 2814 } 2815}; 2816 2817/** 2818 * Check if all vendors are really optin, taking into account IAB legitimate interests 2819 * @returns {boolean} 2820 */ 2821tC.privacy.checkOptinAllVendors = function () { 2822 var optinVendors = tC.privacy.getOptinVendors().map(String); 2823 var vendorIdList = tC.privacy.getVendorIdList().map(String); 2824 2825 return vendorIdList.every(function (vendorId) {// check if all vendors are optin 2826 return optinVendors.indexOf(vendorId) !== -1; 2827 }); 2828}; 2829 2830tC.privacy.checkOptoutAllVendors = function () { 2831 return tC.privacy.getVendorIdList().length > 0 && tC.privacy.getOptinVendors().length === 0; 2832}; 2833 2834tC.privacy.sendBeacon = function(privacyHitDatas) { 2835 privacyHitDatas = privacyHitDatas || {}; 2836 var privacyHitDomain = tC.privacy.getHitDomain(privacyHitDatas.tc_optout); 2837 tC.track({ 2838 domain: privacyHitDomain, 2839 route: 'privacy-consent', 2840 siteId: privacyHitDatas.site, 2841 body: privacyHitDatas, 2842 isCookieless: Boolean(privacyHitDatas.tc_optout) 2843 }); 2844}; 2845 2846tC.privacy.createConsentId = function () { 2847 // tC.privacyCookieDisallowed blocks TCPID when no consent has been set 2848 if (tC.privacyCookieDisallowed && 2849 (!tC.privacy.cookieData.length || (tC.privacy.cookieData.length === 1 && tC.privacy.cookieData[0] === '')) 2850 ) { 2851 return ''; 2852 } 2853 var consentId = tC.getCookie('TCPID'); 2854 if (consentId === '') { 2855 consentId = tC.privacy.rand(); 2856 tC.setCookie('TCPID', consentId, 393, '/', tC.domain()); 2857 } 2858 return consentId; 2859}; 2860 2861tC.privacy.getConsentId = tC.privacy.getConsentId || function() { 2862 return tC.privacy.createConsentId() || tC.getCookie('TCPID'); // retro-compat with older versions of createConsentId 2863}; 2864 2865/* 2866 * @param {string} action (in / out) 2867 * @param {number} privacyId (int) 2868 * @param {number} version (int) 2869 * @param {string} actionType 2870 */ 2871tC.privacy.hit = tC.privacy.hit || function (action, version, privacyId, actionType) { 2872 var optOut; 2873 if (action === 0) { 2874 optOut = 1; 2875 } else if (action === 1) { 2876 optOut = 0; 2877 } else { 2878 optOut = parseInt(tC.privacy.cookieData[0] || 1);// 0 = optin ; 1 = optout (default) 2879 } 2880 2881 var privacyHitsCategory = tC.privacy.getPrivacyHitsCategory(); 2882 var privacyCheck = true; 2883 if (privacyHitsCategory) { 2884 var oldCats = tC.privacy.categories || []; 2885 var nbOptinCatsBeforeHit = oldCats.length; 2886 var statsCategoryId = tC.privacy.tagsCategoriesAssignation[privacyHitsCategory]; 2887 tC.privacy.init(); // refresh tC.privacy.cookieData 2888 privacyCheck = tC.privacy.validRules(privacyHitsCategory) 2889 || (tC.privacy.blockedOnCategories || []).indexOf(statsCategoryId) !== -1 2890 || (action === 1 && oldCats.indexOf(String(statsCategoryId)) > -1 && tC.privacy.categories.indexOf(String(statsCategoryId)) === -1) 2891 || (action === 0 && nbOptinCatsBeforeHit > 0 && tC.privacy.categories.length === 0); 2892 } 2893 if(privacyCheck){ 2894 var referenceSelectableCategories = tC.privacy.privacySelectableUnblockedCategoriesId || tC.privacy.getFlattenCategoryIdList(); 2895 var copyAllSelectableCategoriesId = referenceSelectableCategories.slice(); // we copy the list of all selectable categories because we want to be able to modify it while parsing it 2896 var updatedCategories = tC.privacy.getOptinCategories(); 2897 var optinToAll = 0; 2898 2899 if (updatedCategories.length >= referenceSelectableCategories.length) {
2900 referenceSelectableCategories.forEach(function(item) { // we loop on all selectable categories 2901 if (updatedCategories.indexOf(String(item)) > -1) { // if the current category exists in our list of optin categories 2902 copyAllSelectableCategoriesId.splice(copyAllSelectableCategoriesId.indexOf(item), 1); // then we remove it from the list of all selectable category 2903 } 2904 }); 2905 optinToAll = copyAllSelectableCategoriesId.length === 0 ? 1 : 0; // if there is no more categories in the list of all selectable categories, then it means we are optin to all 2906 } 2907 var privacyHitDatas = { 2908 id_tc: String(tC.privacy.containerId || 21), 2909 site: String(4453), 2910 version: version, 2911 id_privacy: privacyId, 2912 type_action: actionType, 2913 privacy_action: action.toString(), 2914 optin_categories: tC.privacy.getValidCategories(), 2915 optout_categories: tC.privacy.getOptoutCategories(), 2916 optin_to_all: optinToAll, 2917 tcpid: tC.privacy.getConsentId(), 2918 tc_optout: optOut, 2919 }; 2920 var doNotTrack = Number(window.tc_privacy_do_not_track || tC.getCookie('TC_PRIVACY_DO_NOT_TRACK')); 2921 if (doNotTrack) { 2922 var isConsentAction = ['1', '0'].indexOf(privacyHitDatas.privacy_action) !== -1; 2923 if (!isConsentAction) { 2924 return; 2925 } 2926 privacyHitDatas.do_not_track = Boolean(doNotTrack); 2927 } 2928 if (action === 1) { 2929 privacyHitDatas.optin_vendors = tC.privacy.getOptinVendors(); 2930 privacyHitDatas.optin_to_all_vendors = Number(tC.privacy.checkOptinAllVendors()); 2931 } 2932 tC.privacy.sendBeacon(privacyHitDatas); 2933 } 2934}; 2935 2936tC.privacy.rand = tC.privacy.rand || function () { 2937 var d = new Date(); 2938 return String() + d.getYear() + (d.getMonth() + 1) + d.getDay() + d.getHours() + d.getMinutes() + d.getSeconds() + parseInt(Math.random() * 12345678942); 2939}; 2940 2941/* 2942settings : (object) collection of settings 2943exemple : id, version, reactived 2944*/ 2945tC.privacy.set = tC.privacy.set || function (settings) { 2946 tC.privacy.settings = settings; 2947}; 2948 2949tC.privacy.getCN = tC.privacy.getCN || function () { 2950 return typeof window.tc_privacy_cookie_name !== 'undefined' ? window.tc_privacy_cookie_name : 'TC_PRIVACY'; 2951}; 2952 2953tC.privacy.getPCCN = tC.privacy.getPCCN || function () { 2954 return tC.privacy.getCN() + '_CENTER'; 2955}; 2956 2957tC.privacy.getVCN = function () { 2958 return tC.privacy.getCN() + '_VENDOR'; 2959}; 2960 2961/* 2962return booleen if this context enabled the current privacy 2963*/ 2964tC.privacy.isEnable = tC.privacy.isEnable || function () { 2965 2966 //init cookie Data only when necessary 2967 if (tC.privacy.cookieData === null) { 2968 tC.privacy.init(); 2969 } 2970 2971 return (tC.privacy.cookieData.length <= 2 || (String(tC.privacy.reactivate) !== '' && 2972 String(tC.privacy.cookieData[1]) === String(tC.privacy.reactivate))); 2973}; 2974 2975/* 2976return the dom container element for the privacy 2977if the <div> preview is found, we return the preview dom element else, the body 2978*/ 2979tC.privacy.getContainer = tC.privacy.getContainer || function (document) { 2980 return document.getElementById('tc_div_preview') || document.body; 2981}; 2982 2983tC.privacy.getPrivacyHitsCategory = function() { 2984 return null; 2985}; 2986tC.privacy.getHitDomain = function(optOut) { 2987 var privacyForceHitDomain = null; 2988 var defaultDomain = 'https://privacy.commander1.com'; 2989 var customDomain = window.tc_collect_dns || tC.clientCollectDns; 2990 2991 var privacyHitDomain; 2992 if (customDomain) { 2993 privacyHitDomain = customDomain; 2994 } else if (privacyForceHitDomain) { 2995 privacyHitDomain = privacyForceHitDomain; 2996 } else if (Number(optOut) === 0) { 2997 privacyHitDomain = defaultDomain; 2998 } else { 2999 privacyHitDomain = 'https://privacy.trustcommander.net'; 3000 } 3001 return privacyHitDomain; 3002}; 3003 3004tC.privacy.hitCounter = function (idPrivacy, actionType) { 3005 var doNotTrack = Number(window.tc_privacy_do_not_track || tC.getCookie('TC_PRIVACY_DO_NOT_TRACK')); 3006 if (doNotTrack) { 3007 return; 3008 } 3009 actionType = actionType ? actionType : 'banner'; 3010 tC.privacy.init(); 3011 var optOut = parseInt(tC.privacy.cookieData[0] || 1);// 0 = optin ; 1 = optout (default) 3012 3013 var privacyHitsCategory = tC.privacy.getPrivacyHitsCategory(); 3014 if(privacyHitsCategory == null || tC.privacy.validRules(privacyHitsCategory)){ 3015 var privacyHitDatas = { 3016 id_tc: String(tC.privacy.containerId || 21), 3017 site: String(4453), 3018 version: tC.privacy.getVersion(), 3019 id_privacy: idPrivacy, 3020 type_action: actionType, 3021 privacy_action: 'V', 3022 tcpid: tC.privacy.getConsentId(), 3023 tc_optout: optOut 3024 }; 3025 tC.privacy.sendBeacon(privacyHitDatas); 3026 } 3027}; 3028 3029/** 3030* returns optin categories in an array 3031*/ 3032tC.privacy.getOptinCategories = function () { 3033 tC.privacy.init(); 3034 var optType = parseInt(tC.privacy.cookieData[0] || 0); 3035 if (tC.privacy.categories && tC.privacy.categories.length && tC.privacy.categories[0] === '') { // categories is [""] 3036 return []; 3037 } 3038 var hasOptinCategories = optType === 0 && tC.privacy.categories != null 3039 && tC.privacy.categories !== 'undefined' && Number(tC.privacy.categories) !== -1; 3040 3041 return hasOptinCategories ? tC.privacy.categories : []; 3042}; 3043 3044tC.privacy.getOptoutCategories = function () { 3045 var categoryList = tC.privacy.getValidCategories(); 3046 return tC.privacy.getCategoryIdList().concat(tC.privacy.getBlockedOnCategories()).map(String).filter(function (cat) { 3047 return categoryList.indexOf(cat) === -1; 3048 }); 3049}; 3050 3051tC.privacy.getOptinVendors = function () { 3052 tC.privacy.init(); 3053 return tC.privacy.optinVendors || []; 3054}; 3055 3056tC.privacy.getOptoutVendors = function () { 3057 tC.privacy.init(); 3058 var vendorIds = tC.privacy.getVendorIdList().map(String); 3059 var optinVendors = (tC.privacy.optinVendors || []).map(String); 3060 return vendorIds.filter(function(id) { 3061 return optinVendors.indexOf(String(id)) === -1; 3062 }); 3063}; 3064 3065tC.privacy.getBlockedOnCategories = function() { 3066 return (tC.privacy.cachedBlockedOnCategories || tC.privacy.blockedOnCategories || []).map(String); 3067}; 3068 3069tC.privacy.getValidCategories = function() { 3070 return tC.privacy.getOptinCategories().concat(tC.privacy.getBlockedOnCategories()); 3071}; 3072 3073tC.privacy.getValidVendors = function() {
3074 var validCategories = tC.privacy.getValidCategories(); 3075 return tC.privacy.getOptinVendors().filter(function(vendorId) { 3076 var vendor = tC.privacy.includedVendors[vendorId]; 3077 if (vendor) { 3078 if (vendor.categories != null) { 3079 return vendor.categories.every(function(categoryId) { 3080 return validCategories.indexOf(String(categoryId)) !== -1; 3081 }); 3082 } else { 3083 return true; // IAB vendors do not have native categories mapped 3084 } 3085 } 3086 return false; 3087 }); 3088}; 3089 3090/* 3091 * Get privacy cookie separator 3092 */ 3093tC.privacy.getCS = tC.privacy.getCS || function () { 3094 return typeof tC.privacyCookieSeparator !== 'undefined' ? tC.privacyCookieSeparator : '@'; 3095}; 3096 3097tC.privacy.validRules = tC.privacy.validRules || function (tagId) { 3098 //init cookieData only when necessary 3099 if (tC.privacy.cookieData === null) { 3100 tC.privacy.init(); 3101 } 3102 3103 // if the cookie is not found OR empty, return true; 3104 if (!tC.privacy.cookieData.length || (tC.privacy.cookieData.length === 1 && tC.privacy.cookieData[0] === '')) { 3105 return true; 3106 } 3107 3108 var isOptin = parseInt(tC.privacy.cookieData[0] || 0) === 0; 3109 var consentVersionDetails = tC.privacy.cookieData[1] ? tC.privacy.cookieData[1].split('|') : [0]; 3110 var consentPrivacyVersion = parseInt(consentVersionDetails[0]); 3111 var consentPrivacyId = consentVersionDetails.length > 2 ? parseInt(consentVersionDetails[(consentVersionDetails.length - 2)]) : 0; 3112 var catsIdInCookie = (tC.privacy.cookieData[2] || '').split(',');//array of category IDs stored in the cookie 3113 var blockedOnCategories = tC.privacy.cookieData[3] ? tC.privacy.cookieData[3].split(',') : [];//array of blocked ON category IDs 3114 var optinVendors = tC.privacy.optinVendors; 3115 var tagCategory = (tC.privacy.tagsCategoriesAssignation && tC.privacy.tagsCategoriesAssignation[tagId]) ? tC.privacy.tagsCategoriesAssignation[tagId] : 0;//category affected to the tag 3116 var tagVendor = (tC.privacy.tagsVendorsAssignation && tC.privacy.tagsVendorsAssignation[tagId]) ? tC.privacy.tagsVendorsAssignation[tagId] : 0;//vendor affected to the tag 3117 3118 // true if: 3119 // blocked on category OR (optin cookie AND category in cookie) 3120 // AND 3121 // (no tag vendor OR optin vendor OR minor tag vendor without consent) 3122 // "minor tag vendor without consent" = in the "minor tags" list (tC.privacy.minorTags) AND vendor not optin AND vendor version > consent version for privacy 3123 var isBlockedCategory = tC.inArray(tagCategory.toString(), blockedOnCategories) !== -1; 3124 var isCategoryOptin = tC.inArray(tagCategory.toString(), catsIdInCookie) !== -1 || tC.inArray('ALL', catsIdInCookie) !== -1; 3125 var isVendorOptin = tC.inArray(tagVendor.toString(), optinVendors) !== -1; 3126 var isMinorTag = tC.inArray(parseInt(tagId), tC.privacy.minorTags) !== -1; 3127 var vendorPrivacyVersion = tC.privacy.includedVendors && tC.privacy.includedVendors[tagVendor] ? parseInt(tC.privacy.includedVendors[tagVendor].privacyVersion[consentPrivacyId]) : 0; 3128 3129 var isCategoryAllowed = isBlockedCategory || (isOptin && isCategoryOptin); 3130 var isVendorAllowed = !tagVendor || isVendorOptin || (isMinorTag && vendorPrivacyVersion > consentPrivacyVersion); 3131 3132 return isCategoryAllowed && isVendorAllowed; 3133}; 3134 3135tC.privacy.sendDataOtherTMS = tC.privacy.sendDataOtherTMS || function() { 3136 var tcVendorsConsent = tC.privacy.getListVendorConsent(); // list of vendors to push to choosen TMS 3137 var tcCategoriesConsent = tC.privacy.getListCategoryConsent(); // list of categories to push to choosen TMS 3138 3139 //process other tms 3140 if (window.tCPrivacyTagManager) { 3141 switch (window.tCPrivacyTagManager) { 3142 case 'gtm': 3143 if (window.dataLayer && typeof window.dataLayer.push === 'function') { 3144 // push event to gtm and variables in gtm datalayer 3145 window.dataLayer.push({ 3146 'tcVendorsConsent': tcVendorsConsent, 3147 'tcCategoriesConsent': tcCategoriesConsent, 3148 'event': 'tcConsentChanged' 3149 }); 3150 } 3151 break; 3152 case 'adobe': 3153 if (window.digitalData && window.digitalData.user) { 3154 // create variables in adobe datalayer 3155 window.digitalData.user.tcVendorsConsent = tcVendorsConsent; 3156 window.digitalData.user.tcCategoriesConsent = tcCategoriesConsent; 3157 } 3158 break; 3159 default: 3160 break; 3161 } 3162 } 3163 //add consent variables in window scope 3164 window.tcVendorsConsent = tcVendorsConsent; 3165 window.tcCategoriesConsent = tcCategoriesConsent; 3166}; 3167 3168tC.privacy.getListCategoryConsent = tC.privacy.getListCategoryConsent || function() { 3169 if(tC.getCookie(tC.privacy.getCN()) === '') {//no consent cookie => no_consent 3170 return 'no_consent'; 3171 } 3172 3173 var listCategory = tC.privacy.getOptinCategories(); 3174 //consent cookie exists but optinCategories === [] || [""] (no selectable category is optin when there are selectable categories) => optout 3175 if (Array.isArray(listCategory) && 3176 ((listCategory.length === 0 || (listCategory.length === 1 && String(listCategory[0]) === '')) && tC.privacy.privacySelectableUnblockedCategoriesId && tC.privacy.privacySelectableUnblockedCategoriesId.length > 0)) { 3177 return 'optout'; 3178 } 3179 3180 //at least one selectable category is optin => return all categories, including blocked categories 3181 return tC.privacy.getValidCategories().join(); 3182}; 3183 3184tC.privacy.getListVendorConsent = tC.privacy.getListVendorConsent || function() { 3185 if(tC.getCookie(tC.privacy.getCN()) === '') {//no consent cookie => no_consent 3186 return 'no_consent'; 3187 } 3188 3189 var listOptinVendor = tC.privacy.getOptinVendors(); 3190 var selectableVendors = tC.privacy.getVendorIdList(); 3191 3192 //consent cookie exists but optinVendors === [] || [""] (no selectable vendor is optin when there are selectable vendors) => optout 3193 var noOptinVendor = listOptinVendor.length === 0 || (listOptinVendor.length === 1 && String(listOptinVendor[0]) === ''); 3194 3195 if (noOptinVendor && selectableVendors.length > 0) { 3196 return 'optout'; 3197 } 3198 3199 //at least one vendor is optin => return all vendors 3200 return tC.privacy.getValidVendors().join(); 3201}; 3202 3203tC.privacy.getEmbeddedCategories = function () { 3204 return tC.privacy.allSelectableCategoriesId ? tC.privacy.allSelectableCategoriesId.map(function (el) { 3205 return parseInt(el); 3206 }) : []; 3207}; 3208 3209tC.privacy.tagsCategoriesAssignation = [ tC.privacy.tagsCategoriesAssignation || {}, {"115":2,"117":2,"118":2,"127":2,"128":2,"132":2,"135":2,"143":2,"148":2,"103":2,"120":2,"122":2,"131":2,"123":2,"112":2,"130":2,"114":2,"116":2,"124":2,"133":2,"144":2,"152":2,"166":2,"134":2,"189":2,"193":2,"197":2,"199":2,"207":2,"210":2,"213":2,"125":1,"153":1,"169":1,"170":1,"137":1,"136":1,"126":1,"182":1,"183":1,"185":1,"184":1,"196":1,"202":1,"203":1,"107":1,"205":1,"212":1,"211":1,"200":1,"121":1,"129":3,"113":3,"138":3,"145":3,"167":3,"168":3,"171":3,"150":3,"149":3,"147":3,"146":3,"174":3,"151":3,"208":3,"DS1":3} ] 3210 .reduce(function(acc, val) { 3211 Object.keys(val).forEach(function(k) { acc[k] = val[k]; }); // Object.assign equivalent for IE11 support 3212 return acc; 3213 }, {}); 3214 3215tC.privacy.tagsVendorsAssignation = [ tC.privacy.tagsVendorsAssignation || {}, {"189":1,"193":1,"197":1,"143":11,"103":11,"122":11,"144":11,"213":11,"185":5,"107":5,"212":5,"211":5,"115":6,"117":6,"116":6,"118":7,"128":7,"129":7,"138":7,"167":7,"168":7,"112":14,"207":14,"153":21,"169":21,"170":21,"137":21,"182":21,"183":21,"184":21,"196":21,"200":21,"121":21,"150":16,"149":16,"147":16,"146":16,"174":16,"151":16,"202":3,"203":4,"208":8} ] 3216 .reduce(function(acc, val) { 3217 Object.keys(val).forEach(function(k) { acc[k] = val[k]; }); // Object.assign equivalent for IE11 support 3218 return acc; 3219 }, {}); 3220 3221tC.privacy.allCategories = tC.privacy.allCategories || [{"id":2,"label":"Personnalisation","categoryParent":-1,"description":"Ces cookies permettent d'am\u00e9liorer la qualit\u00e9 de l'information et des services que nous fournissons sur le site afin de r\u00e9pondre au mieux \u00e0 vos attentes","isUsedInTarget":"","subCategories":null,"tagsId":[115,117,118,127,128,132,135,143,148,103,120,122,131,123,112,130,114,116,124,133,144,152,166,134,189,193,197,199,207,210,213]},{"id":1,"label":"Mesure d'audience","categoryParent":-1,"description":"Ces cookies permettent d\u2019\u00e9tablir des statistiques, volumes de fr\u00e9quentations et d\u2019utilisation des divers \u00e9l\u00e9ments de notre site (contenus visit\u00e9s, parcours\u2026) afin d\u2019am\u00e9liorer l\u2019exp\u00e9rience utilisateur","isUsedInTarget":"","subCategories":null,"tagsId":[125,153,169,170,137,136,126,182,183,185,184,196,202,203,107,205,212,211,200,121]},{"id":4,"label":"R\u00e9seaux sociaux","categoryParent":-1,"description":"Ces cookies permettent de partager des contenus via des r\u00e9seaux sociaux et sont g\u00e9n\u00e9r\u00e9s par les boutons applicatifs fournis par ces r\u00e9seaux sociaux.","isUsedInTarget":"","subCategories":null,"tagsId":[]},{"id":3,"label":"Publicit\u00e9","categoryParent":-1,"description":"Ces cookies permettent de mieux cibler vos attentes afin d\u2019adapter les offres qui vous sont adress\u00e9es en fonction des centres d\u2019int\u00e9r\u00eats d\u00e9duits de votre navigation.","isUsedInTarget":"","subCategories":null,"tagsId":[129,113,138,145,167,168,171,150,149,147,146,174,151,208,"DS1"]}]; 3222tC.privacy.includedVendors = tC.privacy.includedVendors || {"1":{"id":1,"label":"Commanders Act","description":"","policyUrl":" https:\/\/www.commandersact.com\/fr\/privacy\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[]},"11":{"id":11,"label":"AB Tasty","description":"","policyUrl":" https:\/\/www.abtasty.c
3222om\/fr\/politique-protection-vie-privee\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[2]},"5":{"id":5,"label":"Content Square","description":"","policyUrl":" https:\/\/contentsquare.com\/fr-fr\/privacy-center\/privacy-policy\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[1]},"6":{"id":6,"label":"Criteo","description":"","policyUrl":" https:\/\/www.criteo.com\/fr\/privacy\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[2,3]},"7":{"id":7,"label":"Google","description":"","policyUrl":"https:\/\/policies.google.com\/privacy?hl=fr","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[3]},"14":{"id":14,"label":"Green Bureau","description":"","policyUrl":"","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[2]},"21":{"id":21,"label":"Matomo","description":"","policyUrl":" https:\/\/fr.matomo.org\/privacy\/","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[1]},"22":{"id":22,"label":"GetQuanty","description":"","policyUrl":"","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[3]},"16":{"id":16,"label":"Adrenalead","description":"","policyUrl":"","privacyVersion":{"1":1,"2":9,"4":9,"5":47,"6":31,"7":30,"8":29,"9":28,"10":13,"11":19,"12":16,"13":15,"14":15,"15":2,"16":1,"17":9,"18":2,"19":1,"20":34},"categories":[3]},"2":{"id":2,"label":"0_Generic","description":null,"policyUrl":null,"privacyVersion":{"2":9,"4":8,"5":47,"6":19,"7":18,"8":29,"9":16,"10":10,"11":7,"12":5,"13":3,"14":3,"17":9,"18":2,"19":1,"20":34},"categories":[]},"3":{"id":3,"label":"Fullstory","description":"","policyUrl":"https:\/\/www.fullstory.com\/legal\/privacy-policy","privacyVersion":{"2":9,"5":47,"8":29,"17":9,"18":2,"19":1,"20":34},"categories":[1]},"4":{"id":4,"label":"Google Analytics","description":"","policyUrl":"https:\/\/policies.google.com\/privacy","privacyVersion":{"2":9,"4":8,"5":47,"6":21,"7":20,"8":29,"9":18,"10":11,"11":9,"12":7,"13":5,"14":5,"17":9,"18":2,"19":1,"20":34},"categories":[1]},"8":{"id":8,"label":"Linkedin","description":null,"policyUrl":null,"privacyVersion":{"2":9,"5":47,"18":2,"20":34},"categories":[3]}}; 3223tC.privacy.includedVendorIds = Object.keys(tC.privacy.includedVendors); 3224tC.privacy.minorTags = (tC.privacy.minorTags || []).concat([]).filter(tC.arrayUniqueFilter); 3225 3226tC.privacy.setLocale = function(value){ 3227 tC.privacy.lang = value; 3228}; 3229 3230tC.privacy.useDynamicCdnDomain = tC.privacy.useDynamicCdnDomain != null ? tC.privacy.useDynamicCdnDomain : false; 3231tC.privacy.defaultCdnDomain = tC.privacy.defaultCdnDomain || 'cdn.trustcommander.net'; 3232tC.privacy.validateGCMSequencing = tC.privacy.validateGCMSequencing || function () { 3233 if (window.dataLayer != null && Array.isArray(window.dataLayer)) { 3234 var consentIndexInSequence = window.dataLayer.findIndex(function(el) { return el[0] === 'consent'; }); 3235 var configIndexInSequence = window.dataLayer.findIndex(function(el) { return el[0] === 'config'; }); 3236 3237 if (consentIndexInSequence < configIndexInSequence) { 3238 return true; 3239 } 3240 } 3241 3242 return false; 3243}; 3244 3245tC.privacy.explainGCMSequencingValidation = tC.privacy.explainGCMSequencingValidation || function () { 3246 return tC.privacy.validateGCMSequencing() ? 'Valid sequencing' : 'Consent is set too late, Google tags are triggered before consent set. Please verify your Consent Mode sequencing'; 3247}; 3248 3249tC.gtagInit = tC.gtagInit || function() {
3250 var config = tC.config || {}; 3251 if (config.disableGtag === true) { 3252 return; 3253 } 3254 3255 window.dataLayer = window.dataLayer || []; 3256 window.gtag = window.gtag || function gtag() { window.dataLayer.push(arguments); }; 3257 window.gtag('set', 'developer_id.' + "dOWVhY2", true); 3258}; 3259 3260(function() { 3261 'use strict'; 3262 3263 var tC = window.tC; 3264 if (tC == null || tC.cact == null) { 3265 return; 3266 } 3267 3268 tC.cact['consent.get'] = function() { 3269 var event = tC.cactUtils.formatArgumentsV2(arguments); 3270 var consent = tC.privacy.getConsent({ pretty: true }); 3271 event.callback(consent); 3272 }; 3273 tC.cact['consent.get']._tc_version = 2; 3274 3275 tC.cact['consent.onReady'] = function() { 3276 var event = tC.cactUtils.formatArgumentsV2(arguments); 3277 var initialConsent = tC.privacy.getConsent({ pretty: true }); 3278 var initialStatus = initialConsent.consent.status; 3279 if (initialStatus !== 'unset') { 3280 initialConsent.updateEvent = 'set'; 3281 event.callback(initialConsent); 3282 return; 3283 } 3284 3285 var listener = function() { 3286 var consent = tC.privacy.getConsent({ pretty: true }); 3287 consent.updateEvent = 'set'; 3288 event.callback(consent); 3289 }; 3290 tC.eventTarget.addEventListener('consent-ready', listener); 3291 }; 3292 tC.cact['consent.onReady']._tc_version = 2; 3293 3294 tC.cact['consent.onUpdate'] = function() { 3295 var event = tC.cactUtils.formatArgumentsV2(arguments); 3296 var initialConsent = tC.privacy.getConsent({ pretty: true }); 3297 var nextEvent = initialConsent.consent.status === 'unset' ? 'set' : 'changed'; 3298 3299 var revokeListener = function() { 3300 nextEvent = 'revoked'; 3301 }; 3302 var updateListener = function() { 3303 var consent = tC.privacy.getConsent({ pretty: true }); 3304 var currentEvent = nextEvent; 3305 consent.updateEvent = currentEvent; 3306 nextEvent = currentEvent === 'revoked' ? 'set' : 'changed'; 3307 event.callback(consent); 3308 }; 3309 tC.eventTarget.addEventListener('consent-update', updateListener); 3310 tC.eventTarget.addEventListener('consent-revoke', revokeListener); 3311 }; 3312 tC.cact['consent.onUpdate']._tc_version = 2; 3313})(); 3314 3315if (tC.privacy.gcmEnabled == null) { 3316 tC.privacy.gcmEnabled = tC.config.gcmEnabled == null ? 1 : tC.config.gcmEnabled; 3317} 3318if (tC.privacy.gcmInitialized == null) { 3319 tC.privacy.gcmInitialized = false; 3320} 3321 3322tC.privacy.gcmInit = tC.privacy.gcmInit || function() { 3323 if (tC.gtagInit) { 3324 tC.gtagInit(); 3325 } 3326 var gtag = window.gtag || function() {}; 3327 tC.privacy.gcmInitialized = true; 3328 3329 var gcmTcfSupport = tC.config.gcmTcfSupport != null 3330 ? Boolean(tC.config.gcmTcfSupport) 3331 : 0; 3332 var hasIab = window.__tcfapi != null; 3333 if (gcmTcfSupport && hasIab) { 3334 window.gtag_enable_tcf_support = true; 3335 } 3336 var gcmUrlPassthrough = tC.config.gcmUrlPassthrough != null 3337 ? Boolean(tC.config.gcmUrlPassthrough) 3338 : 0; 3339 if (gcmUrlPassthrough) { 3340 gtag('set', 'url_passthrough', true); 3341 } 3342 3343 var gcmAdsDataRedaction = tC.config.gcmAdsDataRedaction != null 3344 ? Boolean(tC.config.gcmAdsDataRedaction) 3345 : 0; 3346 if (gcmAdsDataRedaction) { 3347 gtag('set', 'ads_data_redaction', true); 3348 } 3349 3350 var gcmGlobalConfig = Object.assign({}, {"ad_storage":"denied","analytics_storage":"denied","functionality_storage":"denied","personalization_storage":"denied","security_storage":"denied","ad_personalization":"denied","ad_user_data":"denied"}); 3351 var gcmWaitForUpdate = tC.config.gcmWaitForUpdate != null 3352 ? Number(tC.config.gcmWaitForUpdate) 3353 : Number(0); 3354 if (gcmWaitForUpdate > 0) { 3355 gcmGlobalConfig.wait_for_update = gcmWaitForUpdate; 3356 } 3357 3358 tC.privacy.gcmCategoriesMapping = {"ad_storage":"3","analytics_storage":"1","functionality_storage":"1","personalization_storage":"3","security_storage":"1","ad_personalization":"3","ad_user_data":"3"}; 3359 3360 var gcmConfigByRegion = Object.assign({ global: gcmGlobalConfig }, tC.config.gcmDefault);
3361 Object.keys(gcmConfigByRegion).forEach(function (region) { 3362 if (region !== 'global') { // handled after 3363 var regionDefault = Object.assign({ region: [ region ] }, gcmConfigByRegion[region]); 3364 gtag('consent', 'default', regionDefault); 3365 } 3366 }); 3367 3368 gtag('consent', 'default', gcmConfigByRegion.global); 3369 3370 if (tC.privacy.isSet()) { 3371 var gcmConsent = tC.privacy.getGcmConsent(); 3372 gtag('consent', 'update', gcmConsent); 3373 } 3374 3375 if (tC.eventTarget) { 3376 tC.eventTarget.addEventListener('container-ready', tC.privacy.gcmSendSignal, { once: true }); 3377 } 3378 return; 3379}; 3380 3381tC.privacy.getGcmConsent = tC.privacy.getGcmConsent || function() { 3382 var optinCategories = tC.privacy.getValidCategories(); 3383 var gcmCategoriesMapping = tC.privacy.gcmCategoriesMapping || {}; 3384 var tcfConsent = {}; 3385 var tcfMapping = {}; 3386 if (window.gtag_enable_tcf_support) { 3387 if (tC.storage) { 3388 tcfConsent = tC.storage.getWithExpiry(tC.privacy.getCN() + '_TCF') || {}; 3389 } 3390 tcfMapping = { 3391 ad_storage: [1], 3392 ad_user_data: [1, 7], 3393 ad_personalization: [3, 4], 3394 }; 3395 } 3396 3397 var gcmConsent = Object.keys(gcmCategoriesMapping).reduce(function (result, gcmCategory) { 3398 var privacyCategory = String(gcmCategoriesMapping[gcmCategory]); 3399 var isOptin = optinCategories.includes(privacyCategory); 3400 result[gcmCategory] = isOptin ? 'granted' : 'denied'; 3401 3402 return result; 3403 }, {}); 3404 3405 gcmConsent = Object.keys(tcfMapping).reduce(function (result, gcmCategory) { 3406 var tcfPurposes = tcfMapping[gcmCategory] || []; 3407 var isOptin = tcfPurposes.every(function(purposeId) { 3408 var purpose = tcfConsent.purpose; 3409 return purpose != null && purpose.consents[purposeId]; 3410 }); 3411 result[gcmCategory] = isOptin ? 'granted' : 'denied'; 3412 3413 return result; 3414 }, gcmConsent); 3415 3416 return gcmConsent; 3417}; 3418 3419tC.privacy.gcmUpdate = tC.privacy.gcmUpdate || function() { 3420 var gtag = window.gtag; 3421 if (Boolean(tC.privacy.gcmInitialized) === false) { 3422 tC.privacy.gcmInit(); 3423 } 3424 3425 var gcmConsent = tC.privacy.getGcmConsent(); 3426 if (gtag) { 3427 gtag('consent', 'update', gcmConsent); 3428 } 3429 tC.privacy.gcmSendSignal(); 3430}; 3431 3432tC.privacy.gcmSendSignal = tC.privacy.gcmSendSignal || function() { 3433 if (tC.eventTarget) { 3434 tC.eventTarget.dispatchEvent('consent-signal-ready', { tagTrigger: 'consent_signal_ready' }); 3435 } 3436}; 3437 3438tC.privacy.getGcmPolicyUrl = function() { 3439 return 'https://business.safety.google/privacy/'; 3440}; 3441 3442tC.privacy.getGcmHtml = function() { 3443 var url = tC.privacy.getGcmPolicyUrl(); 3444 return '\ 3445 <span id="gcm-policy-url" class="gcm-policy-url"> \ 3446 <br id="gcm-line-break" class="gcm-line-break"/> \ 3447 <a target="_blank" href="' + url + '"> \ 3448 <span id="gcm-url-text" class="gcm-url-text">' + url + '</span> \ 3449 </a> \ 3450 </span> \ 3451 '; 3452}; 3453 3454if (tC.privacy != null && tC.privacy.initialized === false) { 3455 tC.privacy.init(); 3456} 3457 3458tC.extend({ 3459 executeListener15_4453_21: function(el){ 3460 window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":15,"name":"DOM ready","idcat":1,"cat":"DOM Ready"}', "*"); 3461}, 3462 3463 executeListener12_4453_21: function(el){ 3464 window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":12,"name":"Clic formulaire contact commercant","idcat":2,"cat":"Clicks"}', "*"); 3465}, 3466 3467 executeListener14_4453_21: function(el){ 3468 window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":14,"name":"Clic formulaire part","idcat":2,"cat":"Clicks"}', "*"); 3469}, 3470 3471 executeListener18_4453_21: function(el){ 3472 window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":18,"name":"CLICK - BLOC JE SUIS UN PARTICULIER","idcat":2,"cat":"Clicks"}', "*"); 3473if(tC.getCookie(tC.privacy.getCN()) != ''){ 3474 if(tC.privacy.validRules('153')){ 3475 3476 tC.executeTag153_4453_21(el); 3477 tC.eventTarget.dispatchEvent('tag_trigger_clicks', { eventTarget: (el || {}).target }); 3478 tC.launchTag(153, 'MATOMO - TRACKING JE SUIS UN PARTICULIER', 26, 4453, 21, 18); 3479} 3480 3481} 3482}, 3483 3484 executeListener19_4453_21: function(el){ 3485 window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":19,"name":"Clic Bouton Contact mobile","idcat":2,"cat":"Clicks"}', "*"); 3486if(tC.getCookie(tC.privacy.getCN()) != ''){ 3487 if(tC.privacy.validRules('169')){ 3488 3489 tC.executeTag169_4453_21(el); 3490 tC.eventTarget.dispatchEvent('tag_trigger_clicks', { eventTarget: (el || {}).target }); 3491 tC.launchTag(169, 'MATOMO - CLIC BOUTON FLOTTANT SUR MOBILE', 26, 4453, 21, 19); 3492} 3493 3494} 3495}, 3496 3497 executeListener21_4453_21: function(el){ 3498 window.top.postMessage('TC.EX.TRIGGER.FIRED:{"id":21,"name":"Clic_SUIVANT","idcat":2,"cat":"Clicks"}', "*"); 3499if(tC.getCookie(tC.privacy.getCN()) != ''){ 3500 if(tC.privacy.validRules('185')){ 3501 if(((document.location).toString().toLowerCase().indexOf(('floapay.').toLowerCase()) != -1)){ 3502 3503 tC.executeTag185_4453_21(el); 3504 tC.eventTarget.dispatchEvent('tag_trigger_clicks', { eventTarget: (el || {}).target }); 3505 tC.launchTag(185, 'A - CONTENTSQUARE - CONTACT - ETAPE 2', 26, 4453, 21, 21); 3506} 3507 3508} 3509 3510} 3511}}); 3512 3513tC.event = tC.event || {}; 3514tC.event.b2cEventListFunctions = tC.event.b2cEventListFunctions || []; 3515tC.event.b2cEventListIdTags = tC.event.b2cEventListIdTags || []; 3516if (tC.event.b2cEventListIdTags.indexOf("134")==-1){ 3517 tC.event.b2cEventListIdTags.push("134"); 3518 tC.event.b2cEventListFunctions.push(function(el, p){ 3519 if(tC.getCookie(tC.privacy.getCN()) != ''){ 3520 if(tC.privacy.validRules('134')){ 3521 if((document.location).toString().toLowerCase().indexOf(('validation-particuliers.floapay' ).toLowerCase()) != -1 || (document.location).toString().toLowerCase().indexOf(( 'preprod-particuliers.floapay').toLowerCase()) != -1){ 3522 if(tc_vars["event"] == 'forgot-password-click'){ 3523 3524 tC.executeTag134_4453_21(el, p); 3525 tC.launchTag(134, 'CA - QA - b2cEvent + forgot-password-click', 78, 4453, 21, 16); 3526} 3527 3528} 3529 3530} 3531 3532} 3533}); 3534} 3535if (tC.event.b2cEventListIdTags.indexOf("133")==-1){ 3536 tC.event.b2cEventListIdTags.push("133"); 3537 tC.event.b2cEventListFunctions.push(function(el, p){ 3538 if(tC.getCookie(tC.privacy.getCN()) != ''){ 3539 if(tC.privacy.validRules('133')){ 3540 if(((document.location).toString().toLowerCase().match( new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi") ))){ 3541 3542 tC.executeTag133_4453_21(el, p); 3543 tC.launchTag(133, 'CONTENTSQUARE - B2C - TOUTES LES ETAPES', 26, 4453, 21, 16); 3544} 3545 3546} 3547 3548} 3549}); 3550} 3551if (tC.event.b2cEventListIdTags.indexOf("137")==-1){ 3552 tC.event.b2cEventListIdTags.push("137"); 3553 tC.event.b2cEventListFunctions.push(function(el, p){ 3554 if(tC.getCookie(tC.privacy.getCN()) != ''){ 3555 if(tC.privacy.validRules('137')){ 3556 if(((document.location).toString().toLowerCase().match( new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi") ))){ 3557 3558 tC.executeTag137_4453_21(el, p); 3559 tC.launchTag(137, 'MATOMO - B2C - PARTICULIERS FLOAPAY - ATTEINTE ETAPES', 26, 4453, 21, 16); 3560} 3561 3562} 3563 3564} 3565}); 3566} 3567if (tC.event.b2cEventListIdTags.indexOf("182")==-1){ 3568 tC.event.b2cEventListIdTags.push("182"); 3569 tC.event.b2cEventListFunctions.push(function(el, p){ 3570 if(tC.getCookie(tC.privacy.getCN()) != ''){ 3571 if(tC.privacy.validRules('182')){ 3572 if(((document.location).toString().toLowerCase().match( new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi") ))){ 3573 3574 tC.executeTag182_4453_21(el, p); 3575 tC.launchTag(182, 'MATOMO - B2C - PARTICULIERS TRACKING EVENTS CLIC', 26, 4453, 21, 16); 3576} 3577 3578} 3579 3580} 3581}); 3582} 3583tC.event.b2cEvent=function(el, p){ 3584tc_array_events=tC.container_4453_21.init_tc_array_events(p); 3585for(var i=0,x=tC.event.b2cEventListFunctions.length;i<x;i++){ 3586tC.event.b2cEventListFunctions[i](el, p); 3587} 3588}; 3589 3590tC.event.b2ceventListFunctions = tC.event.b2ceventListFunctions || []; 3591tC.event.b2ceventListIdTags = tC.event.b2ceventListIdTags || []; 3592tC.event.b2cevent=function(el, p){ 3593tc_array_events=tC.container_4453_21.init_tc_array_events(p); 3594for(var i=0,x=tC.event.b2ceventListFunctions.length;i<x;i++){ 3595tC.event.b2ceventListFunctions[i](el, p); 3596} 3597}; 3598; 3599 3600; 3601tC.extend({ 3602 container: { 3603 reload: function(){ 3604 var params = arguments[0]; 3605 tC.reload_events = true; 3606 tC.container_position = 0; 3607 3608 if(tC.containerList){ 3609 tC.each(tC.containerList, function(index, value) { 3610 if(typeof tC['container_'+value] === 'object' && typeof tC['container_'+value].reload === 'function') { 3611 tC['container_' + value].reload(params, true); 3612 tC.reload_events = false;
3613 } 3614 }); 3615 } 3616 } 3617 } 3618}); 3619 3620(function() { 3621 var containerIdExtend = {}; 3622 var containerName = 4453 + '_' + 21; 3623 var container = window['tC_' + containerName] || {}; 3624 var cactTriggerFuncName = 'trigger' + '_' + containerName; 3625 3626 var containerApi = { 3627 /** 3628 * Load container elements 3629 * @param {object} params Parameters of the load (list of exclusions, tC.event functions to callâ¦) ; ex.: {exclusions:["datastorage", "internalvars"], events:{function1:["paramF1"],function2:["param1F2", "param2F2"]}} 3630 * @param {boolean} [isReload] false (default) for the first load, true for a reload 3631 */ 3632 load: function(params, isReload){ 3633 tC.container_position++; 3634 tC['hitCounter_' + containerName](); 3635 this.datalayer(); 3636 tC.array_launched_tags = []; 3637 tC.array_launched_tags_keys = []; 3638 3639 if(typeof params !== 'object'){ 3640 params = {}; 3641 } 3642 3643 if(typeof isReload !== 'boolean'){ 3644 isReload = false; 3645 } 3646 3647 if(typeof params.exclusions === 'undefined') { 3648 params.exclusions = []; 3649 } 3650 3651 if (params.exclusions.indexOf('datastorage') === -1) { 3652 this.datastorage(); 3653 } 3654 3655 if (params.exclusions.indexOf('deduplication') === -1) { 3656 this.deduplication(); 3657 } 3658 3659 if (params.exclusions.indexOf('internalvars') === -1) { 3660 this.internalvars(); 3661 } 3662 3663 if (params.exclusions.indexOf('privacy') === -1) { 3664 this.privacy(); 3665 } 3666 3667 if (params.exclusions.indexOf('eventlisteners') === -1) { 3668 this.eventlisteners(); 3669 } 3670 3671 if (tC.reload_events === false || typeof params.events === 'undefined') { 3672 params.events = {}; 3673 } 3674 3675 //Each params.events is an object with name of the function in key and an array of parameters in value, for example: {function1:["param1", "param2"]} 3676 tC.each(params.events, function (k, v) { 3677 if (tC.event && typeof tC.event[k] === 'function' && v.length > 0) {//we check if there is a tC.event corresponding, with at least 1 parameter 3678 if (typeof v[1] === 'undefined') {//2nd parameter is not set, we don't send it to the tC.event custom function 3679 tC.event[k](v[0]); 3680 } else { 3681 tC.event[k](v[0], v[1]); 3682 } 3683 } 3684 }); 3685 }, 3686 3687 reload: function(params, isGlobalReload){ 3688 if(typeof isGlobalReload !== 'boolean'){ 3689 isGlobalReload = false; 3690 } 3691 3692 if(!isGlobalReload){ 3693 tC.container_position = 0; 3694 tC.reload_events = true; 3695 } 3696 3697 this.load(arguments[0], true); 3698 }, 3699 3700 datalayer: function(){ 3701 /* global tc_vars */ 3702 if(typeof tc_vars==='undefined') window.tc_vars=[]; 3703 var l = 'env_support|page_type|env_travail|event|evenement|page|client_contract_type|client_employer_seniority|client_housing_status|client_income_net|client_marital_status|client_monthly_expenses|client_nationality|client_number_of_children|client_profession_status|client_profession_status_type|country|env|error_code|financing_after_buy_back_amount|financing_buy_back_amount|financing_buying_amount|financing_installments_count|language|merchant_name|order_levy_mode|page_category_title|page_step_title|page_substep_title|product_code|total_amount|total_customer_fees|total_discount_amount|total_shipping_fees|env_template|page_cat1|page_cat2|page_name|user_name|user_lastname|user_firstname|user_email|user_mensu|user_prelev|user_id'.split('|'); 3704 for(var k in l){ 3705 if(!tc_vars.hasOwnProperty(l[k])){ 3706 tc_vars[l[k]]=''; 3707 } 3708 } 3709 3710 window.top.postMessage('TC.EX.EXT_VARS.RELOAD', '*'); 3711 }, 3712 3713 datastorage: function(){ 3714 if(tC.getCookie(tC.privacy.getCN()) != ''){ 3715 3716if(tC.privacy.validRules('DS1')){ 3717//UNIQ ID COOKIE MANAGER 3718(function(){ 3719var lifetime = 30; 3720if(!tC.getCookie('TC_UID')){ 3721 var currentTime = new Date();
3722 var month = currentTime.getMonth() + 1; 3723 var day = currentTime.getDate(); 3724 var year = currentTime.getFullYear(); 3725 var hour = currentTime.getHours(); 3726 var minute = currentTime.getMinutes(); 3727 var seconds = currentTime.getSeconds(); 3728 var rand = Math.random(); 3729 var uniqid = 'V1'+year+month+day+hour+minute+seconds+rand; 3730 tC.setCookie('TC_UID',uniqid,lifetime,'/'); 3731}else{ 3732 if('1' == '1'){ 3733 var uniqid = tC.getCookie('TC_UID'); 3734 tC.setCookie('TC_UID',uniqid,lifetime,'/'); 3735 } 3736} 3737})();} 3738 3739} 3740; 3741 3742 window.top.postMessage('TC.EX.DATASTORAGE.RELOAD', '*'); 3743 }, 3744 3745 deduplication: function(){ 3746 if(tC.dedup) { 3747 tC.dedup.LeA=false; 3748 tC.dedup.LeAD=false; 3749 tC.dedup.LeC=false; 3750 tC.dedup.LeCD=false; 3751 tC.dedup.LeV=false; 3752 tC.dedup.LeVD=false; 3753 tC.dedup.FeA=false; 3754 tC.dedup.FeAD=false; 3755 tC.dedup.FeC=false; 3756 tC.dedup.FeCD=false; 3757 tC.dedup.FeV=false; 3758 tC.dedup.FeVD=false; 3759 tC.dedup.AeA=[]; 3760 tC.dedup.AeC=[]; 3761 tC.dedup.AeV=[]; 3762 tC.dedup.init(); 3763 tC.dedup.setEventList(); 3764 } 3765 }, 3766 3767 eventlisteners: function(){ 3768 3769 var allElements = document.querySelectorAll('#formPro'); 3770 for(var i = 0; i < allElements.length; i++){ 3771 allElements[i].removeEventListener("click", tC.executeListener12_4453_21); 3772 allElements[i].addEventListener("click", tC.executeListener12_4453_21); 3773 } 3774 3775 var allElements = document.querySelectorAll('#formPart'); 3776 for(var i = 0; i < allElements.length; i++){ 3777 allElements[i].removeEventListener("click", tC.executeListener14_4453_21); 3778 allElements[i].addEventListener("click", tC.executeListener14_4453_21); 3779 } 3780 3781 var allElements = document.querySelectorAll('a.bloc-link.first'); 3782 for(var i = 0; i < allElements.length; i++){ 3783 allElements[i].removeEventListener("click", tC.executeListener18_4453_21); 3784 allElements[i].addEventListener("click", tC.executeListener18_4453_21); 3785 } 3786 3787 var allElements = document.querySelectorAll('a#textCta.button-contact'); 3788 for(var i = 0; i < allElements.length; i++){ 3789 allElements[i].removeEventListener("click", tC.executeListener19_4453_21); 3790 allElements[i].addEventListener("click", tC.executeListener19_4453_21); 3791 } 3792 3793 var allElements = document.querySelectorAll('.buttons.step1 .next-button'); 3794 for(var i = 0; i < allElements.length; i++){ 3795 allElements[i].removeEventListener("click", tC.executeListener21_4453_21); 3796 allElements[i].addEventListener("click", tC.executeListener21_4453_21); 3797 } 3798; 3799 }, 3800 3801 internalvars: function(){ 3802 var listInternalVars = tC['internalvars_' + containerName].listVar; 3803 if(listInternalVars.length > 0){ 3804 for (var i = 0; i < listInternalVars.length; i++) { 3805 tC['internalvars_' + 4453].initiators['var'+listInternalVars[i]](); 3806 } 3807 } 3808 3809 window.top.postMessage('TC.EX.INT_VARS.RELOAD', '*'); 3810 }, 3811 3812 privacy: function(){ 3813 if(tC.privacy) { 3814 tC.privacy.init(); 3815 } 3816 }, 3817 3818 init_tc_array_events: function(t){ 3819 if (typeof t === 'undefined') { 3820 t = {}; 3821 } 3822 var l = ''.split('|'); 3823 for (var k in l) { 3824 if (!t.hasOwnProperty(l[k])) { 3825 t[l[k]] = ''; 3826 } 3827 } 3828 3829 return t; 3830 }, 3831 cact: function() { 3832 var args = arguments; 3833 if (args[0] === 'trigger') { 3834 args[0] = cactTriggerFuncName; 3835 } 3836 window.caReady.push(args); 3837 }, 3838 get_info: function() { 3839 var info = Object.assign({}, container); 3840 delete info.api; 3841 return info; 3842 }, 3843 get_config: function() { 3844 return Object.assign({}, tC.config); 3845 } 3846 }; 3847 3848 containerIdExtend['container_' + containerName] = containerApi; 3849 tC.extend(containerIdExtend); 3850 container.api = containerApi; 3851 3852 if(typeof tC.containerList === 'undefined'){tC.containerList = [];} 3853 tC.containerList.push(containerName); 3854 window.tc_array_events = tC['container_' + containerName].init_tc_array_events([]); 3855 3856 if (tC.cact) { 3857 tC.cact[cactTriggerFuncName] = function() { 3858 var args = tC.cactUtils.formatArgumentsV2(arguments); 3859 3860 var event = args.event; 3861 var properties = Object.assign({}, args.properties); 3862 var config = Object.assign({}, args.config); 3863 var callback = args.callback; 3864
3865 var globalConfig = tC.config || {}; 3866 if (!config.sourceKey && !globalConfig.sourceKey && container.sourceKey) { 3867 config.sourceKey = container.sourceKey; 3868 } 3869 if (!config.siteId && !config.id_site && !globalConfig.siteId && container.id_site) { 3870 config.siteId = container.id_site; 3871 } 3872 3873 tC.cact.trigger(event, properties, config, callback); 3874 }; 3875 tC.cact[cactTriggerFuncName]._tc_version = 2; 3876 } 3877})(); 3878 3879; 3880 3881 window['tC' + currentContainer.id_site + '_' + currentContainer.id_container] = tC; 3882 3883 window.postMessage('TC.EX.CONTAINER:{"id":' + currentContainer.id_container + ',"ids":' + currentContainer.id_site + ',"v":"' + currentContainer.containerVersion + '","g":' + currentContainer.generatorVersion + ',"p":'+tC.container_position+',"url":"'+(document.currentScript ? document.currentScript.src : '')+'"}','*'); 3884})(); 3885 3886tC.container_4453_21.datalayer();tC.array_launched_tags=[];tC.array_launched_tags_keys=[]; 3887 3888/*DYNAMIC JS BLOCK 1*/ 3889 3890 3891/*Dynamic file : https://code.jquery.com/jquery-3.4.1.min.js*/ 3892
vendor: 88,148 bytes, lines 3893-3896
3893/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ 3894!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k}); 3895 3896/*
3896END DYNAMIC JS BLOCK 1*/ 3897 3898/*CUSTOM_JS_BLOCK1*/ 3899cact('consent.onUpdate',function(result){var PERSO_ID=2;var AB_TASTY_CONSENT=11;var persoCategory=result.consent.categories[PERSO_ID]||{};var abTastyVendor=result.consent.vendors[AB_TASTY_CONSENT]||{};if(persoCategory.status==='on'&&abTastyVendor.status==='on'){tC.setCookie('consent_perso','1',180)}else{tC.setCookie('consent_perso','0',180)}}); 3900/*END_CUSTOM_JS_BLOCK1*/ 3901if(tC.privacyCookieDisallowed){tC.setCookie('TCPID','',-1,'',tC.domain());} 3902tC.id_site='4453'; 3903/*VARIABLES_BLOCK*/ 3904tC.internalvars_4453.initiators=tC.internalvars_4453.initiators||{};tC.internalvars_4453_21={listVar:[]} 3905tC.internalvars_4453.initiators.var264=function(){if(typeof(tC.internalvars.ReloadPrivacy)=="undefined"){tC.internalvars.ReloadPrivacy=false;}} 3906tC.internalvars_4453.initiators.var264();tC.internalvars_4453_21.listVar.push(264);tC.internalvars_4453.initiators.var266=function(){tC.extend({detectDevice:{get:function(){var ua=(navigator?navigator.userAgent:'No User-Agent Provided');return ua.match(/GoogleTV|SmartTV|Internet.TV|NetCast|NETTV|AppleTV|boxee|Kylo|Roku|DLNADOC|CE-HTML/i)?'tv':ua.match(/Xbox|PLAYSTATION.3|Wii/i)?'tv':ua.match(/iPad/i)||ua.match(/tablet/i)&&!ua.match(/RX-34/i)||ua.match(/FOLIO/i)?'t':ua.match(/Linux/i)&&ua.match(/Android/i)&&!ua.match(/Fennec|mobi|HTC.Magic|HTCX06HT|Nexus.One|SC-02B|fone.945/i)?'t':ua.match(/Kindle/i)||ua.match(/Mac.OS/i)&&ua.match(/Silk/i)?'t':ua.match(/GT-P10|SC-01C|SHW-M180S|SGH-T849|SCH-I800|SHW-M180L|SPH-P100|SGH-I987|zt180|HTC(.Flyer|_Flyer)|Sprint.ATP51|ViewPad7|pandigital(sprnova|nova)|Ideos.S7|Dell.Streak.7|Advent.Vega|A101IT|A70BHT|MID7015|Next2|nook/i)||ua.match(/MB511/i)&&ua.match(/RUTEM/i)?'t':ua.match(/BOLT|Fennec|Iris|Maemo|Minimo|Mobi|mowser|NetFront|Novarra|Prism|RX-34|Skyfire|Tear|XV6875|XV6975|Google.Wireless.Transcoder/i)?'m':ua.match(/Opera/i)&&ua.match(/Windows.NT.5/i)&&ua.match(/HTC|Xda|Mini|Vario|SAMSUNG-GT-i8000|SAMSUNG-SGH-i9/i)?'m':ua.match(/Windows.(NT|XP|ME|9)/)&&!ua.match(/Phone/i)||ua.match(/Win(9|.9|NT)/i)?'d':ua.match(/Macintosh|PowerPC/i)&&!ua.match(/Silk/i)?'d':ua.match(/Linux/i)&&ua.match(/X11/i)?'d':ua.match(/Solaris|SunOS|BSD/i)?'d':ua.match(/Bot|Crawler|Spider|Yahoo|ia_archiver|Covario-IDS|findlinks|DataparkSearch|larbin|Mediapartners-Google|NG-Search|Snappy|Teoma|Jeeves|TinEye/i)&&!ua.match(/Mobile/i)?'d':'m';}}});tC.internalvars.device=tC.detectDevice.get();} 3907tC.internalvars_4453.initiators.var266();tC.internalvars_4453_21.listVar.push(266);tC.internalvars_4453.initiators.var269=function(){tC.internalvars.iadvize_ssid="6473";if(window.location.href.indexOf("preprod.floapay.")>-1){tC.internalvars.iadvize_ssid="6430";} 3908if(window.location.href.indexOf("floapay.")>-1){tC.internalvars.iadvize_ssid="6473";}} 3909tC.internalvars_4453.initiators.var269();tC.internalvars_4453_21.listVar.push(269);tC.internalvars_4453.initiators.var270=function(){tC.internalvars.GBtoken="50dd9468-de17-4a97-808f-acd030f6ccbc";if(window.location.href.indexOf("preprod.floapay.")>-1){tC.internalvars.GBtoken="1161d16a-f28a-4bcf-9734-beff90fa3c03";} 3910if(window.location.href.indexOf("floapay.")>-1){tC.internalvars.GBtoken="760c3b20-32b4-4657-9546-131b9f5fe078";}} 3911tC.internalvars_4453.initiators.var270();tC.internalvars_4453_21.listVar.push(270);tC.internalvars_4453.initiators.var262=function(){var ref=window.location.href;tC.internalvars.ua_standard="UA-25167844-8";if(ref.indexOf("dev-floa-pay.aps.floapay.")>-1){tC.internalvars.ua_standard="UA-25167844-9";}} 3912tC.internalvars_4453.initiators.var262();tC.internalvars_4453_21.listVar.push(262);tC.internalvars_4453.initiators.var272=function(){var ref=window.location.href;tC.internalvars.siteId_standard="19";if(ref.indexOf("dev-floa-pay.aps.floapay.")>-1){tC.internalvars.siteId_standard="3";}} 3913tC.internalvars_4453.initiators.var272();tC.internalvars_4453_21.listVar.push(272);tC.internalvars_4453.initiators.var273=function(){var ref=window.location.href;tC.internalvars.ga4_standard="G-48FDWDGZ7C";if(ref.indexOf("dev-floa-pay.aps.floapay.")>-1){tC.internalvars.ga4_standard="G-819GT4DWF1";}} 3914tC.internalvars_4453.initiators.var273();tC.internalvars_4453_21.listVar.push(273);tC.internalvars_4453.initiators.var274=function(){var ref=window.location.href;tC.internalvars.siteIds={standard_siteId:ref.indexOf("dev-floa-pay.aps.floapay.")>-1?'4':'1',standard_cumul_GA:'19'};} 3915tC.internalvars_4453.initiators.var274();tC.internalvars_4453_21.listVar.push(274);tC.internalvars_4453.initiators.var279=function(){var ref=window.location.pathname;if(ref=="/contactez-nous-ok"){tC.internalvars.ads_label="l1QqCISgg4EYEP7AsOAD";}else 3916if(ref=="/contactanos-ok"){tC.internalvars.ads_label="IOIPCLrIhYEYEP7AsOAD";}else 3917if(ref=="/contattaci-ok"){tC.internalvars.ads_label="1v3xCOrDhIEYEP7AsOAD";}else 3918if(ref=="/contacte-nos-ok"){tC.internalvars.ads_label="U1H0CKGShYEYEP7AsOAD";}else 3919if(ref=="/fr/contactez-nous-ok"){tC.internalvars.ads_label="CmfOCOOuh4EYEP7AsOAD";}} 3920tC.internalvars_4453.initiators.var279();tC.internalvars_4453_21.listVar.push(279);tC.internalvars_4453.initiators.var280=function(){var url=window.location.hostname;if(url.indexOf('.es')!==-1){tC.internalvars.adrenaleadsetIds='ffc2ae9d1746aba1';} 3921if(url.indexOf('.de')!==-1){tC.internalvars.adrenaleadsetIds='b0489f21a0d4458c';} 3922if(url.indexOf('.com')!==-1){tC.internalvars.adrenaleadsetIds='c4a4036730cd00b7';} 3923if(url.indexOf('.fr')!==-1){tC.internalvars.adrenaleadsetIds='b1c791f8393db34e';} 3924if(url.indexOf('.it')!==-1){tC.internalvars.adrenaleadsetIds='0cf0c5a6792a0196';} 3925if(url.indexOf('.nl')!==-1){tC.internalvars.adrenaleadsetIds='cc5725e94494f72d';} 3926if(url.indexOf('.pt')!==-1){tC.internalvars.adrenaleadsetIds='bfb333fd414a70d7';}} 3927tC.internalvars_4453.initiators.var280();tC.internalvars_4453_21.listVar.push(280);tC.internalvars_4453.initiators.var281=function(){tC.internalvars.new_label_ads="";var ref=window.location.pathname;if(ref=="/contactez-nous-ok"){tC.internalvars.new_label_ads="-3wpCLPXxKIYENqTk94C";}else 3928if(ref=="/contactanos-ok"){tC.internalvars.new_label_ads="_r7GCN74h64YENqTk94C";}else 3929if(ref=="/contattaci-ok"){tC.internalvars.new_label_ads="jXODCNbQm64YENqTk94C";}else 3930if(ref=="/contacte-nos-ok"){tC.internalvars.new_label_ads="8YIDCLnIiK4YENqTk94C";}else 3931if(ref=="/fr/contactez-nous-ok"){tC.internalvars.new_label_ads="hRMfCOzXiK4YENqTk94C";}else 3932if(ref=="/nl/contact-ok"){tC.internalvars.new_label_ads="LGyBCOLfiK4YENqTk94C";}} 3933tC.internalvars_4453.initiators.var281();tC.internalvars_4453_21.listVar.push(281);tC.internalvars_4453.initiators.var282=function(){function tc_getDomainExtensionFromCurrentPage(){try{var domain=location.hostname;var domainSegments=domain.split('.');var domainExtension=domainSegments[domainSegments.length-1];return domainExtension;}catch(error){tC.error('Erreur lors de l\'extraction de l\'extension de domaine :',error);return null;}} 3934tC.internalvars.extensionDomain=tc_getDomainExtensionFromCurrentPage();} 3935tC.internalvars_4453.initiators.var282();tC.internalvars_4453_21.listVar.push(282);tC.internalvars_4453.initiators.var286=function(){tC.internalvars.tc_title=document.title;} 3936tC.internalvars_4453.initiators.var286();
3936tC.internalvars_4453_21.listVar.push(286);tC.internalvars_4453.initiators.var287=function(){tC.internalvars.tc_url=document.location.href;} 3937tC.internalvars_4453.initiators.var287();tC.internalvars_4453_21.listVar.push(287);tC.internalvars_4453.initiators.var285=function(){tC.internalvars.tc_referrer=document.referrer;} 3938tC.internalvars_4453.initiators.var285();tC.internalvars_4453_21.listVar.push(285);tC.internalvars_4453.initiators.var288=function(){tC.internalvars.tc_url_1=(function(){tC.internalvars.tc_url_1_tmp=document.location.href.split('?');tC.internalvars.tc_url_1_tmp2=tC.internalvars.tc_url_1_tmp[0].split('/');return tC.internalvars.tc_url_1_tmp2[3];})();} 3939tC.internalvars_4453.initiators.var288();tC.internalvars_4453_21.listVar.push(288);tC.internalvars_4453.initiators.var289=function(){tC.internalvars.tc_url_2=(function(){tC.internalvars.tc_url_2_tmp=document.location.href.split('?');tC.internalvars.tc_url_2_tmp2=tC.internalvars.tc_url_2_tmp[0].split('/');return tC.internalvars.tc_url_2_tmp2[4];})();} 3940tC.internalvars_4453.initiators.var289();tC.internalvars_4453_21.listVar.push(289);tC.internalvars_4453.initiators.var290=function(){tC.internalvars.tc_url_3=(function(){tC.internalvars.tc_url_3_tmp=document.location.href.split('?');tC.internalvars.tc_url_3_tmp2=tC.internalvars.tc_url_3_tmp[0].split('/');return tC.internalvars.tc_url_3_tmp2[5];})();} 3941tC.internalvars_4453.initiators.var290();tC.internalvars_4453_21.listVar.push(290);tC.internalvars_4453.initiators.var284=function(){tC.internalvars.tc_pathname=window.location.pathname;} 3942tC.internalvars_4453.initiators.var284();tC.internalvars_4453_21.listVar.push(284);tC.internalvars_4453.initiators.var283=function(){tC.internalvars.country='';if(tC.internalvars.extensionDomain){tC.internalvars.country=tC.internalvars.extensionDomain.toUpperCase()}} 3943tC.internalvars_4453.initiators.var283();tC.internalvars_4453_21.listVar.push(283);tC.internalvars_4453.initiators.var292=function(){tC.internalvars.collectionDomainCA="";tC.internalvars.collectionDomainCA="delta."+window.location.host;} 3944tC.internalvars_4453.initiators.var292();tC.internalvars_4453_21.listVar.push(292);tC.internalvars_4453.initiators.var294=typeof tC.internalvars_4453.initiators.var294=="function"?tC.internalvars_4453.initiators.var294:function(){tC.internalvars.site_B2C=tC.internalvars.site_B2C?tC.internalvars.site_B2C:"";} 3945tC.internalvars_4453.initiators.var294();tC.internalvars_4453_21.listVar.push(294);tC.internalvars_4453.initiators.var295=function(){tC.internalvars.GBInternational="";if(window.location.href.indexOf("/conexion-particular")>-1){tC.internalvars.GBInternational="e6a8fa56-99a3-4a40-8b5d-e23990aa480a";} 3946if(window.location.href.indexOf("/privati")>-1){tC.internalvars.GBInternational="59797f56-2f0f-4bdb-b157-993c28e38d87";} 3947if(window.location.href.indexOf("/iniciar-sesao-especial")>-1){tC.internalvars.GBInternational="89bb5343-33b0-492f-b30d-08dbda6e5d26";}} 3948tC.internalvars_4453.initiators.var295();tC.internalvars_4453_21.listVar.push(295);tC.internalvars_4453.initiators.var296=function(){tC.internalvars.PageContacts="";if(window.location.href.indexOf("floapay.es")>-1){tC.internalvars.PageContacts="https://www.floapay.es/contactanos";} 3949if(window.location.href.indexOf("floapay.it")>-1){tC.internalvars.PageContacts="https://www.floapay.it/contattaci";} 3950if(window.location.href.indexOf("floapay.pt")>-1){tC.internalvars.PageContacts="https://www.floapay.pt/contacte-nos";}} 3951tC.internalvars_4453.initiators.var296();tC.internalvars_4453_21.listVar.push(296);tC.internalvars_4453.initiators.var297=function(){var ref=window.location.href;tC.internalvars.siteId_NG="52";if(ref.indexOf("val-payment.floa.")>-1||ref.indexOf("prp-payment.floa.")>-1||ref.indexOf("dev-payment.floa.")>-1||ref.indexOf("integ-payment.floa.")>-1){tC.internalvars.siteId_NG="3";}} 3952tC.internalvars_4453.initiators.var297();tC.internalvars_4453_21.listVar.push(297);tC.internalvars_4453.initiators.var326=function(){var ref=window.location.href;tC.internalvars.siteId_99="";if(ref.indexOf("floapay.fr/pos-page-ok")>-1||ref.indexOf("floapay.fr/pos-page-ko")>-1||ref.indexOf("floapay.es/pdv-pagina-retorno-es")>-1||ref.indexOf("floapay.es/pdv-pagina-ko-es")>-1||ref.indexOf("floapay.es/pdv-pagina-ok-es")>-1||ref.indexOf("floapay.be/fr/pos-page-retour-befr")>-1||ref.indexOf("floapay.be/fr/pos-page-ko-befr")>-1||ref.indexOf("floapay.be/fr/pos-page-ok-befr")>-1||ref.indexOf("floapay.be/nl/pos-page-return-benl")>-1||ref.indexOf("floapay.be/nl/pos-page-ko-benl")>-1||ref.indexOf("floapay.be/nl/pos-page-ok-benl")>-1||ref.indexOf("floapay.nl/pos-page-return-nl")>-1||ref.indexOf("floapay.nl/pos-page-ko-nl")>-1||ref.indexOf("floapay.nl/pos-page-ok-nl")>-1||ref.indexOf("floapay.de/pos-seite-zurück")>-1||ref.indexOf("floapay.de/pos-seite-abbruch")>-1||ref.indexOf("floapay.de/pos-seite-bestätigen")>-1||ref.indexOf("floapay.it/pv-pagina-ritorno-it")>-1||ref.indexOf("floapay.it/pv-pagina-ko-it")>-1||ref.indexOf("floapay.it/pv-pagina-ok-it")>-1||ref.indexOf("floapay.pt/pdv-pagina-retorno")>-1||ref.indexOf("floapay.pt/pdv-pagina-ko")>-1||ref.indexOf("floapay.pt/pdv-pagina-ok")>-1){tC.internalvars.siteId_99="19";}} 3953tC.internalvars_4453.initiators.var326();tC.internalvars_4453_21.listVar.push(326); 3954/*END_VARIABLES_BLOCK*/ 3955 3956 3957/*DYNAMIC JS BLOCK 2*/ 3958 3959/*END DYNAMIC JS BLOCK 2*/ 3960 3961/*CUSTOM_JS_BLOCK2*/ 3962if(document.URL.indexOf('floapay.be/')!==-1){tC.privacy.cok=function(t,e,a,i,n){n=n||{},a=a||"",i=i||"";var r=tC.privacy.consentDuration||13;r=30*parseInt(r);var o="undefined"!=typeof tc_privacy_force_domain?tc_privacy_force_domain:null;tC.privacy.iabVendorList&&(e=e+"|"+tC.privacy.iabVendorList.gvlSpecificationVersion+"|"+tC.privacy.iabVendorList.tcfPolicyVersion+"|"+tC.privacy.iabVendorList.vendorListVersion);var s=t+tC.privacy.getCS()+e+tC.privacy.getCS()+a+tC.privacy.getCS()+(tC.privacy.blockedOnCategories||"")+tC.privacy.getCS()+Date.now()+tC.privacy.getCS()+i;if(document.URL.indexOf('/fr')!==-1){var path="/fr"}else if(document.URL.indexOf('/nl')!==-1){var path="/nl"}else{var path="/"}
3963tC.setCookie(tC.privacy.getCN(),s,r,path,o,null,'None'),tC.setCookie(tC.privacy.getPCCN(),a,r,path,o,null,'None'),null!=n.acmVendorList&&tC.storage.setWithExpiry(tC.privacy.getCN()+"_ACM",n.acmVendorList,r),null!=window.__tcfapi&&(tC.storage.remove("TC_PRIVACY_TCF"),window.__tcfapi("getTCData",2,(function(t,e){e&&(t.vendorListVersion=tC.privacy.iabVendorList.vendorListVersion,tC.storage.setWithExpiry("TC_PRIVACY_TCF",t,r))})))}} 3964/*END_CUSTOM_JS_BLOCK2*/ 3965tC.container_4453_21.datastorage(); 3966 3967//---------------------------------------------------- 3968 3969 3970 3971 3972//---- 3973 3974tC.extend({executeTag134_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};} 3975tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};tC.log('====================================================================');tC.log('========= b2cEvent x tc_vars.event="forgot-password-click" =========');tC.log('====================================================================');}});tC.extend({executeTag133_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};} 3976tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};(function(){window._uxa=window._uxa||[];try{if(typeof tc_vars!=='undefined'){window._uxa.push(['setCustomVariable',1,'page_name',tc_vars["page_name"],3]);window._uxa.push(['setCustomVariable',2,'page_type',tc_vars["page_type"],3]);window._uxa.push(['setCustomVariable',3,'page_cat1',tc_vars["page_cat1"],3]);window._uxa.push(['setCustomVariable',4,'page_cat2',tc_vars["page_cat2"],3]);}}catch(e){} 3977if(typeof CS_CONF==='undefined'){window._uxa.push(['setPath',window.location.pathname+window.location.hash.replace('#','?__')]);var mt=document.createElement("script");mt.type="text/javascript";mt.async=true;mt.id="tc_script_322_1";mt.src="//t.contentsquare.net/uxa/f80de5d914500.js";document.getElementsByTagName("head")[0].appendChild(mt);} 3978else{window._uxa.push(['trackPageview',(window.location.pathname+window.location.hash.replace('#','?')+"/"+tc_vars["page_name"]+"/"+tc_vars["event"]).replaceAll('//','/')]);}})();}});tC.extend({executeTag137_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};} 3979tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};var _paq=window._paq=window._paq||[];_paq.push(["setVisitorCookieTimeout","28927800"]);_paq.push(["setCustomDimension","1",window.location.hostname]);tC.template=document.location.href.split("/").splice(1,3).join("/");_paq.push(['setDocumentTitle',(document.title+"/"+tc_vars["page_cat1"]+"/"+tc_vars["env_support"]).replaceAll('//','/')]);_paq.push(['setCustomUrl',"/"+tc_vars["page_name"]]);_paq.push(['trackPageView']);tC.log("MATOMO - PARTICULIERS-FLOAPAY - "+tC.internalvars.siteId_standard+" - Statistique");(function(){var u="//matomo.floa.com/";_paq.push(['setTrackerUrl',u+'matomo.php']);_paq.push(['setSiteId',tC.internalvars.siteId_standard]);window.matomoAsyncInit=function(){var matomoTrackerB2C=Matomo.getTracker(u+'matomo.php',tC.internalvars.siteId_standard);matomoTrackerB2C.trackPageView();matomoTrackerB2C.enableLinkTracking();};var d=document,g=d.createElement('script'),s=d.getElementsByTagName('script')[0];g.async=true;g.src=u+'matomo.js';s.parentNode.insertBefore(g,s);})();}});tC.extend({executeTag182_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};} 3980tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};_paq.push(['trackEvent','Event Clic',tc_vars["page_name"],tc_vars["page_cat
39801"]]);}});tC.extend({executeTag153_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};} 3981tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};var _paq=window._paq=window._paq||[];_paq.push(['trackEvent','CTA Contact','Clic','Je suis un particulier']);}});tC.extend({executeTag169_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};} 3982tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};_paq.push(['trackEvent','BOUTON FLOTTANT ','CLIC SUR MOBILE']);}});tC.extend({executeTag185_4453_21:function(el,p){if(!el||!el.target){el={type:"no_event",target:{}}};if(typeof p=="undefined"){p={};} 3983tc_array_events=tC.container_4453_21.init_tc_array_events(p);var cact=tC.container_4453_21.cact||window.cact;var cact_container=window.tC_4453_21;var cact_event=el||{};var cact_event_vars=Object.assign({},tc_array_events);var cact_event_attrs=cact_event.target||{};setTimeout(function(){if(window.location.pathname=='/formulaire-contactez-nous-2'){(function(){window._uxa=window._uxa||[];if(typeof CS_CONF==='undefined'){window._uxa.push(['setPath',window.location.pathname+window.location.hash.replace('#','?__')]);var mt=document.createElement("script");mt.type="text/javascript";mt.async=true;mt.id="tc_script_322_1";mt.src="//t.contentsquare.net/uxa/f80de5d914500.js";document.getElementsByTagName("head")[0].appendChild(mt);} 3984else{window._uxa.push(['trackPageview',window.location.pathname+window.location.hash.replace('#','?__')]);}})();}},4000);}});if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('129')){tC.launchTag(129,'GOOGLE ADS - BASE TAG FLOAPAY',2584,4453,21,8);tC.scriptElt1=document.createElement("script");tC.scriptElt1.id="tc_script_129_1";tC.scriptElt1.src="https://www.googletagmanager.com/gtag/js?id=AW-469406772";(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);window.dataLayer=window.dataLayer||[];var gtag=function(){dataLayer.push(arguments);};gtag('js',new Date());gtag('config','AW-469406772');}} 3985if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('107')){if(((document.location).toString().toLowerCase().indexOf(('floapay.').toLowerCase())!=-1)){if((document.location).toString().toLowerCase().indexOf(('particuliers.').toLowerCase())==-1){if((document.location).toString().toLowerCase().indexOf(('validation.').toLowerCase())==-1){if((document.location).toString().toLowerCase().indexOf(('pros.').toLowerCase())==-1){if((document.location).toString().toLowerCase().indexOf(('preprod.').toLowerCase())==-1){tC.launchTag(107,'Content Square - Principal',26,4453,21,8);(function(){window._uxa=window._uxa||[];if(typeof CS_CONF==='undefined'){window._uxa.push(['setPath',window.location.pathname+window.location.hash.replace('#','?__')]);var mt=document.createElement("script");mt.type="text/javascript";mt.async=true;mt.id="tc_script_322_1";mt.src="//t.contentsquare.net/uxa/f80de5d914500.js";document.getElementsByTagName("head")[0].appendChild(mt);} 3986else{window._uxa.push(['trackPageview',window.location.pathname+window.location.hash.replace('#','?__')]);}})();}}}}}}} 3987if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('123')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contact$|contattaci$|\/contactanos$|\/contact-us$|\/contacte-nos$|\/kontaktieren-sie-uns$').replace(new RegExp("\\*","g"),".*"),"gi")))){if(tC.internalvars.device=='d'){tC.launchTag(123,'GB - PAGE CONTACT - FLOAPAY - TOUS PAYS - SAUF FR',26,4453,21,8);tC.scriptElt1=document.createElement("script");tC.scriptElt1.id="tc_script_110_1";tC.scriptElt1.type="text/javascript";tC.scriptElt1.src="https://widgets.greenbureau.com/js/chayall.js";tC.scriptElt1.async=true;tC.scriptElt1.setAttribute("data-chayall-account","1e89bee8-9da0-4936-82df-056422aaa962");(document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);}}}} 3988if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('113')){if(((document.location).toString().toLowerCase().indexOf(('particuliers.floapay.com/connexion').toLowerCase())!=-1)){tC.launchTag(113,'Criteo : OneTag Homepage 96514 - MAJ',647,4453,21,8);tC.scriptElt1=document.createElement("script");tC.scriptElt1.id="tc_script_138_1";tC.scriptElt1.type="text/javascript";tC.scriptElt1.src="//static.criteo.net/js/ld/ld.js";tC.scriptElt1.async="true";(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);window.criteo_q=window.criteo_q||[];var deviceType=/iPad/.test(navigator.userAgent)?"t":/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent)?"m":"d";window.criteo_q.push({event:"setAccount",account:96514},{event:"setEmail",email:tc_vars["user_email"]},{event:"setSiteType",type:tC.internalvars.device},{event:"viewHome",extra_project:'1'});}}} 3989if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('121')){if((!(document.location).toString().toLowerCase().match(new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(121,'MATOMO - GENERIQUE',26,4453,21,8);setTimeout(function(){var _paq=window._paq=window._paq||[];var posPatterns=['floapay.fr/pos-page-ok','floapay.fr/pos-page-ko','floapay.es/pdv-pagina-retorno-es','floapay.es/pdv-pagina-ko-es','floapay.es/pdv-pagina-ok-es','floapay.be/fr/pos-page-retour-befr','floapay.be/fr/pos-page-ko-befr','floapay.be/fr/pos-page-ok-befr','floapay.be/nl/pos-page-return-benl','floapay.be/nl/pos-page-ko-benl','floapay.be/nl/pos-page-ok-benl','floapay.nl/pos-page-return-nl','floapay.nl/pos-page-ko-nl','floapay.nl/pos-page-ok-nl','floapay.de/pos-seite-zurück','floapay.de/pos-seite-abbruch','floapay.de/pos-seite-bestätigen','floapay.it/pv-pagina-ritorno-it','floapay.it/pv-pagina-ko-it','floapay.it/pv-pagina-ok-it','floapay.pt/pdv-pagina-retorno','floapay.pt/pdv-pagina-ko','floapay.pt/pdv-pagina-ok'];var isPosPage=function(){var url=decodeURIComponent(window.location.href).toLowerCase();return posPatterns.some(function(pattern){return url.includes(pattern.toLowerCase());});};(function(){var u="//matomo.floa.com/";
3989window.matomoAsyncInit=function(){var matomoTracker19=Matomo.getTracker('https://matomo.floa.com/matomo.php',19);matomoTracker19.setCustomDimension(1,window.location.hostname);matomoTracker19.trackPageView();matomoTracker19.enableLinkTracking();if(!isPosPage()){var matomoTracker1=Matomo.getTracker('https://matomo.floa.com/matomo.php',1);matomoTracker1.setCustomDimension(1,window.location.hostname);matomoTracker1.trackPageView();matomoTracker1.enableLinkTracking();}};var d=document,g=d.createElement('script'),s=d.getElementsByTagName('script')[0];g.async=true;g.src=u+'matomo.js';s.parentNode.insertBefore(g,s);})();},0);}}} 3990if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('133')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(133,'CONTENTSQUARE - B2C - TOUTES LES ETAPES',26,4453,21,8);(function(){window._uxa=window._uxa||[];try{if(typeof tc_vars!=='undefined'){window._uxa.push(['setCustomVariable',1,'page_name',tc_vars["page_name"],3]);window._uxa.push(['setCustomVariable',2,'page_type',tc_vars["page_type"],3]);window._uxa.push(['setCustomVariable',3,'page_cat1',tc_vars["page_cat1"],3]);window._uxa.push(['setCustomVariable',4,'page_cat2',tc_vars["page_cat2"],3]);}}catch(e){} 3991if(typeof CS_CONF==='undefined'){window._uxa.push(['setPath',window.location.pathname+window.location.hash.replace('#','?__')]);var mt=document.createElement("script");mt.type="text/javascript";mt.async=true;mt.id="tc_script_322_1";mt.src="//t.contentsquare.net/uxa/f80de5d914500.js";document.getElementsByTagName("head")[0].appendChild(mt);} 3992else{window._uxa.push(['trackPageview',(window.location.pathname+window.location.hash.replace('#','?')+"/"+tc_vars["page_name"]+"/"+tc_vars["event"]).replaceAll('//','/')]);}})();}}} 3993if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('137')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*validation-particuliers\.floapay\.com|particuliers\.floapay\.com').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(137,'MATOMO - B2C - PARTICULIERS FLOAPAY - ATTEINTE ETAPES',26,4453,21,8);var _paq=window._paq=window._paq||[];_paq.push(["setVisitorCookieTimeout","28927800"]);_paq.push(["setCustomDimension","1",window.location.hostname]);tC.template=document.location.href.split("/").splice(1,3).join("/");_paq.push(['setDocumentTitle',(document.title+"/"+tc_vars["page_cat1"]+"/"+tc_vars["env_support"]).replaceAll('//','/')]);_paq.push(['setCustomUrl',"/"+tc_vars["page_name"]]);_paq.push(['trackPageView']);tC.log("MATOMO - PARTICULIERS-FLOAPAY - "+tC.internalvars.siteId_standard+" - Statistique");(function(){var u="//matomo.floa.com/";_paq.push(['setTrackerUrl',u+'matomo.php']);_paq.push(['setSiteId',tC.internalvars.siteId_standard]);window.matomoAsyncInit=function(){var matomoTrackerB2C=Matomo.getTracker(u+'matomo.php',tC.internalvars.siteId_standard);matomoTrackerB2C.trackPageView();matomoTrackerB2C.enableLinkTracking();};var d=document,g=d.createElement('script'),s=d.getElementsByTagName('script')[0];g.async=true;g.src=u+'matomo.js';s.parentNode.insertBefore(g,s);})();}}} 3994if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('138')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous-ok|\/contactanos-ok|\/contattaci-ok|\/contacte-nos-ok|\/fr\/contactez-nous-ok|\/nl\/contact-ok').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(138,'GOOGLE ADS - CONVERSION ALL COUNTRIES',2572,4453,21,8);var tc_img_adwords=document.createElement("img");tc_img_adwords.id="tc_img__1";tc_img_adwords.type="text/javascript";tc_img_adwords.src="//www.googleadservices.com/pagead/conversion/"+'1007427710'+"/?value="+''+"&label="+tC.internalvars.ads_label+"&cachebuster="+Math.floor(Math.random()*1000000);(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tc_img_adwords,null);}}} 3995if(((document.location).toString().toLowerCase().match(new RegExp(('.*floapay\.fr\/|floapay\.io.*').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(141,'TAG - GETQUANTY APRES CONSENTEMENT - 3010318920',26,4453,21,8);if(tC.privacy.getOptinVendors().includes("22")){var script=document.createElement('script');script.src="https://get.smart-data-systems.com/gq?site_id=3010318920&consent=1";document.head.appendChild(script);}else{var script=document.createElement('script');script.src="https://get.smart-data-systems.com/gq?site_id=3010318920¬rack=1";document.head.appendChild(script);}} 3996if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('146')){if((!(document.location).toString().toLowerCase().match(new RegExp(('.*be\/').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(146,'ADRENALEAD - COLLECTE ABONNES ET DECLENCHEMENT- ALL COUNTRIES - SAUF BE',26,4453,21,8);var _nAdzq=_nAdzq||[];(function(){_nAdzq.push(["setIds",tC.internalvars.adrenaleadsetIds]);_nAdzq.push(["startR"]);var e="https://notifpush.com/scripts/";var t=document.createElement("script");t.id="tc_script_146_1";t.type="text/javascript";t.defer=true;t.async=true;t.src=e+"nadz-sdk.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)})();var _nAdzqTriggers=_nAdzqTriggers||[];var runNadzTriggers=function(){_nAdzqTriggers.push(["setIds",tC.internalvars.adrenaleadsetIds]);var e="https://notifpush.com/scripts/";var t=document.createElement("script");t.id="tc_script_145_1";t.type="text/javascript";t.defer=true;t.async=true;t.src=e+"full-script-trigger.min.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s);};runNadzTriggers();}}} 3997if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('147')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous-ok|\/contactanos-ok|\/contattaci-ok|\/contacte-nos-ok|\/fr\/contactez-nous-ok|\/nl\/contact-ok|\/kontaktieren-sie-uns-ok|\/contact-ok|\/contact-us-ok|\/landing-contact-premium-ok|\/landing-contact-premium-kantar-ok|\/landing-contact-livre-blanc-paiement-plusieurs-fois-ok|\/contact-bnp-ok|\/contact-bnpp-retail-ok|\/contact-avatacar-ok|\/contact-event-ok|\/contact-point-s-ok|\/contact-sport-2000-ok|\/contact-cabinets-conseil-ok|\/contact-agences-voyages-ok').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(147,'ADRENALEAD - COLLECTE SUIVI DES CONVERSIONS - ABANDON PAN
3997IER - EXCLUSION',26,4453,21,8);var _nAdztr=_nAdztr||[];(function(){_nAdztr.push(["setAdvertiserId","2205"]);_nAdztr.push(["setTransactionId",Math.floor(Math.random()*100000000)]);_nAdztr.push(["setAmount",1]);_nAdztr.push(["setTr"]);var u="https://notifpush.com/scripts/";var s=document.createElement("script");s.id="tc_script_147_1";s.type="text/javascript";s.defer=true;s.async=true;s.src=u+"nadz-tr.js";var p=document.getElementsByTagName("script")[0];p.parentNode.insertBefore(s,p);})();if(window['NADZ_TRIGGERS']!==undefined){var actions=window['NADZ_TRIGGERS'].getNadzTriggerActions();actions.handleActions([['setProduitsDansPanier',false],['setMontantConversion',"0"]]);} 3998else{var _nAdzqTriggers=_nAdzqTriggers||[];_nAdzqTriggers.push(['handleActions',[['setProduitsDansPanier',false],['setMontantConversion',"0"]]]);}}}} 3999if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('149')){if(tc_vars["page_cat1"]=='page_schedules'){tC.launchTag(149,'ADRENALEAD - AUTHENTIFICATION TRUE',26,4453,21,8);if(window['NADZ_TRIGGERS']!==undefined){var actions=window['NADZ_TRIGGERS'].getNadzTriggerActions();actions.handleActions([['isAuthenticated',true]]);} 4000else{var _nAdzqTriggers=_nAdzqTriggers||[];_nAdzqTriggers.push(['handleActions',[['isAuthenticated',true]]]);}}}} 4001if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('150')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous|\/contactanos|\/contattaci|\/contacte-nos|\/fr\/contactez-nous|\/nl\/contact|\/kontaktieren-sie-uns|\/contact|\/contact-us|\/landing-contact-premium|\/landing-contact-premium-kantar|\/landing-contact-livre-blanc-paiement-plusieurs-fois|\/contact-bnp|\/contact-bnpp-retail|\/contact-avatacar|\/contact-event|\/contact-point-s|\/contact-sport-2000|\/contact-cabinets-conseil|\/contact-agences-voyages').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(150,'ADRENALEAD - ABANDON DEMANDE DE CONTACT',26,4453,21,8);if(window['NADZ_TRIGGERS']!==undefined){var actions=window['NADZ_TRIGGERS'].getNadzTriggerActions();actions.handleActions([['setProduitsDansPanier',true]]);} 4002else{var _nAdzqTriggers=_nAdzqTriggers||[];_nAdzqTriggers.push(['handleActions',[['setProduitsDansPanier',true]]]);}}}} 4003if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('151')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*be\/').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(151,'00 - ADRENALEAD - COLLECTE ABONNES - BE',26,4453,21,8);setTimeout(function(){var lang=location.pathname.split('/')[1],oParams={"fr":{ids:"37cfcc9676d1852a"},"nl":{ids:"06253d63713ecf26"}};if(oParams[lang]!==undefined){var _nAdzq=_nAdzq||[];(function(){_nAdzq.push(["setIds",oParams[lang].ids]);_nAdzq.push(["startR"]);var e="https://notifpush.com/scripts/";var t=document.createElement("script");t.id="tc_script_151_1";t.type="text/javascript";t.defer=true;t.async=true;t.src=e+"nadz-sdk.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)})();}},3000) 4004setTimeout(function(){var lang=location.pathname.split('/')[1],oParams={"fr":{ids:"37cfcc9676d1852a"},"nl":{ids:"06253d63713ecf26"}};if(oParams[lang]!==undefined){var _nAdzqTriggers=_nAdzqTriggers||[];var runNadzTriggers=function(){_nAdzqTriggers.push(["setIds",oParams[lang].ids]);var e="https://notifpush.com/scripts/";var t=document.createElement("script");t.id="tc_script_152_1";t.type="text/javascript";t.defer=true;t.async=true;t.src=e+"full-script-trigger.min.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s);};runNadzTriggers();}},3000)}}} 4005if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('167')){tC.launchTag(167,'Google Ads - REMARKETING - 734317018',2584,4453,21,8);tC.scriptElt1=document.createElement("script");tC.scriptElt1.id="tc_script_167_1";tC.scriptElt1.src="https://www.googletagmanager.com/gtag/js?id=AW-734317018";(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);window.dataLayer=window.dataLayer||[];var gtag=function(){dataLayer.push(arguments);};gtag('js',new Date());gtag('config','AW-734317018');}} 4006if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('168')){if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous-ok|\/contactanos-ok|\/contattaci-ok|\/contacte-nos-ok|\/fr\/contactez-nous-ok|\/nl\/contact-ok').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(168,'Google Ads - CONVERSION ALL COUNTRIES - 734317018',2572,4453,21,8);var tc_img_adwords=document.createElement("img");tc_img_adwords.id="tc_img__1";tc_img_adwords.type="text/javascript";tc_img_adwords.src="//www.googleadservices.com/pagead/conversion/"+'734317018'+"/?value="+''+"&label="+tC.internalvars.new_label_ads+"&cachebuster="+Math.floor(Math.random()*1000000);(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tc_img_adwords,null);}}} 4007if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('171')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*floapay\.fr\/|floapay\.io.*').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(171,'Floapay FR - Pardot pour Google Ads',26,4453,21,8);piAId='998881';piCId='77338';piHostname='pi.pardot.com';(function(){var async_load=function(){var s=document.createElement('script');s.type='text/javascript';s.src=('https:'==document.location.protocol?'https://pi':'http://cdn')+'.pardot.com/pd.js';var c=document.getElementsByTagName('script')[0];c.parentNode.insertBefore(s,c);};if(window.attachEvent){window.attachEvent('onload',async_load);} 4008else{window.addEventListener('load',async_load,false);}})();}}} 4009if(((document.location).toString().toLowerCase().match(new RegExp(('.*floapay\.fr|floapay\.com.*').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(186,'AB Tasty FLOAPAY FR & COM - No Consent',26,4453,21,8);(function(i,s,o,g,r,a,m){i[r]=i[r]||[],i['abtiming']=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=0;a.defer=0;a.src=g;m.parentNode.insertBefore(a,m)}
4009)(window,document,'script','//try.abtasty.com/'+'39a36a3c1aba49056104141c3145c0a7'+'.js','_abtasty');} 4010if(((document.location).toString().toLowerCase().match(new RegExp(('.*floapay\.es|floapay\.it|floapay\.pt|floapay\.nl|floapay\.de.*').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(187,'AB Tasty FLOAPAY ES IT PT NL DE - No Consent',26,4453,21,8);(function(i,s,o,g,r,a,m){i[r]=i[r]||[],i['abtiming']=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=0;a.defer=0;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//try.abtasty.com/'+'1c73933add76adb79a7fcc5017c23629'+'.js','_abtasty');} 4011if(((document.location).toString().toLowerCase().match(new RegExp(('.*be\/').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(188,'AB Tasty FLOAPAY BE/FR & BE/NL - No Consent',26,4453,21,8);(function(i,s,o,g,r,a,m){i[r]=i[r]||[],i['abtiming']=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=0;a.defer=0;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//try.abtasty.com/'+'6dfe79061d03c2491ec77a4065d8ad03'+'.js','_abtasty');(function(i,s,o,g,r,a,m){i["abtiming"]=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,"script","//try.abtasty.com/6dfe79061d03c2491ec77a4065d8ad03.js");} 4012if((document.querySelector('.video-consent')!==null)){tC.launchTag(194,'CA - code for mask 1',2999,4453,21,8);if(tC.getCookie('TC_PRIVACY')==''){var referrerHistory=localStorage.getItem('referrerHistory');if(!referrerHistory){referrerHistory=[];referrerHistory.push(document.referrer);localStorage.setItem('referrerHistory',JSON.stringify(referrerHistory));}else{referrerHistory=JSON.parse(referrerHistory);}}
4012 4013if(tC.getCookie('TC_PRIVACY')!=''){var referrerHistory=localStorage.getItem("referrerHistory");if(referrerHistory){Object.defineProperty(document,"referrer",{get:function(){return referrerHistory.replace(/[\[\]"]/g,'');}});localStorage.removeItem("referrerHistory");}} 4014if(typeof window.tc_InsertConsent=="undefined"){window.tc_InsertConsent=[];} 4015window.tc_InsertConsent.CSSincluded=false;window.tc_InsertConsent.OptinCat=function(cat){var value=false;var userConsent=tC.privacy.getOptinCategories();if(userConsent.indexOf('4')>-1){value=true;} 4016return value};window.tc_InsertConsent.insertCSS=function(myStyle){window.tc_InsertConsent.CSSincluded=true;var styleNode=document.createElement('style');styleNode.type="text/css";if(!!(window.attachEvent&&!window.opera)){styleNode.styleSheet.cssText=myStyle;}else{var styleText=document.createTextNode(myStyle);styleNode.appendChild(styleText);} 4017document.getElementsByTagName('head')[0].appendChild(styleNode);};} 4018if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.be/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.nl').toLowerCase())!=-1){tC.launchTag(157,'CA - code for mask 2 (text NL)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;} 4019var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;} 4020html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+=' <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+=' <p class="tc_InsertConsent_activate_text_line1">'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+=' <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+=' '+'Accept';html+=' </div>';html+=' </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);} 4021for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}} 4022return false;};}} 4023if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.com').toLowerCase())!=-1){tC.launchTag(156,'CA - code for mask 2 (text EN)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;} 4024var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;} 4025html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+=' <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+=' <p class="tc_InsertConsent_activate_text_line1">'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+=' <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+=' '+'Accept';html+=' </div>';html+=' </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);} 4026for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}} 4027return false;};}} 4028if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.es').toLowerCase())!=-1){tC.launchTag(192,'CA - code for mask 2 (text ES) ',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;} 4029var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;} 4030html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+=' <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+=' <p class="tc_InsertConsent_activate_text_line1">
4030'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+=' <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+=' '+'Accept';html+=' </div>';html+=' </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);} 4031for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}} 4032return false;};}} 4033if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.it').toLowerCase())!=-1){tC.launchTag(159,'CA - code for mask 2 (text IT)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;} 4034var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;} 4035html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+=' <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+=' <p class="tc_InsertConsent_activate_text_line1">'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+=' <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+=' '+'Accept';html+=' </div>';html+=' </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);} 4036for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}} 4037return false;};}} 4038if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.pt').toLowerCase())!=-1){tC.launchTag(191,'CA - code for mask 2 (text PT)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;} 4039var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;} 4040html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+=' <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+=' <p class="tc_InsertConsent_activate_text_line1">'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+=' <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+=' '+'Accept';html+=' </div>';html+=' </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);} 4041for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}} 4042return false;};}} 4043if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.de').toLowerCase())!=-1){tC.launchTag(158,'CA - code for mask 2 (text DE)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;} 4044var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;} 4045html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+=' <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+=' <p class="tc_InsertConsent_activate_text_line1">
4045'+'You have to accept cookies to watch this '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Allow cookies to get access to this functionality.'+'</p>';html+=' <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+=' '+'Accept';html+=' </div>';html+=' </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);} 4046for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}} 4047return false;};}} 4048if((document.querySelector('.video-consent')!==null)){if((document.location).toString().toLowerCase().indexOf(('floapay.be/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.fr').toLowerCase())!=-1){tC.launchTag(177,'CA - code for mask 2 (text FR)',1355,4453,21,8);window.tc_InsertConsent.getPermission=function(targetId,privacyId,name,addClass){if(document.querySelectorAll(targetId).length>0){if(window.tc_InsertConsent.OptinCat()===true){return true;} 4049var html='',newClass="";if(addClass!==null){newClass='tc_InsertConsent_activate_'+addClass;} 4050html+='<div id='+'"tc_div_190_1"'+' class="tc_InsertConsent_activate tc_InsertConsent_activate_"'+privacyId+' '+newClass+'>';html+=' <div id='+"tc_div_190_2"+' class="tc_InsertConsent_float">';html+=' <p class="tc_InsertConsent_activate_text_line1">'+'Vous devez accepter les cookies pour voir cette '+' '+'<b>'+name+'</b> ! </p><p class="tc_InsertConsent_activate_text_line2">'+'Autoriser le dépôt de cookies pour accéder à cette fonctionnalité.'+'</p>';html+=' <div class="tc_InsertConsent_AllowBtn" id="tc_InsertConsent_AllowBtn_'+privacyId+'" onclick="window.tc_InsertConsent.setPermission('+privacyId+')">';html+=' '+'Autoriser';html+=' </div>';html+=' </div>';html+='</div>';if(!window.tc_InsertConsent.CSSincluded){window.tc_InsertConsent.insertCSS(window.tc_InsertConsent.style);} 4051for(i=0;i<document.querySelectorAll(targetId).length;i++){document.querySelectorAll(targetId)[i].innerHTML=html;}} 4052return false;};}} 4053if((document.querySelector('.video-consent')!==null)){tC.launchTag(190,'CA - code for mask 3',2999,4453,21,8);window.tc_InsertConsent.setPermission=function(){cact('consent.update',{categories:{'4':{status:'on'}}});window.location.reload();};window.tc_InsertConsent.style="";window.tc_InsertConsent.style+=".tc_InsertConsent_activate{border: "+'0px'+" "+'solid'+" "+''+"; background: "+'#f9f9fa'+";color: "+'#161616'+";display: table;font-size: "+'14px'+";height: 100%;line-height: 2em;margin: auto;text-align: center;width: 100%;padding:"+'30px'+"; display: flex;flex-direction: column; justify-content: center; align-items: center;}";window.tc_InsertConsent.style+=".tc_InsertConsent_float{display: table-cell;text-align: "+'left'+";vertical-align: middle;}";window.tc_InsertConsent.style+=".tc_InsertConsent_AllowBtn{background:"+'#00ff87'+";text-align: "+'center'+";font-size: "+'20px'+";color:"+'#161616'+"; padding:"+'10px 30px'+";display: block; margin-top:15px;cursor:pointer;border-radius:"+'10px'+" ;border: "+'0px'+" ;}";window.tc_InsertConsent.style+=".tc_InsertConsent_AllowBtn:hover{background:"+'#00ff87'+";color:"+''+";border: "+'0px'+";}";window.tc_InsertConsent.style+=".tc_InsertConsent_activate_text_line1{font-size:"+'20px !important'+"; font-weight:100;"+";color: "+'#272e35'+";}";window.tc_InsertConsent.style+=".tc_InsertConsent_activate_text_line2{"+";color: "+'#7e8b99'+";}";setTimeout(function(){if(document.querySelector('.video-consent')!==null){window.tc_InsertConsent.getPermission('.video-consent','4','vidéo','tc_privacy_mask');}},500);cact('consent.onUpdate',function(result){var CATEGORY_ID='4';var inspectedCategory=result.consent.categories[CATEGORY_ID]||{};if(inspectedCategory.status==='on'){if(document.querySelector('.video-consent')!==null){window.location.reload();}}else{tC.log("============= cat refused ===============");}});} 4054if(document.querySelector('.video-consent')===null&&document.querySelector('.tc_privacy_mask')===null){tC.launchTag(195,'CA - Containers reload on consent',3004,4453,21,8);tC.internalvars.myDomainScripts=[];tC.internalvars.scriptElementsMyDomain=document.querySelectorAll('script');for(var i=0;i<tC.internalvars.scriptElementsMyDomain.length;i++){tC.internalvars.srcMyDomain=tC.internalvars.scriptElementsMyDomain[i].getAttribute('src');if(tC.internalvars.srcMyDomain&&tC.internalvars.srcMyDomain.indexOf("tc_BanqueCasinoCB4X_")!==-1){tC.internalvars.myDomainScripts.push(tC.internalvars.srcMyDomain);}} 4055cact('consent.onUpdate',function(result){for(var j=0;j<tC.internalvars.myDomainScripts.length;j++){tC.internalvars.myDomainContainerUrl=tC.internalvars.myDomainScripts[j];tC.script.add(tC.internalvars.myDomainContainerUrl);}});} 4056if(tC.internalvars.device!='m'){tC.launchTag(198,'A - Greenbureau Page de connexion - Connexion particular',26,4453,21,8);setTimeout(function(){tC.scriptElt1=document.createElement("script");tC.scriptElt2=document.createElement("style");tC.scriptElt2.innerHTML="#gb-app {position: fixed; } @media (max-width: 721px) { #gb-app { position: fixed; z-index: 1000 }}";document.head.appendChild(tC.scriptElt2);tC.scriptElt1.id="tc_script_754_1";tC.scriptElt1.type="text/javascript";tC.scriptElt1.src="https://widgets.greenbureau.com/js/chayall.js";tC.scriptElt1.async=true;tC.scriptElt1.setAttribute("data-chayall-account",tC.internalvars.GBInternational);tC.scriptElt1.setAttribute("data-gb-host","https://proxy.greenbureau.com");tC.scriptElt1.setAttribute("data-gb-instances","#gb-sticky-btn,#gb-footer-btn");tC.scriptElt1.setAttribute("data-gb-offline-url",tC.internalvars.PageContacts);(document.getElementsByTagName('body')[0]||document.getElementsByTagName('script')[0].parentNode).insertBefore(tC.scriptElt1,null);},2000)} 4057if(((document.location).toString().toLowerCase().match(new RegExp(('\/contactez-nous-ok|\/contactanos-ok|\/contattaci-ok|\/contacte-nos-ok|\/fr\/contactez-nous-ok|\/nl\/contact-ok').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(201,'CA - Generate_lead - OneTag',26,4453,21,8);var country=window.location.host.split(".").splice(2);var document=window.document.title;cact('trigger','generate_lead',{value:'1',revenue:'1',currency:'EUR',page_name:document,country:country},{siteId:'4453',sourceKey:'afa25364-eefd-4f0d-8991-c82db928061e'});} 4058if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('207')){if(((document.location).toString().toLowerCase().match(new RegExp(('.*\/conseiller-virtuel$').replace(new RegExp("\\*","g"),".*"),"gi")))){tC.launchTag(207,'Greenbureau - Chatbot - redirection',26,4453,21,8);window.addEventListener('chawgt-messaging-channel-webchat-fin',function(e){window.location.href='https://www.floapay.fr/conseiller-virtuel-ok'});}}} 4059if(tC.getCookie(tC.privacy.getCN())!=''){if(tC.privacy.validRules('208')){tC.launchTag(208,'Linkedin - Data Partner Pixel',26,4453,21,8);_linkedin_partner_id="2433594";window._linkedin_data_partner_ids=window._linkedin_data_partner_ids||[];window._linkedin_data_partner_ids.push(_linkedin_partner_id);(function(l){if(!l){window.lintrk=function(a,b) 4060{window.lintrk.q.push([a,b])};window.lintrk.q=[]} 4061var s=document.getElementsByTagName("script")[0];var b=document.createElement("script");b.id="tc_script_208_1";b.type="text/javascript";b.async=true;b.src="https://snap.licdn.com/li.lms-analytics/insight.min.js";s.parentNode.insertBefore(b,s);})(window.lintrk);}} 4062var tc_privacy_used=0;window.tc_privacy_display_21=function(){if(!(document.location).toString().toLowerCase().match(new RegExp(('https:\/\/particuliers\.floapay\.com\/(es|it|pt|de|nl|en)\/.+').replace(new RegExp("\\*","g"),".*"),"gi"))){if
4062(!(document.location).toString().toLowerCase().match(new RegExp(('https:\/\/validation-particuliers\.floapay\.com\/(es|it|pt|de|nl|en)\/.+').replace(new RegExp("\\*","g"),".*"),"gi"))){if((document.location).toString().toLowerCase().indexOf(('floapay.fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('/dev-floa-pay.aps.floapay.io/').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('particuliers.floapay').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('/val-floa-pay.aps.floapay.io/').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('/prp-floa-pay.aps.floapay.io/').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_5.js';tC.script.add(privacyFileUrl);}}}} 4063if((document.location).toString().toLowerCase().indexOf(('floapay.com').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('en-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('en-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('en-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('particuliers.floapay.com/en/').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('validation-particuliers.floapay.com/en/').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_9.js';tC.script.add(privacyFileUrl);}} 4064if((document.location).toString().toLowerCase().indexOf(('floapay.es').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('es-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/es').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('es-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('es-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_6.js';tC.script.add(privacyFileUrl);}} 4065if((document.location).toString().toLowerCase().indexOf(('floapay.it').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/it').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('it-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('it-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('it-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_8.js';tC.script.add(privacyFileUrl);}} 4066if((document.location).toString().toLowerCase().indexOf(('floapay.pt').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/pt').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('pt-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('pt-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('pt-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_7.js';tC.script.add(privacyFileUrl);}} 4067if((document.location).toString().toLowerCase().indexOf(('floapay.be/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/be/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-dev-floa-pay.aps.floapay.io/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-val-floa-pay.aps.floapay.io/fr').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-prp-floa-pay.aps.floapay.io/fr').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_11.js';tC.script.add(privacyFileUrl);}} 4068if((document.location).toString().toLowerCase().indexOf(('floapay.be/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/be/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-dev-floa-pay.aps.floapay.io/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-val-floa-pay.aps.floapay.io/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('be-prp-floa-pay.aps.floapay.io/nl').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_12.js';tC.script.add(privacyFileUrl);}} 4069if((document.location).toString().toLowerCase().indexOf(('floapay.nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/nl').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('nl-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('nl-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('nl-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_13.js';tC.script.add(privacyFileUrl);}} 4070if((document.location).toString().toLowerCase().indexOf(('floapay.de').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('floapay.com/de').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('de-dev-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('de-val-floa-pay.aps.floapay.io').toLowerCase())!=-1||(document.location).toString().toLowerCase().indexOf(('de-prp-floa-pay.aps.floapay.io').toLowerCase())!=-1){if(tC.isCurrentVersion()&&tC.isCookieEnabled()){tC.privacy.containerId=21;var privacyFileUrl='https://cdn.trustcommander.net/privacy/4453/privacy_v2_14.js';tC.script.add(privacyFileUrl);}}} 4071tC.onDomReady(function(){tC.container_4453_21.eventlisteners();tC.eventTarget.dispatchEvent('container-ready');tC.eventTarget.dispatchEvent('container_4453_21_ready');tC.executeListener15_4453_21();window.tc_privacy_display_21();});
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.