// Élargit la correspondance de cours complets existants aux chapitres qu’ils couvrent réellement (function () { var ext = { terminal: /Fichiers : cp, mv|Lire et éditer|cat, less|Mode examen « Admin Linux »/i, archi: /Performance : vmstat|Noyau et modules|lsmod|sysctl/i, diagnostic0: /\bARP\b|ICMP, ping, traceroute|TCP et UDP : ports|Analyse de trames|Dépannage : réseau cassé|Mode examen « Réseau »/i, sql: /Modèle relationnel|Agrégats : GROUP BY|DDL : CREATE|DML : INSERT|Vues, procédures|Transactions et ACID|Index, EXPLAIN/i, tubes: /Expressions régulières/i, binaire: /Codage des entiers/i, crypto: /PKI, autorité de certification|X\.509|\bGPG\b/i, pandas: /Nettoyage et qualité des données|Visualisation et tableaux de bord|Mode examen « Data »/i, ml: /Sur-apprentissage|Biais, éthique|Sécurité des modèles/i, neurones: /Traitement du langage et de la voix/i, iot: /Node-RED|Modbus|CoAP/i, python: /Mode examen « épreuve pratique NSI »|Types construits|Épreuve pratique chronométrée|Projets?$|Grand oral et projets|SAÉ|Projet technique|Projet de fin d’études|Projet data|Réaliser un développement d’application|Développement web et applications/i, web2: /Photographie numérique|Histoire de l’informatique|Applications web|Développement : web, API/i, iot2: /Chaîne d’information et chaîne d’énergie|Localisation et cartographie|GPS, NMEA/i, ipv42: /Préparer une installation|plan d’adressage|Réseaux et infrastructure du SI/i, dns2: /Présence en ligne/i, sauvegarde: /Maintenir et dépanner : diagnostic, sauvegarde/i, diagnostic2: /Épreuves pratiques|Épreuves blanches|Maintenir et sécuriser l’infrastructure|Administrer et sécuriser les infrastructures/i, systemd: /Systèmes : Linux|Exploiter les serveurs Linux|LPIC-1|LFCS/i, routagedyn: /réseau fondamental|CCNA/i, vulns: /Sécurité offensive|pentest|exploitation/i, ml2: /Éthique, biais et AI Act/i, bigdata: /Ingénierie des données et big data/i, modelisation: /Systèmes d’information et urbanisation|Génie logiciel et architecture/i }; (window.CONTENUS_PRO || []).forEach(function (c) { if (!c.intro) return; Object.keys(ext).forEach(function (k) { if (k.replace(/\d+$/, '') === c.id) c.match = new RegExp(c.match.source + '|' + ext[k].source, 'i'); }); }); })();