1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"><html lang="fr" dir="ltr" 2 xmlns="http://www.w3.org/1999/xhtml"> 3 4<head> 5 <title>Nos recherches - IRCM</title> 6 <link rel="alternate" hreflang="fr" href="https://www.ircm.qc.ca/fr/nos-recherches" /> 7<link rel="alternate" hreflang="en" href="https://www.ircm.qc.ca/en/our-research" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 8 <meta name="title" content="Nos recherches - IRCM" /> 9 <meta name="description" content="Explorez les axes de recherche de l'IRCM : cancer, maladies cardiovasculaires, immunologie, neurobiologie, métabolisme et maladies rares." /> 10 <meta name="robots" content="index, follow" /> 11 <meta name="author" content="Institut de recherches cliniques de Montréal (IRCM)" /> 12 <meta name="generator" content="Yapla v6.286.0 - CMS Application" /> 13 <meta property="og:title" content="Nos recherches - IRCM" /> 14 <meta property="og:type" content="article" /> 15 <meta property="og:url" content="https://www.ircm.qc.ca/fr/nos-recherches" /> 16 <meta property="og:image" content="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/event/partage_ircm_fr-1632245490.jpg" /> 17 <meta property="og:site_name" content="Institut de recherches cliniques de Montréal (IRCM)" /> 18 <meta property="og:description" content="Explorez les axes de recherche de l'IRCM : cancer, maladies cardiovasculaires, immunologie, neurobiologie, métabolisme et maladies rares." /> 19 <meta property="fb:page_id" content="Institut de recherches cliniques de Montréal - IRCM" /> 20 <meta name="twitter:account_id" content="https://twitter.com/ircm_mtl" /> 21 <meta name="twitter:title" content="Nos recherches - IRCM" /> 22 <meta name="twitter:card" content="summary_large_image" /> 23 <meta name="twitter:site" content="https://twitter.com/ircm_mtl" /> 24 <meta name="twitter:creator" content="https://twitter.com/ircm_mtl" /> 25 <meta name="twitter:url" content="https://www.ircm.qc.ca/fr/nos-recherches" /> 26 <meta name="twitter:description" content="Explorez les axes de recherche de l'IRCM : cancer, maladies cardiovasculaires, immunologie, neurobiologie, métabolisme et maladies rares." /> 27 <meta name="twitter:image:src" content="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/event/partage_ircm_fr-1632245490.jpg" /> 28
28<script type="module" src="/js/vue/dist/assets/cms-CPsZCM5L.js"></script>
28 29<link rel="stylesheet" href="/js/vue/dist/assets/cms-M9E4N1V4.css" rel="stylesheet" type="text/css"> 30
30<script> 31 document.addEventListener('DOMContentLoaded', function () { 32 memboGo.Web.Consent.gtm({"dataClientLayer":"GTM-PRKHFT3"}); 33 memboGo.Web.Consent.hotjarId = ''; 34 memboGo.Web.Consent.facebookId = '1820086538277422'; 35 memboGo.Web.Consent.init(1, {"consentNotice":{"description":"<p class=\"consent_notice_title_title\">Nous voulons vous proposer la meilleure exp\u00e9rience sur notre site<\/p> Nous utilisons des cookies afin de vous offrir une navigation fluide et agr\u00e9able. Vous avez la possibilit\u00e9 de refuser, accepter ou g\u00e9rer ces pr\u00e9f\u00e9rences en cliquant sur l'un des trois boutons ci-dessous.","learnMore":"Param\u00e9trer les cookies"},"consentModal":{"title":"Param\u00e9trer les cookies","description":"Nous utilisons des cookies afin de vous offrir la meilleure exp\u00e9rience possible. N'h\u00e9sitez pas \u00e0 consulter notre <a href='\/fr\/politique-sur-la-protection-des-renseignements-personnels' target='_blank'>politique de confidentialit\u00e9<\/a> pour en savoir plus.","acceptAll":"Tout accepter","acceptSelected":"Terminer","decline":"Tout refuser"},"Hotjar":{"description":"Enregistrement du parcours de navigation - <a href=\"https:\/\/www.hotjar.com\/legal\/policies\/privacy\/\" target=\"_blank\" style=\"font-size:12px;\">En savoir plus<\/a>"},"Google-Analytics":{"title":"Analytics","description":"Permet d'analyser les statistiques de consultation de notre site - <a href=\"https:\/\/policies.google.com\/privacy?hl=fr#infocollect\" target=\"_blank\" style=\"font-size:12px;\">En savoir plus<\/a>"},"Google-Ads":{"title":"Google-Ads","description":"Analyser la performance des campagnes publicitaires - <a href=\"https:\/\/policies.google.com\/privacy?hl=fr#infocollect\" target=\"_blank\" style=\"font-size:12px;\">En savoir plus<\/a>"},"Amplitude":{"title":"Amplitude","description":"Analyse et mesure les performances du site - <a href=\"https:\/\/amplitude.com\/privacy\" target=\"_blank\" style=\"font-size:12px;\">En savoir plus<\/a>"},"Facebook":{"title":"Facebook Pixel","description":"Identifie les visteurs en provenance de publications Facebook - <a href=\"https:\/\/www.facebook.com\/about\/privacy\" target=\"_blank\" style=\"font-size:12px;\">En savoir plus<\/a>"},"Sentry":{"title":"Sentry","description":"Surveille les erreurs et probl\u00e8mes techniques du site - <a href=\"https:\/\/sentry.io\/privacy\/\" target=\"_blank\" style=\"font-size:12px;\">En savoir plus<\/a>"},"ok":"OK pour moi","acceptAll":"Tout accepter","acceptSelected":"Terminer","decline":"Tout refuser"}, 'fr') 36 }); 37 38 var RGPDContent = {"message":"En poursuivant votre navigation sur ce site, vous reconnaissez avoir pris connaissance de nos conditions d'utilisation et acceptez l\u2019utilisation de cookies ou autres traceurs pour vous proposer une meilleure exp\u00e9rience.","dismiss":"J'ai compris","link":"En savoir plus","href":"\/fr\/method\/ajax-user-consent\/name\/module"}; 39 </script>
39 40 41 <link href="https://cdn.ca.yapla.com/css/loader.css?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa" media="screen" rel="stylesheet" type="text/css" /> 42<link href="https://cdn.ca.yapla.com/css/tips.css?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa" media="screen" rel="stylesheet" type="text/css" /> 43<link href="https://cdn.ca.yapla.com/css/chosen.min.css?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa" media="screen" rel="stylesheet" type="text/css" /> 44<link href="https://fonts.gstatic.com" rel="preconnect" /> 45<link href="https://www.googletagmanager.com" rel="preconnect" /> 46<link href="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/favicon_ircm-1625671011.png" rel="shortcut icon" /> 47<link href="https://cdn.ca.yapla.com/css/bootstrap-cms.css?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa" media="all" rel="stylesheet" type="text/css" /> 48<link href="/templates/cms/00012/css/main.css?v=v6.286.0" media="screen" rel="stylesheet" type="text/css" />
48<script type="text/javascript" src="https://cdn.ca.yapla.com/js/jquery/jquery-1.12.4.min.js?v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 48
48
49<script type="text/javascript" src="https://cdn.ca.yapla.com/js/jquery/jquery-ui-1.13.2.min.js?v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 49
49
50<script type="text/javascript" src="https://cdn.ca.yapla.com/js/membogo/web/frontend.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 50
50
51<script type="text/javascript" src="https://cdn.ca.yapla.com/js/membogo/core.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 51
51
52<script type="application/ld+json"> 53 { 54 "@context": "https://schema.org", 55 "@type": "BreadcrumbList", 56 "itemListElement": [ 57 { 58 "@type": "ListItem", 59 "position": 1, 60 "name": "Recherche", 61 "item": "https://ircm.qc.ca/fr/" 62 }, 63 { 64 "@type": "ListItem", 65 "position": 2, 66 "name": "Nos recherches" 67 } 68 ] 69}</script>
vendor: 1 bytes, line 69
69
70<script type="text/javascript" defer="defer"> 71 //<![CDATA[ 72 $(function(){memboGo.Web.Menu.vertical('.menu-vertical-1904024');}); //]]> 73</script>
vendor: 1 bytes, line 73
73
74<script type="text/javascript" defer="defer"> 75 //<![CDATA[ 76 $(function(){memboGo.Web.Menu.vertical('.menu-vertical-750785');}); //]]> 77</script>
vendor: 1 bytes, line 77
77
78<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/membogo/form/field.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 78
78
79<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/jquery/chosen.jquery.min.js?v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 79
79
80<script type="text/javascript" defer="defer"> 81 //<![CDATA[ 82 var fieldText = {"autocomplete":"Rechercher avec Google Maps","manual":"Saisir l'adresse manuellement"} //]]> 83</script>
vendor: 1 bytes, line 83
83
84<script type="text/javascript" defer="defer"> 85 //<![CDATA[ 86 87var selected_state = ''; 88var local = "fr"; 89var pageId = "49221"; 90var text_edit = 'Ãditer'; 91 //]]> 92</script>
vendor: 1 bytes, line 92
92
93<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/hpjorg/utils.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 93
93
94<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/joomflo/paginator.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 94
94
95<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/joomflo/main.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 95
95
96<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/jquery/chosen.jquery.min.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 96
96
97<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/jquery/jquery.inputmask.bundle.min.js?v=4.0.6&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 97
97
98<script type="text/javascript" defer="defer" src="https://kit.fontawesome.com/1118d2d659.js"></script>
vendor: 1 bytes, line 98
98
99<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/joomflo/bootstrap-cms.min.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 99
99
100<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/joomflo/dest/respond.min.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 100
100
101<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/joomflo/cookieconsent/cookieconsent.min.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 101
101
102<script type="text/javascript" defer="defer" src="https://cdn.ca.yapla.com/js/hpjorg/loader.js?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa"></script>
vendor: 1 bytes, line 102
102
103<script type="text/javascript" defer="defer"> 104 //<![CDATA[ 105 // Add a custom class to all datepicker instances to allow styling 106 const originalAttachMethod = $.datepicker._attachDatepicker; 107 $.datepicker._attachDatepicker = function(target, settings) { 108 originalAttachMethod.call(this, target, settings); 109 this.dpDiv.addClass('yapla-datepicker'); 110 }; 111 112 var baseUrl = "/"; 113 var language = "fr"; 114 $(function() { 115 memboGo.core._lng = 'fr'; 116 memboGo.core.money.format = '0,00Â $'; 117 memboGo.core.googlePlace.key = ''; 118 memboGo.core.datepicker.init({"monthNames":"['Janvier', 'F\u00e9vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'D\u00e9cembre']","monthNamesShort":"['Janvier', 'F\u00e9vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'D\u00e9cembre']","dayNames":"['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']","dayNamesShort":"['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam']","dayNamesMin":"['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam']","dateFormat":"dd-mm-yy","companyCountry":"CA"} ); 119 }); 120 //]]> 121</script>
121 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 122 <meta http-equiv="X-UA-Compatible" content="IE=edge">
122<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:[]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"f76546586f",applicationID:"1038230873",browserID:"1120157852"};;/*! For license information please see nr-loader-rum-1.322.0.min.js.LICENSE.txt */ 123(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),a=0===Object.keys(r).length?e:r;for(let s in a)if(void 0!==e[s])try{if(null===e[s]){r[s]=null;continue}Array.isArray(e[s])&&Array.isArray(t[s])?r[s]=Array.from(new Set([...e[s],...t[s]])):e[s]instanceof Map||e[s]instanceof Set||e[s]instanceof Date||e[s]instanceof RegExp?r[s]=e[s]:"object"==typeof e[s]&&null!==t[s]&&"object"==typeof t[s]?r[s]=i(e[s],t[s]):r[s]=e[s]}catch(e){r[s]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>s});var n=r(384),i=r(8122);const a={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function s(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,a)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["xv",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,a="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),s=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===s?.document?.visibilityState),c=""+s?.location,u=/iPad|iPhone|iPod/.test(s.navigator?.userAgent),d=u&&"undefined"==typeof SharedWorker,l=((()=>{const e=s.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)());r.d(t,["OF",0,u,"RI",0,i,"WN",0,l,"bv",0,a,"gm",0,s,"m",0,c,"mw",0,o,"sb",0,d,"zk",0,()=>{const e=s?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<s.performance.now())return e}])},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>u,x3:()=>c});var n=r(3241),i=r(3606),a=r(860),s=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:a.P3[t]||0};e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&d(e))}function u(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,d(e)}}function d(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const a=e.ee,o=i.i.handlers;if(a&&!a.aborted&&a.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=a.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}
123).forEach(t=>{t[0]?.on&&t[0].context()instanceof s.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}a.isolatedBacklog||delete o[t],a.backlog[t]=null,a.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],a=e[2];n.apply(i,a)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),a=r(2646),s=r(5607);const o="nr@context:".concat(s.W),c=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&u.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,a){!1!==a&&(a=!0);if(c.aborted&&!i)return;t&&a&&t.emit(e,r,n);var o=g(n);m(e).forEach(e=>{e.apply(o,r)});var u=v()[s[e]];u&&u.push([f,e,r,o]);return o},get:h,listeners:m,context:g,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{s[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,o,()=>new a.y(o)):new a.y(o)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,a){a?(a.buffer([e],i),a.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>a});var n=r(9908);a.on=s;var i=a.handlers={};function a(e,t,r,a){s(a||n.d,i,e,t,r)}function s(e,t,r,i,a){a||(a="feature"),e||(e=n.d);var s=t[a]=t[a]||{};(s[r]=s[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function a(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>a,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,a=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const s=[];for(var o=0;o<e;o++)s.push(i(r,a++).toString(16));return s.join("")}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>a});var n=r(944);const i=new Map;function a(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),a=t.includes("nrWrapper");return r||a||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},5289(e,t,r){"use strict";r.d(t,{GG:()=>s,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function a(){return"undefined"==typeof document||"complete"===document.readyState}function s(e,t){if(a())return e();const r=(0,i.J)(e),s=setInterval(()=>
123{a()&&(clearInterval(s),r())},500);(0,n.sp)("load",r,t)}function o(e){if(a())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(a())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>d,dV:()=>u,pV:()=>l});var n=r(6154),i=r(1863),a=r(944),s=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function u(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,s.i)(...Object.values(e.o))),e}function d(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,a.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),u(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>a,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function a(e,t,r){(0,n.sp)("pagehide",e,t,r)}},9300(e,t,r){"use strict";r(860).K7.ajax;r.d(t,["mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>a});var n=r(9566),i=r(1741);class a extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>a});var n=r(944),i=r(4261);class a{#e(e,...t){if(this[e]!==a.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>d});var n=r(3241),i=r(9908),a=r(1863),s=r(944),o=r(3969),c=r(8362),u=r(860);function d(e,t,r,a){const d=a||r;!d||d[e]&&d[e]!==c.d.prototype[e]||(d[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,u.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,s.R)(23,e)}})}function l(e,t,r,n,s){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(s||null===r)&&(0,i.p)("api-"+n,[(0,a.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",a="browser/blobs",s="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},u={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:a,[o.sessionReplay]:a,[o.logging]:s,[o.genericEvents]:"ins"};r.d(t,["$J",0,u,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,s,"df",0,a,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],a=t[n++];r.o(e,i)?0===a&&n++:0===a?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:a})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>"nr-rum-1.322.0.min.js",r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,a,s)=>{if(e[n])return void e[n].push(i);let o,c;if(void 0!==a){const e=document.getElementsByTagName("script");for(var u=0;u<e.length;u++){const r=e[u];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+a){o=r;break}}}if(!o){c=!0;var d={296:"sha512-/59P7qAoMYQDJAZerTRPChdYcdrlcoEAw2TwA1wz6Y0/XLmt3sblL
123I5JCXAuxG0YxsW7iqJzgrcO7NJWO58EfQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+a),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),d[s]&&(o.integrity=d[s])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={374:0,840:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const a=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=a);const s=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(s,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,a,s]=n;var o,c,u=0;if(i.some(t=>0!==e[t])){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(s)s(r)}for(t&&t(n);u<i.length;u++)c=i[u],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),a=r(1741);var s=r(2555),o=r(981);t.K7.genericEvents,o.R.PA,o.R.UA,o.R.BP;const c={RESOURCES:"experimental.resources",REGISTER:"register"};var u=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var l=r(2614),f=r(944),g=r(8122);const p="[data-nr-mask]",m=e=>(0,g.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:u.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(c.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(c.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,f.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(c.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:l.wk,inactiveMs:l.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(p):""===t||null===t?e.mask_selector=p:(0,f.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,f.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,f.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var h=r(6154),v=r(9324);let b=0;const y={buildEnv:"PROD",distMethod:"CDN",version:v.xv,originTime:h.WN},_={consented:!1},w={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||_.consented},set consented(e){_.consented=e}
123,customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++b},listeningForIframeMessages:!1},R="BA";var A=r(7836),x=r(3241);const E={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908);const k="newrelic-iframe-";function T(e,t={},n,o){let{init:c,info:u,loader_config:d,runtime:l={},exposed:f=!0}=t;if(!u){const e=(0,i.pV)();c=e.init,u=e.info,d=e.loader_config}var p;e.init=m(c||{}),e.loader_config=(p=d||{},(0,g.a)(p,E)),u.jsAttributes??={},h.bv&&(u.jsAttributes.isWorker=!0),e.info=(0,s.D)(u);const v=e.init;e.runtime??=(e=>{const t=(0,g.a)(e,w),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:R,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(a.W.prototype).forEach(r=>{const n=a.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=A.ee.get(e.agentIdentifier),e.exposed=f,(0,x.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&h.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(k)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var j=r(1863),P=r(4261),N=r(1738);
123var O=r(1687),M=r(4234),I=r(5289),D=r(7767);function V(e){return!!(0,i.dV)().o.MO&&(0,D.V)(e)&&!0===e?.session_trace.enabled}var W=r(6389),B=r(7699);const C=new WeakSet,K=new WeakMap;class U extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,W.J)(()=>{(0,O.Ak)(e,this.featureName),t()}))}):(0,O.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,s.f)(e.info))return(0,f.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(K.has(e))return K.get(e);const i=(async()=>{if((0,D.V)(e.init))try{const{setupAgentSession:t}=await r.e(296).then(r.bind(r,1768));t(e)}catch(e){(0,f.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(B.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await Promise.resolve().then(function(){const e=new Error("Cannot find module '../../loaders/configure/iframe-message-handler'");throw e.code="MODULE_NOT_FOUND",e});t(e)}catch(e){(0,f.R)(23,e)}const[{Connector:i},{Harvester:a}]=await Promise.all([r.e(296).then(r.bind(r,6589)),r.e(296).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new a(e);const s=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(s.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();K.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,f.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,O.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,f.R)(34,e),this.abortHandler?.(),(0,O.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};h.RI?(0,I.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return V(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!C.has(e)&&(C.add(e),!(0,s.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}T(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var L=r(6630);class F extends U{static featureName=L.T;constructor(e){var t;super(e,L.T),this.setupInspectionEvents(),t=e,(0,N.Y)(P.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+P.Fw,[(0,j.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(296).then(r.bind(r,908)):r.e(296).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,x.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,I.sB)(t=>{e(t,"DOMContentLoaded")}),(0,I.GG)(t=>{e(t,"load")}),(0,I.Qr)(t=>{e(t,"navigate")}),this.ee.on(l.tS.UPDATE,(e,t)=>{(0,x.W)({type:"lifecycle",name:"session",data:t})})}}class G extends e.d{constructor(e){var t;(super(),h.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(F),T(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(P.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,P.cD,n);(0,f.R)(40,typeof r)}else(0,f.R)(39,typeof e)},t),function(e){(0,N.Y)(P.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,f.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,P.Dl,!0)},e)}(this),function(e){(0,N.Y)(P.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,P.nb,!1);(0,f.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(P.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+P.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,f.R)(65,typeof t)},e)}(this),this.run()):(0,f.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};
123return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,f.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,f.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var H=r(2843),z=r(782);class Y extends U{static featureName=z.T;constructor(e){super(e,z.T),h.RI&&((0,H.u)(()=>(0,S.p)("docHidden",[(0,j.t)()],void 0,z.T,this.ee),!0),(0,H.G)(()=>(0,S.p)("winPagehide",[(0,j.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(296).then(r.bind(r,9981))))}}var Z=r(3969);class q extends U{static featureName=Z.TZ;constructor(e){super(e,Z.TZ),this.importAggregator(e,()=>r.e(296).then(r.bind(r,9623)))}}new G({features:[F,Y,q],loaderType:"lite"})})()})();</script>
123 124 <style type="text/css"> 125 @import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700,800,900"); 126 127 :root { 128 --primary: #d53c85; 129 --secondary: #0091d1; 130 --font: 'Roboto'; 131 --g-font: Roboto; 132 --yapla-consent-primary: #d53c85; 133 --yapla-consent-primary-alt: #ab306b; 134 --yapla-consent-secondary: #0091d1; 135 --yapla-consent-secondary-alt: #0074a8; 136 } 137 </style><link id="custom-advanced-css" rel="stylesheet" type="text/css" href="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/8577/assets/css/advanced_custom_css_1778787824.css" media="screen"/><link id="uploaded-advanced-css" rel="stylesheet" type="text/css" href="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/8577/assets/css/main-1764619933_1764619937.css" media="screen"/></head> 138 139<body class="pageid-49221 template-00012 lang-fr default"> 140 <div id="site-wrapper" class=""> 141 <!-- Vue global config --> 142 <div 143 id="vue-config" 144 data-locale="fr_CA" 145 data-google-captcha-site-key="6Ldjx5ccAAAAAAjK8xuaLqnmEaiPbSZlPzejoRbE" 146 ></div> 147 148 <div data-component="cookie-consent" data-props="{}" ></div> <div data-component="floating-elements-queue" data-props="{}" ></div> 149 <div class="site-inner"> 150
150<script id="js-config" type="application/json">{"id":"CPY7p4CO2sE1afW3ImwiLyBND","companyCountry":"CA","companyLocale":"fr_CA","companyCurrency":"cad"}</script>
150 151 152<div class="line site_line__item line-head" data-line-id="129903"><div class="container"><div class="row-fluid row"><div id="ROXVH2ifZjW31lPB99QFNVjL" class=" col-sm-6 zone-25 zone-html" data-zone-alias="Zone 1903181" data-zone-id="1903184"><div class="content"><a href="/fr"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Logos/ircm-logo-fr-renverse-45px.svg" style="width: 300px; height: 42px;" /></a></div></div><div id="adyXZP6g1L5UQS1DWfgmWqle" class=" col-sm-18 zone-75 zone-header" data-zone-alias="Zone 1903461" data-zone-id="1903464"><div class="rf-mod-header-wrapper"> 153 <div class="mod-header-container"> <div class="mod-header-part mod-header-part__right"> 154 <ul class="mod-header mod-header-wrapper"> 155 <li class="header-ext header-ext-custom"><div class="menu-hamburger"><span>.</span> <span>.</span> <span>.</span></div> 156</li> 157 <li class="header-ext header-ext-language"><a class="switch-language" href="/en/our-research">English</a></li> 158 </ul> 159 </div> 160 </div> 161</div></div></div></div></div><div class="line site_line__item line-menu-container " data-line-id="129904"><div class="container"><div class="row-fluid row"><div id="NmfFk2vKaffL3BYEVeJ6uCwo" class=" col-sm-8 zone-33 zone-html" data-zone-alias="Zone 1903741" data-zone-id="1903744"><div class="content"><div class="menu-hamburger"><span>.</span> <span>.</span></div> 162</div></div><div id="DiDWQpJexoryDH9eqJinpq5d" class=" col-sm-8 zone-33 zone-menu" data-zone-alias="Zone 1904021" data-zone-id="1904024"><div class="navbar hidden-print"> 163 <div id="mainMenu" class=""> 164 <ul class="nav nav-stacked menu-vertical-items menu-vertical-1904024"> 165 <li rel="data-menu-49220" class="menu-type-page" data-menu-id="49220"><a href="/fr/" class="child-link">Recherche</a><a id="dropdown49220" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49220"><li rel="data-children-49221" class="menu-type-page" data-menu-id="49221"><a href="/fr/nos-recherches">Nos recherches</a></li><li rel="data-children-120293" class="menu-type-external" data-menu-id="120293"><a href="https://www.ircm.qc.ca/fr/chercheurs?filter[2798811]=938322&filter[activetab]=formbuilder">Chercheurs et chercheuses</a></li><li rel="data-children-135125" class="menu-type-page" data-menu-id="135125"><a href="/fr/valorisation-de-la-recherche">Valorisation de la recherche</a></li><li rel="data-children-49225" class="menu-type-page" data-menu-id="49225"><a href="/fr/integrite-scientifique">Intégrité scientifique</a></li><li rel="data-children-147838" class="menu-type-page" data-menu-id="147838"><a href="/fr/chaires-philantropiques">Chaires philanthropiques</a></li></ul></li><li rel="data-menu-49227" class="menu-type-separator" data-menu-id="49227"><a href="javascript:void(0);" class="child-link">Plateformes</a><a id="dropdown49227" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49227"><li rel="data-children-84410" class="menu-type-page" data-menu-id="84410"><a href="/fr/nos-plateformes">Nos plateformes</a></li><li rel="data-children-49230" class="menu-type-page" data-menu-id="49230"><a href="/fr/animalerie-et-sante-animale">Animalerie et santé animale</a></li><li rel="data-children-49231" class="menu-type-page" data-menu-id="49231"><a href="/fr/bio-informatique">Bio-informatique</a></li><li rel="data-children-54244" class="menu-type-page" data-menu-id="54244"><a href="/fr/biologie-moleculaire-et-genomique-fonctionnelle">Biologie moléculaire et génomique fonctionnelle</a></li><li rel="data-children-49234" class="menu-type-page" data-menu-id="49234"><a href="/fr/cytometrie-en-flux">Cytométrie en flux</a></li><li rel="data-children-78363" class="menu-type-page" data-menu-id="78363"><a href="/fr/modelisation-des-maladies-et-edition-du-genome">Modélisation des maladies et édition du génome</a></li><li rel="data-children-49239" class="menu-type-page" data-menu-id="49239"><a href="/fr/microscopie-et-imagerie">Microscopie et imagerie</a></li><li rel="data-children-49240" class="menu-type-page" data-menu-id="49240"><a href="/fr/spectrometrie-de-masse-et-proteomique">Spectrométrie de masse et protéomique</a></li><li rel="data-children-57999" class="menu-type-page" data-menu-id="57999">
165<a href="/fr/plateforme-de-recherche-en-obesite-metabolisme-et-diabete">Plateforme de recherche en obésité, métabolisme et diabète</a></li></ul></li><li rel="data-menu-49243" class="menu-type-separator" data-menu-id="49243"><a href="javascript:void(0);" class="child-link">Formation</a><a id="dropdown49243" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49243"><li rel="data-children-49245" class="menu-type-page" data-menu-id="49245"><a href="/fr/lexperience-ircm">Lâexpérience IRCM</a></li><li rel="data-children-49246" class="menu-type-page" data-menu-id="49246"><a href="/fr/stages-au-premier-cycle">Stages au premier cycle</a></li><li rel="data-children-110231" class="menu-type-page" data-menu-id="110231"><a href="/fr/etudes">Ãtudes supérieures</a></li><li rel="data-children-49252" class="menu-type-page" data-menu-id="49252"><a href="/fr/formation-post-doctorale">Formation postdoctorale</a></li><li rel="data-children-49254" class="menu-type-page" data-menu-id="49254"><a href="/fr/etudiants-etrangers">Ãtudiants Internationaux</a></li><li rel="data-children-141343" class="menu-type-page" data-menu-id="141343"><a href="/fr/sciencepop">Science POP 2025-2026</a></li><li rel="data-children-49256" class="menu-type-page" data-menu-id="49256"><a href="/fr/vie-etudiante">Vie étudiante</a></li></ul></li><li rel="data-menu-102947" class="menu-type-page" data-menu-id="102947"><a href="/fr/evenements">Ãvènements</a></li><li rel="data-menu-49226" class="menu-type-separator" data-menu-id="49226"><a href="javascript:void(0);" class="child-link">Institut</a><a id="dropdown49226" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49226"><li rel="data-children-49238" class="menu-type-page" data-menu-id="49238"><a href="/fr/gouvernance">Gouvernance</a></li><li rel="data-children-49241" class="menu-type-page" data-menu-id="49241"><a href="/fr/comite-de-direction">Comité de direction</a></li><li rel="data-children-86444" class="menu-type-page" data-menu-id="86444"><a href="/fr/comite-scientifique-consultatif">Comité scientifique consultatif</a></li><li rel="data-children-74917" class="menu-type-page" data-menu-id="74917"><a href="/fr/ombudsman">Ombudsman</a></li><li rel="data-children-96272" class="menu-type-page" data-menu-id="96272"><a href="/fr/salle-de-presse">Salle de presse</a></li><li rel="data-children-49259" class="menu-type-page" data-menu-id="49259"><a href="/fr/rapports-annuels">Rapports annuels</a></li></ul></li><li rel="data-menu-49261" class="menu-type-separator" data-menu-id="49261"><a href="javascript:void(0);" class="child-link">La Clinique</a><a id="dropdown49261" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49261"><li rel="data-children-50260" class="menu-type-page" data-menu-id="50260"><a href="/fr/la-clinique-de-lircm">La Clinique de lâIRCM</a></li><li rel="data-children-103177" class="menu-type-page" data-menu-id="103177"><a href="/fr/ressources-en-sante">Ressources en santé</a></li><li rel="data-children-49266" class="menu-type-page" data-menu-id="49266"><a href="/fr/contacter-la-clinique">Joindre la Clinique</a></li><li rel="data-children-146910" class="menu-type-page" data-menu-id="146910"><a href="/fr/nos-etudes-cliniques">Nos études cliniques</a></li></ul></li><li rel="data-menu-49283" class="menu-type-external" data-menu-id="49283"><a href="https://fondation-de-lircm.s1.yapla.com/fr/faire-un-don-en-ligne" target="_blank">Soutenir la Fondation</a></li><li rel="data-menu-49265" class="menu-type-page" data-menu-id="49265"><a href="/fr/actualites">Actualités</a></li><li rel="data-menu-146858" class="menu-type-separator" data-menu-id="146858"><a href="javascript:void(0);" class="child-link">à propos</a><a id="dropdown146858" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown146858"><li rel="data-children-49229" class="menu-type-page" data-menu-id="49229"><a href="/fr/mot-du-president">Mot du président</a></li><li rel="data-children-49232" class="menu-type-page" data-menu-id="49232"><a href="/fr/notre-impact">Notre impact</a></li><li rel="data-children-49236" class="menu-type-page" data-menu-id="49236"><a href="/fr/notre-heritage">Notre héritage</a></li><li rel="data-children-49247" class="menu-type-page" data-menu-id="49247"><a href="/fr/prix-de-lircm">Reconnaissances et prix</a></li></ul></li><li rel="data-menu-49275" class="menu-type-page" data-menu-id="49275"><a href="/fr/nous-joindre">Nous joindre</a></li><li rel="data-menu-49264" class="menu-type-separator" data-menu-id="49264"><a href="javascript:void(0);" class="child-link">Carrières</a><a id="dropdown49264" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49264"><li rel="data-children-49272" class="menu-type-page" data-menu-id="49272"><a href="/fr/la-vie-a-lircm">La vie à lâIRCM</a></li><li rel="data-children-138536" class="menu-type-page" data-menu-id="138536"><a href="/fr/opportunites">Opportunités</a></li></ul></li><li rel="data-menu-49280" class="menu-type-page" data-menu-id="49280"><a href="/fr/intranet">Connexion</a></li><li rel="data-menu-49366" class="menu-type-page" data-menu-id="49366"><a href="/fr/infolettre">Infolettre</a></li><li rel="data-menu-50224" class="menu-type-external" data-menu-id="50224"><a href="https://languageswitch">English</a></li>
165 </ul> 166 </div> 167</div></div><div id="GYd4EbjJtgMbqn7NKcaIc5lA" class=" col-sm-8 zone-33 zone-header" data-zone-alias="Zone 1904301" data-zone-id="1904304"><div class="rf-mod-header-wrapper"> 168 <div class="mod-header-container"> <div class="mod-header-part mod-header-part__right"> 169 <ul class="mod-header mod-header-wrapper"> 170 <li class="header-ext header-ext-custom"><a class="fondation-btn" href="https://fondation-de-lircm.s1.yapla.com/fr/faire-un-don-en-ligne" target="_blank"><span>Soutenir la Fondation</span></a> 171<ul class="social"> 172 <li class="white"><a class="search" href="/fr/rechercher"> </a></li> 173 <li class="white"><a class="linkedin" href="https://www.linkedin.com/company/ircm/" target="blank"> </a></li> 174 <li class="white"><a class="facebook" href="https://www.facebook.com/IRCM.Montreal/" target="_blank"> </a></li> 175 <li class="white"><a class="youtube" href="https://www.youtube.com/channel/UCd5RrcOYlEHr3WJZtZX-x3A" target="_blank"> </a></li> 176 <li class="white"><a class="bluesky" href="https://bsky.app/profile/ircm.bsky.social" target="blank"> </a></li> 177 <li class="white"><a class="instagram" href="https://www.instagram.com/ircm_mtl/" target="_blank"> </a></li> 178</ul> 179</li> 180 <li class="header-ext header-ext-login"><a class="member-login btn" href="https://www.ircm.qc.ca/fr/intranet/authentication#login_content_box">Connexion</a><style>@media(max-width:767px){.site-inner{padding-bottom:34px;}}</style></li> 181 <li class="header-ext header-ext-language"><a class="switch-language" href="/en/our-research">English</a></li> 182 </ul> 183 </div> 184 </div> 185</div></div></div></div></div><div class="line site_line__item line-header displaynone" data-line-id="88762"><div class="container"><div class="row-fluid row"><div id="sBQuJQ1J9Ph3BYqAlirnvWWp" class=" col-sm-24 zone-100 zone-header" data-zone-alias="Header" data-zone-id="749768"><div class="rf-mod-header-wrapper"> 186 <div class="mod-header-container"> <div class="mod-header-part mod-header-part__right"> 187 <ul class="mod-header mod-header-wrapper"> 188 <li class="header-ext header-ext-custom"><ul class="social"> 189 <li class="white"><a class="search" href="/fr/rechercher"> </a></li> 190 <li class="white"><a class="instagram" href="https://www.instagram.com/ircm_mtl/" target="_blank"> </a></li> 191 <li class="white"><a class="facebook" href="https://www.facebook.com/IRCM.Montreal/" target="_blank"> </a></li> 192 <li class="white"><a class="youtube" href="https://www.youtube.com/channel/UCd5RrcOYlEHr3WJZtZX-x3A" target="_blank"> </a></li> 193 <li class="white"><a class="twitter" href="https://twitter.com/ircm_mtl" target="blank"> </a></li> 194 <li class="white"><a class="linkedin" href="https://www.linkedin.com/company/ircm/" target="blank"> </a></li> 195</ul> 196 197<p class="custom-links"><a href="/fr/la-vie-a-lircm">Carrières</a> <span>•</span> <a href="/fr/actualites">Actualités</a> <span>•</span> <a href="/fr/nous-joindre">Nous joindre</a> <span>•</span> </p> 198</li> 199 <li class="header-ext header-ext-login"><a class="member-login btn" href="https://www.ircm.qc.ca/fr/intranet/authentication#login_content_box">Connexion</a><style>@media(max-width:767px){.site-inner{padding-bottom:34px;}}</style></li> 200 <li class="header-ext header-ext-social-links"> <div class="mod-social-links"> 201 <a class="social-link facebook" href="https://www.facebook.com/IRCM.Montreal/" target="_blank"> 202 <span class="icon-facebook fab fa-facebook"><span class="sr-only">facebook</span></span> </a> 203 <a class="social-link x-twitter" href="https://twitter.com/ircm_mtl" target="_blank"> 204 <span class="icon-x-twitter fab fa-x-twitter"><span class="sr-only">x-twitter</span></span> </a> 205 <a class="social-link linkedin" href="https://www.linkedin.com/company/ircm/" target="_blank"> 206 <span class="icon-linkedin fab fa-linkedin"><span class="sr-only">linkedin</span></span> </a> 207 <a class="social-link youtube" href="https://www.youtube.com/channel/UCd5RrcOYlEHr3WJZtZX-x3A" target="_blank"> 208 <span class="icon-youtube fab fa-youtube"><span class="sr-only">youtube</span></span> </a> 209 <a class="social-link instagram" href="https://www.instagram.com/ircm_mtl/" target="_blank"> 210 <span class="icon-instagram fab fa-instagram"><span class="sr-only">instagram</span></span> </a> 211 </div> 212</li> 213 <li class="header-ext header-ext-language"><a class="switch-language" href="/en/our-research">English</a></li> 214 </ul> 215 </div> 216 </div> 217</div></div></div></div></div><div class="line site_line__item line-menu darkgrey" data-line-id="89446"><div class="container"><div class="row-fluid row"><div id="m9DGdYRScXFuAVMHI2bnia7P" class=" col-sm-8 zone-33 zone-html" data-zone-alias="Logo" data-zone-id="750720"><div class="content"><a class="dark" href="/"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Logos/Logo_IRCM_Sticky_FR.svg" /> </a> <a class="light" href="/"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Logos/Logo_IRCM_Header_FR.svg" /></a></div></div><div id="GVqLJWdWLcvasBG3UBAtTUn4" class=" col-sm-16 zone-67 zone-menu" data-zone-alias="Menu" data-zone-id="750785"><div class="navbar navbar-default hidden-print"> 218 <div class="navbar-header"> 219 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mainMenu" 220 aria-expanded="false"> 221 <span class="sr-only"></span> 222 <span class="icon-bar"></span> 223 <span class="icon-bar"></span> 224 <span class="icon-bar"></span> 225 </button> 226 </div> 227 <div class="collapse navbar-collapse" id="mainMenu"> 228 <ul class="nav navbar-nav menu-vertical-items menu-vertical-750785"> 229 <li rel="data-menu-49220" class="menu-type-page" data-menu-id="49220"><a href="/fr/" class="child-link">Recherche</a><a id="dropdown49220" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49220"><li rel="data-children-49221" class="menu-type-page" data-menu-id="49221"><a href="/fr/nos-recherches">Nos recherches</a></li><li rel="data-children-120293" class="menu-type-external" data-menu-id="120293"><a href="https://www.ircm.qc.ca/fr/chercheurs?filter[2798811]=938322&filter[activetab]=formbuilder">Chercheurs et chercheuses</a></li><li rel="data-children-135125" class="menu-type-page" data-menu-id="135125"><a href="/fr/valorisation-de-la-recherche">Valorisation de la recherche</a></li><li rel="data-children-49225" class="menu-type-page" data-menu-id="49225"><a href="/fr/integrite-scientifique">Intégrité scientifique</a></li><li rel="data-children-147838" class="menu-type-page" data-menu-id="147838"><a href="/fr/chaires-philantropiques">Chaires philanthropiques</a></li></ul></li><li rel="data-menu-49227" class="menu-type-separator" data-menu-id="49227"><a href="javascript:void(0);" class="child-link">Plateformes</a><a id="dropdown49227" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49227">
229<li rel="data-children-84410" class="menu-type-page" data-menu-id="84410"><a href="/fr/nos-plateformes">Nos plateformes</a></li><li rel="data-children-49230" class="menu-type-page" data-menu-id="49230"><a href="/fr/animalerie-et-sante-animale">Animalerie et santé animale</a></li><li rel="data-children-49231" class="menu-type-page" data-menu-id="49231"><a href="/fr/bio-informatique">Bio-informatique</a></li><li rel="data-children-54244" class="menu-type-page" data-menu-id="54244"><a href="/fr/biologie-moleculaire-et-genomique-fonctionnelle">Biologie moléculaire et génomique fonctionnelle</a></li><li rel="data-children-49234" class="menu-type-page" data-menu-id="49234"><a href="/fr/cytometrie-en-flux">Cytométrie en flux</a></li><li rel="data-children-78363" class="menu-type-page" data-menu-id="78363"><a href="/fr/modelisation-des-maladies-et-edition-du-genome">Modélisation des maladies et édition du génome</a></li><li rel="data-children-49239" class="menu-type-page" data-menu-id="49239"><a href="/fr/microscopie-et-imagerie">Microscopie et imagerie</a></li><li rel="data-children-49240" class="menu-type-page" data-menu-id="49240"><a href="/fr/spectrometrie-de-masse-et-proteomique">Spectrométrie de masse et protéomique</a></li><li rel="data-children-57999" class="menu-type-page" data-menu-id="57999"><a href="/fr/plateforme-de-recherche-en-obesite-metabolisme-et-diabete">Plateforme de recherche en obésité, métabolisme et diabète</a></li></ul></li><li rel="data-menu-49243" class="menu-type-separator" data-menu-id="49243"><a href="javascript:void(0);" class="child-link">Formation</a><a id="dropdown49243" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49243"><li rel="data-children-49245" class="menu-type-page" data-menu-id="49245"><a href="/fr/lexperience-ircm">Lâexpérience IRCM</a></li><li rel="data-children-49246" class="menu-type-page" data-menu-id="49246"><a href="/fr/stages-au-premier-cycle">Stages au premier cycle</a></li><li rel="data-children-110231" class="menu-type-page" data-menu-id="110231"><a href="/fr/etudes">Ãtudes supérieures</a></li><li rel="data-children-49252" class="menu-type-page" data-menu-id="49252"><a href="/fr/formation-post-doctorale">Formation postdoctorale</a></li><li rel="data-children-49254" class="menu-type-page" data-menu-id="49254"><a href="/fr/etudiants-etrangers">Ãtudiants Internationaux</a></li><li rel="data-children-141343" class="menu-type-page" data-menu-id="141343"><a href="/fr/sciencepop">Science POP 2025-2026</a></li><li rel="data-children-49256" class="menu-type-page" data-menu-id="49256"><a href="/fr/vie-etudiante">Vie étudiante</a></li></ul></li><li rel="data-menu-102947" class="menu-type-page" data-menu-id="102947"><a href="/fr/evenements">Ãvènements</a></li><li rel="data-menu-49226" class="menu-type-separator" data-menu-id="49226"><a href="javascript:void(0);" class="child-link">Institut</a><a id="dropdown49226" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49226"><li rel="data-children-49238" class="menu-type-page" data-menu-id="49238"><a href="/fr/gouvernance">Gouvernance</a></li><li rel="data-children-49241" class="menu-type-page" data-menu-id="49241"><a href="/fr/comite-de-direction">Comité de direction</a></li><li rel="data-children-86444" class="menu-type-page" data-menu-id="86444"><a href="/fr/comite-scientifique-consultatif">Comité scientifique consultatif</a></li><li rel="data-children-74917" class="menu-type-page" data-menu-id="74917"><a href="/fr/ombudsman">Ombudsman</a></li><li rel="data-children-96272" class="menu-type-page" data-menu-id="96272"><a href="/fr/salle-de-presse">Salle de presse</a></li><li rel="data-children-49259" class="menu-type-page" data-menu-id="49259"><a href="/fr/rapports-annuels">Rapports annuels</a></li></ul></li><li rel="data-menu-49261" class="menu-type-separator" data-menu-id="49261"><a href="javascript:void(0);" class="child-link">La Clinique</a><a id="dropdown49261" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49261"><li rel="data-children-50260" class="menu-type-page" data-menu-id="50260"><a href="/fr/la-clinique-de-lircm">La Clinique de lâIRCM</a></li><li rel="data-children-103177" class="menu-type-page" data-menu-id="103177"><a href="/fr/ressources-en-sante">Ressources en santé</a></li><li rel="data-children-49266" class="menu-type-page" data-menu-id="49266"><a href="/fr/contacter-la-clinique">Joindre la Clinique</a></li><li rel="data-children-146910" class="menu-type-page" data-menu-id="146910"><a href="/fr/nos-etudes-cliniques">Nos études cliniques</a></li></ul></li><li rel="data-menu-49283" class="menu-type-external" data-menu-id="49283"><a href="https://fondation-de-lircm.s1.yapla.com/fr/faire-un-don-en-ligne" target="_blank">Soutenir la Fondation</a></li><li rel="data-menu-49265" class="menu-type-page" data-menu-id="49265"><a href="/fr/actualites">Actualités</a></li><li rel="data-menu-146858" class="menu-type-separator" data-menu-id="146858"><a href="javascript:void(0);" class="child-link">à propos</a><a id="dropdown146858" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown146858"><li rel="data-children-49229" class="menu-type-page" data-menu-id="49229"><a href="/fr/mot-du-president">Mot du président</a></li><li rel="data-children-49232" class="menu-type-page" data-menu-id="49232"><a href="/fr/notre-impact">Notre impact</a></li><li rel="data-children-49236" class="menu-type-page" data-menu-id="49236"><a href="/fr/notre-heritage">Notre héritage</a></li><li rel="data-children-49247" class="menu-type-page" data-menu-id="49247"><a href="/fr/prix-de-lircm">Reconnaissances et prix</a></li></ul></li><li rel="data-menu-49275" class="menu-type-page" data-menu-id="49275"><a href="/fr/nous-joindre">Nous joindre</a></li><li rel="data-menu-49264" class="menu-type-separator" data-menu-id="49264"><a href="javascript:void(0);" class="child-link">Carrières</a><a id="dropdown49264" class="dropdown-toggle" data-toggle="dropdown" data-expanded="true"><span class="caret"></span></a><ul class="dropdown-menu dropdown-menu-level-2" aria-labelledby="dropdown49264"><li rel="data-children-49272" class="menu-type-page" data-menu-id="49272"><a href="/fr/la-vie-a-lircm">La vie à lâIRCM</a></li><li rel="data-children-138536" class="menu-type-page" data-menu-id="138536"><a href="/fr/opportunites">Opportunités</a></li></ul></li><li rel="data-menu-49280" class="menu-type-page" data-menu-id="49280"><a href="/fr/intranet">Connexion</a></li><li rel="data-menu-49366" class="menu-type-page" data-menu-id="49366"><a href="/fr/infolettre">Infolettre</a></li><li rel="data-menu-50224" class="menu-type-external" data-menu-id="50224"><a href="https://languageswitch">English</a></li>
229 </ul> 230 </div></div></div></div></div></div><div class="line site_line__item line-breadcrumbs" data-line-id="90504"><div class="container"><div class="row-fluid row"><div id="DxwZHEHhhAvvb1OGbXfaevqN" class=" col-sm-24 zone-100 zone-breadcrumbs" data-zone-alias="Fil d'Ariane" data-zone-id="778346"><ul class="breadcrumb"> <li><a href="/fr/accueil" class="pathway">Accueil</a></li> <li><a href="/fr/" class="pathway">Recherche</a></li><li class="active"><span>Nos recherches</span></li></ul> 231</div></div></div></div><div class="line site_line__item line-banner darkbackground" data-line-id="89731"><div class="container-fluid"><div class="row-fluid row"><div id="DXnoGaaEQW41wbzg36o3oN7x" class=" col-sm-24 zone-100 zone-banner" data-zone-alias="Bannière page" data-zone-id="758184"><div class="mod-banner__wrapper"> 232 <div class="mod-banner__img" style="background-image: url(https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/module/banner/ircm_banniere-sujet-1626380886.jpg);"> 233 <div class="mod-banner__content"><h1>Nos recherches</h1> 234</div> 235 </div> 236</div></div></div></div></div><div class="line site_line__item smallpadding cols-lined-absolute mobilemargin darkbackground" style="background-color:#21242F" data-line-id="90343"><div class="container"><div class="row-fluid row"><div id="zFcTOOwOVJ5tfOoSDgnNRTDw" class=" col-sm-12 zone-50 zone-html" data-zone-alias="Zone 774277" data-zone-id="774280"><div class="content"><h2>La recherche<br /> 237inspirée par la vie</h2> 238</div></div><div id="F99leKfhEsXWmypj5WR9SQkJ" class=" col-sm-12 zone-50 zone-html" data-zone-alias="Zone 774345" data-zone-id="774348"><div class="content"><p class="p-large">à l’origine de toute grande découverte, il y a la recherche. Les chercheuses et chercheurs de l’IRCM scrutent et observent le fondement même de la vie pour mieux comprendre les maladies. L’amélioration de la vie nous inspire et nous donne le courage de voir chaque défi comme le point de départ d’une aventure qui mène à un nouveau traitement.</p> 239</div></div></div></div></div><div class="line site_line__item darkbackground" style="background-color:#21242F" data-line-id="93506"><div class="container"><div class="row-fluid row"><div id="iQCuLelksA8dcGdhjPRAH8v5" class=" col-sm-24 zone-100 zone-html" data-zone-alias="Zone 879470" data-zone-id="879473"><div class="content"><h2 class="extra">Comprendre<span style="color:#0091d1;">.</span><br /> 240Diagnostiquer<span style="color:#0091d1;">.</span><br /> 241Traiter<span style="color:#0091d1;">.</span></h2> 242</div></div></div></div></div><div class="line site_line__item smallpaddingtop darkbackground" style="background-color:#21242F" data-line-id="89466"><div class="container"><div class="row-fluid row"><div id="0rZ9SrE8ixpMaTGKw9Ah3BaS" class=" col-sm-24 zone-100 zone-html" data-zone-alias="Zone 751582" data-zone-id="751585"><div class="content"><h3 class="h2" style="text-align: right;">Les maladies qui<br /> 243font l’objet de nos<br /> 244recherches</h3> 245</div></div></div></div></div><div class="line site_line__item section-imgtext-subject mobile-imgmarginbottom row-lined-absolute xsmallpadding darkbackground blue" style="background-color:#21242F" data-line-id="89467"><div class="container"><div class="row-fluid row"><div id="MKLuAw9whnlVcagiJ8j6qsfe" class=" col-sm-12 zone-50 zone-image" data-zone-alias="Zone 751647" data-zone-id="751650"><div class="content" align="center"><img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/8577/48315/images/ircm_maladies-metaboliques-2x-1629743089.jpg" alt="" width=""></div></div><div id="yof4I4P1PZ6ekSx5sArk3dns" class=" col-sm-12 zone-50 zone-html" data-zone-alias="Zone 751712" data-zone-id="751715"><div class="content"><h3>Centre de recherche en santé cardiométabolique</h3> 246 247<p><u>Co-responsables : Jennifer Estall et May Faraj</u></p> 248 249<p>Les maladies cardiométaboliques toucheront le tiers de la population au cours de leur vie, plus particulièrement les personnes en surpoids. Le diabète, les maladies cardiovasculaires et la maladie du foie gras, entre autres, ont des conséquences importantes sur la qualité et l’espérance de vie des personnes qui en souffrent, en plus de représenter un fardeau financier pour le système de santé. Le processus de détérioration de la santé cardiométabolique et les complications qui s’ensuivent n’ont pas encore été entièrement élucidés. Le Centre de recherche en santé cardiométabolique regroupe l’expertise de chercheurs en biochimie, en biologie cellulaire, en génétique, en nutrition, en physiologie et en médecine, permettant ainsi une approche interdisciplinaire. Par le maillage de la recherche fondamentale, translationnelle et
249clinique, nous travaillons à découvrir de nouveaux outils permettant de maintenir la santé cardiométabolique, à identifier des facteurs engendrant sa détérioration et à développer de nouvelles thérapies. Ces efforts sont essentiels pour la prévention, le dépistage précoce, le traitement efficace et la gestion des maladies cardiométaboliques, de même que pour l’amélioration de la qualité de vie des personnes qui en souffrent et de leur famille.</p> 250 251<p><a class="btn btn-secondary" href="https://www.ircm.qc.ca/fr/chercheurs?filter[1215464]=29762&filter[activetab]=formbuilder">Découvrez les chercheuses et chercheurs de ce centre</a></p> 252</div></div></div></div></div><div class="line site_line__item section-imgtext-subject mobile-imgmarginbottom row-lined-absolute xsmallpaddingbottom darkbackground blue" style="background-color:#21242F" data-line-id="90818"><div class="container"><div class="row-fluid row"><div id="y4jNclbrs6BF0CJeGKAcTqD4" class=" col-sm-12 zone-50 zone-image" data-zone-alias="Zone 786296" data-zone-id="786299"><div class="content" align="center"><img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/8577/48315/images/ircm_cancer-2x-1629743607.jpg" alt="" width=""></div></div><div id="RKSnHAiGKlB83p33vooOwlu9" class=" col-sm-12 zone-50 zone-html" data-zone-alias="Zone 786365" data-zone-id="786368"><div class="content"><h3>Centre de recherche en cancer</h3> 253 254<p><u>Co-responsables : Jean-François Côté et Frédéric Charron</u></p> 255 256<p>Près de la moitié des citoyens canadiens recevront un diagnostic de cancer au cours de leur vie, et environ le quart en mourront. Trop de nos proches devront faire face à cette épreuve difficile. Malgré les avancées extraordinaires réalisées au cours des dernières années pour traiter cette maladie, il n’existe toujours pas d’approche globale permettant de prévenir le développement et la récurrence des cancers de tous genres. La mission du Centre de recherche en cancer est de mieux comprendre les mécanismes moléculaires et cellulaires sous-jacents à plusieurs cancers, dans l’espoir que ces connaissances mèneront au développement de nouvelles approches thérapeutiques tant attendues. Nos experts contribuent ainsi à la lutte contre de nombreux cancers répandus, tels que le cancer du cerveau chez l’enfant, le cancer du sein, les lymphomes et les leucémies.</p> 257 258<p><a class="btn btn-secondary" href="https://www.ircm.qc.ca/fr/chercheurs?filter[1215464]=29759&filter[activetab]=formbuilder">Découvrez les chercheuses et chercheurs de ce centre</a></p> 259</div></div></div></div></div><div class="line site_line__item section-imgtext-subject mobile-imgmarginbottom row-lined-absolute xsmallpaddingbottom darkbackground blue" style="background-color:#21242F" data-line-id="89470"><div class="container"><div class="row-fluid row"><div id="AnRmVttraZgX0Q0boKfCTKeF" class=" col-sm-12 zone-50 zone-image" data-zone-alias="Zone 751907" data-zone-id="751910"><div class="content" align="center"><img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/8577/48315/images/ircm_maladies-genetiques-2x-1629743875.jpg" alt="" width=""></div></div><div id="Mnf0tiwXqRsb7mEc8L1GtFPe" class=" col-sm-12 zone-50 zone-html" data-zone-alias="Zone 751972" data-zone-id="751975"><div class="content"><h3>Centre de recherche sur les maladies génétiques et neurologiques</h3> 260 261<p><u>Co-responsables : Marie Kmita et Jacques Drouin</u></p> 262 263<p>De nombreuses maladies et malformations développementales sont causées par des erreurs dans le code génétique. Cependant, les mécanismes par lesquels ces erreurs se manifestent en pathologies demeurent mal connus. Grâce aux percées récentes en biologie moléculaire, il est de plus en plus réaliste d’entrevoir le développement de thérapies pour corriger ces erreurs génétiques. Pour y parvenir, les scientifiques du Centre de recherche sur les maladies génétiques et neurologiques Åuvrent à comprendre le fonctionnement et la régulation des gènes dans les cellules saines, ainsi que comment le dysfonctionnement de ces processus peut mener à diverses pathologies. Alors que les travaux de certains chercheurs du Centre mettent l’emphase sur l’origine des maladies neurologiques et neurodégénératives et sur la conception de traitements novateurs, d’autres ciblent les malformations congénitales qui surviennent lors du développement fÅtal, causées par des mutations génétiques ou un contrôle défectueux dans la régulation de l’activité des gènes.</p> 264 265<p><a class="btn btn-secondary" href="https://www.ircm.qc.ca/fr/chercheurs?filter[1215464]=29761&filter[activetab]=formbuilder">Découvrez les chercheuses et chercheurs de ce centre</a></p> 266</div></div></div></div></div><div class="line site_line__item section-imgtext-subject mobile-imgmarginbottom row-lined-absolute xsmallpaddingbottom darkbackground blue" style="background-color:#21242F" data-line-id="90819"><div class="container"><div class="row-fluid row"><div id="z29qP2BFNfoHmkipQFRKDwaP" class=" col-sm-12 zone-50 zone-image" data-zone-alias="Zone 786434" data-zone-id="786437"><div class="content" align="center"><img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/8577/48315/images/ircm_immunodeficie
266nces-2x-1629744044.jpg" alt="" width=""></div></div><div id="2OYBsOjf4tZUBxkjVFaaZfgV" class=" col-sm-12 zone-50 zone-html" data-zone-alias="Zone 786503" data-zone-id="786506"><div class="content"><h3>Centre de recherche en immunité, inflammation et maladies infectieuses</h3> 267 268<p><u>Co-responsables : Javier Di Noia et Woong-Kyung Suh</u></p> 269 270<p>Le Centre « 3i » réunit des experts en recherche fondamentale et des médecins cliniciens spécialisés en immunité, en inflammation, en microbiologie et en maladies infectieuses. Sa mission est d’approfondir nos connaissances sur le fonctionnement du système immunitaire, d’élucider les mécanismes pathogéniques des maladies immunes et de développer de nouvelles méthodes permettant d’altérer ou exploiter le système immunitaire dans la lutte contre les immunodéficiences, les maladies autoimmunes, les maladies intestinales inflammatoires, les maladies métaboliques, les infections et les cancers. Nous utilisons des approches à la fine pointe de la technologie en génétique, en génomique, en protéomique, en biologie cellulaire, ainsi que des modèles expérimentaux de maladies, qui bénéficient d’échanges et de collaborations avec la Clinique d’immunodéficience primaire à l’IRCM. Nos études portent notamment sur les cancers qui sont causés par des cellules immunitaires, tels que les lymphomes et les leucémies, sur l’impact du microbiome et de la nutrition sur l’inflammation et les réponses immunitaires, et sur la pathophysiologie derrière les infections virales et les conditions qui s’ensuivent. Bien que basé à l’IRCM, le Centre 3i collabore avec des chercheurs de diverses institutions de la grande région métropolitaine, ainsi qu’à travers le Canada et le monde. </p> 271 272<p><a class="btn btn-secondary" href="https://www.ircm.qc.ca/fr/chercheurs?filter[1215464]=29760&filter[activetab]=formbuilder">Découvrez les chercheuses et chercheurs de ce centre</a></p> 273</div></div></div></div></div><div class="line site_line__item smallpaddingtop xsmallpaddingbottom row75 displaynone" data-line-id="89471"><div class="container"><div class="row-fluid row"><div id="A8uBrdDxzMuw0N9JV610AXbO" class=" col-sm-24 zone-100 zone-html" data-zone-alias="Zone 752037" data-zone-id="752040"><div class="content"><h2 class="h1">Nos programmes<br /> 274de recherche</h2> 275 276<p class="p-large"> </p> 277</div></div></div></div></div><div class="line site_line__item largepaddingbottom section-programmes col-grid grid3 displaynone" data-line-id="90344"><div class="container"><div class="row-fluid row"><div id="421IJdNMIqbWHbh6ioQBfaMz" class=" col-sm-24 zone-100 zone-news_flash" data-zone-alias="Zone 774537" data-zone-id="774540"> <div class="content news newsList"> <div class="row"> <div class="item col-sm-24"> <div class="itemImage"> <img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/article/70171/images/icon_bioethique-2x-1629745230.jpg" class="e-thumbnail" alt="thumbnail"/> </div><div class="intro"><h3 class="h5">Bioéthique</h5> 278</div> </div> </div> <div class="row"> <div class="item col-sm-24"> <div class="itemImage"> <img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/article/70172/images/icon_biologie-cancer-2x-1629745317.jpg" class="e-thumbnail" alt="thumbnail"/> </div><div class="intro"><h3 class="h5">Biologie du Cancer</h3> 279</div> </div> </div> <div class="row"> <div class="item col-sm-24"> <div class="itemImage"> <img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/article/70173/images/icon_biologie-developpementale-2x-1629745480.jpg" class="e-thumbnail" alt="thumbnail"/> </div><div class="intro"><h3 class="h5">Biologie<br /> 280Développementale</h3> 281</div> </div> </div> <div class="row"> <div class="item col-sm-24"> <div class="itemImage"> <img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/article/70175/images/icon_epigenetique-2x-1629745653.jpg" class="e-thumbnail" alt="thumbnail"/> </div><div class="intro"><h3 class="h5">Ãpigénétique et<br /> 282régulation génétique</h3> 283</div> </div> </div> <div class="row"> <div class="item col-sm-24"> <div class="itemImage"> <img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/article/70176/images/icon_immunologie-2x-1629745734.jpg" class="e-thumbnail" alt="thumbnail"/> </div><div class="intro"><h3 class="h5">Immunologie et<br /> 284Microbiologie</h3> 285</div> </div> </div> <div class="row"> <div class="item col-sm-24"> <div class="itemImage"> <img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/article/70177/images/icon_chimie-medicale-2x-1629745859.jpg" class="e-thumbnail" alt="thumbnail"/> </div><div class="intro"><h3 class="h5">Chimie<br /> 286médicale</h3> 287</div> </div> </div> <div class="row"> <div class="item col-sm-24"> <div class="itemImage"> <img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/article/70178/images/icon_metabolisme-2x-1629745954.jpg" class="e-thumbnail" alt="thumbnail"/> </div><div class="intro"><h3 class="h5">Métabolisme et<br /> 288biologie des lipides</h3> 289</div> </div> </div> <div class="row"> <div class="item col-sm-24"> <div class="itemImage"> <img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/article/70179/images/icon_proteines-2x-1629746062.jpg" class="e-thumbnail" alt="thumbnail"/> </div><div class="intro"><h3 class="h5">Protéines et<br /> 290biologie de l'ARN</h3> 291</div> </div> </div> <div class="row"> <div class="item col-sm-24"> <div class="itemImage"> <img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/website/article/70180/images/icon_neuroscience-2x-1629746163.jpg" class="e-thumbnail" alt="thumbnail"/> </div><div class="intro"><h3 class="h5">Neurosciencee</h3> 292</div> </div> </div> </div></div></div></div></div><div class="line site_line__item section-imgtext-subject mobile-imgmarginbottom row-lined-absolute xsmallpadding blue" data-line-id="89478"><div class="container"><div class="row-fluid row"><div id="mvW0KgA24GogbkwMJxo1WJPa" class=" col-sm-12 zone-50 zone-image" data-zone-alias="Zone 752689" data-zone-id="752692"><div class="content" align="left"><img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/8577/49221/images/ircm-recherches-centre-maladies-rares-genetiques-1778765357.jpg" alt="" width=""></div></div><div id="9e2Sq9R9yNRkm5JEqPwwiHVn" class=" col-sm-12 zone-50 zone-html" data-zone-alias="Zone 752754" data-zone-id="752757"><div class="content"><h3>Centre de recherche sur les maladies rares et génétiques chez l’adulte</h3> 293 294<p><u>Chercheurs : Alexis Baas, Hugo Chapdelaine et Guillaume Bollée</u></p> 295 296<p>Seul endroit au Canada où l'accent est mis sur la transition des soins pédiatriques aux soins adultes pour les patients atteints de maladies rares, ce centre répond à un besoin pressant : on compte plus de 500 000 personnes touchées au Québec et plus de 2,5 millions au Canada. Alliant soins médicaux et recherche biomédicale sous un même toit, il se spécialise dans trois domaines. La clinique de dyslipidémies génétiques évalue et traite les patients présentant des taux élevés de cholestérol et/ou de triglycérides afin de prévenir les complications cardiovasculaires et pancréatiques. La clinique d'immunologie primaire prend en charge les patients dont le système immunitaire est défaillant, causant des infections fréquentes, sévères ou atypiques, ainsi que des manifestations auto-immunes. La clinique des maladies rénales rares évalue et traite des pathologies telles que la polykystose rénale, la cystinose et les glomérulopathies héréditaires. Dans chacun de ces domaines, l'
296équipe clinique collabore étroitement avec les chercheurs de l'IRCM pour améliorer le diagnostic, le suivi et les traitements offerts aux patients.</p> 297 298<p><a class="btn btn-secondary" href="https://www.ircm.qc.ca/fr/centre-de-recherche-sur-les-maladies">Découvrez ce centre</a></p> 299</div></div></div></div></div><div class="line site_line__item smallpadding section-discover-searchers verticalalign center" style="background-color:#F4F4F5" data-line-id="90265"><div class="container"><div class="row-fluid row"><div id="deKCnbnXj1R4eLEg0S8ywCKp" class=" col-sm-12 zone-50 zone-html" data-zone-alias="Zone 772679" data-zone-id="772682"><div class="content"><h2>Nos chercheurs et chercheuses</h2> 300 301<p>Découvrez les chercheurs et les chercheuses de l’IRCM et apprenez en plus sur leurs travaux.</p> 302 303<p><a class="btn btn-secondary" href="/fr/chercheurs">Découvrez nos chercheurs et chercheuses</a></p> 304</div></div><div id="77wNhBw4D5HzGnoY9fakNVYH" class=" col-sm-12 zone-50 zone-image" data-zone-alias="Zone 772747" data-zone-id="772750"><div class="content" align="left"><img src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/8577/49221/images/mosaique_v2-2x-1631908249.png" alt="" width=""></div></div></div></div></div><div class="line site_line__item line-secondary" style="background-color:#122CBA" data-line-id="88767"><div class="container"><div class="row-fluid row"><div id="0e3jFbwX2QGziVhuDMcyoXnH" class=" col-sm-12 zone-50 zone-html" data-zone-alias="SecondaryArea1" data-zone-id="749766"><div class="content"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Logos/Logo_IRCM_Footer_FR.svg" style="width: 361px; height: 83px;" /></div></div><div id="tVR0mPFdwb3PqfzHzBvmuT42" class=" col-sm-12 zone-50 zone-html" data-zone-alias="SecondaryArea2" data-zone-id="749767"><div class="content"><div class="row"> 305<div class="col-md-12"> 306<p>Infolettre</p> 307 308<h4>Découvertes,<br /> 309évènements et plus</h4> 310 311<p><a class="btn btn-primary" href="/fr/infolettre">Je m’inscris</a></p> 312</div> 313 314<div class="col-md-12"> 315<p>Fondation de l'IRCM</p> 316 317<h4>Faites partie de la<br /> 318solution</h4> 319 320<p><a class="btn btn-primary" href="https://fondation-de-lircm.s1.yapla.com/fr/soutenir-la-campagne" target="_blank">Soutenir la recherche</a></p> 321</div> 322</div> 323</div></div></div></div></div><div class="line site_line__item line-footer" style="background-color:#122CBA" data-line-id="88768"><div class="container"><div class="row-fluid row"><div id="PNhtzEcZEnRBUhHmsbRgx8yj" class=" col-sm-24 zone-100 zone-html" data-zone-alias="Footer" data-zone-id="749772"><div class="content"><div class="row"> 324<div class="col-lg-6 col-md-12 col-sm-24"> 325<p>110, avenue des Pins Ouest,<br /> 326Montréal (Québec) Canada<br /> 327H2W 1R7<br /> 328514 987-5500</p> 329 330<ul class="social-icons"> 331 <li><a href="https://www.instagram.com/ircm_mtl/" target="_blank"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Icons/Instagram_UP%402x.png" style="width:17px;" /></a></li> 332 <li><a href="https://www.facebook.com/IRCM.Montreal/" target="_blank"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Icons/Facebook_UP%402x.png" style="width: 9px; " /></a></li> 333 <li><a href="https://www.youtube.com/channel/UCd5RrcOYlEHr3WJZtZX-x3A" target="_blank"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Icons/Youtube_UP%402x.png" style="width: 18px;" /></a></li> 334 <li><a href="https://bsky.app/profile/ircm.bsky.social" target="_blank"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Icons/bluesky-blanc.svg" style="height: 20px; width: 20px;" /></a></li> 335 <li><a href="https://www.linkedin.com/company/ircm/" target="_blank"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Icons/Linkedin_UP%402x.png" style="width: 16px; " /></a></li> 336</ul> 337 338<p id="partenaires">Partenaires </p> 339 340<p> <a href="https://www.umontreal.ca/" target="_blank"><img alt="" src="https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/Logos/udem-logo%402x.png" style="width: 180px; height: 69px;" /></a></p> 341</div> 342 343<div class="col-lg-6 col-md-12 col-sm-24"> 344<h5><strong>Recherches</strong></h5> 345 346<ul> 347 <li><a href="/fr/nos-recherches">Nos recherches</a></li> 348 <li><a href="/fr/chercheurs">Chercheurs</a></li> 349 <li><a href="/fr/valorisation-de-la-recherche">Valorisation de la recherche</a></li> 350 <li><a href="/fr/integrite-scientifique">Intégrité scientifique</a></li> 351</ul> 352 353<h5><strong>Services</strong></h5> 354 355<ul> 356 <li><a href="/fr/nos-plateformes">Nos plateformes</a></li> 357</ul> 358 359<h5><b>Vie étudiante</b></h5> 360 361<ul> 362 <li><a href="/fr/lexperience-ircm">L’expérience IRCM</a></li> 363 <li><a href="/fr/bourses-ircm-pour-jeunes-chercheurs">Bourses IRCM</a></li> 364</ul> 365 366<h5><b>Admission</b></h5> 367 368<ul> 369 <li><a href="/fr/m-sc-medecine-cellulaire-et-moleculaire">Ãtudes supérieures à l'IRCM</a></li> 370 <li><a href="/fr/stages-au-premier-cycle">Stages au premier cycle</a></li> 371 <li><a href="https://www.ircm.qc.ca/fr/formation-post-doctorale">Formation postdoctorale</a></li> 372 <li><a href="/fr/opportunites-disponibles">Opportunités disponibles</a></li> 373 <li><a href="/fr/etudiants-etrangers">Ãtudiants internationaux</a></li> 374</ul> 375</div> 376 377<div class="col-lg-6 col-md-12 col-sm-24"> 378<h5><strong>L'Institut</strong></h5> 379 380<ul> 381 <li><a href="/fr/mot-du-president">Mot du Président</a></li> 382 <li><a href="/fr/notre-impact">Notre impact</a></li> 383 <li><a href="/fr/notre-heritage">Notre héritage</a></li> 384 <li><a href="/fr/gouvernance">Gouvernance</a></li> 385 <li><a href="/fr/comite-de-direction">Comité de direction</a></li> 386 <li><a href="/fr/prix-de-lircm">Prix de l’IRCM</a></li> 387 <li><a href="/fr/rapports-annuels">Rapports annuels</a></li> 388</ul> 389 390<h5><a href="/fr/evenements"><strong>Ãvènements</strong></a></h5> 391 392<h5><strong>La clinique</strong></h5> 393 394<ul> 395 <li><a href="/fr/la-clinique-de-lircm">La clinique de l'IRCM</a></li> 396 <li><a href="/fr/centre-de-recherche-sur-les-maladies">Centre de recherche sur les maladies rares<br /> 397 et génétiques chez l'adulte</a></li> 398 <li><a href="/fr/clinique-de-recherche-post-covid">Clinique de recherche post-Covid-19</a></li> 399 <li><a href="/fr/ressources-en-sante">Ressources en santé</a></li> 400 <li><a href="/fr/ressources-pour-professionnels-de-la-sante">Ressources pour professionnels de la santé</a></li> 401 <li><a href="/fr/prendre-rendez-vous">Prendre rendez-vous</a></li> 402 <li><a href="/fr/contacter-la-clinique">Joindre la clinique</a></li> 403 <li><a href="/fr/participer-a-une-etude-clinique">Participer à une étude clinique</a></li> 404</ul> 405</div> 406 407<div class="col-lg-6 col-md-12 col-sm-24"> 408<h5><strong>Carrières</strong></h5> 409 410<ul> 411 <li><a href="/fr/la-vie-a-lircm">
411La vie à l’IRCM</a></li> 412 <li><a href="/fr/opportunites">Opportunités</a></li> 413 <li><a href="/fr/candidatures-spontanees">Candidatures spontanées</a></li> 414</ul> 415 416<h5><a href="/fr/nous-joindre"><b>Nous joindre</b></a></h5> 417 418<h5><a href="/fr/actualites"><strong>Actualités</strong></a></h5> 419 420<h5><a href="/fr/salle-de-presse"><strong>Salle de presse</strong></a></h5> 421</div> 422</div> 423</div></div></div></div></div><div class="line site_line__item line-copyright" style="background-color:#122CBA" data-line-id="89497"><div class="container"><div class="row-fluid row"><div id="x258otSdAAEW7rxiW9iXyK9I" class=" col-sm-24 zone-100 zone-html" data-zone-alias="Crédits" data-zone-id="753301"><div class="content"><p>© Institut de recherches cliniques de Montréal, <span id="copyright-year">Année</span>.Tous droits réservés. | <a href="/fr/politique-sur-la-protection-des-renseignements-personnels">Politique sur la protection des renseignements personnels</a><a href="/fr/politique-sur-la-protection-des-renseignements-personnels"> </a> | <a href="/fr/conditions-d-utilisation">Conditions d'utilisation</a> | Réalisation Agence <a href="https://www.riposte.ca/fr/" target="_blank">Riposte</a></p> 424</div></div></div></div></div><div class="line site_line__item sidebutton" data-line-id="90591"><div class="container"><div class="row-fluid row"><div id="b2KuZpScj0LZLC9S8UMp8i2O" class=" col-sm-24 zone-100 zone-html" data-zone-alias="Sticky Side Button" data-zone-id="780052"><div class="content"><a class="btn btn-primary" href="https://fondation-de-lircm.s1.yapla.com/fr/faire-un-don-en-ligne" target="_blank"><span>Soutenir la Fondation</span></a></div></div></div></div></div><div class="line site_line__item popup-section" data-line-id="129905"><div class="container"><div class="row-fluid row"><div id="G6QMEtrIqRosG93Z55NrpYHV" class=" col-sm-24 zone-100 zone-html" data-zone-alias="Zone 1904581" data-zone-id="1904584"><div class="content"><div aria-hidden="false" class="modal fade in" id="popup" role="dialog"> 425<div class="modal-dialog"> 426<div class="modal-content"> 427<div class="modal-header"><button class="close" data-dismiss="modal" type="button">×</button></div> 428 429<div class="modal-body"> 430<h2>Vous êtes avide<br /> 431de découvertes?<br /> 432<span>Notre infolettre <br /> 433est pour vous!</span></h2> 434<a class="btn btn-secondary" href="/fr/infolettre">S'abonner</a></div> 435</div> 436</div> 437</div> 438</div></div></div></div></div> 439<div class="poweredBy-wrapper"> 440 <div class="container poweredBy-container"> 441 <div class="row-fluid"> 442 <div class="col-sm-24 poweredBy"> 443 <a class="poweredBy-link" 444 href="https://www.yapla.com/fr-ca/?utm_source=yapla-app&utm_medium=referral&utm_campaign=customer-footer" 445 target="_blank"> 446 <span style="display: inline-block;margin-right: 1px;">Propulsé par </span> 447 <img src="/images/yapla-logo-grey.svg" 448 alt="Yapla Logo" height="16" 449 style="height:16px !important;vertical-align: sub;margin-bottom: 1px;"> 450 </a> 451 </div> 452 </div> 453 </div> 454</div>
454<script>memboGo.core.tracking([{"app_scope":"front","organisation_plan":"Premium"}]);</script>
454 </div> 455 </div> 456
456<script>//document.write('<link rel="stylesheet" href="http://localhost/ircm/public/main.css?'+Date.now()+'">'); 457 458/*****************************************************************************/ 459/* ADD OPENED CLASS FOR OPEN MENU */ 460/*****************************************************************************/ 461let menu_toggle_open = $(".line-head .menu-hamburger"); 462menu_toggle_open.on("click", function(e) { 463 // e.preventDefault(); // Uncomment if you need to prevent the default action. 464 $("body").addClass("overflowhidden"); 465 $(".line-head").addClass("opened"); 466 $(".line-menu-container").addClass("opened"); 467 $(".line-head .menu-hamburger").css("display", "none"); 468 $(".line-head .header-ext-language").css("display", "none"); 469}); 470 471let menu_toggle_close = $(".line-menu-container .menu-hamburger"); 472menu_toggle_close.on("click", function(e) { 473 $("body").removeClass("overflowhidden"); 474 $(".line-head").removeClass("opened"); 475 $(".line-menu-container").removeClass("opened"); 476 $(".line-head .menu-hamburger").css("display", "flex"); 477 $(".line-head .header-ext-language").css("display", "flex"); 478}); 479 480 481/*****************************************************************************/ 482/* REMOVE SIDE BUTTON WHEN MENU OPENED */ 483/*****************************************************************************/ 484document.addEventListener('DOMContentLoaded', function() { 485 // Select the elements 486 var lineHead = document.querySelector('.line-head'); 487 var lineSideButton = document.querySelector('.sidebutton'); 488 489 // Function to check the class and apply styles 490 function checkAndApplyStyles() { 491 if (lineHead.classList.contains('opened')) { 492 lineSideButton.style.display = 'none'; 493 } else { 494 lineSideButton.style.display = ''; 495 } 496 } 497 498 // Initial check on page load 499 checkAndApplyStyles(); 500 501 // Add an event listener for class changes 502 var observer = new MutationObserver(checkAndApplyStyles); 503 observer.observe(lineHead, { attributes: true, attributeFilter: ['class'] }); 504}); 505 506 507 508/*****************************************************************************/ 509/* RESSOURCES EN SANTE: FIX BANNER SIZE ON VUE DETAILS */ 510/*****************************************************************************/ 511document.addEventListener('DOMContentLoaded', function(){ 512 if (document.body.classList.contains('res')) { 513 const detailVue = document.querySelector('.search-object-detail-bloc'); 514 const banner = document.querySelector('.line-banner.reslist'); 515 516 if (detailVue) { 517 banner.classList.remove('long'); 518 banner.classList.add('court'); 519 } 520 521 document.querySelectorAll('.section-title').forEach(function(title) { 522 const nextElement = title.nextElementSibling; 523 524 // Condition 1: Hide if the next element is neither a ul nor a p.res-item 525 if (!nextElement || nextElement.innerHTML.trim() === '' || (!nextElement.matches('ul') && !nextElement.matches('p.res-item'))) { 526 title.style.display = 'none'; 527 } 528 // Condition 2: Hide if the next element is p.res-item, but the <a> inside has empty innerHTML 529 else if (nextElement.matches('p.res-item')) { 530 const linkElement = nextElement.querySelector('a'); 531 if (linkElement && linkElement.innerHTML.trim() === '') { 532 title.style.display = 'none'; 533 } else { 534 title.style.display = 'block'; // Show if <a> has content 535 } 536 } else { 537 title.style.display = 'block'; // Show if next element is ul 538 } 539 }); 540 541 document.querySelectorAll('p.res-item').forEach(function(item) { 542 const link = item.querySelector('a'); 543 if (link && (!link.hasAttribute('href') || link.getAttribute('href').trim() === '')) { 544 item.style.display = 'none'; 545 } 546 }); 547 548 // Add your 'p.type' check inside the larger block here 549 var typeElement = document.querySelector('p.type'); 550 551 // Check if the innerHTML matches the given text 552 if (typeElement && (typeElement.textContent.trim() === "Ressources externes" || typeElement.textContent.trim() === "External resources")) { 553 // Select all elements with the class 'external' 554 var externalElements = document.querySelectorAll('.external'); 555 556 // Loop through each element and hide it
557 externalElements.forEach(function(element) { 558 element.style.display = 'none'; 559 }); 560 } 561 } 562}); 563 564 565 566/*****************************************************************************/ 567/* CHANGE INTRANET BANNER COLOR */ 568/*****************************************************************************/ 569document.addEventListener('DOMContentLoaded', function() { 570 // Check if the body has the class 'member--isConnected' 571 if (document.body.classList.contains('member--isConnected')) { 572 // Check if the URL contains '/fr/intranet' or '/en/intranet' 573 var url = window.location.href; 574 if (url.includes('/fr/intranet') || url.includes('/en/intranet')) { 575 // Apply the 'coffee' class to the div with class 'line-head' 576 var lineHead = document.querySelector('.line-head'); 577 if (lineHead) { 578 lineHead.classList.add('coffee'); 579 } 580 } 581 } 582}); 583 584 585 586/*****************************************************************************/ 587/* RESSOURCES EN SANTE: CHANGER LE BANNER POUR LE SEARCH BAR */ 588/*****************************************************************************/ 589document.addEventListener('DOMContentLoaded', function() { 590 if (document.body.classList.contains('res')) { 591 const simpleForm = document.getElementById("module_directory_global_search"); 592 const advancedForm = document.getElementById("module_directory_member"); 593 const advancedButton = document.getElementById('search_advanced'); 594 const simpleButton = document.getElementById('search_simple'); 595 const searchBloc = document.querySelector('.search-object-bloc'); 596 const elements = document.querySelectorAll('.line-banner.reslist, .ressources-en-sante'); 597 598 if (searchBloc) { 599 elements.forEach(function(element) { 600 element.classList.add('long'); 601 }); 602 } else { 603 elements.forEach(function(element) { 604 element.classList.remove('long'); 605 }); 606 } 607 608 609 advancedButton.addEventListener('click', function() { 610 elements.forEach(function(element) { 611 element.classList.add('long'); 612 }); 613 }); 614 615 simpleButton.addEventListener('click', function() { 616 elements.forEach(function(element) { 617 element.classList.remove('long'); 618 }); 619 }); 620 } 621}); 622 623 624 625/*****************************************************************************/ 626/* RESSOURCES EN SANTE: REMPLACER CAT PAR PASTILLES */ 627/*****************************************************************************/ 628document.addEventListener('DOMContentLoaded', function() { 629 const catImages = { 630 'Activité physique': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/act-physiQUE.png', 631 'Alimentation': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/alimentatino.png', 632 'COVID longue': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/covid-longue.png', 633 'Diabète': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/diabete.png', 634 'Hypertension': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/hypertension.png', 635 'Immunologie': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/immunologie.png', 636 'Maladies rénales rares': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/mal-renales.png', 637 'Médication': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/medication.png', 638 'Pour professionnels de la santé': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/OPTION1.png', 639 'Prévention cardiovasculaire et dyslipidémie': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/prev-cardio.png', 640 'Ressources et documentation générales': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/ressources.png',
641 'Santé psychologique': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/sante-psycho.png', 642 'Tabagisme': 'https://cdn.ca.yapla.com/company/CPY7p4CO2sE1afW3ImwiLyBND/asset/images/Site%20Web%202021/_La%20Clinique/_ressources-en-sante/tabagisme.png' 643 }; 644 645 function updatecatImages() { 646 const listItems = document.querySelectorAll('p.res-cat'); 647 listItems.forEach(item => { 648 const cat = item.textContent.trim(); 649 if (cat in catImages) { 650 const img = document.createElement('img'); 651 img.src = catImages[cat]; 652 img.alt = cat; 653 item.textContent = ''; // Clear the existing text 654 item.appendChild(img); // Add the image to the list item 655 } 656 }); 657 } 658 659 // Initial update 660 updatecatImages(); 661 662 // Create a mutation observer to watch for changes in the DOM 663 const observer = new MutationObserver(function(mutations) { 664 mutations.forEach(function(mutation) { 665 if (mutation.type === 'childList' || mutation.type === 'subtree') { 666 updatecatImages(); 667 } 668 }); 669 }); 670 671 // Start observing the body for changes 672 observer.observe(document.body, { childList: true, subtree: true }); 673}); 674 675 676/*****************************************************************************/ 677/* COOKIE QUI GÃRE LE POP-UP (24h) */ 678/*****************************************************************************/ 679const script = document.createElement("script"); 680script.src = "https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"; 681script.addEventListener('load', function() { 682 if (!Cookies.get('info-modal')) { 683 $("#popup").modal("show"); 684 } 685 $('#popup').on('hidden.bs.modal', function (e) { 686 Cookies.set('info-modal', true, {expires: 30}); 687 }); 688 689 // Add click event listener to "s'abonner" button 690 document.querySelector('#popup .btn-secondary').addEventListener('click', function() { 691 $("#popup").modal("hide"); 692 }); 693}); 694document.head.appendChild(script); 695 696/*****************************************************************************/ 697/* EDIT CONTENT OF REVUE DE PRESSE ON PAGE CHERCHEUR */ 698/*****************************************************************************/ 699document.addEventListener("DOMContentLoaded", function() { 700 const titreDeLarticle = document.querySelectorAll('.object-dans_les_medias_production-field-titre_de_larticle_ou_de_lentrevue'); 701 const nomDuMedia = document.querySelectorAll('.object-dans_les_medias_production-field-nom_du_media'); 702 703 titreDeLarticle.forEach(span => { 704 span.innerHTML += " - "; 705 }); 706 707 nomDuMedia.forEach(span => { 708 span.innerHTML += " - "; 709 }); 710}); 711 712////////////////HIDEN BANNER ON EVENTS DETAIL/////////////////// 713document.addEventListener("DOMContentLoaded", function() { 714 if (document.querySelector('.event-detail')) { 715 // Hide the div with class 'line-banner' 716 var lineBanner = document.querySelector('.line-banner'); 717 if (lineBanner) { 718 lineBanner.style.display = 'none'; 719 } 720 721 // Hide the line-selector button 722 var lineSelectorButton = document.querySelector('.line-selector-button'); 723 if (lineSelectorButton) { 724 lineSelectorButton.style.display = 'none'; 725 } 726 727 // Hide the h2 inside .zone-event 728 var zoneEventH2 = document.querySelector('.zone-event > h2'); 729 if (zoneEventH2) { 730 zoneEventH2.style.display = 'none'; 731 } 732 } 733}); 734 735document.addEventListener("DOMContentLoaded", function() { 736 if (document.querySelector('.events-mosaic')) { 737 // Hide the line retour-list-event 738 var lineRetour = document.querySelector('.retour-list-event'); 739 if (lineRetour) { 740 lineRetour.style.display = 'none'; 741 } 742 } 743}); 744 745 746 747 748 749/////RAPPORTS//////////// 750if($(".rapport-repertory").length) { 751const script = document.createElement("script"); 752script.src = "https://cdnjs.cloudflare.com/ajax/libs/jspdf/0.9.0rc1/jspdf.min.js"; 753script.addEventListener('load', function() { 754 var script2 = document.createElement("script"); 755 script2.src = "https://html2canvas.hertzen.com/dist/html2canvas.js"; 756 document.head.appendChild(script2); 757}); 758document.head.appendChild(script); 759 760function CreatePDFfromHTML(reportName, firstName, lastName) { 761 html2canvas($(".rapport-export-details")[0], { useCORS: true, allowTaint: true, scrollY: 0 }).then((canvas) => { 762 const image = { type: 'jpeg', quality: 0.98 }; 763 const margin = [0.5, 0.5]; 764 const filename = 'rapport-academique.pdf'; 765 var imgWidth = 8.5; 766 var pageHeight = 11; 767 var innerPageWidth = imgWidth - margin[0] * 2; 768 var innerPageHeight = pageHeight - margin[1] * 2; 769 // Calculate the number of pages. 770 var pxFullHeight = canvas.height; 771 var pxPageHeight = Math.floor(canvas.width * (pageHeight / imgWidth)); 772 var nPages = Math.ceil(pxFullHeight / pxPageHeight); 773 // Define pageHeight separately so it can be trimmed on the final page. 774 var pageHeight = innerPageHeight; 775 // Create a one-page canvas to split up the full image. 776 var pageCanvas = document.createElement('canvas'); 777 var pageCtx = pageCanvas.getContext('2d'); 778 pageCanvas.width = canvas.width; 779 pageCanvas.height = pxPageHeight; 780 // Initialize the PDF. 781 var pdf = new jsPDF('p', 'in', [8.5, 11]); 782 783 for (var page = 0; page < nPages; page++) { 784 // Trim the final page to reduce file size. 785 if (page === nPages - 1 && pxFullHeight % pxPageHeight !== 0) { 786 pageCanvas.height = pxFullHeight % pxPageHeight; 787 pageHeight = (pageCanvas.height * innerPageWidth) / pageCanvas.width; 788 } 789 790 // Display the page.
791 var w = pageCanvas.width; 792 var h = pageCanvas.height; 793 pageCtx.fillStyle = 'white'; 794 pageCtx.fillRect(0, 0, w, h); 795 pageCtx.drawImage(canvas, 0, page * pxPageHeight, w, h, 0, 0, w, h); 796 797 // Add the page to the PDF. 798 if (page > 0) pdf.addPage(); 799 var imgData = pageCanvas.toDataURL('image/' + image.type, image.quality); 800 pdf.addImage(imgData, image.type, margin[0], margin[1], innerPageWidth, pageHeight); 801 } 802 pdf.save(reportName+(firstName ? '-'+firstName : '')+(lastName ? '-'+lastName : '')); 803 }); 804} 805} 806 807 808// Menu 809$(".zone-menu .navbar .navbar-toggle").click(function() { 810 $("body").toggleClass("overflowhidden"); 811 $(".line-header").toggleClass("topmenuopened"); 812 $(".sticked").toggleClass("topmenuopened"); 813 $(".navbar").toggleClass("active"); 814 $(".navbar-header").toggleClass("active"); 815 $(".sidebutton").toggleClass("remove"); 816}); 817function fixme(){ 818 var fixmeTop = 150; 819 $(window).scroll(function(){ 820 var currentScroll = $(window).scrollTop(); 821 if(currentScroll >= fixmeTop){ 822 $('.line-menu').addClass("sticked"); 823 $('.line-header').addClass("sticked"); 824 } else { 825 $('.line-menu').removeClass("sticked"); 826 $('.line-header').removeClass("sticked"); 827 } 828 }); 829} 830//fixme(); 831 832// Ancres 833$('.anchor-link').click(function(e){ 834 e.preventDefault(); 835 var target = $($(this).attr('href')); 836 if(target.length){ 837 var scrollTo = target.offset().top; 838 $('body, html').animate({scrollTop: scrollTo - 150 +'px'}, 800); 839 } 840}); 841 842/*****************************************************************************/ 843/* COPYRIGHT YEAR AUTO UPDATE */ 844/* <span id="copyright-year">Année</span> */ 845/*****************************************************************************/ 846document.getElementById("copyright-year").innerHTML = new Date().getFullYear(); 847 848 849// Accordéon en tableau 850$("table.accordeon tbody tr:first-child").click(function () { 851 var target = $(this); 852 var open = target.closest(".accordeon").hasClass('active'); 853 854 $(".accordeon").removeClass("active"); 855 856 if (!open) { 857 var scrollTo = target.offset().top; 858 target.closest(".accordeon").addClass("active"); 859 $('body, html').animate({scrollTop: scrollTo-120+'px'}, 800); 860 } 861}); 862 863//////Reload page at new articles: participer à une étude////// 864function reloadtocat() { 865 if ($('.section-ressources').length > 0) { 866 $('.news-category').click(function(){ 867 var sectionHeight = $('.section-ressources').height(); 868 $(window).scrollTop(sectionHeight); 869 location.reload(); 870 }); 871 } 872} 873 874//////////////////////////////////////////////////////////////////// 875///////////////DANS LES MEDIAS:CHANGER TITRE////// 876///////////////////////////////////////////////////////////////////////// 877document.addEventListener("DOMContentLoaded", function() { 878 var bodyClasses = document.body.classList; 879 var label = document.querySelector('label.control-label[for="2058246"]'); 880 881 if (bodyClasses.contains('lang-fr')) { 882 label.innerHTML = "Recherche par titre"; 883 } else if (bodyClasses.contains('lang-en')) { 884 label.innerHTML = "Search by title"; 885 } 886}); 887 888 889//////////////////////////////////////////////////////////////////// 890///////////////DANS LES MEDIAS:CACHER CHERCHEUR SI PAS DE CHERCHEUR////// 891///////////////////////////////////////////////////////////////////////// 892 893// Function to process the content 894function processContent() { 895 const mediaElements = document.querySelectorAll('p.media-element'); 896 mediaElements.forEach(mediaElement => { 897 let nextSibling = mediaElement.nextElementSibling; 898 if (nextSibling && nextSibling.tagName.toLowerCase() === 'ul' && nextSibling.classList.contains('object-assigner_cette_publication')) { 899 return; 900 } else { 901 const chercheurSpan = mediaElement.querySelector('span.chercheur'); 902 if (chercheurSpan) { 903 chercheurSpan.style.display = 'none'; 904 } 905 } 906 });
907} 908 909// Create a MutationObserver instance 910const observer = new MutationObserver((mutationsList, observer) => { 911 // Call processContent() whenever mutations occur in the DOM 912 processContent(); 913}); 914 915// Start observing changes to the DOM 916observer.observe(document.body, { subtree: true, childList: true }); 917 918 919 920 921 922 923// Change le bouton English / Francais pour EN / FR 924function changeLanguageLabel() { 925 var lang_switch = document.querySelector("a.switch-language"); 926 var lang_list = { "fr" : "EN", "en" : "FR" }; 927 if(lang_switch) { 928 if(document.body.classList.contains("lang-fr")) { 929 lang_switch.text = lang_list.fr; 930 } else if(document.body.classList.contains("lang-en")) { 931 lang_switch.text = lang_list.en; 932 } 933 } 934} 935 936// Gestion de liens dynamique sur bouton langue en mobile 937function changeLanguage() { 938 var LanguageLink = $('a.switch-language ').attr('href'); 939 $('li[rel="data-menu-50224"] > a').attr('href', LanguageLink); 940} 941 942 943//Remove Covid Alert on Click 944function removeAlert(){ 945 $("#close-alert").click(function(){ 946 $(".banner-alert, .section-alert, .banner-message").addClass( "inactive" ); 947 }) 948} 949 950 951 952////Make intranet banner div clickable 953 document.addEventListener("DOMContentLoaded", function() { 954 const bannerDiv = document.querySelector(".banner-links-section"); 955 const linkTo = document.querySelector(".linkto"); 956 957 bannerDiv.addEventListener("click", function() { 958 linkTo.click(); 959 }); 960 }); 961 962// Module article en vedette agit en accordéon 963$(".moduleaccordion .row > div > h3").click(function () { 964 var target = $(this); 965 target.next(".newsList").slideToggle(500); 966 $(".moduleaccordion").toggleClass("active"); 967}); 968 969//Activer les sous-pages de Gouvernance 970$(".line-menu-tab a").each(function() { 971 if (this.href == window.location.href) { 972 $(this).addClass("active"); 973 } 974}); 975 976//Sticky Menu on scroll up 977$(function(){ 978 var lastScrollTop = 0, delta = 5; 979 $(window).scroll(function(event){ 980 var st = $(this).scrollTop(); 981 982 if(Math.abs(lastScrollTop - st) <= delta) 983 return; 984 if (st > lastScrollTop || st <= 100){ 985 $('.line-menu').removeClass('sticked'); 986 } else { 987 $('.line-menu').addClass('sticked'); 988 } 989 lastScrollTop = st; 990 }); 991}); 992 993$( document ).ready(function() { 994 changeLanguageLabel(); 995 changeLanguage(); 996 removeAlert(); 997reloadtocat() 998 999}); 1000 1001//SCROLL DOWN TO MESSAGE ON RELOAD FORM 1002var get = []; 1003location.search.replace('?', '').split('&').forEach(function (val) { 1004 split = val.split("=", 2); 1005 get[split[0]] = split[1]; 1006}); 1007if(get["step"]=="confirmation"){ //?step=confirmation 1008 var aid = "#confirmation"; 1009 $('html,body').animate({scrollTop: $(aid).offset().top - 250}, 1000); 1010} 1011 1012// Code pour ajouter le poste à une soumission de candidature dans carrière, à l'aide d'un champs caché 1013if ($("#hiddeninput")) { 1014 var identifiant = "Identifiant non disponible"; 1015 $(".form-element-hiddeninput").hide(); 1016 1017 var jobtitle = $("#news-title-750270, #news-title-750280"); 1018 // Dans ce cas-ci extraire la valeur du titre de l'article (premier h1 du contenu de l'article 1019 if (jobtitle.length > 0) { 1020 identifiant = $("#news-title-750270, #news-title-750280").text(); 1021 } 1022 // champ identifiant, mettre à jour 1023 $("#hiddeninput").val(identifiant); 1024} 1025 1026function dismissablePopInfo() { 1027 var popInfo = $(".large-alert-content"); 1028 var popInfoContent = $(".large-alert-content .content"); 1029 var popInfoClose = $(".large-alert-content #close-alert"); 1030 if(popInfo.length) { 1031 $(".line-banner .mod-banner__content").css("padding-bottom", "80px"); 1032 popInfo.addClass("popMarginTop"); 1033 } 1034 popInfoClose.click(function(){ 1035 $(".line-banner .mod-banner__content").css("padding-bottom", "0px"); 1036 popInfo.hide(); 1037 }) 1038} 1039dismissablePopInfo(); 1040 1041// INTRANET HOMEPAGE NAVIGATION//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1042$( ".line-intranet-nav .news-intro" ).click(function() { 1043 //alert($(this).find("a").attr("href")); 1044 window.location = $(this).find("a").attr("href"); 1045}); 1046 1047// EVENTS TITLE CLICKABLE//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1048$( ".section-events .item h3" ).click(function() { 1049 //alert($(this).find("a").attr("href")); 1050 window.location = $(this).parent().find("a").attr("href"); 1051}); 1052
1053/////////MAKE INTRANET MENU ITEM UNCLICKABLE (for breadbrumb to work)//////////////// 1054$('li[rel="data-menu-49267"] .child-link').removeAttr('href'); 1055 1056$('li[rel="data-menu-49267"] a').css('cursor', 'pointer'); 1057 1058 1059 1060/* 1061if ($("body").hasClass("lang-fr")) { 1062 window.addEventListener("DOMContentLoaded", () => { 1063 const interval = setInterval(() => { 1064 const element = document.querySelector(".cookie-notice .cn-body > p"); 1065 if (!element) return; 1066 element.innerHTML = "<h4>Nous voulons mieux vous servir !</h4><p>Nous utilisons des cookies afin de vous offrir la meilleure expérience possible. N'hésitez pas à consulter notre <a href='/fr/politique-sur-la-protection-des-renseignements-personnels' target='_blank'>politique de confidentialité</a> pour en savoir plus.</p>"; 1067 clearInterval(interval); 1068 }, 500); 1069 }); 1070 1071 $(document).on('click', '.cm-bg', function () { 1072 console.log("test"); 1073 const element = document.querySelector(".cookie-notice .cn-body > p"); 1074 if (!element) return; 1075 element.innerHTML = "<h4>Nous voulons mieux vous servir !</h4><p>Nous utilisons des cookies afin de vous offrir la meilleure expérience possible. N'hésitez pas à consulter notre <a href='/fr/politique-sur-la-protection-des-renseignements-personnels' target='_blank'>politique de confidentialité</a> pour en savoir plus.</p>"; 1076 }); 1077 1078 $(document).on('click', '.cn-learn-more', function () { 1079 const element = document.querySelector(".cookie-modal .cm-header > p"); 1080 if (!element) return; 1081 element.innerHTML = "<p>Nous utilisons des cookies afin de vous offrir une navigation fluide et agréable. Vous avez la possibilité de refuser, accepter ou gérer ces préférences en cliquant sur l'un des trois boutons ci-dessous.</p> <p>Cliquez sur chaque catégorie de cookies pour activer ou désactiver leur utilisation.</p>"; 1082 }); 1083} 1084 1085if ($("body").hasClass("lang-en")) { 1086 1087 window.addEventListener("DOMContentLoaded", () => { 1088 const interval = setInterval(() => { 1089 const element = document.querySelector(".cookie-notice .cn-body > p"); 1090 if (!element) return; 1091 element.innerHTML = "<h4>We want to serve you better!</h4><p>We use cookies to provide you with the best possible experience. Please feel free to review our <a href='/en/privacy-policy' target='_blank'>privacy policy</a> to learn more.</p>"; 1092 clearInterval(interval); 1093 }, 500); 1094 }); 1095 1096 $(document).on('click', '.cm-bg', function () { 1097 const element = document.querySelector(".cookie-notice .cn-body > p"); 1098 if (!element) return; 1099 element.innerHTML = "<h4>We want to serve you better!</h4><p>We use cookies to provide you with the best possible experience. Please feel free to review our <a href='/en/privacy-policy' target='_blank'>privacy policy</a> to learn more.</p>"; 1100 }); 1101 1102 $(document).on('click', '.cn-learn-more', function () { 1103 const element = document.querySelector(".cookie-modal .cm-header > p"); 1104 if (!element) return; 1105 element.innerHTML = "<p>We use cookies to provide you with a smooth and enjoyable browsing experience. You have the option to refuse, accept, or manage these preferences by clicking on one of the three buttons below.</p> <p>Click on each cookie category to enable or disable their use.</p>"; 1106 }); 1107} 1108*/ 1109 1110 1111 1112 1113/*****************************************************************************/ 1114/* SALLE DE PRESSE - LIST - ENLEVER TRAIT UNION SI VIDE */ 1115/*****************************************************************************/ 1116function hideEmptySpan() { 1117 $('p.media-element span').each(function() { 1118 if ($(this).is(':empty') || $(this).html().trim() === "- ") { 1119 $(this).remove(); 1120 } 1121 }); 1122} 1123// Run the function initially 1124hideEmptySpan(); 1125 1126// Create a MutationObserver instance 1127const spanObserver = new MutationObserver((mutationsList, spanObserver) => { 1128 // Call processContent() whenever mutations occur in the DOM 1129 hideEmptySpan(); 1130}); 1131 1132spanObserver.observe(document.body, { childList: true, subtree: true });
1133 1134 1135 1136 1137 1138/*****************************************************************************/ 1139/* GDPR MODIFIER LE TEXTE FRANCAIS DE LA BARRE EN BAS EN STICKY AND MODAL */ 1140/*****************************************************************************/ 1141 1142if ($("body").hasClass("lang-fr")) { 1143 /* STICKY */ 1144 window.addEventListener("DOMContentLoaded", () => { 1145 const interval_titre = setInterval(() => { 1146 const element_titre = document.querySelector(".cookie-consent-modal > p.consent-title"); 1147 if (!element_titre) return; 1148 element_titre.innerHTML = "Nous voulons mieux vous servir !"; 1149 clearInterval(interval_titre); 1150 }, 500); 1151 const interval_description = setInterval(() => { 1152 const element_description = document.querySelector(".cookie-consent-modal > p.consent-description"); 1153 if (!element_description) return; 1154 element_description.innerHTML = "Nous utilisons des cookies afin de vous offrir la meilleure expérience possible. N'hésitez pas à consulter notre <a href='/fr/politique-sur-la-protection-des-renseignements-personnels' target='_blank'>politique de confidentialité</a> pour en savoir plus."; 1155 clearInterval(interval_description); 1156 }, 500); 1157 }); 1158 1159 /* MODAL */ 1160 $(document).on('click', '.cookie-consent-modal .btn-link', function () { 1161 const element = document.querySelector(".cookie-modal .cm-header > p"); 1162 if (!element) return; 1163 element.innerHTML = "<p>Nous utilisons des cookies afin de vous offrir une navigation fluide et agréable. Vous avez la possibilité de refuser, accepter ou gérer ces préférences en cliquant sur l'un des trois boutons ci-dessous.</p> <p>Cliquez sur chaque catégorie de cookies pour activer ou désactiver leur utilisation.</p>"; 1164 }); 1165} 1166 1167 1168/*****************************************************************************/ 1169/* GDPR MODIFIER LE TEXTE ANGLAIS DE LA BARRE EN BAS EN STICKY */ 1170/*****************************************************************************/ 1171/* MODAL */ 1172if ($("body").hasClass("lang-en")) { 1173 1174 /* STICKY */ 1175 window.addEventListener("DOMContentLoaded", () => { 1176 const interval_titre = setInterval(() => { 1177 const element_titre = document.querySelector(".cookie-consent-modal > p.consent-title"); 1178 if (!element_titre) return; 1179 element_titre.innerHTML = "We want to serve you better!"; 1180 clearInterval(interval_titre); 1181 }, 500); 1182 const interval_description = setInterval(() => { 1183 const element_description = document.querySelector(".cookie-consent-modal > p.consent-description"); 1184 if (!element_description) return; 1185 element_description.innerHTML = "We use cookies to provide you with the best possible experience. Please feel free to review our <a href='/en/privacy-policy' target='_blank'>privacy policy</a> to learn more."; 1186 clearInterval(interval_description); 1187 }, 500); 1188 }); 1189 1190 /* MODAL */ 1191 $(document).on('click', '.cookie-consent-modal .btn-link', function () { 1192 const element = document.querySelector(".cookie-modal .cm-header > p"); 1193 if (!element) return; 1194 element.innerHTML = "<p>We use cookies to provide you with a smooth and enjoyable browsing experience. You have the option to refuse, accept, or manage these preferences by clicking on one of the three buttons below.</p> <p>Click on each cookie category to enable or disable their use.</p>"; 1195 }); 1196} 1197 1198 1199 1200/*****************************************************************************/ 1201/* CALCULATOR */ 1202if ($("body").hasClass("calculator")) { 1203 1204 const translations = { 1205 "en": { 1206 "ageRequired": "Age is required.", 1207 "ageInvalid": "The FH-Risk-Score calculator is only validated for patients aged 18 to 65.", 1208 "hdlcRequired": "HDLC is required.", 1209 "ldlcRequired": "LDLC is required.", 1210 "hypertensionRequired": "Hypertension is required.", 1211 "smokingRequired": "Smoking is required.", 1212 "resultPrefix": "FH-Risk-Score: ", 1213 "lowRisk": "Low risk", 1214 "moderateRisk": "Moderate risk", 1215 "highRisk": "High risk", 1216 "descriptionResult": "10-year cardiovascular disease risk (including: stable and unstable angina, myocardial infarction, coronary angioplasty, coronary artery bypass graft, claudication, peripheral angioplasty, peripheral arterial surgery, transient ischemic attack, stroke,
1216carotidendarterectomy, carotid angioplasty, and cardiovascular death)." 1217 }, 1218 "fr": { 1219 "ageRequired": "L'âge est requis.", 1220 "ageInvalid": "Le calculateur FH-Risk-Score nâest validé que pour les patients de 18 à 65 ans.", 1221 "hdlcRequired": "Le HDLC est requis.", 1222 "ldlcRequired": "Le LDLC est requis.", 1223 "hypertensionRequired": "L'hypertension est requise.", 1224 "smokingRequired": "Le tabagisme est requis.", 1225 "resultPrefix": "FH-Risk-Score : ", 1226 "lowRisk": "Faible risque", 1227 "moderateRisk": "Risque modéré", 1228 "highRisk": "Risque élevé", 1229 "descriptionResult": "Risque de maladies cardiovasculaires sur 10 ans (incluant: angine stable et instable, infarctus du myocarde, angioplastie coronarienne, pontage, claudication, angioplastie périphérique, chirurgie artérielle périphérique, ischémie cérébrale transitoire, AVC, endartériectomie carotidienne, angioplastie carotidienne et décès cardiovasculaire)." 1230 } 1231 }; 1232 1233 const mgdlToMmol = val => val / 38.67; 1234 const mmolToMgdl = val => val * 38.67; 1235 1236 const pageLang = document.body.classList.contains("lang-fr") ? "fr" : "en"; 1237 1238 function translate(key, lang = pageLang) { 1239 return translations[lang][key] || key; 1240 } 1241 1242 function updateUnitLabel(unit, id) { 1243 const label = document.querySelector(`.dynamic-mesure-${id}`); 1244 label.textContent = unit === "mgdl" ? "mg/dL" : "mmol/L"; 1245 } 1246 1247 function convertInput(inputId, unitName, labelId) { 1248 const input = document.getElementById(inputId); 1249 let value = parseFloat(input.value); 1250 1251 const selectedUnit = document.querySelector(`input[name="${unitName}"]:checked`).value; 1252 const labelEl = document.querySelector(`.dynamic-mesure-${labelId}`); 1253 const currentUnit = labelEl.textContent === "mg/dL" ? "mgdl" : "mmol"; 1254 1255 if (isNaN(value)) { 1256 updateUnitLabel(selectedUnit, labelId); 1257 return; 1258 } 1259 1260 if (selectedUnit !== currentUnit) { 1261 if (selectedUnit === "mmol") { 1262 input.value = mgdlToMmol(value).toFixed(2); 1263 } else { 1264 input.value = mmolToMgdl(value).toFixed(0); 1265 } 1266 } 1267 1268 updateUnitLabel(selectedUnit, labelId); 1269 } 1270 1271 function validateUnitValue(value, unit, field) { 1272 /* 1273 const val = parseFloat(value); 1274 if (isNaN(val)) return true; 1275 1276 if (unit === "mmol") { 1277 if (field === "hdlc" && (val > 5 || val < 0.5)) { 1278 alert("La valeur HDL-C en mmol/L semble incorrecte. Vérifiez lâunité ou la valeur."); 1279 return false; 1280 } 1281 if (field === "ldlc" && (val > 10 || val < 0.5)) { 1282 alert("La valeur LDL-C en mmol/L semble incorrecte. Vérifiez lâunité ou la valeur."); 1283 return false; 1284 } 1285 } else { 1286 if (field === "hdlc" && (val > 200 || val < 10)) { 1287 alert("La valeur HDL-C en mg/dL semble incorrecte. Vérifiez lâunité ou la valeur."); 1288 return false; 1289 } 1290 if (field === "ldlc" && (val > 400 || val < 20)) { 1291 alert("La valeur LDL-C en mg/dL semble incorrecte. Vérifiez lâunité ou la valeur."); 1292 return false; 1293 } 1294 } 1295 */ 1296 return true; 1297 } 1298 1299 function validateFormIRCM(event) { 1300 event.preventDefault(); 1301 1302 const lang = pageLang; 1303 const sex = document.getElementById("sex").value; 1304 const age = document.getElementById("age").value.trim(); 1305 const hdlc = document.getElementById("hdlc").value.trim(); 1306 const ldlc = document.getElementById("ldlc").value.trim(); 1307 const hdlUnit = document.querySelector('input[name="unit-select-1"]:checked').value; 1308 const ldlUnit = document.querySelector('input[name="unit-select-2"]:checked').value; 1309 1310 if (!validateUnitValue(hdlc, hdlUnit, "hdlc") || !validateUnitValue(ldlc, ldlUnit, "ldlc")) { 1311 return; 1312 } 1313 1314 let hdlcVal = parseFloat(hdlc); 1315 let ldlcVal = parseFloat(ldlc); 1316 if (hdlUnit === "mgdl") hdlcVal = mgdlToMmol(hdlcVal); 1317 if (ldlUnit === "mgdl") ldlcVal = mgdlToMmol(ldlcVal); 1318 1319 let hypertension = null; 1320 if (document.getElementById("hypertensionNo").checked) { 1321 hypertension = 0; 1322 document.getElementById("hypertensionError").textContent = ""; 1323 } else if (document.getElementById("hypertensionYes").checked) { 1324 hypertension = 1; 1325 document.getElementById("hypertensionError").textContent = ""; 1326 } else { 1327 document.getElementById("hypertensionError").textContent = translate("hypertensionRequired", lang); 1328 } 1329 1330 let smoking = null; 1331 if (document.getElementById("smokingNo").checked) { 1332 smoking = 0; 1333 document.getElementById("smokingError").textContent = ""; 1334 } else if (document.getElementById("smokingYes").checked) { 1335 smoking = 1; 1336 document.getElementById("smokingError").textContent = ""; 1337 } else { 1338 document.getElementById("smokingError").textContent = translate("smokingRequired", lang); 1339 } 1340 1341 let lp = document.getElementById("lp").value; 1342 lp = lp.trim() === "" ? 0 : (parseFloat(lp) >= 50 ? 1 : 0); 1343 1344 document.getElementById("ageError").textContent = age === "" ? translate("ageRequired", lang) : (age < 18 || age > 65 ? translate("ageInvalid", lang) : ""); 1345 document.getElementById("hdlcError").textContent = hdlc === "" ? translate("hdlcRequired", lang) : ""; 1346 document.getElementById("ldlcError").textContent = ldlc === "" ? translate("ldlcRequired", lang) : ""; 1347 1348 if ( 1349 document.getElementById("ageError").textContent === "" && 1350 document.getElementById("hdlcError").textContent === "" && 1351 document.getElementById("ldlcError").textContent === "" && 1352 document.getElementById("hypertensionError").textContent === "" && 1353 document.getElementById("smokingError").textContent === "" 1354 ) { 1355 let Age1 = 0, Age2 = 0, Age3 = 0, Age4 = 0, Age5 = 0, Age6 = 0, Age7 = 0; 1356 if (age >= 31 && age <= 35) Age1 = 1; 1357 if (age >= 36 && age <= 40) Age2 = 1; 1358 if (age >= 41 && age <= 45) Age3 = 1; 1359 if (age >= 46 && age <= 50) Age4 = 1; 1360 if (age >= 51 && age <= 55) Age5 = 1; 1361 if (age >= 56 && age <= 60) Age6 = 1; 1362 if (age >= 61) Age7 = 1; 1363 1364 let HDL1 = 0, HDL2 = 0, HDL3 = 0; 1365 if (hdlcVal >= 1.01 && hdlcVal <= 1.30) HDL1 = 1; 1366 if (hdlcVal >= 0.85 && hdlcVal <= 1.00) HDL2 = 1; 1367 if (hdlcVal < 0.85) HDL3 = 1; 1368 1369 let LDL1 = 0, LDL2 = 0, LDL3 = 0, LDL4 = 0; 1370 if (ldlcVal >= 5.51 && ldlcVal <= 7.50) LDL1 = 1; 1371 if (ldlcVal >= 7.51 && ldlcVal <= 8.50) LDL2 = 1; 1372 if (ldlcVal >= 8.51 && ldlcVal <= 9.50) LDL3 = 1; 1373 if (ldlcVal > 9.50) LDL4 = 1; 1374 1375 console.log("Flags:"); 1376 console.log("Age flags:", Age1, Age2, Age3, Age4, Age5, Age6, Age7); 1377 console.log("HDL flags:", HDL1, HDL2, HDL3); 1378 console.log("LDL flags:", LDL1, LDL2, LDL3, LDL4); 1379 1380 console.log("𧪠Calculating FH-Risk Score with:"); 1381 console.log("Sex:", sex); 1382 console.log("Age:", age); 1383 console.log("HDL-C Value:", hdlcVal.toFixed(2), "mmol/L"); 1384 console.log("LDL-C Value:", ldlcVal.toFixed(2), "mmol/L"); 1385 console.log("Smoking:", smoking); 1386 console.log("Hypertension:", hypertension); 1387 console.log("Lp(a):", lp); 1388 1389 const score = 1390 0.721 * Number(sex) + 1391 0.625 * Number(smoking) + 1392 0.644 * Number(hypertension) + 1393 0.434 * Number(lp) + 1394 0.938 * Number(Age1) + 1395 1.383 * Number(Age2) + 1396 1.621 * Number(Age3) + 1397 1.738 * Number(Age4) + 1398 1.804 * Number(Age5) + 1399 1.964 * Number(Age6) + 1400 2.256 * Number(Age7) + 1401 0.315 * Number(LDL1) + 1402 0.718 * Number(LDL2) + 1403 0.918 * Number(LDL3) + 1404 1.136 * Number(LDL4) + 1405 0.298 * Number(HDL1) + 1406 0.712 * Number(HDL2) + 1407 0.752 * Number(HDL3); 1408 1409 const risk = 1 - Math.pow(0.889, Math.exp(score - 3)); 1410 1411 console.log("Score parts:"); 1412 console.log("score:", score); 1413 console.log("risk (raw):", risk); 1414 1415 const riskPercent = Math.round(risk * 100); 1416 let riskLabel = "", riskColor = ""; 1417 if (riskPercent < 10) { 1418 riskLabel = translate("lowRisk", lang); riskColor = "yellow"; 1419 } else if (riskPercent < 20) { 1420 riskLabel = translate("moderateRisk", lang); riskColor = "orange"; 1421 } else { 1422 riskLabel = translate("highRisk", lang); riskColor = "red"; 1423 } 1424 1425 document.getElementById("result").innerHTML = ` 1426 <div class="result-container"> 1427 <div class="content-left"> 1428 <div class="circle ${riskColor}"></div> 1429 </div> 1430 <div class="content-right"> 1431 <h2>${translate("resultPrefix", lang)}
1432 <span style="color:#0091d1;">${riskPercent}%</span> 1433 </h2> 1434 <h3><span style="color:#0091d1;">${riskLabel}</span></h3> 1435 <p>${translate("descriptionResult", lang)}</p> 1436 </div> 1437 </div> 1438 `; 1439 } else { 1440 document.getElementById("result").innerHTML = ""; 1441 } 1442 } 1443 1444 document.querySelectorAll('input[name="unit-select-1"]').forEach(radio => { 1445 radio.addEventListener("change", () => convertInput("hdlc", "unit-select-1", 1)); 1446 }); 1447 document.querySelectorAll('input[name="unit-select-2"]').forEach(radio => { 1448 radio.addEventListener("change", () => convertInput("ldlc", "unit-select-2", 2)); 1449 }); 1450} 1451/*****************************************************************************/ 1452/* PUBLICATIONS SCIENTIFIQUES DES CHERCHEUR.E.S */ 1453/*****************************************************************************/ 1454(function () { 1455 'use strict'; 1456 1457 const BASE_URL = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/"; 1458 let articlesCache = []; 1459 let activeTab = 'all'; 1460 1461 function init() { 1462 const container = document.getElementById('pubmed-module'); 1463 if (!container) return; 1464 1465 const list = document.getElementById('pubmed-list'); 1466 const countDisplay = document.getElementById('pub-count'); 1467 const filter = document.getElementById('pubmed-filter'); 1468 1469 const baseQuery = container.getAttribute('data-pubmed-query'); 1470 const affiliation = container.getAttribute('data-affiliation') || ''; 1471 1472 if (!baseQuery || !list || !countDisplay) { 1473 console.error('Module PubMed: configuration incomplète'); 1474 return; 1475 } 1476 1477 // CORRECTION : On ne filtre PAS par affiliation dans la requête API 1478 // car cela élimine trop de publications (affiliations mal indexées) 1479 const buildQuery = () => baseQuery; // Requête simple sans affiliation 1480 1481 let tabsEl = document.getElementById('pubmed-tabs'); 1482 if (!tabsEl) { 1483 tabsEl = document.createElement('div'); 1484 tabsEl.id = 'pubmed-tabs'; 1485 tabsEl.className = 'ircm-tabs'; 1486 if (filter && filter.parentNode) { 1487 filter.parentNode.insertBefore(tabsEl, filter); 1488 } else { 1489 container.appendChild(tabsEl); 1490 } 1491 } 1492 1493 // Extraction nom auteur 1494 const authorName = (baseQuery.match(/([^[]+)\[Author\]/i)?.[1] || "").trim(); 1495 1496 // Gestion accents pour regex 1497 const getPattern = (text) => { 1498 return text.split('').map(char => { 1499 const eq = { 1500 'c':'[cç]', 'e':'[eéèêë]', 'a':'[aà âä]', 1501 'o':'[oôö]', 'i':'[iïî]', 'u':'[uùûü]', 1502 'y':'[yÿ]', 'n':'[nñ]' 1503 }; 1504 const low = char.toLowerCase(); 1505 if (eq[low]) return eq[low]; 1506 if (char === ' ' || char === '-') return '[-\\s]*'; 1507 return char.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 1508 }).join(''); 1509 }; 1510 1511 const boldAuthor = (text) => { 1512 if (!authorName || !text) return text; 1513 try { 1514 return text.replace(new RegExp(`(${getPattern(authorName)})`, 'gi'), '<strong>$1</strong>'); 1515 } catch (e) { return text; } 1516 }; 1517 1518 // i18n 1519 const i18n = { 1520 fr: { 1521 notFound: "Aucune publication trouvée.", 1522 error: "Erreur de chargement.", 1523 publications: (n) => `${n} PUBLICATION${n > 1 ? 'S' : ''}`, 1524 placeholder: "Rechercher par mot-clé...", 1525 cite: "Citer", 1526 copied: "Copié !", 1527 tabs: { 1528 all: "Tous", journal: "Articles", review: "Reviews", 1529 preprint: "Prépublications", conference: "Conférences", 1530 book: "Livres", other: "Autres" 1531 } 1532 }, 1533 en: {
1534 notFound: "No publications found.", 1535 error: "Loading error.", 1536 publications: (n) => `${n} PUBLICATION${n > 1 ? 'S' : ''}`, 1537 placeholder: "Search by keyword...", 1538 cite: "Cite", copied: "Copied!", 1539 tabs: { 1540 all: "All", journal: "Articles", review: "Reviews", 1541 preprint: "Preprints", conference: "Conferences", 1542 book: "Books", other: "Other" 1543 } 1544 } 1545 }; 1546 1547 const lang = () => document.documentElement.lang?.startsWith('en') ? 'en' : 'fr'; 1548 const t = () => i18n[lang()]; 1549 1550 const getPubType = (item) => { 1551 const types = (item.pubtype || []).map(p => String(p).toLowerCase()); 1552 if (types.includes('review')) return 'review'; 1553 if (types.includes('journal article')) return 'journal'; 1554 if (types.includes('preprint')) return 'preprint'; 1555 if (types.some(t => t.includes('conference'))) return 'conference'; 1556 if (types.includes('book')) return 'book'; 1557 return 'other'; 1558 }; 1559 1560 // Construction citation séparée en 3 parties 1561 const buildCitation = (item) => { 1562 const title = item.title || 'Sans titre'; 1563 const authors = (item.authors || []).map(a => a.name).join(", ") || "Auteurs inconnus"; 1564 const authorsHtml = boldAuthor(authors); 1565 1566 const details = []; 1567 if (item.source) details.push(item.source); 1568 if (item.pubdate) { 1569 let dateStr = item.pubdate; 1570 if (item.volume) { 1571 dateStr += `;${item.volume}`; 1572 if (item.issue) dateStr += `(${item.issue})`; 1573 if (item.pages) dateStr += `:${item.pages}`; 1574 } 1575 details.push(dateStr); 1576 } 1577 details.push(`PMID: ${item.uid}`); 1578 1579 const detailsText = details.join('. ') + '.'; 1580 const plain = `${authors}. ${title} ${detailsText}`; 1581 1582 return { title, authors: authorsHtml, details: detailsText, plain }; 1583 }; 1584 1585 const renderTabs = () => { 1586 const types = ['all', 'journal', 'review', 'preprint', 'conference', 'book', 'other']; 1587 const counts = { all: articlesCache.length }; 1588 types.slice(1).forEach(type => counts[type] = 0); 1589 articlesCache.forEach(a => { if (counts[a.pubType] !== undefined) counts[a.pubType]++; }); 1590 1591 tabsEl.innerHTML = types 1592 .filter(type => type === 'all' || counts[type] > 0) 1593 .map(type => ` 1594 <button class="ircm-tab ${activeTab === type ? 'active' : ''}" data-type="${type}"> 1595 ${t().tabs[type]} <span class="ircm-tab-count">${counts[type]}</span> 1596 </button> 1597 `).join(''); 1598 1599 tabsEl.querySelectorAll('.ircm-tab').forEach(btn => { 1600 btn.addEventListener('click', () => { 1601 activeTab = btn.dataset.type; 1602 applyFilters(); 1603 }); 1604 }); 1605 }; 1606 1607 const renderList = (items) => { 1608 countDisplay.textContent = t().publications(items.length); 1609 1610 if (items.length === 0) { 1611 list.innerHTML = `<p class="ircm-not-found">${t().notFound}</p>`; 1612 return; 1613 } 1614 1615 // Tri garanti par date décroissante 1616 const sortedItems = [...items].sort((a, b) => { 1617 const yearA = parseInt(String(a.pubdate).match(/\d{4}/)?.[0]) || 0; 1618 const yearB = parseInt(String(b.pubdate).match(/\d{4}/)?.[0]) || 0; 1619 return yearB - yearA; 1620 }); 1621 1622 list.innerHTML = sortedItems.map(item => { 1623 const cit = buildCitation(item); 1624 const type = item.pubType || 'other'; 1625 1626 return `<div class="ircm-pub-item"> 1627 <div class="ircm-pub-header"> 1628 <a href="https://pubmed.ncbi.nlm.nih.gov/${item.uid}/" target="_blank" class="ircm-pub-link">${cit.title}</a>
1629 <span class="ircm-type-badge ircm-type-${type}">${t().tabs[type]}</span> 1630 </div> 1631 <div class="ircm-pub-authors">${cit.authors}</div> 1632 <div class="ircm-pub-details">${cit.details}</div> 1633 <button class="ircm-cite-btn" data-citation="${encodeURIComponent(cit.plain)}">${t().cite}</button> 1634 </div>`; 1635 }).join(''); 1636 1637 list.querySelectorAll('.ircm-cite-btn').forEach(btn => { 1638 btn.addEventListener('click', function() { 1639 const text = decodeURIComponent(this.dataset.citation); 1640 navigator.clipboard.writeText(text).then(() => { 1641 const original = this.textContent; 1642 this.textContent = t().copied; 1643 this.classList.add('copied'); 1644 setTimeout(() => { 1645 this.textContent = original; 1646 this.classList.remove('copied'); 1647 }, 1500); 1648 }); 1649 }); 1650 }); 1651 }; 1652 1653 const applyFilters = () => { 1654 let filtered = articlesCache; 1655 if (activeTab !== 'all') filtered = filtered.filter(a => a.pubType === activeTab); 1656 1657 const val = filter.value.toLowerCase(); 1658 if (val) filtered = filtered.filter(a => 1659 a.title.toLowerCase().includes(val) || 1660 a.authors?.some(au => au.name.toLowerCase().includes(val)) 1661 ); 1662 1663 renderList(filtered); 1664 renderTabs(); 1665 }; 1666 1667 // Chargement avec limite augmentée pour s'assurer d'avoir tout 1668 const load = async () => { 1669 try { 1670 countDisplay.innerHTML = '<span class="loading-spinner">â³</span> Chargement...'; 1671 1672 const fullQuery = buildQuery(); 1673 console.log('Requête PubMed:', fullQuery); // Pour déboguer 1674 1675 // retmax=10000 pour être sûr d'avoir tout (max autorisé par NCBI sans API key) 1676 const searchRes = await fetch(`${BASE_URL}esearch.fcgi?db=pubmed&term=${encodeURIComponent(fullQuery)}&retmode=json&retmax=10000`); 1677 if (!searchRes.ok) throw new Error('Erreur réseau'); 1678 1679 const searchData = await searchRes.json(); 1680 const ids = searchData.esearchresult?.idlist || []; 1681 1682 console.log('IDs trouvés:', ids.length); // Vérifier le nombre 1683 1684 if (!ids.length) { 1685 renderList([]); 1686 return; 1687 } 1688 1689 countDisplay.textContent = `0 / ${ids.length}`; 1690 const all = []; 1691 1692 // Récupération par lots de 200 1693 for (let i = 0; i < ids.length; i += 200) { 1694 const batch = ids.slice(i, i + 200).join(','); 1695 const res = await fetch(`${BASE_URL}esummary.fcgi?db=pubmed&id=${batch}&retmode=json`); 1696 if (!res.ok) continue; 1697 1698 const data = await res.json(); 1699 const items = Object.values(data.result || {}).filter(x => x.uid).map(x => ({ 1700 ...x, 1701 pubType: getPubType(x) 1702 })); 1703 1704 all.push(...items); 1705 countDisplay.textContent = `${all.length} / ${ids.length}`; 1706 } 1707 1708 articlesCache = all; 1709 activeTab = 'all'; 1710 applyFilters(); 1711 1712 } catch (err) { 1713 console.error(err); 1714 list.innerHTML = `<p class="ircm-error">${t().error}</p>`; 1715 } 1716 }; 1717 1718 filter.placeholder = t().placeholder; 1719 filter.addEventListener('input', applyFilters); 1720 1721 new MutationObserver(() => articlesCache.length && applyFilters()) 1722 .observe(document.documentElement, { attributes: true, attributeFilter: ['lang'] }); 1723 1724 load(); 1725 } 1726 1727 if (document.readyState === 'loading') { 1728 document.addEventListener('DOMContentLoaded', init); 1729 } else { 1730 init(); 1731 } 1732})(); 1733/*****************************************************************************/ 1734/* LOOP */ 1735/*****************************************************************************/ 1736(function () { 1737 'use strict'; 1738 1739 function initMarquee(outer) { 1740 var track = outer.querySelector('.mq-track'); 1741 if (!track) return; 1742 1743 /* ââ Normalise la structure : on veut exactement un .mq-set 1744 enfant direct de .mq-track, contenant tous les items ââ */ 1745 var set = track.querySelector(':scope > .mq-set'); 1746 1747 if (!set) { 1748 /* Cas 1 : pas de .mq-set â englobe tous les enfants directs */ 1749 set = document.createElement('div'); 1750 set.className = 'mq-set'; 1751 while (track.firstChild) { 1752 set.appendChild(track.firstChild); 1753 } 1754 track.appendChild(set); 1755 } 1756 1757 /* Cas 2 : .mq-set imbriqué à l'intérieur d'un .mq-item 1758 â on remonte les items au bon niveau */ 1759 var nestedSets = set.querySelectorAll('.mq-set'); 1760 if (nestedSets.length > 0) { 1761 var wrapper = document.createElement('div'); 1762 wrapper.className = 'mq-set'; 1763 var items = set.querySelectorAll('.mq-item');
1764 items.forEach(function (item) { 1765 var inner = item.querySelector('.mq-set'); 1766 if (inner) { 1767 while (inner.firstChild) item.appendChild(inner.firstChild); 1768 inner.parentNode.removeChild(inner); 1769 } 1770 wrapper.appendChild(item); 1771 }); 1772 track.innerHTML = ''; 1773 track.appendChild(wrapper); 1774 set = wrapper; 1775 } 1776 1777 /* ââ Paramètres ââ */ 1778 var copies = parseInt(outer.dataset.copies) || 4; 1779 var dur = parseFloat(outer.dataset.dur) || 20; 1780 1781 /* ââ Durée de l'animation ââ */ 1782 track.style.setProperty('--dur', dur + 's'); 1783 1784 /* ââ Dupliquer le set N fois ââ */ 1785 for (var i = 1; i < copies; i++) { 1786 track.appendChild(set.cloneNode(true)); 1787 } 1788 1789 /* ââ Mesurer --shift après le premier paint ââ */ 1790 requestAnimationFrame(function () { 1791 requestAnimationFrame(function () { 1792 measure(track); 1793 }); 1794 }); 1795 1796 /* ââ Re-mesurer au resize ââ */ 1797 window.addEventListener('resize', debounce(function () { 1798 measure(track); 1799 }, 200)); 1800 } 1801 1802 function measure(track) { 1803 var firstSet = track.querySelector('.mq-set'); 1804 if (!firstSet) return; 1805 track.style.setProperty('--shift', firstSet.offsetWidth + 'px'); 1806 } 1807 1808 function debounce(fn, delay) { 1809 var t; 1810 return function () { clearTimeout(t); t = setTimeout(fn, delay); }; 1811 } 1812 1813 function autoInit() { 1814 document.querySelectorAll('[data-marquee]').forEach(initMarquee); 1815 } 1816 1817 if (document.readyState === 'loading') { 1818 document.addEventListener('DOMContentLoaded', autoInit); 1819 } else { 1820 autoInit(); 1821 } 1822 1823 /* ââ API publique ââ */ 1824 window.Marquee = { 1825 init: function (target) { 1826 var el = typeof target === 'string' ? document.querySelector(target) : target; 1827 if (el) initMarquee(el); 1828 }, 1829 setSpeed: function (target, seconds) { 1830 var outer = typeof target === 'string' ? document.querySelector(target) : target; 1831 if (!outer) return; 1832 var track = outer.querySelector('.mq-track'); 1833 if (track) track.style.setProperty('--dur', seconds + 's'); 1834 }, 1835 pause: function (target) { 1836 var outer = typeof target === 'string' ? document.querySelector(target) : target; 1837 if (!outer) return; 1838 var track = outer.querySelector('.mq-track'); 1839 if (track) track.style.animationPlayState = 'paused'; 1840 }, 1841 resume: function (target) { 1842 var outer = typeof target === 'string' ? document.querySelector(target) : target; 1843 if (!outer) return; 1844 var track = outer.querySelector('.mq-track'); 1845 if (track) track.style.animationPlayState = 'running'; 1846 } 1847 }; 1848 1849})();</script>
1849 <link rel="stylesheet" href="https://cdn.ca.yapla.com/js/joomflo/cookieconsent/cookieconsent.min.css?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa" type="text/css"><link rel="stylesheet" href="/font/neotechstd/stylesheet.css?v=v6.286.0" type="text/css"><link rel="stylesheet" href="/font/brandontext/stylesheet.css?v=v6.286.0" type="text/css"><link rel="stylesheet" href="https://cdn.ca.yapla.com/css/jquery-tools.css?v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa" type="text/css"><link rel="stylesheet" href="https://cdn.ca.yapla.com/css/paginator.css?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa" type="text/css"><link rel="stylesheet" href="https://cdn.ca.yapla.com/css/icons.css?v=v6.286.0&v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa" type="text/css"><link rel="stylesheet" href="https://cdn.ca.yapla.com/js/jquery/hpj-custom/jquery-ui-1.7.custom.css?v=v6.286.0&sha1=58f08ee70a13815357d6966834bf9d10186a7cfa" type="text/css"> <link href="https://fonts.googleapis.com/css?family=Muli:400" rel="stylesheet">
1850<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"f76546586f","applicationID":"1038230873","transactionName":"YQNRMhMEWEFRVEFRX1hJZhQISl9cVFJNFkBeFg==","queueTime":0,"applicationTime":405,"atts":"TURSRFseS08=","errorBeacon":"bam.nr-data.net","agent":""}</script>
1850</body> 1851 1852</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.