CINXE.COM
William Saliba, Bondy ch茅ri
<!DOCTYPE html> <html xmlns:og="http://opengraphprotocol.org/schema/" prefix="og: http://ogp.me/ns#%22%3E"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script> window.gdprAppliesGlobally=true;(function(){function a(e){if(!window.frames[e]){if(document.body&&document.body.firstChild){var t=document.body;var n=document.createElement("iframe");n.style.display="none";n.name=e;n.title=e;t.insertBefore(n,t.firstChild)} else{setTimeout(function(){a(e)},5)}}}function e(n,r,o,c,s){function e(e,t,n,a){if(typeof n!=="function"){return}if(!window[r]){window[r]=[]}var i=false;if(s){i=s(e,t,n)}if(!i){window[r].push({command:e,parameter:t,callback:n,version:a})}}e.stub=true;function t(a){if(!window[n]||window[n].stub!==true){return}if(!a.data){return} var i=typeof a.data==="string";var e;try{e=i?JSON.parse(a.data):a.data}catch(t){return}if(e[o]){var r=e[o];window[n](r.command,r.parameter,function(e,t){var n={};n[c]={returnValue:e,success:t,callId:r.callId};a.source.postMessage(i?JSON.stringify(n):n,"*")},r.version)}} if(typeof window[n]!=="function"){window[n]=e;if(window.addEventListener){window.addEventListener("message",t,false)}else{window.attachEvent("onmessage",t)}}}e("tcfapi","tcfapiBuffer","tcfapiCall","tcfapiReturn");a("__tcfapiLocator");(function(e){ var t=document.createElement("script");t.id="spcloader";t.type="text/javascript";t.async=true;t.src="https://sdk.privacy-center.org/"+e+"/loader.js?target="+document.location.hostname;t.charset="utf-8";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n)})("b77e08a6-5076-490e-b3a1-76b290b52615")})(); </script> <script> var mon_espace_url = 'https://mon-espace.fff.fr/'; </script> <meta charset="UTF-8"> <meta name="description" content="fff"> <meta name="keywords" content="fff"> <meta name="application-name" content="fff"> <link rel="icon" type="image/png" href="https://web-statics.fff.fr/img/logo.png" /> <title> William Saliba, Bondy ch茅ri </title> <!--REMOVE_STYLESHEETS with lambda--> <link rel="stylesheet" href="https://web-statics.fff.fr/build/nav_article.9c737795.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/agents_sportifs.446a28f5.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/aside_classement.2e23c67c.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/aside_resultat.228fc84a.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/autocomplete.1645ffb7.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/blockquote.19f6e64d.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/card_contextualise.a1e9fc47.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/carousel-css.8cc45da2.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/carrousel_arrows.e03dc4bc.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/carte_ligueetdistrict.43f8980b.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/chiffre_cle.f0bf42af.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/classement.c632a9ef.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/competition.f9c92def.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/competition_resultat.4b3d313f.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/derniere_selection_joueur.f4c8e857.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/edf_derniere_selection.5e596d87.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/encadre.fb082f09.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/etapeScss.057b18b7.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/faq.bf908267.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/fff_tv_contexte.991eb46c.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/general.ac25ce7d.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/header-etendu.1c9bfb6e.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/header-full.f50170a9.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/header-home-minisite.e1c747b0.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/header-regular.c7094908.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/header_match_edf.cfb35944.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/historique.06a44aac.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/iff_contexte.2706d39a.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/footalecole_contexte.daaa5860.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/info_club.bbbcf5c8.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/installation_club.c12dd981.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/joueurs.c93eb635.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame-catalogue.55ccc5b6.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame-partenaire.78b81f02.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_4_carrousel.94cf78dc.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_5_link.97fbbd20.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_base.4a096dd9.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_category.159c4104.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_focus.fb6f5d71.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_live.9293a23a.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_masonry_10.1a02f2ad.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_masonry_3.07c09388.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_masonry_6.ac5645d9.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_masonry_9.8aa96333.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_playlist.2b246183.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lieu_rencontre.bc1f0f3c.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/match_results_after-before.4fa94da3.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/module_description.eefc206d.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/moteur_competition.35d8621b.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/nav-home-minisite.2b30290d.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/nav_competition.22b03ecc.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/nav_master.a27d76e7.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/officiel.3b1e9ffa.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/palmares.e66ff305.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/partenaire.fb1fb198.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/quick-access.53e0e309.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/referee.f0c95d21.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/reset.568fc5c2.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/resultat_calendrier_club.55d2fe8f.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/resultat_compet.44dd8597.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/resultat_saison.3a578707.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/slick.b7063800.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/social-media.cd28f624.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/stat_rencontre.df797950.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/style.fee1821b.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/surface_jeu_terrain.8313462b.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/temps_forts_match.026952c3.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/top_chrono.16a01974.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/tous_les_matchs.30fef59b.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/upload_document.1023b242.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/variables_contextes.fdff3dfe.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/video_players.38163bd0.css"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/prehome.661b046f.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/trouver_club_module.63f1860a.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/trouver-club.d7bcd968.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_base_fff.7a418a33.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/lame_live_fff.dd6ecac6.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/playlist.ac3678f2.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/podcast.9d50312b.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/statistiques.75fab3a4.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/evolution_classement.b298a3f5.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <!--END_REMOVE_STYLESHEETS--> <link rel="stylesheet" href="https://web-statics.fff.fr/build/podcast_header.1cef4399.css"> <link rel="stylesheet" href="https://web-statics.fff.fr/build/player_style.299ac62c.css"> <!--STYLESHEETS--> <script> window.dataLayer = window.dataLayer || []; var dataLayerVars = { event: "pageview", u_logged_status: 'unlogged', u_id: '', u_age: '', u_gender: '', p_title: 'F茅d茅ration Fran莽aise de Football', p_theme: 'F茅d茅ration Fran莽aise de Football', p_template: 'autre', p_environment: 'prod', p_site: 'fff', p_language: 'fr', }; var advertizingSetupIsCalled = false; </script> <script type="application/javascript" src="https://ced.sascdn.com/tag/4426/smart.js" async></script> <script type="application/javascript"> var sas = sas || {}; sas.cmd = sas.cmd || []; if (!advertizingSetupIsCalled) { advertizingSetupIsCalled = true; sas.cmd.push(function() { sas.setup({ networkid: 4426, domain: "https://adapi.smartadserver.com", async: true }); }); } sas.cmd.push(function() { sas.call("onecall", { siteId: 526524, pageId: 1640795, formats: [ { id: 114999 } ,{ id: 115001 } ,{ id: 114998 } ,{ id: 115016 } ,{ id: 115017 } ,{ id: 126880 } ], target: '' }); }); </script> <!-- Google Tag Manager --> <script> (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-NTQG277'); </script> <!-- End Google Tag Manager --> <script src="https://www.google.com/recaptcha/api.js"></script> </head> <body class="contexte_FFF" data-auth="https://api-agent-sportif.prd-aws.fff.fr" data-video="https://api-agent-sportif.prd-aws.fff.fr"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NTQG277" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <header class="header--podcast small_12"> <!--REMOVE_NAVIGATION with lambda--> <div style="display: block" class="nav-wrap" id="faq-scroll"> <div id="search-window"> <form name="form" method="post" action="/search" autocomplete="off"> <input type="text" id="form_query_header" name="form[query]" required="required" class="search-input form-control" placeholder="Saisissez votre recherche ici" /> </form> <div>Appuyez sur entrer pour valider</div> <a class="close-search-window" href="#"> <svg width="19" height="18" xmlns="http://www.w3.org/2000/svg"> <title>Layer 1</title> <path id="svg_1" d="m17.78,14.9l-6.73,-6.43l6.5,-6.64l0,-0.03c0.37,-0.4 0.36,-1.04 -0.04,-1.4c-0.2,-0.2 -0.47,-0.3 -0.76,-0.3c-0.27,0 -0.5,0.13 -0.7,0.32l-6.49,6.65l-6.92,-6.65c-0.2,-0.2 -0.48,-0.3 -0.77,-0.3c-0.27,0 -0.52,0.14 -0.7,0.33c-0.17,0.2 -0.3,0.47 -0.27,0.75c0,0.26 0.13,0.5 0.32,0.68l6.9,6.64l-6.7,6.88c-0.2,0.2 -0.3,0.47 -0.3,0.76c0,0.27 0.14,0.5 0.33,0.7c0.15,0.1 0.38,0.27 0.73,0.27c0.37,0 0.6,-0.18 0.74,-0.3l6.7,-6.88l6.72,6.42c0.14,0.15 0.37,0.28 0.75,0.28c0.36,0 0.58,-0.18 0.73,-0.3c0.2,-0.2 0.3,-0.48 0.3,-0.76c-0.03,-0.28 -0.14,-0.52 -0.35,-0.7"/> </svg> </a> </div> <div id="nav-opacity-layer"></div> <div id="nav-bg-scroll"></div> <nav id="universfff-nav"> <a href="#" id="universfff-link">Univers FFF <svg class="arrow-link" viewbox="0 0 46 46"> <polygon points="46,3.004 0,3 23.002,43" xmlns="http://www.w3.org/2000/svg" fill="white"/> </svg> </a> <ul> <li> <a href="https://billetterie.fff.fr/?utm_source=FFF_FR&utm_medium=Lien_FFF&utm_campaign=BIL_Generique&utm_content=FFF_FR_Preheader&utm_term=GrandPublic">BILLETTERIE</a> </li> <li> <a href="https://boutique.fff.fr/fr/?_s=bm-FI-PSC-FFF-FR-CLUBSITE-SHOPTAB">BOUTIQUE</a> </li> <li> <a href="https://supporters.fff.fr/?utm_source=FFF_FR&utm_medium=Lien_FFF&utm_campaign=CDS_Generique&utm_content=FFF_FR_Preheader&utm_term=GrandPublic">SUPPORTERS</a> </li> <li> <a href="https://academie-clairefontaine.fff.fr/">FFF ACAD脡MIE </a> </li> <li> <a href="https://ffftv.fff.fr/">FFF TV</a> </li> <li> <a href="https://maformation.fff.fr/2-l-institut-emploi-formation-du-football.html">IEFF EMPLOI ET FORMATION</a> </li> <li> <a href="https://www.cnf-clairefontaine.com/">CLAIREFONTAINE</a> </li> <li> <a href="https://portailclubs.fff.fr/">PORTAILCLUBS</a> </li> <li> <a href="https://officiels.fff.fr">PORTAIL DES OFFICIELS</a> </li> <li> <a href="https://recrutement.fff.fr/">CARRI脠RES</a> </li> <li> <a href="https://presse.fff.fr">PRESSE</a> </li> </ul> <div id="zone-connect"> <a class="lang" href="https://uk.fff.fr/"> <img alt="english-flag" src="https://cdn.countryflags.com/thumbs/united-kingdom/flag-400.png"> </a> <div id="div-connexion" class="show-deconnect-btn margin_r_10"></div> <div id="div-link-connexion" class="show-deconnect-btn margin_r_10"> <a href="https://api-agent-sportif.prd-aws.fff.fr" data-client="sso" id="connect-link" class="connect-link uppercase" title="se connecter au site" aria-label="se connecter au site"> <span class="connect-link__text">Se connecter</span> <span class="connect-link__icon"></span> </a> </div> <div id="bloc_deconnexion_id" class="bloc_deconnexion" data-href="https://sso.fff.fr"></div> </div> </nav> <nav id="main-nav"> <span class="mobile-wrap"></span> <button class="menu-toggle button--menu"> <span class="menu-hamburger" id="button_mobile_menu"> <span class="ham_75"></span> <span class="ham_0"></span> <span class="ham_50"></span> </span> </button> <a class="nav-logo" href="/"> <img src="https://web-statics.fff.fr/img/logo.png" alt="F茅d茅ration Fran莽aise de Football - logo officiel"> </a> <span class="titre-mobile"> F脡D脡RATION <br>FRAN脟AISE DE <br>FOOTBALL</span> <ul id="first-level" class="first-level" > <li class="nav-item nav-item--level-1"> <a href="#"> La F茅d茅ration <svg xmlns="http://www.w3.org/2000/svg" width="8" height="5" viewBox="0 0 8 5" class="arrow-link TWO"> <polygon points="4,3 1,0 0,1 4,5 8,1 7,0" fill="white"></polygon> </svg> </a> <ul id="second-level" class="second-level"> <li class="nav-item nav-item--level-2"> <a href="/75-qui-sommes-nous-.html"> Qui sommes-nous ? </a> </li> <li class="nav-item nav-item--level-2"> <a href="/34-l-engagement-societal-de-la-federation/index.html"> Notre engagement soci茅tal </a> </li> <li class="nav-item nav-item--level-2"> <a href="/79-nos-actions.html"> Nos actions </a> </li> <li class="nav-item nav-item--level-2"> <a href="/80-le-budget-et-les-chiffres-cles.html"> Le budget et les chiffres cl茅s </a> </li> <li class="nav-item nav-item--level-2"> <a href="/7-la-gouvernance/index.html"> La gouvernance </a> </li> <li class="nav-item nav-item--level-2"> <a href="/11-les-reglements/index.html"> Les r猫glements et les formulaires </a> </li> <li class="nav-item nav-item--level-2"> <a href="/10-les-proces-verbaux/index.html"> Les proc猫s-verbaux </a> </li> <li class="nav-item nav-item--level-2"> <a href="/18-les-agents-sportifs/index.html"> Les agents sportifs </a> </li> <li class="nav-item nav-item--level-2"> <a href="/728-les-consultations-de-la-fff.html"> Les consultations </a> </li> <li class="additional-links"> <span> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> </span> <ul class="add-links-container"></ul> </li> </ul> </li> <li class="nav-item nav-item--level-1"> <a href="#"> Les 茅quipes de France <svg xmlns="http://www.w3.org/2000/svg" width="8" height="5" viewBox="0 0 8 5" class="arrow-link TWO"> <polygon points="4,3 1,0 0,1 4,5 8,1 7,0" fill="white"></polygon> </svg> </a> <ul id="second-level" class="second-level"> <li class="nav-item nav-item--level-2"> <a href="/selection/2-equipe-de-france/index.html"> 脡quipe de France </a> </li> <li class="nav-item nav-item--level-2"> <a href="/selection/3-equipe-de-france-feminine/index.html"> 脡quipe de France f茅minine </a> </li> <li class="nav-item nav-item--level-2"> <a href="/selection/4-equipe-de-france-espoirs/index.html"> 脡quipe de France espoirs </a> </li> <li class="nav-item nav-item--level-2"> <a href="/20-equipe-de-france-futsal/index.html"> 脡quipe de France Futsal </a> </li> <li class="nav-item nav-item--level-2"> <a href="/33-equipe-de-france-feminine-futsal/index.html"> 脡quipe de France F茅minine Futsal </a> </li> <li class="nav-item nav-item--level-2"> <a href="/381-les-selections-nationales.html"> Les s茅lections nationales </a> </li> <li class="additional-links"> <span> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> </span> <ul class="add-links-container"></ul> </li> </ul> </li> <li class="nav-item nav-item--level-1"> <a href="/competition"> Les comp茅titions <!-- <svg xmlns="http://www.w3.org/2000/svg" width="8" height="5" viewBox="0 0 8 5" class="arrow-link ONE"> <polygon points="4,3 1,0 0,1 4,5 8,1 7,0" fill="white"></polygon> </svg> --> </a> </li> <li class="nav-item nav-item--level-1"> <a href="#"> Les clubs & licenci茅(e)s <svg xmlns="http://www.w3.org/2000/svg" width="8" height="5" viewBox="0 0 8 5" class="arrow-link TWO"> <polygon points="4,3 1,0 0,1 4,5 8,1 7,0" fill="white"></polygon> </svg> </a> <ul id="second-level" class="second-level"> <li class="nav-item nav-item--level-2"> <a href="/3-les-clubs/index.html"> Clubs </a> </li> <li class="nav-item nav-item--level-2"> <a href="/4-les-joueurs-et-joueuses/index.html"> Joueur(se)s </a> </li> <li class="nav-item nav-item--level-2"> <a href="/5-les-entraineurs-et-entraineures/index.html"> Entra卯neur(e)s </a> </li> <li class="nav-item nav-item--level-2"> <a href="/105-les-dirigeants-et-dirigeantes.html"> Dirigeant(e)s </a> </li> <li class="nav-item nav-item--level-2"> <a href="/771-les-volontaires.html"> Volontaires </a> </li> <li class="nav-item nav-item--level-2"> <a href="/130-le-benevolat.html"> B茅n茅voles </a> </li> <li class="nav-item nav-item--level-2"> <a href="/9-les-arbitres/index.html"> Arbitres </a> </li> <li class="nav-item nav-item--level-2"> <a href="/108-les-delegues-et-deleguees-de-match.html"> D茅l茅gu茅(e)s de match </a> </li> <li class="additional-links"> <span> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> </span> <ul class="add-links-container"></ul> </li> </ul> </li> <li class="nav-item nav-item--level-1"> <a href="#"> Tous les footballs <svg xmlns="http://www.w3.org/2000/svg" width="8" height="5" viewBox="0 0 8 5" class="arrow-link TWO"> <polygon points="4,3 1,0 0,1 4,5 8,1 7,0" fill="white"></polygon> </svg> </a> <ul id="second-level" class="second-level"> <li class="nav-item nav-item--level-2"> <a href="/8-les-footballs/index.html"> Footballs </a> </li> <li class="nav-item nav-item--level-2"> <a href="/67-futsal.html"> Futsal </a> </li> <li class="nav-item nav-item--level-2"> <a href="/68-le-beach-soccer.html"> Beach Soccer </a> </li> <li class="nav-item nav-item--level-2"> <a href="/701-d1-futnet.html"> Futnet </a> </li> <li class="nav-item nav-item--level-2"> <a href="/414-efootball.html"> Efootball </a> </li> <li class="nav-item nav-item--level-2"> <a href="/13-les-pratiques-loisirs/index.html"> Autres footballs </a> </li> <li class="additional-links"> <span> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> <svg viewBox="0 0 10 10"> <circle cx="5" cy="5" r="5"/> </svg> </span> <ul class="add-links-container"></ul> </li> </ul> </li> <li class="nav-item alert-btn-item"> <a href="https://jalerte.fff.fr/" class="alert-btn-link">J'alerte</a> </li> <li class="nav-item live-score-item"> <a href="https://www.fff.fr/score-en-direct/index.html" class="live-score-link">Directs</a> </li> <li class="search--mobile"> <button class="search-button search-button--nav-mobile search-icon" type="button" aria-label="Ouvrir la recherche"> <span class="search--mobile--label">Rechercher</span> <span class="search-icon--nav-mobile"></span> <span class="sr-only">Ouvrir la recherche</span> </button> </li> </ul> <button class="search-button search-icon" type="button" aria-label="Ouvrir la recherche"> <span class="sr-only">Ouvrir la recherche</span> </button> <div class="nav-mobile-cta-container"> <a href="https://www.fff.fr/713-la-plateforme-d-alerte.html" class="alert-btn-link alert-btn-link--mobile bold uppercase font_14">J'alerte</a> <a href="https://www.fff.fr/score-en-direct/index.html" class="live-score-link live-score-link--mobile bold uppercase font_14">Directs</a> </div> </nav> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/js-sha256/0.10.1/sha256.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/js-sha256/0.10.1/sha256.js"></script> <script src="https://web-statics.fff.fr/build/subheader.5e13be8b.js"></script> <script src="https://web-statics.fff.fr/build/fff_connexion.65a1707c.js"></script> <!--END_REMOVE_NAVIGATION--> <!--NAVIGATION--> <div class="img_ie height"> <figure class="relative height flex flex_ai_end"> <picture class="height bg_header_minisite small_12"> <source class="" media="(max-width: 320px)" srcset=" https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/cover=320:568/resize=320 320w, https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/cover=320:568/resize=640 640w "> <source media="(max-width: 375px)" srcset=" https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/cover=375:812/resize=375 375w, https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/cover=375:812/resize=750 750w "> <source media="(max-width: 550px)" srcset=" https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/cover=550:812/resize=550 550w, https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/cover=550:812/resize=1100 1100w "> <source media="(max-width: 768px)" srcset=" https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/cover=768:1024/resize=768 768w, https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/cover=768:1024/resize=1536 1536w "> <source media="(max-width: 1024px)" srcset=" https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/resize=1024 1024w, https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/resize=2048 2048w "> <source media="(min-width: 1024px)" srcset=" https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/resize=1024 1024w, https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/resize=1200 1200w, https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/resize=1400 1400w, https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255/resize=1600 1600w "> <img class="objectfit height" src="https://fff.twic.pics/https://media.fff.fr/uploads/images/356f58012b4d4c9718e90548c0803b8c.png?twic=v1/focus=989x255" alt="" > <div id='overlay'></div> </picture> <figcaption class="absolute small_12 mb-30 padding_l zindex-3"> <div class="row container"> <div class="col-12"> <h1 class="white uppercase font_50 margin_b8 font_hero letter_spacing127 padding_r" style="z-index: 1;" > William Saliba, Bondy ch茅ri </h1> <p class="white margin_b16 padding_r"> Bondy, ce n'est pas seulement Kylian Mbapp茅. C'est aussi William Saliba. Le d茅fenseur international fran莽ais ne manque jamais une occasion de rendre fier les siens, rest茅s dans sa ville. C'est ici qu'il a grandi, qu'il a d茅couvert le foot et rencontr茅 ses amis. Une v茅ritable d茅claration d'amour 脿 Bondy... </p> </div> </div> <div class="row container"> <div class="large_8 medium_12 padding-player"> <div class="row flex flex_wrap flex_jc_between player" id="podcast-player" data-media-url="https://media.fff.fr"> <!-- Define the section for displaying details --> <div class="small_12 medium_12 large_7"> <!-- Define the section for displaying the seek slider--> <div class="slider_container"> <div class="flex"> <div class="always-6 time current-time">00:00</div> <div class="always-6 time right time total-duration">00:00</div> </div> <input type="range" min="1" max="100" value="0" class="seek_slider" id="seekTo"> </div> </div> <!-- Define the section for displaying track buttons --> <div class="buttons small_12 medium_12 large_5"> <div id="prevTrack" class="prev-track"> <img id="button-previous" class="previous-next" src="https://web-statics.fff.fr/img/icon/Rewind.svg"/> </div> <div class="playpause-track" id="playpausebutton"> <img id="button-play" class="play-icon" src="https://web-statics.fff.fr/img/icon/Play.svg"/> <img id="button-pause" hidden class="play-icon" src="https://web-statics.fff.fr/img/icon/Pause.svg"/> </div> <div id="nextTrack" class="next-track" > <img id="button-next" class="previous-next" src="https://web-statics.fff.fr/img/icon/Forward.svg"/> </div> </div> </div> </div> </div> </figcaption> </figure> </div> </header> <section id="playlist_podcasts" class="white content padding_10 container module_agent margin_t60" style="display: none"> <img id="down-up-chevron" src="https://web-statics.fff.fr/img/icon/arrow-down.svg"> <div id="podcast-list-0" class="flex container podcast-container margin_b8" data-name="William Saliba, Bondy ch茅ri" data-description="Bondy, ce n'est pas seulement Kylian Mbapp茅. C'est aussi William Saliba. Le d茅fenseur international fran莽ais ne manque jamais une occasion de rendre fier les siens, rest茅s dans sa ville. C'est ici qu'il a grandi, qu'il a d茅couvert le foot et rencontr茅 ses amis. Une v茅ritable d茅claration d'amour 脿 Bondy..." data-file-name="william-saliba.mp3" data-media-url="https://media.fff.fr" data-podcast-id="0" data-index="0"> <div class="always-2 padding_r"> <div class="podcast-image" id="button-podcast-1"> </div> </div> <div class="always-10"> <h2 class="uppercase font_28 margin_b8 font_hero">William Saliba, Bondy ch茅ri</h2> <p>Bondy, ce n'est pas seulement Kylian Mbapp茅. C'est aussi William Saliba. Le d茅fenseur international fran莽ais ne manque jamais une occasion de rendre fier les siens, rest茅s dans sa ville. C'est ici qu'il a grandi, qu'il a d茅couvert le foot et rencontr茅 ses amis. Une v茅ritable d茅claration d'amour 脿 Bondy...</p> <p>11:14</p> </div> </div> </section> <section class="lame_partenaire relative"> <a href="/" class="absolute logo_fff"> <img src="https://web-statics.fff.fr/img/logo.png" alt="f茅d茅ration fran莽aise de football - FFF" class="lame_partenaire__logo-fff"> </a> <div class="flex flex_jc_center flex_ai_center bg_partenaire lame_partenaire__body"> <a href="https://www.credit-agricole.fr/"> <img src="https://web-statics.fff.fr/img/partenaire/credit-agricole.png" class="lame_partenaire__logo-partenaire" id="ca" alt="Cr茅dit Agricole logo"> </a> <a href="https://particulier.edf.fr/"> <img src="https://web-statics.fff.fr/img/partenaire/edf.png" class="lame_partenaire__logo-partenaire" id="edf" alt="EDF logo"> </a> <a href="http://www.nike.com/"> <img src="https://web-statics.fff.fr/img/partenaire/nike.png" class="lame_partenaire__logo-partenaire" id="nike" alt="Nike logo"> </a> <a href="https://www.orange.fr"> <img src="https://web-statics.fff.fr/img/partenaire/orange.png" class="lame_partenaire__logo-partenaire" id="orange" alt="Orange logo"> </a> <a href="https://www.ubereats.com/fr"> <img src="https://web-statics.fff.fr/img/partenaire/uber-eats.png" class="lame_partenaire__logo-partenaire" id="ubereats" alt="Uber Eats logo"> </a> <a href="http://volkswagen-fff.fr/"> <img src="https://web-statics.fff.fr/img/partenaire/vw.png" class="lame_partenaire__logo-partenaire" id="volkswagen" alt="Volkswagen logo"> </a> </div> <script> const ca = document.getElementById("ca"); ca.onclick = function () { getPartenaire(event) }; const edf = document.getElementById("edf"); edf.onclick = function () { getPartenaire(event) }; const nike = document.getElementById("nike"); nike.onclick = function () { getPartenaire(event) }; const orange = document.getElementById("orange"); orange.onclick = function () { getPartenaire(event) }; const uberEats = document.getElementById("ubereats"); uberEats.onclick = function () { getPartenaire(event) }; const volkswagen = document.getElementById("volkswagen"); volkswagen.onclick = function () { getPartenaire(event) }; function getPartenaire(event) { var partenaire = ""; if (event.target.id == "ca") { partenaire = "Cr茅dit Agricole"; } else if (event.target.id == "edf") { partenaire = "EDF"; } else if (event.target.id == "nike") { partenaire = "Nike"; } else if (event.target.id == "orange") { partenaire = "Orange"; } else if (event.target.id == "ubereats") { partenaire = "Uber Eats"; } else if (event.target.id == "pmu") { partenaire = "PMU"; } else if (event.target.id == "volkswagen") { partenaire = "Volkswagen"; } dataLayer.push({ 'event': 'EventGA', 'EventCategory': 'liens externes', 'EventAction': 'clic footer', 'EventLabel': partenaire }) } </script> </section> <footer id="footer" class="white small_12 medium_12 large_12"> <div class="container"> <div class="flex flex_jc_between flex_wrap"> <div class="small_12 medium_6 large_3 column margin_b20"> <ul class="margin_b20"> <li class="bold uppercase">Les comp茅titions</li> <li> <a class="white" href="/competition">Vos r茅sultats</a> </li> </ul> <ul class="margin_b20"> <li class="uppercase bold white">La f茅d茅ration</li> <li> <a class="white" href="/75-qui-sommes-nous-.html">Qui sommes-nous ?</a> </li> <li> <a class="white" href="/79-nos-actions.html">Nos actions</a> </li> <li> <a class="white" href="/80-le-budget-et-les-chiffres-cles.html">Le budget et les chiffres cl茅s</a> </li> <li> <a class="white" href="/7-la-gouvernance/index.html">La gouvernance</a> </li> <li> <a class="white" href="/11-les-reglements/index.html">Les r茅glements</a> </li> <li> <a class="white" href="/10-les-proces-verbaux/index.html">Les proc猫s verbaux</a> </li> <li> <a class="white" href="/18-les-agents-sportifs/index.html">Les agents sportifs</a> </li> </ul> <ul class="margin_b20"> <li class="uppercase bold white"> <a class="white" href="/14-le-football-amateur/index.html">Football amateur</a> </li> </ul> <ul class="margin_b20"> <li class="uppercase bold white"> <a class="white" href="/16-le-football-feminin/index.html">Football f茅minin</a> </li> </ul> <img src="https://web-statics.fff.fr/img/ministere-des-sports.png" alt="Minist猫re des sports" class="logo--ministere-sports"> </div> <div class="small_12 medium_6 large_3 column margin_b20"> <ul class="margin_b20"> <li class="bold uppercase white">Les 茅quipes de France</li> <li> <a class="white" href="/selection/2-equipe-de-france/index.html">脡quipe de France</a> </li> <li> <a class="white" href="/selection/3-equipe-de-france-feminine/index.html">脡quipe de France F茅minine</a> </li> <li> <a class="white" href="/selection/4-equipe-de-france-espoirs/index.html">脡quipe de France Espoirs</a> </li> <li> <a class="white" href="/381-les-selections-nationales.html">Selections nationales</a> </li> </ul> <ul class="margin_b20"> <li class="bold uppercase white">Le palmar猫s</li> <li> <a class="white" href="/287-palmares-competitions-internationales.html">Comp茅titions internationales</a> </li> <li> <a class="white" href="/303-palmares-coupes.html">Coupes</a> </li> <li> <a class="white" href="/258-palmares-championnats.html">Championnats</a> </li> </ul> <ul class="margin_b20"> <li class="bold uppercase white">Nos autres sites</li> <li> <a class="white" href="https://billetterie.fff.fr/?utm_source=FFF_FR&utm_medium=Lien_FFF&utm_campaign=BIL_Generique&utm_content=FFF_FR_Footer&utm_term=GrandPublic">Billetterie</a> </li> <li> <a class="white" href="https://boutique.fff.fr/?utm_source=FFF_FR&utm_medium=Lien_FFF&utm_campaign=PAN_Generique&utm_content=FFF_FR_Footer&utm_term=GrandPublic">Boutique</a> </li> <li> <a class="white" href="https://mon-compte.fff.fr/">Mon compte FFF</a> </li> <li> <a class="white" href="https://ffftv.fff.fr/">FFFTV</a> </li> <li> <a class="white" href="https://www.cnf-clairefontaine.com/">CNF Clairefontaine</a> </li> <li> <a class="white" href="https://www.cnf-centre-medical.com/">Centre m茅dical</a> </li> <li> <a class="white" href="https://maformation.fff.fr/">Formations</a> </li> <li> <a class="white" href="https://recrutement.fff.fr/">Espace carri猫re</a> </li> <li> <a class="white" href="https://presse.fff.fr/">Espace Presse</a> </li> </ul> </div> <div class="small_12 medium_6 large_3 column margin_b20"> <ul class="margin_b20"> <li class="bold uppercase white">Les clubs & licenci茅(e)s</li> <li> <a class="white" href="/trouver_club">Trouvez votre club </a> </li> <li> <a class="white" href="/3-les-clubs/index.html">Clubs</a> </li> <li> <a class="white" href="/4-les-joueurs-et-joueuses/index.html">Joueur(se)s</a> </li> <li> <a class="white" href="/5-les-entraineurs-et-entraineures/index.html">Entraineur(e)s</a> </li> <li> <a class="white" href="/105-les-dirigeants-et-dirigeantes.html">Dirigeant(e)s</a> </li> <li> <a class="white" href="/9-les-arbitres/index.html">Arbitres</a> </li> <li> <a class="white" href="/108-les-delegues-et-deleguees-de-match.html">D茅l茅gu茅(e)s de match</a> </li> </ul> <ul class="margin_b20"> <li class="bold uppercase white">Nos applications mobiles</li> <li> <a class="white" href="https://www.fff.fr/680-application-myfff.html?utm_source=FFF_FR&utm_medium=Lien_FFF&utm_campaign=FFF_myFFF_Generique&utm_content=FFF_FR_MyFFF_Generique_FooterFFF&utm_term=GrandPublic">MyFFF</a> </li> <li> <a class="white" href="/410-mycoach-by-fff.html">My coach by FFF</a> </li> <li> <a class="white" href="/391-application-equipe-de-france.html">Equipe de France</a> </li> </ul> <ul class="margin_b20"> <li class="bold uppercase white margin_b20"><span>Nos r茅seaux sociaux</span></li> <li> <ul class="flex medias_sociaux flex_wrap "> <li class="facebook padding_r"> <a href="https://fr-fr.facebook.com/fff/" onclick="track('facebook', 'clic footer')" class="icon-facebook inline_block" target="_blank"> <img alt="facebook" src="https://web-statics.fff.fr/img/icon/icon-facebook.png" id="facebook"> </a> </li> <li class="twitter padding_r padding_l"> <a href="https://twitter.com/FFF" onclick="track('twitter', 'clic footer')" class="icon-twitter inline_block" target="_blank"> <img alt="twitter" src="https://web-statics.fff.fr/img/icon/icon-X.png" id="twitter"> </a> </li> <li class="instagram padding_r padding_l"> <a href="http://instagram.com/fff/" onclick="track('instagram', 'clic footer')" class="icon-instagram inline_block" target="_blank"> <img alt="instagram" src="https://web-statics.fff.fr/img/icon/icon-instagram.png" id="instagram"> </a> </li> <li class="youtube padding_r padding_l"> <a href="https://www.youtube.com/channel/UCeJlXGyEl7kBgQJKADAHM3A" onclick="track('youtube', 'clic footer')" class="icon-youtube inline_block" target="_blank"> <img alt="youtube" src="https://web-statics.fff.fr/img/icon/icon-youtube.png" id="youtube"> </a> </li> <li class="dailymotion padding_l"> <a href="https://www.dailymotion.com/ffftv" onclick="track('dailymotion', 'clic footer')" class="icon-dailymotion inline_block" target="_blank"> <img alt="dailymotion" src="https://web-statics.fff.fr/img/icon/icon-dailymotion.png" id="dailymotion"> </a> </li> </ul> </li> </ul> </div> <div class="small_12 medium_6 large_3 column margin_b20"> <ul class="margin_b20"> <li class="bold uppercase white">Tous les football</li> <li> <a class="white" href="/8-les-footballs/index.html">Footballs</a> </li> <li> <a class="white" href="/8-les-footballs/70-le-foot-pour-les-enfants.html">Pour les enfants</a> </li> <li> <a class="white" href="/8-les-footballs/119-football-a-8-et-a-5.html">Foot 8 脿 5</a> </li> <li> <a class="white" href="/67-futsal.html">Futsal</a> </li> <li> <a class="white" href="/68-le-beach-soccer.html">Beach Soccer</a> </li> <li> <a class="white" href="/414-efootball.html">Efootball</a> </li> <li> <a class="white" href="/13-les-pratiques-loisirs/index.html">Les pratiques loisirs</a> </li> <li> <a class="white" href="/13-les-pratiques-loisirs/66-le-foot5.html">Foot5</a> </li> <li> <a class="white" href="/13-les-pratiques-loisirs/241-le-futnet.html">Futnet</a> </li> <li> <a class="white" href="/13-les-pratiques-loisirs/242-le-foot-en-marchant.html">Foot en marchant</a> </li> <li> <a class="white" href="/13-les-pratiques-loisirs/244-le-fit-foot.html">Fitfoot</a> </li> <li> <a class="white" href="/13-les-pratiques-loisirs/243-le-golf-foot.html">Golf Foot</a> </li> </ul> <ul class=" margin_b20"> <li class="bold uppercase white">Nos services</li> <li> <a class="white" href="/457-cgu.html">CGU</a> </li> <li> <a class="white" href="/455-mentions-legales.html ">Mentions l茅gales</a> </li> <li> <a class="white" href="/456-protection-des-donnees.html ">Protection des donn茅es personnelles</a> </li> <li> <a class="white" href="javascript:Didomi.preferences.show()">Pr茅f茅rences Cookies</a> </li> </ul> </div> </div> </div> </footer> <div class="flag small_12"></div> <div class="overlay"></div> <script> function track(rs, from) { dataLayer.push({ 'event': 'EventGA', 'EventCategory': 'liens externes', 'EventAction': from, 'EventLabel': rs }) } </script> <div onclick="getLink()" id="prehome" data-preview="" style="display: none;"> <div onclick="getSite()" id="prehome-close"> Acc茅der au site </div> <div class="center"> <div id="sas_115017"></div> <script type="application/javascript"> sas.cmd.push(function() { sas.render("115017"); }); </script> </div> </div> <script> function getLink() { var parent = document.getElementById("prehome"); let titrePrehome = parent.getAttribute('data-title'); dataLayer.push({ 'event': 'EventGA', 'EventCategory': 'a la une', 'EventAction': 'clic prehome', 'EventLabel': titrePrehome }) } </script> <script src="https://fff.twic.pics/v1/script" async></script> <!--REMOVE_JAVASCRIPTS with lambda--> <script src="https://web-statics.fff.fr/build/carousel.e2eb9222.js"></script> <script src="https://web-statics.fff.fr/build/derniere_selection.afb172fc.js"></script> <script src="https://web-statics.fff.fr/build/faq_js.c0a887d4.js"></script> <script src="https://web-statics.fff.fr/build/download_js.bd63b248.js"></script> <script src="https://web-statics.fff.fr/build/img-ie.e86dae5a.js"></script> <script src="https://web-statics.fff.fr/build/instagram.caa5281e.js"></script> <script src="https://web-statics.fff.fr/build/main.0a37396e.js"></script> <script src="https://web-statics.fff.fr/build/map-pin-unique.2f4fd177.js"></script> <script src="https://web-statics.fff.fr/build/match.d161ae75.js"></script> <script src="https://web-statics.fff.fr/build/nav_minisite.e6b4af70.js"></script> <script src="https://web-statics.fff.fr/build/parcours_en_bleu.09207110.js"></script> <script src="https://web-statics.fff.fr/build/player_profile.ff99ea35.js"></script> <script src="https://web-statics.fff.fr/build/poule_data_carousel.615d485e.js"></script> <script src="https://web-statics.fff.fr/build/ranking.4a708b4e.js"></script> <script src="https://web-statics.fff.fr/build/results-and-calendar-load-part.4d5c5ec2.js"></script> <script src="https://web-statics.fff.fr/build/search_clubs.2e540551.js"></script> <script src="https://web-statics.fff.fr/build/season-load-part.173a932f.js"></script> <script src="https://web-statics.fff.fr/build/stats_joueur_js.abf1311f.js"></script> <script src="https://web-statics.fff.fr/build/svg.cd04d493.js"></script> <script src="https://web-statics.fff.fr/build/tous_les_joueurs.0f2dba83.js"></script> <script src="https://web-statics.fff.fr/build/tous_les_matchs_edf.ebe1bedb.js"></script> <script src="https://web-statics.fff.fr/build/twitter.a5e685e5.js"></script> <script src="https://web-statics.fff.fr/build/prehome.ae544d49.js"></script> <script src="https://web-statics.fff.fr/build/statistiques_js.fbae3fc6.js"></script> <script src="https://web-statics.fff.fr/build/equipe_statistiques_js.aa3350c2.js"></script> <script src="https://web-statics.fff.fr/build/article_mobile_js.e8d6f97c.js"></script> <script src="https://web-statics.fff.fr/build/carousel_ffftv.ed5736d5.js"></script> <script src="https://web-statics.fff.fr/build/ffftv_for_fff_script.8bf442e2.js"></script> <script src="https://web-statics.fff.fr/build/topchrono.0984d53c.js"></script> <script src="https://web-statics.fff.fr/build/map-final.ab1d8e47.js"></script> <script src="https://web-statics.fff.fr/build/fff_plan_taggage.b5b2237a.js"></script> <!--END_REMOVE_JAVASCRIPTS--> <script src="https://web-statics.fff.fr/build/player.d10e2dcb.js"></script> <!--JAVASCRIPTS--> <script type="text/javascript"> setTimeout(function(){ dataLayer.push(dataLayerVars); }, 1000); window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function r(e){if(!n[e]){var o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var o=t[e][1][n];return r(o||n)},o,o.exports)}return n[e].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<e.length;o++)r(e[o]);return r}({1:[function(t,n,e){function r(t){try{s.console&&console.log(t)}catch(n){}}var o,i=t("ee"),a=t(18),s={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(s.console=!0,o.indexOf("dev")!==-1&&(s.dev=!0),o.indexOf("nr_dev")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on("internal-error",function(t){r(t.stack)}),s.dev&&i.on("fn-err",function(t,n,e){r(e.stack)}),s.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(s,function(t,n){return t}).join(", ")))},{}],2:[function(t,n,e){function r(t,n,e,r,s){try{p?p-=1:o(s||new UncaughtException(t,n,e),!0)}catch(f){try{i("ierr",[f,c.now(),!0])}catch(d){}}return"function"==typeof u&&u.apply(this,a(arguments))}function UncaughtException(t,n,e){this.message=t||"Uncaught error with no additional information",this.sourceURL=n,this.line=e}function o(t,n){var e=n?null:c.now();i("err",[t,e])}var i=t("handle"),a=t(19),s=t("ee"),c=t("loader"),f=t("gos"),u=window.onerror,d=!1,l="nr@seenError",p=0;c.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(h){"stack"in h&&(t(8),t(7),"addEventListener"in window&&t(5),c.xhrWrappable&&t(9),d=!0)}s.on("fn-start",function(t,n,e){d&&(p+=1)}),s.on("fn-err",function(t,n,e){d&&!e[l]&&(f(e,l,function(){return!0}),this.thrown=!0,o(e))}),s.on("fn-end",function(){d&&!this.thrown&&p>0&&(p-=1)}),s.on("internal-error",function(t){i("ierr",[t,c.now(),!0])})},{}],3:[function(t,n,e){t("loader").features.ins=!0},{}],4:[function(t,n,e){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var o=t("ee"),i=t("handle"),a=t(8),s=t(7),c="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,w="fn"+h,v="bstTimer",y="pushState",g=t("loader");g.features.stn=!0,t(6);var x=NREUM.o.EV;o.on(m,function(t,n){var e=t[0];e instanceof x&&(this.bstStart=g.now())}),o.on(w,function(t,n){var e=t[0];e instanceof x&&i("bst",[e,n,this.bstStart,g.now()])}),a.on(m,function(t,n,e){this.bstStart=g.now(),this.bstType=e}),a.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),this.bstType])}),s.on(m,function(){this.bstStart=g.now()}),s.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),"requestAnimationFrame"])}),o.on(y+p,function(t){this.time=g.now(),this.startPath=location.pathname+location.hash}),o.on(y+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f in window.performance&&(window.performance["c"+c]?window.performance[f](u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["c"+c]()},!1):window.performance[f]("webkit"+u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["webkitC"+c]()},!1)),document[f]("scroll",r,{passive:!0}),document[f]("keypress",r,!1),document[f]("click",r,!1)}},{}],5:[function(t,n,e){function r(t){for(var n=t;n&&!n.hasOwnProperty(u);)n=Object.getPrototypeOf(n);n&&o(n)}function o(t){s.inPlace(t,[u,d],"-",i)}function i(t,n){return t[1]}var a=t("ee").get("events"),s=t(21)(a,!0),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";n.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,n){var e=t[1],r=c(e,"nr@wrapped",function(){function t(){if("function"==typeof e.handleEvent)return e.handleEvent.apply(e,arguments)}var n={object:t,"function":e}[typeof e];return n?s(n,"fn-",null,n.name||"anonymous"):e});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],6:[function(t,n,e){var r=t("ee").get("history"),o=t(21)(r);n.exports=r;var i=window.history&&window.history.constructor&&window.history.constructor.prototype,a=window.history;i&&i.pushState&&i.replaceState&&(a=i),o.inPlace(a,["pushState","replaceState"],"-")},{}],7:[function(t,n,e){var r=t("ee").get("raf"),o=t(21)(r),i="equestAnimationFrame";n.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],8:[function(t,n,e){function r(t,n,e){t[0]=a(t[0],"fn-",null,e)}function o(t,n,e){this.method=e,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,e)}var i=t("ee").get("timer"),a=t(21)(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";n.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],9:[function(t,n,e){function r(t,n){d.inPlace(n,["onreadystatechange"],"fn-",s)}function o(){var t=this,n=u.context(t);t.readyState>3&&!n.resolved&&(n.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,y,"fn-",s)}function i(t){g.push(t),h&&(b?b.then(a):w?w(a):(E=-E,R.data=E))}function a(){for(var t=0;t<g.length;t++)r([],g[t]);g.length&&(g=[])}function s(t,n){return n}function c(t,n){for(var e in t)n[e]=t[e];return n}t(5);var f=t("ee"),u=f.get("xhr"),d=t(21)(u),l=NREUM.o,p=l.XHR,h=l.MO,m=l.PR,w=l.SI,v="readystatechange",y=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],g=[];n.exports=u;var x=window.XMLHttpRequest=function(t){var n=new p(t);try{u.emit("new-xhr",[n],n),n.addEventListener(v,o,!1)}catch(e){try{u.emit("internal-error",[e])}catch(r){}}return n};if(c(p,x),x.prototype=p.prototype,d.inPlace(x.prototype,["open","send"],"-xhr-",s),u.on("send-xhr-start",function(t,n){r(t,n),i(n)}),u.on("open-xhr-start",r),h){var b=m&&m.resolve();if(!w&&!m){var E=1,R=document.createTextNode(E);new h(a).observe(R,{characterData:!0})}}else f.on("fn-end",function(t){t[0]&&t[0].type===v||a()})},{}],10:[function(t,n,e){function r(){var t=window.NREUM,n=t.info.accountID||null,e=t.info.agentID||null,r=t.info.trustKey||null,i="btoa"in window&&"function"==typeof window.btoa;if(!n||!e||!i)return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:e,id:o.generateCatId(),tr:o.generateCatId(),ti:Date.now()}};return r&&n!==r&&(a.d.tk=r),btoa(JSON.stringify(a))}var o=t(16);n.exports={generateTraceHeader:r}},{}],11:[function(t,n,e){function r(t){var n=this.params,e=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r<p;r++)t.removeEventListener(l[r],this.listener,!1);n.aborted||(e.duration=s.now()-this.startTime,this.loadCaptureCalled||4!==t.readyState?null==n.status&&(n.status=0):a(this,t),e.cbTime=this.cbTime,d.emit("xhr-done",[t],t),c("xhr",[n,e,this.startTime]))}}function o(t,n){var e=t.responseType;if("json"===e&&null!==n)return n;var r="arraybuffer"===e||"blob"===e||"json"===e?t.response:t.responseText;return w(r)}function i(t,n){var e=f(n),r=t.params;r.host=e.hostname+":"+e.port,r.pathname=e.pathname,t.sameOrigin=e.sameOrigin}function a(t,n){t.params.status=n.status;var e=o(n,t.lastSize);if(e&&(t.metrics.rxSize=e),t.sameOrigin){var r=n.getResponseHeader("X-NewRelic-App-Data");r&&(t.params.cat=r.split(", ").pop())}t.loadCaptureCalled=!0}var s=t("loader");if(s.xhrWrappable){var c=t("handle"),f=t(12),u=t(10).generateTraceHeader,d=t("ee"),l=["load","error","abort","timeout"],p=l.length,h=t("id"),m=t(15),w=t(14),v=window.XMLHttpRequest;s.features.xhr=!0,t(9),d.on("new-xhr",function(t){var n=this;n.totalCbs=0,n.called=0,n.cbTime=0,n.end=r,n.ended=!1,n.xhrGuids={},n.lastSize=null,n.loadCaptureCalled=!1,t.addEventListener("load",function(e){a(n,t)},!1),m&&(m>34||m<10)||window.opera||t.addEventListener("progress",function(t){n.lastSize=t.loaded},!1)}),d.on("open-xhr-start",function(t){this.params={method:t[0]},i(this,t[1]),this.metrics={}}),d.on("open-xhr-end",function(t,n){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid);var e=!1;if("init"in NREUM&&"distributed_tracing"in NREUM.init&&(e=!!NREUM.init.distributed_tracing.enabled),e&&this.sameOrigin){var r=u();r&&n.setRequestHeader("newrelic",r)}}),d.on("send-xhr-start",function(t,n){var e=this.metrics,r=t[0],o=this;if(e&&r){var i=w(r);i&&(e.txSize=i)}this.startTime=s.now(),this.listener=function(t){try{"abort"!==t.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==t.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof n.onload))&&o.end(n)}catch(e){try{d.emit("internal-error",[e])}catch(r){}}};for(var a=0;a<p;a++)n.addEventListener(l[a],this.listener,!1)}),d.on("xhr-cb-time",function(t,n,e){this.cbTime+=t,n?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof e.onload||this.end(e)}),d.on("xhr-load-added",function(t,n){var e=""+h(t)+!!n;this.xhrGuids&&!this.xhrGuids[e]&&(this.xhrGuids[e]=!0,this.totalCbs+=1)}),d.on("xhr-load-removed",function(t,n){var e=""+h(t)+!!n;this.xhrGuids&&this.xhrGuids[e]&&(delete this.xhrGuids[e],this.totalCbs-=1)}),d.on("addEventListener-end",function(t,n){n instanceof v&&"load"===t[0]&&d.emit("xhr-load-added",[t[1],t[2]],n)}),d.on("removeEventListener-end",function(t,n){n instanceof v&&"load"===t[0]&&d.emit("xhr-load-removed",[t[1],t[2]],n)}),d.on("fn-start",function(t,n,e){n instanceof v&&("onload"===e&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=s.now()))}),d.on("fn-end",function(t,n){this.xhrCbStart&&d.emit("xhr-cb-time",[s.now()-this.xhrCbStart,this.onload,n],n)})}},{}],12:[function(t,n,e){n.exports=function(t){var n=document.createElement("a"),e=window.location,r={};n.href=t,r.port=n.port;var o=n.href.split("://");!r.port&&o[1]&&(r.port=o[1].split("/")[0].split("@").pop().split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=n.hostname||e.hostname,r.pathname=n.pathname,r.protocol=o[0],"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname);var i=!n.protocol||":"===n.protocol||n.protocol===e.protocol,a=n.hostname===document.domain&&n.port===e.port;return r.sameOrigin=i&&(!n.hostname||a),r}},{}],13:[function(t,n,e){function r(){}function o(t,n,e){return function(){return i(t,[f.now()].concat(s(arguments)),n?null:this,e),n?void 0:this}}var i=t("handle"),a=t(18),s=t(19),c=t("ee").get("tracer"),f=t("loader"),u=NREUM;"undefined"==typeof window.newrelic&&(newrelic=u);var d=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",p=l+"ixn-";a(d,function(t,n){u[n]=o(l+n,!0,"api")}),u.addPageAction=o(l+"addPageAction",!0),u.setCurrentRouteName=o(l+"routeName",!0),n.exports=newrelic,u.interaction=function(){return(new r).get()};var h=r.prototype={createTracer:function(t,n){var e={},r=this,o="function"==typeof n;return i(p+"tracer",[f.now(),t,e],r),function(){if(c.emit((o?"":"no-")+"fn-start",[f.now(),r,o],e),o)try{return n.apply(this,arguments)}catch(t){throw c.emit("fn-err",[arguments,this,t],e),t}finally{c.emit("fn-end",[f.now()],e)}}}};a("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,n){h[n]=o(p+n)}),newrelic.noticeError=function(t,n){"string"==typeof t&&(t=new Error(t)),i("err",[t,f.now(),!1,n])}},{}],14:[function(t,n,e){n.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(n){return}}}},{}],15:[function(t,n,e){var r=0,o=navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/);o&&(r=+o[1]),n.exports=r},{}],16:[function(t,n,e){function r(){function t(){return n?15&n[e++]:16*Math.random()|0}var n=null,e=0,r=window.crypto||window.msCrypto;r&&r.getRandomValues&&(n=r.getRandomValues(new Uint8Array(31)));for(var o,i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",a="",s=0;s<i.length;s++)o=i[s],"x"===o?a+=t().toString(16):"y"===o?(o=3&t()|8,a+=o.toString(16)):a+=o;return a}function o(){function t(){return n?15&n[e++]:16*Math.random()|0}var n=null,e=0,r=window.crypto||window.msCrypto;r&&r.getRandomValues&&Uint8Array&&(n=r.getRandomValues(new Uint8Array(31)));for(var o=[],i=0;i<16;i++)o.push(t().toString(16));return o.join("")}n.exports={generateUuid:r,generateCatId:o}},{}],17:[function(t,n,e){function r(t,n){if(!o)return!1;if(t!==o)return!1;if(!n)return!0;if(!i)return!1;for(var e=i.split("."),r=n.split("."),a=0;a<r.length;a++)if(r[a]!==e[a])return!1;return!0}var o=null,i=null,a=/Version\/(\S+)\s+Safari/;if(navigator.userAgent){var s=navigator.userAgent,c=s.match(a);c&&s.indexOf("Chrome")===-1&&s.indexOf("Chromium")===-1&&(o="Safari",i=c[1])}n.exports={agent:o,version:i,match:r}},{}],18:[function(t,n,e){function r(t,n){var e=[],r="",i=0;for(r in t)o.call(t,r)&&(e[i]=n(r,t[r]),i+=1);return e}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],19:[function(t,n,e){function r(t,n,e){n||(n=0),"undefined"==typeof e&&(e=t?t.length:0);for(var r=-1,o=e-n||0,i=Array(o<0?0:o);++r<o;)i[r]=t[n+r];return i}n.exports=r},{}],20:[function(t,n,e){n.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],21:[function(t,n,e){function r(t){return!(t&&t instanceof Function&&t.apply&&!t[a])}var o=t("ee"),i=t(19),a="nr@original",s=Object.prototype.hasOwnProperty,c=!1;n.exports=function(t,n){function e(t,n,e,o){function nrWrapper(){var r,a,s,c;try{a=this,r=i(arguments),s="function"==typeof e?e(r,a):e||{}}catch(f){l([f,"",[r,a,o],s])}u(n+"start",[r,a,o],s);try{return c=t.apply(a,r)}catch(d){throw u(n+"err",[r,a,d],s),d}finally{u(n+"end",[r,a,c],s)}}return r(t)?t:(n||(n=""),nrWrapper[a]=t,d(t,nrWrapper),nrWrapper)}function f(t,n,o,i){o||(o="");var a,s,c,f="-"===o.charAt(0);for(c=0;c<n.length;c++)s=n[c],a=t[s],r(a)||(t[s]=e(a,f?s+o:o,i,s))}function u(e,r,o){if(!c||n){var i=c;c=!0;try{t.emit(e,r,o,n)}catch(a){l([a,e,r,o])}c=i}}function d(t,n){if(Object.defineProperty&&Object.keys)try{var e=Object.keys(t);return e.forEach(function(e){Object.defineProperty(n,e,{get:function(){return t[e]},set:function(n){return t[e]=n,n}})}),n}catch(r){l([r])}for(var o in t)s.call(t,o)&&(n[o]=t[o]);return n}function l(n){try{t.emit("internal-error",n)}catch(e){}}return t||(t=o),e.inPlace=f,e.flag=a,e}},{}],ee:[function(t,n,e){function r(){}function o(t){function n(t){return t&&t instanceof r?t:t?c(t,s,i):i()}function e(e,r,o,i){if(!l.aborted||i){t&&t(e,r,o);for(var a=n(o),s=m(e),c=s.length,f=0;f<c;f++)s[f].apply(a,r);var d=u[g[e]];return d&&d.push([x,e,r,a]),a}}function p(t,n){y[t]=m(t).concat(n)}function h(t,n){var e=y[t];if(e)for(var r=0;r<e.length;r++)e[r]===n&&e.splice(r,1)}function m(t){return y[t]||[]}function w(t){return d[t]=d[t]||o(e)}function v(t,n){f(t,function(t,e){n=n||"feature",g[e]=n,n in u||(u[n]=[])})}var y={},g={},x={on:p,addEventListener:p,removeEventListener:h,emit:e,get:w,listeners:m,context:n,buffer:v,abort:a,aborted:!1};return x}function i(){return new r}function a(){(u.api||u.feature)&&(l.aborted=!0,u=l.backlog={})}var s="nr@context",c=t("gos"),f=t(18),u={},d={},l=n.exports=o();l.backlog=u},{}],gos:[function(t,n,e){function r(t,n,e){if(o.call(t,n))return t[n];var r=e();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,n,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[n]=r,r}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],handle:[function(t,n,e){function r(t,n,e,r){o.buffer([t],r),o.emit(t,n,e)}var o=t("ee").get("handle");n.exports=r,r.ee=o},{}],id:[function(t,n,e){function r(t){var n=typeof t;return!t||"object"!==n&&"function"!==n?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");n.exports=r},{}],loader:[function(t,n,e){function r(){if(!E++){var t=b.info=NREUM.info,n=p.getElementsByTagName("script")[0];if(setTimeout(u.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&n))return u.abort();f(g,function(n,e){t[n]||(t[n]=e)}),c("mark",["onload",a()+b.offset],null,"api");var e=p.createElement("script");e.src="https://"+t.agent,n.parentNode.insertBefore(e,n)}}function o(){"complete"===p.readyState&&i()}function i(){c("mark",["domContent",a()+b.offset],null,"api")}function a(){return R.exists&&performance.now?Math.round(performance.now()):(s=Math.max((new Date).getTime(),s))-b.offset}var s=(new Date).getTime(),c=t("handle"),f=t(18),u=t("ee"),d=t(17),l=window,p=l.document,h="addEventListener",m="attachEvent",w=l.XMLHttpRequest,v=w&&w.prototype;NREUM.o={ST:setTimeout,SI:l.setImmediate,CT:clearTimeout,XHR:w,REQ:l.Request,EV:l.Event,PR:l.Promise,MO:l.MutationObserver};var y=""+location,g={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1130.min.js"},x=w&&v&&v[h]&&!/CriOS/.test(navigator.userAgent),b=n.exports={offset:s,now:a,origin:y,features:{},xhrWrappable:x,userAgent:d};t(13),p[h]?(p[h]("DOMContentLoaded",i,!1),l[h]("load",r,!1)):(p[m]("onreadystatechange",o),l[m]("onload",r)),c("mark",["firstbyte",s],null,"api");var E=0,R=t(20)},{}]},{},["loader",2,11,4,3]); ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"d6e87da652",applicationID:"353635827",sa:1} </script> <div id="sfwdtac8d74" class="sf-toolbar sf-display-none" role="region" aria-label="Symfony Web Debug Toolbar"></div><script nonce="81b22f00e818ed934ec47a78a14c87a5">/*<![CDATA[*/ if (typeof Sfjs === 'undefined' || typeof Sfjs.loadToolbar === 'undefined') { Sfjs = (function() { "use strict"; if ('classList' in document.documentElement) { var hasClass = function (el, cssClass) { return el.classList.contains(cssClass); }; var removeClass = function(el, cssClass) { el.classList.remove(cssClass); }; var addClass = function(el, cssClass) { el.classList.add(cssClass); }; var toggleClass = function(el, cssClass) { el.classList.toggle(cssClass); }; } else { var hasClass = function (el, cssClass) { return el.className.match(new RegExp('\\b' + cssClass + '\\b')); }; var removeClass = function(el, cssClass) { el.className = el.className.replace(new RegExp('\\b' + cssClass + '\\b'), ' '); }; var addClass = function(el, cssClass) { if (!hasClass(el, cssClass)) { el.className += " " + cssClass; } }; var toggleClass = function(el, cssClass) { hasClass(el, cssClass) ? removeClass(el, cssClass) : addClass(el, cssClass); }; } var noop = function() {}; var profilerStorageKey = 'symfony/profiler/'; var addEventListener; var el = document.createElement('div'); if (!('addEventListener' in el)) { addEventListener = function (element, eventName, callback) { element.attachEvent('on' + eventName, callback); }; } else { addEventListener = function (element, eventName, callback) { element.addEventListener(eventName, callback, false); }; } var request = function(url, onSuccess, onError, payload, options) { var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); options = options || {}; options.maxTries = options.maxTries || 0; xhr.open(options.method || 'GET', url, true); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.onreadystatechange = function(state) { if (4 !== xhr.readyState) { return null; } if (xhr.status == 404 && options.maxTries > 1) { setTimeout(function(){ options.maxTries--; request(url, onSuccess, onError, payload, options); }, 1000); return null; } if (200 === xhr.status) { (onSuccess || noop)(xhr); } else { (onError || noop)(xhr); } }; xhr.send(payload || ''); }; var getPreference = function(name) { if (!window.localStorage) { return null; } return localStorage.getItem(profilerStorageKey + name); }; var setPreference = function(name, value) { if (!window.localStorage) { return null; } localStorage.setItem(profilerStorageKey + name, value); }; var requestStack = []; var extractHeaders = function(xhr, stackElement) { /* Here we avoid to call xhr.getResponseHeader in order to */ /* prevent polluting the console with CORS security errors */ var allHeaders = xhr.getAllResponseHeaders(); var ret; if (ret = allHeaders.match(/^x-debug-token:\s+(.*)$/im)) { stackElement.profile = ret[1]; } if (ret = allHeaders.match(/^x-debug-token-link:\s+(.*)$/im)) { stackElement.profilerUrl = ret[1]; } if (ret = allHeaders.match(/^Symfony-Debug-Toolbar-Replace:\s+(.*)$/im)) { stackElement.toolbarReplaceFinished = false; stackElement.toolbarReplace = '1' === ret[1]; } }; var successStreak = 4; var pendingRequests = 0; var renderAjaxRequests = function() { var requestCounter = document.querySelector('.sf-toolbar-ajax-request-counter'); if (!requestCounter) { return; } requestCounter.textContent = requestStack.length; var infoSpan = document.querySelector(".sf-toolbar-ajax-info"); if (infoSpan) { infoSpan.textContent = requestStack.length + ' AJAX request' + (requestStack.length !== 1 ? 's' : ''); } var ajaxToolbarPanel = document.querySelector('.sf-toolbar-block-ajax'); if (requestStack.length) { ajaxToolbarPanel.style.display = 'block'; } else { ajaxToolbarPanel.style.display = 'none'; } if (pendingRequests > 0) { addClass(ajaxToolbarPanel, 'sf-ajax-request-loading'); } else if (successStreak < 4) { addClass(ajaxToolbarPanel, 'sf-toolbar-status-red'); removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading'); } else { removeClass(ajaxToolbarPanel, 'sf-ajax-request-loading'); removeClass(ajaxToolbarPanel, 'sf-toolbar-status-red'); } }; var startAjaxRequest = function(index) { var tbody = document.querySelector('.sf-toolbar-ajax-request-list'); if (!tbody) { return; } var nbOfAjaxRequest = tbody.rows.length; if (nbOfAjaxRequest >= 100) { tbody.deleteRow(0); } var request = requestStack[index]; pendingRequests++; var row = document.createElement('tr'); request.DOMNode = row; var requestNumberCell = document.createElement('td'); requestNumberCell.textContent = index + 1; row.appendChild(requestNumberCell); var profilerCell = document.createElement('td'); profilerCell.textContent = 'n/a'; row.appendChild(profilerCell); var methodCell = document.createElement('td'); methodCell.textContent = request.method; row.appendChild(methodCell); var typeCell = document.createElement('td'); typeCell.textContent = request.type; row.appendChild(typeCell); var statusCodeCell = document.createElement('td'); var statusCode = document.createElement('span'); statusCode.textContent = 'n/a'; statusCodeCell.appendChild(statusCode); row.appendChild(statusCodeCell); var pathCell = document.createElement('td'); pathCell.className = 'sf-ajax-request-url'; if ('GET' === request.method) { var pathLink = document.createElement('a'); pathLink.setAttribute('href', request.url); pathLink.textContent = request.url; pathCell.appendChild(pathLink); } else { pathCell.textContent = request.url; } pathCell.setAttribute('title', request.url); row.appendChild(pathCell); var durationCell = document.createElement('td'); durationCell.className = 'sf-ajax-request-duration'; durationCell.textContent = 'n/a'; row.appendChild(durationCell); request.liveDurationHandle = setInterval(function() { durationCell.textContent = (new Date() - request.start) + 'ms'; }, 100); row.className = 'sf-ajax-request sf-ajax-request-loading'; tbody.insertBefore(row, null); var toolbarInfo = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info'); toolbarInfo.scrollTop = toolbarInfo.scrollHeight; renderAjaxRequests(); }; var finishAjaxRequest = function(index) { var request = requestStack[index]; clearInterval(request.liveDurationHandle); if (!request.DOMNode) { return; } if (request.toolbarReplace && !request.toolbarReplaceFinished && request.profile) { /* Flag as complete because finishAjaxRequest can be called multiple times. */ request.toolbarReplaceFinished = true; /* Search up through the DOM to find the toolbar's container ID. */ for (var elem = request.DOMNode; elem && elem !== document; elem = elem.parentNode) { if (elem.id.match(/^sfwdt/)) { Sfjs.loadToolbar(elem.id.replace(/^sfwdt/, ''), request.profile); break; } } } pendingRequests--; var row = request.DOMNode; /* Unpack the children from the row */ var profilerCell = row.children[1]; var methodCell = row.children[2]; var statusCodeCell = row.children[4]; var statusCodeElem = statusCodeCell.children[0]; var durationCell = row.children[6]; if (request.error) { row.className = 'sf-ajax-request sf-ajax-request-error'; methodCell.className = 'sf-ajax-request-error'; successStreak = 0; } else { row.className = 'sf-ajax-request sf-ajax-request-ok'; successStreak++; } if (request.statusCode) { if (request.statusCode < 300) { statusCodeElem.setAttribute('class', 'sf-toolbar-status'); } else if (request.statusCode < 400) { statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-yellow'); } else { statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red'); } statusCodeElem.textContent = request.statusCode; } else { statusCodeElem.setAttribute('class', 'sf-toolbar-status sf-toolbar-status-red'); } if (request.duration) { durationCell.textContent = request.duration + 'ms'; } if (request.profilerUrl) { profilerCell.textContent = ''; var profilerLink = document.createElement('a'); profilerLink.setAttribute('href', request.profilerUrl); profilerLink.textContent = request.profile; profilerCell.appendChild(profilerLink); } renderAjaxRequests(); }; if (window.fetch && window.fetch.polyfill === undefined) { var oldFetch = window.fetch; window.fetch = function () { var promise = oldFetch.apply(this, arguments); var url = arguments[0]; var params = arguments[1]; var paramType = Object.prototype.toString.call(arguments[0]); if (paramType === '[object Request]') { url = arguments[0].url; params = { method: arguments[0].method, credentials: arguments[0].credentials, headers: arguments[0].headers, mode: arguments[0].mode, redirect: arguments[0].redirect }; } else { url = String(url); } if (!url.match(new RegExp("^\/((index|app(_[\\w]+)?)\\.php\/)?_wdt"))) { var method = 'GET'; if (params && params.method !== undefined) { method = params.method; } var stackElement = { error: false, url: url, method: method, type: 'fetch', start: new Date() }; var idx = requestStack.push(stackElement) - 1; promise.then(function (r) { stackElement.duration = new Date() - stackElement.start; stackElement.error = r.status < 200 || r.status >= 400; stackElement.statusCode = r.status; stackElement.profile = r.headers.get('x-debug-token'); stackElement.profilerUrl = r.headers.get('x-debug-token-link'); stackElement.toolbarReplaceFinished = false; stackElement.toolbarReplace = '1' === r.headers.get('Symfony-Debug-Toolbar-Replace'); finishAjaxRequest(idx); }, function (e){ stackElement.error = true; finishAjaxRequest(idx); }); startAjaxRequest(idx); } return promise; }; } if (window.XMLHttpRequest && XMLHttpRequest.prototype.addEventListener) { var proxied = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { var self = this; /* prevent logging AJAX calls to static and inline files, like templates */ var path = url; if (url.slice(0, 1) === '/') { if (0 === url.indexOf('')) { path = url.slice(0); } } else if (0 === url.indexOf('http\u003A\/\/www.fff.fr')) { path = url.slice(17); } if (!path.match(new RegExp("^\/((index|app(_[\\w]+)?)\\.php\/)?_wdt"))) { var stackElement = { error: false, url: url, method: method, type: 'xhr', start: new Date() }; var idx = requestStack.push(stackElement) - 1; this.addEventListener('readystatechange', function() { if (self.readyState == 4) { stackElement.duration = new Date() - stackElement.start; stackElement.error = self.status < 200 || self.status >= 400; stackElement.statusCode = self.status; extractHeaders(self, stackElement); finishAjaxRequest(idx); } }, false); startAjaxRequest(idx); } proxied.apply(this, Array.prototype.slice.call(arguments)); }; } return { hasClass: hasClass, removeClass: removeClass, addClass: addClass, toggleClass: toggleClass, getPreference: getPreference, setPreference: setPreference, addEventListener: addEventListener, request: request, renderAjaxRequests: renderAjaxRequests, load: function(selector, url, onSuccess, onError, options) { var el = document.getElementById(selector); if (el && el.getAttribute('data-sfurl') !== url) { request( url, function(xhr) { el.innerHTML = xhr.responseText; el.setAttribute('data-sfurl', url); removeClass(el, 'loading'); var pending = pendingRequests; for (var i = 0; i < requestStack.length; i++) { startAjaxRequest(i); if (requestStack[i].duration) { finishAjaxRequest(i); } } /* Revert the pending state in case there was a start called without a finish above. */ pendingRequests = pending; (onSuccess || noop)(xhr, el); }, function(xhr) { (onError || noop)(xhr, el); }, '', options ); } return this; }, loadToolbar: function(token, newToken) { newToken = (newToken || token); this.load( 'sfwdt' + token, 'http\u003A\/\/www.fff.fr\/_wdt\/xxxxxx'.replace(/xxxxxx/, newToken), function(xhr, el) { /* Do nothing in the edge case where the toolbar has already been replaced with a new one */ if (!document.getElementById('sfToolbarMainContent-' + newToken)) { return; } /* Evaluate in global scope scripts embedded inside the toolbar */ var i, scripts = [].slice.call(el.querySelectorAll('script')); for (i = 0; i < scripts.length; ++i) { eval.call({}, scripts[i].firstChild.nodeValue); } el.style.display = -1 !== xhr.responseText.indexOf('sf-toolbarreset') ? 'block' : 'none'; if (el.style.display == 'none') { return; } if (getPreference('toolbar/displayState') == 'none') { document.getElementById('sfToolbarMainContent-' + newToken).style.display = 'none'; document.getElementById('sfToolbarClearer-' + newToken).style.display = 'none'; document.getElementById('sfMiniToolbar-' + newToken).style.display = 'block'; } else { document.getElementById('sfToolbarMainContent-' + newToken).style.display = 'block'; document.getElementById('sfToolbarClearer-' + newToken).style.display = 'block'; document.getElementById('sfMiniToolbar-' + newToken).style.display = 'none'; } /* Handle toolbar-info position */ var toolbarBlocks = [].slice.call(el.querySelectorAll('.sf-toolbar-block')); for (i = 0; i < toolbarBlocks.length; ++i) { toolbarBlocks[i].onmouseover = function () { var toolbarInfo = this.querySelectorAll('.sf-toolbar-info')[0]; var pageWidth = document.body.clientWidth; var elementWidth = toolbarInfo.offsetWidth; var leftValue = (elementWidth + this.offsetLeft) - pageWidth; var rightValue = (elementWidth + (pageWidth - this.offsetLeft)) - pageWidth; /* Reset right and left value, useful on window resize */ toolbarInfo.style.right = ''; toolbarInfo.style.left = ''; if (elementWidth > pageWidth) { toolbarInfo.style.left = 0; } else if (leftValue > 0 && rightValue > 0) { toolbarInfo.style.right = (rightValue * -1) + 'px'; } else if (leftValue < 0) { toolbarInfo.style.left = 0; } else { toolbarInfo.style.right = '0px'; } }; } addEventListener(document.getElementById('sfToolbarHideButton-' + newToken), 'click', function (event) { event.preventDefault(); var p = this.parentNode; p.style.display = 'none'; (p.previousElementSibling || p.previousSibling).style.display = 'none'; document.getElementById('sfMiniToolbar-' + newToken).style.display = 'block'; setPreference('toolbar/displayState', 'none'); }); addEventListener(document.getElementById('sfToolbarMiniToggler-' + newToken), 'click', function (event) { event.preventDefault(); var elem = this.parentNode; if (elem.style.display == 'none') { document.getElementById('sfToolbarMainContent-' + newToken).style.display = 'none'; document.getElementById('sfToolbarClearer-' + newToken).style.display = 'none'; elem.style.display = 'block'; } else { document.getElementById('sfToolbarMainContent-' + newToken).style.display = 'block'; document.getElementById('sfToolbarClearer-' + newToken).style.display = 'block'; elem.style.display = 'none' } setPreference('toolbar/displayState', 'block'); }); renderAjaxRequests(); addEventListener(document.querySelector('.sf-toolbar-ajax-clear'), 'click', function() { requestStack = []; renderAjaxRequests(); successStreak = 4; document.querySelector('.sf-toolbar-ajax-request-list').innerHTML = ''; }); addEventListener(document.querySelector('.sf-toolbar-block-ajax'), 'mouseenter', function (event) { var elem = document.querySelector('.sf-toolbar-block-ajax .sf-toolbar-info'); elem.scrollTop = elem.scrollHeight; }); addEventListener(document.querySelector('.sf-toolbar-block-ajax > .sf-toolbar-icon'), 'click', function (event) { event.preventDefault(); toggleClass(this.parentNode, 'hover'); }); var dumpInfo = document.querySelector('.sf-toolbar-block-dump .sf-toolbar-info'); if (null !== dumpInfo) { addEventListener(dumpInfo, 'sfbeforedumpcollapse', function () { dumpInfo.style.minHeight = dumpInfo.getBoundingClientRect().height+'px'; }); addEventListener(dumpInfo, 'mouseleave', function () { dumpInfo.style.minHeight = ''; }); } }, function(xhr) { if (xhr.status !== 0) { var sfwdt = document.getElementById('sfwdt' + token); sfwdt.innerHTML = '\ <div class="sf-toolbarreset">\ <div class="sf-toolbar-icon"><svg width="26" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 26 28" enable-background="new 0 0 26 28" xml:space="preserve"><path fill="#FFFFFF" d="M13 0C5.8 0 0 5.8 0 13c0 7.2 5.8 13 13 13c7.2 0 13-5.8 13-13C26 5.8 20.2 0 13 0z M20 7.5 c-0.6 0-1-0.3-1-0.9c0-0.2 0-0.4 0.2-0.6c0.1-0.3 0.2-0.3 0.2-0.4c0-0.3-0.5-0.4-0.7-0.4c-2 0.1-2.5 2.7-2.9 4.8l-0.2 1.1 c1.1 0.2 1.9 0 2.4-0.3c0.6-0.4-0.2-0.8-0.1-1.3C18 9.2 18.4 9 18.7 8.9c0.5 0 0.8 0.5 0.8 1c0 0.8-1.1 2-3.3 1.9 c-0.3 0-0.5 0-0.7-0.1L15 14.1c-0.4 1.7-0.9 4.1-2.6 6.2c-1.5 1.8-3.1 2.1-3.8 2.1c-1.3 0-2.1-0.6-2.2-1.6c0-0.9 0.8-1.4 1.3-1.4 c0.7 0 1.2 0.5 1.2 1.1c0 0.5-0.2 0.6-0.4 0.7c-0.1 0.1-0.3 0.2-0.3 0.4c0 0.1 0.1 0.3 0.4 0.3c0.5 0 0.9-0.3 1.2-0.5 c1.3-1 1.7-2.9 2.4-6.2l0.1-0.8c0.2-1.1 0.5-2.3 0.8-3.5c-0.9-0.7-1.4-1.5-2.6-1.8c-0.8-0.2-1.3 0-1.7 0.4C8.4 10 8.6 10.7 9 11.1 l0.7 0.7c0.8 0.9 1.3 1.7 1.1 2.7c-0.3 1.6-2.1 2.8-4.3 2.1c-1.9-0.6-2.2-1.9-2-2.7c0.2-0.6 0.7-0.8 1.2-0.6 c0.5 0.2 0.7 0.8 0.6 1.3c0 0.1 0 0.1-0.1 0.3C6 15 5.9 15.2 5.9 15.3c-0.1 0.4 0.4 0.7 0.8 0.8c0.8 0.3 1.7-0.2 1.9-0.9 c0.2-0.6-0.2-1.1-0.4-1.2l-0.8-0.9c-0.4-0.4-1.2-1.5-0.8-2.8c0.2-0.5 0.5-1 0.9-1.4c1-0.7 2-0.8 3-0.6c1.3 0.4 1.9 1.2 2.8 1.9 c0.5-1.3 1.1-2.6 2-3.8c0.9-1 2-1.7 3.3-1.8C20 4.8 21 5.4 21 6.3C21 6.7 20.8 7.5 20 7.5z"/></svg></div>\ An error occurred while loading the web debug toolbar. <a href="http\u003A\/\/www.fff.fr\/_profiler\/' + newToken + '>Open the web profiler.</a>\ </div>\ '; sfwdt.setAttribute('class', 'sf-toolbar sf-error-toolbar'); } }, { maxTries: 5 } ); return this; }, toggle: function(selector, elOn, elOff) { var tmp = elOn.style.display, el = document.getElementById(selector); elOn.style.display = elOff.style.display; elOff.style.display = tmp; if (el) { el.style.display = 'none' === tmp ? 'none' : 'block'; } return this; }, createTabs: function() { var tabGroups = document.querySelectorAll('.sf-tabs:not([data-processed=true])'); /* create the tab navigation for each group of tabs */ for (var i = 0; i < tabGroups.length; i++) { var tabs = tabGroups[i].querySelectorAll(':scope > .tab'); var tabNavigation = document.createElement('ul'); tabNavigation.className = 'tab-navigation'; var selectedTabId = 'tab-' + i + '-0'; /* select the first tab by default */ for (var j = 0; j < tabs.length; j++) { var tabId = 'tab-' + i + '-' + j; var tabTitle = tabs[j].querySelector('.tab-title').innerHTML; var tabNavigationItem = document.createElement('li'); tabNavigationItem.setAttribute('data-tab-id', tabId); if (hasClass(tabs[j], 'active')) { selectedTabId = tabId; } if (hasClass(tabs[j], 'disabled')) { addClass(tabNavigationItem, 'disabled'); } tabNavigationItem.innerHTML = tabTitle; tabNavigation.appendChild(tabNavigationItem); var tabContent = tabs[j].querySelector('.tab-content'); tabContent.parentElement.setAttribute('id', tabId); } tabGroups[i].insertBefore(tabNavigation, tabGroups[i].firstChild); addClass(document.querySelector('[data-tab-id="' + selectedTabId + '"]'), 'active'); } /* display the active tab and add the 'click' event listeners */ for (i = 0; i < tabGroups.length; i++) { tabNavigation = tabGroups[i].querySelectorAll(':scope > .tab-navigation li'); for (j = 0; j < tabNavigation.length; j++) { tabId = tabNavigation[j].getAttribute('data-tab-id'); document.getElementById(tabId).querySelector('.tab-title').className = 'hidden'; if (hasClass(tabNavigation[j], 'active')) { document.getElementById(tabId).className = 'block'; } else { document.getElementById(tabId).className = 'hidden'; } tabNavigation[j].addEventListener('click', function(e) { var activeTab = e.target || e.srcElement; /* needed because when the tab contains HTML contents, user can click */ /* on any of those elements instead of their parent '<li>' element */ while (activeTab.tagName.toLowerCase() !== 'li') { activeTab = activeTab.parentNode; } /* get the full list of tabs through the parent of the active tab element */ var tabNavigation = activeTab.parentNode.children; for (var k = 0; k < tabNavigation.length; k++) { var tabId = tabNavigation[k].getAttribute('data-tab-id'); document.getElementById(tabId).className = 'hidden'; removeClass(tabNavigation[k], 'active'); } addClass(activeTab, 'active'); var activeTabId = activeTab.getAttribute('data-tab-id'); document.getElementById(activeTabId).className = 'block'; }); } tabGroups[i].setAttribute('data-processed', 'true'); } }, createToggles: function() { var toggles = document.querySelectorAll('.sf-toggle:not([data-processed=true])'); for (var i = 0; i < toggles.length; i++) { var elementSelector = toggles[i].getAttribute('data-toggle-selector'); var element = document.querySelector(elementSelector); addClass(element, 'sf-toggle-content'); if (toggles[i].hasAttribute('data-toggle-initial') && toggles[i].getAttribute('data-toggle-initial') == 'display') { addClass(toggles[i], 'sf-toggle-on'); addClass(element, 'sf-toggle-visible'); } else { addClass(toggles[i], 'sf-toggle-off'); addClass(element, 'sf-toggle-hidden'); } addEventListener(toggles[i], 'click', function(e) { e.preventDefault(); if ('' !== window.getSelection().toString()) { /* Don't do anything on text selection */ return; } var toggle = e.target || e.srcElement; /* needed because when the toggle contains HTML contents, user can click */ /* on any of those elements instead of their parent '.sf-toggle' element */ while (!hasClass(toggle, 'sf-toggle')) { toggle = toggle.parentNode; } var element = document.querySelector(toggle.getAttribute('data-toggle-selector')); toggleClass(toggle, 'sf-toggle-on'); toggleClass(toggle, 'sf-toggle-off'); toggleClass(element, 'sf-toggle-hidden'); toggleClass(element, 'sf-toggle-visible'); /* the toggle doesn't change its contents when clicking on it */ if (!toggle.hasAttribute('data-toggle-alt-content')) { return; } if (!toggle.hasAttribute('data-toggle-original-content')) { toggle.setAttribute('data-toggle-original-content', toggle.innerHTML); } var currentContent = toggle.innerHTML; var originalContent = toggle.getAttribute('data-toggle-original-content'); var altContent = toggle.getAttribute('data-toggle-alt-content'); toggle.innerHTML = currentContent !== altContent ? altContent : originalContent; }); /* Prevents from disallowing clicks on links inside toggles */ var toggleLinks = toggles[i].querySelectorAll('a'); for (var j = 0; j < toggleLinks.length; j++) { addEventListener(toggleLinks[j], 'click', function(e) { e.stopPropagation(); }); } toggles[i].setAttribute('data-processed', 'true'); } }, createFilters: function() { document.querySelectorAll('[data-filters] [data-filter]').forEach(function (filter) { var filters = filter.closest('[data-filters]'), type = 'choice', name = filter.dataset.filter, ucName = name.charAt(0).toUpperCase()+name.slice(1), list = document.createElement('ul'), values = filters.dataset['filter'+ucName] || filters.querySelectorAll('[data-filter-'+name+']'), labels = {}, defaults = null, indexed = {}, processed = {}; if (typeof values === 'string') { type = 'level'; labels = values.split(','); values = values.toLowerCase().split(','); defaults = values.length - 1; } addClass(list, 'filter-list'); addClass(list, 'filter-list-'+type); values.forEach(function (value, i) { if (value instanceof HTMLElement) { value = value.dataset['filter'+ucName]; } if (value in processed) { return; } var option = document.createElement('li'), label = i in labels ? labels[i] : value, active = false, matches; if ('' === label) { option.innerHTML = '<em>(none)</em>'; } else { option.innerText = label; } option.dataset.filter = value; option.setAttribute('title', 1 === (matches = filters.querySelectorAll('[data-filter-'+name+'="'+value+'"]').length) ? 'Matches 1 row' : 'Matches '+matches+' rows'); indexed[value] = i; list.appendChild(option); addEventListener(option, 'click', function () { if ('choice' === type) { filters.querySelectorAll('[data-filter-'+name+']').forEach(function (row) { if (option.dataset.filter === row.dataset['filter'+ucName]) { toggleClass(row, 'filter-hidden-'+name); } }); toggleClass(option, 'active'); } else if ('level' === type) { if (i === this.parentNode.querySelectorAll('.active').length - 1) { return; } this.parentNode.querySelectorAll('li').forEach(function (currentOption, j) { if (j <= i) { addClass(currentOption, 'active'); if (i === j) { addClass(currentOption, 'last-active'); } else { removeClass(currentOption, 'last-active'); } } else { removeClass(currentOption, 'active'); removeClass(currentOption, 'last-active'); } }); filters.querySelectorAll('[data-filter-'+name+']').forEach(function (row) { if (i < indexed[row.dataset['filter'+ucName]]) { addClass(row, 'filter-hidden-'+name); } else { removeClass(row, 'filter-hidden-'+name); } }); } }); if ('choice' === type) { active = null === defaults || 0 <= defaults.indexOf(value); } else if ('level' === type) { active = i <= defaults; if (active && i === defaults) { addClass(option, 'last-active'); } } if (active) { addClass(option, 'active'); } else { filters.querySelectorAll('[data-filter-'+name+'="'+value+'"]').forEach(function (row) { toggleClass(row, 'filter-hidden-'+name); }); } processed[value] = true; }); if (1 < list.childNodes.length) { filter.appendChild(list); filter.dataset.filtered = ''; } }); } }; })(); Sfjs.addEventListener(document, 'DOMContentLoaded', function() { Sfjs.createTabs(); Sfjs.createToggles(); });}/*]]>*/</script><style nonce="26955875e33286a078f636052e7f4086"> .sf-minitoolbar { background-color: #222; border-top-left-radius: 4px; bottom: 0; box-sizing: border-box; display: none; height: 36px; padding: 6px; position: fixed; right: 0; z-index: 99999;}.sf-minitoolbar a { display: block;}.sf-minitoolbar svg,.sf-minitoolbar img { max-height: 24px; max-width: 24px; display: inline;}.sf-toolbar-clearer { clear: both; height: 36px;}.sf-display-none { display: none;}.sf-toolbarreset * { box-sizing: content-box; vertical-align: baseline; letter-spacing: normal; width: auto;}.sf-toolbarreset { background-color: #222; bottom: 0; box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); color: #EEE; font: 11px Arial, sans-serif; left: 0; margin: 0; padding: 0 36px 0 0; position: fixed; right: 0; text-align: left; text-transform: none; z-index: 99999; direction: ltr; /* neutralize the aliasing defined by external CSS styles */ -webkit-font-smoothing: subpixel-antialiased; -moz-osx-font-smoothing: auto;}.sf-toolbarreset abbr { border: dashed #777; border-width: 0 0 1px;}.sf-toolbarreset svg,.sf-toolbarreset img { height: 20px; width: 20px; display: inline-block;}.sf-toolbarreset .hide-button { background: #444; display: block; position: absolute; top: 0; right: 0; width: 36px; height: 36px; cursor: pointer; text-align: center;}.sf-toolbarreset .hide-button svg { max-height: 18px; margin-top: 10px;}.sf-toolbar-block { cursor: default; display: block; float: left; height: 36px; margin-right: 0; white-space: nowrap; max-width: 15%;}.sf-toolbar-block > a,.sf-toolbar-block > a:hover { display: block; text-decoration: none; background-color: transparent; color: inherit;}.sf-toolbar-block span { display: inline-block;}.sf-toolbar-block .sf-toolbar-value { color: #F5F5F5; font-size: 13px; line-height: 36px; padding: 0;}.sf-toolbar-block .sf-toolbar-label,.sf-toolbar-block .sf-toolbar-class-separator { color: #AAA; font-size: 12px;}.sf-toolbar-block .sf-toolbar-info { border-collapse: collapse; display: table; z-index: 100000;}.sf-toolbar-block hr { border-top: 1px solid #777; margin: 4px 0; padding-top: 4px;}.sf-toolbar-block .sf-toolbar-info-piece { /* this 'border-bottom' trick is needed because 'margin-bottom' doesn't work for table rows */ border-bottom: solid transparent 3px; display: table-row;}.sf-toolbar-block .sf-toolbar-info-piece-additional,.sf-toolbar-block .sf-toolbar-info-piece-additional-detail { display: none;}.sf-toolbar-block .sf-toolbar-info-group { margin-bottom: 4px; padding-bottom: 2px; border-bottom: 1px solid #333333;}.sf-toolbar-block .sf-toolbar-info-group:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none;}.sf-toolbar-block .sf-toolbar-info-piece .sf-toolbar-status { padding: 2px 5px; margin-bottom: 0;}.sf-toolbar-block .sf-toolbar-info-piece .sf-toolbar-status + .sf-toolbar-status { margin-left: 4px;}.sf-toolbar-block .sf-toolbar-info-piece:last-child { margin-bottom: 0;}div.sf-toolbar .sf-toolbar-block .sf-toolbar-info-piece a { color: #99CDD8; text-decoration: underline;}div.sf-toolbar .sf-toolbar-block a:hover { text-decoration: none;}.sf-toolbar-block .sf-toolbar-info-piece b { color: #AAA; display: table-cell; font-size: 11px; padding: 4px 8px 4px 0;}.sf-toolbar-block:not(.sf-toolbar-block-dump) .sf-toolbar-info-piece span { color: #F5F5F5;}.sf-toolbar-block .sf-toolbar-info-piece span { font-size: 12px;}.sf-toolbar-block .sf-toolbar-info { background-color: #444; bottom: 36px; color: #F5F5F5; display: none; padding: 9px 0; position: absolute;}.sf-toolbar-block .sf-toolbar-info:empty { visibility: hidden;}.sf-toolbar-block .sf-toolbar-status { display: inline-block; color: #FFF; background-color: #666; padding: 3px 6px; margin-bottom: 2px; vertical-align: middle; min-width: 15px; min-height: 13px; text-align: center;}.sf-toolbar-block .sf-toolbar-status-green { background-color: #4F805D;}.sf-toolbar-block .sf-toolbar-status-red { background-color: #B0413E;}.sf-toolbar-block .sf-toolbar-status-yellow { background-color: #A46A1F;}.sf-toolbar-block.sf-toolbar-status-green { background-color: #4F805D; color: #FFF;}.sf-toolbar-block.sf-toolbar-status-red { background-color: #B0413E; color: #FFF;}.sf-toolbar-block.sf-toolbar-status-yellow { background-color: #A46A1F; color: #FFF;}.sf-toolbar-block-request .sf-toolbar-status { color: #FFF; display: inline-block; font-size: 14px; height: 36px; line-height: 36px; padding: 0 10px;}.sf-toolbar-block-request .sf-toolbar-info-piece a { background-color: transparent; text-decoration: none;}.sf-toolbar-block-request .sf-toolbar-info-piece a:hover { text-decoration: underline;}.sf-toolbar-block-request .sf-toolbar-redirection-status { font-weight: normal; padding: 2px 4px; line-height: 18px;}.sf-toolbar-block-request .sf-toolbar-info-piece span.sf-toolbar-redirection-method { font-size: 12px; height: 17px; line-height: 17px; margin-right: 5px;}.sf-toolbar-block-ajax .sf-toolbar-icon { cursor: pointer;}.sf-toolbar-status-green .sf-toolbar-label,.sf-toolbar-status-yellow .sf-toolbar-label,.sf-toolbar-status-red .sf-toolbar-label { color: #FFF;}.sf-toolbar-status-green svg path,.sf-toolbar-status-green svg .sf-svg-path,.sf-toolbar-status-red svg path,.sf-toolbar-status-red svg .sf-svg-path,.sf-toolbar-status-yellow svg path,.sf-toolbar-status-yellow svg .sf-svg-path { fill: #FFF;}.sf-toolbar-block-config svg path,.sf-toolbar-block-config svg .sf-svg-path { fill: #FFF;}.sf-toolbar-block .sf-toolbar-icon { display: block; height: 36px; padding: 0 7px; overflow: hidden; text-overflow: ellipsis;}.sf-toolbar-block-request .sf-toolbar-icon { padding-left: 0; padding-right: 0;}.sf-toolbar-block .sf-toolbar-icon img,.sf-toolbar-block .sf-toolbar-icon svg { border-width: 0; position: relative; top: 8px; vertical-align: baseline;}.sf-toolbar-block .sf-toolbar-icon img + span,.sf-toolbar-block .sf-toolbar-icon svg + span { margin-left: 4px;}.sf-toolbar-block-config .sf-toolbar-icon .sf-toolbar-value { margin-left: 4px;}.sf-toolbar-block:hover,.sf-toolbar-block.hover { position: relative;}.sf-toolbar-block:hover .sf-toolbar-icon,.sf-toolbar-block.hover .sf-toolbar-icon { background-color: #444; position: relative; z-index: 10002;}.sf-toolbar-block-ajax.hover .sf-toolbar-info { z-index: 10001;}.sf-toolbar-block:hover .sf-toolbar-info,.sf-toolbar-block.hover .sf-toolbar-info { display: block; padding: 10px; max-width: 525px; max-height: 480px; word-wrap: break-word; overflow: hidden; overflow-y: auto;}.sf-toolbar-info-piece b.sf-toolbar-ajax-info { color: #F5F5F5;}.sf-toolbar-ajax-requests { table-layout: auto; width: 100%;}.sf-toolbar-ajax-requests td { background-color: #444; border-bottom: 1px solid #777; color: #F5F5F5; font-size: 12px; padding: 4px;}.sf-toolbar-ajax-requests tr:last-child td { border-bottom: 0;}.sf-toolbar-ajax-requests th { background-color: #222; border-bottom: 0; color: #AAA; font-size: 11px; padding: 4px;}.sf-ajax-request-url { max-width: 250px; line-height: 9px; overflow: hidden; text-overflow: ellipsis;}.sf-toolbar-ajax-requests .sf-ajax-request-url a { text-decoration: none;}.sf-toolbar-ajax-requests .sf-ajax-request-url a:hover { text-decoration: underline;}.sf-ajax-request-duration { text-align: right;}.sf-ajax-request-loading { animation: sf-blink .5s ease-in-out infinite;}@keyframes sf-blink { 0% { background: #222; } 50% { background: #444; } 100% { background: #222; }}.sf-toolbar-block.sf-toolbar-block-dump .sf-toolbar-info { max-width: none; width: 100%; position: fixed; box-sizing: border-box; left: 0;}.sf-toolbar-block-dump pre.sf-dump { background-color: #222; border-color: #777; border-radius: 0; margin: 6px 0 12px 0;}.sf-toolbar-block-dump pre.sf-dump:last-child { margin-bottom: 0;}.sf-toolbar-block-dump pre.sf-dump .sf-dump-search-wrapper { margin-bottom: 5px;}.sf-toolbar-block-dump pre.sf-dump span.sf-dump-search-count { color: #333; font-size: 12px;}.sf-toolbar-block-dump .sf-toolbar-info-piece { display: block;}.sf-toolbar-block-dump .sf-toolbar-info-piece .sf-toolbar-file-line { color: #AAA; margin-left: 4px;}.sf-toolbar-block-dump .sf-toolbar-info img { display: none;}/* Responsive Design */.sf-toolbar-icon .sf-toolbar-label,.sf-toolbar-icon .sf-toolbar-value { display: none;}.sf-toolbar-block-config .sf-toolbar-icon .sf-toolbar-label { display: inline-block;}/* Legacy Design - these styles are maintained to make old panels look a bit better on the new toolbar */.sf-toolbar-block .sf-toolbar-info-piece-additional-detail { color: #AAA; font-size: 12px;}.sf-toolbar-status-green .sf-toolbar-info-piece-additional-detail,.sf-toolbar-status-yellow .sf-toolbar-info-piece-additional-detail,.sf-toolbar-status-red .sf-toolbar-info-piece-additional-detail { color: #FFF;}@media (min-width: 768px) { .sf-toolbar-icon .sf-toolbar-label, .sf-toolbar-icon .sf-toolbar-value { display: inline; } .sf-toolbar-block .sf-toolbar-icon img, .sf-toolbar-block .sf-toolbar-icon svg { top: 6px; } .sf-toolbar-block-time .sf-toolbar-icon svg, .sf-toolbar-block-memory .sf-toolbar-icon svg { display: none; } .sf-toolbar-block-time .sf-toolbar-icon svg + span, .sf-toolbar-block-memory .sf-toolbar-icon svg + span { margin-left: 0; } .sf-toolbar-block .sf-toolbar-icon { padding: 0 10px; } .sf-toolbar-block-time .sf-toolbar-icon { padding-right: 5px; } .sf-toolbar-block-memory .sf-toolbar-icon { padding-left: 5px; } .sf-toolbar-block-request .sf-toolbar-icon { padding-left: 0; padding-right: 0; } .sf-toolbar-block-request .sf-toolbar-label { margin-left: 5px; } .sf-toolbar-block-request .sf-toolbar-status + svg { margin-left: 5px; } .sf-toolbar-block-request .sf-toolbar-icon svg + .sf-toolbar-label { margin-left: 0; } .sf-toolbar-block-request .sf-toolbar-label + .sf-toolbar-value { margin-right: 10px; } .sf-toolbar-block-request:hover .sf-toolbar-info { max-width: none; } .sf-toolbar-block .sf-toolbar-info-piece b { font-size: 12px; } .sf-toolbar-block .sf-toolbar-info-piece span { font-size: 13px; } .sf-toolbar-block-right { float: right; margin-left: 0; margin-right: 0; }}@media (min-width: 1024px) { .sf-toolbar-block .sf-toolbar-info-piece-additional, .sf-toolbar-block .sf-toolbar-info-piece-additional-detail { display: inline; } .sf-toolbar-block .sf-toolbar-info-piece-additional:empty, .sf-toolbar-block .sf-toolbar-info-piece-additional-detail:empty { display: none; }}/***** Error Toolbar *****/.sf-error-toolbar .sf-toolbarreset { background: #222; color: #f5f5f5; font: 13px/36px Arial, sans-serif; height: 36px; padding: 0 15px; text-align: left;}.sf-error-toolbar .sf-toolbarreset svg { height: auto;}.sf-error-toolbar .sf-toolbarreset a { color: #99cdd8; margin-left: 5px; text-decoration: underline;}.sf-error-toolbar .sf-toolbarreset a:hover { text-decoration: none;}.sf-error-toolbar .sf-toolbarreset .sf-toolbar-icon { float: left; padding: 5px 0; margin-right: 10px;}/***** Media query print: Do not print the Toolbar. *****/@media print { .sf-toolbar { display: none !important; }}</style><script nonce="81b22f00e818ed934ec47a78a14c87a5">/*<![CDATA[*/ (function () { Sfjs.loadToolbar('ac8d74'); })();/*]]>*/</script> </body> </html>