{
  "version": 3,
  "sources": ["/cdn/shop/t/87/assets/ls-size-guide.js"],
  "sourcesContent": ["/* ls-size-guide.js  v33 (2026-09-23)\n   Moteur UNIQUE du guide des tailles, pour les 17 vitrines et 11 langues.\n   Avant : 10 copies divergentes du script dans 10 corps d'article traduits.\n   Le calculateur allemand donnait 5XL/6XL/7XL la ou le francais donnait 4XL/5XL.\n   Regles alignees sur le calcul canonique du chat (src/chat/tools.py) :\n   - grille poids v31 (Option A, conservatrice) = tableaux affiches\n   - plancher de STATURE homme : >=180 XL, >=182 2XL, >=184 3XL, >=192 4XL (MAX avec la taille-poids)\n   - femme >=170 cm : +1 cran (longueur de jambe)\n   - petite stature <=160 cm : -1 cran (jamais sous la 1re taille)\n   - ample = +1 cran, sauf a partir du 3XL ou ample = meme taille\n   - plancher S : le XS \"fait enfant\", on recommande S (le XS reste dans les tableaux)\n   Liens : /collections/<homme|femme>?filter.v.m.custom.taille=<T>&sort_by=manual\n   La valeur metafield est 2XL, jamais XXL (XXL renvoie 0 resultat). */\n(function(){\n  if (window.__lsSizeGuide) return; window.__lsSizeGuide = 1;\n  var CFG = window.LS_SG || {};\n  var LOC = (CFG.locale || document.documentElement.lang || 'fr').slice(0,2).toLowerCase();\n\n  var SIZES_HOMME = [\n    {label:'XS', fr:'36',      kgMin:0,   kgMax:46,  waistMin:62,  waistMax:70},\n    {label:'S',  fr:'38 / 40', kgMin:46,  kgMax:55,  waistMin:70,  waistMax:78},\n    {label:'M',  fr:'42 / 44', kgMin:55,  kgMax:63,  waistMin:78,  waistMax:86},\n    {label:'L',  fr:'46 / 48', kgMin:63,  kgMax:72,  waistMin:86,  waistMax:94},\n    {label:'XL', fr:'50 / 52', kgMin:72,  kgMax:80,  waistMin:94,  waistMax:102},\n    {label:'XXL',fr:'54',      kgMin:80,  kgMax:88,  waistMin:102, waistMax:110},\n    {label:'3XL',fr:'56 / 58', kgMin:88,  kgMax:95,  waistMin:110, waistMax:118},\n    {label:'4XL',fr:'60',      kgMin:95,  kgMax:103, waistMin:118, waistMax:126},\n    {label:'5XL',fr:'62',      kgMin:103, kgMax:112, waistMin:126, waistMax:134},\n    {label:'6XL',fr:'64',      kgMin:112, kgMax:120, waistMin:134, waistMax:142},\n    {label:'7XL',fr:'66',      kgMin:120, kgMax:130, waistMin:142, waistMax:150},\n    {label:'8XL',fr:'68',      kgMin:130, kgMax:150, waistMin:150, waistMax:162}\n  ];\n  var SIZES_FEMME = [\n    {label:'XS', fr:'32 / 34', kgMin:0,   kgMax:46,  waistMin:62,  waistMax:70},\n    {label:'S',  fr:'34 / 36', kgMin:46,  kgMax:55,  waistMin:70,  waistMax:78},\n    {label:'M',  fr:'38',      kgMin:55,  kgMax:65,  waistMin:78,  waistMax:86},\n    {label:'L',  fr:'40 / 42', kgMin:65,  kgMax:72,  waistMin:86,  waistMax:94},\n    {label:'XL', fr:'42 / 44', kgMin:72,  kgMax:78,  waistMin:94,  waistMax:102},\n    {label:'XXL',fr:'44 / 46', kgMin:78,  kgMax:85,  waistMin:102, waistMax:110},\n    {label:'3XL',fr:'46 / 48', kgMin:85,  kgMax:92,  waistMin:110, waistMax:118},\n    {label:'4XL',fr:'48 / 50', kgMin:92,  kgMax:100, waistMin:118, waistMax:126},\n    {label:'5XL',fr:'50 / 52', kgMin:100, kgMax:108, waistMin:126, waistMax:134},\n    {label:'6XL',fr:'52 / 54', kgMin:108, kgMax:116, waistMin:134, waistMax:142},\n    {label:'7XL',fr:'54 / 56', kgMin:116, kgMax:124, waistMin:142, waistMax:150},\n    {label:'8XL',fr:'56 / 58', kgMin:124, kgMax:135, waistMin:150, waistMax:158}\n  ];\n\n  /* ---------- i18n : chaque chaine reprend la traduction deja en ligne quand elle existait ---------- */\n  var I18N = {\n    fr:{maxNote:'C\\'est notre plus grande taille : \u00E0 ton poids, elle risque d\\'\u00EAtre juste.', minNote:'C\\'est notre plus petite taille : raccourcis les bretelles pour l\\'ajuster.', sep:' : ', see:'Voir en', fit:'Ajust\u00E9', loose:'Ample', need:'Renseigne au moins <strong>ta taille corporelle (cm)</strong> et <strong>ton poids (kg)</strong> pour obtenir ta recommandation.', out:'Tes mesures sont hors de notre fourchette standard. Contacte-nous : <a href=\"mailto:{m}\">{m}</a>.',\n        based:'Calcul\u00E9 sur', kgcm:'{w} kg et {h} cm', reco:'Recommandation', fitNote:'ajust\u00E9, confort quotidien', looseNote:'Le {s} offre une coupe plus ample, id\u00E9al avec un pull \u00E9pais par-dessous.',\n        tall:'\u00C0 {h} cm, c\\'est ta stature (longueur de jambe) qui commande : on part sur du {s}, ton poids seul donnerait du {w}.', tallF:'Grande (1m70+) : taille major\u00E9e d\\'un cran pour la longueur de jambe.', short:'Petite stature ({h} cm) : le {s} tombe mieux que le {w}.', floorS:'Le XS fait tr\u00E8s petit : on te conseille le S.',\n        straps:'<strong>Bretelles ajustables</strong> sur toutes nos salopettes : 5 \u00E0 8 cm de marge sur le buste et l\\'entrejambe.', axis:'Poids (kg) \u2192', cmkg:'cm \\\\ kg', cell:'Voir les salopettes {g} en {s}', h:'homme', f:'femme', pdp:'La grille exacte de chaque mod\u00E8le est sur sa fiche produit.'},\n    de:{maxNote:'Das ist unsere gr\u00F6\u00DFte Gr\u00F6\u00DFe: Bei deinem Gewicht k\u00F6nnte sie knapp sitzen.', minNote:'Das ist unsere kleinste Gr\u00F6\u00DFe: K\u00FCrze die Tr\u00E4ger, um sie anzupassen.', sep:': ', see:'Alle Modelle in', fit:'K\u00F6rpernah', loose:'Locker', need:'Gib mindestens <strong>deine K\u00F6rpergr\u00F6\u00DFe (cm)</strong> und <strong>dein Gewicht (kg)</strong> an.', out:'Deine Ma\u00DFe liegen au\u00DFerhalb unserer Standardgr\u00F6\u00DFen. Kontaktiere uns: <a href=\"mailto:{m}\">{m}</a>.',\n        based:'Berechnet auf Basis von', kgcm:'{w} kg und {h} cm', reco:'Empfehlung', fitNote:'k\u00F6rpernah, Alltagskomfort', looseNote:'{s} f\u00E4llt weiter aus, ideal mit dickem Pullover darunter.',\n        tall:'Bei {h} cm entscheidet deine K\u00F6rpergr\u00F6\u00DFe (Beinl\u00E4nge): Wir empfehlen {s}, dein Gewicht allein erg\u00E4be {w}.', tallF:'Gro\u00DF (ab 1,70 m): eine Gr\u00F6\u00DFe mehr f\u00FCr die Beinl\u00E4nge.', short:'Kleine K\u00F6rpergr\u00F6\u00DFe ({h} cm): {s} sitzt besser als {w}.', floorS:'XS f\u00E4llt sehr klein aus: Wir empfehlen S.',\n        straps:'<strong>Verstellbare Tr\u00E4ger</strong> an allen Latzhosen: 5 bis 8 cm Spielraum an Brust und Schritt.', axis:'Gewicht (kg) \u2192', cmkg:'cm \\\\ kg', cell:'Latzhosen f\u00FCr {g} in Gr\u00F6\u00DFe {s} ansehen', h:'Herren', f:'Damen', pdp:'Die genaue Gr\u00F6\u00DFentabelle jedes Modells steht auf seiner Produktseite.'},\n    en:{maxNote:'This is our largest size: at your weight it may be tight.', minNote:'This is our smallest size: shorten the straps to adjust it.', sep:': ', see:'Shop', fit:'Fitted', loose:'Relaxed', need:'Enter at least <strong>your height (cm)</strong> and <strong>your weight (kg)</strong>.', out:'Your measurements are outside our standard range. Contact us: <a href=\"mailto:{m}\">{m}</a>.',\n        based:'Based on', kgcm:'{w} kg and {h} cm', reco:'Recommendation', fitNote:'fitted, everyday comfort', looseNote:'{s} gives a roomier fit, ideal over a thick jumper.',\n        tall:'At {h} cm your height (leg length) decides: we suggest {s}, weight alone would give {w}.', tallF:'Tall (170 cm+): one size up for leg length.', short:'Short stature ({h} cm): {s} fits better than {w}.', floorS:'XS runs very small: we recommend S.',\n        straps:'<strong>Adjustable straps</strong> on every pair: 5 to 8 cm of play on the bib and inseam.', axis:'Weight (kg) \u2192', cmkg:'cm \\\\ kg', cell:'See {g} dungarees in {s}', h:'men\\'s', f:'women\\'s', pdp:'Each model\\'s exact size chart is on its product page.'},\n    es:{maxNote:'Es nuestra talla m\u00E1s grande: con tu peso puede quedarte justa.', minNote:'Es nuestra talla m\u00E1s peque\u00F1a: acorta los tirantes para ajustarla.', sep:': ', see:'Ver los petos en', fit:'Ajustado', loose:'Holgado', need:'Introduce al menos <strong>tu estatura (cm)</strong> y <strong>tu peso (kg)</strong>.', out:'Tus medidas est\u00E1n fuera de nuestro rango est\u00E1ndar. Cont\u00E1ctanos: <a href=\"mailto:{m}\">{m}</a>.',\n        based:'Calculado con', kgcm:'{w} kg y {h} cm', reco:'Recomendaci\u00F3n', fitNote:'ajustado, comodidad diaria', looseNote:'La {s} ofrece un corte m\u00E1s holgado, ideal con un jersey grueso debajo.',\n        tall:'Con {h} cm manda tu estatura (largo de pierna): te recomendamos la {s}; solo por peso saldr\u00EDa la {w}.', tallF:'Alta (1,70 m+): una talla m\u00E1s por el largo de pierna.', short:'Estatura baja ({h} cm): la {s} sienta mejor que la {w}.', floorS:'La XS queda muy peque\u00F1a: te recomendamos la S.',\n        straps:'<strong>Tirantes ajustables</strong> en todos los petos: 5 a 8 cm de margen en pecho y entrepierna.', axis:'Peso (kg) \u2192', cmkg:'cm \\\\ kg', cell:'Ver petos de {g} en {s}', h:'hombre', f:'mujer', pdp:'La gu\u00EDa exacta de cada modelo est\u00E1 en su ficha de producto.'},\n    it:{maxNote:'\u00C8 la nostra taglia pi\u00F9 grande: con il tuo peso potrebbe risultare stretta.', minNote:'\u00C8 la nostra taglia pi\u00F9 piccola: accorcia le bretelle per regolarla.', sep:': ', see:'Vedi le nostre', fit:'Aderente', loose:'Ampia', need:'Inserisci almeno <strong>la tua altezza (cm)</strong> e <strong>il tuo peso (kg)</strong>.', out:'Le tue misure sono fuori dalla nostra gamma standard. Contattaci: <a href=\"mailto:{m}\">{m}</a>.',\n        based:'Calcolato su', kgcm:'{w} kg e {h} cm', reco:'Taglia consigliata', fitNote:'aderente, comfort quotidiano', looseNote:'La {s} \u00E8 pi\u00F9 ampia, ideale con un maglione pesante sotto.',\n        tall:'A {h} cm \u00E8 la tua statura (lunghezza gamba) a decidere: consigliamo la {s}, il solo peso darebbe la {w}.', tallF:'Alta (1,70 m+): una taglia in pi\u00F9 per la lunghezza gamba.', short:'Statura bassa ({h} cm): la {s} veste meglio della {w}.', floorS:'La XS veste molto piccola: ti consigliamo la S.',\n        straps:'<strong>Bretelle regolabili</strong> su tutte le salopette: 5-8 cm di margine su petto e cavallo.', axis:'Peso (kg) \u2192', cmkg:'cm \\\\ kg', cell:'Vedi le salopette {g} in {s}', h:'uomo', f:'donna', pdp:'La tabella esatta di ogni modello \u00E8 sulla sua scheda prodotto.'},\n    nl:{maxNote:'Dit is onze grootste maat: bij jouw gewicht kan hij krap zitten.', minNote:'Dit is onze kleinste maat: kort de bretels in om hem aan te passen.', sep:': ', see:'Bekijk maat', fit:'Aansluitend', loose:'Ruim', need:'Vul minimaal <strong>je lengte (cm)</strong> en <strong>je gewicht (kg)</strong> in.', out:'Je maten vallen buiten ons standaardbereik. Neem contact op: <a href=\"mailto:{m}\">{m}</a>.',\n        based:'Berekend op', kgcm:'{w} kg en {h} cm', reco:'Aanbeveling', fitNote:'aansluitend, dagelijks comfort', looseNote:'{s} valt ruimer, ideaal met een dikke trui eronder.',\n        tall:'Bij {h} cm is je lengte (beenlengte) bepalend: we raden {s} aan, op gewicht alleen zou het {w} zijn.', tallF:'Lang (1,70 m+): \u00E9\u00E9n maat groter voor de beenlengte.', short:'Kleine lengte ({h} cm): {s} valt beter dan {w}.', floorS:'XS valt erg klein: we raden S aan.',\n        straps:'<strong>Verstelbare bretels</strong> op al onze tuinbroeken: 5 tot 8 cm speling op borst en kruis.', axis:'Gewicht (kg) \u2192', cmkg:'cm \\\\ kg', cell:'Bekijk tuinbroeken voor {g} in maat {s}', h:'heren', f:'dames', pdp:'De exacte maattabel van elk model staat op de productpagina.'},\n    da:{maxNote:'Det er vores st\u00F8rste st\u00F8rrelse: ved din v\u00E6gt kan den sidde stramt.', minNote:'Det er vores mindste st\u00F8rrelse: kort selerne for at tilpasse den.', sep:': ', see:'Se st\u00F8rrelse', fit:'T\u00E6tsiddende', loose:'Rummeligt', need:'Angiv mindst <strong>din h\u00F8jde (cm)</strong> og <strong>din v\u00E6gt (kg)</strong>.', out:'Dine m\u00E5l ligger uden for vores standardst\u00F8rrelser. Kontakt os: <a href=\"mailto:{m}\">{m}</a>.',\n        based:'Beregnet ud fra', kgcm:'{w} kg og {h} cm', reco:'Anbefaling', fitNote:'t\u00E6tsiddende, hverdagskomfort', looseNote:'{s} er mere rummelig, ideel med en tyk tr\u00F8je under.',\n        tall:'Ved {h} cm er det din h\u00F8jde (benl\u00E6ngden), der afg\u00F8r st\u00F8rrelsen: vi anbefaler {s}, v\u00E6gten alene ville give {w}.', tallF:'H\u00F8j (1,70 m+): \u00E9n st\u00F8rrelse op for benl\u00E6ngden.', short:'Lille h\u00F8jde ({h} cm): {s} passer bedre end {w}.', floorS:'XS er meget lille: vi anbefaler S.',\n        straps:'<strong>Justerbare seler</strong> p\u00E5 alle vores sm\u00E6kbukser: 5-8 cm spillerum over bryst og skridt.', axis:'V\u00E6gt (kg) \u2192', cmkg:'cm \\\\ kg', cell:'Se {g}sm\u00E6kbukser i st\u00F8rrelse {s}', h:'herre', f:'dame', pdp:'Den pr\u00E6cise st\u00F8rrelsesguide for hver model findes p\u00E5 produktsiden.'},\n    sv:{maxNote:'Det \u00E4r v\u00E5r st\u00F6rsta storlek: med din vikt kan den sitta tr\u00E5ngt.', minNote:'Det \u00E4r v\u00E5r minsta storlek: korta h\u00E4ngslena f\u00F6r att anpassa den.', sep:': ', see:'Se storlek', fit:'Figurn\u00E4ra', loose:'Rymlig', need:'Ange minst <strong>din l\u00E4ngd (cm)</strong> och <strong>din vikt (kg)</strong>.', out:'Dina m\u00E5tt ligger utanf\u00F6r v\u00E5ra standardstorlekar. Kontakta oss: <a href=\"mailto:{m}\">{m}</a>.',\n        based:'Ber\u00E4knat p\u00E5', kgcm:'{w} kg och {h} cm', reco:'Rekommendation', fitNote:'figurn\u00E4ra, vardagskomfort', looseNote:'{s} \u00E4r rymligare, perfekt med en tjock tr\u00F6ja under.',\n        tall:'Vid {h} cm avg\u00F6r din l\u00E4ngd (benl\u00E4ngd): vi f\u00F6resl\u00E5r {s}, vikten ensam skulle ge {w}.', tallF:'L\u00E5ng (1,70 m+): en storlek upp f\u00F6r benl\u00E4ngden.', short:'Kortare l\u00E4ngd ({h} cm): {s} passar b\u00E4ttre \u00E4n {w}.', floorS:'XS \u00E4r mycket liten i storleken: vi rekommenderar S.',\n        straps:'<strong>Justerbara h\u00E4ngslen</strong> p\u00E5 alla v\u00E5ra h\u00E4ngselbyxor: 5-8 cm spelrum \u00F6ver br\u00F6st och gren.', axis:'Vikt (kg) \u2192', cmkg:'cm \\\\ kg', cell:'Se h\u00E4ngselbyxor f\u00F6r {g} i {s}', h:'herr', f:'dam', pdp:'Den exakta storlekstabellen f\u00F6r varje modell finns p\u00E5 produktsidan.'},\n    pl:{maxNote:'To nasz najwi\u0119kszy rozmiar: przy Twojej wadze mo\u017Ce by\u0107 ciasny.', minNote:'To nasz najmniejszy rozmiar: skr\u00F3\u0107 szelki, by go dopasowa\u0107.', sep:': ', see:'Zobacz rozmiar', fit:'Dopasowany', loose:'Lu\u017Any', need:'Podaj co najmniej <strong>sw\u00F3j wzrost (cm)</strong> i <strong>wag\u0119 (kg)</strong>.', out:'Twoje wymiary wykraczaj\u0105 poza nasz standardowy zakres. Skontaktuj si\u0119 z nami: <a href=\"mailto:{m}\">{m}</a>.',\n        based:'Obliczono na podstawie', kgcm:'{w} kg i {h} cm', reco:'Rekomendacja', fitNote:'dopasowany, komfort na co dzie\u0144', looseNote:'{s} jest lu\u017Aniejszy, idealny na gruby sweter.',\n        tall:'Przy {h} cm decyduje wzrost (d\u0142ugo\u015B\u0107 nogawki): polecamy {s}, sama waga da\u0142aby {w}.', tallF:'Wysoka (1,70 m+): o jeden rozmiar wi\u0119kszy ze wzgl\u0119du na d\u0142ugo\u015B\u0107 nogawki.', short:'Niski wzrost ({h} cm): {s} le\u017Cy lepiej ni\u017C {w}.', floorS:'XS jest bardzo ma\u0142y: polecamy S.',\n        straps:'<strong>Regulowane szelki</strong> we wszystkich ogrodniczkach: 5-8 cm zapasu na klatce piersiowej i w kroku.', axis:'Waga (kg) \u2192', cmkg:'cm \\\\ kg', cell:'Zobacz ogrodniczki {g} w rozmiarze {s}', h:'m\u0119skie', f:'damskie', pdp:'Dok\u0142adna tabela ka\u017Cdego modelu jest na jego stronie produktu.'},\n    ja:{maxNote:'\u5F53\u5E97\u3067\u6700\u3082\u5927\u304D\u3044\u30B5\u30A4\u30BA\u3067\u3059\u3002\u4F53\u91CD\u306B\u3088\u3063\u3066\u306F\u304D\u3064\u304F\u611F\u3058\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002', minNote:'\u5F53\u5E97\u3067\u6700\u3082\u5C0F\u3055\u3044\u30B5\u30A4\u30BA\u3067\u3059\u3002\u30B9\u30C8\u30E9\u30C3\u30D7\u3092\u77ED\u304F\u3057\u3066\u8ABF\u6574\u3057\u3066\u304F\u3060\u3055\u3044\u3002', sep:'\uFF1A', see:'\u30B5\u30A4\u30BA', fit:'\u30B8\u30E3\u30B9\u30C8', loose:'\u3086\u3063\u305F\u308A', need:'<strong>\u8EAB\u9577\uFF08cm\uFF09</strong>\u3068<strong>\u4F53\u91CD\uFF08kg\uFF09</strong>\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002', out:'\u3054\u5165\u529B\u306E\u8EAB\u9577\u30FB\u4F53\u91CD\u306F\u6A19\u6E96\u7BC4\u56F2\u5916\u3067\u3059\u3002\u304A\u554F\u3044\u5408\u308F\u305B\u304F\u3060\u3055\u3044\uFF1A<a href=\"mailto:{m}\">{m}</a>',\n        based:'\u8A08\u7B97\u57FA\u6E96', kgcm:'{w} kg\u30FB{h} cm', reco:'\u304A\u3059\u3059\u3081', fitNote:'\u30B8\u30E3\u30B9\u30C8\u30D5\u30A3\u30C3\u30C8\u3001\u666E\u6BB5\u4F7F\u3044', looseNote:'{s} \u306F\u3086\u3063\u305F\u308A\u3081\u3002\u539A\u624B\u306E\u30BB\u30FC\u30BF\u30FC\u306E\u4E0A\u306B\u3082\u3002',\n        tall:'{h} cm \u3067\u306F\u8EAB\u9577\uFF08\u80A1\u4E0B\uFF09\u304C\u512A\u5148\uFF1A{s} \u3092\u304A\u3059\u3059\u3081\u3057\u307E\u3059\uFF08\u4F53\u91CD\u3060\u3051\u306A\u3089 {w}\uFF09\u3002', tallF:'\u9AD8\u8EAB\u9577\uFF08170cm\u4EE5\u4E0A\uFF09\uFF1A\u811A\u306E\u9577\u3055\u306E\u305F\u30811\u30B5\u30A4\u30BA\u4E0A\u3002', short:'\u5C0F\u67C4\uFF08{h} cm\uFF09\uFF1A{w} \u3088\u308A {s} \u304C\u5408\u3044\u307E\u3059\u3002', floorS:'XS\u306F\u304B\u306A\u308A\u5C0F\u3055\u3081\uFF1AS\u3092\u304A\u3059\u3059\u3081\u3057\u307E\u3059\u3002',\n        straps:'\u5168\u30E2\u30C7\u30EB<strong>\u30B9\u30C8\u30E9\u30C3\u30D7\u8ABF\u6574\u53EF\u80FD</strong>\uFF1A\u80F8\u3068\u80A1\u4E0B\u30675\u301C8cm\u306E\u4F59\u88D5\u3002', axis:'\u4F53\u91CD\uFF08kg\uFF09\u2192', cmkg:'cm \\\\ kg', cell:'{g}\u30AA\u30FC\u30D0\u30FC\u30AA\u30FC\u30EB\u306E {s} \u3092\u898B\u308B', h:'\u30E1\u30F3\u30BA', f:'\u30EC\u30C7\u30A3\u30FC\u30B9', pdp:'\u5404\u30E2\u30C7\u30EB\u306E\u6B63\u78BA\u306A\u30B5\u30A4\u30BA\u8868\u306F\u5546\u54C1\u30DA\u30FC\u30B8\u306B\u3002'},\n    ko:{maxNote:'\uC800\uD76C \uAC00\uC7A5 \uD070 \uC0AC\uC774\uC988\uC608\uC694. \uCCB4\uC911\uC5D0 \uB530\uB77C \uC791\uAC8C \uB290\uAEF4\uC9C8 \uC218 \uC788\uC5B4\uC694.', minNote:'\uC800\uD76C \uAC00\uC7A5 \uC791\uC740 \uC0AC\uC774\uC988\uC608\uC694. \uBA5C\uBE75\uC744 \uC9E7\uAC8C \uD574\uC11C \uB9DE\uCDB0 \uC8FC\uC138\uC694.', sep:': ', see:'\uC0AC\uC774\uC988', fit:'\uC801\uB2F9\uD55C \uD54F', loose:'\uC5EC\uC720\uB85C\uC6B4 \uD54F', need:'<strong>\uD0A4(cm)</strong>\uC640 <strong>\uBAB8\uBB34\uAC8C(kg)</strong>\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694.', out:'\uC785\uB825\uD558\uC2E0 \uCE58\uC218\uAC00 \uD45C\uC900 \uBC94\uC704\uB97C \uBC97\uC5B4\uB0A9\uB2C8\uB2E4. \uBB38\uC758: <a href=\"mailto:{m}\">{m}</a>',\n        based:'\uACC4\uC0B0 \uAE30\uC900:', kgcm:'{w} kg \u00B7 {h} cm', reco:'\uCD94\uCC9C', fitNote:'\uB531 \uB9DE\uB294 \uD54F, \uC77C\uC0C1 \uCC29\uC6A9', looseNote:'{s}\uC740(\uB294) \uB354 \uC5EC\uC720\uB85C\uC6B4 \uD54F\uC73C\uB85C \uB450\uAEBC\uC6B4 \uC2A4\uC6E8\uD130 \uC704\uC5D0\uB3C4 \uC88B\uC2B5\uB2C8\uB2E4.',\n        tall:'{h} cm\uC5D0\uC11C\uB294 \uD0A4(\uB2E4\uB9AC \uAE38\uC774)\uAC00 \uC6B0\uC120: {s} \uCD94\uCC9C (\uBAB8\uBB34\uAC8C\uB9CC \uBCF4\uBA74 {w}).', tallF:'\uC7A5\uC2E0(170cm \uC774\uC0C1): \uB2E4\uB9AC \uAE38\uC774\uB97C \uC704\uD574 \uD55C \uC0AC\uC774\uC988 \uC5C5.', short:'\uC791\uC740 \uD0A4({h} cm): {w}\uBCF4\uB2E4 {s}\uC774(\uAC00) \uC798 \uB9DE\uC2B5\uB2C8\uB2E4.', floorS:'XS\uB294 \uB9E4\uC6B0 \uC791\uAC8C \uB098\uC635\uB2C8\uB2E4: S\uB97C \uCD94\uCC9C\uD569\uB2C8\uB2E4.',\n        straps:'\uBAA8\uB4E0 \uC624\uBC84\uC62C\uC5D0 <strong>\uC870\uC808 \uAC00\uB2A5\uD55C \uBA5C\uBE75</strong>: \uAC00\uC2B4\uACFC \uBC11\uC704\uC5D0\uC11C 5~8cm \uC5EC\uC720.', axis:'\uBAB8\uBB34\uAC8C(kg) \u2192', cmkg:'cm \\\\ kg', cell:'{g} {s} \uC0AC\uC774\uC988 \uC624\uBC84\uC62C \uBCF4\uAE30', h:'\uB0A8\uC131', f:'\uC5EC\uC131', pdp:'\uAC01 \uBAA8\uB378\uC758 \uC815\uD655\uD55C \uC0AC\uC774\uC988\uD45C\uB294 \uC0C1\uD488 \uD398\uC774\uC9C0\uC5D0 \uC788\uC2B5\uB2C8\uB2E4.'}\n  };\n  var T = I18N[LOC] || I18N.fr;\n  var MAIL = /^die-latzhose\\./.test(location.hostname) ? 'contact@die-latzhose.com' : 'contact@la-salopette.fr';\n  function tpl(s, o){ return String(s).replace(/\\{(\\w+)\\}/g, function(_,k){ return o[k]!==undefined ? o[k] : ''; }); }\n\n  /* ---------- liens : filtre METAFIELD, valeur 2XL pour XXL, tri Featured (Arnaud 13/06) ---------- */\n  var COLL = { homme: CFG.collHomme || '/collections/salopette-homme', femme: CFG.collFemme || '/collections/salopette-femme' };\n  var FILTER_OK = ['XS','S','M','L','XL','2XL','3XL','4XL','5XL','6XL','7XL','8XL'];\n  function filterUrl(gender, label){\n    var sz = String(label).toUpperCase().replace(/\\s/g,'');\n    if (sz === 'XXL') sz = '2XL';\n    var base = COLL[gender] || COLL.homme;\n    if (FILTER_OK.indexOf(sz) < 0) return base + '?sort_by=manual';\n    return base + '?filter.v.m.custom.taille=' + encodeURIComponent(sz) + '&sort_by=manual';\n  }\n\n  /* ---------- regles canoniques ---------- */\n  var ORDER = SIZES_HOMME.map(function(s){ return s.label; });\n  function idx(l){ return ORDER.indexOf(l); }\n  function byWeight(sizes, kg){\n    for (var i=0;i<sizes.length;i++){ var s=sizes[i], last=i===sizes.length-1;\n      if (last ? (kg>=s.kgMin && kg<=s.kgMax) : (kg>=s.kgMin && kg<s.kgMax)) return s.label; }\n    return null;\n  }\n  function heightFloor(h){ if(h>=192) return '4XL'; if(h>=184) return '3XL'; if(h>=182) return 'XXL'; if(h>=180) return 'XL'; return null; }\n  /* Rend {fit, loose, base, why} ; why = 'tall' | 'tallF' | 'short' | 'floorS' | '' */\n  function compute(gender, h, kg){\n    var sizes = gender==='femme' ? SIZES_FEMME : SIZES_HOMME;\n    var base = byWeight(sizes, kg), bord = '';\n    /* v38 (29/10/2026) : au-dela de la grille = notre plus grande taille, avec la franchise ; en dessous = UNE seule taille, la plus petite */\n    if (!base){\n      if (kg > sizes[sizes.length-1].kgMax){ base = sizes[sizes.length-1].label; bord = 'max'; }\n      else if (kg < sizes[0].kgMin){ base = sizes[0].label; bord = 'min'; }\n      else return null;\n    }\n    var fit = base, why = '';\n    if (!bord){\n      if (gender==='femme'){\n        if (h >= 170 && idx(fit) < ORDER.length-1){ fit = ORDER[idx(fit)+1]; why='tallF'; }\n      } else {\n        var fl = heightFloor(h);\n        if (fl && idx(fl) > idx(fit)){ fit = fl; why='tall'; }\n      }\n      if (!why && h > 120 && h <= 160 && idx(fit) > 0){ fit = ORDER[idx(fit)-1]; why='short'; }\n    }\n    if (fit === 'XS'){ fit = 'S'; why = why || 'floorS'; }\n    /* sous notre plus petite taille reelle (le XS est ramene au S), sans regle de stature : une seule taille (regle du chat du 15/10) */\n    if (!bord && base === 'XS' && why === 'floorS') bord = 'min';\n    var loose = bord ? fit : (idx(fit) >= idx('3XL') ? fit : ORDER[Math.min(idx(fit)+1, ORDER.length-1)]);\n    return { fit:fit, loose:loose, base:base, why:why, sizes:sizes, bord:bord };\n  }\n  function frOf(sizes, label){ var s = sizes.filter(function(x){return x.label===label;})[0]; return s ? s.fr : ''; }\n\n  /* ---------- calculateur ---------- */\n  function renderResult(){\n    var g = document.getElementById('calc-gender'), hEl = document.getElementById('calc-height'), wEl = document.getElementById('calc-weight'), out = document.getElementById('calc-result');\n    if (!g || !hEl || !wEl || !out) return;\n    var gender = g.value === 'femme' ? 'femme' : 'homme', h = parseFloat(hEl.value), kg = parseFloat(wEl.value);\n    if (!(kg>=30 && kg<=250 && h>=120 && h<=230)){   /* v38 : memes bornes humaines que le bloc taille */ out.innerHTML = '<div style=\"color:#1D2E95;font-weight:600\">'+T.need+'</div>'; out.classList.add('show'); return; }\n    if (window.LS_SG_PRODUIT && window.LS_SG_PRODUIT(h, kg, out, gender)) return;   /* v36 : conseil du produit (?modele=) */\n    var r = compute(gender, h, kg);\n    if (!r){ out.innerHTML = tpl(T.out,{m:MAIL}); out.classList.add('show'); return; }\n    var gl = gender==='femme' ? T.f : T.h;\n    function card(kind, label, size){\n      return '<div class=\"reco-card '+kind+'\"><div class=\"label\">'+label+'</div><div class=\"size\">'+size+'</div><div class=\"meta\">'+((window.LS_SG_LOCAL && window.LS_SG_LOCAL(gender,size)) || ('FR '+frOf(r.sizes,size)))+'</div>'\n           + '<a class=\"size-link\" href=\"'+filterUrl(gender,size)+'\" aria-label=\"'+tpl(T.cell,{g:gl,s:size})+'\">'+T.see+' '+size+' \uD83D\uDC49</a></div>';\n    }\n    if (r.bord){   /* v38 : une seule taille au bord de la grille, avec sa phrase (franchise au-dessus, bretelles en dessous) */\n      var hb = '<div class=\"reco-pair ls-sg-bord-pair\" style=\"grid-template-columns:1fr\">'+card('tight',T.reco,r.fit)+'</div>';\n      hb += '<div class=\"reco-line ls-sg-bord\" style=\"font-size:13px;color:#475569;margin-top:8px;line-height:1.5\">'+T.based+' '+tpl(T.kgcm,{w:kg,h:h})+'. <strong style=\"color:#1D2E95\">'+T.reco+(T.sep||' : ')+r.fit+'</strong>. '+(r.bord==='max' ? T.maxNote : T.minNote)+'</div>';\n      hb += '<div class=\"bretelles-row\" style=\"margin-top:10px;padding:10px 14px;background:rgba(29,46,149,.04);border-left:3px solid #1D2E95;border-radius:8px;font-size:12px;color:#1D2E95;line-height:1.5\">'+T.straps+'</div>';\n      out.innerHTML = hb; out.classList.add('show');\n      highlight(gender, h, kg, r.fit);\n      try { history.replaceState(null,'',location.pathname+location.search+'#calculatrice'); } catch(e){}\n      return;\n    }\n    var html = '<div class=\"reco-pair\" style=\"grid-template-columns:1fr 1fr\">'+card('tight',T.fit,r.fit)+card('relax',T.loose,r.loose)+'</div>';\n    var why = r.why ? ' '+tpl(T[r.why],{h:h,s:r.fit,w:r.base}) : '';\n    html += '<div class=\"reco-line\" style=\"font-size:13px;color:#475569;margin-top:8px;line-height:1.5\">'+T.based+' '+tpl(T.kgcm,{w:kg,h:h})+'. <strong style=\"color:#1D2E95\">'+T.reco+(T.sep||' : ')+r.fit+'</strong> ('+T.fitNote+').'+why+' '+tpl(T.looseNote,{s:r.loose})+' <span style=\"color:#6b7280\">'+T.pdp+'</span></div>';\n    html += '<div class=\"bretelles-row\" style=\"margin-top:10px;padding:10px 14px;background:rgba(29,46,149,.04);border-left:3px solid #1D2E95;border-radius:8px;font-size:12px;color:#1D2E95;line-height:1.5\">'+T.straps+'</div>';\n    out.innerHTML = html; out.classList.add('show');\n    highlight(gender, h, kg, r.fit);\n    try { history.replaceState(null,'',location.pathname+location.search+'#calculatrice'); } catch(e){}\n  }\n\n  /* ---------- matrices : chaque cellule est un LIEN vers la collection filtree ---------- */\n  var ROWS_H = [158,163,168,173,178,183,188,193,198], COLS_H = [42,50,58,68,76,84,92,100,108,116,126];\n  var ROWS_F = [150,155,160,165,170,175,180,185],     COLS_F = [42,50,58,68,75,82,88,96,104,112,120];\n  function buildMatrix(id, gender, rows, cols){\n    var el = document.getElementById(id); if (!el) return;\n    var gl = gender==='femme' ? T.f : T.h;\n    var html = '<thead><tr><th>'+T.cmkg+'</th>';\n    cols.forEach(function(c){ html += '<th scope=\"col\">'+c+'</th>'; });\n    html += '</tr></thead><tbody>';\n    rows.forEach(function(r){\n      html += '<tr><th scope=\"row\">'+r+' cm</th>';\n      cols.forEach(function(c){\n        var res = compute(gender, r, c); var sz = res ? res.fit : '8XL';\n        html += '<td class=\"sz-'+sz+'\" data-h=\"'+r+'\" data-w=\"'+c+'\"><a class=\"sz-link\" href=\"'+filterUrl(gender,sz)+'\" aria-label=\"'+tpl(T.cell,{g:gl,s:sz})+' ('+r+' cm, '+c+' kg)\">'+sz+'</a></td>';\n      });\n      html += '</tr>';\n    });\n    el.innerHTML = html + '</tbody>';\n  }\n  function highlight(gender, h, kg, size){\n    var table = document.getElementById(gender==='femme' ? 'matrix-table-femme' : 'matrix-table-homme'); if (!table) return;\n    document.querySelectorAll('td.match').forEach(function(c){ c.classList.remove('match'); });\n    var best=null, bd=Infinity;\n    table.querySelectorAll('td[data-h]').forEach(function(c){ var d=Math.abs(+c.dataset.h-h)+Math.abs(+c.dataset.w-kg); if(d<bd){bd=d;best=c;} });\n    if (best){ best.classList.add('match'); var a=best.querySelector('a'); if(a && size){ a.href = filterUrl(gender,size); }\n      setTimeout(function(){ best.scrollIntoView({block:'center', behavior:'smooth'}); }, 350); }\n  }\n\n  /* ---------- CSS complementaire (cellules cliquables >= 44 px tactile) ---------- */\n  var css = '.matrix-tbl td{padding:0!important}.matrix-tbl td .sz-link{display:block;min-width:44px;min-height:44px;line-height:44px;padding:0 6px;color:inherit;text-decoration:none;font-weight:700;border-radius:6px}'\n          + '.matrix-tbl td .sz-link:hover,.matrix-tbl td .sz-link:focus-visible{outline:2px solid #1D2E95;outline-offset:-2px;filter:brightness(.92)}'\n          + '.matrix-tbl td.match .sz-link{text-decoration:underline;text-underline-offset:3px}.matrix-axis-x{margin-top:8px}';\n  var st = document.createElement('style'); st.id='ls-size-guide-css'; st.textContent = css; document.head.appendChild(st);\n\n  function init(){\n    buildMatrix('matrix-table-homme','homme',ROWS_H,COLS_H);\n    buildMatrix('matrix-table-femme','femme',ROWS_F,COLS_F);\n    document.querySelectorAll('.matrix-axis-x').forEach(function(e){ e.textContent = T.axis; });\n    var btn = document.getElementById('calc-btn');\n    if (btn){ btn.addEventListener('click', renderResult);\n      ['calc-height','calc-weight'].forEach(function(id){ var e=document.getElementById(id); if(e) e.addEventListener('keydown',function(ev){ if(ev.key==='Enter'){ ev.preventDefault(); renderResult(); } }); }); }\n    window.LS_SG_compute = compute; window.LS_SG_url = filterUrl;\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n})();\n\n/* ==== v34 (2026-09-29) : carrousel Express, liens localises, mail par domaine, anneau des boutons, apparitions ==== */\n(function(){\n  'use strict';\n  var CFG = window.LS_SG || {};\n  var LOC = String(CFG.locale || document.documentElement.lang || 'fr').slice(0,2).toLowerCase();\n  var ROOT = String(CFG.root || (window.Shopify && Shopify.routes && Shopify.routes.root) || '/');\n  if (ROOT.charAt(ROOT.length-1) !== '/') ROOT += '/';\n  var MAIL = /^die-latzhose\\./.test(location.hostname) ? 'contact@die-latzhose.com' : 'contact@la-salopette.fr';\n  var CAR = {\"fr\":{\"top\":\"Top vente\",\"view\":\"Voir\",\"none\":\"Aucun produit Express disponible pour l'instant.\",\"loading\":\"Chargement des mod\u00E8les Express...\",\"prev\":\"Produit pr\u00E9c\u00E9dent\",\"next\":\"Produit suivant\",\"page\":\"Page {n}\"},\"de\":{\"top\":\"Bestseller\",\"view\":\"Ansehen\",\"none\":\"Derzeit keine Express-Produkte verf\u00FCgbar.\",\"loading\":\"Express-Modelle werden geladen...\",\"prev\":\"Vorheriges Produkt\",\"next\":\"N\u00E4chstes Produkt\",\"page\":\"Seite {n}\"},\"nl\":{\"top\":\"Bestseller\",\"view\":\"Bekijk\",\"none\":\"Momenteel geen Express-producten beschikbaar.\",\"loading\":\"Express-modellen laden...\",\"prev\":\"Vorig product\",\"next\":\"Volgend product\",\"page\":\"Pagina {n}\"},\"it\":{\"top\":\"Pi\u00F9 venduto\",\"view\":\"Vedi\",\"none\":\"Nessun prodotto Express disponibile al momento.\",\"loading\":\"Caricamento dei modelli Express...\",\"prev\":\"Prodotto precedente\",\"next\":\"Prodotto successivo\",\"page\":\"Pagina {n}\"},\"es\":{\"top\":\"M\u00E1s vendido\",\"view\":\"Ver\",\"none\":\"No hay productos Express disponibles por ahora.\",\"loading\":\"Cargando modelos Express...\",\"prev\":\"Producto anterior\",\"next\":\"Producto siguiente\",\"page\":\"P\u00E1gina {n}\"},\"en\":{\"top\":\"Bestseller\",\"view\":\"View\",\"none\":\"No Express products available at the moment.\",\"loading\":\"Loading Express models...\",\"prev\":\"Previous product\",\"next\":\"Next product\",\"page\":\"Page {n}\"},\"da\":{\"top\":\"Bestseller\",\"view\":\"Se\",\"none\":\"Ingen Express-produkter tilg\u00E6ngelige lige nu.\",\"loading\":\"Indl\u00E6ser Express-modeller...\",\"prev\":\"Forrige produkt\",\"next\":\"N\u00E6ste produkt\",\"page\":\"Side {n}\"},\"sv\":{\"top\":\"B\u00E4sts\u00E4ljare\",\"view\":\"Visa\",\"none\":\"Inga Express-produkter tillg\u00E4ngliga just nu.\",\"loading\":\"Laddar Express-modeller...\",\"prev\":\"F\u00F6reg\u00E5ende produkt\",\"next\":\"N\u00E4sta produkt\",\"page\":\"Sida {n}\"},\"pl\":{\"top\":\"Bestseller\",\"view\":\"Zobacz\",\"none\":\"Obecnie brak produkt\u00F3w Express.\",\"loading\":\"\u0141adowanie modeli Express...\",\"prev\":\"Poprzedni produkt\",\"next\":\"Nast\u0119pny produkt\",\"page\":\"Strona {n}\"},\"ja\":{\"top\":\"\u30D9\u30B9\u30C8\u30BB\u30E9\u30FC\",\"view\":\"\u8A73\u7D30\u3092\u898B\u308B\",\"none\":\"\u73FE\u5728\u3001\u30A8\u30AF\u30B9\u30D7\u30EC\u30B9\u5BFE\u8C61\u306E\u5546\u54C1\u306F\u3042\u308A\u307E\u305B\u3093\u3002\",\"loading\":\"\u30A8\u30AF\u30B9\u30D7\u30EC\u30B9\u5BFE\u8C61\u30E2\u30C7\u30EB\u3092\u8AAD\u307F\u8FBC\u307F\u4E2D...\",\"prev\":\"\u524D\u306E\u5546\u54C1\",\"next\":\"\u6B21\u306E\u5546\u54C1\",\"page\":\"{n}\u30DA\u30FC\u30B8\u76EE\"},\"ko\":{\"top\":\"\uBCA0\uC2A4\uD2B8\uC140\uB7EC\",\"view\":\"\uBCF4\uAE30\",\"none\":\"\uD604\uC7AC \uC775\uC2A4\uD504\uB808\uC2A4 \uBC30\uC1A1 \uAC00\uB2A5\uD55C \uC81C\uD488\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.\",\"loading\":\"\uC775\uC2A4\uD504\uB808\uC2A4 \uBAA8\uB378\uC744 \uBD88\uB7EC\uC624\uB294 \uC911...\",\"prev\":\"\uC774\uC804 \uC81C\uD488\",\"next\":\"\uB2E4\uC74C \uC81C\uD488\",\"page\":\"{n}\uD398\uC774\uC9C0\"}};\n  var T = CAR[LOC] || CAR.en;\n  var art = document.querySelector('article.size-guide');\n  if (!art) return;\n  function esc(s){ return String(s||'').replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\"/g,'&quot;'); }\n\n  /* 1) Liens relatifs du corps : prefixe de langue du marche (la-salopette.be/nl, la-salopette.ch/de et /it).\n        Les corps sont partages entre marches, le prefixe ne peut venir que d'ici. */\n  if (ROOT !== '/') {\n    art.querySelectorAll('a[href^=\"/products/\"],a[href^=\"/collections/\"],a[href^=\"/blogs/\"],a[href^=\"/pages/\"]').forEach(function(a){\n      var h = a.getAttribute('href');\n      if (h.indexOf(ROOT) !== 0) a.setAttribute('href', ROOT.slice(0,-1) + h);\n    });\n  }\n  /* 2) Adresse de contact par domaine (die-latzhose.* = contact@die-latzhose.com), texte et mailto. */\n  if (MAIL !== 'contact@la-salopette.fr') {\n    art.querySelectorAll('a[href^=\"mailto:contact@la-salopette.fr\"]').forEach(function(a){ a.setAttribute('href','mailto:'+MAIL); });\n    var w = document.createTreeWalker(art, NodeFilter.SHOW_TEXT, null), n;\n    while ((n = w.nextNode())) { if (n.nodeValue.indexOf('contact@la-salopette.fr') >= 0) n.nodeValue = n.nodeValue.split('contact@la-salopette.fr').join(MAIL); }\n  }\n  /* 3) Anneau anime des boutons : seulement si @property existe (sinon aucun anneau plutot qu'un anneau fige),\n        et seulement quand le bouton est a l'ecran. */\n  var reduce = window.matchMedia && matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var btns = art.querySelectorAll('.show-more-btn, .calc-form button, .express-banner .cta');\n  if (!reduce && window.CSS && typeof CSS.registerProperty === 'function') {\n    document.documentElement.classList.add('ls-ring');\n    if ('IntersectionObserver' in window) {\n      var ioB = new IntersectionObserver(function(es){ es.forEach(function(e){ e.target.classList.toggle('ls-in', e.isIntersecting); }); }, {rootMargin:'40px'});\n      btns.forEach(function(b){ ioB.observe(b); });\n    } else { btns.forEach(function(b){ b.classList.add('ls-in'); }); }\n  }\n  /* 4) Apparition douce des blocs a l'entree dans l'ecran (transform seulement : aucun decalage de mise en page). */\n  if (!reduce && 'IntersectionObserver' in window) {\n    var targets = art.querySelectorAll('h2, .calc-box, .tip, .measure-card, .faq-item, .express-carousel-wrap, .reco-pair, table.size-tbl, .matrix-wrap');\n    var ioR = new IntersectionObserver(function(es){ es.forEach(function(e){ if (e.isIntersecting){ e.target.classList.add('ls-in'); ioR.unobserve(e.target); } }); }, {rootMargin:'0px 0px -6% 0px'});\n    targets.forEach(function(el){ var r = el.getBoundingClientRect(); if (r.top > innerHeight) { el.classList.add('ls-reveal'); ioR.observe(el); } });\n  }\n  /* 5) Carrousel Express : rendu de section (titres, URL, prix et devise du marche), salopettes seulement, alternance H/F. */\n  var track = document.getElementById('express-carousel-track');\n  if (track) {\n    track.innerHTML = '<div class=\"carousel-loading\">'+esc(T.loading)+'</div>';\n    var badge = art.querySelector('.express-carousel-head .badge'); var delay = badge ? badge.textContent.trim() : '';\n    var prev = document.getElementById('carousel-prev'), next = document.getElementById('carousel-next');\n    if (prev) prev.setAttribute('aria-label', T.prev); if (next) next.setAttribute('aria-label', T.next);\n    fetch(ROOT + '?section_id=ls-express-json', {credentials:'same-origin'})\n      .then(function(r){ if(!r.ok) throw new Error('HTTP '+r.status); return r.text(); })\n      .then(function(html){\n        var m = html.match(/<script type=\"application\\/json\" id=\"ls-express-json\">([\\s\\S]*?)<\\/script>/);\n        if (!m) throw new Error('no json');\n        var items = JSON.parse(m[1]).filter(function(p){ return p.u && p.i; });\n        var H = items.filter(function(p){ return p.g !== 'F'; }), F = items.filter(function(p){ return p.g === 'F'; });\n        var out = [], i = 0, j = 0;\n        while ((i < H.length || j < F.length) && out.length < 12) { if (i < H.length) out.push(H[i++]); if (j < F.length && out.length < 12) out.push(F[j++]); }\n        render(out);\n      })\n      .catch(function(){ track.innerHTML = '<div class=\"carousel-loading\">'+esc(T.none)+'</div>'; });\n  }\n  function render(products){\n    if (!products.length){ track.innerHTML = '<div class=\"carousel-loading\">'+esc(T.none)+'</div>'; return; }\n    track.innerHTML = products.map(function(p, idx){\n      var corner = idx < 2 ? '<span class=\"badge-corner\">'+esc(T.top)+'</span>' : '';\n      var img2 = p.i2 && p.i2 !== p.i ? '<img class=\"img img-2\" src=\"'+esc(p.i2)+'\" alt=\"\" aria-hidden=\"true\" loading=\"lazy\" width=\"600\" height=\"800\">' : '';\n      var cmp = p.c ? '<span class=\"compare\" style=\"text-decoration:line-through;opacity:.55;margin-right:6px\">'+esc(p.c)+'</span>' : '';\n      return '<a class=\"product-card\" href=\"'+esc(p.u)+'\">'\n        +'<div class=\"img-wrap\"><img class=\"img img-1\" src=\"'+esc(p.i)+'\" alt=\"'+esc(p.t)+'\" loading=\"lazy\" width=\"600\" height=\"800\">'+img2+corner\n        +'<span class=\"badge-floating\">Express</span><div class=\"img-overlay\"><span class=\"quick-link\">'+esc(T.view)+'</span></div></div>'\n        +'<div class=\"info\"><div class=\"name\">'+esc(p.t)+'</div>'\n        +'<div class=\"price-row\"><span class=\"price\">'+cmp+esc(p.p)+'</span><span class=\"delivery\">'+esc(delay)+' <span class=\"flag-icon\"><svg viewBox=\"0 0 18 12\" aria-hidden=\"true\"><use href=\"#flag-fr\"/></svg></span></span></div></div></a>';\n    }).join('');\n    requestAnimationFrame(function(){ track.classList.add('ready'); });\n    controls();\n  }\n  function controls(){\n    var prev = document.getElementById('carousel-prev'), next = document.getElementById('carousel-next'), dots = document.getElementById('carousel-dots');\n    if (!prev || !next) return;\n    function cw(){ var c = track.querySelector('.product-card'); return c ? c.getBoundingClientRect().width + (parseFloat(getComputedStyle(track).gap) || 18) : 240; }\n    prev.onclick = function(){ track.scrollBy({left:-cw()*2, behavior:'smooth'}); };\n    next.onclick = function(){ track.scrollBy({left: cw()*2, behavior:'smooth'}); };\n    function upd(){\n      var max = track.scrollWidth - track.clientWidth;\n      prev.disabled = track.scrollLeft <= 4; next.disabled = track.scrollLeft >= max - 4;\n      if (!dots) return;\n      var cards = track.querySelectorAll('.product-card').length, vis = Math.max(1, Math.round(track.clientWidth / cw())), pages = Math.max(1, Math.ceil(cards / vis));\n      if (parseInt(dots.dataset.pages||'0',10) !== pages) {\n        dots.dataset.pages = pages; var dh = '';\n        for (var k=0;k<pages;k++) dh += '<button type=\"button\" class=\"dot\" data-page=\"'+k+'\" aria-label=\"'+esc(T.page.replace('{n}', k+1))+'\"></button>';\n        dots.innerHTML = dh;\n        dots.querySelectorAll('.dot').forEach(function(d){ d.addEventListener('click', function(){ track.scrollTo({left: parseInt(d.dataset.page,10)*vis*cw(), behavior:'smooth'}); }); });\n      }\n      var cur = Math.round(track.scrollLeft / (vis*cw()));\n      dots.querySelectorAll('.dot').forEach(function(d,k){ d.classList.toggle('active', k === cur); });\n    }\n    track.addEventListener('scroll', upd, {passive:true}); window.addEventListener('resize', upd); setTimeout(upd, 80);\n  }\n})();\n\n/* ==== sketch modal (etait un script en ligne dans chaque corps) ==== */\n(function(){\n  \"use strict\";\n  if (window.__lsSketchModalLoaded) { return; }\n  window.__lsSketchModalLoaded = true;\n  var SVG = {\n    taille: '<svg class=\"sketch-svg\" viewBox=\"0 0 280 320\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\"><g fill=\"#F4F6FD\" stroke=\"#1D2E95\" stroke-width=\"1.8\" stroke-linejoin=\"round\" stroke-linecap=\"round\"><path d=\"M133 52 L133 66 C120 68 104 72 96 80 C94 88 100 94 102 100 C104 110 106 116 108 124 C110 134 112 142 112 150 C112 162 98 176 94 198 C92 212 95 220 97 228 C100 244 104 250 106 258 C108 270 109 284 112 298 C113 303 111 306 110 308 L126 308 C125 304 124 301 124 298 C126 284 128 270 129 258 C130 248 133 240 134 232 C136 224 138 218 140 216 C142 218 144 224 146 232 C147 240 150 248 151 258 C152 270 154 284 156 298 C156 301 155 304 154 308 L170 308 C169 306 167 303 168 298 C171 284 172 270 174 258 C176 250 180 244 183 228 C185 220 188 212 186 198 C182 176 168 162 168 150 C168 142 170 134 172 124 C174 116 176 110 178 100 C180 94 186 88 184 80 C176 72 160 68 147 66 L147 52 Z\"/><path d=\"M96 80 C82 96 74 120 72 142 C70 160 64 180 62 196 C61 202 63 208 68 208 C72 208 75 204 76 198 C78 182 82 162 86 146 C90 130 96 112 102 100\"/><path d=\"M184 80 C198 96 206 120 208 142 C210 160 216 180 218 196 C219 202 217 208 212 208 C208 208 205 204 204 198 C202 182 198 162 194 146 C190 130 184 112 178 100\"/><circle cx=\"140\" cy=\"32\" r=\"20\"/></g><g fill=\"none\" stroke=\"#8C3C68\" stroke-width=\"1.8\" stroke-linecap=\"round\"><ellipse cx=\"140\" cy=\"150\" rx=\"34\" ry=\"7\" stroke-dasharray=\"5 4\"/><path d=\"M106 143v14M174 143v14\"/></g><circle cx=\"140\" cy=\"157\" r=\"5\" fill=\"#F1D82D\" stroke=\"#8C3C68\" stroke-width=\"1.4\"/></svg>',\n    hanches: '<svg class=\"sketch-svg\" viewBox=\"0 0 280 320\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\"><g fill=\"#F4F6FD\" stroke=\"#1D2E95\" stroke-width=\"1.8\" stroke-linejoin=\"round\" stroke-linecap=\"round\"><path d=\"M133 52 L133 66 C120 68 104 72 96 80 C94 88 100 94 102 100 C104 110 106 116 108 124 C110 134 112 142 112 150 C112 162 98 176 94 198 C92 212 95 220 97 228 C100 244 104 250 106 258 C108 270 109 284 112 298 C113 303 111 306 110 308 L126 308 C125 304 124 301 124 298 C126 284 128 270 129 258 C130 248 133 240 134 232 C136 224 138 218 140 216 C142 218 144 224 146 232 C147 240 150 248 151 258 C152 270 154 284 156 298 C156 301 155 304 154 308 L170 308 C169 306 167 303 168 298 C171 284 172 270 174 258 C176 250 180 244 183 228 C185 220 188 212 186 198 C182 176 168 162 168 150 C168 142 170 134 172 124 C174 116 176 110 178 100 C180 94 186 88 184 80 C176 72 160 68 147 66 L147 52 Z\"/><path d=\"M96 80 C82 96 74 120 72 142 C70 160 64 180 62 196 C61 202 63 208 68 208 C72 208 75 204 76 198 C78 182 82 162 86 146 C90 130 96 112 102 100\"/><path d=\"M184 80 C198 96 206 120 208 142 C210 160 216 180 218 196 C219 202 217 208 212 208 C208 208 205 204 204 198 C202 182 198 162 194 146 C190 130 184 112 178 100\"/><circle cx=\"140\" cy=\"32\" r=\"20\"/></g><g fill=\"none\" stroke=\"#8C3C68\" stroke-width=\"1.8\" stroke-linecap=\"round\"><ellipse cx=\"140\" cy=\"150\" rx=\"34\" ry=\"7\" stroke-dasharray=\"2 4\" opacity=\".4\"/><ellipse cx=\"140\" cy=\"198\" rx=\"50\" ry=\"8\" stroke-dasharray=\"5 4\"/><path d=\"M90 190v16M190 190v16\"/></g><circle cx=\"140\" cy=\"206\" r=\"5\" fill=\"#F1D82D\" stroke=\"#8C3C68\" stroke-width=\"1.4\"/></svg>',\n    entrejambe: '<svg class=\"sketch-svg\" viewBox=\"0 0 280 320\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" focusable=\"false\"><g fill=\"#F4F6FD\" stroke=\"#1D2E95\" stroke-width=\"1.8\" stroke-linejoin=\"round\" stroke-linecap=\"round\"><path d=\"M133 52 L133 66 C120 68 104 72 96 80 C94 88 100 94 102 100 C104 110 106 116 108 124 C110 134 112 142 112 150 C112 162 98 176 94 198 C92 212 95 220 97 228 C100 244 104 250 106 258 C108 270 109 284 112 298 C113 303 111 306 110 308 L126 308 C125 304 124 301 124 298 C126 284 128 270 129 258 C130 248 133 240 134 232 C136 224 138 218 140 216 C142 218 144 224 146 232 C147 240 150 248 151 258 C152 270 154 284 156 298 C156 301 155 304 154 308 L170 308 C169 306 167 303 168 298 C171 284 172 270 174 258 C176 250 180 244 183 228 C185 220 188 212 186 198 C182 176 168 162 168 150 C168 142 170 134 172 124 C174 116 176 110 178 100 C180 94 186 88 184 80 C176 72 160 68 147 66 L147 52 Z\"/><path d=\"M96 80 C82 96 74 120 72 142 C70 160 64 180 62 196 C61 202 63 208 68 208 C72 208 75 204 76 198 C78 182 82 162 86 146 C90 130 96 112 102 100\"/><path d=\"M184 80 C198 96 206 120 208 142 C210 160 216 180 218 196 C219 202 217 208 212 208 C208 208 205 204 204 198 C202 182 198 162 194 146 C190 130 184 112 178 100\"/><circle cx=\"140\" cy=\"32\" r=\"20\"/></g><path d=\"M96 310h88\" fill=\"none\" stroke=\"#1D2E95\" stroke-width=\"1.4\" stroke-linecap=\"round\" opacity=\".5\"/><g fill=\"none\" stroke=\"#8C3C68\" stroke-width=\"1.8\" stroke-linecap=\"round\"><path d=\"M140 216v92\" stroke-dasharray=\"5 4\"/><path d=\"M133 216h14M133 308h14\"/></g><text x=\"180\" y=\"268\" fill=\"#8C3C68\" font-size=\"11\" font-family=\"inherit\" font-weight=\"700\">cm</text><circle cx=\"140\" cy=\"208\" r=\"5\" fill=\"#F1D82D\" stroke=\"#8C3C68\" stroke-width=\"1.4\"/></svg>'\n  };\n  var ouvreur = null, ouvert = false, ancienOverflow = \"\", ancienPadding = \"\";\n  function modal(){ return document.getElementById(\"sketch-modal\"); }\n  function texte(el){ return el ? el.textContent.replace(/\\s+/g, \" \").replace(/^\\s+|\\s+$/g, \"\") : \"\"; }\n  function construire(carte){\n    var cle = carte.getAttribute(\"data-sketch\");\n    var svg = SVG[cle];\n    var boite = document.getElementById(\"sketch-content\");\n    if (!svg || !boite) { return false; }\n    var h4 = carte.querySelector(\"h4\"), p = carte.querySelector(\"p\"), sm = carte.querySelector(\".see-more\");\n    while (boite.firstChild) { boite.removeChild(boite.firstChild); }\n    var h3 = document.createElement(\"h3\");\n    h3.id = \"sketch-title\";\n    h3.textContent = texte(h4);\n    boite.appendChild(h3);\n    var libelle = \"\";\n    if (libelle) {\n      var sub = document.createElement(\"p\");\n      sub.className = \"sub\";\n      sub.textContent = libelle;\n      boite.appendChild(sub);\n    }\n    var enveloppe = document.createElement(\"div\");\n    enveloppe.innerHTML = svg;\n    if (enveloppe.firstChild) { boite.appendChild(enveloppe.firstChild); }\n    if (p) { boite.appendChild(p.cloneNode(true)); }\n    return true;\n  }\n  function verrouiller(){\n    var b = document.body, de = document.documentElement;\n    var barre = window.innerWidth - de.clientWidth;\n    ancienOverflow = b.style.overflow === \"hidden\" ? \"\" : b.style.overflow;\n    ancienPadding = b.style.paddingRight;\n    b.style.overflow = \"hidden\";\n    if (barre > 0) { b.style.paddingRight = barre + \"px\"; }\n  }\n  function deverrouiller(){\n    var b = document.body;\n    b.style.overflow = ancienOverflow;\n    b.style.paddingRight = ancienPadding;\n  }\n  function ouvrir(carte){\n    var m = modal();\n    if (!m || !construire(carte)) { return; }\n    ouvreur = carte;\n    if (!ouvert) { verrouiller(); }\n    ouvert = true;\n    m.classList.add(\"show\");\n    m.removeAttribute(\"aria-hidden\");\n    var fermerBtn = document.getElementById(\"sketch-close\");\n    if (fermerBtn) { fermerBtn.focus(); }\n  }\n  function fermer(){\n    var m = modal();\n    if (!m || !ouvert) { return; }\n    ouvert = false;\n    m.classList.remove(\"show\");\n    m.setAttribute(\"aria-hidden\", \"true\");\n    deverrouiller();\n    if (ouvreur && typeof ouvreur.focus === \"function\") { ouvreur.focus(); }\n    ouvreur = null;\n  }\n  function auClic(e){\n    var t = e.target;\n    if (!t || typeof t.closest !== \"function\") { return; }\n    var carte = t.closest(\".measure-card[data-sketch]\");\n    if (carte) { e.preventDefault(); ouvrir(carte); return; }\n    if (!ouvert) { return; }\n    var m = modal();\n    if (!m) { return; }\n    if (t === m || t.closest(\"#sketch-close\")) { e.preventDefault(); fermer(); }\n  }\n  function auClavier(e){\n    if (!ouvert) { return; }\n    var k = e.key || e.keyCode;\n    if (k === \"Escape\" || k === \"Esc\" || k === 27) { e.preventDefault(); fermer(); return; }\n    if (k === \"Tab\" || k === 9) {\n      var m = modal();\n      if (!m) { return; }\n      var f = m.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n      if (!f.length) { return; }\n      var premier = f[0], dernier = f[f.length - 1], actif = document.activeElement;\n      if (e.shiftKey && (actif === premier || !m.contains(actif))) { e.preventDefault(); dernier.focus(); }\n      else if (!e.shiftKey && (actif === dernier || !m.contains(actif))) { e.preventDefault(); premier.focus(); }\n    }\n  }\n  function init(){\n    var m = modal();\n    if (!m || m.getAttribute(\"data-ls-sketch\") === \"1\") { return; }\n    m.setAttribute(\"data-ls-sketch\", \"1\");\n    m.setAttribute(\"aria-hidden\", \"true\");\n    document.addEventListener(\"click\", auClic, false);\n    document.addEventListener(\"keydown\", auClavier, false);\n    window.__lsSketchModal = { ouvrir: ouvrir, fermer: fermer };\n  }\n  if (document.readyState === \"loading\") { document.addEventListener(\"DOMContentLoaded\", init, false); }\n  else { init(); }\n})();\n\n/* ==== v35 (2026-10-13) : drapeau local. La 1re colonne des deux tableaux, son drapeau et la ligne\n   \u00AB Correspondances \u00BB suivent le pays du marche de l'URL (LS_SG.country = localization.country,\n   repli sur le domaine). Valeurs ancrees sur nos centimetres (option A,\n   ~/analytics/docs/GUIDE_TAILLES_DRAPEAU_LOCAL_PROPOSITION.md). Colonnes EU et US, cm et\n   calculateur inchanges. FR et pays sans domaine : rien n'est touche, le HTML servi reste. ==== */\n(function(){\n  'use strict';\n  if (window.__lsSgLocal) return; window.__lsSgLocal = 1;\n  var CFG = window.LS_SG || {};\n  var HOSTS = {\"die-latzhose.com\":\"DE\",\"die-latzhose.at\":\"AT\",\"la-salopette.nl\":\"NL\",\"la-salopette.be\":\"BE\",\"la-salopette.ch\":\"CH\",\"la-salopette.it\":\"IT\",\"la-salopette.es\":\"ES\",\"la-salopette.uk\":\"GB\",\"la-salopette.dk\":\"DK\",\"la-salopette.se\":\"SE\",\"la-salopette.pl\":\"PL\",\"la-salopette.us\":\"US\",\"la-salopette.ca\":\"CA\",\"la-salopette.jp\":\"JP\",\"la-salopette.kr\":\"KR\",\"la-salopette.fr\":\"FR\"};\n  var SYS = {\"DE\":{\"label\":\"DE\",\"flag\":\"de\",\"h\":[\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"56 / 58\",\"58 / 60\",\"62\",\"64 / 66\",\"66 / 68\",\"70\",\"72 / 74\",\"74 / 76\"],\"f\":[\"34 / 36\",\"38 / 40\",\"42 / 44\",\"46\",\"48 / 50\",\"50 / 52\",\"52 / 54\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\"]},\"AT\":{\"label\":\"AT\",\"flag\":\"at\",\"h\":[\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"56 / 58\",\"58 / 60\",\"62\",\"64 / 66\",\"66 / 68\",\"70\",\"72 / 74\",\"74 / 76\"],\"f\":[\"34 / 36\",\"38 / 40\",\"42 / 44\",\"46\",\"48 / 50\",\"50 / 52\",\"52 / 54\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\"]},\"NL\":{\"label\":\"NL\",\"flag\":\"nl\",\"h\":[\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"56 / 58\",\"58 / 60\",\"62\",\"64 / 66\",\"66 / 68\",\"70\",\"72 / 74\",\"74 / 76\"],\"f\":[\"34 / 36\",\"38 / 40\",\"42 / 44\",\"46\",\"48 / 50\",\"50 / 52\",\"52 / 54\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\"]},\"BE\":{\"label\":\"BE\",\"flag\":\"be\",\"h\":[\"38\",\"40 / 42\",\"44 / 46\",\"48 / 50\",\"52 / 54\",\"56 / 58\",\"60 / 62\",\"62 / 64\",\"66 / 68\",\"70 / 72\",\"74 / 76\",\"78 / 80\"],\"f\":[\"36 / 38\",\"40 / 42\",\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\",\"64 / 66\"]},\"CH\":{\"label\":\"CH\",\"flag\":\"ch\",\"h\":[\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"56 / 58\",\"58 / 60\",\"62\",\"64 / 66\",\"66 / 68\",\"70\",\"72 / 74\",\"74 / 76\"],\"f\":[\"34 / 36\",\"38 / 40\",\"42 / 44\",\"46\",\"48 / 50\",\"50 / 52\",\"52 / 54\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\"]},\"IT\":{\"label\":\"IT\",\"flag\":\"it\",\"h\":[\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"56 / 58\",\"58 / 60\",\"62\",\"64 / 66\",\"66 / 68\",\"70\",\"72 / 74\",\"74 / 76\"],\"f\":[\"40 / 42\",\"44 / 46\",\"48 / 50\",\"52\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\",\"64 / 66\",\"66 / 68\",\"68 / 70\"]},\"ES\":{\"label\":\"ES\",\"flag\":\"es\",\"h\":[\"38\",\"40 / 42\",\"44 / 46\",\"48 / 50\",\"52 / 54\",\"56 / 58\",\"60 / 62\",\"62 / 64\",\"66 / 68\",\"70 / 72\",\"74 / 76\",\"78 / 80\"],\"f\":[\"36 / 38\",\"40 / 42\",\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\",\"64 / 66\"]},\"GB\":{\"label\":\"UK\",\"flag\":\"uk\",\"h\":[\"W28-30\",\"W31-33\",\"W34-37\",\"W37-39\",\"W40-42\",\"W43-45\",\"W46-48\",\"W49-51\",\"W52-54\",\"W55-57\",\"W58-60\",\"W61-63\"],\"f\":[\"8 / 10\",\"10 / 12\",\"14 / 16\",\"16 / 18\",\"20\",\"22 / 24\",\"24 / 26\",\"28\",\"30 / 32\",\"32 / 34\",\"34 / 36\",\"36 / 38\"]},\"DK\":{\"label\":\"DK\",\"flag\":\"dk\",\"h\":[\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"56 / 58\",\"58 / 60\",\"62\",\"64 / 66\",\"66 / 68\",\"70\",\"72 / 74\",\"74 / 76\"],\"f\":[\"34 / 36\",\"38 / 40\",\"42 / 44\",\"46\",\"48 / 50\",\"50 / 52\",\"52 / 54\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\"]},\"SE\":{\"label\":\"SE\",\"flag\":\"se\",\"h\":[\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"56 / 58\",\"58 / 60\",\"62\",\"64 / 66\",\"66 / 68\",\"70\",\"72 / 74\",\"74 / 76\"],\"f\":[\"34 / 36\",\"38 / 40\",\"42 / 44\",\"46\",\"48 / 50\",\"50 / 52\",\"52 / 54\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\"]},\"PL\":{\"label\":\"PL\",\"flag\":\"pl\",\"h\":[\"44 / 46\",\"48\",\"50 / 52\",\"52 / 54\",\"56 / 58\",\"58 / 60\",\"62\",\"64 / 66\",\"66 / 68\",\"70\",\"72 / 74\",\"74 / 76\"],\"f\":[\"34 / 36\",\"38 / 40\",\"42 / 44\",\"46\",\"48 / 50\",\"50 / 52\",\"52 / 54\",\"54 / 56\",\"56 / 58\",\"58 / 60\",\"60 / 62\",\"62 / 64\"]},\"US\":{\"label\":\"US\",\"flag\":\"us\",\"h\":[\"W28-30\",\"W31-33\",\"W34-37\",\"W37-39\",\"W40-42\",\"W43-45\",\"W46-48\",\"W49-51\",\"W52-54\",\"W55-57\",\"W58-60\",\"W61-63\"],\"f\":[\"W25-27\",\"W28-30\",\"W31-33\",\"W34-37\",\"W38-40\",\"W41-43\",\"W44-46\",\"W47-49\",\"W50-52\",\"W53-55\",\"W56-59\",\"W60-62\"]},\"CA\":{\"label\":\"CA\",\"flag\":\"ca\",\"h\":[\"W28-30\",\"W31-33\",\"W34-37\",\"W37-39\",\"W40-42\",\"W43-45\",\"W46-48\",\"W49-51\",\"W52-54\",\"W55-57\",\"W58-60\",\"W61-63\"],\"f\":[\"W25-27\",\"W28-30\",\"W31-33\",\"W34-37\",\"W38-40\",\"W41-43\",\"W44-46\",\"W47-49\",\"W50-52\",\"W53-55\",\"W56-59\",\"W60-62\"]},\"JP\":{\"label\":\"JP\",\"flag\":\"jp\",\"h\":[\"S\",\"M\",\"L\",\"LL\",\"LL / 3L\",\"3L\",\"4L\",\"5L\",\"5L / 6L\",\"6L\",\"7L\",\"8L\"],\"f\":[\"M\",\"L\",\"LL\",\"3L\",\"4L\",\"5L\",\"6L\",\"7L\",\"8L\",\"9L\",\"10L\",\"11L\"]},\"KR\":{\"label\":\"KR\",\"flag\":\"kr\",\"h\":[\"W28-30\",\"W31-33\",\"W34-37\",\"W37-39\",\"W40-42\",\"W43-45\",\"W46-48\",\"W49-51\",\"W52-54\",\"W55-57\",\"W58-60\",\"W61-63\"],\"f\":[\"W25-27\",\"W28-30\",\"W31-33\",\"W34-37\",\"W38-40\",\"W41-43\",\"W44-46\",\"W47-49\",\"W50-52\",\"W53-55\",\"W56-59\",\"W60-62\"]}};\n  var LET = ['XS','S','M','L','XL','XXL','3XL','4XL','5XL','6XL','7XL','8XL'];\n  var c = String(CFG.country || HOSTS[location.hostname.replace(/^www\\./,'')] || 'FR').toUpperCase();\n  var L = SYS[c];\n  window.LS_SG_LOCAL = function(gender, letter){\n    if (!L) return null;\n    var i = LET.indexOf(norm(letter)); if (i < 0) return null;\n    return L.label + ' ' + L[gender === 'femme' ? 'f' : 'h'][i];\n  };\n  if (!L) return;\n  var B = '<rect width=\"18\" height=\"12\" fill=\"none\" stroke=\"rgba(0,0,0,.18)\" stroke-width=\".6\"/>';\n  var FLAGS = {\n    de:'<rect width=\"18\" height=\"4\" y=\"0\" fill=\"#000\"/><rect width=\"18\" height=\"4\" y=\"4\" fill=\"#DD0000\"/><rect width=\"18\" height=\"4\" y=\"8\" fill=\"#FFCE00\"/>',\n    at:'<rect width=\"18\" height=\"4\" y=\"0\" fill=\"#ED2939\"/><rect width=\"18\" height=\"4\" y=\"4\" fill=\"#fff\"/><rect width=\"18\" height=\"4\" y=\"8\" fill=\"#ED2939\"/>',\n    nl:'<rect width=\"18\" height=\"4\" y=\"0\" fill=\"#AE1C28\"/><rect width=\"18\" height=\"4\" y=\"4\" fill=\"#fff\"/><rect width=\"18\" height=\"4\" y=\"8\" fill=\"#21468B\"/>',\n    be:'<rect width=\"6\" height=\"12\" x=\"0\" fill=\"#000\"/><rect width=\"6\" height=\"12\" x=\"6\" fill=\"#FAE042\"/><rect width=\"6\" height=\"12\" x=\"12\" fill=\"#ED2939\"/>',\n    ch:'<rect width=\"18\" height=\"12\" fill=\"#FF0000\"/><rect x=\"7\" y=\"2\" width=\"4\" height=\"8\" fill=\"#fff\"/><rect x=\"5\" y=\"4\" width=\"8\" height=\"4\" fill=\"#fff\"/>',\n    it:'<rect width=\"6\" height=\"12\" x=\"0\" fill=\"#009246\"/><rect width=\"6\" height=\"12\" x=\"6\" fill=\"#fff\"/><rect width=\"6\" height=\"12\" x=\"12\" fill=\"#CE2B37\"/>',\n    es:'<rect width=\"18\" height=\"3\" y=\"0\" fill=\"#AA151B\"/><rect width=\"18\" height=\"6\" y=\"3\" fill=\"#F1BF00\"/><rect width=\"18\" height=\"3\" y=\"9\" fill=\"#AA151B\"/>',\n    uk:'<rect width=\"18\" height=\"12\" fill=\"#012169\"/><path d=\"M0 0 L18 12 M18 0 L0 12\" stroke=\"#fff\" stroke-width=\"2\"/><path d=\"M9 0 V12 M0 6 H18\" stroke=\"#fff\" stroke-width=\"3\"/><path d=\"M9 0 V12 M0 6 H18\" stroke=\"#C8102E\" stroke-width=\"1.5\"/>',\n    dk:'<rect width=\"18\" height=\"12\" fill=\"#C8102E\"/><rect x=\"5\" y=\"0\" width=\"2\" height=\"12\" fill=\"#fff\"/><rect x=\"0\" y=\"5\" width=\"18\" height=\"2\" fill=\"#fff\"/>',\n    se:'<rect width=\"18\" height=\"12\" fill=\"#005293\"/><rect x=\"6\" y=\"0\" width=\"2\" height=\"12\" fill=\"#FECC02\"/><rect x=\"0\" y=\"5\" width=\"18\" height=\"2\" fill=\"#FECC02\"/>',\n    pl:'<rect width=\"18\" height=\"6\" y=\"0\" fill=\"#fff\"/><rect width=\"18\" height=\"6\" y=\"6\" fill=\"#DC143C\"/>' + B,\n    us:'<rect width=\"18\" height=\"12\" fill=\"#fff\"/><g fill=\"#B22234\"><rect width=\"18\" height=\"1\" y=\"0\"/><rect width=\"18\" height=\"1\" y=\"2\"/><rect width=\"18\" height=\"1\" y=\"4\"/><rect width=\"18\" height=\"1\" y=\"6\"/><rect width=\"18\" height=\"1\" y=\"8\"/><rect width=\"18\" height=\"1\" y=\"10\"/></g><rect width=\"8\" height=\"6.5\" fill=\"#3C3B6E\"/><g fill=\"#fff\"><circle cx=\"1.6\" cy=\"1.5\" r=\".45\"/><circle cx=\"4\" cy=\"1.5\" r=\".45\"/><circle cx=\"6.4\" cy=\"1.5\" r=\".45\"/><circle cx=\"2.8\" cy=\"3.2\" r=\".45\"/><circle cx=\"5.2\" cy=\"3.2\" r=\".45\"/><circle cx=\"1.6\" cy=\"4.9\" r=\".45\"/><circle cx=\"4\" cy=\"4.9\" r=\".45\"/><circle cx=\"6.4\" cy=\"4.9\" r=\".45\"/></g>',\n    ca:'<rect width=\"18\" height=\"12\" fill=\"#fff\"/><rect width=\"4.5\" height=\"12\" fill=\"#D80621\"/><rect x=\"13.5\" width=\"4.5\" height=\"12\" fill=\"#D80621\"/><path fill=\"#D80621\" d=\"M9 2.2 9.6 3.4 10.4 3.1 10.1 4.9 11.3 3.9 11.6 4.6 12.6 4.4 12.2 5.6 12.7 5.9 10.9 7.3 11.1 8 9.25 7.8 9.3 9.8 8.7 9.8 8.75 7.8 6.9 8 7.1 7.3 5.3 5.9 5.8 5.6 5.4 4.4 6.4 4.6 6.7 3.9 7.9 4.9 7.6 3.1 8.4 3.4z\"/>',\n    jp:'<rect width=\"18\" height=\"12\" fill=\"#fff\"/><circle cx=\"9\" cy=\"6\" r=\"3.6\" fill=\"#BC002D\"/>' + B,\n    kr:'<rect width=\"18\" height=\"12\" fill=\"#fff\"/><path d=\"M6 6a3 3 0 0 1 6 0z\" fill=\"#CD2E3A\"/><path d=\"M6 6a3 3 0 0 0 6 0z\" fill=\"#0047A0\"/><circle cx=\"7.5\" cy=\"6\" r=\"1.5\" fill=\"#CD2E3A\"/><circle cx=\"10.5\" cy=\"6\" r=\"1.5\" fill=\"#0047A0\"/><g fill=\"#000\"><rect x=\"2.2\" y=\"1.6\" width=\"2.6\" height=\".5\" transform=\"rotate(34 3.5 1.85)\"/><rect x=\"2.2\" y=\"2.5\" width=\"2.6\" height=\".5\" transform=\"rotate(34 3.5 2.75)\"/><rect x=\"13.2\" y=\"1.6\" width=\"2.6\" height=\".5\" transform=\"rotate(-34 14.5 1.85)\"/><rect x=\"13.2\" y=\"2.5\" width=\"2.6\" height=\".5\" transform=\"rotate(-34 14.5 2.75)\"/><rect x=\"2.2\" y=\"9.5\" width=\"2.6\" height=\".5\" transform=\"rotate(-34 3.5 9.75)\"/><rect x=\"2.2\" y=\"10.4\" width=\"2.6\" height=\".5\" transform=\"rotate(-34 3.5 10.65)\"/><rect x=\"13.2\" y=\"9.5\" width=\"2.6\" height=\".5\" transform=\"rotate(34 14.5 9.75)\"/><rect x=\"13.2\" y=\"10.4\" width=\"2.6\" height=\".5\" transform=\"rotate(34 14.5 10.65)\"/></g>' + B\n  };\n  function norm(t){ t = String(t || '').replace(/\\s+/g,'').toUpperCase(); return t === '2XL' ? 'XXL' : t; }\n  function paint(svg){\n    if (!svg || !FLAGS[L.flag]) return;\n    svg.setAttribute('viewBox','0 0 18 12');\n    svg.innerHTML = FLAGS[L.flag];\n    svg.setAttribute('data-flag', L.flag);\n  }\n  function run(){\n    var art = document;\n    art.querySelectorAll('[data-localize-flag]').forEach(function(el){\n      paint(el.tagName.toLowerCase() === 'svg' ? el : el.querySelector('svg'));\n    });\n    art.querySelectorAll('[data-localize-country]').forEach(function(el){ el.textContent = L.label; });\n    var g = null, n = 0;\n    art.querySelectorAll('h2#tableau-homme, h2#tableau-femme, table.size-tbl').forEach(function(el){\n      if (el.tagName === 'H2'){ g = el.id === 'tableau-femme' ? 'f' : 'h'; return; }\n      var gg = g || (n === 0 ? 'h' : 'f'); n++;\n      var head = el.tHead && el.tHead.rows[0]; if (!head) return;\n      var k = -1;\n      for (var i = 0; i < head.cells.length; i++){ if (head.cells[i].querySelector('[data-localize-flag]')){ k = i; break; } }\n      if (k < 1) return;\n      head.cells[k].setAttribute('data-local', c);\n      for (var b = 0; b < el.tBodies.length; b++){\n        var rows = el.tBodies[b].rows;\n        for (var r = 0; r < rows.length; r++){\n          var cells = rows[r].cells; if (cells.length <= k) continue;\n          var j = LET.indexOf(norm(cells[0].textContent));\n          if (j >= 0){ cells[k].textContent = L[gg][j]; cells[k].style.whiteSpace = 'nowrap'; }\n        }\n      }\n    });\n    document.documentElement.setAttribute('data-ls-size-local', c);\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', run); else run();\n})();\n/* ==== v36 (2026-10-14) : conseil du PRODUIT dans le calculateur. Ouvert depuis le bloc \u00AB Vous hesitez sur la taille ? \u00BB d'une\n   fiche (lien \u00AB Guide des tailles \u00BB : ?modele=<handle FR>&pid=<id>), le calculateur lit la table du chat de CE produit\n   (sessionStorage \u00AB ls_abt_guide \u00BB, posee par le bloc au clic ; sinon relecture de la fiche, meme origine) et rend EXACTEMENT\n   la reponse du bloc : memes tailles (lecteur lsAbtLire du chat), memes mots (ajustee / ample), meme phrase \u00AB raison \u00BB.\n   Sans ?modele=, sans table lisible ou hors de la table : calcul generique inchange. Aucune regle de taille ici.\n   Hors ligne tant que pousser_guide_v36.py n'est pas lance par Arnaud. Aucun tiret long. ==== */\n/* ==== v37 (2026-10-22, Arnaud : \u00AB fais le et publie tout \u00BB) : MEMOIRE des mesures partagee avec le bloc taille (v3-13840e26).\n   Le bloc retient taille, poids, unites et genre SUR L'APPAREIL du client (localStorage \u00AB ls_abt_moi \u00BB, 180 jours, rien n'est\n   envoye). Le guide les remet dans le calculateur (cm / kg, menu Homme / Femme) a l'ouverture, meme dans un NOUVEL onglet,\n   sans calculer tout seul (le moteur ferait defiler la page vers les grilles) ; ouvert depuis une fiche, le conseil du produit\n   s'affiche directement, comme avant avec le meme onglet. Un calcul lance par le client dans le guide met la memoire a jour :\n   la fiche suivante reprend ces mesures. Avec ?modele=, le conseil suit le genre du menu (table \u00AB genres \u00BB du chat, comme le\n   bouton Femme / Homme du bloc) et la relecture de la fiche reconnait le script du bloc depuis le 21/10 (champ g). ==== */\n/* ==== v38 (2026-10-29, GO d'Arnaud relaye par la session SAV : \u00AB le guide doit dire la meme chose que le chat et l'encadre \u00BB) :\n   au-dela des bornes des tables (140-215 cm, 35-200 kg) mais mesure humaine (120-230 cm, 30-250 kg), la table du produit est lue\n   A LA BORNE comme le bloc v3-21ea47a4 (taille au bord de la grille, jamais le calcul generique) ; note des 2 m (n_2m) ; au bord\n   de la grille, bouton vers la collection du genre filtree sur la taille voisine (textes et tailles en vente lus sur la fiche) ;\n   memoire des mesures sur les memes bornes que le bloc. ==== */\n(function(){\n  'use strict';\n  if (window.__lsSgMemoire) return; window.__lsSgMemoire = 1;\n  var MOI = 'ls_abt_moi', JOURS = 180;\n  function arrondi(x) { var f = Math.floor(x), d = x - f; if (d === 0.5) { return (f % 2 === 0) ? f : f + 1; } return d > 0.5 ? f + 1 : f; }\n  function lireMoi() {\n    try {\n      var o = JSON.parse(window.localStorage.getItem(MOI) || 'null'), t = Date.now();\n      return (o && o.v === 1 && o.le > t - JOURS * 864e5 && o.le < t + 864e5) ? o : null;\n    } catch (e) { return null; }\n  }\n  function champs() { return {g: document.getElementById('calc-gender'), h: document.getElementById('calc-height'), w: document.getElementById('calc-weight'), b: document.getElementById('calc-btn')}; }\n  function nombre(v) { var x = parseFloat(String(v || '').replace(',', '.')); return isNaN(x) ? null : x; }\n  /* memoire -> calculateur : champs vides seulement, valeurs du chat arrondies (cm / kg), genre si le menu le propose */\n  function remettre() {\n    var o = lireMoi(), c = champs();\n    if (!o || !c.h || !c.w) return;\n    if (c.g && (o.g === 'femme' || o.g === 'homme') && c.g.querySelector('option[value=\"' + o.g + '\"]')) {\n      c.g.value = o.g;\n      document.documentElement.setAttribute('data-ls-sg-genre', 'memoire');     // le module produit ne le remplace pas par celui de la fiche\n    }\n    var cm = o.cm > 0 ? arrondi(Number(o.cm)) : null, kg = o.kg > 0 ? arrondi(Number(o.kg)) : null;\n    if (cm === null || kg === null || !(kg >= 30 && kg <= 250 && cm >= 120 && cm <= 230)) return;\n    if (c.h.value || c.w.value) return;\n    c.h.value = String(cm); c.w.value = String(kg);\n    document.documentElement.setAttribute('data-ls-sg-memoire', '1');\n  }\n  /* calculateur -> memoire : seulement un calcul LANCE PAR LE CLIENT (clic ou Entree), jamais le clic automatique du module produit */\n  function memoriser(ev) {\n    if (!ev || ev.isTrusted === false) return;\n    var c = champs(), h = nombre(c.h && c.h.value), kg = nombre(c.w && c.w.value);\n    if (h === null || kg === null || !(kg >= 30 && kg <= 250 && h >= 120 && h <= 230)) return;\n    var o = lireMoi() || {}, g = c.g && (c.g.value === 'femme' || c.g.value === 'homme') ? c.g.value : (o.g || '');\n    var n = {v: 1, u: 'm', cm: Math.round(h * 10) / 10, kg: Math.round(kg * 10) / 10, g: g, le: Date.now(),\n             h: String(Math.round(h * 100) / 100), w: String(Math.round(kg * 10) / 10)};\n    try { window.localStorage.setItem(MOI, JSON.stringify(n)); } catch (e) {}\n  }\n  function init() {\n    try { remettre(); } catch (e) {}\n    var c = champs();\n    if (c.b) c.b.addEventListener('click', memoriser);\n    [c.h, c.w].forEach(function (e) { if (e) e.addEventListener('keydown', function (ev) { if (ev.key === 'Enter') memoriser(ev); }); });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n})();\n(function(){\n  'use strict';\n  if (window.__lsSgProduit) return; window.__lsSgProduit = 1;\n  var q = location.search || '';\n  var mh = /[?&]modele=([^&#]+)/.exec(q), mp = /[?&]pid=(\\d+)/.exec(q);\n  if (!mh) return;\n  var HANDLE = decodeURIComponent(mh[1]), PID = mp ? mp[1] : '';\n  var CFG = window.LS_SG || {};\n  var ROOT = CFG.root || '/';\n  var CAN = {XXL: '2XL', XXXL: '3XL', XXXXL: '4XL', XXXXXL: '5XL'};\n  /* ---- lecteur de la table \u00AB ab_taille_regles/v1 \u00BB : copie de construction/chat/scripts/lecteur_table.js (0 ecart sur 12 616 couples) */\n  function arrondi(x) { var f = Math.floor(x), d = x - f; if (d === 0.5) { return (f % 2 === 0) ? f : f + 1; } return d > 0.5 ? f + 1 : f; }\n  function lire(table, cm, kg) {\n    if (!table || table.v !== 1 || !table.h || !table.t || !table.r) { return null; }\n    cm = arrondi(Number(cm)); kg = arrondi(Number(kg));\n    if (isNaN(cm) || isNaN(kg)) { return null; }\n    if (cm < table.cm[0] || cm > table.cm[1] || kg < table.kg[0] || kg > table.kg[1]) { return {hors_table: true}; }\n    for (var i = 0; i < table.h.length; i++) {\n      var ligne = table.h[i];\n      if (cm >= ligne[0] && cm <= ligne[1]) {\n        var choix = null;\n        for (var j = 0; j < ligne[2].length; j++) { if (ligne[2][j][0] <= kg) { choix = ligne[2][j]; } else { break; } }\n        if (!choix) { return null; }\n        return {ajustee: table.t[choix[1]], ample: table.t[choix[2]], raison: table.r[choix[3]],\n                conseil_ample: choix.length > 4 && choix[4] === 1, deux_tailles: choix[1] !== choix[2]};\n      }\n    }\n    return null;\n  }\n  /* v38 : mesure humaine hors des bornes de la table = lue a la borne (meme regle que lireTable() du bloc) */\n  function lireBorne(table, cm, kg) {\n    var r = lire(table, cm, kg);\n    if (r && r.hors_table && table && table.cm && table.kg && cm >= 120 && cm <= 230 && kg >= 30 && kg <= 250) {\n      var r2 = lire(table, Math.max(table.cm[0], Math.min(table.cm[1], cm)), Math.max(table.kg[0], Math.min(table.kg[1], kg)));\n      if (r2 && !r2.hors_table) return r2;\n    }\n    return r;\n  }\n  function canon(x) { x = String(x || '').toUpperCase(); return CAN[x] || x; }\n  function etiquette(o) { var m = /^\\s*([^\\s(]+)/.exec(o || ''); return m ? m[1] : String(o || ''); }\n  function fmt(s, o) { return String(s || '').replace(/\\{(\\w)\\}/g, function (_, x) { return o[x] === undefined ? '' : o[x]; }); }\n  function esc(s) { return String(s).replace(/[&<>\"']/g, function (c) { return {'&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;'}[c]; }); }\n  var P = null, general = false;\n  function valide(s) {\n    return !!(s && s.v === 1 && s.tbl && s.tbl.v === 1 && s.t && (!PID || String(s.pid) === PID) && (!s.handle || !HANDLE || s.handle === HANDLE));\n  }\n  function depuisSession() {\n    try { var s = JSON.parse(window.sessionStorage.getItem('ls_abt_guide') || 'null'); return valide(s) ? s : null; } catch (e) { return null; }\n  }\n  /* repli (lien ouvert dans un autre onglet, stockage vide) : la fiche de ce produit porte sa table et ses textes dans le script du bloc */\n  function depuisFiche(cb) {\n    try {\n      if (typeof fetch !== 'function') { cb(null); return; }\n      fetch(ROOT + 'products/' + encodeURIComponent(HANDLE) + '?ab_taille_guide=1', {credentials: 'same-origin'})\n        .then(function (r) { return r.ok ? r.text() : ''; })\n        .then(function (h) {\n          // v37 : depuis le 21/10 le bloc ecrit \u00AB tbl: ..., g: \"homme\", \u00BB (genre de la fiche) : sans ce champ optionnel, la relecture echouait\n          var m = /\\}\\)\\(\\{pid: (\\d+), imp: (true|false), lg: (\"[^\"]*\"), titre: (\".*?\"), t: (\\{.*?\\}),\\n\\s*tbl: (\\{.*?\\}|null)(?:, g: (\"[a-z]*\"))?,\\n\\s*v: (\\[.*?\\]),\\n\\s*ep: /.exec(h || '');\n          if (!m) { cb(null); return; }\n          var s = {v: 1, pid: m[1], lg: JSON.parse(m[3]), titre: JSON.parse(m[4]), t: JSON.parse(m[5]), tbl: JSON.parse(m[6]), vr: JSON.parse(m[8]),\n                   g: m[7] ? JSON.parse(m[7]) : ''};\n          s.handle = s.tbl && s.tbl.handle;\n          try { var mt = /, ta: (\\{\"homme\":\\[[^\\]]*\\],\"femme\":\\[[^\\]]*\\]\\})\\}\\);/.exec(h || ''); if (mt) s.ta = JSON.parse(mt[1]); } catch (e) {}\n          cb(valide(s) ? s : null);\n        }).catch(function () { cb(null); });\n    } catch (e) { cb(null); }\n  }\n  function label(c) {\n    var vs = P.vr || P.v || [];\n    for (var i = 0; i < vs.length; i++) { if (canon(etiquette(vs[i].o)) === canon(c)) return {lab: etiquette(vs[i].o), id: vs[i].id, a: vs[i].a !== false}; }\n    return {lab: c, id: null, a: true};\n  }\n  function note(r, cA, kg) {\n    var T = P.t, w = Math.round(kg) + ' kg';\n    if (r.conseil_ample && r.raison !== 'descente') return T.n_petit;\n    switch (r.raison) {\n      case 'descente': return fmt(T.n_grand, {w: w, s: cA.lab});\n      case 'plancher_stature': return T.n_haut;\n      case 'petite_stature': case 'gabarit_svelte': case 'carrure_trapue': return T.n_morpho;\n      case 'skew_retours': return T.n_petit;\n      case 'slim': return T.n_slim;\n      case 'hors_grille_haut': return fmt(T.n_max, {s: cA.lab});\n      case 'hors_grille_bas': return fmt(T.n_min, {s: cA.lab});\n    }\n    return '';\n  }\n  /* v38 : au bord de la grille, la taille voisine HORS de cette fiche si la collection du genre en a en vente (comme le bloc) */\n  var ORDRE_T = ['XXS', 'XS', 'S', 'M', 'L', 'XL', '2XL', '3XL', '4XL', '5XL', '6XL', '7XL', '8XL'];\n  function autreTaille(sens, gender) {\n    var base = gender === 'femme' ? CFG.collFemme : CFG.collHomme, dispo = (P.ta && P.ta[gender]) || [], vs = P.vr || P.v || [], bout = -1;\n    if (!base || !P.t || !P.t.autres) return null;\n    for (var i = 0; i < vs.length; i++) {\n      var k = ORDRE_T.indexOf(canon(etiquette(vs[i].o)));\n      if (k >= 0 && (bout < 0 || (sens === 'haut' ? k > bout : k < bout))) bout = k;\n    }\n    var t = bout < 0 ? '' : ORDRE_T[sens === 'haut' ? bout + 1 : bout - 1];\n    if (!t || dispo.indexOf(t) < 0) return null;\n    return {t: t, url: base + (base.indexOf('?') < 0 ? '?' : '&') + 'filter.v.m.custom.taille=' + encodeURIComponent(t)};\n  }\n  function lien(v) {\n    var u = ROOT + 'products/' + encodeURIComponent(HANDLE);\n    return v.id ? u + '?variant=' + v.id : u;\n  }\n  function carte(kind, v, coupe, plage) {\n    var T = P.t;\n    return '<div class=\"reco-card ' + kind + ' ls-sg-produit-carte\" data-taille=\"' + esc(v.lab) + '\" data-coupe=\"' + esc(coupe) + '\"><div class=\"label\">' + esc(coupe === 'ajuste' ? T.ajuste : (coupe === 'ample' ? T.ample : T.conseil)) + '</div>'\n         + '<div class=\"size\">' + esc(v.lab) + '</div><div class=\"meta\">' + esc(plage || (v.a ? '' : T.epuisee)) + '</div>'\n         + '<a class=\"size-link\" href=\"' + esc(lien(v)) + '\" aria-label=\"' + esc(T.choisir + ' : ' + v.lab) + '\">' + esc(T.choisir) + ' \uD83D\uDC49</a></div>';\n  }\n  function plage(c) {\n    var vs = P.vr || P.v || [];\n    for (var i = 0; i < vs.length; i++) {\n      if (canon(etiquette(vs[i].o)) !== canon(c)) continue;\n      var m = /\\(\\s*(\\d+)\\s*-\\s*(\\d+)\\s*kg\\s*\\)/i.exec(vs[i].o || ''), m2 = /\\(\\s*\\+\\s*(\\d+)\\s*kg\\s*\\)/i.exec(vs[i].o || '');\n      if (m) return m[1] + '-' + m[2] + ' kg';\n      if (m2) return '+' + m2[1] + ' kg';\n    }\n    return '';\n  }\n  /* v37 : table du GENRE choisi (cle \u00AB genres \u00BB de la table du chat), comme tableDe() du bloc ; \u00AB jumelle \u00BB = grille de la version de\n     l'autre genre (plages masquees, note n_homme / n_femme). Sans \u00AB genres \u00BB (table deja choisie par le bloc) : la table telle quelle. */\n  function tableGenre(tb, g) {\n    var G = tb && tb.genres;\n    if (!G || !G.homme || !G.femme || !G[g]) return tb;\n    return {v: tb.v, handle: tb.handle, titres: tb.titres, cm: tb.cm, kg: tb.kg, r: tb.r, t: G[g].t, h: G[g].h, jumelle: G[g].jumelle || null};\n  }\n  /* appele par renderResult() du moteur (une ligne ajoutee par build_guide_v36.py) : vrai = conseil du produit rendu */\n  window.LS_SG_PRODUIT = function (h, kg, out, gender) {\n    if (!P || general || !out) return false;\n    var tb = tableGenre(P.tbl, gender === 'femme' ? 'femme' : 'homme');\n    var r = lireBorne(tb, h, kg);\n    if (!r || r.hors_table) return false;      // mesure impossible : calcul generique\n    var T = P.t, cA = label(r.ajustee), cM = r.deux_tailles ? label(r.ample) : null;\n    var n = note(r, cA, kg);\n    // v38 : 2 m et plus, la note des bretelles reglables (n_2m du bloc), ajoutee a la franchise du bord haut\n    if (h >= 200 && T.n_2m) n = (!n || r.raison === 'plancher_stature') ? T.n_2m : n + ' ' + T.n_2m;\n    var autre = (r.raison === 'hors_grille_haut' || r.raison === 'hors_grille_bas') ? autreTaille(r.raison === 'hors_grille_haut' ? 'haut' : 'bas', gender === 'femme' ? 'femme' : 'homme') : null;\n    if (tb && tb.jumelle && (T.n_homme || T.n_femme)) n = (n ? n + ' ' : '') + (gender === 'femme' ? T.n_femme : T.n_homme);\n    var html = '<div class=\"reco-line ls-sg-produit-tete\" style=\"font-size:13px;color:#475569;margin:0 0 8px;line-height:1.5\">' + esc(T.g_pour) + ' <strong style=\"color:#5A31F4\">' + esc(P.titre || HANDLE) + '</strong> (' + esc(T.g_modele) + ')</div>';\n    html += '<div class=\"reco-pair ls-sg-produit\" style=\"grid-template-columns:' + (cM ? '1fr 1fr' : '1fr') + '\">'\n          + carte('tight', cA, cM ? 'ajuste' : 'unique', (r.raison === '' && !(tb && tb.jumelle)) ? plage(r.ajustee) : '')\n          + (cM ? carte('relax', cM, 'ample', '') : '') + '</div>';\n    html += '<div class=\"reco-line ls-sg-produit-ligne\" style=\"font-size:13px;color:#475569;margin-top:8px;line-height:1.5\">'\n          + esc(T.conseil) + ' <strong style=\"color:#5A31F4\">' + esc(cA.lab) + (cM ? ' (' + esc(T.ajuste) + ') ' + esc(T.ou) + ' ' + esc(cM.lab) + ' (' + esc(T.ample) + ')' : '') + '</strong>'\n          + (n ? ' <span class=\"ls-sg-produit-note\" style=\"display:inline-block;margin-top:6px;padding:6px 10px;border-radius:8px;background:#FAF1B6;border-left:3px solid #5A31F4;color:#2d2d2d;font-weight:500\">' + esc(n) + '</span>' : '')\n          + (autre ? ' <a class=\"ls-sg-autres\" href=\"' + esc(autre.url) + '\" style=\"display:inline-flex;margin-top:8px;padding:7px 13px;border-radius:999px;border:1.5px solid #5A31F4;background:#fff;color:#5A31F4;font-weight:700;text-decoration:none\">' + esc(fmt(T.autres, {s: autre.t})) + '</a>' : '')\n          + ' <a href=\"#calculatrice\" class=\"ls-sg-general\" style=\"display:block;margin-top:6px;color:#5A31F4;text-decoration:underline\">' + esc(T.g_general) + '</a></div>';\n    out.innerHTML = html; out.classList.add('show');\n    var a = out.querySelector('.ls-sg-general');\n    if (a) a.addEventListener('click', function (ev) {\n      ev.preventDefault(); general = true;\n      var b = document.getElementById('calc-btn'); if (b) b.click();\n    });\n    try { history.replaceState(null, '', location.pathname + location.search + '#calculatrice'); } catch (e) {}\n    return true;\n  };\n  function demarrer(s) {\n    P = s;\n    try {\n      var hEl = document.getElementById('calc-height'), wEl = document.getElementById('calc-weight'), b = document.getElementById('calc-btn');\n      // v37 : sans genre retenu par la memoire, le menu prend le genre de la fiche (meme reponse par defaut que le bloc)\n      var gSel = document.getElementById('calc-gender');\n      if (gSel && (s.g === 'femme' || s.g === 'homme') && document.documentElement.getAttribute('data-ls-sg-genre') !== 'memoire') gSel.value = s.g;\n      if (hEl && s.cm > 0 && !hEl.value) hEl.value = s.cm;\n      if (wEl && s.kg > 0 && !wEl.value) wEl.value = s.kg;\n      if (b && hEl && wEl && hEl.value && wEl.value) b.click();     // la reponse du bloc, deja la quand la page s'ouvre\n    } catch (e) {}\n    document.documentElement.setAttribute('data-ls-sg-produit', String(s.handle || HANDLE));\n  }\n  function init() {\n    var s = depuisSession();\n    if (s) { demarrer(s); return; }\n    depuisFiche(function (s2) { if (s2) demarrer(s2); });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n})();\n"],
  "mappings": "CAaC,UAAU,CACT,GAAI,OAAO,cAAe,OAAQ,OAAO,cAAgB,EACzD,IAAI,IAAM,OAAO,OAAS,CAAC,EACvB,KAAO,IAAI,QAAU,SAAS,gBAAgB,MAAQ,MAAM,MAAM,EAAE,CAAC,EAAE,YAAY,EAEnF,YAAc,CAChB,CAAC,MAAM,KAAM,GAAG,KAAW,MAAM,EAAK,MAAM,GAAK,SAAS,GAAK,SAAS,EAAE,EAC1E,CAAC,MAAM,IAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,GAAK,SAAS,EAAE,EAC1E,CAAC,MAAM,IAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,GAAK,SAAS,EAAE,EAC1E,CAAC,MAAM,IAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,GAAK,SAAS,EAAE,EAC1E,CAAC,MAAM,KAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,GAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,KAAW,MAAM,GAAK,MAAM,GAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,KAAW,MAAM,GAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,KAAW,MAAM,IAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,KAAW,MAAM,IAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,KAAW,MAAM,IAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,KAAW,MAAM,IAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,CAC7E,EACI,YAAc,CAChB,CAAC,MAAM,KAAM,GAAG,UAAW,MAAM,EAAK,MAAM,GAAK,SAAS,GAAK,SAAS,EAAE,EAC1E,CAAC,MAAM,IAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,GAAK,SAAS,EAAE,EAC1E,CAAC,MAAM,IAAM,GAAG,KAAW,MAAM,GAAK,MAAM,GAAK,SAAS,GAAK,SAAS,EAAE,EAC1E,CAAC,MAAM,IAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,GAAK,SAAS,EAAE,EAC1E,CAAC,MAAM,KAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,GAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,UAAW,MAAM,GAAK,MAAM,GAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,UAAW,MAAM,GAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,UAAW,MAAM,IAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,UAAW,MAAM,IAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,UAAW,MAAM,IAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,EAC3E,CAAC,MAAM,MAAM,GAAG,UAAW,MAAM,IAAK,MAAM,IAAK,SAAS,IAAK,SAAS,GAAG,CAC7E,EAGI,KAAO,CACT,GAAG,CAAC,QAAQ,gFAA6E,QAAQ,4EAA+E,IAAI,MAAO,IAAI,UAAW,IAAI,YAAU,MAAM,QAAS,KAAK,mIAAoI,IAAI,oGAChX,MAAM,iBAAe,KAAK,mBAAoB,KAAK,iBAAkB,QAAQ,+BAA6B,UAAU,iFACpH,KAAK,wHAAuH,MAAM,0EAAyE,MAAM,2DAA4D,OAAO,mDACpR,OAAO,uHAAsH,KAAK,oBAAgB,KAAK,WAAY,KAAK,iCAAkC,EAAE,QAAS,EAAE,QAAS,IAAI,gEAA6D,EACrS,GAAG,CAAC,QAAQ,0FAA4E,QAAQ,kFAAuE,IAAI,KAAM,IAAI,kBAAmB,IAAI,eAAa,MAAM,SAAU,KAAK,6GAAqG,IAAI,iHACnV,MAAM,0BAA2B,KAAK,oBAAqB,KAAK,aAAc,QAAQ,+BAA6B,UAAU,+DAC7H,KAAK,0HAA4G,MAAM,sEAAwD,MAAM,kEAA0D,OAAO,+CACtP,OAAO,yGAAuG,KAAK,sBAAkB,KAAK,WAAY,KAAK,kDAA0C,EAAE,SAAU,EAAE,QAAS,IAAI,6EAAuE,EAC3S,GAAG,CAAC,QAAQ,4DAA6D,QAAQ,8DAA+D,IAAI,KAAM,IAAI,OAAQ,IAAI,SAAU,MAAM,UAAW,KAAK,0FAA2F,IAAI,8FACrS,MAAM,WAAY,KAAK,oBAAqB,KAAK,iBAAkB,QAAQ,2BAA4B,UAAU,sDACjH,KAAK,2FAA4F,MAAM,8CAA+C,MAAM,oDAAqD,OAAO,sCACxN,OAAO,6FAA8F,KAAK,qBAAiB,KAAK,WAAY,KAAK,2BAA4B,EAAE,QAAU,EAAE,UAAY,IAAI,uDAAwD,EACvQ,GAAG,CAAC,QAAQ,oEAAkE,QAAQ,0EAAqE,IAAI,KAAM,IAAI,mBAAoB,IAAI,WAAY,MAAM,UAAW,KAAK,wFAAyF,IAAI,yGAC5T,MAAM,gBAAiB,KAAK,kBAAmB,KAAK,mBAAiB,QAAQ,6BAA8B,UAAU,4EACrH,KAAK,2GAAyG,MAAM,2DAAyD,MAAM,0DAA2D,OAAO,oDACrP,OAAO,sGAAuG,KAAK,mBAAe,KAAK,WAAY,KAAK,0BAA2B,EAAE,SAAU,EAAE,QAAS,IAAI,mEAA6D,EAC/Q,GAAG,CAAC,QAAQ,mFAA8E,QAAQ,4EAAuE,IAAI,KAAM,IAAI,iBAAkB,IAAI,WAAY,MAAM,QAAS,KAAK,6FAA8F,IAAI,kGAC3U,MAAM,eAAgB,KAAK,kBAAmB,KAAK,qBAAsB,QAAQ,+BAAgC,UAAU,kEAC3H,KAAK,8GAA4G,MAAM,+DAA6D,MAAM,yDAA0D,OAAO,kDAC3P,OAAO,oGAAqG,KAAK,mBAAe,KAAK,WAAY,KAAK,+BAAgC,EAAE,OAAQ,EAAE,QAAS,IAAI,mEAAgE,EACnR,GAAG,CAAC,QAAQ,mEAAoE,QAAQ,sEAAuE,IAAI,KAAM,IAAI,cAAe,IAAI,cAAe,MAAM,OAAQ,KAAK,uFAAwF,IAAI,6FAC1T,MAAM,cAAe,KAAK,mBAAoB,KAAK,cAAe,QAAQ,iCAAkC,UAAU,sDACtH,KAAK,uGAAwG,MAAM,4DAAuD,MAAM,kDAAmD,OAAO,qCAC1O,OAAO,qGAAsG,KAAK,sBAAkB,KAAK,WAAY,KAAK,0CAA2C,EAAE,QAAS,EAAE,QAAS,IAAI,8DAA8D,EACjS,GAAG,CAAC,QAAQ,8EAAsE,QAAQ,uEAAqE,IAAI,KAAM,IAAI,kBAAgB,IAAI,iBAAe,MAAM,YAAa,KAAK,wFAAmF,IAAI,qGAC3T,MAAM,kBAAmB,KAAK,mBAAoB,KAAK,aAAc,QAAQ,kCAAgC,UAAU,yDACvH,KAAK,gIAAkH,MAAM,6DAAkD,MAAM,qDAAmD,OAAO,qCAC/O,OAAO,2GAAsG,KAAK,sBAAe,KAAK,WAAY,KAAK,yCAAoC,EAAE,QAAS,EAAE,OAAQ,IAAI,6EAAoE,EAC5R,GAAG,CAAC,QAAQ,6EAAkE,QAAQ,8EAAmE,IAAI,KAAM,IAAI,aAAc,IAAI,eAAa,MAAM,SAAU,KAAK,oFAAkF,IAAI,wGAC7S,MAAM,oBAAe,KAAK,oBAAqB,KAAK,iBAAkB,QAAQ,+BAA6B,UAAU,4DACrH,KAAK,qGAAuF,MAAM,0DAAkD,MAAM,6DAAqD,OAAO,yDACtN,OAAO,wHAAuG,KAAK,mBAAe,KAAK,WAAY,KAAK,sCAAiC,EAAE,OAAQ,EAAE,MAAO,IAAI,2EAAqE,EACzR,GAAG,CAAC,QAAQ,gFAAkE,QAAQ,2EAA+D,IAAI,KAAM,IAAI,iBAAkB,IAAI,aAAc,MAAM,aAAS,KAAK,4FAAqF,IAAI,wHAChT,MAAM,yBAA0B,KAAK,kBAAmB,KAAK,eAAgB,QAAQ,uCAAmC,UAAU,qDAClI,KAAK,yGAAsF,MAAM,oGAA4E,MAAM,4DAAmD,OAAO,wCAC7O,OAAO,gHAAiH,KAAK,mBAAe,KAAK,WAAY,KAAK,yCAA0C,EAAE,cAAU,EAAE,UAAW,IAAI,yEAA+D,EAC5S,GAAG,CAAC,QAAQ,2NAAwC,QAAQ,yMAAqC,IAAI,SAAK,IAAI,qBAAO,IAAI,2BAAQ,MAAM,2BAAQ,KAAK,2JAA6D,IAAI,6MACjN,MAAM,2BAAQ,KAAK,qBAAiB,KAAK,2BAAQ,QAAQ,iFAAiB,UAAU,yHACpF,KAAK,gMAAgD,MAAM,iIAA8B,MAAM,gGAAgC,OAAO,4GACtI,OAAO,wKAAiD,KAAK,mCAAW,KAAK,WAAY,KAAK,6EAAuB,EAAE,qBAAO,EAAE,iCAAS,IAAI,0HAAsB,EACvK,GAAG,CAAC,QAAQ,8JAAuC,QAAQ,uJAAqC,IAAI,KAAM,IAAI,qBAAO,IAAI,4BAAS,MAAM,kCAAU,KAAK,yHAA8D,IAAI,yJACrN,MAAM,6BAAU,KAAK,qBAAmB,KAAK,eAAM,QAAQ,wDAAiB,UAAU,0JACtF,KAAK,+IAAiD,MAAM,mHAAoC,MAAM,kGAAuC,OAAO,uGACpJ,OAAO,uKAA0D,KAAK,gCAAa,KAAK,WAAY,KAAK,6DAAsB,EAAE,eAAM,EAAE,eAAM,IAAI,6IAA+B,CACxL,EACI,EAAI,KAAK,GAAG,GAAK,KAAK,GACtB,KAAO,kBAAkB,KAAK,SAAS,QAAQ,EAAI,2BAA6B,0BACpF,SAAS,IAAI,EAAG,EAAE,CAAE,OAAO,OAAO,CAAC,EAAE,QAAQ,aAAc,SAAS,EAAE,EAAE,CAAE,OAAO,EAAE,CAAC,IAAI,OAAY,EAAE,CAAC,EAAI,EAAI,CAAC,CAAG,CAGnH,IAAI,KAAO,CAAE,MAAO,IAAI,WAAa,+BAAgC,MAAO,IAAI,WAAa,8BAA+B,EACxH,UAAY,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,EAChF,SAAS,UAAU,OAAQ,MAAM,CAC/B,IAAI,GAAK,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,MAAM,EAAE,EACjD,KAAO,QAAO,GAAK,OACvB,IAAI,KAAO,KAAK,MAAM,GAAK,KAAK,MAChC,OAAI,UAAU,QAAQ,EAAE,EAAI,EAAU,KAAO,kBACtC,KAAO,6BAA+B,mBAAmB,EAAE,EAAI,iBACxE,CAGA,IAAI,MAAQ,YAAY,IAAI,SAAS,EAAE,CAAE,OAAO,EAAE,KAAO,CAAC,EAC1D,SAAS,IAAI,EAAE,CAAE,OAAO,MAAM,QAAQ,CAAC,CAAG,CAC1C,SAAS,SAAS,MAAO,GAAG,CAC1B,QAAS,EAAE,EAAE,EAAE,MAAM,OAAO,IAAI,CAAE,IAAI,EAAE,MAAM,CAAC,EAAG,KAAK,IAAI,MAAM,OAAO,EACtE,GAAI,KAAQ,IAAI,EAAE,OAAS,IAAI,EAAE,MAAU,IAAI,EAAE,OAAS,GAAG,EAAE,MAAQ,OAAO,EAAE,KAAO,CACzF,OAAO,IACT,CACA,SAAS,YAAY,EAAE,CAAE,OAAG,GAAG,IAAY,MAAU,GAAG,IAAY,MAAU,GAAG,IAAY,MAAU,GAAG,IAAY,KAAa,IAAM,CAEzI,SAAS,QAAQ,OAAQ,EAAG,GAAG,CAC7B,IAAI,MAAQ,SAAS,QAAU,YAAc,YACzC,KAAO,SAAS,MAAO,EAAE,EAAG,KAAO,GAEvC,GAAI,CAAC,KACH,GAAI,GAAK,MAAM,MAAM,OAAO,CAAC,EAAE,MAAQ,KAAO,MAAM,MAAM,OAAO,CAAC,EAAE,MAAO,KAAO,cACzE,GAAK,MAAM,CAAC,EAAE,MAAQ,KAAO,MAAM,CAAC,EAAE,MAAO,KAAO,UACxD,QAAO,KAEd,IAAI,IAAM,KAAM,IAAM,GACtB,GAAI,CAAC,KAAK,CACR,GAAI,SAAS,QACP,GAAK,KAAO,IAAI,GAAG,EAAI,MAAM,OAAO,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,CAAC,EAAG,IAAI,aACpE,CACL,IAAI,GAAK,YAAY,CAAC,EAClB,IAAM,IAAI,EAAE,EAAI,IAAI,GAAG,IAAI,IAAM,GAAI,IAAI,OAC/C,CACI,CAAC,KAAO,EAAI,KAAO,GAAK,KAAO,IAAI,GAAG,EAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,CAAC,EAAG,IAAI,QACjF,CACI,MAAQ,OAAO,IAAM,IAAK,IAAM,KAAO,UAEvC,CAAC,MAAQ,OAAS,MAAQ,MAAQ,WAAU,KAAO,OACvD,IAAI,MAAQ,MAAc,IAAI,GAAG,GAAK,IAAI,KAAK,EAA5B,IAAsC,MAAM,KAAK,IAAI,IAAI,GAAG,EAAE,EAAG,MAAM,OAAO,CAAC,CAAC,EACnG,MAAO,CAAE,IAAI,IAAK,MAAM,MAAO,KAAK,KAAM,IAAI,IAAK,MAAM,MAAO,KAAK,IAAK,CAC5E,CACA,SAAS,KAAK,MAAO,MAAM,CAAE,IAAI,EAAI,MAAM,OAAO,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAM,CAAC,EAAE,CAAC,EAAG,OAAO,EAAI,EAAE,GAAK,EAAI,CAGlH,SAAS,cAAc,CACrB,IAAI,EAAI,SAAS,eAAe,aAAa,EAAG,IAAM,SAAS,eAAe,aAAa,EAAG,IAAM,SAAS,eAAe,aAAa,EAAG,IAAM,SAAS,eAAe,aAAa,EACvL,GAAI,CAAC,GAAK,CAAC,KAAO,CAAC,KAAO,CAAC,IAAK,OAChC,IAAI,OAAS,EAAE,QAAU,QAAU,QAAU,QAAS,EAAI,WAAW,IAAI,KAAK,EAAG,GAAK,WAAW,IAAI,KAAK,EAC1G,GAAI,EAAE,IAAI,IAAM,IAAI,KAAO,GAAG,KAAO,GAAG,KAAK,CAAyD,IAAI,UAAY,8CAA8C,EAAE,KAAK,SAAU,IAAI,UAAU,IAAI,MAAM,EAAG,MAAQ,CACxN,GAAI,OAAO,eAAiB,OAAO,cAAc,EAAG,GAAI,IAAK,MAAM,EAAG,OACtE,IAAI,EAAI,QAAQ,OAAQ,EAAG,EAAE,EAC7B,GAAI,CAAC,EAAE,CAAE,IAAI,UAAY,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAG,IAAI,UAAU,IAAI,MAAM,EAAG,MAAQ,CACjF,IAAI,GAAK,SAAS,QAAU,EAAE,EAAI,EAAE,EACpC,SAAS,KAAK,KAAM,MAAO,KAAK,CAC9B,MAAO,yBAAyB,KAAK,wBAAwB,MAAM,2BAA2B,KAAK,4BAA6B,OAAO,aAAe,OAAO,YAAY,OAAO,IAAI,GAAO,MAAM,KAAK,EAAE,MAAM,IAAI,GAAI,oCACjL,UAAU,OAAO,IAAI,EAAE,iBAAiB,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,yBAC7H,CACA,GAAI,EAAE,KAAK,CACT,IAAI,GAAK,4EAA4E,KAAK,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAChH,IAAM,yGAAyG,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,mCAAmC,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,IAAI,eAAe,EAAE,OAAO,MAAQ,EAAE,QAAU,EAAE,SAAS,SACxQ,IAAM,oMAAoM,EAAE,OAAO,SACnN,IAAI,UAAY,GAAI,IAAI,UAAU,IAAI,MAAM,EAC5C,UAAU,OAAQ,EAAG,GAAI,EAAE,GAAG,EAC9B,GAAI,CAAE,QAAQ,aAAa,KAAK,GAAG,SAAS,SAAS,SAAS,OAAO,eAAe,CAAG,OAAQ,EAAE,CAAC,CAClG,MACF,CACA,IAAI,KAAO,gEAAgE,KAAK,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAC/H,IAAM,EAAE,IAAM,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAI,GAC7D,MAAQ,8FAA8F,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,mCAAmC,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,IAAI,cAAc,EAAE,QAAQ,KAAK,IAAI,IAAI,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,gCAAgC,EAAE,IAAI,gBAChT,MAAQ,oMAAoM,EAAE,OAAO,SACrN,IAAI,UAAY,KAAM,IAAI,UAAU,IAAI,MAAM,EAC9C,UAAU,OAAQ,EAAG,GAAI,EAAE,GAAG,EAC9B,GAAI,CAAE,QAAQ,aAAa,KAAK,GAAG,SAAS,SAAS,SAAS,OAAO,eAAe,CAAG,OAAQ,EAAE,CAAC,CACpG,CAGA,IAAI,OAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAG,OAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAC9F,OAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAO,OAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EACjG,SAAS,YAAY,GAAI,OAAQ,KAAM,KAAK,CAC1C,IAAI,GAAK,SAAS,eAAe,EAAE,EAAG,GAAK,GAC3C,KAAI,GAAK,SAAS,QAAU,EAAE,EAAI,EAAE,EAChC,KAAO,kBAAkB,EAAE,KAAK,QACpC,KAAK,QAAQ,SAAS,EAAE,CAAE,MAAQ,mBAAmB,EAAE,OAAS,CAAC,EACjE,MAAQ,uBACR,KAAK,QAAQ,SAAS,EAAE,CACtB,MAAQ,uBAAuB,EAAE,WACjC,KAAK,QAAQ,SAAS,EAAE,CACtB,IAAI,IAAM,QAAQ,OAAQ,EAAG,CAAC,EAAO,GAAK,IAAM,IAAI,IAAM,MAC1D,MAAQ,iBAAiB,GAAG,aAAa,EAAE,aAAa,EAAE,8BAA8B,UAAU,OAAO,EAAE,EAAE,iBAAiB,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAG,WACrL,CAAC,EACD,MAAQ,OACV,CAAC,EACD,GAAG,UAAY,KAAO,WACxB,CACA,SAAS,UAAU,OAAQ,EAAG,GAAI,KAAK,CACrC,IAAI,MAAQ,SAAS,eAAe,SAAS,QAAU,qBAAuB,oBAAoB,EAAG,GAAK,MAC1G,UAAS,iBAAiB,UAAU,EAAE,QAAQ,SAAS,EAAE,CAAE,EAAE,UAAU,OAAO,OAAO,CAAG,CAAC,EACzF,IAAI,KAAK,KAAM,GAAG,IAElB,GADA,MAAM,iBAAiB,YAAY,EAAE,QAAQ,SAAS,EAAE,CAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAM,EAAE,KAAI,GAAG,EAAE,KAAK,EAAI,CAAC,EACxI,KAAK,CAAE,KAAK,UAAU,IAAI,OAAO,EAAG,IAAI,EAAE,KAAK,cAAc,GAAG,EAAM,GAAK,OAAO,EAAE,KAAO,UAAU,OAAO,IAAI,GAClH,WAAW,UAAU,CAAE,KAAK,eAAe,CAAC,MAAM,SAAU,SAAS,QAAQ,CAAC,CAAG,EAAG,GAAG,CAAG,EAC9F,CAGA,IAAI,IAAM,wcAGN,GAAK,SAAS,cAAc,OAAO,EAAG,GAAG,GAAG,oBAAqB,GAAG,YAAc,IAAK,SAAS,KAAK,YAAY,EAAE,EAEvH,SAAS,MAAM,CACb,YAAY,qBAAqB,QAAQ,OAAO,MAAM,EACtD,YAAY,qBAAqB,QAAQ,OAAO,MAAM,EACtD,SAAS,iBAAiB,gBAAgB,EAAE,QAAQ,SAAS,EAAE,CAAE,EAAE,YAAc,EAAE,IAAM,CAAC,EAC1F,IAAI,IAAM,SAAS,eAAe,UAAU,EACxC,MAAM,IAAI,iBAAiB,QAAS,YAAY,EAClD,CAAC,cAAc,aAAa,EAAE,QAAQ,SAAS,GAAG,CAAE,IAAI,EAAE,SAAS,eAAe,EAAE,EAAM,GAAG,EAAE,iBAAiB,UAAU,SAAS,GAAG,CAAK,GAAG,MAAM,UAAU,GAAG,eAAe,EAAG,aAAa,EAAK,CAAC,CAAG,CAAC,GAC5M,OAAO,cAAgB,QAAS,OAAO,UAAY,SACrD,CACI,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoB,IAAI,EAAQ,KAAK,CACxG,GAAG,GAGF,UAAU,CACT,aACA,IAAI,IAAM,OAAO,OAAS,CAAC,EACvB,IAAM,OAAO,IAAI,QAAU,SAAS,gBAAgB,MAAQ,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EACzF,KAAO,OAAO,IAAI,MAAS,OAAO,SAAW,QAAQ,QAAU,QAAQ,OAAO,MAAS,GAAG,EAC1F,KAAK,OAAO,KAAK,OAAO,CAAC,IAAM,MAAK,MAAQ,KAChD,IAAI,KAAO,kBAAkB,KAAK,SAAS,QAAQ,EAAI,2BAA6B,0BAChF,IAAM,CAAC,GAAK,CAAC,IAAM,YAAY,KAAO,OAAO,KAAO,mDAAmD,QAAU,uCAAoC,KAAO,0BAAoB,KAAO,kBAAkB,KAAO,UAAU,EAAE,GAAK,CAAC,IAAM,aAAa,KAAO,UAAU,KAAO,+CAA4C,QAAU,oCAAoC,KAAO,qBAAqB,KAAO,sBAAmB,KAAO,WAAW,EAAE,GAAK,CAAC,IAAM,aAAa,KAAO,SAAS,KAAO,gDAAgD,QAAU,4BAA4B,KAAO,gBAAgB,KAAO,kBAAkB,KAAO,YAAY,EAAE,GAAK,CAAC,IAAM,iBAAc,KAAO,OAAO,KAAO,kDAAkD,QAAU,qCAAqC,KAAO,sBAAsB,KAAO,sBAAsB,KAAO,YAAY,EAAE,GAAK,CAAC,IAAM,iBAAc,KAAO,MAAM,KAAO,kDAAkD,QAAU,8BAA8B,KAAO,oBAAoB,KAAO,qBAAqB,KAAO,eAAY,EAAE,GAAK,CAAC,IAAM,aAAa,KAAO,OAAO,KAAO,+CAA+C,QAAU,4BAA4B,KAAO,mBAAmB,KAAO,eAAe,KAAO,UAAU,EAAE,GAAK,CAAC,IAAM,aAAa,KAAO,KAAK,KAAO,mDAAgD,QAAU,kCAA+B,KAAO,kBAAkB,KAAO,mBAAgB,KAAO,UAAU,EAAE,GAAK,CAAC,IAAM,oBAAc,KAAO,OAAO,KAAO,kDAA+C,QAAU,6BAA6B,KAAO,2BAAqB,KAAO,mBAAgB,KAAO,UAAU,EAAE,GAAK,CAAC,IAAM,aAAa,KAAO,SAAS,KAAO,qCAAkC,QAAU,mCAA8B,KAAO,oBAAoB,KAAO,wBAAmB,KAAO,YAAY,EAAE,GAAK,CAAC,IAAM,uCAAS,KAAO,iCAAQ,KAAO,iIAAwB,QAAU,4GAAuB,KAAO,2BAAO,KAAO,2BAAO,KAAO,6BAAS,EAAE,GAAK,CAAC,IAAM,iCAAQ,KAAO,eAAK,KAAO,2HAA4B,QAAU,uFAAsB,KAAO,4BAAQ,KAAO,4BAAQ,KAAO,uBAAQ,CAAC,EAC/mE,EAAI,IAAI,GAAG,GAAK,IAAI,GACpB,IAAM,SAAS,cAAc,oBAAoB,EACrD,GAAI,CAAC,IAAK,OACV,SAAS,IAAI,EAAE,CAAE,OAAO,OAAO,GAAG,EAAE,EAAE,QAAQ,KAAK,OAAO,EAAE,QAAQ,KAAK,MAAM,EAAE,QAAQ,KAAK,MAAM,EAAE,QAAQ,KAAK,QAAQ,CAAG,CAW9H,GAPI,OAAS,KACX,IAAI,iBAAiB,sFAAsF,EAAE,QAAQ,SAAS,EAAE,CAC9H,IAAI,EAAI,EAAE,aAAa,MAAM,EACzB,EAAE,QAAQ,IAAI,IAAM,GAAG,EAAE,aAAa,OAAQ,KAAK,MAAM,EAAE,EAAE,EAAI,CAAC,CACxE,CAAC,EAGC,OAAS,0BAA2B,CACtC,IAAI,iBAAiB,2CAA2C,EAAE,QAAQ,SAAS,EAAE,CAAE,EAAE,aAAa,OAAO,UAAU,IAAI,CAAG,CAAC,EAE/H,QADI,EAAI,SAAS,iBAAiB,IAAK,WAAW,UAAW,IAAI,EAAG,EAC5D,EAAI,EAAE,SAAS,GAAU,EAAE,UAAU,QAAQ,yBAAyB,GAAK,IAAG,EAAE,UAAY,EAAE,UAAU,MAAM,yBAAyB,EAAE,KAAK,IAAI,EAC5J,CAGA,IAAI,OAAS,OAAO,YAAc,WAAW,kCAAkC,EAAE,QAC7E,KAAO,IAAI,iBAAiB,yDAAyD,EACzF,GAAI,CAAC,QAAU,OAAO,KAAO,OAAO,IAAI,kBAAqB,WAE3D,GADA,SAAS,gBAAgB,UAAU,IAAI,SAAS,EAC5C,yBAA0B,OAAQ,CACpC,IAAI,IAAM,IAAI,qBAAqB,SAAS,GAAG,CAAE,GAAG,QAAQ,SAAS,EAAE,CAAE,EAAE,OAAO,UAAU,OAAO,QAAS,EAAE,cAAc,CAAG,CAAC,CAAG,EAAG,CAAC,WAAW,MAAM,CAAC,EACzJ,KAAK,QAAQ,SAAS,EAAE,CAAE,IAAI,QAAQ,CAAC,CAAG,CAAC,CAC7C,MAAS,KAAK,QAAQ,SAAS,EAAE,CAAE,EAAE,UAAU,IAAI,OAAO,CAAG,CAAC,EAGhE,GAAI,CAAC,QAAU,yBAA0B,OAAQ,CAC/C,IAAI,QAAU,IAAI,iBAAiB,iHAAiH,EAChJ,IAAM,IAAI,qBAAqB,SAAS,GAAG,CAAE,GAAG,QAAQ,SAAS,EAAE,CAAM,EAAE,iBAAiB,EAAE,OAAO,UAAU,IAAI,OAAO,EAAG,IAAI,UAAU,EAAE,MAAM,EAAK,CAAC,CAAG,EAAG,CAAC,WAAW,iBAAiB,CAAC,EACjM,QAAQ,QAAQ,SAAS,GAAG,CAAE,IAAI,EAAI,GAAG,sBAAsB,EAAO,EAAE,IAAM,cAAe,GAAG,UAAU,IAAI,WAAW,EAAG,IAAI,QAAQ,EAAE,EAAK,CAAC,CAClJ,CAEA,IAAI,MAAQ,SAAS,eAAe,wBAAwB,EAC5D,GAAI,MAAO,CACT,MAAM,UAAY,iCAAiC,IAAI,EAAE,OAAO,EAAE,SAClE,IAAI,MAAQ,IAAI,cAAc,+BAA+B,EAAO,MAAQ,MAAQ,MAAM,YAAY,KAAK,EAAI,GAC3G,KAAO,SAAS,eAAe,eAAe,EAAG,KAAO,SAAS,eAAe,eAAe,EAC/F,MAAM,KAAK,aAAa,aAAc,EAAE,IAAI,EAAO,MAAM,KAAK,aAAa,aAAc,EAAE,IAAI,EACnG,MAAM,KAAO,8BAA+B,CAAC,YAAY,aAAa,CAAC,EACpE,KAAK,SAAS,EAAE,CAAE,GAAG,CAAC,EAAE,GAAI,MAAM,IAAI,MAAM,QAAQ,EAAE,MAAM,EAAG,OAAO,EAAE,KAAK,CAAG,CAAC,EACjF,KAAK,SAAS,KAAK,CAClB,IAAI,EAAI,KAAK,MAAM,4EAA4E,EAC/F,GAAI,CAAC,EAAG,MAAM,IAAI,MAAM,SAAS,EAIjC,QAHI,MAAQ,KAAK,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,SAAS,EAAE,CAAE,OAAO,EAAE,GAAK,EAAE,CAAG,CAAC,EACjE,EAAI,MAAM,OAAO,SAAS,EAAE,CAAE,OAAO,EAAE,IAAM,GAAK,CAAC,EAAG,EAAI,MAAM,OAAO,SAAS,EAAE,CAAE,OAAO,EAAE,IAAM,GAAK,CAAC,EACzG,IAAM,CAAC,EAAG,EAAI,EAAG,EAAI,GACjB,EAAI,EAAE,QAAU,EAAI,EAAE,SAAW,IAAI,OAAS,IAAU,EAAI,EAAE,QAAQ,IAAI,KAAK,EAAE,GAAG,CAAC,EAAO,EAAI,EAAE,QAAU,IAAI,OAAS,IAAI,IAAI,KAAK,EAAE,GAAG,CAAC,EACpJ,OAAO,GAAG,CACZ,CAAC,EACA,MAAM,UAAU,CAAE,MAAM,UAAY,iCAAiC,IAAI,EAAE,IAAI,EAAE,QAAU,CAAC,CACjG,CACA,SAAS,OAAO,SAAS,CACvB,GAAI,CAAC,SAAS,OAAO,CAAE,MAAM,UAAY,iCAAiC,IAAI,EAAE,IAAI,EAAE,SAAU,MAAQ,CACxG,MAAM,UAAY,SAAS,IAAI,SAAS,EAAG,IAAI,CAC7C,IAAI,OAAS,IAAM,EAAI,8BAA8B,IAAI,EAAE,GAAG,EAAE,UAAY,GACxE,KAAO,EAAE,IAAM,EAAE,KAAO,EAAE,EAAI,+BAA+B,IAAI,EAAE,EAAE,EAAE,uEAAyE,GAChJ,IAAM,EAAE,EAAI,2FAA2F,IAAI,EAAE,CAAC,EAAE,UAAY,GAChI,MAAO,iCAAiC,IAAI,EAAE,CAAC,EAAE,uDACO,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,6CAA6C,KAAK,OACnI,gGAAgG,IAAI,EAAE,IAAI,EAAE,0DACrE,IAAI,EAAE,CAAC,EAAE,oDACF,IAAI,IAAI,EAAE,CAAC,EAAE,iCAAiC,IAAI,KAAK,EAAE,iIAC5G,CAAC,EAAE,KAAK,EAAE,EACV,sBAAsB,UAAU,CAAE,MAAM,UAAU,IAAI,OAAO,CAAG,CAAC,EACjE,SAAS,CACX,CACA,SAAS,UAAU,CACjB,IAAIA,MAAO,SAAS,eAAe,eAAe,EAAGC,MAAO,SAAS,eAAe,eAAe,EAAG,KAAO,SAAS,eAAe,eAAe,EACpJ,GAAI,CAACD,OAAQ,CAACC,MAAM,OACpB,SAAS,IAAI,CAAE,IAAI,EAAI,MAAM,cAAc,eAAe,EAAG,OAAO,EAAI,EAAE,sBAAsB,EAAE,OAAS,WAAW,iBAAiB,KAAK,EAAE,GAAG,GAAK,IAAM,GAAK,CACjKD,MAAK,QAAU,UAAU,CAAE,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,EAAG,SAAS,QAAQ,CAAC,CAAG,EAC9EC,MAAK,QAAU,UAAU,CAAE,MAAM,SAAS,CAAC,KAAM,GAAG,EAAE,EAAG,SAAS,QAAQ,CAAC,CAAG,EAC9E,SAAS,KAAK,CACZ,IAAI,IAAM,MAAM,YAAc,MAAM,YAEpC,GADAD,MAAK,SAAW,MAAM,YAAc,EAAGC,MAAK,SAAW,MAAM,YAAc,IAAM,EAC7E,EAAC,KACL,KAAI,MAAQ,MAAM,iBAAiB,eAAe,EAAE,OAAQ,IAAM,KAAK,IAAI,EAAG,KAAK,MAAM,MAAM,YAAc,GAAG,CAAC,CAAC,EAAG,MAAQ,KAAK,IAAI,EAAG,KAAK,KAAK,MAAQ,GAAG,CAAC,EAC/J,GAAI,SAAS,KAAK,QAAQ,OAAO,IAAI,EAAE,IAAM,MAAO,CAClD,KAAK,QAAQ,MAAQ,MACrB,QADgC,GAAK,GAC5B,EAAE,EAAE,EAAE,MAAM,IAAK,IAAM,gDAAgD,EAAE,iBAAiB,IAAI,EAAE,KAAK,QAAQ,MAAO,EAAE,CAAC,CAAC,EAAE,cACnI,KAAK,UAAY,GACjB,KAAK,iBAAiB,MAAM,EAAE,QAAQ,SAAS,EAAE,CAAE,EAAE,iBAAiB,QAAS,UAAU,CAAE,MAAM,SAAS,CAAC,KAAM,SAAS,EAAE,QAAQ,KAAK,EAAE,EAAE,IAAI,GAAG,EAAG,SAAS,QAAQ,CAAC,CAAG,CAAC,CAAG,CAAC,CACnL,CACA,IAAI,IAAM,KAAK,MAAM,MAAM,YAAc,IAAI,GAAG,EAAE,EAClD,KAAK,iBAAiB,MAAM,EAAE,QAAQ,SAAS,EAAEC,GAAE,CAAE,EAAE,UAAU,OAAO,SAAUA,KAAM,GAAG,CAAG,CAAC,EACjG,CACA,MAAM,iBAAiB,SAAU,IAAK,CAAC,QAAQ,EAAI,CAAC,EAAG,OAAO,iBAAiB,SAAU,GAAG,EAAG,WAAW,IAAK,EAAE,CACnH,CACF,GAAG,GAGF,UAAU,CACT,aACA,GAAI,OAAO,sBAAyB,OACpC,OAAO,sBAAwB,GAC/B,IAAI,IAAM,CACR,OAAQ,4/CACR,QAAS,0kDACT,WAAY,srDACd,EACI,QAAU,KAAM,OAAS,GAAO,eAAiB,GAAI,cAAgB,GACzE,SAAS,OAAO,CAAE,OAAO,SAAS,eAAe,cAAc,CAAG,CAClE,SAAS,MAAM,GAAG,CAAE,OAAO,GAAK,GAAG,YAAY,QAAQ,OAAQ,GAAG,EAAE,QAAQ,aAAc,EAAE,EAAI,EAAI,CACpG,SAAS,WAAW,MAAM,CACxB,IAAI,IAAM,MAAM,aAAa,aAAa,EACtC,IAAM,IAAI,GAAG,EACb,MAAQ,SAAS,eAAe,gBAAgB,EACpD,GAAI,CAAC,KAAO,CAAC,MAAS,MAAO,GAE7B,QADI,GAAK,MAAM,cAAc,IAAI,EAAG,EAAI,MAAM,cAAc,GAAG,EAAG,GAAK,MAAM,cAAc,WAAW,EAC/F,MAAM,YAAc,MAAM,YAAY,MAAM,UAAU,EAC7D,IAAI,GAAK,SAAS,cAAc,IAAI,EACpC,GAAG,GAAK,eACR,GAAG,YAAc,MAAM,EAAE,EACzB,MAAM,YAAY,EAAE,EACpB,IAAI,QAAU,GACd,GAAI,QAAS,CACX,IAAI,IAAM,SAAS,cAAc,GAAG,EACpC,IAAI,UAAY,MAChB,IAAI,YAAc,QAClB,MAAM,YAAY,GAAG,CACvB,CACA,IAAI,UAAY,SAAS,cAAc,KAAK,EAC5C,iBAAU,UAAY,IAClB,UAAU,YAAc,MAAM,YAAY,UAAU,UAAU,EAC9D,GAAK,MAAM,YAAY,EAAE,UAAU,EAAI,CAAC,EACrC,EACT,CACA,SAAS,aAAa,CACpB,IAAI,EAAI,SAAS,KAAM,GAAK,SAAS,gBACjC,MAAQ,OAAO,WAAa,GAAG,YACnC,eAAiB,EAAE,MAAM,WAAa,SAAW,GAAK,EAAE,MAAM,SAC9D,cAAgB,EAAE,MAAM,aACxB,EAAE,MAAM,SAAW,SACf,MAAQ,IAAK,EAAE,MAAM,aAAe,MAAQ,KAClD,CACA,SAAS,eAAe,CACtB,IAAI,EAAI,SAAS,KACjB,EAAE,MAAM,SAAW,eACnB,EAAE,MAAM,aAAe,aACzB,CACA,SAAS,OAAO,MAAM,CACpB,IAAI,EAAI,MAAM,EACd,GAAI,GAAC,GAAK,CAAC,WAAW,KAAK,GAC3B,SAAU,MACL,QAAU,YAAY,EAC3B,OAAS,GACT,EAAE,UAAU,IAAI,MAAM,EACtB,EAAE,gBAAgB,aAAa,EAC/B,IAAI,UAAY,SAAS,eAAe,cAAc,EAClD,WAAa,UAAU,MAAM,EACnC,CACA,SAAS,QAAQ,CACf,IAAI,EAAI,MAAM,EACV,CAAC,GAAK,CAAC,SACX,OAAS,GACT,EAAE,UAAU,OAAO,MAAM,EACzB,EAAE,aAAa,cAAe,MAAM,EACpC,cAAc,EACV,SAAW,OAAO,QAAQ,OAAU,YAAc,QAAQ,MAAM,EACpE,QAAU,KACZ,CACA,SAAS,OAAO,EAAE,CAChB,IAAI,EAAI,EAAE,OACV,GAAI,GAAC,GAAK,OAAO,EAAE,SAAY,YAC/B,KAAI,MAAQ,EAAE,QAAQ,4BAA4B,EAClD,GAAI,MAAO,CAAE,EAAE,eAAe,EAAG,OAAO,KAAK,EAAG,MAAQ,CACxD,GAAK,OACL,KAAI,EAAI,MAAM,EACT,IACD,IAAM,GAAK,EAAE,QAAQ,eAAe,KAAK,EAAE,eAAe,EAAG,OAAO,IAC1E,CACA,SAAS,UAAU,EAAE,CACnB,GAAK,OACL,KAAI,EAAI,EAAE,KAAO,EAAE,QACnB,GAAI,IAAM,UAAY,IAAM,OAAS,IAAM,GAAI,CAAE,EAAE,eAAe,EAAG,OAAO,EAAG,MAAQ,CACvF,GAAI,IAAM,OAAS,IAAM,EAAG,CAC1B,IAAI,EAAI,MAAM,EACd,GAAI,CAAC,EAAK,OACV,IAAI,EAAI,EAAE,iBAAiB,0EAA0E,EACrG,GAAI,CAAC,EAAE,OAAU,OACjB,IAAI,QAAU,EAAE,CAAC,EAAG,QAAU,EAAE,EAAE,OAAS,CAAC,EAAG,MAAQ,SAAS,cAC5D,EAAE,WAAa,QAAU,SAAW,CAAC,EAAE,SAAS,KAAK,IAAM,EAAE,eAAe,EAAG,QAAQ,MAAM,GACxF,CAAC,EAAE,WAAa,QAAU,SAAW,CAAC,EAAE,SAAS,KAAK,KAAM,EAAE,eAAe,EAAG,QAAQ,MAAM,EACzG,EACF,CACA,SAAS,MAAM,CACb,IAAI,EAAI,MAAM,EACV,CAAC,GAAK,EAAE,aAAa,gBAAgB,IAAM,MAC/C,EAAE,aAAa,iBAAkB,GAAG,EACpC,EAAE,aAAa,cAAe,MAAM,EACpC,SAAS,iBAAiB,QAAS,OAAQ,EAAK,EAChD,SAAS,iBAAiB,UAAW,UAAW,EAAK,EACrD,OAAO,gBAAkB,CAAE,OAAQ,OAAQ,OAAQ,MAAO,EAC5D,CACI,SAAS,aAAe,UAAa,SAAS,iBAAiB,mBAAoB,KAAM,EAAK,EAC3F,KAAK,CACd,GAAG,GAOF,UAAU,CACT,aACA,GAAI,OAAO,YAAa,OAAQ,OAAO,YAAc,EACrD,IAAI,IAAM,OAAO,OAAS,CAAC,EACvB,MAAQ,CAAC,mBAAmB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,IAAI,EACzX,IAAM,CAAC,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,EAAE,EAAI,CAAC,SAAS,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,UAAU,SAAS,EAAE,EAAI,CAAC,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,EAAE,EAAI,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,EAAE,EAAI,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,IAAI,IAAI,IAAI,KAAK,UAAU,KAAK,KAAK,KAAK,UAAU,KAAK,KAAK,IAAI,EAAE,EAAI,CAAC,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,CAAC,EAAE,GAAK,CAAC,MAAQ,KAAK,KAAO,KAAK,EAAI,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,EAAE,EAAI,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,CAAC,CAAC,EACtyH,IAAM,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,EACtE,EAAI,OAAO,IAAI,SAAW,MAAM,SAAS,SAAS,QAAQ,SAAS,EAAE,CAAC,GAAK,IAAI,EAAE,YAAY,EAC7F,EAAI,IAAI,CAAC,EAMb,GALA,OAAO,YAAc,SAAS,OAAQ,OAAO,CAC3C,GAAI,CAAC,EAAG,OAAO,KACf,IAAI,EAAI,IAAI,QAAQ,KAAK,MAAM,CAAC,EAAG,OAAI,EAAI,EAAU,KAC9C,EAAE,MAAQ,IAAM,EAAE,SAAW,QAAU,IAAM,GAAG,EAAE,CAAC,CAC5D,EACI,CAAC,EAAG,OACR,IAAI,EAAI,wFACJ,MAAQ,CACV,GAAG,sJACH,GAAG,sJACH,GAAG,sJACH,GAAG,uJACH,GAAG,wJACH,GAAG,uJACH,GAAG,yJACH,GAAG,+OACH,GAAG,0JACH,GAAG,gKACH,GAAG,oGAAsG,EACzG,GAAG,0mBACH,GAAG,2XACH,GAAG,2FAA6F,EAChG,GAAG,q4BAAu4B,CAC54B,EACA,SAAS,KAAK,EAAE,CAAE,SAAI,OAAO,GAAK,EAAE,EAAE,QAAQ,OAAO,EAAE,EAAE,YAAY,EAAU,IAAM,MAAQ,MAAQ,CAAG,CACxG,SAAS,MAAM,IAAI,CACb,CAAC,KAAO,CAAC,MAAM,EAAE,IAAI,IACzB,IAAI,aAAa,UAAU,WAAW,EACtC,IAAI,UAAY,MAAM,EAAE,IAAI,EAC5B,IAAI,aAAa,YAAa,EAAE,IAAI,EACtC,CACA,SAAS,KAAK,CACZ,IAAI,IAAM,SACV,IAAI,iBAAiB,sBAAsB,EAAE,QAAQ,SAAS,GAAG,CAC/D,MAAM,GAAG,QAAQ,YAAY,IAAM,MAAQ,GAAK,GAAG,cAAc,KAAK,CAAC,CACzE,CAAC,EACD,IAAI,iBAAiB,yBAAyB,EAAE,QAAQ,SAAS,GAAG,CAAE,GAAG,YAAc,EAAE,KAAO,CAAC,EACjG,IAAI,EAAI,KAAM,EAAI,EAClB,IAAI,iBAAiB,oDAAoD,EAAE,QAAQ,SAAS,GAAG,CAC7F,GAAI,GAAG,UAAY,KAAK,CAAE,EAAI,GAAG,KAAO,gBAAkB,IAAM,IAAK,MAAQ,CAC7E,IAAI,GAAK,IAAM,IAAM,EAAI,IAAM,KAAM,IACrC,IAAI,KAAO,GAAG,OAAS,GAAG,MAAM,KAAK,CAAC,EAAG,GAAK,KAE9C,SADI,EAAI,GACC,EAAI,EAAG,EAAI,KAAK,MAAM,OAAQ,IAAM,GAAI,KAAK,MAAM,CAAC,EAAE,cAAc,sBAAsB,EAAE,CAAE,EAAI,EAAG,KAAO,CACrH,GAAI,IAAI,GACR,MAAK,MAAM,CAAC,EAAE,aAAa,aAAc,CAAC,EAC1C,QAAS,EAAI,EAAG,EAAI,GAAG,QAAQ,OAAQ,IAErC,QADI,KAAO,GAAG,QAAQ,CAAC,EAAE,KAChB,EAAI,EAAG,EAAI,KAAK,OAAQ,IAAI,CACnC,IAAI,MAAQ,KAAK,CAAC,EAAE,MAAO,GAAI,QAAM,QAAU,GAC/C,KAAI,EAAI,IAAI,QAAQ,KAAK,MAAM,CAAC,EAAE,WAAW,CAAC,EAC1C,GAAK,IAAI,MAAM,CAAC,EAAE,YAAc,EAAE,EAAE,EAAE,CAAC,EAAG,MAAM,CAAC,EAAE,MAAM,WAAa,UAC5E,GAEJ,CAAC,EACD,SAAS,gBAAgB,aAAa,qBAAsB,CAAC,CAC/D,CACI,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoB,GAAG,EAAQ,IAAI,CACtG,GAAG,GAmBF,UAAU,CACT,aACA,GAAI,OAAO,cAAe,OAAQ,OAAO,cAAgB,EACzD,IAAI,IAAM,aAAc,MAAQ,IAChC,SAAS,QAAQ,EAAG,CAAE,IAAI,EAAI,KAAK,MAAM,CAAC,EAAG,EAAI,EAAI,EAAG,OAAI,IAAM,GAAe,EAAI,IAAM,EAAK,EAAI,EAAI,EAAY,EAAI,GAAM,EAAI,EAAI,CAAG,CACzI,SAAS,SAAU,CACjB,GAAI,CACF,IAAI,EAAI,KAAK,MAAM,OAAO,aAAa,QAAQ,GAAG,GAAK,MAAM,EAAG,EAAI,KAAK,IAAI,EAC7E,OAAQ,GAAK,EAAE,IAAM,GAAK,EAAE,GAAK,EAAI,MAAQ,OAAS,EAAE,GAAK,EAAI,MAAS,EAAI,IAChF,OAAS,EAAG,CAAE,OAAO,IAAM,CAC7B,CACA,SAAS,QAAS,CAAE,MAAO,CAAC,EAAG,SAAS,eAAe,aAAa,EAAG,EAAG,SAAS,eAAe,aAAa,EAAG,EAAG,SAAS,eAAe,aAAa,EAAG,EAAG,SAAS,eAAe,UAAU,CAAC,CAAG,CACtM,SAAS,OAAO,EAAG,CAAE,IAAI,EAAI,WAAW,OAAO,GAAK,EAAE,EAAE,QAAQ,IAAK,GAAG,CAAC,EAAG,OAAO,MAAM,CAAC,EAAI,KAAO,CAAG,CAExG,SAAS,UAAW,CAClB,IAAI,EAAI,QAAQ,EAAG,EAAI,OAAO,EAC9B,GAAI,GAAC,GAAK,CAAC,EAAE,GAAK,CAAC,EAAE,GACrB,CAAI,EAAE,IAAM,EAAE,IAAM,SAAW,EAAE,IAAM,UAAY,EAAE,EAAE,cAAc,iBAAmB,EAAE,EAAI,IAAI,IAChG,EAAE,EAAE,MAAQ,EAAE,EACd,SAAS,gBAAgB,aAAa,mBAAoB,SAAS,GAErE,IAAI,GAAK,EAAE,GAAK,EAAI,QAAQ,OAAO,EAAE,EAAE,CAAC,EAAI,KAAM,GAAK,EAAE,GAAK,EAAI,QAAQ,OAAO,EAAE,EAAE,CAAC,EAAI,KACtF,KAAO,MAAQ,KAAO,MAAQ,EAAE,IAAM,IAAM,IAAM,KAAO,IAAM,KAAO,IAAM,MAC5E,EAAE,EAAE,OAAS,EAAE,EAAE,QACrB,EAAE,EAAE,MAAQ,OAAO,EAAE,EAAG,EAAE,EAAE,MAAQ,OAAO,EAAE,EAC7C,SAAS,gBAAgB,aAAa,qBAAsB,GAAG,GACjE,CAEA,SAAS,UAAU,GAAI,CACrB,GAAI,GAAC,IAAM,GAAG,YAAc,IAC5B,KAAI,EAAI,OAAO,EAAG,EAAI,OAAO,EAAE,GAAK,EAAE,EAAE,KAAK,EAAG,GAAK,OAAO,EAAE,GAAK,EAAE,EAAE,KAAK,EAC5E,GAAI,MAAM,MAAQ,KAAO,MAAQ,EAAE,IAAM,IAAM,IAAM,KAAO,GAAK,KAAO,GAAK,MAC7E,KAAI,EAAI,QAAQ,GAAK,CAAC,EAAG,EAAI,EAAE,IAAM,EAAE,EAAE,QAAU,SAAW,EAAE,EAAE,QAAU,SAAW,EAAE,EAAE,MAAS,EAAE,GAAK,GACvG,EAAI,CAAC,EAAG,EAAG,EAAG,IAAK,GAAI,KAAK,MAAM,EAAI,EAAE,EAAI,GAAI,GAAI,KAAK,MAAM,GAAK,EAAE,EAAI,GAAI,EAAG,EAAG,GAAI,KAAK,IAAI,EAC5F,EAAG,OAAO,KAAK,MAAM,EAAI,GAAG,EAAI,GAAG,EAAG,EAAG,OAAO,KAAK,MAAM,GAAK,EAAE,EAAI,EAAE,CAAC,EAClF,GAAI,CAAE,OAAO,aAAa,QAAQ,IAAK,KAAK,UAAU,CAAC,CAAC,CAAG,OAAS,EAAG,CAAC,GAC1E,CACA,SAAS,MAAO,CACd,GAAI,CAAE,SAAS,CAAG,OAAS,EAAG,CAAC,CAC/B,IAAI,EAAI,OAAO,EACX,EAAE,GAAG,EAAE,EAAE,iBAAiB,QAAS,SAAS,EAChD,CAAC,EAAE,EAAG,EAAE,CAAC,EAAE,QAAQ,SAAU,EAAG,CAAM,GAAG,EAAE,iBAAiB,UAAW,SAAU,GAAI,CAAM,GAAG,MAAQ,SAAS,UAAU,EAAE,CAAG,CAAC,CAAG,CAAC,CACrI,CACI,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoB,IAAI,EAAQ,KAAK,CACxG,GAAG,GACF,UAAU,CACT,aACA,GAAI,OAAO,cAAe,OAAQ,OAAO,cAAgB,EACzD,IAAI,EAAI,SAAS,QAAU,GACvB,GAAK,sBAAsB,KAAK,CAAC,EAAG,GAAK,gBAAgB,KAAK,CAAC,EACnE,GAAI,CAAC,GAAI,OACT,IAAI,OAAS,mBAAmB,GAAG,CAAC,CAAC,EAAG,IAAM,GAAK,GAAG,CAAC,EAAI,GACvD,IAAM,OAAO,OAAS,CAAC,EACvB,KAAO,IAAI,MAAQ,IACnB,IAAM,CAAC,IAAK,MAAO,KAAM,MAAO,MAAO,MAAO,OAAQ,KAAK,EAE/D,SAAS,QAAQ,EAAG,CAAE,IAAI,EAAI,KAAK,MAAM,CAAC,EAAG,EAAI,EAAI,EAAG,OAAI,IAAM,GAAe,EAAI,IAAM,EAAK,EAAI,EAAI,EAAY,EAAI,GAAM,EAAI,EAAI,CAAG,CACzI,SAAS,KAAK,MAAO,GAAI,GAAI,CAG3B,GAFI,CAAC,OAAS,MAAM,IAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAC9D,GAAK,QAAQ,OAAO,EAAE,CAAC,EAAG,GAAK,QAAQ,OAAO,EAAE,CAAC,EAC7C,MAAM,EAAE,GAAK,MAAM,EAAE,GAAK,OAAO,KACrC,GAAI,GAAK,MAAM,GAAG,CAAC,GAAK,GAAK,MAAM,GAAG,CAAC,GAAK,GAAK,MAAM,GAAG,CAAC,GAAK,GAAK,MAAM,GAAG,CAAC,EAAK,MAAO,CAAC,WAAY,EAAI,EAC5G,QAAS,EAAI,EAAG,EAAI,MAAM,EAAE,OAAQ,IAAK,CACvC,IAAI,MAAQ,MAAM,EAAE,CAAC,EACrB,GAAI,IAAM,MAAM,CAAC,GAAK,IAAM,MAAM,CAAC,EAAG,CAEpC,QADI,MAAQ,KACH,EAAI,EAAG,EAAI,MAAM,CAAC,EAAE,QAAmB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAK,GAA7B,IAAmC,MAAQ,MAAM,CAAC,EAAE,CAAC,EAC1F,OAAK,MACE,CAAC,QAAS,MAAM,EAAE,MAAM,CAAC,CAAC,EAAG,MAAO,MAAM,EAAE,MAAM,CAAC,CAAC,EAAG,OAAQ,MAAM,EAAE,MAAM,CAAC,CAAC,EAC9E,cAAe,MAAM,OAAS,GAAK,MAAM,CAAC,IAAM,EAAG,aAAc,MAAM,CAAC,IAAM,MAAM,CAAC,CAAC,EAFzE,IAGvB,CACF,CACA,OAAO,IACT,CAEA,SAAS,UAAU,MAAO,GAAI,GAAI,CAChC,IAAI,EAAI,KAAK,MAAO,GAAI,EAAE,EAC1B,GAAI,GAAK,EAAE,YAAc,OAAS,MAAM,IAAM,MAAM,IAAM,IAAM,KAAO,IAAM,KAAO,IAAM,IAAM,IAAM,IAAK,CACzG,IAAI,GAAK,KAAK,MAAO,KAAK,IAAI,MAAM,GAAG,CAAC,EAAG,KAAK,IAAI,MAAM,GAAG,CAAC,EAAG,EAAE,CAAC,EAAG,KAAK,IAAI,MAAM,GAAG,CAAC,EAAG,KAAK,IAAI,MAAM,GAAG,CAAC,EAAG,EAAE,CAAC,CAAC,EACvH,GAAI,IAAM,CAAC,GAAG,WAAY,OAAO,EACnC,CACA,OAAO,CACT,CACA,SAAS,MAAM,EAAG,CAAE,SAAI,OAAO,GAAK,EAAE,EAAE,YAAY,EAAU,IAAI,CAAC,GAAK,CAAG,CAC3E,SAAS,UAAU,EAAG,CAAE,IAAI,EAAI,gBAAgB,KAAK,GAAK,EAAE,EAAG,OAAO,EAAI,EAAE,CAAC,EAAI,OAAO,GAAK,EAAE,CAAG,CAClG,SAAS,IAAI,EAAG,EAAG,CAAE,OAAO,OAAO,GAAK,EAAE,EAAE,QAAQ,YAAa,SAAU,EAAG,EAAG,CAAE,OAAO,EAAE,CAAC,IAAM,OAAY,GAAK,EAAE,CAAC,CAAG,CAAC,CAAG,CAC9H,SAAS,IAAI,EAAG,CAAE,OAAO,OAAO,CAAC,EAAE,QAAQ,WAAY,SAAU,EAAG,CAAE,MAAO,CAAC,IAAK,QAAS,IAAK,OAAQ,IAAK,OAAQ,IAAK,SAAU,IAAK,OAAO,EAAE,CAAC,CAAG,CAAC,CAAG,CAC3J,IAAI,EAAI,KAAM,QAAU,GACxB,SAAS,OAAO,EAAG,CACjB,MAAO,CAAC,EAAE,GAAK,EAAE,IAAM,GAAK,EAAE,KAAO,EAAE,IAAI,IAAM,GAAK,EAAE,IAAM,CAAC,KAAO,OAAO,EAAE,GAAG,IAAM,OAAS,CAAC,EAAE,QAAU,CAAC,QAAU,EAAE,SAAW,QACxI,CACA,SAAS,eAAgB,CACvB,GAAI,CAAE,IAAI,EAAI,KAAK,MAAM,OAAO,eAAe,QAAQ,cAAc,GAAK,MAAM,EAAG,OAAO,OAAO,CAAC,EAAI,EAAI,IAAM,OAAS,EAAG,CAAE,OAAO,IAAM,CAC7I,CAEA,SAAS,YAAY,GAAI,CACvB,GAAI,CACF,GAAI,OAAO,OAAU,WAAY,CAAE,GAAG,IAAI,EAAG,MAAQ,CACrD,MAAM,KAAO,YAAc,mBAAmB,MAAM,EAAI,qBAAsB,CAAC,YAAa,aAAa,CAAC,EACvG,KAAK,SAAU,EAAG,CAAE,OAAO,EAAE,GAAK,EAAE,KAAK,EAAI,EAAI,CAAC,EAClD,KAAK,SAAU,EAAG,CAEjB,IAAI,EAAI,8JAA8J,KAAK,GAAK,EAAE,EAClL,GAAI,CAAC,EAAG,CAAE,GAAG,IAAI,EAAG,MAAQ,CAC5B,IAAI,EAAI,CAAC,EAAG,EAAG,IAAK,EAAE,CAAC,EAAG,GAAI,KAAK,MAAM,EAAE,CAAC,CAAC,EAAG,MAAO,KAAK,MAAM,EAAE,CAAC,CAAC,EAAG,EAAG,KAAK,MAAM,EAAE,CAAC,CAAC,EAAG,IAAK,KAAK,MAAM,EAAE,CAAC,CAAC,EAAG,GAAI,KAAK,MAAM,EAAE,CAAC,CAAC,EAC/H,EAAG,EAAE,CAAC,EAAI,KAAK,MAAM,EAAE,CAAC,CAAC,EAAI,EAAE,EACxC,EAAE,OAAS,EAAE,KAAO,EAAE,IAAI,OAC1B,GAAI,CAAE,IAAI,GAAK,yDAAyD,KAAK,GAAK,EAAE,EAAO,KAAI,EAAE,GAAK,KAAK,MAAM,GAAG,CAAC,CAAC,EAAG,OAAS,EAAG,CAAC,CACtI,GAAG,OAAO,CAAC,EAAI,EAAI,IAAI,CACzB,CAAC,EAAE,MAAM,UAAY,CAAE,GAAG,IAAI,CAAG,CAAC,CACtC,OAAS,EAAG,CAAE,GAAG,IAAI,CAAG,CAC1B,CACA,SAAS,MAAM,EAAG,CAEhB,QADI,GAAK,EAAE,IAAM,EAAE,GAAK,CAAC,EAChB,EAAI,EAAG,EAAI,GAAG,OAAQ,IAAO,GAAI,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,IAAM,MAAM,CAAC,EAAG,MAAO,CAAC,IAAK,UAAU,GAAG,CAAC,EAAE,CAAC,EAAG,GAAI,GAAG,CAAC,EAAE,GAAI,EAAG,GAAG,CAAC,EAAE,IAAM,EAAK,EACrJ,MAAO,CAAC,IAAK,EAAG,GAAI,KAAM,EAAG,EAAI,CACnC,CACA,SAAS,KAAK,EAAG,GAAI,GAAI,CACvB,IAAI,EAAI,EAAE,EAAG,EAAI,KAAK,MAAM,EAAE,EAAI,MAClC,GAAI,EAAE,eAAiB,EAAE,SAAW,WAAY,OAAO,EAAE,QACzD,OAAQ,EAAE,OAAQ,CAChB,IAAK,WAAY,OAAO,IAAI,EAAE,QAAS,CAAC,EAAG,EAAG,EAAG,GAAG,GAAG,CAAC,EACxD,IAAK,mBAAoB,OAAO,EAAE,OAClC,IAAK,iBAAkB,IAAK,iBAAkB,IAAK,iBAAkB,OAAO,EAAE,SAC9E,IAAK,eAAgB,OAAO,EAAE,QAC9B,IAAK,OAAQ,OAAO,EAAE,OACtB,IAAK,mBAAoB,OAAO,IAAI,EAAE,MAAO,CAAC,EAAG,GAAG,GAAG,CAAC,EACxD,IAAK,kBAAmB,OAAO,IAAI,EAAE,MAAO,CAAC,EAAG,GAAG,GAAG,CAAC,CACzD,CACA,MAAO,EACT,CAEA,IAAI,QAAU,CAAC,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAChG,SAAS,YAAY,KAAM,OAAQ,CACjC,IAAI,KAAO,SAAW,QAAU,IAAI,UAAY,IAAI,UAAW,MAAS,EAAE,IAAM,EAAE,GAAG,MAAM,GAAM,CAAC,EAAG,GAAK,EAAE,IAAM,EAAE,GAAK,CAAC,EAAG,KAAO,GACpI,GAAI,CAAC,MAAQ,CAAC,EAAE,GAAK,CAAC,EAAE,EAAE,OAAQ,OAAO,KACzC,QAAS,EAAI,EAAG,EAAI,GAAG,OAAQ,IAAK,CAClC,IAAI,EAAI,QAAQ,QAAQ,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAC7C,GAAK,IAAM,KAAO,IAAM,OAAS,OAAS,EAAI,KAAO,EAAI,SAAQ,KAAO,EAC9E,CACA,IAAI,EAAI,KAAO,EAAI,GAAK,QAAQ,OAAS,OAAS,KAAO,EAAI,KAAO,CAAC,EACrE,MAAI,CAAC,GAAK,MAAM,QAAQ,CAAC,EAAI,EAAU,KAChC,CAAC,EAAG,EAAG,IAAK,MAAQ,KAAK,QAAQ,GAAG,EAAI,EAAI,IAAM,KAAO,4BAA8B,mBAAmB,CAAC,CAAC,CACrH,CACA,SAAS,KAAK,EAAG,CACf,IAAI,EAAI,KAAO,YAAc,mBAAmB,MAAM,EACtD,OAAO,EAAE,GAAK,EAAI,YAAc,EAAE,GAAK,CACzC,CACA,SAAS,MAAM,KAAM,EAAG,MAAOC,OAAO,CACpC,IAAI,EAAI,EAAE,EACV,MAAO,yBAA2B,KAAO,sCAAwC,IAAI,EAAE,GAAG,EAAI,iBAAmB,IAAI,KAAK,EAAI,wBAA0B,IAAI,QAAU,SAAW,EAAE,OAAU,QAAU,QAAU,EAAE,MAAQ,EAAE,OAAQ,EAAI,2BAC3M,IAAI,EAAE,GAAG,EAAI,2BAA6B,IAAIA,SAAU,EAAE,EAAI,GAAK,EAAE,QAAQ,EAAI,oCACxE,IAAI,KAAK,CAAC,CAAC,EAAI,iBAAmB,IAAI,EAAE,QAAU,MAAQ,EAAE,GAAG,EAAI,KAAO,IAAI,EAAE,OAAO,EAAI,yBACpI,CACA,SAAS,MAAM,EAAG,CAEhB,QADI,GAAK,EAAE,IAAM,EAAE,GAAK,CAAC,EAChB,EAAI,EAAG,EAAI,GAAG,OAAQ,IAC7B,GAAI,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,IAAM,MAAM,CAAC,EACzC,KAAI,EAAI,oCAAoC,KAAK,GAAG,CAAC,EAAE,GAAK,EAAE,EAAG,GAAK,6BAA6B,KAAK,GAAG,CAAC,EAAE,GAAK,EAAE,EACrH,GAAI,EAAG,OAAO,EAAE,CAAC,EAAI,IAAM,EAAE,CAAC,EAAI,MAClC,GAAI,GAAI,MAAO,IAAM,GAAG,CAAC,EAAI,MAE/B,MAAO,EACT,CAGA,SAAS,WAAW,GAAI,EAAG,CACzB,IAAI,EAAI,IAAM,GAAG,OACjB,MAAI,CAAC,GAAK,CAAC,EAAE,OAAS,CAAC,EAAE,OAAS,CAAC,EAAE,CAAC,EAAU,GACzC,CAAC,EAAG,GAAG,EAAG,OAAQ,GAAG,OAAQ,OAAQ,GAAG,OAAQ,GAAI,GAAG,GAAI,GAAI,GAAG,GAAI,EAAG,GAAG,EAAG,EAAG,EAAE,CAAC,EAAE,EAAG,EAAG,EAAE,CAAC,EAAE,EAAG,QAAS,EAAE,CAAC,EAAE,SAAW,IAAI,CAC3I,CAEA,OAAO,cAAgB,SAAU,EAAG,GAAI,IAAK,OAAQ,CACnD,GAAI,CAAC,GAAK,SAAW,CAAC,IAAK,MAAO,GAClC,IAAI,GAAK,WAAW,EAAE,IAAK,SAAW,QAAU,QAAU,OAAO,EAC7D,EAAI,UAAU,GAAI,EAAG,EAAE,EAC3B,GAAI,CAAC,GAAK,EAAE,WAAY,MAAO,GAC/B,IAAI,EAAI,EAAE,EAAG,GAAK,MAAM,EAAE,OAAO,EAAG,GAAK,EAAE,aAAe,MAAM,EAAE,KAAK,EAAI,KACvE,EAAI,KAAK,EAAG,GAAI,EAAE,EAElB,GAAK,KAAO,EAAE,OAAM,EAAK,CAAC,GAAK,EAAE,SAAW,mBAAsB,EAAE,KAAO,EAAI,IAAM,EAAE,MAC3F,IAAI,MAAS,EAAE,SAAW,oBAAsB,EAAE,SAAW,kBAAqB,YAAY,EAAE,SAAW,mBAAqB,OAAS,MAAO,SAAW,QAAU,QAAU,OAAO,EAAI,KACtL,IAAM,GAAG,UAAY,EAAE,SAAW,EAAE,WAAU,GAAK,EAAI,EAAI,IAAM,KAAO,SAAW,QAAU,EAAE,QAAU,EAAE,UAC/G,IAAI,KAAO,iHAAmH,IAAI,EAAE,MAAM,EAAI,kCAAoC,IAAI,EAAE,OAAS,MAAM,EAAI,cAAgB,IAAI,EAAE,QAAQ,EAAI,UAC7O,MAAQ,sEAAwE,GAAK,UAAY,OAAS,KAClG,MAAM,QAAS,GAAI,GAAK,SAAW,SAAW,EAAE,SAAW,IAAM,EAAE,IAAM,GAAG,SAAY,MAAM,EAAE,OAAO,EAAI,EAAE,GAC5G,GAAK,MAAM,QAAS,GAAI,QAAS,EAAE,EAAI,IAAM,SACtD,MAAQ,kHACA,IAAI,EAAE,OAAO,EAAI,kCAAoC,IAAI,GAAG,GAAG,GAAK,GAAK,KAAO,IAAI,EAAE,MAAM,EAAI,KAAO,IAAI,EAAE,EAAE,EAAI,IAAM,IAAI,GAAG,GAAG,EAAI,KAAO,IAAI,EAAE,KAAK,EAAI,IAAM,IAAM,aACxK,EAAI,mMAAqM,IAAI,CAAC,EAAI,UAAY,KAC9N,MAAQ,kCAAoC,IAAI,MAAM,GAAG,EAAI,mLAAqL,IAAI,IAAI,EAAE,OAAQ,CAAC,EAAG,MAAM,CAAC,CAAC,CAAC,EAAI,OAAS,IAC/R,+HAAiI,IAAI,EAAE,SAAS,EAAI,aAC5J,IAAI,UAAY,KAAM,IAAI,UAAU,IAAI,MAAM,EAC9C,IAAI,EAAI,IAAI,cAAc,gBAAgB,EACtC,GAAG,EAAE,iBAAiB,QAAS,SAAU,GAAI,CAC/C,GAAG,eAAe,EAAG,QAAU,GAC/B,IAAI,EAAI,SAAS,eAAe,UAAU,EAAO,GAAG,EAAE,MAAM,CAC9D,CAAC,EACD,GAAI,CAAE,QAAQ,aAAa,KAAM,GAAI,SAAS,SAAW,SAAS,OAAS,eAAe,CAAG,OAAS,EAAG,CAAC,CAC1G,MAAO,EACT,EACA,SAAS,SAAS,EAAG,CACnB,EAAI,EACJ,GAAI,CACF,IAAI,IAAM,SAAS,eAAe,aAAa,EAAG,IAAM,SAAS,eAAe,aAAa,EAAG,EAAI,SAAS,eAAe,UAAU,EAElI,KAAO,SAAS,eAAe,aAAa,EAC5C,OAAS,EAAE,IAAM,SAAW,EAAE,IAAM,UAAY,SAAS,gBAAgB,aAAa,kBAAkB,IAAM,YAAW,KAAK,MAAQ,EAAE,GACxI,KAAO,EAAE,GAAK,GAAK,CAAC,IAAI,QAAO,IAAI,MAAQ,EAAE,IAC7C,KAAO,EAAE,GAAK,GAAK,CAAC,IAAI,QAAO,IAAI,MAAQ,EAAE,IAC7C,GAAK,KAAO,KAAO,IAAI,OAAS,IAAI,OAAO,EAAE,MAAM,CACzD,OAAS,EAAG,CAAC,CACb,SAAS,gBAAgB,aAAa,qBAAsB,OAAO,EAAE,QAAU,MAAM,CAAC,CACxF,CACA,SAAS,MAAO,CACd,IAAI,EAAI,cAAc,EACtB,GAAI,EAAG,CAAE,SAAS,CAAC,EAAG,MAAQ,CAC9B,YAAY,SAAU,GAAI,CAAM,IAAI,SAAS,EAAE,CAAG,CAAC,CACrD,CACI,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoB,IAAI,EAAQ,KAAK,CACxG,GAAG",
  "names": ["prev", "next", "k", "plage"]
}
