{
  "version": 3,
  "sources": ["/cdn/shop/t/54/assets/nukkad-slider-fns.js?ntv=20260633"],
  "sourcesContent": ["(function(){\n\n// Convert hex to readable name\nfunction ntHexToName(hex){\n  var map={'#000000':'Black','#ffffff':'White','#ff0000':'Red','#ff4444':'Red',\n    '#e84040':'Red','#3d2b1a':'Dark Espresso','#f2ece3':'Ivory White',\n    '#5bb8e8':'Sky Blue','#e87c28':'Orange','#8cc820':'Lime Green',\n    '#f0c820':'Yellow','#9860d8':'Purple','#e880a8':'Pink','#2a1a0e':'Espresso'};\n  if(!hex)return'';\n  var h=hex.toLowerCase().trim();\n  if(map[h])return map[h];\n  // Try to match theme colours by name\n  var cols=typeof ntGetColors==='function'?ntGetColors():[];\n  for(var i=0;i<cols.length;i++){if(cols[i].fc&&cols[i].fc.toLowerCase()===h)return cols[i].n||'';}\n  return '';\n}\n// NukkadTales Slider Functions\n\n// \u2500\u2500 PROXY URLS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst PROXY_URL        = 'https://legendary-selkie-d0c7dd.netlify.app/.netlify/functions/nt-ai';\nconst SEARCH_PROXY_URL = 'https://cozy-dieffenbachia-95eb4b.netlify.app/.netlify/functions/nt-haiku';\nconst GEMINI_SUGG_URL  = 'https://cozy-dieffenbachia-95eb4b.netlify.app/.netlify/functions/nt-gemini';\nconst GPT_SUGG_URL     = 'https://cozy-dieffenbachia-95eb4b.netlify.app/.netlify/functions/nt-gpt';\nconst CATALOG_PROXY_URL= 'https://cozy-dieffenbachia-95eb4b.netlify.app/.netlify/functions/anthropic';\nconst SHOPIFY_STORE = window.NT_SHOPIFY_STORE||'';\nconst MODEL_SUGG       = 'claude-haiku-4-5-20251001';\nconst MODEL_LAYOUT     = 'claude-haiku-4-5-20251001';\n\n// \u2500\u2500 PRICING MATRIX \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst NT_PRICE_MAP = {\n  \"8-1\":1299,\"8-2\":1299,\"8-3\":1399,\"8-4\":1499,\n  \"9-1\":1499,\"9-2\":1499,\"9-3\":1599,\"9-4\":1699,\n  \"10-1\":1699,\"10-2\":1699,\"10-3\":1899,\"10-4\":1999,\n  \"11-1\":1999,\"11-2\":1999,\"11-3\":2199,\"11-4\":2299,\n  \"12-1\":2299,\"12-2\":2299,\"12-3\":2699,\"12-4\":2799,\n  \"13-1\":2799,\"13-2\":2799,\"13-3\":3199,\"13-4\":3299,\n  \"14-1\":3299,\"14-2\":3299,\"14-3\":3799,\"14-4\":3899,\n  \"15-1\":3899,\"15-2\":3899,\"15-3\":4399,\"15-4\":4499,\n  \"16-1\":4499,\"16-2\":4499,\"16-3\":5099,\"16-4\":5199,\n  \"17-1\":5199,\"17-2\":5199,\"17-3\":5799,\"17-4\":5899,\n  \"18-1\":5899,\"18-2\":5899,\"18-3\":6599,\"18-4\":6699,\n  \"19-1\":6699,\"19-2\":6699,\"19-3\":7399,\"19-4\":7499,\n  \"20-1\":7499,\"20-2\":7499,\"20-3\":8399,\"20-4\":8499,\n  \"21-1\":8499,\"21-2\":8499,\"21-3\":9399,\"21-4\":9499,\n  \"22-1\":9499,\"22-2\":9499,\"22-3\":10499,\"22-4\":10599,\n  \"23-1\":10599,\"23-2\":10599,\"23-3\":11599,\"23-4\":11699,\n  \"24-1\":11699,\"24-2\":11699,\"24-3\":12799,\"24-4\":12899\n};\nfunction ntGetPrice(inch,lineCount){\n  var key=Math.min(Math.max(inch,8),24)+'-'+Math.min(Math.max(lineCount,1),4);\n  return NT_PRICE_MAP[key]||1299;\n}\nfunction ntGetVariantId(inch,lineCount){\n  var key=Math.min(Math.max(inch,8),24)+'-'+Math.min(Math.max(lineCount,1),4);\n  return (window.NT_VARIANT_MAP||{})[key]||null;\n}\n\n// NT_CUSTOM_ICONS is set by nukkad-customiser-section.liquid\nwindow.NT_CUSTOM_ICONS = window.NT_CUSTOM_ICONS || [];\n\n// NT_VARIANT_MAP is set by nukkad-slider.liquid inline script\n\n// \u2500\u2500 CONFIG \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nwindow.NUKKAD_CONFIG = window.NUKKAD_CONFIG || {\n  findQuoteClass: '.nt-ig-wrap',\n  sliderHeading:  'What do you want to customise?',\n  sliderSubtext:  'A name \u00B7 a tagline \u00B7 nameplate \u00B7 etc. Type it below.',\n  inputHint:      'Personalisation starts at \u20B91,299',\n  trustLine:      '4.9\u2605 \u00B7 1,860 Google reviews \u00B7 Ships in 3 days',\n  trustPrice:     'Personalisation from \u20B91,299',\n};\nvar NUKKAD_CONFIG = window.NUKKAD_CONFIG;\n\n// \u2500\u2500 APPLY CONFIG TO FIRST SCREEN \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(function(){\n  function applySliderText(){\n    var cfg = window.NUKKAD_CONFIG || {};\n    var h = document.getElementById('ntSlHeading'); if(h && cfg.sliderHeading) h.textContent = cfg.sliderHeading;\n    var s = document.getElementById('ntSlSubtext'); if(s && cfg.sliderSubtext) s.textContent = cfg.sliderSubtext;\n    // inputHint is set in HTML \u2014 do not override from config\n    var inp = document.getElementById('ntSlInp'); if(inp && cfg.inputPlaceholder) inp.placeholder = cfg.inputPlaceholder;\n    var tl = document.getElementById('ntSlTrustLine');\n    if(tl && (cfg.trustLine || cfg.trustPrice)){\n      var line = cfg.trustLine || '4.9\u2605 \u00B7 1,860 Google reviews \u00B7 Ships in 3 days';\n      var price = cfg.trustPrice || 'Personalisation from \u20B91,299';\n      tl.innerHTML = line + ' \u00B7 <span style=\"color:var(--orange);font-weight:700;\">' + price + '</span>';\n    }\n  }\n  if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', applySliderText);\n  else applySliderText();\n  // Also re-apply after customiser section sets config\n  setTimeout(applySliderText, 500);\n\n// expose to window\nwindow._ntTutInit=_ntTutInit;\nwindow._ntTutToEmbed=_ntTutToEmbed;\nwindow.goToEditorScreen=goToEditorScreen;\nwindow.goToSearchScreen=goToSearchScreen;\nwindow.ntAddToCart=ntAddToCart;\nwindow.ntApplyBottomSection=ntApplyBottomSection;\nwindow.ntApplyConfigTexts=ntApplyConfigTexts;\nwindow.ntAutoSave=ntAutoSave;\nwindow.ntBuildReviewsCarousel=ntBuildReviewsCarousel;\nwindow.ntClearAllDesigns=ntClearAllDesigns;\nwindow.ntCloseIconLetter=ntCloseIconLetter;\nwindow.ntClosePolicy=ntClosePolicy;\nwindow.ntCloseSizeGuideModal=ntCloseSizeGuideModal;\nwindow.ntCloseSlider=ntCloseSlider;\nwindow.ntCollapseEditBar=ntCollapseEditBar;\nwindow.ntCommissionMantra=ntCommissionMantra;\nwindow.ntCommissionPersonal=ntCommissionPersonal;\nwindow.ntCommissionQuote=ntCommissionQuote;\nwindow.ntDeleteDesign=ntDeleteDesign;\nwindow.ntDesignIt=ntDesignIt;\nwindow.ntDismissNavHelper=ntDismissNavHelper;\nwindow.ntEditSaved=ntEditSaved;\nwindow.ntExpandEditBar=ntExpandEditBar;\nwindow.ntFillAndDesign=ntFillAndDesign;\nwindow.ntGetPrice=ntGetPrice;\nwindow.ntGetVariantId=ntGetVariantId;\nwindow.ntILShowFloat=ntILShowFloat;\nwindow.ntInitArtisan=ntInitArtisan;\nwindow.ntInitCarousel=ntInitCarousel;\nwindow.ntInitReviewScroll=ntInitReviewScroll;\nwindow.ntInitVideoReviews=ntInitVideoReviews;\nwindow.ntInjectCartProps=ntInjectCartProps;\nwindow.ntLoadDesigns=ntLoadDesigns;\nwindow.ntLoadReviews=ntLoadReviews;\nwindow.ntOpenBrandLogo=ntOpenBrandLogo;\nwindow.ntOpenCartFromBar=ntOpenCartFromBar;\nwindow.ntOpenIconLetter=ntOpenIconLetter;\nwindow.ntOpenPolicy=ntOpenPolicy;\nwindow.ntOpenSizeGuide=ntOpenSizeGuide;\nwindow.ntOpenSizeGuideModal=ntOpenSizeGuideModal;\nwindow.ntOpenSlider=ntOpenSlider;\nwindow.ntPlayVideoS4=ntPlayVideoS4;\nwindow.ntPlayVideoV=ntPlayVideoV;\nwindow.ntRefreshIconLetterRow=ntRefreshIconLetterRow;\nwindow.ntRefreshSavedDesigns=ntRefreshSavedDesigns;\nwindow.ntRemoveLetterIcon=ntRemoveLetterIcon;\nwindow.ntSGOpenLightbox=ntSGOpenLightbox;\nwindow.ntSaveDesign=ntSaveDesign;\nwindow.ntScalePiece=ntScalePiece;\nwindow.ntScrollToFind=ntScrollToFind;\nwindow.ntShowInputForm=ntShowInputForm;\nwindow.ntShowWelcomeBack=ntShowWelcomeBack;\nwindow.ntToggleFaq=ntToggleFaq;\nwindow.ntTutClose=ntTutClose;\nwindow.ntTutDismiss=ntTutDismiss;\nwindow.ntTutHideBubble=ntTutHideBubble;\nwindow.ntTutMinimise=ntTutMinimise;\nwindow.ntTutOpen=ntTutOpen;\nwindow.ntTutShowBubble=ntTutShowBubble;\nwindow.ntUpdateCartBtn=ntUpdateCartBtn;\nwindow.ntUpdateDesign=ntUpdateDesign;\nwindow.ntUpdatePersonalBtn=ntUpdatePersonalBtn;\nwindow.ntWelcomeEdit=ntWelcomeEdit;\nwindow.ntWelcomeStartFresh=ntWelcomeStartFresh;\n\n})();\n\n// \u2500\u2500 OPEN / CLOSE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction ntOpenSlider(tab){\n  setTimeout(ntApplyConfigTexts,50);\n  setTimeout(ntApplyConfigTexts,800); // second pass after chip editor renders\n  // Re-inject gallery in case Lookify populated it after initial load\n  setTimeout(function(){\n    if(typeof injectGallery==='function')try{injectGallery();}catch(e){}\n    else{\n      var galSc=document.querySelector('.nt-slider-gallery-sc');\n      var galDest=document.getElementById('ntSlGalleryContent');\n      if(galSc&&galDest&&galSc.innerHTML.trim())galDest.innerHTML=galSc.innerHTML;\n    }\n  },800);\n  // Re-trigger Lookify/gallery embed scripts after slider opens\n  setTimeout(function(){\n\n  },600);\n  // If customise landing URL is set, redirect there \u2014 but NOT if coming from edit/skip\n  var _landingUrl=window.NUKKAD_CONFIG&&window.NUKKAD_CONFIG.customiseLandingUrl;\n  var _skipWelcome=sessionStorage.getItem('nt_skip_welcome');\n  var _landingText=sessionStorage.getItem('nt_landing_text');\n  // Only redirect if landing URL set and not already on that page\n  if(_landingUrl&&tab==='customise'&&!_skipWelcome&&!_landingText){\n    try{\n      var _landingPath=(new URL(_landingUrl,window.location.href)).pathname;\n      if(window.location.pathname!==_landingPath){window.location.href=_landingUrl;return;}\n    }catch(e){window.location.href=_landingUrl;return;}\n  }\n  window._ntSavedScroll = window.scrollY;\n  document.getElementById('ntBd').classList.add('show');\n  var sl=document.getElementById('ntSl');sl.classList.add('open');sl.classList.remove('compact');\n  document.body.classList.add('nt-slider-open');\n  var _nb=document.getElementById('ntBubble');if(_nb)_nb.style.display='none';\n  var _ntb=document.getElementById('ntTutBubble');if(_ntb)_ntb.style.display='none';\n  var _ntc=document.getElementById('ntTutCard');if(_ntc)_ntc.style.display='none';\n\n  // \u2500\u2500 Welcome back screen \u2014 if saved designs exist and no landing text \u2500\u2500\n  var landingText=sessionStorage.getItem('nt_landing_text');\n  var _designs=ntLoadDesigns().filter(function(d){return d.lines&&d.lines.length;});\n  var _skipWelcome=sessionStorage.getItem('nt_skip_welcome');\n  sessionStorage.removeItem('nt_skip_welcome');\n\n  /* \u2500\u2500 Back-to-Ask-Gul bar: shown only when opened from a \"Made for you\" quote \u2500\u2500 */\n  var _fromAskGul=sessionStorage.getItem('nt_ask_gul_origin');\n  sessionStorage.removeItem('nt_ask_gul_origin');\n  var _backBar=document.getElementById('ntAskGulBack');\n  if(_fromAskGul){\n    if(!_backBar){\n      _backBar=document.createElement('div');\n      _backBar.id='ntAskGulBack';\n      _backBar.style.cssText='display:flex;align-items:center;gap:7px;padding:10px 16px;'\n        +'background:var(--cream,#f5ede0);border-bottom:1.5px solid var(--border,#e8d8c4);'\n        +'cursor:pointer;font-size:11px;font-weight:700;color:var(--orange,#c85a1a);'\n        +'font-family:\"DM Sans\",sans-serif;flex-shrink:0;-webkit-tap-highlight-color:transparent;'\n        +'position:relative;z-index:101;';\n      _backBar.innerHTML='&#8592; back to search results';\n      _backBar.onclick=function(){\n        ntCloseSlider();\n        setTimeout(function(){\n          if(typeof window.agReopen==='function') window.agReopen();\n          else if(typeof window.ntAgOpen==='function') window.ntAgOpen();\n        },200);\n      };\n      /* insert inside .nt-screen so it sits above the compact bar */\n      var _ntScreen=document.querySelector('#ntScreens .nt-screen');\n      if(_ntScreen) _ntScreen.insertBefore(_backBar,_ntScreen.firstChild);\n      else{var _ntScreens=document.getElementById('ntScreens');if(_ntScreens)_ntScreens.insertBefore(_backBar,_ntScreens.firstChild);}\n    }\n    _backBar.style.display='flex';\n  } else if(_backBar){\n    _backBar.style.display='none';\n  }\n\n  if(!landingText&&!_skipWelcome&&_designs.length){\n    // Show welcome screen\n    ntShowWelcomeBack(_designs);\n    return;\n  }\n\n  // Pre-fill from landing page input \u2014 skip input screen, go straight to chip editor\n  if(landingText){\n    sessionStorage.removeItem('nt_landing_text');\n    // Hide the input form immediately so user never sees the text-entry step\n    var _fb=document.getElementById('ntFormBar');\n    if(_fb){_fb.classList.add('nt-hidden');_fb.style.setProperty('display','none','important');}\n    var inp=document.getElementById('ntSlInp');\n    if(inp) inp.value=landingText; // set value silently (no focus = no visible input)\n    // Give chip editor JS time to load, then render directly\n    setTimeout(function(){\n      if(typeof ntDesignIt==='function' && landingText.trim()) ntDesignIt();\n    },300);\n  } else {\n    setTimeout(function(){var inp=document.getElementById('ntSlInp');if(inp)inp.focus();},300);\n  }\n  setTimeout(ntInitVideoReviews,500);\n  ntRefreshSavedDesigns();\n}\n\n// Hook auto-save \u2014 called from chip editor after renders\nwindow.ntAutoSaveHook=function(){\n  if(typeof ntAutoSave==='function')ntAutoSave();\n  // Apply config every render \u2014 ensures designer toggle + cart msg update\n  ntApplyConfigTexts();\n};\n\nfunction ntShowWelcomeBack(designs){\n  var screens=document.getElementById('ntScreens');\n  if(!screens)return;\n\n  // Create welcome screen overlay\n  var wb=document.createElement('div');\n  wb.id='ntWelcomeBack';\n  wb.style.cssText='position:absolute;inset:0;background:var(--cream,#f5ede0);z-index:200;overflow-y:auto;padding:24px 16px 32px;box-sizing:border-box;';\n\n  var html='<div style=\"display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;\">'\n    +'<div>'\n    +'<div style=\"font-family:\\'Poppins\\',sans-serif;font-weight:900;font-size:18px;color:#3d2b1a;letter-spacing:-0.02em;margin-bottom:4px;\">Welcome back</div>'\n    +'<div style=\"font-size:12px;color:#8c7b6e;\">Continue where you left off, or start fresh.</div>'\n    +'</div>'\n    +'<button onclick=\"ntCloseSlider()\" style=\"background:rgba(61,43,26,0.08);border:none;border-radius:50%;width:32px;height:32px;font-size:15px;color:#3d2b1a;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;\">\u2715</button>'\n    +'</div>';\n\n  // Saved design cards\n  html+='<div style=\"margin-bottom:16px;\">';\n  designs.slice(0,5).forEach(function(d){\n    var label=d.lines.filter(function(l){return l&&!/^[\u00B7\\-\u2013\u2014]+$/.test(l.trim());}).join(' \u00B7 ');\n    var price=d.intent==='personal'?'\u20B91,299':'\u20B9999';\n    var badge=d.commissioned?'<span style=\"font-size:9px;font-weight:700;color:#2d7d46;background:#e8f5ec;border-radius:20px;padding:2px 7px;margin-left:6px;\">Ordered \u2713</span>':'';\n    html+='<div style=\"background:#fff;border:1.5px solid #e8d5c0;border-radius:12px;padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;gap:12px;\">'\n      +'<div style=\"flex:1;min-width:0;\">'\n        +'<div style=\"font-family:\\'Poppins\\',sans-serif;font-weight:700;font-size:13px;color:#3d2b1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\">'+label+badge+'</div>'\n        +'<div style=\"font-size:10px;color:#8c7b6e;margin-top:2px;\">'+d.date+' \u00B7 '+d.inch+'\" \u00B7 '+price+'</div>'\n      +'</div>'\n      +'<button onclick=\"ntWelcomeEdit(\\''+d.session+'\\')\" style=\"background:#c47a45;color:#fff;border:none;border-radius:20px;padding:7px 16px;font-size:11px;font-weight:700;cursor:pointer;font-family:\\'DM Sans\\',sans-serif;white-space:nowrap;flex-shrink:0;\">Edit \u2192</button>'\n      +'</div>';\n  });\n  html+='</div>';\n\n  // Start fresh button\n  html+='<button onclick=\"ntWelcomeStartFresh()\" style=\"width:100%;background:transparent;border:1.5px solid #c8b09a;border-radius:12px;padding:13px;font-size:13px;font-weight:700;color:#3d2b1a;cursor:pointer;font-family:\\'DM Sans\\',sans-serif;\">+ Start a new design</button>';\n\n  wb.innerHTML=html;\n  // Append inside ntScreens so it sits within the scroll container\n  var screens2=document.getElementById('ntScreens');\n  if(screens2)screens2.appendChild(wb);\n  else document.getElementById('ntSl').appendChild(wb);\n}\n\nfunction ntWelcomeEdit(session){\n  // Remove welcome screen immediately, hide form, show editor shell \u2014 no blink\n  var wb=document.getElementById('ntWelcomeBack');if(wb)wb.remove();\n  var _fb=document.getElementById('ntFormBar');\n  if(_fb){_fb.classList.add('nt-hidden');_fb.style.setProperty('display','none','important');}\n  var _s1b=document.getElementById('ntS1Body');\n  if(_s1b){_s1b.style.display='flex';_s1b.style.flex='1';_s1b.style.minHeight='0';}\n  var _cb=document.getElementById('ntCompactBar');if(_cb)_cb.style.display='flex';\n  // Find design and open editor\n  var designs=ntLoadDesigns();\n  var d=designs.find(function(x){return x.session===session;});\n  if(!d)return;\n  // Trigger edit\n  setTimeout(function(){\n    // Find index in designs array and call ntEditSaved with index\n    var _designs=ntLoadDesigns();\n    var _idx=_designs.findIndex(function(x){return x.session===d.session;});\n    if(_idx>=0&&typeof ntEditSaved==='function')ntEditSaved(_idx);\n    else if(typeof goRender==='function')goRender(d.lines,d.intent==='personal'?1299:999);\n  },100);\n}\n\nfunction ntWelcomeStartFresh(){\n  // Remove welcome screen and go to search\n  var wb=document.getElementById('ntWelcomeBack');if(wb)wb.remove();\n  setTimeout(function(){\n    var inp=document.getElementById('ntSlInp');if(inp)inp.focus();\n    ntRefreshSavedDesigns();\n  },100);\n}\nfunction ntCloseSlider(){\n  if(typeof ntTutHideBubble==='function')ntTutHideBubble();\n  if(typeof ntTutClose==='function')ntTutClose();\n  if(typeof ntFloatBarHide==='function')ntFloatBarHide();\n  document.getElementById('ntBd').classList.remove('show');\n  document.body.classList.remove('nt-slider-open');\n  if(window._ntSavedScroll!==undefined){window.scrollTo(0,window._ntSavedScroll);}\n  var _nb=document.getElementById('ntBubble');if(_nb)_nb.style.display='';\n  document.getElementById('ntSl').classList.remove('open');\n  var fb=document.getElementById('ntFormBar');\n  if(fb){fb.classList.remove('nt-hidden');fb.style.cssText='display:flex;flex-direction:column;flex:1;min-height:0;background:var(--cream);overflow-y:auto;';}\n  var s1b=document.getElementById('ntS1Body');if(s1b){s1b.style.display='none';s1b.style.flex='';s1b.style.minHeight='';}\n  var cb=document.getElementById('ntCompactBar');if(cb)cb.style.display='none';\n  var ga=document.getElementById('ntSlGalleryArea');if(ga)ga.style.cssText='padding:20px 18px;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;';\n  if(typeof goToSearchScreen==='function')goToSearchScreen();\n}\n\n// \u2500\u2500 SLIDER SCREEN CONTROL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction goToEditorScreen(){var eb=document.getElementById('ntEditorBody');if(eb)eb.scrollTop=0;}\nfunction goToSearchScreen(){ntShowInputForm();}\n\n// \u2500\u2500 DESIGN IT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Smart word grouper: distributes N words into up to maxL lines evenly\nfunction ntSmartSplitWords(words,maxL){\n  var n=words.length;\n  if(n<=maxL)return words.slice();\n  var base=Math.floor(n/maxL),extra=n%maxL,result=[],i=0;\n  for(var l=0;l<maxL;l++){var take=base+(l>=(maxL-extra)?1:0);result.push(words.slice(i,i+take).join(' '));i+=take;}\n  return result;\n}\nfunction ntDesignIt(){\n  // Remove welcome screen if still present\n  var _wb=document.getElementById('ntWelcomeBack');if(_wb)_wb.remove();\n  var raw=(document.getElementById('ntSlInp')||{}).value||'';\n  // Convert literal \\n text to real newlines (some users type \\n)\n  raw=raw.replace(/\\\\n/g,'\\n');\n  // Don't stripEmoji on full input \u2014 it collapses newlines. Do it per-line below.\n  var q=raw;\n  var inp=document.getElementById('ntSlInp');\n  if(!q.trim()){\n    if(inp)inp.focus();\n    return;\n  }\n  // Log search query \u2014 detect if routed from Ask Gul\n  var _fromGul=sessionStorage.getItem('nt_from_ask_gul')||'';\n  if(_fromGul)sessionStorage.removeItem('nt_from_ask_gul');\n  try{fetch('https://cozy-dieffenbachia-95eb4b.netlify.app/.netlify/functions/nt-log-search',{\n    method:'POST',headers:{'Content-Type':'application/json'},\n    body:JSON.stringify({query:q.trim(),session_id:NT_SESSION_ID,source:_fromGul?'ask_gul':'slider'})\n  }).catch(function(){});}catch(_e){}\n  var sl=document.getElementById('ntSl');if(sl)sl.classList.remove('compact');\n  var cb=document.getElementById('ntCompactBar');var ct=document.getElementById('ntCompactText');\n  if(ct)ct.textContent=q.trim();if(cb)cb.style.display='flex';\n  // Explicitly bind edit button via addEventListener (belt-and-suspenders over inline onclick)\n  var _eb=document.getElementById('ntEditTextBtn');\n  if(_eb&&!_eb._ntBound){_eb._ntBound=true;_eb.addEventListener('click',function(){if(typeof ntExpandEditBar==='function')ntExpandEditBar();});}\n  var fb=document.getElementById('ntFormBar');\n  if(fb){fb.classList.add('nt-hidden');fb.style.setProperty('display','none','important');}\n  var s1b=document.getElementById('ntS1Body');\n  if(s1b){s1b.style.display='flex';s1b.style.flex='1';s1b.style.minHeight='0';s1b.offsetHeight;}\n  // Don't show tutorial bubble when entering design mode \u2014 it overlaps the editor\n  var ga=document.getElementById('ntSlGalleryArea');\n  if(ga)ga.style.cssText='display:none !important;height:0;overflow:hidden;padding:0;flex:none;';\n  // Strip emoji per-line and remove lines that become empty\n  var _hadEmoji=false;\n  var rawLines=q.trim().split('\\n').map(function(l){\n    var stripped=typeof stripEmoji==='function'?stripEmoji(l):l;\n    if(stripped.trim()!==l.trim())_hadEmoji=true;\n    return stripped.trim();\n  }).filter(function(l){\n    if(!l)return false;\n    // Keep line if it has any letter, digit \u2014 catches dates like 05.05.2026\n    if(/[a-zA-Z0-9\u0900-\u097F\u0600-\u06FF]/.test(l))return true;\n    // Filter lines that are purely separators/dots/dashes\n    return false;\n  });\n    if(_hadEmoji){\n    var _eToast=document.getElementById('ntEmojiToast')||document.createElement('div');\n    _eToast.id='ntEmojiToast';_eToast.style.cssText='position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:rgba(61,43,26,0.9);color:#fdf6f0;font-size:11px;font-weight:600;padding:7px 14px;border-radius:20px;z-index:9999;font-family:DM Sans,sans-serif;white-space:nowrap;';\n    _eToast.textContent='Use the icon section to add icons \u2726';\n    document.body.appendChild(_eToast);\n    setTimeout(function(){if(_eToast.parentNode)_eToast.parentNode.removeChild(_eToast);},3000);\n  }\n  // If single line with spaces, split on spaces ONLY if words are simple (not dates like 05.05.2026)\n  var lines=rawLines.length>1?rawLines.slice(0,4):(function(){\n    var words=q.trim().split(/\\s+/).filter(Boolean);\n    // Don't split if any word contains digits and dots (likely a date)\n    var hasDate=words.some(function(w){return /\\d+\\.\\d+/.test(w);});\n    // If >4 words, take first 4 as separate lines instead of passing full sentence to goRender\n    if(!hasDate&&words.length>=2)return ntSmartSplitWords(words,(!!(window.s4TopIcon&&window.s4TopIcon.iconKey))?3:4);\n    return rawLines;\n  })();\n  function waitGoRender(lines,price,n){\n    if(typeof goRender==='function'){\n      var _pr;\n      try{_pr=goRender(lines,price);}catch(e){_pr=null;console.error('[goRender sync]',e);}\n      // goRender is async \u2014 catch rejected Promises too\n      if(_pr&&typeof _pr.catch==='function'){\n        _pr.catch(function(e){\n          console.error('[goRender async crash]',e);\n          // Fallback: manually show stagePersonal and call initS4\n          var s1b2=document.getElementById('ntS1Body');\n          if(s1b2){s1b2.style.display='flex';s1b2.style.flex='1';s1b2.style.minHeight='0';}\n          var sp=document.getElementById('stagePersonal');if(sp)sp.style.display='block';\n          if(typeof initS4==='function'){try{initS4();}catch(e2){console.error('[initS4 fallback]',e2);}}\n        });\n      }\n    }\n    else if(n<30)setTimeout(function(){waitGoRender(lines,price,n+1);},200);\n  }\n  var _tiAct2=!!(window.s4TopIcon&&window.s4TopIcon.iconKey);\n  var _maxL2=_tiAct2?3:4;\n  if(lines.length>_maxL2){lines=lines.slice(0,_maxL2);if(typeof window.ntShowLineCap==='function')window.ntShowLineCap(_tiAct2?'Max 3 lines with top icon \u2014 trimmed':'Max 4 lines \u2014 trimmed to fit');}\n  waitGoRender(lines,1299,0);\n  // Hard fallback: if stagePersonal still hidden after 800ms, force-show it\n  setTimeout(function(){\n    var sp=document.getElementById('stagePersonal');\n    if(sp&&(sp.style.display==='none'||sp.style.display==='')){\n      sp.style.display='block';\n      if(typeof initS4==='function'){try{initS4();}catch(e){}}\n    }\n  },800);\n}\nfunction ntExpandEditBar(){\n  var col=document.getElementById('ntCompactCollapsed'),exp=document.getElementById('ntCompactExpanded'),ei=document.getElementById('ntEditInp');\n  var t=(document.getElementById('ntCompactText')||{}).textContent||'';\n  if(col)col.style.display='none';if(exp)exp.style.display='block';\n  if(ei){\n    // Strip middle-dot separators when populating edit bar \u2014 show clean text\n    ei.value=t.replace(/\\s*\u00B7\\s*/g,'\\n');\n    setTimeout(function(){ei.focus();},50);\n  }\n}\nfunction ntCollapseEditBar(){\n  var col=document.getElementById('ntCompactCollapsed'),exp=document.getElementById('ntCompactExpanded');\n  if(col)col.style.display='flex';if(exp)exp.style.display='none';\n}\nfunction ntUpdateDesign(){\n  var q=(document.getElementById('ntEditInp')||{}).value||'';\n  q=q.replace(/\\\\n/g,'\\n');\n  // Don't stripEmoji on full input \u2014 collapses newlines. Do per-line below.\n  if(!q.trim())return;\n  // Strip emoji per-line\n  var _hadEmoji=false;\n  var lines=q.trim().split('\\n').map(function(l){\n    var s=typeof stripEmoji==='function'?stripEmoji(l):l;\n    if(s.trim()!==l.trim())_hadEmoji=true;\n    return s.trim();\n  }).filter(function(l){\n    if(!l)return false;\n    if(/[a-zA-Z0-9\u0900-\u097F\u0600-\u06FF]/.test(l))return true;\n    return false;\n  });\n  if(_hadEmoji){\n    var _t=document.getElementById('ntEmojiToast2')||document.createElement('div');\n    _t.id='ntEmojiToast2';_t.style.cssText='position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:rgba(61,43,26,0.9);color:#fdf6f0;font-size:11px;font-weight:600;padding:7px 14px;border-radius:20px;z-index:9999;font-family:DM Sans,sans-serif;';\n    _t.textContent='Use the icon section to add icons \u2726';\n    document.body.appendChild(_t);setTimeout(function(){if(_t.parentNode)_t.parentNode.removeChild(_t);},3000);\n  }\n  var ct=document.getElementById('ntCompactText');if(ct)ct.textContent=q.split('\\n').filter(Boolean).join(' \u00B7 ');\n  ntCollapseEditBar();\n  if(lines.length===1){\n    var words=q.split(/\\s+/).filter(function(w){return w&&!/^[\u00B7\\-\u2013\u2014|/\\\\]+$/.test(w);});\n    if(words.length>=2)lines=ntSmartSplitWords(words,_tiAct?3:4);\n  }\n\n  var _tiAct=!!(window.s4TopIcon&&window.s4TopIcon.iconKey);\n  var _maxL=_tiAct?3:4;\n  if(lines.length>_maxL){lines=lines.slice(0,_maxL);if(typeof window.ntShowLineCap==='function')window.ntShowLineCap(_tiAct?'Max 3 lines with top icon \u2014 trimmed':'Max 4 lines \u2014 trimmed to fit');}\n  if(typeof goRender==='function')goRender(lines,1299);\n}\nfunction ntShowInputForm(){\n  if(typeof ntTutHideBubble==='function')ntTutHideBubble();\n  var fb=document.getElementById('ntFormBar'),s1b=document.getElementById('ntS1Body'),cb=document.getElementById('ntCompactBar');\n  if(fb){fb.classList.remove('nt-hidden');fb.style.cssText='display:flex;flex-direction:column;flex:1;min-height:0;background:var(--cream);overflow-y:auto;';}\n  if(s1b)s1b.style.display='none';if(cb)cb.style.display='none';\n}\nfunction ntInitCarousel(){}\nfunction ntFillAndDesign(query){\n  var inp=document.getElementById('ntSlInp');if(inp)inp.value=query;ntDesignIt();\n}\n\n// \u2500\u2500 CART \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Load Supabase config from Netlify function for design analytics\n(function(){fetch('https://cozy-dieffenbachia-95eb4b.netlify.app/.netlify/functions/config').then(function(r){return r.json();}).then(function(cfg){window.NT_SB_URL=cfg.supabaseUrl||'';window.NT_SB_KEY=cfg.supabaseKey||'';}).catch(function(){});})();\n// \u2500\u2500 Sample Pieces Strip \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(function(){\n  // pieces read fresh on each call so applyConfig can set them first\n\n  function safeCap(html){\n    // Allow only <b> and </b>\n    return (html||'').replace(/<(?!\\/?b\\s*>)[^>]*>/gi,'');\n  }\n\n  function buildStrip(scrollId, captionId, stripId){\n    var pieces=window.NT_SAMPLE_PIECES||[];\n    var caption=window.NT_SAMPLE_CAPTION||\"A few samples \u2014 cut from a single piece, then hand-carved. <b>We can't show an exact preview, but your text will come out just like these.</b>\";\n    if(!pieces.length) return;\n    var strip = document.getElementById(stripId);\n    var scroll = document.getElementById(scrollId);\n    var cap = document.getElementById(captionId);\n    if(!strip||!scroll||!cap) return;\n    cap.innerHTML = safeCap(caption);\n    scroll.innerHTML = pieces.map(function(p,i){\n      return '<div class=\"nt-sample-chip\" data-i=\"'+i+'\" onclick=\"ntSampleOpen('+i+')\">'\n        +'<img src=\"'+p.src+'\" alt=\"'+(p.alt||'Sample')+'\" loading=\"lazy\"></div>';\n    }).join('');\n    strip.style.display = '';\n  }\n\n  window.ntInitSampleStrip = function(){\n    buildStrip('ntSampleScroll','ntSampleCaption','ntSampleStrip');\n    buildStrip('ntSampleScrollQ','ntSampleCaptionQ','ntSampleStripQ');\n  };\n\n  // Overlay\n  var ovCur = 0;\n  var ovEl = null;\n\n  function getOrCreateOverlay(){\n    if(ovEl) return ovEl;\n    ovEl = document.createElement('div');\n    ovEl.className = 'nt-sample-overlay';\n    ovEl.innerHTML = '<div class=\"nt-sample-ov-inner\" onclick=\"event.stopPropagation()\">'\n      +'<div class=\"nt-sample-ov-top\">'\n      +'<div class=\"nt-sample-ov-caption\" id=\"ntOvCaption\"></div>'\n      +'<button class=\"nt-sample-ov-close\" onclick=\"ntSampleClose()\">\u2715</button>'\n      +'</div>'\n      +'<div class=\"nt-sample-ov-img\"><img id=\"ntOvImg\" src=\"\" alt=\"Sample\"></div>'\n      +'<div class=\"nt-sample-ov-nav\">'\n      +'<button class=\"nt-sample-ov-btn\" onclick=\"ntSampleNav(-1)\">\u2039</button>'\n      +'<div class=\"nt-sample-dots\" id=\"ntOvDots\"></div>'\n      +'<button class=\"nt-sample-ov-btn\" onclick=\"ntSampleNav(1)\">\u203A</button>'\n      +'</div>'\n      +'</div>';\n    ovEl.addEventListener('click', function(e){ if(e.target===ovEl) ntSampleClose(); });\n    document.body.appendChild(ovEl);\n    return ovEl;\n  }\n\n  function renderOverlay(){\n    var pieces=window.NT_SAMPLE_PIECES||[];\n    var caption=window.NT_SAMPLE_CAPTION||'';\n    var ov = getOrCreateOverlay();\n    var p = pieces[ovCur];\n    if(!p)return;\n    document.getElementById('ntOvImg').src = p.srcZoom || p.src;\n    document.getElementById('ntOvCaption').innerHTML = safeCap(caption);\n    var dots = document.getElementById('ntOvDots');\n    dots.innerHTML = pieces.map(function(_,i){\n      return '<div class=\"nt-sample-dot\" style=\"width:'+(i===ovCur?18:6)+'px;background:'+(i===ovCur?'#fff':'rgba(255,255,255,0.3)')+';\"></div>';\n    }).join('');\n  }\n\n  window.ntSampleOpen = function(i){\n    ovCur = i;\n    getOrCreateOverlay().classList.add('open');\n    renderOverlay();\n  };\n  window.ntSampleClose = function(){\n    if(ovEl) ovEl.classList.remove('open');\n  };\n  window.ntSampleNav = function(d){\n    var pieces=window.NT_SAMPLE_PIECES||[];\n    ovCur = (ovCur + d + pieces.length) % pieces.length;\n    renderOverlay();\n  };\n\n// expose to window\nwindow._ntTutInit=_ntTutInit;\nwindow._ntTutToEmbed=_ntTutToEmbed;\nwindow.goToEditorScreen=goToEditorScreen;\nwindow.goToSearchScreen=goToSearchScreen;\nwindow.ntAddToCart=ntAddToCart;\nwindow.ntApplyBottomSection=ntApplyBottomSection;\nwindow.ntApplyConfigTexts=ntApplyConfigTexts;\nwindow.ntAutoSave=ntAutoSave;\nwindow.ntBuildReviewsCarousel=ntBuildReviewsCarousel;\nwindow.ntClearAllDesigns=ntClearAllDesigns;\nwindow.ntCloseIconLetter=ntCloseIconLetter;\nwindow.ntClosePolicy=ntClosePolicy;\nwindow.ntCloseSizeGuideModal=ntCloseSizeGuideModal;\nwindow.ntCloseSlider=ntCloseSlider;\nwindow.ntCollapseEditBar=ntCollapseEditBar;\nwindow.ntCommissionMantra=ntCommissionMantra;\nwindow.ntCommissionPersonal=ntCommissionPersonal;\nwindow.ntCommissionQuote=ntCommissionQuote;\nwindow.ntDeleteDesign=ntDeleteDesign;\nwindow.ntDesignIt=ntDesignIt;\nwindow.ntDismissNavHelper=ntDismissNavHelper;\nwindow.ntEditSaved=ntEditSaved;\nwindow.ntExpandEditBar=ntExpandEditBar;\nwindow.ntFillAndDesign=ntFillAndDesign;\nwindow.ntGetPrice=ntGetPrice;\nwindow.ntGetVariantId=ntGetVariantId;\nwindow.ntILShowFloat=ntILShowFloat;\nwindow.ntInitArtisan=ntInitArtisan;\nwindow.ntInitCarousel=ntInitCarousel;\nwindow.ntInitReviewScroll=ntInitReviewScroll;\nwindow.ntInitVideoReviews=ntInitVideoReviews;\nwindow.ntInjectCartProps=ntInjectCartProps;\nwindow.ntLoadDesigns=ntLoadDesigns;\nwindow.ntLoadReviews=ntLoadReviews;\nwindow.ntOpenBrandLogo=ntOpenBrandLogo;\nwindow.ntOpenCartFromBar=ntOpenCartFromBar;\nwindow.ntOpenIconLetter=ntOpenIconLetter;\nwindow.ntOpenPolicy=ntOpenPolicy;\nwindow.ntOpenSizeGuide=ntOpenSizeGuide;\nwindow.ntOpenSizeGuideModal=ntOpenSizeGuideModal;\nwindow.ntOpenSlider=ntOpenSlider;\nwindow.ntPlayVideoS4=ntPlayVideoS4;\nwindow.ntPlayVideoV=ntPlayVideoV;\nwindow.ntRefreshIconLetterRow=ntRefreshIconLetterRow;\nwindow.ntRefreshSavedDesigns=ntRefreshSavedDesigns;\nwindow.ntRemoveLetterIcon=ntRemoveLetterIcon;\nwindow.ntSGOpenLightbox=ntSGOpenLightbox;\nwindow.ntSaveDesign=ntSaveDesign;\nwindow.ntScalePiece=ntScalePiece;\nwindow.ntScrollToFind=ntScrollToFind;\nwindow.ntShowInputForm=ntShowInputForm;\nwindow.ntShowWelcomeBack=ntShowWelcomeBack;\nwindow.ntToggleFaq=ntToggleFaq;\nwindow.ntTutClose=ntTutClose;\nwindow.ntTutDismiss=ntTutDismiss;\nwindow.ntTutHideBubble=ntTutHideBubble;\nwindow.ntTutMinimise=ntTutMinimise;\nwindow.ntTutOpen=ntTutOpen;\nwindow.ntTutShowBubble=ntTutShowBubble;\nwindow.ntUpdateCartBtn=ntUpdateCartBtn;\nwindow.ntUpdateDesign=ntUpdateDesign;\nwindow.ntUpdatePersonalBtn=ntUpdatePersonalBtn;\nwindow.ntWelcomeEdit=ntWelcomeEdit;\nwindow.ntWelcomeStartFresh=ntWelcomeStartFresh;\n\n})();\n\nconst NT_SESSION_ID='nt_'+Date.now()+'_'+Math.random().toString(36).slice(2,7);\nasync function ntAddToCart(lines,inch,intent,qty){\n  qty=qty||1;\n  var lc=Math.min((lines||[]).length,4),ai=Math.min(Math.max(inch,8),24);\n  var variantId=ntGetVariantId(ai,lc),price=ntGetPrice(ai,lc);\n  // Add icon colour extra (\u20B9500 per custom colour, max \u20B92000)\n  var _textCol=(ntGetColors()[window.selC4||0]||{}).fc||'';\n  var _icColCount=0;\n  (window.s4LineOpts||[]).concat(window.s4NameLineOpts||[]).forEach(function(o){\n    if(o&&o.iconKey&&o.iconColour&&o.iconColour!==_textCol)_icColCount++;\n  });\n  // Top icon custom colour\n  var _ti=window.s4TopIcon||{};\n  if(_ti.iconKey&&_ti.iconColour&&_ti.iconColour!==_textCol)_icColCount++;\n  var _icColExtra=Math.min(_icColCount,4)*500;\n  price+=_icColExtra;\n  var designerOn=window.designerState&&Object.values(window.designerState).some(function(v){return v;});\n  var btn=document.getElementById(intent==='personal'?'s4Btn':'commBtn');\n  var origTxt=btn?btn.textContent:'';\n  if(btn){btn.textContent='Adding\u2026';btn.disabled=true;}\n  if(!variantId){if(btn){btn.textContent='Error';btn.disabled=false;}return;}\n  // Log design to Supabase for analytics\n  try{\n    var _sbUrl=(window.NT_SB_URL||'');var _sbKey=(window.NT_SB_KEY||'');\n    if(_sbUrl&&_sbKey){\n      var _logData={\n        session_id:NT_SESSION_ID,\n        lines:lines.join(' \u00B7 '),\n        line_count:lc,\n        inch:ai,\n        price:price,\n        intent:intent,\n        commissioned:intent==='personal'||intent==='mantra',\n        device:window.innerWidth<768?'mobile':'desktop',\n        page:window.location.pathname,\n        created_at:new Date().toISOString()\n      };\n      fetch(_sbUrl+'/rest/v1/nt_custom_designs',{\n        method:'POST',\n        headers:{'Content-Type':'application/json','apikey':_sbKey,'Authorization':'Bearer '+_sbKey,'Prefer':'return=minimal'},\n        body:JSON.stringify(_logData)\n      }).catch(function(){});\n    }\n  }catch(_e){}\n  var props={};\n  props['Size']=ai+'\"';\n  props['_session']=NT_SESSION_ID;\n  // Build per-line properties\n  lines.forEach(function(l,i){\n    var _lineStr=l;\n    var _opt=window.s4LineOpts&&window.s4LineOpts[i];\n    if(_opt&&_opt.iconKey){\n      var _label=_opt.iconLabel||(_opt.iconKey.split('/').pop().split('?')[0].replace(/[-_]?[a-f0-9]{8,}[-_]?[a-f0-9]*/gi,'').replace(/\\.[^.]+$/,'').replace(/[-_]+/g,' ').trim())||'icon';\n      var _iconDetail=_label+' \u00B7 '+(_opt.iconSide||'left');\n      if(_opt.iconRotation)_iconDetail+=' \u00B7 '+_opt.iconRotation+'\u00B0';\n      if(_opt.iconFlip)_iconDetail+=' \u00B7 flipped';\n      if(_opt.iconColour&&_opt.iconColour!==_textCol)_iconDetail+=' \u00B7 '+(_opt.iconColourName||ntHexToName(_opt.iconColour)||_opt.iconColour)+' colour';\n      _lineStr+=' + '+_iconDetail;\n    }\n    props['Line '+(i+1)]=_lineStr;\n  });\n  // For personal, nameLines already merged into lines arg \u2014 skip to avoid duplication\n  var _nameLinesToLog=intent==='personal'?[]:(window.s4NameLines||[]).filter(Boolean);\n  _nameLinesToLog.forEach(function(l,ni){\n    var _lineStr=l;\n    var _nopt=window.s4NameLineOpts&&window.s4NameLineOpts[ni];\n    if(_nopt&&_nopt.iconKey){\n      var _label=_nopt.iconLabel||(_nopt.iconKey.split('/').pop().split('?')[0].replace(/[-_]?[a-f0-9]{8,}[-_]?[a-f0-9]*/gi,'').replace(/\\.[^.]+$/,'').replace(/[-_]+/g,' ').trim())||'icon';\n      _lineStr+=' + '+_label+' ('+(_nopt.iconSide||'left')+')';\n    }\n    props['Line '+(lines.length+ni+1)]=_lineStr;\n  }); // end nameLines\n  // Font\n  var _f4=window.selFont4||'sans';\n  var _f3=window.selFont||'sans';\n  var _fRaw=intent==='personal'?_f4:_f3;\n  var _fontNames={'serif':'Classic (Playfair)','pacifico':'Flowing (Pacifico)','lobster':'Casual (Lobster)','amaranth':'Rounded (Amaranth)','montserrat':'Bold (Montserrat)','teko':'Impact (Teko)','comic':'Quirky (Comic Neue)','andalusia':'Script (Andalusia)','recoleta':'Recoleta','hindi':'Hindi','script':'Script (Pacifico)','sans':'Default (Poppins)'};\n  var _fontName=_fontNames[_fRaw]||_fRaw||'Bold';\n  props['Font']=_fontName;\n  // Color\n  var _cols=ntGetColors();var _col=_cols[intent==='personal'?(window.selC4||0):(window.selC3||0)];\n  if(_col)props['Colour']=_col.n;\n  // Note\n  var _note=(document.getElementById('ntNoteText')||{}).value||'';\n  if(_note.trim())props['Designer note']=_note.trim();\n\n\n  if(_icColExtra>0)props['_iconColourExtra']='\u20B9'+_icColExtra;\n  // Wide lines\n  if(typeof ntWideExtra==='function'&&typeof ntWideEligible==='function'){\n    var _wideLines=(window.lineOpts||[]).map(function(o,i){return o&&o.wide&&ntWideEligible(i,lines)?lines[i]:null;}).filter(Boolean);\n    if(_wideLines.length) props['_WideLines']=_wideLines.join(', ');\n    var _wideAmt=ntWideExtra(lines,window.lineOpts||[]);\n    if(_wideAmt) props['_WideExtra']='\u20B9'+_wideAmt;\n  }\n  // Icon on letter\n  if(window.ntLetterIcon&&window.ntLetterIcon.active){\n    var _ilLabel=window.ntLetterIcon.iconLabel||(window.ntLetterIcon.iconSrc.split('/').pop().split('?')[0].replace(/[-_]?[a-f0-9]{8,}[-_]?[a-f0-9]*/gi,'').replace(/\\.[^.]+$/,'').replace(/[-_]+/g,' ').trim())||'crown';\n    props['Crown icon']=_ilLabel+' (on line '+(window.ntLetterIcon.line+1)+')';\n  }\n  // Top icon\n  var _ti=window.s4TopIcon||{};\n  if(_ti&&_ti.iconKey){\n    var _tiLabel=_ti.iconLabel||(_ti.iconKey.split('/').pop().split('?')[0].replace(/[-_]?[a-f0-9]{8,}[-_]?[a-f0-9]*/gi,'').replace(/\\.[^.]+$/,'').replace(/[-_]+/g,' ').trim())||'icon';\n    var _tiStr=_tiLabel;\n    if(_ti.iconRotation)_tiStr+=' \u00B7 rotated '+_ti.iconRotation+'\u00B0';\n    if(_ti.iconFlip)_tiStr+=' \u00B7 mirrored';\n    if(_ti.iconColour&&_ti.iconColour!==_textCol){\n      var _tiColName=_ti.iconColourName||ntHexToName(_ti.iconColour)||_ti.iconColour;\n      _tiStr+=' \u00B7 '+_tiColName+' colour (+\u20B9500)';\n      _icColExtra+=500;\n    }\n    props['Top icon']=_tiStr;\n  }\n  // \u2500\u2500 Canvas snapshot \u2014 native canvas, wait for fonts \u2500\u2500\n  (function(){\n    try{\n      var _sbUrl=window.NT_SB_URL||'';\n      var _sbKey=window.NT_SB_KEY||'';\n      if(!_sbUrl||!_sbKey)return;\n      var _bgEl=document.getElementById('s4Bg')||document.getElementById('pieceBg');\n      if(!_bgEl)return;\n\n      // Capture design data now for logging after upload\n      var _logData={session_id:NT_SESSION_ID,lines:lines,inch:ai,price:price,\n        font:props['Font']||'',colour:props['Colour']||'',\n        icons:props['Icons']||'',crown_icon:props['Crown icon']||'',commissioned:true};\n      window._ntPendingLog=_logData;\n\n      function doCapture(){\n        var _allLines=(window.curLines||[]).concat((window.s4NameLines||[]).filter(Boolean));\n        if(!_allLines.length)return;\n        var _cols=typeof ntGetColors==='function'?ntGetColors():[];\n        var _ci=window.selC4||0;\n        var _color=(_cols[_ci]&&_cols[_ci].fc)||'#3d2b1a';\n        var _pad=28,_lineH=60,_w=320;\n        var _h=_pad*2+_allLines.length*_lineH;\n        var _scale=2;\n        var _cv=document.createElement('canvas');\n        _cv.width=_w*_scale;_cv.height=_h*_scale;\n        var _ctx=_cv.getContext('2d');\n        _ctx.scale(_scale,_scale);\n        var _bgColor=(_cols[_ci]&&_cols[_ci].lt)?'#f0f0f0':'#ffffff';\n        _ctx.fillStyle=_bgColor;_ctx.fillRect(0,0,_w,_h);\n        _ctx.fillStyle=_color;\n        _ctx.textAlign='center';_ctx.textBaseline='middle';\n        var _thumbFontMap={'serif':\"'Playfair Display',serif\",'pacifico':\"'Pacifico',cursive\",'script':\"'Pacifico',cursive\",'lobster':\"'Lobster',cursive\",'amaranth':\"'Amaranth',sans-serif\",'montserrat':\"'Montserrat',sans-serif\",'teko':\"'Teko',sans-serif\",'comic':\"'Comic Neue',cursive\",'andalusia':\"'Andalusia',cursive\",'recoleta':\"'Recoleta',serif\",'hindi':\"'Poppins',sans-serif\"};\n        var _thumbFF=_thumbFontMap[_fRaw]||\"'Poppins',sans-serif\";\n        var _thumbW=(_fRaw==='teko'||_fRaw==='montserrat')?'700':'900';\n        _allLines.forEach(function(line,idx){\n          var _text=(line||'').trim();if(!_text)return;\n          _ctx.font=_thumbW+' 48px '+_thumbFF;\n          var _mw=_w-_pad*2;\n          var _m=_ctx.measureText(_text);\n          if(_m.width>_mw){var _ratio=_mw/_m.width;_ctx.font=_thumbW+' '+Math.floor(48*_ratio)+'px '+_thumbFF;}\n          _ctx.fillText(_text,_w/2,_pad+idx*_lineH+_lineH/2);\n        });\n        _cv.toBlob(function(blob){\n          if(!blob)return;\n          var _fname='designs/'+NT_SESSION_ID+'_'+Date.now()+'.jpg';\n          fetch(_sbUrl+'/storage/v1/object/nt-designs/'+_fname,{\n            method:'POST',\n            headers:{'Authorization':'Bearer '+_sbKey,'apikey':_sbKey,'Content-Type':'image/jpeg','x-upsert':'true'},\n            body:blob\n          }).then(function(r){\n            if(!r.ok)return;\n            var _url=_sbUrl+'/storage/v1/object/public/nt-designs/'+_fname;\n            window._ntLastPreviewUrl=_url;\n            // Log design NOW \u2014 after upload, so preview_url is ready\n            var _ld=window._ntPendingLog||{};\n            _ld.preview_url=_url;\n            fetch('https://cozy-dieffenbachia-95eb4b.netlify.app/.netlify/functions/nt-log-design',{\n              method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(_ld)\n            }).catch(function(){});\n          }).catch(function(){\n            // Upload failed \u2014 log without preview\n            var _ld=window._ntPendingLog||{};\n            _ld.preview_url=null;\n            fetch('https://cozy-dieffenbachia-95eb4b.netlify.app/.netlify/functions/nt-log-design',{\n              method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(_ld)\n            }).catch(function(){});\n          });\n        },'image/jpeg',0.85);\n      }\n\n      if(document.fonts&&document.fonts.ready){document.fonts.ready.then(doCapture);}\n      else{setTimeout(doCapture,600);}\n    }catch(e){}\n  })();\n\n  var items=[{id:variantId,quantity:qty,properties:props}];\n  console.log('[NukkadTales] Cart properties:', JSON.stringify(props));\n  if(designerOn&&window.NT_DESIGNER_VARIANT_ID)items.push({id:window.NT_DESIGNER_VARIANT_ID,quantity:1});\n  // Add icon colour variant if any custom icon colours selected\n  if(_icColCount>0&&window.NT_ICON_COLOUR_VARIANTS&&window.NT_ICON_COLOUR_VARIANTS[_icColCount]){\n    items.push({id:window.NT_ICON_COLOUR_VARIANTS[_icColCount],quantity:1});\n  }\n  try{\n    var r=await fetch('/cart/add.js',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({items:items})});\n    if(!r.ok)throw new Error(r.status);\n    ntSaveDesign({lines:lines,inch:ai,intent:intent,session:NT_SESSION_ID,date:new Date().toLocaleDateString('en-IN',{day:'numeric',month:'short'}),commissioned:true});\n    if(btn){btn.textContent='\u2713 Added!';btn.style.background='#2d7d46';setTimeout(function(){btn.textContent=origTxt;btn.style.background='';btn.disabled=false;},2500);}\n    ntUpdateCartBtn();\n    setTimeout(function(){\n      ntCloseSlider();\n      var _sfHost=(typeof handleFloCartBtn==='function')?window:\n                  (window.parent&&window.parent!==window&&typeof window.parent.handleFloCartBtn==='function')?window.parent:null;\n      if(_sfHost)_sfHost.handleFloCartBtn();\n      else window.location.href='/cart';\n    },500);\n  }catch(e){if(btn){btn.textContent='Try again';btn.style.background='#c0392b';setTimeout(function(){btn.textContent=origTxt;btn.style.background='';btn.disabled=false;},2500);}}\n}\nfunction ntCommissionQuote(){\n  var ai=Math.min(Math.max(window.customSizeOverride||calcSizePrice(window.curLines,false,window.lineOpts||[]).inch,8),24);\n  ntAddToCart(window.curLines,ai,'quote',parseInt(document.getElementById('qtyCurrent')?.textContent||'1'));\n}\nfunction ntCommissionPersonal(){\n  var nl=(window.s4NameLines||[]).filter(Boolean);\n  var al=nl.length?[...curLines,...nl]:[...curLines];\n  // Use s4LineOpts (not lineOpts) \u2014 s4 stage icons and overrides live here\n  var adjOpts=[...(window.s4LineOpts||[]),...(window.s4NameLineOpts||[]).slice(0,nl.length)];\n  var ai=Math.min(Math.max(window.customSizeOverride||calcSizePrice(al,true,adjOpts).inch,8),24);\n  ntAddToCart(al,ai,'personal',parseInt(document.getElementById('qtyCurrentS4')?.textContent||'1'));\n}\nfunction ntCommissionMantra(){\n  ntAddToCart(window.mantraLines,window.mantraCurInch,'mantra',window.mantraQtyVal||1);\n}\nfunction ntUpdatePersonalBtn(){\n  var nl=(window.s4NameLines||[]).filter(Boolean),al=[...curLines,...nl];\n  if(!al.length)return;\n  var adjOpts=[...(window.s4LineOpts||[]),...(window.s4NameLineOpts||[]).slice(0,nl.length)];\n  var ai=Math.min(Math.max(window.customSizeOverride||calcSizePrice(al,true,adjOpts).inch,8),24);\n  var _tiLine=!!(window.s4TopIcon&&window.s4TopIcon.iconKey)?1:0;\n  var p=ntGetPrice(ai,Math.min(al.length+_tiLine,4));\n  var d=window.designerState&&Object.values(window.designerState).some(function(v){return v;});\n  var btn=document.getElementById('s4Btn');\n  if(btn)btn.textContent='Add to Cart \u00B7 \u20B9'+(p+(d?500:0)).toLocaleString('en-IN');\n}\n\nfunction ntInjectCartProps(){\n  // Fetch current cart and inject properties under each NT custom item in drawer\n  fetch('/cart.js').then(function(r){return r.json();}).then(function(cart){\n    cart.items.forEach(function(item){\n      if(!item.properties||!Object.keys(item.properties).length)return;\n      // Find the cart item element by variant id or key\n      var selectors=[\n        '[data-variant-id=\"'+item.variant_id+'\"]',\n        '[data-line-item-key=\"'+item.key+'\"]',\n        '[href*=\"'+item.variant_id+'\"]'\n      ];\n      var el=null;\n      selectors.forEach(function(s){if(!el)el=document.querySelector(s);});\n      if(!el){\n        // fallback: find by product title text\n        document.querySelectorAll('.cart-item__name, .cart-item__title, h3').forEach(function(h){\n          if(!el&&h.textContent.includes('NukkadTales'))el=h.closest('li, .cart-item, tr');\n        });\n      }\n      if(!el)return;\n      if(el.querySelector('.nt-cart-props'))return; // already injected\n      var div=document.createElement('div');\n      div.className='nt-cart-props';\n      div.style.cssText='font-size:11px;color:#555;margin-top:4px;line-height:1.6;';\n      var lines=[];\n      Object.entries(item.properties).forEach(function(kv){\n        var k=kv[0],v=kv[1];\n        if(!v||k.startsWith('_'))return; // skip blank and internal\n        lines.push('<span style=\"font-weight:600;color:#3d2b1a;\">'+k+':</span> '+v);\n      });\n      div.innerHTML=lines.join('<br>');\n      el.appendChild(div);\n    });\n  }).catch(function(){});\n}\nwindow.ntInjectCartProps=ntInjectCartProps;\n// Also run on page load for cart page\n// ntInjectCartProps auto-run disabled temporarily\nfunction ntOpenPolicy(){var ov=document.getElementById('ntPolicyOverlay'),m=document.getElementById('ntPolicyModal');if(ov)ov.style.display='block';if(m){m.style.display='flex';setTimeout(function(){m.style.transform='translateY(0)';},10);}}\nfunction ntClosePolicy(){var m=document.getElementById('ntPolicyModal'),ov=document.getElementById('ntPolicyOverlay');if(m){m.style.transform='translateY(100%)';setTimeout(function(){m.style.display='none';},300);}if(ov)ov.style.display='none';}\nfunction ntScalePiece(){var bg=document.getElementById('pieceBg')||document.getElementById('s4Bg');if(!bg)return;var p=bg.querySelector('.nt-piece');if(!p)return;p.style.transform='scale(1)';var s=Math.min(1,(bg.clientWidth-40)/p.scrollWidth,(bg.clientHeight-40)/p.scrollHeight);p.style.transform='scale('+s+')';}\n// Init sample strip when slider DOM ready\ntry{if(typeof ntInitSampleStrip==='function')ntInitSampleStrip();}catch(e){}\n\nfunction ntSaveDesign(design){\n  try{\n    var saved=JSON.parse(localStorage.getItem('nt_designs')||'[]');\n    saved=saved.filter(function(d){return d.session!==design.session;});\n    saved.unshift(design);\n    if(saved.length>20)saved=saved.slice(0,20); // keep last 20\n    localStorage.setItem('nt_designs',JSON.stringify(saved));\n    ntRefreshSavedDesigns();\n  }catch(e){}\n}\n\n// Auto-save current design while editing (debounced)\nvar _ntSaveTimer=null;\nfunction ntAutoSave(){\n  clearTimeout(_ntSaveTimer);\n  _ntSaveTimer=setTimeout(function(){\n    if(typeof window.curLines==='undefined'||!window.curLines||!window.curLines.length)return;\n    // Stable key based on content \u2014 prevents duplicate on every render\n    var _stableKey='draft_'+window.curLines.filter(Boolean).join('|').toLowerCase().replace(/\\s+/g,'_').slice(0,50);\n    // Don't re-save if this exact content was deleted\n    var _deleted=[];\n    try{_deleted=JSON.parse(localStorage.getItem('nt_deleted')||'[]');}catch(e){}\n    if(_deleted.indexOf(_stableKey)>=0)return;\n    ntSaveDesign({\n      lines:window.curLines.slice(),\n      inch:window.customSizeOverride||8,\n      intent:window.isNamed?'personal':'quote',\n      session:_stableKey,\n      date:new Date().toLocaleDateString('en-IN',{day:'numeric',month:'short'}),\n      draft:true,\n      font:window.selFont4||window.selFont||'sans',\n      colour:window.selC4!=null?window.selC4:window.selC3,\n      lineOpts:(window.s4LineOpts||[]).map(function(o){\n        if(!o)return null;\n        return {iconKey:o.iconKey||null,iconLabel:o.iconLabel||null,iconSide:o.iconSide||'left',iconRotation:o.iconRotation||0,iconColour:o.iconColour||null,iconColourName:o.iconColourName||null,wide:!!o.wide,align:o.align||null,fontOverride:o.fontOverride||null};\n      }),\n      nameLineOpts:(window.s4NameLineOpts||[]).map(function(o){\n        if(!o)return null;\n        return {iconKey:o.iconKey||null,iconLabel:o.iconLabel||null,iconSide:o.iconSide||'left',iconColour:o.iconColour||null,iconColourName:o.iconColourName||null};\n      }),\n      nameLines:(window.s4NameLines||[]).slice(),\n      topIcon:window.s4TopIcon?{iconKey:window.s4TopIcon.iconKey||null,iconLabel:window.s4TopIcon.iconLabel||null,iconColour:window.s4TopIcon.iconColour||null,iconRotation:window.s4TopIcon.iconRotation||0,iconFlip:!!window.s4TopIcon.iconFlip}:null,\n      letterIcon:(window.ntLetterIcon&&window.ntLetterIcon.active)?Object.assign({},window.ntLetterIcon):null\n    });\n  },2000);\n}\n\nfunction ntClearAllDesigns(){\n  if(!window.confirm('Remove all saved designs?'))return;\n  localStorage.removeItem('nt_designs');\n  localStorage.removeItem('nt_deleted');\n  ntRefreshSavedDesigns();\n}\n\nfunction ntLoadDesigns(){\n  try{return JSON.parse(localStorage.getItem('nt_designs')||'[]');}catch(e){return[];}\n}\n\nfunction ntDeleteDesign(session,confirmed){\n  try{\n    var designs=ntLoadDesigns();\n    var d=designs.find(function(x){return x.session===session;});\n    // If commissioned, confirm before deleting\n    if(d&&d.commissioned&&!confirmed){\n      if(!window.confirm('This design was added to cart. Still remove from saved designs?'))return;\n    }\n    var saved=designs.filter(function(x){return x.session!==session;});\n    localStorage.setItem('nt_designs',JSON.stringify(saved));\n    // Add to deleted blocklist so autoSave won't re-add it\n    var _deleted=[];\n    try{_deleted=JSON.parse(localStorage.getItem('nt_deleted')||'[]');}catch(e){}\n    if(_deleted.indexOf(session)<0){_deleted.push(session);localStorage.setItem('nt_deleted',JSON.stringify(_deleted.slice(-50)));}\n    ntRefreshSavedDesigns();\n  }catch(e){}\n}\n\nfunction ntRefreshSavedDesigns(){\n  var wrap=document.getElementById('ntSavedDesigns');\n  var designs=ntLoadDesigns();\n  if(!wrap)return;\n  if(!designs.length){wrap.style.display='none';return;}\n  wrap.style.display='block';\n  var html='<div style=\"display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;\">'\n    +'<div style=\"font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;\">Your saved designs</div>'\n    +'<button onclick=\"ntClearAllDesigns()\" style=\"font-size:10px;font-weight:600;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:underline;font-family:\\'DM Sans\\',sans-serif;\">Clear all</button>'\n    +'</div>';\n  designs.forEach(function(d,idx){\n    var label=d.lines.join(' \u00B7 ').slice(0,30)+(d.lines.join(' \u00B7 ').length>30?'\u2026':'');\n    var price=d.intent==='personal'?'\u20B91,299':'\u20B9999';\n    var commBadge=d.commissioned?'<span style=\"font-size:9px;font-weight:700;color:#2d7d46;background:#e8f5ec;border-radius:20px;padding:2px 7px;margin-left:4px;\">Ordered \u2713</span>':'';\n    html+='<div style=\"background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;display:flex;align-items:center;gap:10px;\">'\n      +'<div style=\"flex:1;min-width:0;\">'\n      +'<div style=\"font-size:12px;font-weight:700;color:var(--brown);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\">'+label+commBadge+'</div>'\n      +'<div style=\"font-size:10px;color:var(--muted);margin-top:2px;\">'+d.date+' \u00B7 '+d.inch+'\" \u00B7 '+price+'</div>'\n      +'</div>'\n      +'<button onclick=\"ntEditSaved(\\''+idx+'\\')\" style=\"background:var(--orange);color:#fff;border:none;border-radius:20px;padding:6px 12px;font-size:11px;font-weight:700;cursor:pointer;font-family:\\'DM Sans\\',sans-serif;white-space:nowrap;flex-shrink:0;\">Edit \u2192</button>'\n      +'<button onclick=\"ntDeleteDesign(\\''+d.session+'\\')\" style=\"background:none;border:none;font-size:16px;color:var(--light);cursor:pointer;flex-shrink:0;padding:0 2px;\">\u2715</button>'\n      +'</div>';\n  });\n  wrap.innerHTML=html;\n}\n\nfunction ntEditSaved(idx){\n  var designs=ntLoadDesigns();\n  var d=designs[parseInt(idx)];\n  if(!d||!d.lines||!d.lines.length)return;\n  var sl=document.getElementById('ntSl');\n  var alreadyOpen=sl&&sl.classList.contains('open');\n  if(!alreadyOpen){\n    sessionStorage.setItem('nt_skip_welcome','1');\n    ntOpenSlider('customise');\n  } else {\n    var _wb=document.getElementById('ntWelcomeBack');if(_wb)_wb.remove();\n  }\n  var price=d.intent==='personal'?1299:999;\n  function tryEdit(n){\n    if(typeof goRender==='function'){\n      var fb=document.getElementById('ntFormBar');\n      var s1b=document.getElementById('ntS1Body');\n      var cb=document.getElementById('ntCompactBar');\n      var ct=document.getElementById('ntCompactText');\n      if(fb){fb.classList.add('nt-hidden');fb.style.setProperty('display','none','important');}\n      if(s1b){s1b.style.display='flex';s1b.style.flex='1';s1b.style.minHeight='0';}\n      if(cb)cb.style.display='flex';\n      if(ct)ct.textContent=d.lines.join(' \u00B7 ');\n      window.customSizeOverride=d.inch||null;\n      goRender(d.lines,price);\n      // Restore ALL state AFTER goRender/initS4 resets everything\n      setTimeout(function(){\n        if(d.lineOpts){window.s4LineOpts=d.lineOpts.map(function(o){return o?Object.assign({},o):{};}); }\n        if(d.nameLineOpts){window.s4NameLineOpts=d.nameLineOpts.map(function(o){return o?Object.assign({},o):{};}); }\n        if(d.nameLines){window.s4NameLines=d.nameLines.slice();}\n        if(d.topIcon&&d.topIcon.iconKey){window.s4TopIcon=Object.assign({},d.topIcon);} else {window.s4TopIcon={};}\n        if(d.letterIcon&&d.letterIcon.active){window.ntLetterIcon=Object.assign({},d.letterIcon);} else {window.ntLetterIcon={active:false,letter:'',line:0,charIdx:0,iconSrc:'',iconLabel:''};}\n        if(d.colour!=null&&typeof pc4==='function'){try{pc4(d.colour);}catch(e){}}\n        if(d.font&&typeof setFont4==='function'){try{setFont4(d.font);}catch(e){}}\n        if(typeof renderS4==='function')try{renderS4();}catch(e){}\n        if(typeof renderC4==='function')try{renderC4();}catch(e){}\n        if(typeof renderS4LineChips==='function')try{renderS4LineChips();}catch(e){}\n        if(typeof ntRenderIconColourPill==='function')try{ntRenderIconColourPill();}catch(e){}\n      },300);\n    } else if(n<20){\n      setTimeout(function(){tryEdit(n+1);},150);\n    }\n  }\n  // Always wait a tick to ensure goRender is available\n  if(alreadyOpen){setTimeout(function(){tryEdit(0);},50);}\n  else{setTimeout(function(){tryEdit(0);},400);}\n}\n\nfunction ntOpenSizeGuide(){\n  // Build modal if not exists\n  var existing=document.getElementById('ntSizeGuideModal');\n  if(existing){existing.style.display='flex';return;}\n\n  var modal=document.createElement('div');\n  modal.id='ntSizeGuideModal';\n  modal.style.cssText='position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,0.6);display:flex;align-items:flex-end;justify-content:center;';\n\n  var panel=document.createElement('div');\n  panel.style.cssText='background:#fdf6f0;border-radius:20px 20px 0 0;width:100%;max-width:480px;max-height:85vh;overflow-y:auto;padding:20px;box-sizing:border-box;';\n\n  // Header\n  var header='<div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;\">'\n    +'<div style=\"font-size:15px;font-weight:700;color:var(--brown);\">\uD83D\uDCD0 Size Guide</div>'\n    +'<button onclick=\"document.getElementById(\\'ntSizeGuideModal\\').style.display=\\'none\\'\" style=\"background:none;border:none;font-size:20px;color:var(--muted);cursor:pointer;padding:0;line-height:1;\">\u2715</button>'\n    +'</div>';\n\n  // Size reference cards\n  var sizes=[\n    {s:'6\"',  icon:'\uD83E\uDE94', desc:'Candle / small shelf piece',   who:'Studio apartment, gifting'},\n    {s:'8\"',  icon:'\uD83D\uDCF1', desc:'Phone size \u00B7 compact desk decor', who:'Desk, bedside, gifting'},\n    {s:'9\"',  icon:'\uD83D\uDCD3', desc:'Notebook size \u00B7 most popular',  who:'Home office, living room'},\n    {s:'10\"', icon:'\uD83D\uDCC4', desc:'A4 paper \u00B7 bold shelf statement',who:'Shelf, console table'},\n    {s:'12\"', icon:'\uD83D\uDCBB', desc:'Laptop width \u00B7 wall statement', who:'Living room, entryway'},\n    {s:'14\"', icon:'\uD83D\uDDBC\uFE0F', desc:'Art print \u00B7 bold wall piece',   who:'Feature wall, office'},\n  ];\n\n  var cards='<div style=\"display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;\">'\n    +sizes.map(function(sz){\n      return '<div style=\"background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px;\">'\n        +'<div style=\"display:flex;align-items:center;gap:6px;margin-bottom:4px;\">'\n        +'<span style=\"font-size:18px;\">'+sz.icon+'</span>'\n        +'<span style=\"font-size:14px;font-weight:800;color:var(--brown);font-family:\\'Poppins\\',sans-serif;\">'+sz.s+'</span>'\n        +'</div>'\n        +'<div style=\"font-size:10px;color:var(--brown);font-weight:600;line-height:1.4;\">'+sz.desc+'</div>'\n        +'<div style=\"font-size:9px;color:var(--muted);margin-top:3px;\">'+sz.who+'</div>'\n        +'</div>';\n    }).join('')\n    +'</div>';\n\n  // Video section \u2014 populated from NUKKAD_CONFIG if set\n  var videoHtml='';\n  if(NUKKAD_CONFIG&&NUKKAD_CONFIG.videoUrl){\n    videoHtml='<div style=\"margin-bottom:16px;\">'\n      +'<div style=\"font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;\">Watch: sizes in real homes</div>'\n      +'<div style=\"background:#1e1408;border-radius:10px;overflow:hidden;aspect-ratio:16/9;cursor:pointer;position:relative;\" onclick=\"this.innerHTML=\\'<iframe src=\\\\\\''+NUKKAD_CONFIG.videoUrl+'?autoplay=1\\\\\\' width=\\\\\\'100%\\\\\\' height=\\\\\\'100%\\\\\\' frameborder=\\\\\\'0\\\\\\' allowfullscreen style=\\\\\\'display:block;\\\\\\'></iframe>\\';this.style.cursor=\\'default\\';\">'\n      +'<img src=\"'+(NUKKAD_CONFIG.videoThumbnail||'')+'\" style=\"width:100%;height:100%;object-fit:cover;opacity:0.7;\" loading=\"lazy\">'\n      +'<div style=\"position:absolute;inset:0;display:flex;align-items:center;justify-content:center;\">'\n      +'<div style=\"width:44px;height:44px;background:rgba(255,255,255,0.9);border-radius:50%;display:flex;align-items:center;justify-content:center;\">'\n      +'<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"#3d2b1a\"><path d=\"M8 5v14l11-7z\"/></svg>'\n      +'</div></div></div></div>';\n  }\n\n  // Size comparison photos placeholder\n  var photosHtml='<div style=\"background:#fff;border:1px dashed var(--border);border-radius:10px;padding:14px;text-align:center;\">'\n    +'<div style=\"font-size:11px;color:var(--muted);line-height:1.6;\">Size comparison photos coming soon.<br>Call us to see samples: <a href=\"tel:+91XXXXXXXXXX\" style=\"color:var(--orange);font-weight:700;\">+91 XXXX XXX XXX</a></div>'\n    +'</div>';\n\n  panel.innerHTML=header+cards+videoHtml+photosHtml;\n  modal.appendChild(panel);\n  modal.addEventListener('click',function(e){if(e.target===modal)modal.style.display='none';});\n  document.body.appendChild(modal);\n}\n\nfunction ntOpenSizeGuideModal(){\n  var bd=document.getElementById('ntSizeGuideModalBd');\n  var modal=document.getElementById('ntSizeGuideModal');\n  if(!bd||!modal)return;\n  bd.style.display='block';\n  modal.style.display='flex';\n  setTimeout(function(){\n    modal.style.transform='translate(-50%,-50%)';\n    modal.style.opacity='1';\n  },10);\n\n  var body=document.getElementById('ntSizeGuideModalBody');\n  if(body.innerHTML.trim())return; // already built\n\n  var sizes=[\n    {s:'6\"',  label:'Mini',      desc:'Candle holder \u00B7 gifting',   note:'1\u20132 short words',       img:''},\n    {s:'8\"',  label:'Compact',   desc:'Phone width \u00B7 desk piece',  note:'Up to 8 letters/line',  img:''},\n    {s:'9\"',  label:'Popular \u2726', desc:'Notebook \u00B7 home office',    note:'Most ordered size',      img:''},\n    {s:'10\"', label:'Bold',      desc:'A4 paper \u00B7 shelf',          note:'Up to 11 letters/line', img:''},\n    {s:'12\"', label:'Statement', desc:'Laptop width \u00B7 wall',       note:'Long names & quotes',   img:''},\n    {s:'14\"', label:'Large',     desc:'Art print \u00B7 feature wall',  note:'Commands any wall',     img:''},\n    {s:'16\"', label:'Grand',     desc:'Poster \u00B7 living room',      note:'3\u20134 line designs',      img:''},\n    {s:'18\"', label:'Majestic',  desc:'Gallery wall anchor',       note:'Statement centrepiece', img:''},\n  ];\n\n  // Use gallery images if available\n  var galleryImgs=(window.NUKKAD_CONFIG&&NUKKAD_CONFIG.galleryImages)||[];\n  sizes.forEach(function(sz,i){ if(galleryImgs[i]) sz.img=galleryImgs[i]; });\n\n  var html='';\n\n  // Instruction line\n  html+='<div style=\"font-family:\\'DM Sans\\',sans-serif;font-size:10px;font-weight:600;color:#a07850;margin-bottom:10px;letter-spacing:.04em;text-transform:uppercase;\">Tap a size to see in full</div>';\n\n  // Horizontal scroll image carousel\n  html+='<div style=\"display:flex;gap:10px;overflow-x:auto;padding-bottom:10px;margin-bottom:16px;scrollbar-width:none;-webkit-overflow-scrolling:touch;\">';\n  sizes.forEach(function(sz,i){\n    var isPopular=sz.label.indexOf('\u2726')>=0;\n    var hasImg=!!sz.img;\n    html+='<div '+(hasImg?'onclick=\"ntSGOpenLightbox(\\''+sz.img+'\\',\\''+sz.s+'\\',\\''+sz.desc+'\\')\" style=\"flex-shrink:0;width:100px;cursor:pointer;\"':'style=\"flex-shrink:0;width:100px;\"')+'>';\n    // Image box\n    html+='<div style=\"width:100px;height:100px;border-radius:10px;overflow:hidden;background:#e8e0d8;border:1.5px solid '+(isPopular?'#c47a45':'#e0c9b2')+';margin-bottom:6px;display:flex;align-items:center;justify-content:center;position:relative;\">';\n    if(hasImg){\n      html+='<img src=\"'+sz.img+'\" style=\"width:100%;height:100%;object-fit:cover;display:block;\" loading=\"lazy\">';\n    } else {\n      // Placeholder with size number\n      html+='<span style=\"font-family:\\'Poppins\\',sans-serif;font-weight:900;font-size:28px;color:#c8b8a8;\">'+sz.s+'</span>';\n    }\n    if(isPopular) html+='<div style=\"position:absolute;top:4px;left:4px;background:#c47a45;color:#fff;border-radius:20px;padding:2px 6px;font-size:8px;font-weight:700;font-family:\\'DM Sans\\',sans-serif;display:none;\">Popular</div>';\n    html+='</div>';\n    // Caption\n    html+='<div style=\"font-family:\\'Poppins\\',sans-serif;font-weight:900;font-size:13px;color:#3d2b1a;line-height:1;margin-bottom:3px;\">'+sz.s+'</div>';\n    html+='<div style=\"font-family:\\'DM Sans\\',sans-serif;font-size:10px;color:#a07850;line-height:1.4;\">'+sz.note+'</div>';\n    html+='</div>';\n  });\n  html+='</div>';\n\n  // Video\n  var _sgVideo=(window.NUKKAD_CONFIG&&(NUKKAD_CONFIG.sizeGuideVideoUrl||_sgVideo))||'';\n  var _sgThumb=(window.NUKKAD_CONFIG&&(NUKKAD_CONFIG.sizeGuideVideoThumb||NUKKAD_CONFIG.videoThumbnail))||'';\n  if(_sgVideo){\n    html+='<div style=\"font-family:\\'DM Sans\\',sans-serif;font-size:10px;font-weight:600;color:#a07850;margin-bottom:8px;letter-spacing:.04em;text-transform:uppercase;\">See in real homes</div>';\n    html+='<div style=\"background:#1e1408;border-radius:12px;overflow:hidden;aspect-ratio:16/9;cursor:pointer;position:relative;\" onclick=\"this.innerHTML=\\'<iframe src=\\\\\\''+_sgVideo+'?autoplay=1\\\\\\' width=\\\\\\'100%\\\\\\' height=\\\\\\'100%\\\\\\' frameborder=\\\\\\'0\\\\\\' allowfullscreen style=\\\\\\'position:absolute;inset:0;display:block;\\\\\\'></iframe>\\';this.style.cursor=\\'default\\';\">'\n      +'<img src=\"'+(_sgThumb)+'\" style=\"width:100%;height:100%;object-fit:cover;opacity:0.75;display:block;\" loading=\"lazy\">'\n      +'<div style=\"position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;\">'\n      +'<div style=\"width:44px;height:44px;background:rgba(255,255,255,0.92);border-radius:50%;display:flex;align-items:center;justify-content:center;\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"#3d2b1a\"><path d=\"M8 5v14l11-7z\"/></svg></div>'\n      +'<div style=\"font-family:\\'DM Sans\\',sans-serif;font-size:11px;font-weight:700;color:#fff;\">Watch \u00B7 sizes in real homes</div>'\n      +'</div></div>';\n  }\n\n  body.innerHTML=html;\n}\n\nfunction ntCloseSizeGuideModal(){\n  var modal=document.getElementById('ntSizeGuideModal');\n  var bd=document.getElementById('ntSizeGuideModalBd');\n  if(modal){modal.style.opacity='0';modal.style.transform='translate(-50%,-60%)';}\n  setTimeout(function(){\n    if(modal)modal.style.display='none';\n    if(bd)bd.style.display='none';\n  },260);\n}\n\nfunction ntSGOpenLightbox(src,size,desc){\n  var lb=document.getElementById('ntSGLightbox');\n  if(!lb){\n    lb=document.createElement('div');\n    lb.id='ntSGLightbox';\n    lb.style.cssText='position:fixed;inset:0;background:rgba(0,0,0,0.92);z-index:900;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;';\n    lb.onclick=function(e){if(e.target===lb||e.target===lb.querySelector('img'))lb.style.display='none';};\n    var img=document.createElement('img');\n    img.id='ntSGLightboxImg';\n    img.style.cssText='max-width:88vw;max-height:72vh;object-fit:contain;border-radius:10px;';\n    var cap=document.createElement('div');\n    cap.id='ntSGLightboxCap';\n    cap.style.cssText='text-align:center;';\n    var closeBtn=document.createElement('button');\n    closeBtn.textContent='\u2715';\n    closeBtn.style.cssText='position:absolute;top:16px;right:16px;background:rgba(255,255,255,0.15);border:none;color:#fff;border-radius:50%;width:32px;height:32px;font-size:15px;cursor:pointer;';\n    closeBtn.onclick=function(){lb.style.display='none';};\n    lb.appendChild(img);\n    lb.appendChild(cap);\n    lb.appendChild(closeBtn);\n    document.body.appendChild(lb);\n  }\n  if(src){\n    document.getElementById('ntSGLightboxImg').src=src;\n    document.getElementById('ntSGLightboxImg').style.display='block';\n  } else {\n    document.getElementById('ntSGLightboxImg').style.display='none';\n  }\n  document.getElementById('ntSGLightboxCap').innerHTML=size\n    ?'<div style=\"font-family:\\'Poppins\\',sans-serif;font-weight:900;font-size:18px;color:#fff;\">'+size+'</div>'\n     +'<div style=\"font-family:\\'DM Sans\\',sans-serif;font-size:12px;color:rgba(255,255,255,0.7);margin-top:4px;\">'+desc+'</div>':'' ;\n  lb.style.display='flex';\n}\n\n\nfunction ntScrollToFind(){\n  var el=document.querySelector(NUKKAD_CONFIG.findQuoteClass||'.nt-ig-wrap');\n  if(el){el.scrollIntoView({behavior:'smooth',block:'start'});}\n  else if(NUKKAD_CONFIG.findQuoteUrl){window.location.href=NUKKAD_CONFIG.findQuoteUrl;}\n}\nfunction ntOpenBrandLogo(){\n  window.location.href = NUKKAD_CONFIG.brandLogoUrl || '/pages/brand-logo';\n}\nfunction ntOpenCartFromBar(){\n  ntCloseSlider();\n  var drawer=document.querySelector('cart-drawer');\n  if(drawer)drawer.open();\n  else window.location.href='/cart';\n}\n\nfunction ntUpdateCartBtn(){\n  fetch('/cart.js')\n    .then(function(r){return r.json();})\n    .then(function(cart){\n      var btn=document.getElementById('ntCartBarBtn');\n      var count=document.getElementById('ntCartCount');\n      // check if any custom order items\n      var customItems=(cart.items||[]).filter(function(i){\n        return i.handle&&i.handle.includes('custom-order');\n      });\n      if(btn){\n        if(customItems.length>0){\n          btn.style.display='flex';\n          if(count)count.textContent=cart.item_count;\n        } else {\n          btn.style.display='none';\n        }\n      }\n    }).catch(function(){});\n}\n\nfunction ntPlayVideoS4(n){\n  var url=n===2?(NUKKAD_CONFIG.video2Url||''):(NUKKAD_CONFIG.videoUrl||'');\n  if(!url)return;\n  // Replace the card content with an inline iframe\n  var card=document.getElementById('ntVideoCard'+n+'S4');\n  if(!card)return;\n  var autoUrl=url+(url.includes('?')?'&':'?')+'autoplay=1';\n  card.innerHTML='<iframe src=\"'+autoUrl+'\" width=\"100%\" height=\"100%\" frameborder=\"0\" allowfullscreen style=\"display:block;position:absolute;inset:0;\"></iframe>';\n  card.style.cursor='default';\n  card.onclick=null;\n}\nfunction ntInitVideoReviews(){\n  // Helper to normalise YouTube/Vimeo URL to embed\n  function toEmbed(url){\n    if(!url)return '';\n    if(url.includes('watch?v='))url='https://www.youtube.com/embed/'+url.split('watch?v=')[1].split('&')[0];\n    if(url.includes('youtu.be/'))url='https://www.youtube.com/embed/'+url.split('youtu.be/')[1].split('?')[0];\n    if(url.includes('youtube.com/shorts/'))url='https://www.youtube.com/embed/'+url.split('shorts/')[1].split('?')[0];\n    return url;\n  }\n  function ytThumb(embedUrl){\n    // Extract video ID from embed URL and return YouTube thumbnail\n    var m=embedUrl.match(/embed\\/([^?&/]+)/);\n    return m?'https://img.youtube.com/vi/'+m[1]+'/hqdefault.jpg':'';\n  }\n  var v1=toEmbed(NUKKAD_CONFIG.videoUrl||'');\n  var v2=toEmbed(NUKKAD_CONFIG.video2Url||'');\n  NUKKAD_CONFIG.videoUrl=v1;\n  NUKKAD_CONFIG.video2Url=v2;\n\n  // Show video wrap if at least one video exists\n  var wrap=document.getElementById('ntVideoWrap');\n  if(wrap&&(v1||v2)){\n    wrap.style.display='flex';\n    var thumb1=document.getElementById('ntVideoThumb');\n    if(thumb1)thumb1.src=NUKKAD_CONFIG.videoThumbnail||ytThumb(v1);\n    var title1=document.getElementById('ntVideoTitle');\n    if(title1)title1.textContent=NUKKAD_CONFIG.videoTitle||'See how it\\'s made';\n    var thumb2=document.getElementById('ntVideoThumb2');\n    if(thumb2)thumb2.src=NUKKAD_CONFIG.video2Thumbnail||ytThumb(v2);\n    var title2=document.getElementById('ntVideoTitle2');\n    if(title2)title2.textContent=NUKKAD_CONFIG.video2Title||'How it\\'s made';\n    // Hide card if no URL\n    var card1=document.getElementById('ntVideoCard1');if(card1)card1.style.display=v1?'block':'none';\n    var card2=document.getElementById('ntVideoCard2');if(card2)card2.style.display=v2?'block':'none';\n  }\n  // Personal stage (S4) video cards\n  var wrapS4=document.getElementById('ntVideoWrapS4');\n  if(wrapS4&&(v1||v2)){\n    wrapS4.style.display='block';\n    var c1s4=document.getElementById('ntVideoCard1S4');if(c1s4)c1s4.style.display=v1?'block':'none';\n    var c2s4=document.getElementById('ntVideoCard2S4');if(c2s4)c2s4.style.display=v2?'block':'none';\n    var t1s4=document.getElementById('ntVideoTitle1S4');if(t1s4)t1s4.textContent=NUKKAD_CONFIG.videoTitle||'See how it\\'s made';\n    var t2s4=document.getElementById('ntVideoTitle2S4');if(t2s4)t2s4.textContent=NUKKAD_CONFIG.video2Title||'How it\\'s made';\n    var th1s4=document.getElementById('ntVideoThumb1S4');if(th1s4)th1s4.src=NUKKAD_CONFIG.videoThumbnail||ytThumb(v1);\n    var th2s4=document.getElementById('ntVideoThumb2S4');if(th2s4)th2s4.src=NUKKAD_CONFIG.video2Thumbnail||ytThumb(v2);\n  }\n  // Inject artisan section\n  ntInitArtisan();\n  // Load Judge.me reviews\n  ntLoadReviews();\n}\n\nfunction ntPlayVideoV(card,frameId,url){\n  if(!url)return;\n  var frame=document.getElementById(frameId);\n  if(!frame)return;\n  // Hide thumbnail overlay\n  var overlay=card.querySelector('div[style*=\"position:absolute\"]');\n  var thumb=card.querySelector('img');\n  if(overlay)overlay.style.display='none';\n  if(thumb)thumb.style.display='none';\n  frame.src=url+(url.includes('?')?'&':'?')+'autoplay=1';\n  frame.style.display='block';\n  card.onclick=null;\n}\n\nfunction ntInitArtisan(){\n  if(!NUKKAD_CONFIG.artisanCount)return;\n  var colors=['#c47a45','#2aac8e','#8aac8e','#1e3a5f','#d4a5a5','#e8c94a','#6b7280','#3d2b1a'];\n  ['','S4'].forEach(function(suffix){\n    var wrap=document.getElementById('ntArtisan'+suffix);\n    if(!wrap)return;\n    wrap.style.display='block';\n    var countEl=document.getElementById('ntArtisanCount'+suffix);\n    var namesEl=document.getElementById('ntArtisanNames'+suffix);\n    var quoteEl=document.getElementById('ntArtisanQuote'+suffix);\n    var statEl=document.getElementById('ntArtisanStat'+suffix);\n    var sinceEl=document.getElementById('ntArtisanSince'+suffix);\n    var avatarsEl=document.getElementById('ntArtisanAvatars'+suffix);\n    if(countEl)countEl.textContent=NUKKAD_CONFIG.artisanCount||'8 artisan families';\n    if(namesEl)namesEl.textContent=NUKKAD_CONFIG.artisanNames||'';\n    if(quoteEl)quoteEl.textContent=NUKKAD_CONFIG.artisanQuote||'';\n    if(suffix==='S4'){\n      // Dark strip needs short stat \u2014 extract just the number/short form\n      // e.g. \"1,50,000+ pieces shipped across India\" \u2192 \"1.5L+\"\n      var statShort=(NUKKAD_CONFIG.artisanStatShort||'').trim();\n      if(!statShort){\n        // Auto-shorten: grab digits+symbols before first space\n        var m=(NUKKAD_CONFIG.artisanStat||'').match(/^[\\d,\\.\\+]+/);\n        statShort=m?m[0]:(NUKKAD_CONFIG.artisanStat||'').split(' ')[0];\n      }\n      if(statEl)statEl.textContent=statShort;\n      // Since: extract just the year \"since 2019 \u2764\" \u2192 \"2019\"\n      var sinceShort=(NUKKAD_CONFIG.artisanSince||'').match(/\\d{4}/);\n      if(sinceEl)sinceEl.textContent=sinceShort?sinceShort[0]:(NUKKAD_CONFIG.artisanSince||'');\n    } else {\n      if(statEl)statEl.textContent=NUKKAD_CONFIG.artisanStat||'';\n      if(sinceEl)sinceEl.textContent=NUKKAD_CONFIG.artisanSince||'';\n    }\n    if(avatarsEl){\n      var imgs=NUKKAD_CONFIG.artisanImages||[];\n      var names=(NUKKAD_CONFIG.artisanNames||'').split(',').map(function(n){return n.trim();});\n      var total=parseInt((NUKKAD_CONFIG.artisanCount||'8').match(/\\d+/)||[8])[0];\n      var shown=Math.min(4, imgs.length||names.length||4);\n      var extra=total-shown;\n      var html='';\n      for(var i=0;i<shown;i++){\n        var ml=i>0?'margin-left:-8px;':'';\n        if(imgs[i]){\n          html+='<img src=\"'+imgs[i].src+'\" alt=\"'+(imgs[i].name||'')+'\" style=\"width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid #fff;'+ml+'flex-shrink:0;\" loading=\"lazy\">';\n        } else {\n          var initial=(names[i]||'A')[0].toUpperCase();\n          var bg=colors[i%colors.length];\n          html+='<div style=\"width:32px;height:32px;border-radius:50%;background:'+bg+';border:2px solid #fff;'+ml+'flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;\">'+initial+'</div>';\n        }\n      }\n      if(extra>0){\n        html+='<div style=\"width:32px;height:32px;border-radius:50%;background:#e0cdb8;border:2px solid #fff;margin-left:-8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--brown);\">+'+extra+'</div>';\n      }\n      avatarsEl.innerHTML=html;\n    }\n  });\n}\n\nfunction ntLoadReviews(){\n  var dests=['ntReviewsWrap','ntReviewsWrapS4'];\n  // Check if already loaded\n  if(document.getElementById('ntReviewsWrap').innerHTML.trim())return;\n\n  fetch('https://cozy-dieffenbachia-95eb4b.netlify.app/.netlify/functions/nt-reviews')\n    .then(function(r){return r.json();})\n    .then(function(data){\n      var reviews=data.reviews||[];\n      if(!reviews.length)return;\n      var html=ntBuildReviewsCarousel(reviews);\n      dests.forEach(function(id){\n        var el=document.getElementById(id);\n        if(el)el.innerHTML=html;\n      });\n      // Init carousel scroll\n      setTimeout(ntInitReviewScroll,100);\n    })\n    .catch(function(){});\n}\n\nfunction ntBuildReviewsCarousel(reviews){\n  var stars=function(n){\n    var s='';for(var i=0;i<5;i++)s+='<span style=\"color:'+(i<n?'#e8a020':'#ddd')+';\">\u2605</span>';return s;\n  };\n  // Only show reviews WITH photos\n  var photoReviews=reviews.filter(function(r){return r.photos&&r.photos.length>0;});\n  if(!photoReviews.length)return '<div style=\"display:none;\"></div>'; // hide if no photo reviews\n\n  var cards=photoReviews.map(function(r,idx){\n    var cardId='ntr-'+idx;\n    var photo=r.photos[0];\n    var productHtml=r.product?'<div style=\"font-size:9px;color:var(--orange);font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;\">'+r.product+'</div>':'';\n    var photoHtml=photo\n      ?'<img src=\"'+photo+'\" style=\"width:100%;display:block;border-radius:8px 8px 0 0;object-fit:cover;max-height:160px;\" loading=\"lazy\">'\n      :'';\n    var bodyId='ntrbody-'+idx;\n    return '<div style=\"flex-shrink:0;width:180px;height:340px;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;user-select:none;\">'\n      +photoHtml\n      +'<div style=\"padding:10px;display:flex;flex-direction:column;flex:1;overflow:hidden;\">'\n      +productHtml\n      +'<div style=\"font-size:11px;line-height:1;margin-bottom:5px;\">'+stars(r.rating)+'</div>'\n      +'<div id=\"'+bodyId+'\" style=\"font-size:10px;color:var(--brown);line-height:1.55;overflow:hidden;flex:1;position:relative;\">'\n      +r.body\n      +'</div>'\n      +'<div style=\"font-size:9px;color:var(--muted);font-weight:600;margin-top:6px;line-height:1.4;\">'+r.name+'<br>'+r.date+'</div>'\n      +'</div>'\n      +'</div>';\n  }).join('');\n\n  return '<div style=\"margin-top:16px;\">'\n    +'<div style=\"font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;\">What customers say \u00B7 4.9\u2605</div>'\n    +'<div class=\"nt-review-scroll\" style=\"display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 0 8px;cursor:grab;scrollbar-width:none;-ms-overflow-style:none;\">'\n    +cards\n    +'</div>'\n    +'</div>';\n}\n\n\nfunction ntInitReviewScroll(){\n  document.querySelectorAll('.nt-review-scroll').forEach(function(el){\n    // Hide scrollbar\n    el.style.msOverflowStyle='none';\n    // Mouse drag scroll\n    var isDown=false,startX,scrollLeft;\n    el.addEventListener('mousedown',function(e){\n      isDown=true;el.style.cursor='grabbing';\n      startX=e.pageX-el.offsetLeft;scrollLeft=el.scrollLeft;\n    });\n    el.addEventListener('mouseleave',function(){isDown=false;el.style.cursor='grab';});\n    el.addEventListener('mouseup',function(){isDown=false;el.style.cursor='grab';});\n    el.addEventListener('mousemove',function(e){\n      if(!isDown)return;e.preventDefault();\n      var x=e.pageX-el.offsetLeft;\n      el.scrollLeft=scrollLeft-(x-startX)*1.5;\n    });\n    // Hint scroll on load\n    setTimeout(function(){el.scrollTo({left:80,behavior:'smooth'});},1000);\n    setTimeout(function(){el.scrollTo({left:0,behavior:'smooth'});},2200);\n  });\n}\n\n// \u2500\u2500 ICON ON LETTER SYSTEM \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nwindow.ntLetterIcon = {active:false, letter:'', line:0, charIdx:0, iconSrc:'', iconLabel:''};\nvar _ntILSelLetter = null, _ntILSelLine = 0, _ntILSelChar = 0, _ntILSelIcon = null;\n\nfunction ntOpenIconLetter(){\n  var allIcons = window.NT_CUSTOM_ICONS||[];\n  var icons = allIcons.filter(function(ic){return ic.forLetter;});\n  if(!icons.length){\n    alert('No icons set for letter picker. In Theme Customiser \u2192 Nukkad Customiser, add icon labels to the \"Icons available for letter picker\" field.');\n    return;\n  }\n  if(!icons.length){\n    alert('No icons found. Add icons in Theme Customiser > Nukkad Customiser > Add block > Custom icon');\n    return;\n  }\n\n  var grid = document.getElementById('ntILIconTiles');\n  if(!grid) return;\n  grid.innerHTML = '';\n\n  icons.forEach(function(ic){\n    var btn = document.createElement('button');\n    btn.type = 'button';\n    btn.style.cssText = 'display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border:1.5px solid #e0c9b2;border-radius:10px;background:#fff;cursor:pointer;width:100%;';\n    btn.innerHTML = '<img src=\"'+ic.src+'\" style=\"width:38px;height:38px;object-fit:contain;\" alt=\"'+ic.label+'\">'\n      +'<span style=\"font-size:8px;color:#a07850;text-align:center;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;\">'+ic.label+'</span>';\n    btn.addEventListener('click', function(){\n      grid.querySelectorAll('button').forEach(function(b){ b.style.borderColor='#e0c9b2'; b.style.background='#fff'; });\n      btn.style.borderColor='#c47a45'; btn.style.background='#fff8f3';\n      ntCloseIconLetter();\n      setTimeout(function(){ ntILShowFloat(ic); }, 300);\n    });\n    grid.appendChild(btn);\n  });\n\n  var removeBtn = document.getElementById('ntILRemoveBtn');\n  if(removeBtn) removeBtn.style.display = (window.ntLetterIcon&&window.ntLetterIcon.active)?'block':'none';\n\n  var sheet = document.getElementById('ntIconLetterSheet');\n  var bd = document.getElementById('ntIconLetterBackdrop');\n  if(sheet){ sheet.style.display='flex'; setTimeout(function(){ sheet.style.transform='translate(-50%,-50%)'; sheet.style.opacity='1'; },10); }\n  if(bd) bd.style.display='block';\n}\n\nfunction ntILShowFloat(ic){\n  // Simply place the icon on the canvas - no drag, no float overlay\n  window.ntLetterIcon = {\n    active: true,\n    letter: '',\n    line: 0,\n    charIdx: 0,\n    iconSrc: ic.src,\n    iconLabel: ic.label\n  };\n  if(typeof renderSimple === 'function') renderSimple();\n  if(typeof renderS4 === 'function') renderS4();\n  ntRefreshIconLetterRow();\n}\n\n\nfunction ntRemoveLetterIcon(){\n  window.ntLetterIcon = {active:false, letter:'', line:0, charIdx:0, iconSrc:'', iconLabel:''};\n  ntRefreshIconLetterRow();\n  if(typeof renderSimple==='function') renderSimple();\n  if(typeof renderS4==='function') renderS4();\n  ntCloseIconLetter();\n}\n\nfunction ntRefreshIconLetterRow(){\n  ['ntILRow999','ntILRowS4'].forEach(function(id){\n    var row=document.getElementById(id);\n    if(!row) return;\n    var sub=row.querySelector('.ntILRowSub');\n    var badge=row.querySelector('.ntILRowBadge');\n    var title=row.querySelector('.ntILRowTitle');\n    if(window.ntLetterIcon&&window.ntLetterIcon.active){\n      if(title) title.textContent='Icon on a letter';\n      if(sub) sub.textContent='Tap to change icon';\n      if(badge){\n        badge.innerHTML=(window.ntLetterIcon.iconSrc?'<img src=\"'+window.ntLetterIcon.iconSrc+'\" style=\"width:20px;height:20px;object-fit:contain;border-radius:4px;\">':'')+\n          '<span style=\"font-size:10px;font-weight:700;color:#1a6644;\">Selected: '+(window.ntLetterIcon.iconLabel||'Icon')+'</span>';\n        badge.style.display='inline-flex';\n        badge.style.alignItems='center';\n        badge.style.gap='5px';\n        badge.style.padding='4px 10px 4px 6px';\n      }\n    } else {\n      if(title) title.textContent='Icon on a letter';\n      if(sub) sub.textContent='Crown, star, Om \\u2014 sits on top of any letter';\n      if(badge) badge.style.display='none';\n    }\n  });\n}\n\nfunction ntCloseIconLetter(){\n  var sheet=document.getElementById('ntIconLetterSheet');\n  var bd=document.getElementById('ntIconLetterBackdrop');\n  sheet.style.opacity='0';\n  sheet.style.transform='translate(-50%,-60%)';\n  setTimeout(function(){sheet.style.display='none'; bd.style.display='none';},260);\n}\n\n// \u2500\u2500 NAV HELPER TEXT \u2014 dismiss on first tap \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction ntDismissNavHelper(){\n  try{\n    if(localStorage.getItem('nt_nav_used'))return;\n    localStorage.setItem('nt_nav_used','1');\n    var el=document.getElementById('ntNavHelper');\n    if(el){el.style.transition='opacity .4s';el.style.opacity='0';setTimeout(function(){el.style.display='none';},400);}\n  }catch(e){}\n}\n// Hide helper immediately if already used\n(function(){\n  try{\n    if(localStorage.getItem('nt_nav_used')){\n      var el=document.getElementById('ntNavHelper');\n      if(el)el.style.display='none';\n    }\n  }catch(e){}\n\n// expose to window\nwindow._ntTutInit=_ntTutInit;\nwindow._ntTutToEmbed=_ntTutToEmbed;\nwindow.goToEditorScreen=goToEditorScreen;\nwindow.goToSearchScreen=goToSearchScreen;\nwindow.ntAddToCart=ntAddToCart;\nwindow.ntApplyBottomSection=ntApplyBottomSection;\nwindow.ntApplyConfigTexts=ntApplyConfigTexts;\nwindow.ntAutoSave=ntAutoSave;\nwindow.ntBuildReviewsCarousel=ntBuildReviewsCarousel;\nwindow.ntClearAllDesigns=ntClearAllDesigns;\nwindow.ntCloseIconLetter=ntCloseIconLetter;\nwindow.ntClosePolicy=ntClosePolicy;\nwindow.ntCloseSizeGuideModal=ntCloseSizeGuideModal;\nwindow.ntCloseSlider=ntCloseSlider;\nwindow.ntCollapseEditBar=ntCollapseEditBar;\nwindow.ntCommissionMantra=ntCommissionMantra;\nwindow.ntCommissionPersonal=ntCommissionPersonal;\nwindow.ntCommissionQuote=ntCommissionQuote;\nwindow.ntDeleteDesign=ntDeleteDesign;\nwindow.ntDesignIt=ntDesignIt;\nwindow.ntDismissNavHelper=ntDismissNavHelper;\nwindow.ntEditSaved=ntEditSaved;\nwindow.ntExpandEditBar=ntExpandEditBar;\nwindow.ntFillAndDesign=ntFillAndDesign;\nwindow.ntGetPrice=ntGetPrice;\nwindow.ntGetVariantId=ntGetVariantId;\nwindow.ntILShowFloat=ntILShowFloat;\nwindow.ntInitArtisan=ntInitArtisan;\nwindow.ntInitCarousel=ntInitCarousel;\nwindow.ntInitReviewScroll=ntInitReviewScroll;\nwindow.ntInitVideoReviews=ntInitVideoReviews;\nwindow.ntInjectCartProps=ntInjectCartProps;\nwindow.ntLoadDesigns=ntLoadDesigns;\nwindow.ntLoadReviews=ntLoadReviews;\nwindow.ntOpenBrandLogo=ntOpenBrandLogo;\nwindow.ntOpenCartFromBar=ntOpenCartFromBar;\nwindow.ntOpenIconLetter=ntOpenIconLetter;\nwindow.ntOpenPolicy=ntOpenPolicy;\nwindow.ntOpenSizeGuide=ntOpenSizeGuide;\nwindow.ntOpenSizeGuideModal=ntOpenSizeGuideModal;\nwindow.ntOpenSlider=ntOpenSlider;\nwindow.ntPlayVideoS4=ntPlayVideoS4;\nwindow.ntPlayVideoV=ntPlayVideoV;\nwindow.ntRefreshIconLetterRow=ntRefreshIconLetterRow;\nwindow.ntRefreshSavedDesigns=ntRefreshSavedDesigns;\nwindow.ntRemoveLetterIcon=ntRemoveLetterIcon;\nwindow.ntSGOpenLightbox=ntSGOpenLightbox;\nwindow.ntSaveDesign=ntSaveDesign;\nwindow.ntScalePiece=ntScalePiece;\nwindow.ntScrollToFind=ntScrollToFind;\nwindow.ntShowInputForm=ntShowInputForm;\nwindow.ntShowWelcomeBack=ntShowWelcomeBack;\nwindow.ntToggleFaq=ntToggleFaq;\nwindow.ntTutClose=ntTutClose;\nwindow.ntTutDismiss=ntTutDismiss;\nwindow.ntTutHideBubble=ntTutHideBubble;\nwindow.ntTutMinimise=ntTutMinimise;\nwindow.ntTutOpen=ntTutOpen;\nwindow.ntTutShowBubble=ntTutShowBubble;\nwindow.ntUpdateCartBtn=ntUpdateCartBtn;\nwindow.ntUpdateDesign=ntUpdateDesign;\nwindow.ntUpdatePersonalBtn=ntUpdatePersonalBtn;\nwindow.ntWelcomeEdit=ntWelcomeEdit;\nwindow.ntWelcomeStartFresh=ntWelcomeStartFresh;\n\n})();\n\n\n// \u2500\u2500 TUTORIAL VIDEO BUBBLE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar _ntTutDismissed=false,_ntTutMinimised=false,_ntTutEmbed='';\nfunction _ntTutToEmbed(u){\n  if(!u)return'';\n  if(u.indexOf('watch?v=')>=0)return'https://www.youtube.com/embed/'+u.split('watch?v=')[1].split('&')[0];\n  if(u.indexOf('youtu.be/')>=0)return'https://www.youtube.com/embed/'+u.split('youtu.be/')[1].split('?')[0];\n  if(u.indexOf('shorts/')>=0)return'https://www.youtube.com/embed/'+u.split('shorts/')[1].split('?')[0];\n  return u;\n}\nfunction _ntTutInit(){\n  var url=(window.NUKKAD_CONFIG&&window.NUKKAD_CONFIG.tutorialVideoUrl)||'';\n  if(!url)return;\n  _ntTutEmbed=_ntTutToEmbed(url);\n  var thumb=(window.NUKKAD_CONFIG&&window.NUKKAD_CONFIG.tutorialVideoThumb)||('https://img.youtube.com/vi/'+(_ntTutEmbed.match(/embed\\/([^?&/]+)/)||['',''])[1]+'/hqdefault.jpg');\n  var label=(window.NUKKAD_CONFIG&&window.NUKKAD_CONFIG.tutorialVideoLabel)||'How to order';\n  // Move elements to body to escape any transform context\n  var card=document.getElementById('ntTutCard');\n  var ov=document.getElementById('ntTutOverlay');\n  var pill=document.getElementById('ntTutBubble');\n  if(card&&card.parentNode!==document.body)document.body.appendChild(card);\n  if(ov&&ov.parentNode!==document.body)document.body.appendChild(ov);\n  if(pill&&pill.parentNode!==document.body)document.body.appendChild(pill);\n  var ct=document.getElementById('ntTutCardThumb');if(ct)ct.src=thumb;\n  var pt=document.getElementById('ntTutThumb');if(pt)pt.src=thumb;\n  var cl=document.getElementById('ntTutCardLbl');if(cl)cl.textContent=label;\n  var pl=document.getElementById('ntTutLbl');if(pl)pl.textContent=label;\n  var ol=document.getElementById('ntTutOvLbl');if(ol)ol.textContent=label;\n}\nfunction ntTutShowBubble(){\n  var url=(window.NUKKAD_CONFIG&&window.NUKKAD_CONFIG.tutorialVideoUrl)||'';\n  if(!url||_ntTutDismissed)return;\n  if(!_ntTutEmbed)_ntTutInit();\n  if(!_ntTutEmbed)return;\n  var card=document.getElementById('ntTutCard');\n  var pill=document.getElementById('ntTutBubble');\n  if(_ntTutMinimised){if(pill)pill.style.display='flex';if(card)card.style.display='none';}\n  else{if(card)card.style.display='block';if(pill)pill.style.display='none';}\n}\nfunction ntTutHideBubble(){\n  var c=document.getElementById('ntTutCard');if(c)c.style.display='none';\n  var b=document.getElementById('ntTutBubble');if(b)b.style.display='none';\n}\nfunction ntTutOpen(){\n  if(!_ntTutEmbed)_ntTutInit();\n  var ov=document.getElementById('ntTutOverlay');\n  var fr=document.getElementById('ntTutFrame');\n  if(!ov||!fr||!_ntTutEmbed)return;\n  fr.innerHTML='<iframe src=\"'+_ntTutEmbed+'?autoplay=1&rel=0\" frameborder=\"0\" allowfullscreen allow=\"autoplay; encrypted-media\"></iframe>';\n  ov.classList.add('open');\n}\nfunction ntTutClose(){\n  var ov=document.getElementById('ntTutOverlay');\n  var fr=document.getElementById('ntTutFrame');\n  if(fr)fr.innerHTML='';\n  if(ov)ov.classList.remove('open');\n}\nfunction ntTutMinimise(){\n  _ntTutMinimised=true;\n  var c=document.getElementById('ntTutCard');if(c)c.style.display='none';\n  var b=document.getElementById('ntTutBubble');if(b)b.style.display='flex';\n}\nfunction ntTutDismiss(){\n  _ntTutDismissed=true;\n  ntTutHideBubble();\n}\ndocument.addEventListener('click',function(e){\n  var ov=document.getElementById('ntTutOverlay');\n  if(ov&&ov.classList.contains('open')&&e.target===ov)ntTutClose();\n});\nsetTimeout(_ntTutInit,500);\n\n// \u2500\u2500 FLOATING PRICE BAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(function(){\n  var _observer=null;\n\n  window.ntToggleNote=function(){\n    var box=document.getElementById('ntNoteBox');\n    var btn=document.getElementById('ntNoteToggle');\n    if(!box||!btn)return;\n    var open=box.style.display==='none';\n    box.style.display=open?'block':'none';\n    btn.textContent=open?'\u2715 Remove note':'+ Add a note for the artisan';\n    btn.style.color=open?'var(--brown)':'var(--muted)';\n    if(open)setTimeout(function(){var t=document.getElementById('ntNoteText');if(t)t.focus();},50);\n  };\n\n  window.ntFloatBarUpdate=function(totalPrice,breakdown){\n    var bar=document.getElementById('ntFloatBar');\n    if(!bar)return;\n    // Move to body once so position:fixed works\n    if(bar.parentNode!==document.body){\n      document.body.appendChild(bar);\n      // Add resize listener once\n      if(!bar._resizeBound){\n        bar._resizeBound=true;\n        function _ntSyncBar(){\n          var _sl=document.getElementById('ntSl');\n          var _b=document.getElementById('ntFloatBar');\n          if(_sl&&_b){\n            var _sr=_sl.getBoundingClientRect();\n            // Only constrain on desktop (slider not full width)\n            if(_sr.left>10){\n              _b.style.left=_sr.left+'px';\n              _b.style.right=(window.innerWidth-_sr.right)+'px';\n              _b.style.width=_sr.width+'px';\n            } else {\n              // Mobile: full width\n              _b.style.left='0';\n              _b.style.right='0';\n              _b.style.width='100%';\n            }\n            _b.style.maxWidth='none';\n          }\n        }\n        window.addEventListener('resize',_ntSyncBar);\n        window._ntSyncBar=_ntSyncBar;\n      }\n    }\n    // Sync position every time bar updates\n    if(window._ntSyncBar)window._ntSyncBar();\n    var tot=document.getElementById('ntFloatBarTotal');\n    var bd=document.getElementById('ntFloatBarBreakdown');\n    if(tot)tot.textContent='\u20B9'+totalPrice.toLocaleString('en-IN');\n    if(bd)bd.innerHTML=breakdown;\n    // Show/hide based on whether s4Btn is visible\n    var s4btn=document.getElementById('s4Btn');\n    if(s4btn){\n      var rect=s4btn.getBoundingClientRect();\n      var inView=rect.top>=0&&rect.bottom<=(window.innerHeight||document.documentElement.clientHeight);\n      bar.style.display=inView?'none':'flex';\n    } else {\n      bar.style.display='flex';\n    }\n    // Setup scroll listener once\n    if(!bar._scrollBound){\n      bar._scrollBound=true;\n      // Find the actual scroll container (.nt-editor-body)\n      var scroller=document.querySelector('.nt-editor-body');\n      function _ntCheckFloatBar(){\n        var s4b=document.getElementById('s4Btn');\n        var b=document.getElementById('ntFloatBar');\n        if(!s4b||!b)return;\n        var r=s4b.getBoundingClientRect();\n        var vh=window.innerHeight||document.documentElement.clientHeight;\n        // Only show float bar when s4Btn is above viewport (user hasn't scrolled to it yet)\n        // Hide when s4Btn is visible OR when user has scrolled past it (below viewport)\n        var aboveViewport=r.bottom<0;\n        var inView=r.top>=0&&r.bottom<=vh;\n        b.style.display=(aboveViewport||inView)?'none':'flex';\n      }\n      if(scroller){\n        scroller.addEventListener('scroll',_ntCheckFloatBar,{passive:true});\n      }\n    }\n  };\n\n  window.ntFloatBarHide=function(){\n    var bar=document.getElementById('ntFloatBar');\n    if(bar)bar.style.display='none';\n    if(_observer){_observer.disconnect();_observer=null;}\n    var b=document.getElementById('ntFloatBar');\n    if(b)b._observing=false;\n  };\n\n// expose to window\nwindow._ntTutInit=_ntTutInit;\nwindow._ntTutToEmbed=_ntTutToEmbed;\nwindow.goToEditorScreen=goToEditorScreen;\nwindow.goToSearchScreen=goToSearchScreen;\nwindow.ntAddToCart=ntAddToCart;\nwindow.ntApplyBottomSection=ntApplyBottomSection;\nwindow.ntApplyConfigTexts=ntApplyConfigTexts;\nwindow.ntAutoSave=ntAutoSave;\nwindow.ntBuildReviewsCarousel=ntBuildReviewsCarousel;\nwindow.ntClearAllDesigns=ntClearAllDesigns;\nwindow.ntCloseIconLetter=ntCloseIconLetter;\nwindow.ntClosePolicy=ntClosePolicy;\nwindow.ntCloseSizeGuideModal=ntCloseSizeGuideModal;\nwindow.ntCloseSlider=ntCloseSlider;\nwindow.ntCollapseEditBar=ntCollapseEditBar;\nwindow.ntCommissionMantra=ntCommissionMantra;\nwindow.ntCommissionPersonal=ntCommissionPersonal;\nwindow.ntCommissionQuote=ntCommissionQuote;\nwindow.ntDeleteDesign=ntDeleteDesign;\nwindow.ntDesignIt=ntDesignIt;\nwindow.ntDismissNavHelper=ntDismissNavHelper;\nwindow.ntEditSaved=ntEditSaved;\nwindow.ntExpandEditBar=ntExpandEditBar;\nwindow.ntFillAndDesign=ntFillAndDesign;\nwindow.ntGetPrice=ntGetPrice;\nwindow.ntGetVariantId=ntGetVariantId;\nwindow.ntILShowFloat=ntILShowFloat;\nwindow.ntInitArtisan=ntInitArtisan;\nwindow.ntInitCarousel=ntInitCarousel;\nwindow.ntInitReviewScroll=ntInitReviewScroll;\nwindow.ntInitVideoReviews=ntInitVideoReviews;\nwindow.ntInjectCartProps=ntInjectCartProps;\nwindow.ntLoadDesigns=ntLoadDesigns;\nwindow.ntLoadReviews=ntLoadReviews;\nwindow.ntOpenBrandLogo=ntOpenBrandLogo;\nwindow.ntOpenCartFromBar=ntOpenCartFromBar;\nwindow.ntOpenIconLetter=ntOpenIconLetter;\nwindow.ntOpenPolicy=ntOpenPolicy;\nwindow.ntOpenSizeGuide=ntOpenSizeGuide;\nwindow.ntOpenSizeGuideModal=ntOpenSizeGuideModal;\nwindow.ntOpenSlider=ntOpenSlider;\nwindow.ntPlayVideoS4=ntPlayVideoS4;\nwindow.ntPlayVideoV=ntPlayVideoV;\nwindow.ntRefreshIconLetterRow=ntRefreshIconLetterRow;\nwindow.ntRefreshSavedDesigns=ntRefreshSavedDesigns;\nwindow.ntRemoveLetterIcon=ntRemoveLetterIcon;\nwindow.ntSGOpenLightbox=ntSGOpenLightbox;\nwindow.ntSaveDesign=ntSaveDesign;\nwindow.ntScalePiece=ntScalePiece;\nwindow.ntScrollToFind=ntScrollToFind;\nwindow.ntShowInputForm=ntShowInputForm;\nwindow.ntShowWelcomeBack=ntShowWelcomeBack;\nwindow.ntToggleFaq=ntToggleFaq;\nwindow.ntTutClose=ntTutClose;\nwindow.ntTutDismiss=ntTutDismiss;\nwindow.ntTutHideBubble=ntTutHideBubble;\nwindow.ntTutMinimise=ntTutMinimise;\nwindow.ntTutOpen=ntTutOpen;\nwindow.ntTutShowBubble=ntTutShowBubble;\nwindow.ntUpdateCartBtn=ntUpdateCartBtn;\nwindow.ntUpdateDesign=ntUpdateDesign;\nwindow.ntUpdatePersonalBtn=ntUpdatePersonalBtn;\nwindow.ntWelcomeEdit=ntWelcomeEdit;\nwindow.ntWelcomeStartFresh=ntWelcomeStartFresh;\n\n})();\n\nfunction ntApplyConfigTexts(){\n  var t=(window.NUKKAD_CONFIG&&NUKKAD_CONFIG.txt)||{};\n  function set(id,val){var el=document.getElementById(id);if(el&&val)el.textContent=val;}\n  function setHTML(id,val){var el=document.getElementById(id);if(el&&val)el.innerHTML=val;}\n\n  // AI label \u2014 keep span for GO BIGGER styling\n  // Note: aiLabelTextS4 is managed by updateSizeDisplayS4() in the chip editor\n  // \u2014 it sets the correct inch value. Do not overwrite it here.\n\n  set('ntSgRowTitle',  t.sizeGuideTitle);\n  set('ntSgRowSub',    t.sizeGuideSub);\n  set('ntSgRowView',   t.sizeGuideView);\n  set('ntDesignerTitle', t.designerTitle);\n  set('ntDesignerSub',   t.designerSub);\n  set('ntDesignerPrice', t.designerPrice);\n  set('ntCommSub',     t.commSub);\n  set('ntILRowTitle',  t.iconLetterTitle);\n  set('ntSplitTipSub', t.splitTipSub);\n\n  // Designer call visibility \u2014 false = hide, anything else = show\n  var showDc=(window.NUKKAD_CONFIG&&NUKKAD_CONFIG.showDesignerCall===false)?false:true;\n  ['mantraDesignerToggle','renderDesignerToggle','designerToggle'].forEach(function(id){\n    var el=document.getElementById(id);if(el)el.style.display=showDc?'':'none';\n  });\n  // Custom cart message\n  var msgEnabled=window.NUKKAD_CONFIG&&NUKKAD_CONFIG.cartMsgEnabled;\n  var msgText=window.NUKKAD_CONFIG&&NUKKAD_CONFIG.cartMsg;\n  ['ntCartMsg999','ntCartMsgS4','ntCartMsgMantra'].forEach(function(id){\n    var el=document.getElementById(id);\n    if(!el)return;\n    if(msgEnabled&&msgText){el.innerHTML=msgText;el.style.display='block';}\n    else{el.style.display='none';}\n  });\n  // Commission button label \u2014 updates both quote + personal buttons\n  if(t.commLabel){\n    var _s4=document.getElementById('s4Btn');\n    var _cb=document.getElementById('commBtn');\n    var _mb=document.getElementById('mantraCommBtn');\n    // Preserve the price suffix if present\n    function applyLabel(btn, label){\n      if(!btn) return;\n      var cur=btn.textContent;\n      var priceMatch=cur.match(/(\u00B7\\s*\u20B9[\\d,]+)/);\n      btn.textContent=priceMatch?label+' '+priceMatch[1]:label;\n    }\n    applyLabel(_s4, t.commLabel);\n    applyLabel(_cb, t.commLabel);\n    if(_mb) _mb.textContent=t.commLabel;\n  }\n  // Commission trust line \u2014 keep bold on first part\n  if(t.commTrust){\n    var parts=t.commTrust.split('\u00B7');\n    var el=document.getElementById('ntCommTrust');\n    if(el) el.innerHTML='<b>'+parts[0].trim()+'</b>'+(parts.length>1?' \u00B7 '+parts.slice(1).join('\u00B7'):'');\n  }\n}\n// Run after config is applied\nsetTimeout(ntApplyConfigTexts, 400);\n\n\n\n// Strip emoji live as user types in main input\n(function(){\n  var inp=document.getElementById('ntSlInp');\n  if(!inp)return;\n  inp.addEventListener('input',function(){\n    var pos=this.selectionStart;\n    var cleaned=typeof stripEmoji==='function'?stripEmoji(this.value):this.value;\n    if(cleaned!==this.value){this.value=cleaned;try{this.setSelectionRange(Math.min(pos,cleaned.length),Math.min(pos,cleaned.length));}catch(e){}}\n  });\n\n// expose to window\nwindow._ntTutInit=_ntTutInit;\nwindow._ntTutToEmbed=_ntTutToEmbed;\nwindow.goToEditorScreen=goToEditorScreen;\nwindow.goToSearchScreen=goToSearchScreen;\nwindow.ntAddToCart=ntAddToCart;\nwindow.ntApplyBottomSection=ntApplyBottomSection;\nwindow.ntApplyConfigTexts=ntApplyConfigTexts;\nwindow.ntAutoSave=ntAutoSave;\nwindow.ntBuildReviewsCarousel=ntBuildReviewsCarousel;\nwindow.ntClearAllDesigns=ntClearAllDesigns;\nwindow.ntCloseIconLetter=ntCloseIconLetter;\nwindow.ntClosePolicy=ntClosePolicy;\nwindow.ntCloseSizeGuideModal=ntCloseSizeGuideModal;\nwindow.ntCloseSlider=ntCloseSlider;\nwindow.ntCollapseEditBar=ntCollapseEditBar;\nwindow.ntCommissionMantra=ntCommissionMantra;\nwindow.ntCommissionPersonal=ntCommissionPersonal;\nwindow.ntCommissionQuote=ntCommissionQuote;\nwindow.ntDeleteDesign=ntDeleteDesign;\nwindow.ntDesignIt=ntDesignIt;\nwindow.ntDismissNavHelper=ntDismissNavHelper;\nwindow.ntEditSaved=ntEditSaved;\nwindow.ntExpandEditBar=ntExpandEditBar;\nwindow.ntFillAndDesign=ntFillAndDesign;\nwindow.ntGetPrice=ntGetPrice;\nwindow.ntGetVariantId=ntGetVariantId;\nwindow.ntILShowFloat=ntILShowFloat;\nwindow.ntInitArtisan=ntInitArtisan;\nwindow.ntInitCarousel=ntInitCarousel;\nwindow.ntInitReviewScroll=ntInitReviewScroll;\nwindow.ntInitVideoReviews=ntInitVideoReviews;\nwindow.ntInjectCartProps=ntInjectCartProps;\nwindow.ntLoadDesigns=ntLoadDesigns;\nwindow.ntLoadReviews=ntLoadReviews;\nwindow.ntOpenBrandLogo=ntOpenBrandLogo;\nwindow.ntOpenCartFromBar=ntOpenCartFromBar;\nwindow.ntOpenIconLetter=ntOpenIconLetter;\nwindow.ntOpenPolicy=ntOpenPolicy;\nwindow.ntOpenSizeGuide=ntOpenSizeGuide;\nwindow.ntOpenSizeGuideModal=ntOpenSizeGuideModal;\nwindow.ntOpenSlider=ntOpenSlider;\nwindow.ntPlayVideoS4=ntPlayVideoS4;\nwindow.ntPlayVideoV=ntPlayVideoV;\nwindow.ntRefreshIconLetterRow=ntRefreshIconLetterRow;\nwindow.ntRefreshSavedDesigns=ntRefreshSavedDesigns;\nwindow.ntRemoveLetterIcon=ntRemoveLetterIcon;\nwindow.ntSGOpenLightbox=ntSGOpenLightbox;\nwindow.ntSaveDesign=ntSaveDesign;\nwindow.ntScalePiece=ntScalePiece;\nwindow.ntScrollToFind=ntScrollToFind;\nwindow.ntShowInputForm=ntShowInputForm;\nwindow.ntShowWelcomeBack=ntShowWelcomeBack;\nwindow.ntToggleFaq=ntToggleFaq;\nwindow.ntTutClose=ntTutClose;\nwindow.ntTutDismiss=ntTutDismiss;\nwindow.ntTutHideBubble=ntTutHideBubble;\nwindow.ntTutMinimise=ntTutMinimise;\nwindow.ntTutOpen=ntTutOpen;\nwindow.ntTutShowBubble=ntTutShowBubble;\nwindow.ntUpdateCartBtn=ntUpdateCartBtn;\nwindow.ntUpdateDesign=ntUpdateDesign;\nwindow.ntUpdatePersonalBtn=ntUpdatePersonalBtn;\nwindow.ntWelcomeEdit=ntWelcomeEdit;\nwindow.ntWelcomeStartFresh=ntWelcomeStartFresh;\n\n})();\n\n(function(){var sy=0,sw=false;var h=document.querySelector('.nt-sl-handle');if(h)h.addEventListener('touchstart',function(e){sy=e.touches[0].clientY;sw=true;},{passive:true});document.addEventListener('touchend',function(e){if(sw&&e.changedTouches&&e.changedTouches[0].clientY-sy>80)ntCloseSlider();sw=false;},{passive:true});})();\n// \u2500\u2500 DELIVERY + FAQ FROM CONFIG \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction ntApplyBottomSection(){\n  var cfg=window.NUKKAD_CONFIG||{};\n  // Policies from customiser\n  var _pm={ntPolicyDesign:'policyDesign',ntPolicyCancel:'policyCancel',ntPolicyReturns:'policyReturns',ntPolicyDelivery:'policyDelivery',ntPolicySupport:'policySupport'};\n  Object.keys(_pm).forEach(function(elId){var el=document.getElementById(elId);var val=cfg[_pm[elId]];if(el&&val)el.innerHTML=val;});\n  var dd=document.getElementById('ntDeliveryDays');\n  if(dd&&cfg.deliveryDays)dd.textContent=cfg.deliveryDays;\n  var ds=document.getElementById('ntDeliverySub');\n  if(ds&&cfg.deliverySub)ds.textContent=cfg.deliverySub;\n  var p1t=document.getElementById('ntPromise1Title'),p1s=document.getElementById('ntPromise1Sub');\n  var p2t=document.getElementById('ntPromise2Title'),p2s=document.getElementById('ntPromise2Sub');\n  if(p1t&&cfg.promise1Title)p1t.textContent=cfg.promise1Title;\n  if(p1s&&cfg.promise1Sub)p1s.textContent=cfg.promise1Sub;\n  if(p2t&&cfg.promise2Title)p2t.textContent=cfg.promise2Title;\n  if(p2s&&cfg.promise2Sub)p2s.textContent=cfg.promise2Sub;\n  var faqWrap=document.getElementById('ntFaqWrap');\n  var faqItems=document.getElementById('ntFaqItems');\n  var faqs=(cfg.faq||[]).filter(function(f){return f&&f.q&&f.a;});\n  if(faqWrap&&faqItems&&faqs.length){\n    faqWrap.style.display='block';\n    faqItems.innerHTML=faqs.map(function(f,i){\n      return '<div style=\"background:#fff;border:1.5px solid #e8d5c0;border-radius:12px;margin-bottom:7px;overflow:hidden;\">'\n        +'<div onclick=\"ntToggleFaq('+i+')\" style=\"display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;font-family:\\'Poppins\\',sans-serif;font-weight:700;font-size:11px;color:#3d2b1a;gap:8px;\">'\n        +f.q+'<span id=\"ntFaqIcon'+i+'\" style=\"font-size:16px;color:#c47a45;transition:transform .25s;flex-shrink:0;font-weight:300;line-height:1;\">+</span></div>'\n        +'<div id=\"ntFaqAns'+i+'\" style=\"max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;font-size:10px;color:#8c7b6e;line-height:1.65;padding:0 14px;\">'+f.a+'</div>'\n        +'</div>';\n    }).join('');\n  }\n}\nwindow._ntFaqOpen=-1;\nfunction ntToggleFaq(i){\n  var prev=window._ntFaqOpen;\n  if(prev>=0&&prev!==i){\n    var pa=document.getElementById('ntFaqAns'+prev),pi=document.getElementById('ntFaqIcon'+prev);\n    if(pa){pa.style.maxHeight='0';pa.style.padding='0 14px';}\n    if(pi)pi.style.transform='';\n  }\n  var a=document.getElementById('ntFaqAns'+i),ic=document.getElementById('ntFaqIcon'+i);\n  var isOpen=(prev===i);\n  if(isOpen){if(a){a.style.maxHeight='0';a.style.padding='0 14px';}if(ic)ic.style.transform='';window._ntFaqOpen=-1;}\n  else{if(a){a.style.maxHeight='200px';a.style.padding='0 14px 13px';}if(ic)ic.style.transform='rotate(45deg)';window._ntFaqOpen=i;}\n}\nsetTimeout(ntApplyBottomSection,650);\n\n\n// expose to window\nwindow._ntTutInit=_ntTutInit;\nwindow._ntTutToEmbed=_ntTutToEmbed;\nwindow.goToEditorScreen=goToEditorScreen;\nwindow.goToSearchScreen=goToSearchScreen;\nwindow.ntAddToCart=ntAddToCart;\nwindow.ntApplyBottomSection=ntApplyBottomSection;\nwindow.ntApplyConfigTexts=ntApplyConfigTexts;\nwindow.ntAutoSave=ntAutoSave;\nwindow.ntBuildReviewsCarousel=ntBuildReviewsCarousel;\nwindow.ntClearAllDesigns=ntClearAllDesigns;\nwindow.ntCloseIconLetter=ntCloseIconLetter;\nwindow.ntClosePolicy=ntClosePolicy;\nwindow.ntCloseSizeGuideModal=ntCloseSizeGuideModal;\nwindow.ntCloseSlider=ntCloseSlider;\nwindow.ntCollapseEditBar=ntCollapseEditBar;\nwindow.ntCommissionMantra=ntCommissionMantra;\nwindow.ntCommissionPersonal=ntCommissionPersonal;\nwindow.ntCommissionQuote=ntCommissionQuote;\nwindow.ntDeleteDesign=ntDeleteDesign;\nwindow.ntDesignIt=ntDesignIt;\nwindow.ntDismissNavHelper=ntDismissNavHelper;\nwindow.ntEditSaved=ntEditSaved;\nwindow.ntExpandEditBar=ntExpandEditBar;\nwindow.ntFillAndDesign=ntFillAndDesign;\nwindow.ntGetPrice=ntGetPrice;\nwindow.ntGetVariantId=ntGetVariantId;\nwindow.ntILShowFloat=ntILShowFloat;\nwindow.ntInitArtisan=ntInitArtisan;\nwindow.ntInitCarousel=ntInitCarousel;\nwindow.ntInitReviewScroll=ntInitReviewScroll;\nwindow.ntInitVideoReviews=ntInitVideoReviews;\nwindow.ntInjectCartProps=ntInjectCartProps;\nwindow.ntLoadDesigns=ntLoadDesigns;\nwindow.ntLoadReviews=ntLoadReviews;\nwindow.ntOpenBrandLogo=ntOpenBrandLogo;\nwindow.ntOpenCartFromBar=ntOpenCartFromBar;\nwindow.ntOpenIconLetter=ntOpenIconLetter;\nwindow.ntOpenPolicy=ntOpenPolicy;\nwindow.ntOpenSizeGuide=ntOpenSizeGuide;\nwindow.ntOpenSizeGuideModal=ntOpenSizeGuideModal;\nwindow.ntOpenSlider=ntOpenSlider;\nwindow.ntPlayVideoS4=ntPlayVideoS4;\nwindow.ntPlayVideoV=ntPlayVideoV;\nwindow.ntRefreshIconLetterRow=ntRefreshIconLetterRow;\nwindow.ntRefreshSavedDesigns=ntRefreshSavedDesigns;\nwindow.ntRemoveLetterIcon=ntRemoveLetterIcon;\nwindow.ntSGOpenLightbox=ntSGOpenLightbox;\nwindow.ntSaveDesign=ntSaveDesign;\nwindow.ntScalePiece=ntScalePiece;\nwindow.ntScrollToFind=ntScrollToFind;\nwindow.ntShowInputForm=ntShowInputForm;\nwindow.ntShowWelcomeBack=ntShowWelcomeBack;\nwindow.ntToggleFaq=ntToggleFaq;\nwindow.ntTutClose=ntTutClose;\nwindow.ntTutDismiss=ntTutDismiss;\nwindow.ntTutHideBubble=ntTutHideBubble;\nwindow.ntTutMinimise=ntTutMinimise;\nwindow.ntTutOpen=ntTutOpen;\nwindow.ntTutShowBubble=ntTutShowBubble;\nwindow.ntUpdateCartBtn=ntUpdateCartBtn;\nwindow.ntUpdateDesign=ntUpdateDesign;\nwindow.ntUpdatePersonalBtn=ntUpdatePersonalBtn;\nwindow.ntWelcomeEdit=ntWelcomeEdit;\nwindow.ntWelcomeStartFresh=ntWelcomeStartFresh;\n\n})();"],
  "mappings": "CAAC,UAAU,CAGX,SAAS,YAAY,IAAI,CACvB,IAAI,IAAI,CAAC,UAAU,QAAQ,UAAU,QAAQ,UAAU,MAAM,UAAU,MACrE,UAAU,MAAM,UAAU,gBAAgB,UAAU,cACpD,UAAU,WAAW,UAAU,SAAS,UAAU,aAClD,UAAU,SAAS,UAAU,SAAS,UAAU,OAAO,UAAU,UAAU,EAC7E,GAAG,CAAC,IAAI,MAAM,GACd,IAAI,EAAE,IAAI,YAAY,EAAE,KAAK,EAC7B,GAAG,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,EAGtB,QADI,KAAK,OAAO,aAAc,WAAW,YAAY,EAAE,CAAC,EAChD,EAAE,EAAE,EAAE,KAAK,OAAO,IAAK,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,YAAY,IAAI,EAAE,OAAO,KAAK,CAAC,EAAE,GAAG,GAC7F,MAAO,EACT,CAIA,MAAM,UAAmB,uEACnB,iBAAmB,4EACnB,gBAAmB,6EACnB,aAAmB,0EACnB,kBAAmB,6EACnB,cAAgB,OAAO,kBAAkB,GACzC,WAAmB,4BACnB,aAAmB,4BAGnB,aAAe,CACnB,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KACvC,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KACvC,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC3C,OAAO,KAAK,OAAO,KAAK,OAAO,MAAM,OAAO,MAC5C,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAC9C,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,KAChD,EACA,SAAS,WAAW,KAAK,UAAU,CACjC,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAC1E,OAAO,aAAa,GAAG,GAAG,IAC5B,CACA,SAAS,eAAe,KAAK,UAAU,CACrC,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAC1E,OAAQ,OAAO,gBAAgB,CAAC,GAAG,GAAG,GAAG,IAC3C,CAGA,OAAO,gBAAkB,OAAO,iBAAmB,CAAC,EAKpD,OAAO,cAAgB,OAAO,eAAiB,CAC7C,eAAgB,cAChB,cAAgB,iCAChB,cAAgB,gEAChB,UAAgB,wCAChB,UAAgB,2DAChB,WAAgB,kCAClB,EACA,IAAI,cAAgB,OAAO,eAG1B,UAAU,CACT,SAAS,iBAAiB,CACxB,IAAI,IAAM,OAAO,eAAiB,CAAC,EAC/B,EAAI,SAAS,eAAe,aAAa,EAAM,GAAK,IAAI,gBAAe,EAAE,YAAc,IAAI,eAC/F,IAAI,EAAI,SAAS,eAAe,aAAa,EAAM,GAAK,IAAI,gBAAe,EAAE,YAAc,IAAI,eAE/F,IAAI,IAAM,SAAS,eAAe,SAAS,EAAM,KAAO,IAAI,mBAAkB,IAAI,YAAc,IAAI,kBACpG,IAAI,GAAK,SAAS,eAAe,eAAe,EAChD,GAAG,KAAO,IAAI,WAAa,IAAI,YAAY,CACzC,IAAI,KAAO,IAAI,WAAa,2DACxB,MAAQ,IAAI,YAAc,mCAC9B,GAAG,UAAY,KAAO,4DAA2D,MAAQ,SAC3F,CACF,CACG,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoB,eAAe,EAC9F,gBAAgB,EAErB,WAAW,gBAAiB,GAAG,EAGjC,OAAO,WAAW,WAClB,OAAO,cAAc,cACrB,OAAO,iBAAiB,iBACxB,OAAO,iBAAiB,iBACxB,OAAO,YAAY,YACnB,OAAO,qBAAqB,qBAC5B,OAAO,mBAAmB,mBAC1B,OAAO,WAAW,WAClB,OAAO,uBAAuB,uBAC9B,OAAO,kBAAkB,kBACzB,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,sBAAsB,sBAC7B,OAAO,cAAc,cACrB,OAAO,kBAAkB,kBACzB,OAAO,mBAAmB,mBAC1B,OAAO,qBAAqB,qBAC5B,OAAO,kBAAkB,kBACzB,OAAO,eAAe,eACtB,OAAO,WAAW,WAClB,OAAO,mBAAmB,mBAC1B,OAAO,YAAY,YACnB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,WAAW,WAClB,OAAO,eAAe,eACtB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,eAAe,eACtB,OAAO,mBAAmB,mBAC1B,OAAO,mBAAmB,mBAC1B,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,qBAAqB,qBAC5B,OAAO,aAAa,aACpB,OAAO,cAAc,cACrB,OAAO,aAAa,aACpB,OAAO,uBAAuB,uBAC9B,OAAO,sBAAsB,sBAC7B,OAAO,mBAAmB,mBAC1B,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,aAAa,aACpB,OAAO,eAAe,eACtB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,YAAY,YACnB,OAAO,WAAW,WAClB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,cAAc,cACrB,OAAO,UAAU,UACjB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,eAAe,eACtB,OAAO,oBAAoB,oBAC3B,OAAO,cAAc,cACrB,OAAO,oBAAoB,mBAE3B,GAAG,EAGH,SAAS,aAAa,IAAI,CACxB,WAAW,mBAAmB,EAAE,EAChC,WAAW,mBAAmB,GAAG,EAEjC,WAAW,UAAU,CACnB,GAAG,OAAO,eAAgB,WAAW,GAAG,CAAC,cAAc,CAAE,MAAS,CAAC,KAC/D,CACF,IAAI,MAAM,SAAS,cAAc,uBAAuB,EACpD,QAAQ,SAAS,eAAe,oBAAoB,EACrD,OAAO,SAAS,MAAM,UAAU,KAAK,IAAE,QAAQ,UAAU,MAAM,UACpE,CACF,EAAE,GAAG,EAEL,WAAW,UAAU,CAErB,EAAE,GAAG,EAEL,IAAI,YAAY,OAAO,eAAe,OAAO,cAAc,oBACvD,aAAa,eAAe,QAAQ,iBAAiB,EACrD,aAAa,eAAe,QAAQ,iBAAiB,EAEzD,GAAG,aAAa,MAAM,aAAa,CAAC,cAAc,CAAC,aACjD,GAAG,CACD,IAAI,aAAc,IAAI,IAAI,YAAY,OAAO,SAAS,IAAI,EAAG,SAC7D,GAAG,OAAO,SAAS,WAAW,aAAa,CAAC,OAAO,SAAS,KAAK,YAAY,MAAO,CACtF,MAAS,CAAC,OAAO,SAAS,KAAK,YAAY,MAAO,CAEpD,OAAO,eAAiB,OAAO,QAC/B,SAAS,eAAe,MAAM,EAAE,UAAU,IAAI,MAAM,EACpD,IAAI,GAAG,SAAS,eAAe,MAAM,EAAE,GAAG,UAAU,IAAI,MAAM,EAAE,GAAG,UAAU,OAAO,SAAS,EAC7F,SAAS,KAAK,UAAU,IAAI,gBAAgB,EAC5C,IAAI,IAAI,SAAS,eAAe,UAAU,EAAK,MAAI,IAAI,MAAM,QAAQ,QACrE,IAAI,KAAK,SAAS,eAAe,aAAa,EAAK,OAAK,KAAK,MAAM,QAAQ,QAC3E,IAAI,KAAK,SAAS,eAAe,WAAW,EAAK,OAAK,KAAK,MAAM,QAAQ,QAGzE,IAAI,YAAY,eAAe,QAAQ,iBAAiB,EACpD,SAAS,cAAc,EAAE,OAAO,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAO,CAAC,EAC5E,aAAa,eAAe,QAAQ,iBAAiB,EACzD,eAAe,WAAW,iBAAiB,EAG3C,IAAI,YAAY,eAAe,QAAQ,mBAAmB,EAC1D,eAAe,WAAW,mBAAmB,EAC7C,IAAI,SAAS,SAAS,eAAe,cAAc,EACnD,GAAG,YAAY,CACb,GAAG,CAAC,SAAS,CACX,SAAS,SAAS,cAAc,KAAK,EACrC,SAAS,GAAG,eACZ,SAAS,MAAM,QAAQ,4UAKvB,SAAS,UAAU,iCACnB,SAAS,QAAQ,UAAU,CACzB,cAAc,EACd,WAAW,UAAU,CAChB,OAAO,OAAO,UAAW,WAAY,OAAO,SAAS,EAChD,OAAO,OAAO,UAAW,YAAY,OAAO,SAAS,CAC/D,EAAE,GAAG,CACP,EAEA,IAAI,UAAU,SAAS,cAAc,uBAAuB,EAC5D,GAAG,UAAW,UAAU,aAAa,SAAS,UAAU,UAAU,MAC9D,CAAC,IAAI,WAAW,SAAS,eAAe,WAAW,EAAK,YAAW,WAAW,aAAa,SAAS,WAAW,UAAU,CAAE,CACjI,CACA,SAAS,MAAM,QAAQ,MACzB,MAAU,WACR,SAAS,MAAM,QAAQ,QAGzB,GAAG,CAAC,aAAa,CAAC,cAAc,SAAS,OAAO,CAE9C,kBAAkB,QAAQ,EAC1B,MACF,CAGA,GAAG,YAAY,CACb,eAAe,WAAW,iBAAiB,EAE3C,IAAI,IAAI,SAAS,eAAe,WAAW,EACxC,MAAK,IAAI,UAAU,IAAI,WAAW,EAAE,IAAI,MAAM,YAAY,UAAU,OAAO,WAAW,GACzF,IAAI,IAAI,SAAS,eAAe,SAAS,EACtC,MAAK,IAAI,MAAM,aAElB,WAAW,UAAU,CAChB,OAAO,YAAa,YAAc,YAAY,KAAK,GAAG,WAAW,CACtE,EAAE,GAAG,CACP,MACE,WAAW,UAAU,CAAC,IAAIA,KAAI,SAAS,eAAe,SAAS,EAAKA,MAAIA,KAAI,MAAM,CAAE,EAAE,GAAG,EAE3F,WAAW,mBAAmB,GAAG,EACjC,sBAAsB,CACxB,CAGA,OAAO,eAAe,UAAU,CAC3B,OAAO,YAAa,YAAW,WAAW,EAE7C,mBAAmB,CACrB,EAEA,SAAS,kBAAkB,QAAQ,CACjC,IAAI,QAAQ,SAAS,eAAe,WAAW,EAC/C,GAAI,QAGJ,KAAI,GAAG,SAAS,cAAc,KAAK,EACnC,GAAG,GAAG,gBACN,GAAG,MAAM,QAAQ,sIAEjB,IAAI,KAAK,wnBAST,MAAM,oCACN,QAAQ,MAAM,EAAE,CAAC,EAAE,QAAQ,SAAS,EAAE,CACpC,IAAI,MAAM,EAAE,MAAM,OAAO,SAAS,EAAE,CAAC,OAAO,GAAG,CAAC,aAAa,KAAK,EAAE,KAAK,CAAC,CAAE,CAAC,EAAE,KAAK,QAAK,EACrF,MAAM,EAAE,SAAS,WAAW,cAAS,YACrC,MAAM,EAAE,aAAa,yJAAoJ,GAC7K,MAAM,mVAE0J,MAAM,MAAM,mEAC1G,EAAE,KAAK,SAAM,EAAE,KAAK,UAAO,MAAM,+CAE5D,EAAE,QAAQ,uOAEnD,CAAC,EACD,MAAM,SAGN,MAAM,2QAEN,GAAG,UAAU,KAEb,IAAI,SAAS,SAAS,eAAe,WAAW,EAC7C,SAAS,SAAS,YAAY,EAAE,EAC9B,SAAS,eAAe,MAAM,EAAE,YAAY,EAAE,EACrD,CAEA,SAAS,cAAc,QAAQ,CAE7B,IAAI,GAAG,SAAS,eAAe,eAAe,EAAK,IAAG,GAAG,OAAO,EAChE,IAAI,IAAI,SAAS,eAAe,WAAW,EACxC,MAAK,IAAI,UAAU,IAAI,WAAW,EAAE,IAAI,MAAM,YAAY,UAAU,OAAO,WAAW,GACzF,IAAI,KAAK,SAAS,eAAe,UAAU,EACxC,OAAM,KAAK,MAAM,QAAQ,OAAO,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,UAAU,KAC5E,IAAI,IAAI,SAAS,eAAe,cAAc,EAAK,MAAI,IAAI,MAAM,QAAQ,QAEzE,IAAI,QAAQ,cAAc,EACtB,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,OAAQ,CAAC,EACvD,GAEJ,WAAW,UAAU,CAEnB,IAAI,SAAS,cAAc,EACvB,KAAK,SAAS,UAAU,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAQ,CAAC,EACnE,MAAM,GAAG,OAAO,aAAc,WAAW,YAAY,IAAI,EACpD,OAAO,UAAW,YAAW,SAAS,EAAE,MAAM,EAAE,SAAS,WAAW,KAAK,GAAG,CACtF,EAAE,GAAG,CACP,CAEA,SAAS,qBAAqB,CAE5B,IAAI,GAAG,SAAS,eAAe,eAAe,EAAK,IAAG,GAAG,OAAO,EAChE,WAAW,UAAU,CACnB,IAAI,IAAI,SAAS,eAAe,SAAS,EAAK,KAAI,IAAI,MAAM,EAC5D,sBAAsB,CACxB,EAAE,GAAG,CACP,CACA,SAAS,eAAe,CACnB,OAAO,iBAAkB,YAAW,gBAAgB,EACpD,OAAO,YAAa,YAAW,WAAW,EAC1C,OAAO,gBAAiB,YAAW,eAAe,EACrD,SAAS,eAAe,MAAM,EAAE,UAAU,OAAO,MAAM,EACvD,SAAS,KAAK,UAAU,OAAO,gBAAgB,EAC5C,OAAO,iBAAiB,QAAW,OAAO,SAAS,EAAE,OAAO,cAAc,EAC7E,IAAI,IAAI,SAAS,eAAe,UAAU,EAAK,MAAI,IAAI,MAAM,QAAQ,IACrE,SAAS,eAAe,MAAM,EAAE,UAAU,OAAO,MAAM,EACvD,IAAI,GAAG,SAAS,eAAe,WAAW,EACvC,KAAI,GAAG,UAAU,OAAO,WAAW,EAAE,GAAG,MAAM,QAAQ,mGACzD,IAAI,IAAI,SAAS,eAAe,UAAU,EAAK,MAAK,IAAI,MAAM,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,UAAU,IACnH,IAAI,GAAG,SAAS,eAAe,cAAc,EAAK,KAAG,GAAG,MAAM,QAAQ,QACtE,IAAI,GAAG,SAAS,eAAe,iBAAiB,EAAK,KAAG,GAAG,MAAM,QAAQ,mGACtE,OAAO,kBAAmB,YAAW,iBAAiB,CAC3D,CAGA,SAAS,kBAAkB,CAAC,IAAI,GAAG,SAAS,eAAe,cAAc,EAAK,KAAG,GAAG,UAAU,EAAE,CAChG,SAAS,kBAAkB,CAAC,gBAAgB,CAAE,CAI9C,SAAS,kBAAkB,MAAM,KAAK,CACpC,IAAI,EAAE,MAAM,OACZ,GAAG,GAAG,KAAK,OAAO,MAAM,MAAM,EAE9B,QADI,KAAK,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE,EAC7C,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,GAAI,KAAK,MAAO,EAAE,GAAG,OAAO,KAAK,MAAM,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,IAAK,CACjH,OAAO,MACT,CACA,SAAS,YAAY,CAEnB,IAAI,IAAI,SAAS,eAAe,eAAe,EAAK,KAAI,IAAI,OAAO,EACnE,IAAI,KAAK,SAAS,eAAe,SAAS,GAAG,CAAC,GAAG,OAAO,GAExD,IAAI,IAAI,QAAQ,OAAO;AAAA,CAAI,EAE3B,IAAI,EAAE,IACF,IAAI,SAAS,eAAe,SAAS,EACzC,GAAG,CAAC,EAAE,KAAK,EAAE,CACR,KAAI,IAAI,MAAM,EACjB,MACF,CAEA,IAAI,SAAS,eAAe,QAAQ,iBAAiB,GAAG,GACrD,UAAS,eAAe,WAAW,iBAAiB,EACvD,GAAG,CAAC,MAAM,iFAAiF,CACzF,OAAO,OAAO,QAAQ,CAAC,eAAe,kBAAkB,EACxD,KAAK,KAAK,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,cAAc,OAAO,SAAS,UAAU,QAAQ,CAAC,CAClG,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAE,MAAU,CAAC,CAClC,IAAI,GAAG,SAAS,eAAe,MAAM,EAAK,IAAG,GAAG,UAAU,OAAO,SAAS,EAC1E,IAAI,GAAG,SAAS,eAAe,cAAc,EAAM,GAAG,SAAS,eAAe,eAAe,EAC1F,KAAG,GAAG,YAAY,EAAE,KAAK,GAAK,KAAG,GAAG,MAAM,QAAQ,QAErD,IAAI,IAAI,SAAS,eAAe,eAAe,EAC5C,KAAK,CAAC,IAAI,WAAU,IAAI,SAAS,GAAK,IAAI,iBAAiB,QAAQ,UAAU,CAAI,OAAO,iBAAkB,YAAW,gBAAgB,CAAE,CAAC,GAC3I,IAAI,GAAG,SAAS,eAAe,WAAW,EACvC,KAAI,GAAG,UAAU,IAAI,WAAW,EAAE,GAAG,MAAM,YAAY,UAAU,OAAO,WAAW,GACtF,IAAI,IAAI,SAAS,eAAe,UAAU,EACvC,MAAK,IAAI,MAAM,QAAQ,OAAO,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,UAAU,IAAI,IAAI,cAEhF,IAAI,GAAG,SAAS,eAAe,iBAAiB,EAC7C,KAAG,GAAG,MAAM,QAAQ,yEAEvB,IAAI,UAAU,GACV,SAAS,EAAE,KAAK,EAAE,MAAM;AAAA,CAAI,EAAE,IAAI,SAAS,EAAE,CAC/C,IAAI,SAAS,OAAO,YAAa,WAAW,WAAW,CAAC,EAAE,EAC1D,OAAG,SAAS,KAAK,IAAI,EAAE,KAAK,IAAE,UAAU,IACjC,SAAS,KAAK,CACvB,CAAC,EAAE,OAAO,SAAS,EAAE,CACnB,OAAI,EAED,sBAAoB,KAAK,CAAC,EAFhB,EAKf,CAAC,EACC,GAAG,UAAU,CACb,IAAI,QAAQ,SAAS,eAAe,cAAc,GAAG,SAAS,cAAc,KAAK,EACjF,QAAQ,GAAG,eAAe,QAAQ,MAAM,QAAQ,gPAChD,QAAQ,YAAY,2CACpB,SAAS,KAAK,YAAY,OAAO,EACjC,WAAW,UAAU,CAAI,QAAQ,YAAW,QAAQ,WAAW,YAAY,OAAO,CAAE,EAAE,GAAI,CAC5F,CAEA,IAAI,MAAM,SAAS,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC,GAAG,UAAU,CACzD,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,EAAE,OAAO,OAAO,EAE1C,QAAQ,MAAM,KAAK,SAAS,EAAE,CAAC,MAAO,WAAW,KAAK,CAAC,CAAE,CAAC,EAE9D,MAAG,CAAC,SAAS,MAAM,QAAQ,EAAS,kBAAkB,MAAU,OAAO,WAAW,OAAO,UAAU,QAAU,EAAE,CAAC,EACzG,QACT,GAAG,EACH,SAAS,aAAaC,OAAM,MAAM,EAAE,CAClC,GAAG,OAAO,UAAW,WAAW,CAC9B,IAAI,IACJ,GAAG,CAAC,IAAI,SAASA,OAAM,KAAK,CAAE,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,MAAM,kBAAkB,CAAC,CAAE,CAEjF,KAAK,OAAO,IAAI,OAAQ,YACzB,IAAI,MAAM,SAAS,EAAE,CACnB,QAAQ,MAAM,yBAAyB,CAAC,EAExC,IAAI,KAAK,SAAS,eAAe,UAAU,EACxC,OAAM,KAAK,MAAM,QAAQ,OAAO,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,UAAU,KAC5E,IAAI,GAAG,SAAS,eAAe,eAAe,EAC9C,GADmD,KAAG,GAAG,MAAM,QAAQ,SACpE,OAAO,QAAS,WAAY,GAAG,CAAC,OAAO,CAAE,OAAO,GAAG,CAAC,QAAQ,MAAM,oBAAoB,EAAE,CAAE,CAC/F,CAAC,CAEL,MACQ,EAAE,IAAG,WAAW,UAAU,CAAC,aAAaA,OAAM,MAAM,EAAE,CAAC,CAAE,EAAE,GAAG,CACxE,CACA,IAAI,QAAQ,CAAC,EAAE,OAAO,WAAW,OAAO,UAAU,SAC9C,OAAO,QAAQ,EAAE,EAClB,MAAM,OAAO,SAAQ,MAAM,MAAM,MAAM,EAAE,MAAM,EAAK,OAAO,OAAO,eAAgB,YAAW,OAAO,cAAc,QAAQ,2CAAsC,mCAA8B,GACjM,aAAa,MAAM,KAAK,CAAC,EAEzB,WAAW,UAAU,CACnB,IAAI,GAAG,SAAS,eAAe,eAAe,EAC9C,GAAG,KAAK,GAAG,MAAM,UAAU,QAAQ,GAAG,MAAM,UAAU,MACpD,GAAG,MAAM,QAAQ,QACd,OAAO,QAAS,YAAY,GAAG,CAAC,OAAO,CAAE,MAAS,CAAC,CAE1D,EAAE,GAAG,CACP,CACA,SAAS,iBAAiB,CACxB,IAAI,IAAI,SAAS,eAAe,oBAAoB,EAAE,IAAI,SAAS,eAAe,mBAAmB,EAAE,GAAG,SAAS,eAAe,WAAW,EACzI,GAAG,SAAS,eAAe,eAAe,GAAG,CAAC,GAAG,aAAa,GAC/D,MAAI,IAAI,MAAM,QAAQ,QAAU,MAAI,IAAI,MAAM,QAAQ,SACtD,KAED,GAAG,MAAM,EAAE,QAAQ,WAAW;AAAA,CAAI,EAClC,WAAW,UAAU,CAAC,GAAG,MAAM,CAAE,EAAE,EAAE,EAEzC,CACA,SAAS,mBAAmB,CAC1B,IAAI,IAAI,SAAS,eAAe,oBAAoB,EAAE,IAAI,SAAS,eAAe,mBAAmB,EAClG,MAAI,IAAI,MAAM,QAAQ,QAAU,MAAI,IAAI,MAAM,QAAQ,OAC3D,CACA,SAAS,gBAAgB,CACvB,IAAI,GAAG,SAAS,eAAe,WAAW,GAAG,CAAC,GAAG,OAAO,GAGxD,GAFA,EAAE,EAAE,QAAQ,OAAO;AAAA,CAAI,EAEpB,EAAC,EAAE,KAAK,EAEX,KAAI,UAAU,GACV,MAAM,EAAE,KAAK,EAAE,MAAM;AAAA,CAAI,EAAE,IAAI,SAAS,EAAE,CAC5C,IAAI,EAAE,OAAO,YAAa,WAAW,WAAW,CAAC,EAAE,EACnD,OAAG,EAAE,KAAK,IAAI,EAAE,KAAK,IAAE,UAAU,IAC1B,EAAE,KAAK,CAChB,CAAC,EAAE,OAAO,SAAS,EAAE,CACnB,OAAI,EACD,sBAAoB,KAAK,CAAC,EADhB,EAGf,CAAC,EACD,GAAG,UAAU,CACX,IAAI,GAAG,SAAS,eAAe,eAAe,GAAG,SAAS,cAAc,KAAK,EAC7E,GAAG,GAAG,gBAAgB,GAAG,MAAM,QAAQ,6NACvC,GAAG,YAAY,2CACf,SAAS,KAAK,YAAY,EAAE,EAAE,WAAW,UAAU,CAAI,GAAG,YAAW,GAAG,WAAW,YAAY,EAAE,CAAE,EAAE,GAAI,CAC3G,CACA,IAAI,GAAG,SAAS,eAAe,eAAe,EAE9C,GAFmD,KAAG,GAAG,YAAY,EAAE,MAAM;AAAA,CAAI,EAAE,OAAO,OAAO,EAAE,KAAK,QAAK,GAC7G,kBAAkB,EACf,MAAM,SAAS,EAAE,CAClB,IAAI,MAAM,EAAE,MAAM,KAAK,EAAE,OAAO,SAAS,EAAE,CAAC,OAAO,GAAG,CAAC,iBAAiB,KAAK,CAAC,CAAE,CAAC,EAC9E,MAAM,QAAQ,IAAE,MAAM,kBAAkB,MAAM,OAAO,EAAE,CAAC,EAC7D,CAEA,IAAI,OAAO,CAAC,EAAE,OAAO,WAAW,OAAO,UAAU,SAC7C,MAAM,OAAO,EAAE,EAChB,MAAM,OAAO,QAAO,MAAM,MAAM,MAAM,EAAE,KAAK,EAAK,OAAO,OAAO,eAAgB,YAAW,OAAO,cAAc,OAAO,2CAAsC,mCAA8B,GAC3L,OAAO,UAAW,YAAW,SAAS,MAAM,IAAI,EACrD,CACA,SAAS,iBAAiB,CACrB,OAAO,iBAAkB,YAAW,gBAAgB,EACvD,IAAI,GAAG,SAAS,eAAe,WAAW,EAAE,IAAI,SAAS,eAAe,UAAU,EAAE,GAAG,SAAS,eAAe,cAAc,EAC1H,KAAI,GAAG,UAAU,OAAO,WAAW,EAAE,GAAG,MAAM,QAAQ,mGACtD,MAAI,IAAI,MAAM,QAAQ,QAAU,KAAG,GAAG,MAAM,QAAQ,OACzD,CACA,SAAS,gBAAgB,CAAC,CAC1B,SAAS,gBAAgB,MAAM,CAC7B,IAAI,IAAI,SAAS,eAAe,SAAS,EAAK,MAAI,IAAI,MAAM,OAAM,WAAW,CAC/E,EAIC,UAAU,CAAC,MAAM,yEAAyE,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAE,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,OAAO,UAAU,IAAI,aAAa,GAAG,OAAO,UAAU,IAAI,aAAa,EAAG,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAE,GAAG,GAEvP,UAAU,CAGT,SAAS,QAAQ,KAAK,CAEpB,OAAQ,MAAM,IAAI,QAAQ,wBAAwB,EAAE,CACtD,CAEA,SAAS,WAAW,SAAU,UAAW,QAAQ,CAC/C,IAAI,OAAO,OAAO,kBAAkB,CAAC,EACjC,QAAQ,OAAO,mBAAmB,sJACtC,GAAI,OAAO,OACX,KAAI,MAAQ,SAAS,eAAe,OAAO,EACvC,OAAS,SAAS,eAAe,QAAQ,EACzC,IAAM,SAAS,eAAe,SAAS,EACxC,CAAC,OAAO,CAAC,QAAQ,CAAC,MACrB,IAAI,UAAY,QAAQ,OAAO,EAC/B,OAAO,UAAY,OAAO,IAAI,SAAS,EAAE,EAAE,CACzC,MAAO,uCAAuC,EAAE,2BAA2B,EAAE,gBAC7D,EAAE,IAAI,WAAW,EAAE,KAAK,UAAU,yBACpD,CAAC,EAAE,KAAK,EAAE,EACV,MAAM,MAAM,QAAU,IACxB,CAEA,OAAO,kBAAoB,UAAU,CACnC,WAAW,iBAAiB,kBAAkB,eAAe,EAC7D,WAAW,kBAAkB,mBAAmB,gBAAgB,CAClE,EAGA,IAAI,MAAQ,EACR,KAAO,KAEX,SAAS,oBAAoB,CAC3B,OAAG,OACH,KAAO,SAAS,cAAc,KAAK,EACnC,KAAK,UAAY,oBACjB,KAAK,UAAY,qiBAYjB,KAAK,iBAAiB,QAAS,SAAS,EAAE,CAAK,EAAE,SAAS,MAAM,cAAc,CAAG,CAAC,EAClF,SAAS,KAAK,YAAY,IAAI,EACvB,KACT,CAEA,SAAS,eAAe,CACtB,IAAI,OAAO,OAAO,kBAAkB,CAAC,EACjC,QAAQ,OAAO,mBAAmB,GAClC,GAAK,mBAAmB,EACxB,EAAI,OAAO,KAAK,EACpB,GAAI,EACJ,UAAS,eAAe,SAAS,EAAE,IAAM,EAAE,SAAW,EAAE,IACxD,SAAS,eAAe,aAAa,EAAE,UAAY,QAAQ,OAAO,EAClE,IAAI,KAAO,SAAS,eAAe,UAAU,EAC7C,KAAK,UAAY,OAAO,IAAI,SAAS,EAAE,EAAE,CACvC,MAAO,4CAA4C,IAAI,MAAM,GAAG,GAAG,kBAAkB,IAAI,MAAM,OAAO,yBAAyB,WACjI,CAAC,EAAE,KAAK,EAAE,EACZ,CAEA,OAAO,aAAe,SAAS,EAAE,CAC/B,MAAQ,EACR,mBAAmB,EAAE,UAAU,IAAI,MAAM,EACzC,cAAc,CAChB,EACA,OAAO,cAAgB,UAAU,CAC5B,MAAM,KAAK,UAAU,OAAO,MAAM,CACvC,EACA,OAAO,YAAc,SAAS,EAAE,CAC9B,IAAI,OAAO,OAAO,kBAAkB,CAAC,EACrC,OAAS,MAAQ,EAAI,OAAO,QAAU,OAAO,OAC7C,cAAc,CAChB,EAGF,OAAO,WAAW,WAClB,OAAO,cAAc,cACrB,OAAO,iBAAiB,iBACxB,OAAO,iBAAiB,iBACxB,OAAO,YAAY,YACnB,OAAO,qBAAqB,qBAC5B,OAAO,mBAAmB,mBAC1B,OAAO,WAAW,WAClB,OAAO,uBAAuB,uBAC9B,OAAO,kBAAkB,kBACzB,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,sBAAsB,sBAC7B,OAAO,cAAc,cACrB,OAAO,kBAAkB,kBACzB,OAAO,mBAAmB,mBAC1B,OAAO,qBAAqB,qBAC5B,OAAO,kBAAkB,kBACzB,OAAO,eAAe,eACtB,OAAO,WAAW,WAClB,OAAO,mBAAmB,mBAC1B,OAAO,YAAY,YACnB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,WAAW,WAClB,OAAO,eAAe,eACtB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,eAAe,eACtB,OAAO,mBAAmB,mBAC1B,OAAO,mBAAmB,mBAC1B,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,qBAAqB,qBAC5B,OAAO,aAAa,aACpB,OAAO,cAAc,cACrB,OAAO,aAAa,aACpB,OAAO,uBAAuB,uBAC9B,OAAO,sBAAsB,sBAC7B,OAAO,mBAAmB,mBAC1B,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,aAAa,aACpB,OAAO,eAAe,eACtB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,YAAY,YACnB,OAAO,WAAW,WAClB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,cAAc,cACrB,OAAO,UAAU,UACjB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,eAAe,eACtB,OAAO,oBAAoB,oBAC3B,OAAO,cAAc,cACrB,OAAO,oBAAoB,mBAE3B,GAAG,EAEH,MAAM,cAAc,MAAM,KAAK,IAAI,EAAE,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAC7E,eAAe,YAAY,MAAM,KAAK,OAAO,IAAI,CAC/C,IAAI,KAAK,EACT,IAAI,GAAG,KAAK,KAAK,OAAO,CAAC,GAAG,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,EACjE,UAAU,eAAe,GAAG,EAAE,EAAE,MAAM,WAAW,GAAG,EAAE,EAEtD,UAAU,YAAY,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAClD,YAAY,GACf,OAAO,YAAY,CAAC,GAAG,OAAO,OAAO,gBAAgB,CAAC,CAAC,EAAE,QAAQ,SAAS,EAAE,CACxE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,UAAS,aACzD,CAAC,EAED,IAAI,IAAI,OAAO,WAAW,CAAC,EACxB,IAAI,SAAS,IAAI,YAAY,IAAI,aAAa,UAAS,cAC1D,IAAI,YAAY,KAAK,IAAI,YAAY,CAAC,EAAE,IACxC,OAAO,YACP,IAAI,WAAW,OAAO,eAAe,OAAO,OAAO,OAAO,aAAa,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,CAAE,CAAC,EAChG,IAAI,SAAS,eAAe,SAAS,WAAW,QAAQ,SAAS,EACjE,QAAQ,IAAI,IAAI,YAAY,GAEhC,GADG,MAAK,IAAI,YAAY,eAAU,IAAI,SAAS,IAC5C,CAAC,UAAU,CAAI,MAAK,IAAI,YAAY,QAAQ,IAAI,SAAS,IAAO,MAAO,CAE1E,GAAG,CACD,IAAI,OAAQ,OAAO,WAAW,GAAQ,OAAQ,OAAO,WAAW,GAChE,GAAG,QAAQ,OAAO,CAChB,IAAI,SAAS,CACX,WAAW,cACX,MAAM,MAAM,KAAK,QAAK,EACtB,WAAW,GACX,KAAK,GACL,MACA,OACA,aAAa,SAAS,YAAY,SAAS,SAC3C,OAAO,OAAO,WAAW,IAAI,SAAS,UACtC,KAAK,OAAO,SAAS,SACrB,WAAW,IAAI,KAAK,EAAE,YAAY,CACpC,EACA,MAAM,OAAO,6BAA6B,CACxC,OAAO,OACP,QAAQ,CAAC,eAAe,mBAAmB,OAAS,OAAO,cAAgB,UAAU,OAAO,OAAS,gBAAgB,EACrH,KAAK,KAAK,UAAU,QAAQ,CAC9B,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CACvB,CACF,MAAU,CAAC,CACX,IAAI,MAAM,CAAC,EACX,MAAM,KAAQ,GAAG,IACjB,MAAM,SAAY,cAElB,MAAM,QAAQ,SAAS,EAAE,EAAE,CACzB,IAAI,SAAS,EACT,KAAK,OAAO,YAAY,OAAO,WAAW,CAAC,EAC/C,GAAG,MAAM,KAAK,QAAQ,CACpB,IAAI,OAAO,KAAK,WAAY,KAAK,QAAQ,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,oCAAoC,EAAE,EAAE,QAAQ,WAAW,EAAE,EAAE,QAAQ,SAAS,GAAG,EAAE,KAAK,GAAI,OAC1K,YAAY,OAAO,UAAO,KAAK,UAAU,QAC1C,KAAK,eAAa,aAAa,SAAM,KAAK,aAAa,QACvD,KAAK,WAAS,aAAa,iBAC3B,KAAK,YAAY,KAAK,aAAa,WAAS,aAAa,UAAO,KAAK,gBAAgB,YAAY,KAAK,UAAU,GAAG,KAAK,YAAY,WACvI,UAAU,MAAM,WAClB,CACA,MAAM,SAAS,EAAE,EAAE,EAAE,QACvB,CAAC,EAED,IAAI,gBAAgB,SAAS,WAAW,CAAC,GAAG,OAAO,aAAa,CAAC,GAAG,OAAO,OAAO,EAClF,gBAAgB,QAAQ,SAAS,EAAE,GAAG,CACpC,IAAI,SAAS,EACT,MAAM,OAAO,gBAAgB,OAAO,eAAe,EAAE,EACzD,GAAG,OAAO,MAAM,QAAQ,CACtB,IAAI,OAAO,MAAM,WAAY,MAAM,QAAQ,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,oCAAoC,EAAE,EAAE,QAAQ,WAAW,EAAE,EAAE,QAAQ,SAAS,GAAG,EAAE,KAAK,GAAI,OAChL,UAAU,MAAM,OAAO,MAAM,MAAM,UAAU,QAAQ,GACvD,CACA,MAAM,SAAS,MAAM,OAAO,GAAG,EAAE,EAAE,QACrC,CAAC,EAED,IAAI,IAAI,OAAO,UAAU,OACrB,IAAI,OAAO,SAAS,OACpB,MAAM,SAAS,WAAW,IAAI,IAC9B,WAAW,CAAC,MAAQ,qBAAqB,SAAW,qBAAqB,QAAU,mBAAmB,SAAW,qBAAqB,WAAa,oBAAoB,KAAO,gBAAgB,MAAQ,sBAAsB,UAAY,qBAAqB,SAAW,WAAW,MAAQ,QAAQ,OAAS,oBAAoB,KAAO,mBAAmB,EAC1V,UAAU,WAAW,KAAK,GAAG,OAAO,OACxC,MAAM,KAAQ,UAEd,IAAI,MAAM,YAAY,EAAM,KAAK,MAAM,SAAS,WAAY,OAAO,OAAO,EAAI,OAAO,OAAO,CAAE,EAC3F,OAAK,MAAM,OAAU,KAAK,GAE7B,IAAI,OAAO,SAAS,eAAe,YAAY,GAAG,CAAC,GAAG,OAAO,GAM7D,GALG,MAAM,KAAK,IAAE,MAAM,eAAe,EAAE,MAAM,KAAK,GAG/C,YAAY,IAAE,MAAM,iBAAoB,SAAI,aAE5C,OAAO,aAAc,YAAY,OAAO,gBAAiB,WAAW,CACrE,IAAI,YAAY,OAAO,UAAU,CAAC,GAAG,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,MAAM,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,IAAK,CAAC,EAAE,OAAO,OAAO,EAC7H,WAAW,SAAQ,MAAM,WAAc,WAAW,KAAK,IAAI,GAC9D,IAAI,SAAS,YAAY,MAAM,OAAO,UAAU,CAAC,CAAC,EAC/C,WAAU,MAAM,WAAc,SAAI,SACvC,CAEA,GAAG,OAAO,cAAc,OAAO,aAAa,OAAO,CACjD,IAAI,SAAS,OAAO,aAAa,WAAY,OAAO,aAAa,QAAQ,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,oCAAoC,EAAE,EAAE,QAAQ,WAAW,EAAE,EAAE,QAAQ,SAAS,GAAG,EAAE,KAAK,GAAI,QAC9M,MAAM,YAAY,EAAE,SAAS,cAAc,OAAO,aAAa,KAAK,GAAG,GACzE,CAEA,IAAI,IAAI,OAAO,WAAW,CAAC,EAC3B,GAAG,KAAK,IAAI,QAAQ,CAClB,IAAI,SAAS,IAAI,WAAY,IAAI,QAAQ,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,QAAQ,oCAAoC,EAAE,EAAE,QAAQ,WAAW,EAAE,EAAE,QAAQ,SAAS,GAAG,EAAE,KAAK,GAAI,OAC1K,OAAO,SAGX,GAFG,IAAI,eAAa,QAAQ,iBAAc,IAAI,aAAa,QACxD,IAAI,WAAS,QAAQ,kBACrB,IAAI,YAAY,IAAI,aAAa,SAAS,CAC3C,IAAI,WAAW,IAAI,gBAAgB,YAAY,IAAI,UAAU,GAAG,IAAI,WACpE,QAAQ,SAAM,WAAW,uBACzB,aAAa,GACf,CACA,MAAM,UAAU,EAAE,MACpB,EAEC,UAAU,CACT,GAAG,CAaD,IAASC,WAAT,UAAoB,CAClB,IAAI,WAAW,OAAO,UAAU,CAAC,GAAG,QAAQ,OAAO,aAAa,CAAC,GAAG,OAAO,OAAO,CAAC,EACnF,GAAI,UAAU,OACd,KAAIC,OAAM,OAAO,aAAc,WAAW,YAAY,EAAE,CAAC,EACrD,IAAI,OAAO,OAAO,EAClB,OAAQA,OAAM,GAAG,GAAGA,OAAM,GAAG,EAAE,IAAK,UACpC,KAAK,GAAG,OAAO,GAAG,GAAG,IACrB,GAAG,KAAK,EAAE,UAAU,OAAO,OAC3B,OAAO,EACP,IAAI,SAAS,cAAc,QAAQ,EACvC,IAAI,MAAM,GAAG,OAAO,IAAI,OAAO,GAAG,OAClC,IAAI,KAAK,IAAI,WAAW,IAAI,EAC5B,KAAK,MAAM,OAAO,MAAM,EACxB,IAAI,SAAUA,OAAM,GAAG,GAAGA,OAAM,GAAG,EAAE,GAAI,UAAU,UACnD,KAAK,UAAU,SAAS,KAAK,SAAS,EAAE,EAAE,GAAG,EAAE,EAC/C,KAAK,UAAU,OACf,KAAK,UAAU,SAAS,KAAK,aAAa,SAC1C,IAAI,cAAc,CAAC,MAAQ,2BAA2B,SAAW,qBAAqB,OAAS,qBAAqB,QAAU,oBAAoB,SAAW,wBAAwB,WAAa,0BAA0B,KAAO,oBAAoB,MAAQ,uBAAuB,UAAY,sBAAsB,SAAW,mBAAmB,MAAQ,sBAAsB,EAChX,SAAS,cAAc,KAAK,GAAG,uBAC/B,QAAS,QAAQ,QAAQ,QAAQ,aAAc,MAAM,MACzD,UAAU,QAAQ,SAAS,KAAK,IAAI,CAClC,IAAI,OAAO,MAAM,IAAI,KAAK,EAAE,GAAI,MAChC,MAAK,KAAK,QAAQ,SAAS,SAC3B,IAAI,IAAI,GAAG,KAAK,EACZ,GAAG,KAAK,YAAY,KAAK,EAC7B,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,GAAG,MAAM,KAAK,KAAK,QAAQ,IAAI,KAAK,MAAM,GAAG,MAAM,EAAE,MAAM,QAAS,CACpG,KAAK,SAAS,MAAM,GAAG,EAAE,KAAK,IAAI,OAAO,OAAO,CAAC,EACnD,CAAC,EACD,IAAI,OAAO,SAAS,KAAK,CACvB,GAAI,KACJ,KAAI,OAAO,WAAW,cAAc,IAAI,KAAK,IAAI,EAAE,OACnD,MAAMC,QAAO,iCAAiC,OAAO,CACnD,OAAO,OACP,QAAQ,CAAC,cAAgB,UAAUC,QAAO,OAASA,QAAO,eAAe,aAAa,WAAW,MAAM,EACvG,KAAK,IACP,CAAC,EAAE,KAAK,SAASC,GAAE,CACjB,GAAIA,GAAE,GACN,KAAI,KAAKF,QAAO,wCAAwC,OACxD,OAAO,kBAAkB,KAEzB,IAAI,IAAI,OAAO,eAAe,CAAC,EAC/B,IAAI,YAAY,KAChB,MAAM,iFAAiF,CACrF,OAAO,OAAO,QAAQ,CAAC,eAAe,kBAAkB,EAAE,KAAK,KAAK,UAAU,GAAG,CACnF,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,EACvB,CAAC,EAAE,MAAM,UAAU,CAEjB,IAAI,IAAI,OAAO,eAAe,CAAC,EAC/B,IAAI,YAAY,KAChB,MAAM,iFAAiF,CACrF,OAAO,OAAO,QAAQ,CAAC,eAAe,kBAAkB,EAAE,KAAK,KAAK,UAAU,GAAG,CACnF,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CACvB,CAAC,EACH,EAAE,aAAa,GAAI,EACrB,EAtDS,cAAAF,WAZLE,QAAO,OAAO,WAAW,GACzBC,QAAO,OAAO,WAAW,GAC7B,GAAG,CAACD,SAAQ,CAACC,QAAO,OACpB,IAAI,MAAM,SAAS,eAAe,MAAM,GAAG,SAAS,eAAe,SAAS,EAC5E,GAAG,CAAC,MAAM,OAGV,IAAIE,UAAS,CAAC,WAAW,cAAc,MAAY,KAAK,GAAG,MACzD,KAAK,MAAM,MAAS,GAAG,OAAO,MAAM,QAAW,GAC/C,MAAM,MAAM,OAAU,GAAG,WAAW,MAAM,YAAY,GAAG,GAAG,aAAa,EAAI,EAC/E,OAAO,cAAcA,UA0DlB,SAAS,OAAO,SAAS,MAAM,MAAO,SAAS,MAAM,MAAM,KAAKL,UAAS,EACvE,WAAWA,WAAU,GAAG,CAC/B,MAAS,CAAC,CACZ,GAAG,EAEH,IAAI,MAAM,CAAC,CAAC,GAAG,UAAU,SAAS,IAAI,WAAW,KAAK,CAAC,EACvD,QAAQ,IAAI,iCAAkC,KAAK,UAAU,KAAK,CAAC,EAChE,YAAY,OAAO,wBAAuB,MAAM,KAAK,CAAC,GAAG,OAAO,uBAAuB,SAAS,CAAC,CAAC,EAElG,YAAY,GAAG,OAAO,yBAAyB,OAAO,wBAAwB,WAAW,GAC1F,MAAM,KAAK,CAAC,GAAG,OAAO,wBAAwB,WAAW,EAAE,SAAS,CAAC,CAAC,EAExE,GAAG,CACD,IAAI,EAAE,MAAM,MAAM,eAAe,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,kBAAkB,EAAE,KAAK,KAAK,UAAU,CAAC,KAAW,CAAC,CAAC,CAAC,EAC/H,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,MAAM,EACjC,aAAa,CAAC,MAAY,KAAK,GAAG,OAAc,QAAQ,cAAc,KAAK,IAAI,KAAK,EAAE,mBAAmB,QAAQ,CAAC,IAAI,UAAU,MAAM,OAAO,CAAC,EAAE,aAAa,EAAI,CAAC,EAC/J,MAAK,IAAI,YAAY,gBAAW,IAAI,MAAM,WAAW,UAAU,WAAW,UAAU,CAAC,IAAI,YAAY,QAAQ,IAAI,MAAM,WAAW,GAAG,IAAI,SAAS,EAAM,EAAE,IAAI,GACjK,gBAAgB,EAChB,WAAW,UAAU,CACnB,cAAc,EACd,IAAI,QAAS,OAAO,kBAAmB,WAAY,OACtC,OAAO,QAAQ,OAAO,SAAS,QAAQ,OAAO,OAAO,OAAO,kBAAmB,WAAY,OAAO,OAAO,KACnH,QAAQ,QAAQ,iBAAiB,EAC/B,OAAO,SAAS,KAAK,OAC5B,EAAE,GAAG,CACP,MAAS,CAAI,MAAK,IAAI,YAAY,YAAY,IAAI,MAAM,WAAW,UAAU,WAAW,UAAU,CAAC,IAAI,YAAY,QAAQ,IAAI,MAAM,WAAW,GAAG,IAAI,SAAS,EAAM,EAAE,IAAI,EAAG,CACjL,CACA,SAAS,mBAAmB,CAC1B,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,OAAO,oBAAoB,cAAc,OAAO,SAAS,GAAM,OAAO,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,EACvH,YAAY,OAAO,SAAS,GAAG,QAAQ,SAAS,SAAS,eAAe,YAAY,GAAG,aAAa,GAAG,CAAC,CAC1G,CACA,SAAS,sBAAsB,CAC7B,IAAI,IAAI,OAAO,aAAa,CAAC,GAAG,OAAO,OAAO,EAC1C,GAAG,GAAG,OAAO,CAAC,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,EAE7C,QAAQ,CAAC,GAAI,OAAO,YAAY,CAAC,EAAG,IAAI,OAAO,gBAAgB,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,EACrF,GAAG,KAAK,IAAI,KAAK,IAAI,OAAO,oBAAoB,cAAc,GAAG,GAAK,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EAC7F,YAAY,GAAG,GAAG,WAAW,SAAS,SAAS,eAAe,cAAc,GAAG,aAAa,GAAG,CAAC,CAClG,CACA,SAAS,oBAAoB,CAC3B,YAAY,OAAO,YAAY,OAAO,cAAc,SAAS,OAAO,cAAc,CAAC,CACrF,CACA,SAAS,qBAAqB,CAC5B,IAAI,IAAI,OAAO,aAAa,CAAC,GAAG,OAAO,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,EAAE,EACrE,GAAI,GAAG,OACP,KAAI,QAAQ,CAAC,GAAI,OAAO,YAAY,CAAC,EAAG,IAAI,OAAO,gBAAgB,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,EACrF,GAAG,KAAK,IAAI,KAAK,IAAI,OAAO,oBAAoB,cAAc,GAAG,GAAK,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EACzF,QAAW,OAAO,WAAW,OAAO,UAAU,QAAS,EAAE,EACzD,EAAE,WAAW,GAAG,KAAK,IAAI,GAAG,OAAO,QAAQ,CAAC,CAAC,EAC7C,EAAE,OAAO,eAAe,OAAO,OAAO,OAAO,aAAa,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,CAAE,CAAC,EACvF,IAAI,SAAS,eAAe,OAAO,EACpC,MAAI,IAAI,YAAY,2BAAmB,GAAG,EAAE,IAAI,IAAI,eAAe,OAAO,GAC/E,CAEA,SAAS,mBAAmB,CAE1B,MAAM,UAAU,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAE,CAAC,EAAE,KAAK,SAAS,KAAK,CACvE,KAAK,MAAM,QAAQ,SAAS,KAAK,CAC/B,GAAG,GAAC,KAAK,YAAY,CAAC,OAAO,KAAK,KAAK,UAAU,EAAE,QAEnD,KAAI,UAAU,CACZ,qBAAqB,KAAK,WAAW,KACrC,wBAAwB,KAAK,IAAI,KACjC,WAAW,KAAK,WAAW,IAC7B,EACI,GAAG,KAQP,GAPA,UAAU,QAAQ,SAAS,EAAE,CAAK,KAAG,GAAG,SAAS,cAAc,CAAC,EAAE,CAAC,EAC/D,IAEF,SAAS,iBAAiB,yCAAyC,EAAE,QAAQ,SAAS,EAAE,CACnF,CAAC,IAAI,EAAE,YAAY,SAAS,aAAa,IAAE,GAAG,EAAE,QAAQ,oBAAoB,EACjF,CAAC,EAEA,EAAC,IACD,IAAG,cAAc,gBAAgB,EACpC,KAAI,IAAI,SAAS,cAAc,KAAK,EACpC,IAAI,UAAU,gBACd,IAAI,MAAM,QAAQ,4DAClB,IAAI,MAAM,CAAC,EACX,OAAO,QAAQ,KAAK,UAAU,EAAE,QAAQ,SAAS,GAAG,CAClD,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EACf,CAAC,GAAG,EAAE,WAAW,GAAG,GACvB,MAAM,KAAK,gDAAgD,EAAE,YAAY,CAAC,CAC5E,CAAC,EACD,IAAI,UAAU,MAAM,KAAK,MAAM,EAC/B,GAAG,YAAY,GAAG,GACpB,CAAC,CACH,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CACvB,CACA,OAAO,kBAAkB,kBAGzB,SAAS,cAAc,CAAC,IAAI,GAAG,SAAS,eAAe,iBAAiB,EAAE,EAAE,SAAS,eAAe,eAAe,EAAK,KAAG,GAAG,MAAM,QAAQ,SAAW,IAAG,EAAE,MAAM,QAAQ,OAAO,WAAW,UAAU,CAAC,EAAE,MAAM,UAAU,eAAgB,EAAE,EAAE,EAAG,CAChP,SAAS,eAAe,CAAC,IAAI,EAAE,SAAS,eAAe,eAAe,EAAE,GAAG,SAAS,eAAe,iBAAiB,EAAK,IAAG,EAAE,MAAM,UAAU,mBAAmB,WAAW,UAAU,CAAC,EAAE,MAAM,QAAQ,MAAO,EAAE,GAAG,GAAM,KAAG,GAAG,MAAM,QAAQ,OAAO,CACpP,SAAS,cAAc,CAAC,IAAI,GAAG,SAAS,eAAe,SAAS,GAAG,SAAS,eAAe,MAAM,EAAE,GAAI,GAAU,KAAI,EAAE,GAAG,cAAc,WAAW,EAAE,GAAI,EAAS,GAAE,MAAM,UAAU,WAAW,IAAI,EAAE,KAAK,IAAI,GAAG,GAAG,YAAY,IAAI,EAAE,aAAa,GAAG,aAAa,IAAI,EAAE,YAAY,EAAE,EAAE,MAAM,UAAU,SAAS,EAAE,KAAI,CAExT,GAAG,CAAI,OAAO,mBAAoB,YAAW,kBAAkB,CAAE,MAAS,CAAC,CAE3E,SAAS,aAAa,OAAO,CAC3B,GAAG,CACD,IAAI,MAAM,KAAK,MAAM,aAAa,QAAQ,YAAY,GAAG,IAAI,EAC7D,MAAM,MAAM,OAAO,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,OAAO,OAAQ,CAAC,EAClE,MAAM,QAAQ,MAAM,EACjB,MAAM,OAAO,KAAG,MAAM,MAAM,MAAM,EAAE,EAAE,GACzC,aAAa,QAAQ,aAAa,KAAK,UAAU,KAAK,CAAC,EACvD,sBAAsB,CACxB,MAAS,CAAC,CACZ,CAGA,IAAI,aAAa,KACjB,SAAS,YAAY,CACnB,aAAa,YAAY,EACzB,aAAa,WAAW,UAAU,CAChC,GAAG,SAAO,OAAO,SAAW,KAAa,CAAC,OAAO,UAAU,CAAC,OAAO,SAAS,QAE5E,KAAI,WAAW,SAAS,OAAO,SAAS,OAAO,OAAO,EAAE,KAAK,GAAG,EAAE,YAAY,EAAE,QAAQ,OAAO,GAAG,EAAE,MAAM,EAAE,EAAE,EAE1G,SAAS,CAAC,EACd,GAAG,CAAC,SAAS,KAAK,MAAM,aAAa,QAAQ,YAAY,GAAG,IAAI,CAAE,MAAS,CAAC,CACzE,SAAS,QAAQ,UAAU,GAAG,GACjC,aAAa,CACX,MAAM,OAAO,SAAS,MAAM,EAC5B,KAAK,OAAO,oBAAoB,EAChC,OAAO,OAAO,QAAQ,WAAW,QACjC,QAAQ,WACR,KAAK,IAAI,KAAK,EAAE,mBAAmB,QAAQ,CAAC,IAAI,UAAU,MAAM,OAAO,CAAC,EACxE,MAAM,GACN,KAAK,OAAO,UAAU,OAAO,SAAS,OACtC,OAAO,OAAO,OAAO,KAAK,OAAO,MAAM,OAAO,MAC9C,UAAU,OAAO,YAAY,CAAC,GAAG,IAAI,SAAS,EAAE,CAC9C,OAAI,EACG,CAAC,QAAQ,EAAE,SAAS,KAAK,UAAU,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU,OAAO,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,KAAK,eAAe,EAAE,gBAAgB,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,aAAa,EAAE,cAAc,IAAI,EADjP,IAEf,CAAC,EACD,cAAc,OAAO,gBAAgB,CAAC,GAAG,IAAI,SAAS,EAAE,CACtD,OAAI,EACG,CAAC,QAAQ,EAAE,SAAS,KAAK,UAAU,EAAE,WAAW,KAAK,SAAS,EAAE,UAAU,OAAO,WAAW,EAAE,YAAY,KAAK,eAAe,EAAE,gBAAgB,IAAI,EAD9I,IAEf,CAAC,EACD,WAAW,OAAO,aAAa,CAAC,GAAG,MAAM,EACzC,QAAQ,OAAO,UAAU,CAAC,QAAQ,OAAO,UAAU,SAAS,KAAK,UAAU,OAAO,UAAU,WAAW,KAAK,WAAW,OAAO,UAAU,YAAY,KAAK,aAAa,OAAO,UAAU,cAAc,EAAE,SAAS,CAAC,CAAC,OAAO,UAAU,QAAQ,EAAE,KAC7O,WAAY,OAAO,cAAc,OAAO,aAAa,OAAQ,OAAO,OAAO,CAAC,EAAE,OAAO,YAAY,EAAE,IACrG,CAAC,EACH,EAAE,GAAI,CACR,CAEA,SAAS,mBAAmB,CACtB,OAAO,QAAQ,2BAA2B,IAC9C,aAAa,WAAW,YAAY,EACpC,aAAa,WAAW,YAAY,EACpC,sBAAsB,EACxB,CAEA,SAAS,eAAe,CACtB,GAAG,CAAC,OAAO,KAAK,MAAM,aAAa,QAAQ,YAAY,GAAG,IAAI,CAAE,MAAS,CAAC,MAAM,CAAC,CAAE,CACrF,CAEA,SAAS,eAAe,QAAQ,UAAU,CACxC,GAAG,CACD,IAAI,QAAQ,cAAc,EACtB,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,OAAQ,CAAC,EAE3D,GAAG,GAAG,EAAE,cAAc,CAAC,WAClB,CAAC,OAAO,QAAQ,iEAAiE,EAAE,OAExF,IAAI,MAAM,QAAQ,OAAO,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,OAAQ,CAAC,EACjE,aAAa,QAAQ,aAAa,KAAK,UAAU,KAAK,CAAC,EAEvD,IAAI,SAAS,CAAC,EACd,GAAG,CAAC,SAAS,KAAK,MAAM,aAAa,QAAQ,YAAY,GAAG,IAAI,CAAE,MAAS,CAAC,CACzE,SAAS,QAAQ,OAAO,EAAE,IAAG,SAAS,KAAK,OAAO,EAAE,aAAa,QAAQ,aAAa,KAAK,UAAU,SAAS,MAAM,GAAG,CAAC,CAAC,GAC5H,sBAAsB,CACxB,MAAS,CAAC,CACZ,CAEA,SAAS,uBAAuB,CAC9B,IAAI,KAAK,SAAS,eAAe,gBAAgB,EAC7C,QAAQ,cAAc,EAC1B,GAAI,KACJ,IAAG,CAAC,QAAQ,OAAO,CAAC,KAAK,MAAM,QAAQ,OAAO,MAAO,CACrD,KAAK,MAAM,QAAQ,QACnB,IAAI,KAAK,scAIT,QAAQ,QAAQ,SAAS,EAAE,IAAI,CAC7B,IAAI,MAAM,EAAE,MAAM,KAAK,QAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,QAAK,EAAE,OAAO,GAAG,SAAI,IACzE,MAAM,EAAE,SAAS,WAAW,cAAS,YACrC,UAAU,EAAE,aAAa,yJAAoJ,GACjL,MAAM,2TAE0H,MAAM,UAAU,wEAC3E,EAAE,KAAK,SAAM,EAAE,KAAK,UAAO,MAAM,6CAEjE,IAAI,yQACD,EAAE,QAAQ,6IAEpD,CAAC,EACD,KAAK,UAAU,KACjB,CAEA,SAAS,YAAY,IAAI,CACvB,IAAI,QAAQ,cAAc,EACtB,EAAE,QAAQ,SAAS,GAAG,CAAC,EAC3B,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,OAAO,OACjC,IAAI,GAAG,SAAS,eAAe,MAAM,EACjC,YAAY,IAAI,GAAG,UAAU,SAAS,MAAM,EAChD,GAAG,CAAC,YACF,eAAe,QAAQ,kBAAkB,GAAG,EAC5C,aAAa,WAAW,MACnB,CACL,IAAI,IAAI,SAAS,eAAe,eAAe,EAAK,KAAI,IAAI,OAAO,CACrE,CACA,IAAI,MAAM,EAAE,SAAS,WAAW,KAAK,IACrC,SAAS,QAAQ,EAAE,CACjB,GAAG,OAAO,UAAW,WAAW,CAC9B,IAAI,GAAG,SAAS,eAAe,WAAW,EACtC,IAAI,SAAS,eAAe,UAAU,EACtC,GAAG,SAAS,eAAe,cAAc,EACzC,GAAG,SAAS,eAAe,eAAe,EAC3C,KAAI,GAAG,UAAU,IAAI,WAAW,EAAE,GAAG,MAAM,YAAY,UAAU,OAAO,WAAW,GACnF,MAAK,IAAI,MAAM,QAAQ,OAAO,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,UAAU,KACrE,KAAG,GAAG,MAAM,QAAQ,QACpB,KAAG,GAAG,YAAY,EAAE,MAAM,KAAK,QAAK,GACvC,OAAO,mBAAmB,EAAE,MAAM,KAClC,SAAS,EAAE,MAAM,KAAK,EAEtB,WAAW,UAAU,CAMnB,GALG,EAAE,WAAU,OAAO,WAAW,EAAE,SAAS,IAAI,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,GAC1F,EAAE,eAAc,OAAO,eAAe,EAAE,aAAa,IAAI,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,GACtG,EAAE,YAAW,OAAO,YAAY,EAAE,UAAU,MAAM,GAClD,EAAE,SAAS,EAAE,QAAQ,QAAS,OAAO,UAAU,OAAO,OAAO,CAAC,EAAE,EAAE,OAAO,EAAU,OAAO,UAAU,CAAC,EACrG,EAAE,YAAY,EAAE,WAAW,OAAQ,OAAO,aAAa,OAAO,OAAO,CAAC,EAAE,EAAE,UAAU,EAAU,OAAO,aAAa,CAAC,OAAO,GAAM,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,UAAU,EAAE,EAClL,EAAE,QAAQ,MAAM,OAAO,KAAM,WAAY,GAAG,CAAC,IAAI,EAAE,MAAM,CAAE,MAAS,CAAC,CACxE,GAAG,EAAE,MAAM,OAAO,UAAW,WAAY,GAAG,CAAC,SAAS,EAAE,IAAI,CAAE,MAAS,CAAC,CACxE,GAAG,OAAO,UAAW,WAAW,GAAG,CAAC,SAAS,CAAE,MAAS,CAAC,CACzD,GAAG,OAAO,UAAW,WAAW,GAAG,CAAC,SAAS,CAAE,MAAS,CAAC,CACzD,GAAG,OAAO,mBAAoB,WAAW,GAAG,CAAC,kBAAkB,CAAE,MAAS,CAAC,CAC3E,GAAG,OAAO,wBAAyB,WAAW,GAAG,CAAC,uBAAuB,CAAE,MAAS,CAAC,CACvF,EAAE,GAAG,CACP,MAAU,EAAE,IACV,WAAW,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAE,EAAE,GAAG,CAE5C,CAEG,YAAa,WAAW,UAAU,CAAC,QAAQ,CAAC,CAAE,EAAE,EAAE,EAChD,WAAW,UAAU,CAAC,QAAQ,CAAC,CAAE,EAAE,GAAG,CAC7C,CAEA,SAAS,iBAAiB,CAExB,IAAI,SAAS,SAAS,eAAe,kBAAkB,EACvD,GAAG,SAAS,CAAC,SAAS,MAAM,QAAQ,OAAO,MAAO,CAElD,IAAI,MAAM,SAAS,cAAc,KAAK,EACtC,MAAM,GAAG,mBACT,MAAM,MAAM,QAAQ,4HAEpB,IAAI,MAAM,SAAS,cAAc,KAAK,EACtC,MAAM,MAAM,QAAQ,gJAGpB,IAAI,OAAO,kZAMP,MAAM,CACR,CAAC,EAAE,KAAO,KAAK,YAAM,KAAK,6BAAgC,IAAI,2BAA2B,EACzF,CAAC,EAAE,KAAO,KAAK,YAAM,KAAK,qCAAmC,IAAI,wBAAwB,EACzF,CAAC,EAAE,KAAO,KAAK,YAAM,KAAK,kCAAiC,IAAI,0BAA0B,EACzF,CAAC,EAAE,MAAO,KAAK,YAAM,KAAK,qCAAkC,IAAI,sBAAsB,EACtF,CAAC,EAAE,MAAO,KAAK,YAAM,KAAK,mCAAiC,IAAI,uBAAuB,EACtF,CAAC,EAAE,MAAO,KAAK,kBAAO,KAAK,iCAAiC,IAAI,sBAAsB,CACxF,EAEI,MAAM,uFACP,MAAM,IAAI,SAAS,GAAG,CACrB,MAAO,sMAE6B,GAAG,KAAK,4GAC8D,GAAG,EAAE,gGAEzB,GAAG,KAAK,uEAC1B,GAAG,IAAI,cAE7E,CAAC,EAAE,KAAK,EAAE,EACT,SAGC,UAAU,GACX,eAAe,cAAc,WAC9B,UAAU,mWAE6J,cAAc,SAAS,wKAC7K,cAAc,gBAAgB,IAAI,sbAQrD,IAAI,WAAW,2VAIf,MAAM,UAAU,OAAO,MAAM,UAAU,WACvC,MAAM,YAAY,KAAK,EACvB,MAAM,iBAAiB,QAAQ,SAAS,EAAE,CAAI,EAAE,SAAS,QAAM,MAAM,MAAM,QAAQ,OAAO,CAAC,EAC3F,SAAS,KAAK,YAAY,KAAK,CACjC,CAEA,SAAS,sBAAsB,CAC7B,IAAI,GAAG,SAAS,eAAe,oBAAoB,EAC/C,MAAM,SAAS,eAAe,kBAAkB,EACpD,GAAG,GAAC,IAAI,CAAC,OACT,IAAG,MAAM,QAAQ,QACjB,MAAM,MAAM,QAAQ,OACpB,WAAW,UAAU,CACnB,MAAM,MAAM,UAAU,uBACtB,MAAM,MAAM,QAAQ,GACtB,EAAE,EAAE,EAEJ,IAAI,KAAK,SAAS,eAAe,sBAAsB,EACvD,GAAG,MAAK,UAAU,KAAK,EAEvB,KAAI,MAAM,CACR,CAAC,EAAE,KAAO,MAAM,OAAa,KAAK,6BAA6B,KAAK,uBAAyB,IAAI,EAAE,EACnG,CAAC,EAAE,KAAO,MAAM,UAAa,KAAK,8BAA6B,KAAK,uBAAyB,IAAI,EAAE,EACnG,CAAC,EAAE,KAAO,MAAM,iBAAa,KAAK,4BAA6B,KAAK,oBAA0B,IAAI,EAAE,EACpG,CAAC,EAAE,MAAO,MAAM,OAAa,KAAK,sBAA6B,KAAK,wBAAyB,IAAI,EAAE,EACnG,CAAC,EAAE,MAAO,MAAM,YAAa,KAAK,yBAA6B,KAAK,sBAAyB,IAAI,EAAE,EACnG,CAAC,EAAE,MAAO,MAAM,QAAa,KAAK,8BAA6B,KAAK,oBAAyB,IAAI,EAAE,EACnG,CAAC,EAAE,MAAO,MAAM,QAAa,KAAK,0BAA6B,KAAK,wBAAyB,IAAI,EAAE,EACnG,CAAC,EAAE,MAAO,MAAM,WAAa,KAAK,sBAA6B,KAAK,wBAAyB,IAAI,EAAE,CACrG,EAGI,YAAa,OAAO,eAAe,cAAc,eAAgB,CAAC,EACtE,MAAM,QAAQ,SAAS,GAAG,EAAE,CAAK,YAAY,CAAC,IAAG,GAAG,IAAI,YAAY,CAAC,EAAG,CAAC,EAEzE,IAAI,KAAK,GAGT,MAAM,+LAGN,MAAM,oJACN,MAAM,QAAQ,SAAS,GAAG,EAAE,CAC1B,IAAI,UAAU,GAAG,MAAM,QAAQ,QAAG,GAAG,EACjC,OAAO,CAAC,CAAC,GAAG,IAChB,MAAM,SAAS,OAAO,8BAA+B,GAAG,IAAI,MAAQ,GAAG,EAAE,MAAQ,GAAG,KAAK,wDAAyD,sCAAsC,IAExL,MAAM,kHAAkH,UAAU,UAAU,WAAW,iGACpJ,OACD,MAAM,aAAa,GAAG,IAAI,mFAG1B,MAAM,gGAAkG,GAAG,EAAE,UAE5G,YAAW,MAAM,+MACpB,MAAM,SAEN,MAAM,+HAAiI,GAAG,EAAE,SAC5I,MAAM,+FAAiG,GAAG,KAAK,SAC/G,MAAM,QACR,CAAC,EACD,MAAM,SAGN,IAAI,SAAU,OAAO,gBAAgB,cAAc,mBAAmB,WAAY,GAC9E,SAAU,OAAO,gBAAgB,cAAc,qBAAqB,cAAc,iBAAkB,GACrG,WACD,MAAM,sLACN,MAAM,kKAAoK,SAAS,iMAClK,SAAU,2lBAO7B,KAAK,UAAU,MACjB,CAEA,SAAS,uBAAuB,CAC9B,IAAI,MAAM,SAAS,eAAe,kBAAkB,EAChD,GAAG,SAAS,eAAe,oBAAoB,EAChD,QAAO,MAAM,MAAM,QAAQ,IAAI,MAAM,MAAM,UAAU,wBACxD,WAAW,UAAU,CAChB,QAAM,MAAM,MAAM,QAAQ,QAC1B,KAAG,GAAG,MAAM,QAAQ,OACzB,EAAE,GAAG,CACP,CAEA,SAAS,iBAAiB,IAAI,KAAK,KAAK,CACtC,IAAI,GAAG,SAAS,eAAe,cAAc,EAC7C,GAAG,CAAC,GAAG,CACL,GAAG,SAAS,cAAc,KAAK,EAC/B,GAAG,GAAG,eACN,GAAG,MAAM,QAAQ,wJACjB,GAAG,QAAQ,SAAS,EAAE,EAAI,EAAE,SAAS,IAAI,EAAE,SAAS,GAAG,cAAc,KAAK,KAAE,GAAG,MAAM,QAAQ,OAAO,EACpG,IAAI,IAAI,SAAS,cAAc,KAAK,EACpC,IAAI,GAAG,kBACP,IAAI,MAAM,QAAQ,wEAClB,IAAI,IAAI,SAAS,cAAc,KAAK,EACpC,IAAI,GAAG,kBACP,IAAI,MAAM,QAAQ,qBAClB,IAAI,SAAS,SAAS,cAAc,QAAQ,EAC5C,SAAS,YAAY,SACrB,SAAS,MAAM,QAAQ,yKACvB,SAAS,QAAQ,UAAU,CAAC,GAAG,MAAM,QAAQ,MAAO,EACpD,GAAG,YAAY,GAAG,EAClB,GAAG,YAAY,GAAG,EAClB,GAAG,YAAY,QAAQ,EACvB,SAAS,KAAK,YAAY,EAAE,CAC9B,CACG,KACD,SAAS,eAAe,iBAAiB,EAAE,IAAI,IAC/C,SAAS,eAAe,iBAAiB,EAAE,MAAM,QAAQ,SAEzD,SAAS,eAAe,iBAAiB,EAAE,MAAM,QAAQ,OAE3D,SAAS,eAAe,iBAAiB,EAAE,UAAU,KAClD,4FAA8F,KAAK,kHACY,KAAK,SAAS,GAChI,GAAG,MAAM,QAAQ,MACnB,CAGA,SAAS,gBAAgB,CACvB,IAAI,GAAG,SAAS,cAAc,cAAc,gBAAgB,aAAa,EACtE,GAAI,GAAG,eAAe,CAAC,SAAS,SAAS,MAAM,OAAO,CAAC,EAClD,cAAc,eAAc,OAAO,SAAS,KAAK,cAAc,aACzE,CACA,SAAS,iBAAiB,CACxB,OAAO,SAAS,KAAO,cAAc,cAAgB,mBACvD,CACA,SAAS,mBAAmB,CAC1B,cAAc,EACd,IAAI,OAAO,SAAS,cAAc,aAAa,EAC5C,OAAO,OAAO,KAAK,EACjB,OAAO,SAAS,KAAK,OAC5B,CAEA,SAAS,iBAAiB,CACxB,MAAM,UAAU,EACb,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAE,CAAC,EAClC,KAAK,SAAS,KAAK,CAClB,IAAI,IAAI,SAAS,eAAe,cAAc,EAC1C,MAAM,SAAS,eAAe,aAAa,EAE3C,aAAa,KAAK,OAAO,CAAC,GAAG,OAAO,SAAS,EAAE,CACjD,OAAO,EAAE,QAAQ,EAAE,OAAO,SAAS,cAAc,CACnD,CAAC,EACE,MACE,YAAY,OAAO,GACpB,IAAI,MAAM,QAAQ,OACf,QAAM,MAAM,YAAY,KAAK,aAEhC,IAAI,MAAM,QAAQ,OAGxB,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CACzB,CAEA,SAAS,cAAc,EAAE,CACvB,IAAI,IAAI,IAAI,EAAG,cAAc,WAAW,GAAK,cAAc,UAAU,GACrE,GAAI,IAEJ,KAAI,KAAK,SAAS,eAAe,cAAc,EAAE,IAAI,EACrD,GAAI,KACJ,KAAI,QAAQ,KAAK,IAAI,SAAS,GAAG,EAAE,IAAI,KAAK,aAC5C,KAAK,UAAU,gBAAgB,QAAQ,0HACvC,KAAK,MAAM,OAAO,UAClB,KAAK,QAAQ,MACf,CACA,SAAS,oBAAoB,CAE3B,SAAS,QAAQ,IAAI,CACnB,OAAI,KACD,IAAI,SAAS,UAAU,IAAE,IAAI,iCAAiC,IAAI,MAAM,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,GACnG,IAAI,SAAS,WAAW,IAAE,IAAI,iCAAiC,IAAI,MAAM,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,GACrG,IAAI,SAAS,qBAAqB,IAAE,IAAI,iCAAiC,IAAI,MAAM,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,GACzG,KAJQ,EAKjB,CACA,SAAS,QAAQ,SAAS,CAExB,IAAI,EAAE,SAAS,MAAM,kBAAkB,EACvC,OAAO,EAAE,8BAA8B,EAAE,CAAC,EAAE,iBAAiB,EAC/D,CACA,IAAI,GAAG,QAAQ,cAAc,UAAU,EAAE,EACrC,GAAG,QAAQ,cAAc,WAAW,EAAE,EAC1C,cAAc,SAAS,GACvB,cAAc,UAAU,GAGxB,IAAI,KAAK,SAAS,eAAe,aAAa,EAC9C,GAAG,OAAO,IAAI,IAAI,CAChB,KAAK,MAAM,QAAQ,OACnB,IAAI,OAAO,SAAS,eAAe,cAAc,EAC9C,SAAO,OAAO,IAAI,cAAc,gBAAgB,QAAQ,EAAE,GAC7D,IAAI,OAAO,SAAS,eAAe,cAAc,EAC9C,SAAO,OAAO,YAAY,cAAc,YAAY,qBACvD,IAAI,OAAO,SAAS,eAAe,eAAe,EAC/C,SAAO,OAAO,IAAI,cAAc,iBAAiB,QAAQ,EAAE,GAC9D,IAAI,OAAO,SAAS,eAAe,eAAe,EAC/C,SAAO,OAAO,YAAY,cAAc,aAAa,iBAExD,IAAI,MAAM,SAAS,eAAe,cAAc,EAAK,QAAM,MAAM,MAAM,QAAQ,GAAG,QAAQ,QAC1F,IAAI,MAAM,SAAS,eAAe,cAAc,EAAK,QAAM,MAAM,MAAM,QAAQ,GAAG,QAAQ,OAC5F,CAEA,IAAI,OAAO,SAAS,eAAe,eAAe,EAClD,GAAG,SAAS,IAAI,IAAI,CAClB,OAAO,MAAM,QAAQ,QACrB,IAAI,KAAK,SAAS,eAAe,gBAAgB,EAAK,OAAK,KAAK,MAAM,QAAQ,GAAG,QAAQ,QACzF,IAAI,KAAK,SAAS,eAAe,gBAAgB,EAAK,OAAK,KAAK,MAAM,QAAQ,GAAG,QAAQ,QACzF,IAAI,KAAK,SAAS,eAAe,iBAAiB,EAAK,OAAK,KAAK,YAAY,cAAc,YAAY,qBACvG,IAAI,KAAK,SAAS,eAAe,iBAAiB,EAAK,OAAK,KAAK,YAAY,cAAc,aAAa,iBACxG,IAAI,MAAM,SAAS,eAAe,iBAAiB,EAAK,QAAM,MAAM,IAAI,cAAc,gBAAgB,QAAQ,EAAE,GAChH,IAAI,MAAM,SAAS,eAAe,iBAAiB,EAAK,QAAM,MAAM,IAAI,cAAc,iBAAiB,QAAQ,EAAE,EACnH,CAEA,cAAc,EAEd,cAAc,CAChB,CAEA,SAAS,aAAa,KAAK,QAAQ,IAAI,CACrC,GAAI,IACJ,KAAI,MAAM,SAAS,eAAe,OAAO,EACzC,GAAI,MAEJ,KAAI,QAAQ,KAAK,cAAc,iCAAiC,EAC5D,MAAM,KAAK,cAAc,KAAK,EAC/B,UAAQ,QAAQ,MAAM,QAAQ,QAC9B,QAAM,MAAM,MAAM,QAAQ,QAC7B,MAAM,IAAI,KAAK,IAAI,SAAS,GAAG,EAAE,IAAI,KAAK,aAC1C,MAAM,MAAM,QAAQ,QACpB,KAAK,QAAQ,MACf,CAEA,SAAS,eAAe,CACtB,GAAI,cAAc,aAClB,KAAI,OAAO,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,EAC3F,CAAC,GAAG,IAAI,EAAE,QAAQ,SAAS,OAAO,CAChC,IAAI,KAAK,SAAS,eAAe,YAAY,MAAM,EACnD,GAAI,KACJ,MAAK,MAAM,QAAQ,QACnB,IAAI,QAAQ,SAAS,eAAe,iBAAiB,MAAM,EACvD,QAAQ,SAAS,eAAe,iBAAiB,MAAM,EACvD,QAAQ,SAAS,eAAe,iBAAiB,MAAM,EACvD,OAAO,SAAS,eAAe,gBAAgB,MAAM,EACrD,QAAQ,SAAS,eAAe,iBAAiB,MAAM,EACvD,UAAU,SAAS,eAAe,mBAAmB,MAAM,EAI/D,GAHG,UAAQ,QAAQ,YAAY,cAAc,cAAc,sBACxD,UAAQ,QAAQ,YAAY,cAAc,cAAc,IACxD,UAAQ,QAAQ,YAAY,cAAc,cAAc,IACxD,SAAS,KAAK,CAGf,IAAI,WAAW,cAAc,kBAAkB,IAAI,KAAK,EACxD,GAAG,CAAC,UAAU,CAEZ,IAAI,GAAG,cAAc,aAAa,IAAI,MAAM,aAAa,EACzD,UAAU,EAAE,EAAE,CAAC,GAAG,cAAc,aAAa,IAAI,MAAM,GAAG,EAAE,CAAC,CAC/D,CACG,SAAO,OAAO,YAAY,WAE7B,IAAI,YAAY,cAAc,cAAc,IAAI,MAAM,OAAO,EAC1D,UAAQ,QAAQ,YAAY,WAAW,WAAW,CAAC,EAAG,cAAc,cAAc,GACvF,MACK,SAAO,OAAO,YAAY,cAAc,aAAa,IACrD,UAAQ,QAAQ,YAAY,cAAc,cAAc,IAE7D,GAAG,UAAU,CAOX,QANI,KAAK,cAAc,eAAe,CAAC,EACnC,OAAO,cAAc,cAAc,IAAI,MAAM,GAAG,EAAE,IAAI,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAE,CAAC,EACnF,MAAM,UAAU,cAAc,cAAc,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EACrE,MAAM,KAAK,IAAI,EAAG,KAAK,QAAQ,MAAM,QAAQ,CAAC,EAC9C,MAAM,MAAM,MACZ,KAAK,GACD,EAAE,EAAE,EAAE,MAAM,IAAI,CACtB,IAAI,GAAG,EAAE,EAAE,oBAAoB,GAC/B,GAAG,KAAK,CAAC,EACP,MAAM,aAAa,KAAK,CAAC,EAAE,IAAI,WAAW,KAAK,CAAC,EAAE,MAAM,IAAI,4FAA4F,GAAG,sCACtJ,CACL,IAAI,SAAS,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,YAAY,EACvC,GAAG,OAAO,EAAE,OAAO,MAAM,EAC7B,MAAM,mEAAmE,GAAG,0BAA0B,GAAG,oHAAoH,QAAQ,QACvO,CACF,CACG,MAAM,IACP,MAAM,4OAA4O,MAAM,UAE1P,UAAU,UAAU,IACtB,EACF,CAAC,EACH,CAEA,SAAS,eAAe,CACtB,IAAI,MAAM,CAAC,gBAAgB,iBAAiB,EAEzC,SAAS,eAAe,eAAe,EAAE,UAAU,KAAK,GAE3D,MAAM,6EAA6E,EAChF,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAE,CAAC,EAClC,KAAK,SAAS,KAAK,CAClB,IAAI,QAAQ,KAAK,SAAS,CAAC,EAC3B,GAAI,QAAQ,OACZ,KAAI,KAAK,uBAAuB,OAAO,EACvC,MAAM,QAAQ,SAAS,GAAG,CACxB,IAAI,GAAG,SAAS,eAAe,EAAE,EAC9B,KAAG,GAAG,UAAU,KACrB,CAAC,EAED,WAAW,mBAAmB,GAAG,EACnC,CAAC,EACA,MAAM,UAAU,CAAC,CAAC,CACvB,CAEA,SAAS,uBAAuB,QAAQ,CACtC,IAAI,MAAM,SAAS,EAAE,CACV,QAAL,EAAE,GAAW,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,uBAAuB,EAAE,EAAE,UAAU,QAAQ,mBAAc,OAAO,CACpG,EAEI,aAAa,QAAQ,OAAO,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,OAAO,CAAE,CAAC,EAChF,GAAG,CAAC,aAAa,OAAO,MAAO,oCAE/B,IAAI,MAAM,aAAa,IAAI,SAAS,EAAE,IAAI,CACxC,IAAI,OAAO,OAAO,IACd,MAAM,EAAE,OAAO,CAAC,EAChB,YAAY,EAAE,QAAQ,mIAAmI,EAAE,QAAQ,SAAS,GAC5K,UAAU,MACX,aAAa,MAAM,kHACnB,GACC,OAAO,WAAW,IACtB,MAAO,8LACJ,UACA,wFACA,YACA,gEAAgE,MAAM,EAAE,MAAM,EAAE,kBACpE,OAAO,0GACnB,EAAE,KACF,uGACiG,EAAE,KAAK,OAAO,EAAE,KAAK,oBAG3H,CAAC,EAAE,KAAK,EAAE,EAEV,MAAO,gYAGJ,MACA,cAEL,CAGA,SAAS,oBAAoB,CAC3B,SAAS,iBAAiB,mBAAmB,EAAE,QAAQ,SAAS,GAAG,CAEjE,GAAG,MAAM,gBAAgB,OAEzB,IAAI,OAAO,GAAM,OAAO,WACxB,GAAG,iBAAiB,YAAY,SAAS,EAAE,CACzC,OAAO,GAAK,GAAG,MAAM,OAAO,WAC5B,OAAO,EAAE,MAAM,GAAG,WAAW,WAAW,GAAG,UAC7C,CAAC,EACD,GAAG,iBAAiB,aAAa,UAAU,CAAC,OAAO,GAAM,GAAG,MAAM,OAAO,MAAO,CAAC,EACjF,GAAG,iBAAiB,UAAU,UAAU,CAAC,OAAO,GAAM,GAAG,MAAM,OAAO,MAAO,CAAC,EAC9E,GAAG,iBAAiB,YAAY,SAAS,EAAE,CACzC,GAAI,OAAc,GAAE,eAAe,EACnC,IAAI,EAAE,EAAE,MAAM,GAAG,WACjB,GAAG,WAAW,YAAY,EAAE,QAAQ,IACtC,CAAC,EAED,WAAW,UAAU,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,QAAQ,CAAC,CAAE,EAAE,GAAI,EACrE,WAAW,UAAU,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,SAAS,QAAQ,CAAC,CAAE,EAAE,IAAI,CACtE,CAAC,CACH,CAGA,OAAO,aAAe,CAAC,OAAO,GAAO,OAAO,GAAI,KAAK,EAAG,QAAQ,EAAG,QAAQ,GAAI,UAAU,EAAE,EAC3F,IAAI,eAAiB,KAAM,aAAe,EAAG,aAAe,EAAG,aAAe,KAE9E,SAAS,kBAAkB,CACzB,IAAI,SAAW,OAAO,iBAAiB,CAAC,EACpC,MAAQ,SAAS,OAAO,SAAS,GAAG,CAAC,OAAO,GAAG,SAAU,CAAC,EAC9D,GAAG,CAAC,MAAM,OAAO,CACf,MAAM,iJAA4I,EAClJ,MACF,CACA,GAAG,CAAC,MAAM,OAAO,CACf,MAAM,6FAA6F,EACnG,MACF,CAEA,IAAI,KAAO,SAAS,eAAe,eAAe,EAClD,GAAI,KACJ,MAAK,UAAY,GAEjB,MAAM,QAAQ,SAAS,GAAG,CACxB,IAAI,IAAM,SAAS,cAAc,QAAQ,EACzC,IAAI,KAAO,SACX,IAAI,MAAM,QAAU,yKACpB,IAAI,UAAY,aAAa,GAAG,IAAI,6DAA6D,GAAG,MAAM,uJAC8C,GAAG,MAAM,UACjK,IAAI,iBAAiB,QAAS,UAAU,CACtC,KAAK,iBAAiB,QAAQ,EAAE,QAAQ,SAAS,EAAE,CAAE,EAAE,MAAM,YAAY,UAAW,EAAE,MAAM,WAAW,MAAQ,CAAC,EAChH,IAAI,MAAM,YAAY,UAAW,IAAI,MAAM,WAAW,UACtD,kBAAkB,EAClB,WAAW,UAAU,CAAE,cAAc,EAAE,CAAG,EAAG,GAAG,CAClD,CAAC,EACD,KAAK,YAAY,GAAG,CACtB,CAAC,EAED,IAAI,UAAY,SAAS,eAAe,eAAe,EACpD,YAAW,UAAU,MAAM,QAAW,OAAO,cAAc,OAAO,aAAa,OAAQ,QAAQ,QAElG,IAAI,MAAQ,SAAS,eAAe,mBAAmB,EACnD,GAAK,SAAS,eAAe,sBAAsB,EACpD,QAAQ,MAAM,MAAM,QAAQ,OAAQ,WAAW,UAAU,CAAE,MAAM,MAAM,UAAU,uBAAwB,MAAM,MAAM,QAAQ,GAAK,EAAE,EAAE,GACtI,KAAI,GAAG,MAAM,QAAQ,SAC1B,CAEA,SAAS,cAAc,GAAG,CAExB,OAAO,aAAe,CACpB,OAAQ,GACR,OAAQ,GACR,KAAM,EACN,QAAS,EACT,QAAS,GAAG,IACZ,UAAW,GAAG,KAChB,EACG,OAAO,cAAiB,YAAY,aAAa,EACjD,OAAO,UAAa,YAAY,SAAS,EAC5C,uBAAuB,CACzB,CAGA,SAAS,oBAAoB,CAC3B,OAAO,aAAe,CAAC,OAAO,GAAO,OAAO,GAAI,KAAK,EAAG,QAAQ,EAAG,QAAQ,GAAI,UAAU,EAAE,EAC3F,uBAAuB,EACpB,OAAO,cAAe,YAAY,aAAa,EAC/C,OAAO,UAAW,YAAY,SAAS,EAC1C,kBAAkB,CACpB,CAEA,SAAS,wBAAwB,CAC/B,CAAC,aAAa,WAAW,EAAE,QAAQ,SAAS,GAAG,CAC7C,IAAI,IAAI,SAAS,eAAe,EAAE,EAClC,GAAI,IACJ,KAAI,IAAI,IAAI,cAAc,aAAa,EACnC,MAAM,IAAI,cAAc,eAAe,EACvC,MAAM,IAAI,cAAc,eAAe,EACxC,OAAO,cAAc,OAAO,aAAa,QACvC,QAAO,MAAM,YAAY,oBACzB,MAAK,IAAI,YAAY,sBACrB,QACD,MAAM,WAAW,OAAO,aAAa,QAAQ,aAAa,OAAO,aAAa,QAAQ,0EAA0E,IAC9J,0EAA0E,OAAO,aAAa,WAAW,QAAQ,UACnH,MAAM,MAAM,QAAQ,cACpB,MAAM,MAAM,WAAW,SACvB,MAAM,MAAM,IAAI,MAChB,MAAM,MAAM,QAAQ,sBAGnB,QAAO,MAAM,YAAY,oBACzB,MAAK,IAAI,YAAY,oDACrB,QAAO,MAAM,MAAM,QAAQ,SAElC,CAAC,CACH,CAEA,SAAS,mBAAmB,CAC1B,IAAI,MAAM,SAAS,eAAe,mBAAmB,EACjD,GAAG,SAAS,eAAe,sBAAsB,EACrD,MAAM,MAAM,QAAQ,IACpB,MAAM,MAAM,UAAU,uBACtB,WAAW,UAAU,CAAC,MAAM,MAAM,QAAQ,OAAQ,GAAG,MAAM,QAAQ,MAAO,EAAE,GAAG,CACjF,CAGA,SAAS,oBAAoB,CAC3B,GAAG,CACD,GAAG,aAAa,QAAQ,aAAa,EAAE,OACvC,aAAa,QAAQ,cAAc,GAAG,EACtC,IAAI,GAAG,SAAS,eAAe,aAAa,EACzC,KAAI,GAAG,MAAM,WAAW,cAAc,GAAG,MAAM,QAAQ,IAAI,WAAW,UAAU,CAAC,GAAG,MAAM,QAAQ,MAAO,EAAE,GAAG,EACnH,MAAS,CAAC,CACZ,EAEC,UAAU,CACT,GAAG,CACD,GAAG,aAAa,QAAQ,aAAa,EAAE,CACrC,IAAI,GAAG,SAAS,eAAe,aAAa,EACzC,KAAG,GAAG,MAAM,QAAQ,OACzB,CACF,MAAS,CAAC,CAGZ,OAAO,WAAW,WAClB,OAAO,cAAc,cACrB,OAAO,iBAAiB,iBACxB,OAAO,iBAAiB,iBACxB,OAAO,YAAY,YACnB,OAAO,qBAAqB,qBAC5B,OAAO,mBAAmB,mBAC1B,OAAO,WAAW,WAClB,OAAO,uBAAuB,uBAC9B,OAAO,kBAAkB,kBACzB,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,sBAAsB,sBAC7B,OAAO,cAAc,cACrB,OAAO,kBAAkB,kBACzB,OAAO,mBAAmB,mBAC1B,OAAO,qBAAqB,qBAC5B,OAAO,kBAAkB,kBACzB,OAAO,eAAe,eACtB,OAAO,WAAW,WAClB,OAAO,mBAAmB,mBAC1B,OAAO,YAAY,YACnB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,WAAW,WAClB,OAAO,eAAe,eACtB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,eAAe,eACtB,OAAO,mBAAmB,mBAC1B,OAAO,mBAAmB,mBAC1B,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,qBAAqB,qBAC5B,OAAO,aAAa,aACpB,OAAO,cAAc,cACrB,OAAO,aAAa,aACpB,OAAO,uBAAuB,uBAC9B,OAAO,sBAAsB,sBAC7B,OAAO,mBAAmB,mBAC1B,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,aAAa,aACpB,OAAO,eAAe,eACtB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,YAAY,YACnB,OAAO,WAAW,WAClB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,cAAc,cACrB,OAAO,UAAU,UACjB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,eAAe,eACtB,OAAO,oBAAoB,oBAC3B,OAAO,cAAc,cACrB,OAAO,oBAAoB,mBAE3B,GAAG,EAIH,IAAI,gBAAgB,GAAM,gBAAgB,GAAM,YAAY,GAC5D,SAAS,cAAc,EAAE,CACvB,OAAI,EACD,EAAE,QAAQ,UAAU,GAAG,EAAQ,iCAAiC,EAAE,MAAM,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EACnG,EAAE,QAAQ,WAAW,GAAG,EAAQ,iCAAiC,EAAE,MAAM,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EACrG,EAAE,QAAQ,SAAS,GAAG,EAAQ,iCAAiC,EAAE,MAAM,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAC7F,EAJK,EAKd,CACA,SAAS,YAAY,CACnB,IAAI,IAAK,OAAO,eAAe,OAAO,cAAc,kBAAmB,GACvE,GAAI,IACJ,aAAY,cAAc,GAAG,EAC7B,IAAI,MAAO,OAAO,eAAe,OAAO,cAAc,oBAAsB,+BAA+B,YAAY,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,iBAC1J,MAAO,OAAO,eAAe,OAAO,cAAc,oBAAqB,eAEvE,KAAK,SAAS,eAAe,WAAW,EACxC,GAAG,SAAS,eAAe,cAAc,EACzC,KAAK,SAAS,eAAe,aAAa,EAC3C,MAAM,KAAK,aAAa,SAAS,MAAK,SAAS,KAAK,YAAY,IAAI,EACpE,IAAI,GAAG,aAAa,SAAS,MAAK,SAAS,KAAK,YAAY,EAAE,EAC9D,MAAM,KAAK,aAAa,SAAS,MAAK,SAAS,KAAK,YAAY,IAAI,EACvE,IAAI,GAAG,SAAS,eAAe,gBAAgB,EAAK,KAAG,GAAG,IAAI,OAC9D,IAAI,GAAG,SAAS,eAAe,YAAY,EAAK,KAAG,GAAG,IAAI,OAC1D,IAAI,GAAG,SAAS,eAAe,cAAc,EAAK,KAAG,GAAG,YAAY,OACpE,IAAI,GAAG,SAAS,eAAe,UAAU,EAAK,KAAG,GAAG,YAAY,OAChE,IAAI,GAAG,SAAS,eAAe,YAAY,EAAK,KAAG,GAAG,YAAY,OACpE,CACA,SAAS,iBAAiB,CACxB,IAAI,IAAK,OAAO,eAAe,OAAO,cAAc,kBAAmB,GACvE,GAAG,GAAC,KAAK,mBACL,aAAY,WAAW,EACxB,EAAC,aACJ,KAAI,KAAK,SAAS,eAAe,WAAW,EACxC,KAAK,SAAS,eAAe,aAAa,EAC3C,iBAAoB,OAAK,KAAK,MAAM,QAAQ,QAAU,OAAK,KAAK,MAAM,QAAQ,UACzE,OAAK,KAAK,MAAM,QAAQ,SAAW,OAAK,KAAK,MAAM,QAAQ,SACrE,CACA,SAAS,iBAAiB,CACxB,IAAI,EAAE,SAAS,eAAe,WAAW,EAAK,IAAE,EAAE,MAAM,QAAQ,QAChE,IAAI,EAAE,SAAS,eAAe,aAAa,EAAK,IAAE,EAAE,MAAM,QAAQ,OACpE,CACA,SAAS,WAAW,CACd,aAAY,WAAW,EAC3B,IAAI,GAAG,SAAS,eAAe,cAAc,EACzC,GAAG,SAAS,eAAe,YAAY,EACxC,CAAC,IAAI,CAAC,IAAI,CAAC,cACd,GAAG,UAAU,gBAAgB,YAAY,iGACzC,GAAG,UAAU,IAAI,MAAM,EACzB,CACA,SAAS,YAAY,CACnB,IAAI,GAAG,SAAS,eAAe,cAAc,EACzC,GAAG,SAAS,eAAe,YAAY,EACxC,KAAG,GAAG,UAAU,IAChB,IAAG,GAAG,UAAU,OAAO,MAAM,CAClC,CACA,SAAS,eAAe,CACtB,gBAAgB,GAChB,IAAI,EAAE,SAAS,eAAe,WAAW,EAAK,IAAE,EAAE,MAAM,QAAQ,QAChE,IAAI,EAAE,SAAS,eAAe,aAAa,EAAK,IAAE,EAAE,MAAM,QAAQ,OACpE,CACA,SAAS,cAAc,CACrB,gBAAgB,GAChB,gBAAgB,CAClB,CACA,SAAS,iBAAiB,QAAQ,SAAS,EAAE,CAC3C,IAAI,GAAG,SAAS,eAAe,cAAc,EAC1C,IAAI,GAAG,UAAU,SAAS,MAAM,GAAG,EAAE,SAAS,IAAG,WAAW,CACjE,CAAC,EACD,WAAW,WAAW,GAAG,GAGxB,UAAU,CACT,IAAI,UAAU,KAEd,OAAO,aAAa,UAAU,CAC5B,IAAI,IAAI,SAAS,eAAe,WAAW,EACvC,IAAI,SAAS,eAAe,cAAc,EAC9C,GAAG,GAAC,KAAK,CAAC,KACV,KAAI,KAAK,IAAI,MAAM,UAAU,OAC7B,IAAI,MAAM,QAAQ,KAAK,QAAQ,OAC/B,IAAI,YAAY,KAAK,qBAAgB,+BACrC,IAAI,MAAM,MAAM,KAAK,eAAe,eACjC,MAAK,WAAW,UAAU,CAAC,IAAI,EAAE,SAAS,eAAe,YAAY,EAAK,GAAE,EAAE,MAAM,CAAE,EAAE,EAAE,EAC/F,EAEA,OAAO,iBAAiB,SAAS,WAAW,UAAU,CACpD,IAAI,IAAI,SAAS,eAAe,YAAY,EAC5C,GAAI,IAEJ,IAAG,IAAI,aAAa,SAAS,OAC3B,SAAS,KAAK,YAAY,GAAG,EAE1B,CAAC,IAAI,cAAa,CAEnB,IAASM,YAAT,UAAqB,CACnB,IAAI,IAAI,SAAS,eAAe,MAAM,EAClC,GAAG,SAAS,eAAe,YAAY,EAC3C,GAAG,KAAK,GAAG,CACT,IAAI,IAAI,IAAI,sBAAsB,EAE/B,IAAI,KAAK,IACV,GAAG,MAAM,KAAK,IAAI,KAAK,KACvB,GAAG,MAAM,MAAO,OAAO,WAAW,IAAI,MAAO,KAC7C,GAAG,MAAM,MAAM,IAAI,MAAM,OAGzB,GAAG,MAAM,KAAK,IACd,GAAG,MAAM,MAAM,IACf,GAAG,MAAM,MAAM,QAEjB,GAAG,MAAM,SAAS,MACpB,CACF,EAlBS,eAAAA,YADT,IAAI,aAAa,GAoBjB,OAAO,iBAAiB,SAASA,WAAU,EAC3C,OAAO,WAAWA,WACpB,CAGC,OAAO,YAAW,OAAO,WAAW,EACvC,IAAI,IAAI,SAAS,eAAe,iBAAiB,EAC7C,GAAG,SAAS,eAAe,qBAAqB,EACjD,MAAI,IAAI,YAAY,SAAI,WAAW,eAAe,OAAO,GACzD,KAAG,GAAG,UAAU,WAEnB,IAAI,MAAM,SAAS,eAAe,OAAO,EACzC,GAAG,MAAM,CACP,IAAI,KAAK,MAAM,sBAAsB,EACjC,OAAO,KAAK,KAAK,GAAG,KAAK,SAAS,OAAO,aAAa,SAAS,gBAAgB,cACnF,IAAI,MAAM,QAAQ,OAAO,OAAO,MAClC,MACE,IAAI,MAAM,QAAQ,OAGpB,GAAG,CAAC,IAAI,aAAa,CAInB,IAASC,kBAAT,UAA2B,CACzB,IAAI,IAAI,SAAS,eAAe,OAAO,EACnC,EAAE,SAAS,eAAe,YAAY,EAC1C,GAAG,GAAC,KAAK,CAAC,GACV,KAAI,EAAE,IAAI,sBAAsB,EAC5B,GAAG,OAAO,aAAa,SAAS,gBAAgB,aAGhD,cAAc,EAAE,OAAO,EACvBC,QAAO,EAAE,KAAK,GAAG,EAAE,QAAQ,GAC/B,EAAE,MAAM,QAAS,eAAeA,QAAQ,OAAO,OACjD,EAXS,qBAAAD,kBAHT,IAAI,aAAa,GAEjB,IAAI,SAAS,SAAS,cAAc,iBAAiB,EAalD,UACD,SAAS,iBAAiB,SAASA,kBAAiB,CAAC,QAAQ,EAAI,CAAC,CAEtE,EACF,EAEA,OAAO,eAAe,UAAU,CAC9B,IAAI,IAAI,SAAS,eAAe,YAAY,EACzC,MAAI,IAAI,MAAM,QAAQ,QACtB,YAAW,UAAU,WAAW,EAAE,UAAU,MAC/C,IAAI,EAAE,SAAS,eAAe,YAAY,EACvC,IAAE,EAAE,WAAW,GACpB,EAGF,OAAO,WAAW,WAClB,OAAO,cAAc,cACrB,OAAO,iBAAiB,iBACxB,OAAO,iBAAiB,iBACxB,OAAO,YAAY,YACnB,OAAO,qBAAqB,qBAC5B,OAAO,mBAAmB,mBAC1B,OAAO,WAAW,WAClB,OAAO,uBAAuB,uBAC9B,OAAO,kBAAkB,kBACzB,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,sBAAsB,sBAC7B,OAAO,cAAc,cACrB,OAAO,kBAAkB,kBACzB,OAAO,mBAAmB,mBAC1B,OAAO,qBAAqB,qBAC5B,OAAO,kBAAkB,kBACzB,OAAO,eAAe,eACtB,OAAO,WAAW,WAClB,OAAO,mBAAmB,mBAC1B,OAAO,YAAY,YACnB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,WAAW,WAClB,OAAO,eAAe,eACtB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,eAAe,eACtB,OAAO,mBAAmB,mBAC1B,OAAO,mBAAmB,mBAC1B,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,qBAAqB,qBAC5B,OAAO,aAAa,aACpB,OAAO,cAAc,cACrB,OAAO,aAAa,aACpB,OAAO,uBAAuB,uBAC9B,OAAO,sBAAsB,sBAC7B,OAAO,mBAAmB,mBAC1B,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,aAAa,aACpB,OAAO,eAAe,eACtB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,YAAY,YACnB,OAAO,WAAW,WAClB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,cAAc,cACrB,OAAO,UAAU,UACjB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,eAAe,eACtB,OAAO,oBAAoB,oBAC3B,OAAO,cAAc,cACrB,OAAO,oBAAoB,mBAE3B,GAAG,EAEH,SAAS,oBAAoB,CAC3B,IAAI,EAAG,OAAO,eAAe,cAAc,KAAM,CAAC,EAClD,SAAS,IAAI,GAAG,IAAI,CAAC,IAAIE,IAAG,SAAS,eAAe,EAAE,EAAKA,KAAI,MAAIA,IAAG,YAAY,IAAI,CACtF,SAAS,QAAQ,GAAG,IAAI,CAAC,IAAIA,IAAG,SAAS,eAAe,EAAE,EAAKA,KAAI,MAAIA,IAAG,UAAU,IAAI,CAMxF,IAAI,eAAiB,EAAE,cAAc,EACrC,IAAI,aAAiB,EAAE,YAAY,EACnC,IAAI,cAAiB,EAAE,aAAa,EACpC,IAAI,kBAAmB,EAAE,aAAa,EACtC,IAAI,gBAAmB,EAAE,WAAW,EACpC,IAAI,kBAAmB,EAAE,aAAa,EACtC,IAAI,YAAiB,EAAE,OAAO,EAC9B,IAAI,eAAiB,EAAE,eAAe,EACtC,IAAI,gBAAiB,EAAE,WAAW,EAGlC,IAAI,OAAQ,SAAO,eAAe,cAAc,mBAAmB,IACnE,CAAC,uBAAuB,uBAAuB,gBAAgB,EAAE,QAAQ,SAAS,GAAG,CACnF,IAAIA,IAAG,SAAS,eAAe,EAAE,EAAKA,MAAGA,IAAG,MAAM,QAAQ,OAAO,GAAG,OACtE,CAAC,EAED,IAAI,WAAW,OAAO,eAAe,cAAc,eAC/C,QAAQ,OAAO,eAAe,cAAc,QAQhD,GAPA,CAAC,eAAe,cAAc,iBAAiB,EAAE,QAAQ,SAAS,GAAG,CACnE,IAAIA,IAAG,SAAS,eAAe,EAAE,EAC7BA,MACD,YAAY,SAASA,IAAG,UAAU,QAAQA,IAAG,MAAM,QAAQ,SACzDA,IAAG,MAAM,QAAQ,OACxB,CAAC,EAEE,EAAE,UAAU,CAKb,IAASC,YAAT,SAAoB,IAAK,MAAM,CAC7B,GAAI,IACJ,KAAI,IAAI,IAAI,YACR,WAAW,IAAI,MAAM,eAAe,EACxC,IAAI,YAAY,WAAW,MAAM,IAAI,WAAW,CAAC,EAAE,MACrD,EALS,eAAAA,YAJL,IAAI,SAAS,eAAe,OAAO,EACnC,IAAI,SAAS,eAAe,SAAS,EACrC,IAAI,SAAS,eAAe,eAAe,EAQ/CA,YAAW,IAAK,EAAE,SAAS,EAC3BA,YAAW,IAAK,EAAE,SAAS,EACxB,MAAK,IAAI,YAAY,EAAE,UAC5B,CAEA,GAAG,EAAE,UAAU,CACb,IAAI,MAAM,EAAE,UAAU,MAAM,MAAG,EAC3B,GAAG,SAAS,eAAe,aAAa,EACzC,KAAI,GAAG,UAAU,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,MAAM,OAAO,EAAE,SAAM,MAAM,MAAM,CAAC,EAAE,KAAK,MAAG,EAAE,IAClG,CACF,CAEA,WAAW,mBAAoB,GAAG,GAKjC,UAAU,CACT,IAAI,IAAI,SAAS,eAAe,SAAS,EACrC,MACJ,IAAI,iBAAiB,QAAQ,UAAU,CACrC,IAAI,IAAI,KAAK,eACT,QAAQ,OAAO,YAAa,WAAW,WAAW,KAAK,KAAK,EAAE,KAAK,MACvE,GAAG,UAAU,KAAK,MAAM,CAAC,KAAK,MAAM,QAAQ,GAAG,CAAC,KAAK,kBAAkB,KAAK,IAAI,IAAI,QAAQ,MAAM,EAAE,KAAK,IAAI,IAAI,QAAQ,MAAM,CAAC,CAAE,MAAS,CAAC,CAAC,CAC/I,CAAC,EAGH,OAAO,WAAW,WAClB,OAAO,cAAc,cACrB,OAAO,iBAAiB,iBACxB,OAAO,iBAAiB,iBACxB,OAAO,YAAY,YACnB,OAAO,qBAAqB,qBAC5B,OAAO,mBAAmB,mBAC1B,OAAO,WAAW,WAClB,OAAO,uBAAuB,uBAC9B,OAAO,kBAAkB,kBACzB,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,sBAAsB,sBAC7B,OAAO,cAAc,cACrB,OAAO,kBAAkB,kBACzB,OAAO,mBAAmB,mBAC1B,OAAO,qBAAqB,qBAC5B,OAAO,kBAAkB,kBACzB,OAAO,eAAe,eACtB,OAAO,WAAW,WAClB,OAAO,mBAAmB,mBAC1B,OAAO,YAAY,YACnB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,WAAW,WAClB,OAAO,eAAe,eACtB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,eAAe,eACtB,OAAO,mBAAmB,mBAC1B,OAAO,mBAAmB,mBAC1B,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,qBAAqB,qBAC5B,OAAO,aAAa,aACpB,OAAO,cAAc,cACrB,OAAO,aAAa,aACpB,OAAO,uBAAuB,uBAC9B,OAAO,sBAAsB,sBAC7B,OAAO,mBAAmB,mBAC1B,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,aAAa,aACpB,OAAO,eAAe,eACtB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,YAAY,YACnB,OAAO,WAAW,WAClB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,cAAc,cACrB,OAAO,UAAU,UACjB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,eAAe,eACtB,OAAO,oBAAoB,oBAC3B,OAAO,cAAc,cACrB,OAAO,oBAAoB,oBAE3B,GAAG,GAEF,UAAU,CAAC,IAAI,GAAG,EAAE,GAAG,GAAU,EAAE,SAAS,cAAc,eAAe,EAAK,GAAE,EAAE,iBAAiB,aAAa,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,EAAK,EAAE,CAAC,QAAQ,EAAI,CAAC,EAAE,SAAS,iBAAiB,WAAW,SAAS,EAAE,CAAI,IAAI,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAE,QAAQ,GAAG,IAAG,cAAc,EAAE,GAAG,EAAM,EAAE,CAAC,QAAQ,EAAI,CAAC,CAAE,GAAG,EAEzU,SAAS,sBAAsB,CAC7B,IAAI,IAAI,OAAO,eAAe,CAAC,EAE3B,IAAI,CAAC,eAAe,eAAe,eAAe,eAAe,gBAAgB,gBAAgB,iBAAiB,iBAAiB,gBAAgB,eAAe,EACtK,OAAO,KAAK,GAAG,EAAE,QAAQ,SAAS,KAAK,CAAC,IAAI,GAAG,SAAS,eAAe,IAAI,EAAM,IAAI,IAAI,IAAI,IAAI,CAAC,EAAK,IAAI,MAAI,GAAG,UAAU,IAAI,CAAC,EACjI,IAAI,GAAG,SAAS,eAAe,gBAAgB,EAC5C,IAAI,IAAI,eAAa,GAAG,YAAY,IAAI,cAC3C,IAAI,GAAG,SAAS,eAAe,eAAe,EAC3C,IAAI,IAAI,cAAY,GAAG,YAAY,IAAI,aAC1C,IAAI,IAAI,SAAS,eAAe,iBAAiB,EAAE,IAAI,SAAS,eAAe,eAAe,EAC1F,IAAI,SAAS,eAAe,iBAAiB,EAAE,IAAI,SAAS,eAAe,eAAe,EAC3F,KAAK,IAAI,gBAAc,IAAI,YAAY,IAAI,eAC3C,KAAK,IAAI,cAAY,IAAI,YAAY,IAAI,aACzC,KAAK,IAAI,gBAAc,IAAI,YAAY,IAAI,eAC3C,KAAK,IAAI,cAAY,IAAI,YAAY,IAAI,aAC5C,IAAI,QAAQ,SAAS,eAAe,WAAW,EAC3C,SAAS,SAAS,eAAe,YAAY,EAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,CAAE,CAAC,EAC3D,SAAS,UAAU,KAAK,SACzB,QAAQ,MAAM,QAAQ,QACtB,SAAS,UAAU,KAAK,IAAI,SAAS,EAAE,EAAE,CACvC,MAAO,2IACyB,EAAE,oMAC/B,EAAE,EAAE,sBAAsB,EAAE,gJACR,EAAE,wJAAwJ,EAAE,EAAE,cAEvL,CAAC,EAAE,KAAK,EAAE,EAEd,CACA,OAAO,WAAW,GAClB,SAAS,YAAY,EAAE,CACrB,IAAI,KAAK,OAAO,WAChB,GAAG,MAAM,GAAG,OAAO,EAAE,CACnB,IAAI,GAAG,SAAS,eAAe,WAAW,IAAI,EAAE,GAAG,SAAS,eAAe,YAAY,IAAI,EACxF,KAAI,GAAG,MAAM,UAAU,IAAI,GAAG,MAAM,QAAQ,UAC5C,KAAG,GAAG,MAAM,UAAU,GAC3B,CACA,IAAI,EAAE,SAAS,eAAe,WAAW,CAAC,EAAE,GAAG,SAAS,eAAe,YAAY,CAAC,EAChF,OAAQ,OAAO,EAChB,QAAW,IAAG,EAAE,MAAM,UAAU,IAAI,EAAE,MAAM,QAAQ,UAAa,KAAG,GAAG,MAAM,UAAU,IAAG,OAAO,WAAW,KACvG,IAAG,EAAE,MAAM,UAAU,QAAQ,EAAE,MAAM,QAAQ,eAAkB,KAAG,GAAG,MAAM,UAAU,iBAAgB,OAAO,WAAW,EACjI,CACA,WAAW,qBAAqB,GAAG,EAInC,OAAO,WAAW,WAClB,OAAO,cAAc,cACrB,OAAO,iBAAiB,iBACxB,OAAO,iBAAiB,iBACxB,OAAO,YAAY,YACnB,OAAO,qBAAqB,qBAC5B,OAAO,mBAAmB,mBAC1B,OAAO,WAAW,WAClB,OAAO,uBAAuB,uBAC9B,OAAO,kBAAkB,kBACzB,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,sBAAsB,sBAC7B,OAAO,cAAc,cACrB,OAAO,kBAAkB,kBACzB,OAAO,mBAAmB,mBAC1B,OAAO,qBAAqB,qBAC5B,OAAO,kBAAkB,kBACzB,OAAO,eAAe,eACtB,OAAO,WAAW,WAClB,OAAO,mBAAmB,mBAC1B,OAAO,YAAY,YACnB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,WAAW,WAClB,OAAO,eAAe,eACtB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,eAAe,eACtB,OAAO,mBAAmB,mBAC1B,OAAO,mBAAmB,mBAC1B,OAAO,kBAAkB,kBACzB,OAAO,cAAc,cACrB,OAAO,cAAc,cACrB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,qBAAqB,qBAC5B,OAAO,aAAa,aACpB,OAAO,cAAc,cACrB,OAAO,aAAa,aACpB,OAAO,uBAAuB,uBAC9B,OAAO,sBAAsB,sBAC7B,OAAO,mBAAmB,mBAC1B,OAAO,iBAAiB,iBACxB,OAAO,aAAa,aACpB,OAAO,aAAa,aACpB,OAAO,eAAe,eACtB,OAAO,gBAAgB,gBACvB,OAAO,kBAAkB,kBACzB,OAAO,YAAY,YACnB,OAAO,WAAW,WAClB,OAAO,aAAa,aACpB,OAAO,gBAAgB,gBACvB,OAAO,cAAc,cACrB,OAAO,UAAU,UACjB,OAAO,gBAAgB,gBACvB,OAAO,gBAAgB,gBACvB,OAAO,eAAe,eACtB,OAAO,oBAAoB,oBAC3B,OAAO,cAAc,cACrB,OAAO,oBAAoB,mBAE3B,GAAG",
  "names": ["inp", "lines", "doCapture", "_cols", "_sbUrl", "_sbKey", "r", "_logData", "_ntSyncBar", "_ntCheckFloatBar", "inView", "el", "applyLabel"]
}
