{
  "version": 3,
  "sources": ["/cdn/shop/t/118/assets/florame-essential-upsell-guard.js?florame_guard=20260503a"],
  "sourcesContent": ["(function florameEssentialUpsellGuard() {\r\n  if (window.__florameEssentialUpsellGuardLoaded) return;\r\n  window.__florameEssentialUpsellGuardLoaded = true;\r\n  window.__florameEssentialUpsellGuardLoading = false;\r\n\r\n  const SELECTORS = {\r\n    container: 'div[data-essential-upsell-element=\"button-container\"]',\r\n    button: 'button[data-essential-upsell-element=\"add-to-cart-button\"]',\r\n    product: 'div[data-essential-upsell-element=\"product\"]',\r\n    variant: '[data-variant-id]',\r\n    funnel: '[data-essential-upsell-funnel-id]',\r\n  };\r\n\r\n  const VERIFY_DELAYS = [900, 1800, 3200];\r\n  const pendingByKey = new Map();\r\n\r\n  let cartCache = null;\r\n  let cartCacheAt = 0;\r\n  let cartRefreshPromise = null;\r\n\r\n  function rootPath() {\r\n    const root =\r\n      (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) ||\r\n      (window.routes && window.routes.root) ||\r\n      '/';\r\n    return root.endsWith('/') ? root : `${root}/`;\r\n  }\r\n\r\n  function cartUrl(path) {\r\n    return `${rootPath()}cart/${path}`;\r\n  }\r\n\r\n  function isEnabledButton(button) {\r\n    return !!button && !button.disabled && button.getAttribute('aria-disabled') !== 'true';\r\n  }\r\n\r\n  function normalizeId(value) {\r\n    const id = Number(value);\r\n    return Number.isFinite(id) && id > 0 ? String(Math.round(id)) : '';\r\n  }\r\n\r\n  function getFunnelId(element) {\r\n    const funnelElement = element && element.closest ? element.closest(SELECTORS.funnel) : null;\r\n    return funnelElement ? String(funnelElement.getAttribute('data-essential-upsell-funnel-id') || '') : '';\r\n  }\r\n\r\n  function getVariantId(container) {\r\n    const product = container && container.closest ? container.closest(SELECTORS.product) : null;\r\n    const variantElement = product ? product.querySelector(SELECTORS.variant) : null;\r\n    return normalizeId(variantElement && variantElement.getAttribute('data-variant-id'));\r\n  }\r\n\r\n  function getCartQuantity(cart, variantId) {\r\n    const id = normalizeId(variantId);\r\n    if (!id || !cart || !Array.isArray(cart.items)) return 0;\r\n\r\n    return cart.items.reduce((total, item) => {\r\n      const itemVariantId = normalizeId(item && (item.variant_id || item.id));\r\n      if (itemVariantId !== id) return total;\r\n      return total + Math.max(0, Number(item.quantity) || 0);\r\n    }, 0);\r\n  }\r\n\r\n  async function fetchCart(force) {\r\n    if (!force && cartCache && Date.now() - cartCacheAt < 4000) {\r\n      return cartCache;\r\n    }\r\n\r\n    if (!cartRefreshPromise) {\r\n      cartRefreshPromise = fetch(`${rootPath()}cart.js`, {\r\n        credentials: 'same-origin',\r\n        cache: 'no-store',\r\n        headers: { Accept: 'application/json' },\r\n      })\r\n        .then((response) => {\r\n          if (!response.ok) throw new Error(`Cart fetch failed: ${response.status}`);\r\n          return response.json();\r\n        })\r\n        .then((cart) => {\r\n          cartCache = cart;\r\n          cartCacheAt = Date.now();\r\n          return cart;\r\n        })\r\n        .finally(() => {\r\n          cartRefreshPromise = null;\r\n        });\r\n    }\r\n\r\n    return cartRefreshPromise;\r\n  }\r\n\r\n  function getSectionNames(cartElement) {\r\n    if (!cartElement || typeof cartElement.getSectionsToRender !== 'function') return [];\r\n\r\n    try {\r\n      return cartElement\r\n        .getSectionsToRender()\r\n        .flatMap((section) => [section.section, section.id])\r\n        .filter(Boolean)\r\n        .filter((value, index, all) => all.indexOf(value) === index);\r\n    } catch (_) {\r\n      return [];\r\n    }\r\n  }\r\n\r\n  function getCartElement() {\r\n    return document.querySelector('cart-items') || document.querySelector('cart-drawer');\r\n  }\r\n\r\n  function publishThemeEvent(eventName, payload) {\r\n    const publishFn = typeof publish === 'function' ? publish : window.publish;\r\n    if (typeof publishFn !== 'function') return;\r\n\r\n    try {\r\n      publishFn(eventName, payload);\r\n    } catch (_) {}\r\n  }\r\n\r\n  function themeEvents() {\r\n    if (typeof PUB_SUB_EVENTS !== 'undefined') return PUB_SUB_EVENTS;\r\n    return window.PUB_SUB_EVENTS || {};\r\n  }\r\n\r\n  async function refreshCartUi(cart) {\r\n    const cartElement = getCartElement();\r\n\r\n    if (cartElement && typeof cartElement.refreshSectionsFromServer === 'function') {\r\n      cartElement.refreshSectionsFromServer();\r\n    } else if (cartElement && typeof cartElement.renderContents === 'function') {\r\n      const sections = getSectionNames(cartElement);\r\n      if (sections.length) {\r\n        const response = await fetch(`${rootPath()}?sections=${encodeURIComponent(sections.join(','))}`, {\r\n          credentials: 'same-origin',\r\n          cache: 'no-store',\r\n        });\r\n        const sectionHtml = await response.json();\r\n        cartElement.renderContents({\r\n          id: cart && cart.items && cart.items[0] ? cart.items[0].id : undefined,\r\n          key: cart && cart.items && cart.items[0] ? cart.items[0].key : undefined,\r\n          sections: sectionHtml,\r\n        });\r\n      }\r\n    }\r\n\r\n    const events = themeEvents();\r\n    if (events.cartUpdate) {\r\n      publishThemeEvent(events.cartUpdate, {\r\n        source: 'florame-essential-upsell-guard',\r\n        cartData: cart,\r\n      });\r\n    }\r\n\r\n    document.dispatchEvent(\r\n      new CustomEvent('florame:cart-updated', {\r\n        detail: { source: 'essential-upsell-guard', cartData: cart, at: Date.now() },\r\n      })\r\n    );\r\n    document.dispatchEvent(new CustomEvent('essential-upsell-cart-updated'));\r\n    document.dispatchEvent(\r\n      new CustomEvent('essential-upsell:cart-updated', {\r\n        bubbles: true,\r\n        detail: { cart },\r\n      })\r\n    );\r\n    window.dispatchEvent(\r\n      new CustomEvent('cart:updated', {\r\n        detail: { cart },\r\n      })\r\n    );\r\n  }\r\n\r\n  function publishCartError(variantId, error) {\r\n    const events = themeEvents();\r\n    if (!events.cartError) return;\r\n\r\n    publishThemeEvent(events.cartError, {\r\n      source: 'florame-essential-upsell-guard',\r\n      productVariantId: variantId,\r\n      errors: error && error.message ? error.message : String(error || ''),\r\n      message: error && error.message ? error.message : String(error || ''),\r\n    });\r\n  }\r\n\r\n  async function addMissingQuantity(intent, missingQuantity) {\r\n    const properties = intent.funnelId ? { __essential_upsell_funnel_id: intent.funnelId } : {};\r\n    const response = await fetch(cartUrl('add.js'), {\r\n      method: 'POST',\r\n      credentials: 'same-origin',\r\n      headers: {\r\n        'Content-Type': 'application/json',\r\n        Accept: 'application/json',\r\n      },\r\n      body: JSON.stringify({\r\n        items: [\r\n          {\r\n            id: Number(intent.variantId),\r\n            quantity: missingQuantity,\r\n            properties,\r\n          },\r\n        ],\r\n      }),\r\n    });\r\n    const data = await response.json();\r\n\r\n    if (!response.ok || data.status) {\r\n      throw new Error(data.description || data.message || 'Impossibile aggiungere il prodotto al carrello.');\r\n    }\r\n\r\n    const cart = await fetchCart(true);\r\n    await refreshCartUi(cart);\r\n    return cart;\r\n  }\r\n\r\n  function scheduleVerify(key, delayIndex) {\r\n    const delay = VERIFY_DELAYS[Math.min(delayIndex, VERIFY_DELAYS.length - 1)];\r\n\r\n    window.setTimeout(async () => {\r\n      const intent = pendingByKey.get(key);\r\n      if (!intent) return;\r\n\r\n      try {\r\n        const cart = await fetchCart(true);\r\n        const actualQuantity = getCartQuantity(cart, intent.variantId);\r\n        if (actualQuantity >= intent.expectedQuantity) {\r\n          pendingByKey.delete(key);\r\n          return;\r\n        }\r\n\r\n        if (delayIndex < VERIFY_DELAYS.length - 1) {\r\n          scheduleVerify(key, delayIndex + 1);\r\n          return;\r\n        }\r\n\r\n        const missingQuantity = Math.max(1, intent.expectedQuantity - actualQuantity);\r\n        const updatedCart = await addMissingQuantity(intent, missingQuantity);\r\n        if (getCartQuantity(updatedCart, intent.variantId) >= intent.expectedQuantity) {\r\n          pendingByKey.delete(key);\r\n        }\r\n      } catch (error) {\r\n        pendingByKey.delete(key);\r\n        publishCartError(intent.variantId, error);\r\n        console.warn('[Florame Essential Upsell Guard]', error);\r\n      }\r\n    }, delay);\r\n  }\r\n\r\n  function registerUpsellIntent(container, button) {\r\n    const variantId = getVariantId(container);\r\n    if (!variantId || !isEnabledButton(button)) return;\r\n\r\n    const funnelId = getFunnelId(container);\r\n    const key = `${variantId}:${funnelId}`;\r\n    const cachedQuantity = getCartQuantity(cartCache, variantId);\r\n    const previousIntent = pendingByKey.get(key);\r\n    const baseQuantity = previousIntent ? Math.max(previousIntent.expectedQuantity, cachedQuantity) : cachedQuantity;\r\n    const intent = {\r\n      variantId,\r\n      funnelId,\r\n      expectedQuantity: baseQuantity + 1,\r\n      createdAt: Date.now(),\r\n    };\r\n\r\n    pendingByKey.set(key, intent);\r\n    scheduleVerify(key, 0);\r\n  }\r\n\r\n  function handleUpsellClick(event) {\r\n    const target = event.target;\r\n    if (!target || !target.closest) return;\r\n\r\n    const container = target.closest(SELECTORS.container);\r\n    if (!container) return;\r\n\r\n    const button = target.closest(SELECTORS.button) || container.querySelector(SELECTORS.button);\r\n    if (!isEnabledButton(button)) return;\r\n\r\n    if (!target.closest(SELECTORS.button)) {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      button.click();\r\n      return;\r\n    }\r\n\r\n    registerUpsellIntent(container, button);\r\n  }\r\n\r\n  function scheduleCartCacheRefresh() {\r\n    window.setTimeout(() => fetchCart(true).catch(() => {}), 160);\r\n  }\r\n\r\n  document.addEventListener('click', handleUpsellClick, true);\r\n  document.addEventListener('florame:cart-updated', scheduleCartCacheRefresh);\r\n  document.addEventListener('essential-upsell:cart-updated', scheduleCartCacheRefresh);\r\n  document.addEventListener('essential-upsell-cart-updated', scheduleCartCacheRefresh);\r\n  window.addEventListener('cart:updated', scheduleCartCacheRefresh);\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', () => fetchCart(true).catch(() => {}), { once: true });\r\n  } else {\r\n    fetchCart(true).catch(() => {});\r\n  }\r\n})();\r\n"],
  "mappings": "CAAC,UAAuC,CACtC,GAAI,OAAO,oCAAqC,OAChD,OAAO,oCAAsC,GAC7C,OAAO,qCAAuC,GAE9C,MAAM,UAAY,CAChB,UAAW,wDACX,OAAQ,6DACR,QAAS,+CACT,QAAS,oBACT,OAAQ,mCACV,EAEM,cAAgB,CAAC,IAAK,KAAM,IAAI,EAChC,aAAe,IAAI,IAEzB,IAAI,UAAY,KACZ,YAAc,EACd,mBAAqB,KAEzB,SAAS,UAAW,CAClB,MAAM,KACH,OAAO,SAAW,OAAO,QAAQ,QAAU,OAAO,QAAQ,OAAO,MACjE,OAAO,QAAU,OAAO,OAAO,MAChC,IACF,OAAO,KAAK,SAAS,GAAG,EAAI,KAAO,GAAG,IAAI,GAC5C,CAEA,SAAS,QAAQ,KAAM,CACrB,MAAO,GAAG,SAAS,CAAC,QAAQ,IAAI,EAClC,CAEA,SAAS,gBAAgB,OAAQ,CAC/B,MAAO,CAAC,CAAC,QAAU,CAAC,OAAO,UAAY,OAAO,aAAa,eAAe,IAAM,MAClF,CAEA,SAAS,YAAY,MAAO,CAC1B,MAAM,GAAK,OAAO,KAAK,EACvB,OAAO,OAAO,SAAS,EAAE,GAAK,GAAK,EAAI,OAAO,KAAK,MAAM,EAAE,CAAC,EAAI,EAClE,CAEA,SAAS,YAAY,QAAS,CAC5B,MAAM,cAAgB,SAAW,QAAQ,QAAU,QAAQ,QAAQ,UAAU,MAAM,EAAI,KACvF,OAAO,cAAgB,OAAO,cAAc,aAAa,iCAAiC,GAAK,EAAE,EAAI,EACvG,CAEA,SAAS,aAAa,UAAW,CAC/B,MAAM,QAAU,WAAa,UAAU,QAAU,UAAU,QAAQ,UAAU,OAAO,EAAI,KAClF,eAAiB,QAAU,QAAQ,cAAc,UAAU,OAAO,EAAI,KAC5E,OAAO,YAAY,gBAAkB,eAAe,aAAa,iBAAiB,CAAC,CACrF,CAEA,SAAS,gBAAgB,KAAM,UAAW,CACxC,MAAM,GAAK,YAAY,SAAS,EAChC,MAAI,CAAC,IAAM,CAAC,MAAQ,CAAC,MAAM,QAAQ,KAAK,KAAK,EAAU,EAEhD,KAAK,MAAM,OAAO,CAAC,MAAO,OACT,YAAY,OAAS,KAAK,YAAc,KAAK,GAAG,IAChD,GAAW,MAC1B,MAAQ,KAAK,IAAI,EAAG,OAAO,KAAK,QAAQ,GAAK,CAAC,EACpD,CAAC,CACN,CAEA,eAAe,UAAU,MAAO,CAC9B,MAAI,CAAC,OAAS,WAAa,KAAK,IAAI,EAAI,YAAc,IAC7C,WAGJ,qBACH,mBAAqB,MAAM,GAAG,SAAS,CAAC,UAAW,CACjD,YAAa,cACb,MAAO,WACP,QAAS,CAAE,OAAQ,kBAAmB,CACxC,CAAC,EACE,KAAM,UAAa,CAClB,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,MAAM,sBAAsB,SAAS,MAAM,EAAE,EACzE,OAAO,SAAS,KAAK,CACvB,CAAC,EACA,KAAM,OACL,UAAY,KACZ,YAAc,KAAK,IAAI,EAChB,KACR,EACA,QAAQ,IAAM,CACb,mBAAqB,IACvB,CAAC,GAGE,mBACT,CAEA,SAAS,gBAAgB,YAAa,CACpC,GAAI,CAAC,aAAe,OAAO,YAAY,qBAAwB,WAAY,MAAO,CAAC,EAEnF,GAAI,CACF,OAAO,YACJ,oBAAoB,EACpB,QAAS,SAAY,CAAC,QAAQ,QAAS,QAAQ,EAAE,CAAC,EAClD,OAAO,OAAO,EACd,OAAO,CAAC,MAAO,MAAO,MAAQ,IAAI,QAAQ,KAAK,IAAM,KAAK,CAC/D,MAAY,CACV,MAAO,CAAC,CACV,CACF,CAEA,SAAS,gBAAiB,CACxB,OAAO,SAAS,cAAc,YAAY,GAAK,SAAS,cAAc,aAAa,CACrF,CAEA,SAAS,kBAAkB,UAAW,QAAS,CAC7C,MAAM,UAAY,OAAO,SAAY,WAAa,QAAU,OAAO,QACnE,GAAI,OAAO,WAAc,WAEzB,GAAI,CACF,UAAU,UAAW,OAAO,CAC9B,MAAY,CAAC,CACf,CAEA,SAAS,aAAc,CACrB,OAAI,OAAO,eAAmB,IAAoB,eAC3C,OAAO,gBAAkB,CAAC,CACnC,CAEA,eAAe,cAAc,KAAM,CACjC,MAAM,YAAc,eAAe,EAEnC,GAAI,aAAe,OAAO,YAAY,2BAA8B,WAClE,YAAY,0BAA0B,UAC7B,aAAe,OAAO,YAAY,gBAAmB,WAAY,CAC1E,MAAM,SAAW,gBAAgB,WAAW,EAC5C,GAAI,SAAS,OAAQ,CAKnB,MAAM,YAAc,MAJH,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,mBAAmB,SAAS,KAAK,GAAG,CAAC,CAAC,GAAI,CAC/F,YAAa,cACb,MAAO,UACT,CAAC,GACkC,KAAK,EACxC,YAAY,eAAe,CACzB,GAAI,MAAQ,KAAK,OAAS,KAAK,MAAM,CAAC,EAAI,KAAK,MAAM,CAAC,EAAE,GAAK,OAC7D,IAAK,MAAQ,KAAK,OAAS,KAAK,MAAM,CAAC,EAAI,KAAK,MAAM,CAAC,EAAE,IAAM,OAC/D,SAAU,WACZ,CAAC,CACH,CACF,CAEA,MAAM,OAAS,YAAY,EACvB,OAAO,YACT,kBAAkB,OAAO,WAAY,CACnC,OAAQ,iCACR,SAAU,IACZ,CAAC,EAGH,SAAS,cACP,IAAI,YAAY,uBAAwB,CACtC,OAAQ,CAAE,OAAQ,yBAA0B,SAAU,KAAM,GAAI,KAAK,IAAI,CAAE,CAC7E,CAAC,CACH,EACA,SAAS,cAAc,IAAI,YAAY,+BAA+B,CAAC,EACvE,SAAS,cACP,IAAI,YAAY,gCAAiC,CAC/C,QAAS,GACT,OAAQ,CAAE,IAAK,CACjB,CAAC,CACH,EACA,OAAO,cACL,IAAI,YAAY,eAAgB,CAC9B,OAAQ,CAAE,IAAK,CACjB,CAAC,CACH,CACF,CAEA,SAAS,iBAAiB,UAAW,MAAO,CAC1C,MAAM,OAAS,YAAY,EACtB,OAAO,WAEZ,kBAAkB,OAAO,UAAW,CAClC,OAAQ,iCACR,iBAAkB,UAClB,OAAQ,OAAS,MAAM,QAAU,MAAM,QAAU,OAAO,OAAS,EAAE,EACnE,QAAS,OAAS,MAAM,QAAU,MAAM,QAAU,OAAO,OAAS,EAAE,CACtE,CAAC,CACH,CAEA,eAAe,mBAAmB,OAAQ,gBAAiB,CACzD,MAAM,WAAa,OAAO,SAAW,CAAE,6BAA8B,OAAO,QAAS,EAAI,CAAC,EACpF,SAAW,MAAM,MAAM,QAAQ,QAAQ,EAAG,CAC9C,OAAQ,OACR,YAAa,cACb,QAAS,CACP,eAAgB,mBAChB,OAAQ,kBACV,EACA,KAAM,KAAK,UAAU,CACnB,MAAO,CACL,CACE,GAAI,OAAO,OAAO,SAAS,EAC3B,SAAU,gBACV,UACF,CACF,CACF,CAAC,CACH,CAAC,EACK,KAAO,MAAM,SAAS,KAAK,EAEjC,GAAI,CAAC,SAAS,IAAM,KAAK,OACvB,MAAM,IAAI,MAAM,KAAK,aAAe,KAAK,SAAW,iDAAiD,EAGvG,MAAM,KAAO,MAAM,UAAU,EAAI,EACjC,aAAM,cAAc,IAAI,EACjB,IACT,CAEA,SAAS,eAAe,IAAK,WAAY,CACvC,MAAM,MAAQ,cAAc,KAAK,IAAI,WAAY,cAAc,OAAS,CAAC,CAAC,EAE1E,OAAO,WAAW,SAAY,CAC5B,MAAM,OAAS,aAAa,IAAI,GAAG,EACnC,GAAK,OAEL,GAAI,CACF,MAAM,KAAO,MAAM,UAAU,EAAI,EAC3B,eAAiB,gBAAgB,KAAM,OAAO,SAAS,EAC7D,GAAI,gBAAkB,OAAO,iBAAkB,CAC7C,aAAa,OAAO,GAAG,EACvB,MACF,CAEA,GAAI,WAAa,cAAc,OAAS,EAAG,CACzC,eAAe,IAAK,WAAa,CAAC,EAClC,MACF,CAEA,MAAM,gBAAkB,KAAK,IAAI,EAAG,OAAO,iBAAmB,cAAc,EACtE,YAAc,MAAM,mBAAmB,OAAQ,eAAe,EAChE,gBAAgB,YAAa,OAAO,SAAS,GAAK,OAAO,kBAC3D,aAAa,OAAO,GAAG,CAE3B,OAAS,MAAO,CACd,aAAa,OAAO,GAAG,EACvB,iBAAiB,OAAO,UAAW,KAAK,EACxC,QAAQ,KAAK,mCAAoC,KAAK,CACxD,CACF,EAAG,KAAK,CACV,CAEA,SAAS,qBAAqB,UAAW,OAAQ,CAC/C,MAAM,UAAY,aAAa,SAAS,EACxC,GAAI,CAAC,WAAa,CAAC,gBAAgB,MAAM,EAAG,OAE5C,MAAM,SAAW,YAAY,SAAS,EAChC,IAAM,GAAG,SAAS,IAAI,QAAQ,GAC9B,eAAiB,gBAAgB,UAAW,SAAS,EACrD,eAAiB,aAAa,IAAI,GAAG,EACrC,aAAe,eAAiB,KAAK,IAAI,eAAe,iBAAkB,cAAc,EAAI,eAC5F,OAAS,CACb,UACA,SACA,iBAAkB,aAAe,EACjC,UAAW,KAAK,IAAI,CACtB,EAEA,aAAa,IAAI,IAAK,MAAM,EAC5B,eAAe,IAAK,CAAC,CACvB,CAEA,SAAS,kBAAkB,MAAO,CAChC,MAAM,OAAS,MAAM,OACrB,GAAI,CAAC,QAAU,CAAC,OAAO,QAAS,OAEhC,MAAM,UAAY,OAAO,QAAQ,UAAU,SAAS,EACpD,GAAI,CAAC,UAAW,OAEhB,MAAM,OAAS,OAAO,QAAQ,UAAU,MAAM,GAAK,UAAU,cAAc,UAAU,MAAM,EAC3F,GAAK,gBAAgB,MAAM,EAE3B,IAAI,CAAC,OAAO,QAAQ,UAAU,MAAM,EAAG,CACrC,MAAM,eAAe,EACrB,MAAM,gBAAgB,EACtB,OAAO,MAAM,EACb,MACF,CAEA,qBAAqB,UAAW,MAAM,EACxC,CAEA,SAAS,0BAA2B,CAClC,OAAO,WAAW,IAAM,UAAU,EAAI,EAAE,MAAM,IAAM,CAAC,CAAC,EAAG,GAAG,CAC9D,CAEA,SAAS,iBAAiB,QAAS,kBAAmB,EAAI,EAC1D,SAAS,iBAAiB,uBAAwB,wBAAwB,EAC1E,SAAS,iBAAiB,gCAAiC,wBAAwB,EACnF,SAAS,iBAAiB,gCAAiC,wBAAwB,EACnF,OAAO,iBAAiB,eAAgB,wBAAwB,EAE5D,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,IAAM,UAAU,EAAI,EAAE,MAAM,IAAM,CAAC,CAAC,EAAG,CAAE,KAAM,EAAK,CAAC,EAEnG,UAAU,EAAI,EAAE,MAAM,IAAM,CAAC,CAAC,CAElC,GAAG",
  "names": []
}
