( ′∀`)σ≡σ☆))Д′)レ(゚∀゚;)ヘ=З=З=Зε≡(ノ´_ゝ`)ノ HEX
HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux mail.thebrand.ai 6.8.0-107-generic #107-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 13 19:51:50 UTC 2026 x86_64
User: www-data (33)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/tmpr/../tmpr/..//tmpr/..//tmpr/../test/index2.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta charset="UTF-8">
    <link rel="icon" type="image/svg+xml" href="/favicon.svg">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AI Branding Platform for SMEs &amp; Startups | Brand AI</title>

    <!-- SEO Meta Tags -->
<meta name="description" content="Design, analyze, and grow your brand effortlessly. Create logos, websites, and marketing assets in minutes with AI-powered branding tools—all in one platform." />
  <meta name="keywords" content="AI brand creator, AI branding platform, brand builder AI, create brand identity online, AI design tool, logo generator, brand insights, branding templates" />
      <link rel="canonical" href="https://www.thebrand.ai/">

    <!-- Open Graph / Facebook -->
    <meta property="og:type" content="website">
    <meta property="og:url" content="https://www.thebrand.ai/">
    <meta property="og:title" content="Brand AI | Your Entire Brand. One Intelligent Platform.">
    <meta property="og:description"
          content="Brand AI -Create, design, and scale your brand with AI. From logos to websites, templates to insights—everything your brand needs in one intelligent platform.">
    <meta property="og:image" content="https://picsum.photos/seed/brandai-og/1200/630">

    <!-- Twitter -->
    <meta property="twitter:card" content="summary_large_image">
    <meta property="twitter:url" content="https://www.thebrand.ai/">
    <meta property="twitter:title" content="AI Branding Platform for SMEs &amp; Startups | Brand AI">
    <meta property="twitter:description"
          content="Design, analyze, and grow your brand effortlessly. Create logos, websites, and marketing assets in minutes with AI-powered branding tools—all in one platform.">
    <meta property="twitter:image" content="https://picsum.photos/seed/brandai-og/1200/630">

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@graph": [
        {
          "@type": "Organization",
          "name": "Brand AI",
          "url": "https://www.thebrand.ai/",
          "logo": "https://www.thebrand.ai/i/uploads/logo/logo_62a4de26e93f0.png",
          "sameAs": [
            "https://facebook.com/TheBrandApp",
            "https://twitter.com/thebrandhq",
            "https://www.instagram.com/thebrandapp",
            "https://www.linkedin.com/company/the-brand-app"
          ]
        },
        {
          "@type": "SoftwareApplication",
          "name": "Brand AI",
          "applicationCategory": "BusinessApplication",
          "operatingSystem": "Web",
          "url": "https://www.thebrand.ai/",
          "description": "Design, analyze, and grow your brand effortlessly. Create logos, websites, and marketing assets in minutes with AI-powered branding tools\u2014all and insights in one platform."
        },
        {
          "@type": "FAQPage",
          "mainEntity": [
            {
              "@type": "Question",
              "name": "How do I create a brand identity with AI?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Start in the Brand Creator, answer a short guided questionnaire, and let Brand AI generate a full brand identity for you, including logo directions, colours, fonts, and messaging. From there you can refine everything inside the editor, apply your brand to templates, and publish assets knowing the system will keep you consistent as you grow."
              }
            },
            {
              "@type": "Question",
              "name": "What is the best AI branding platform for small business?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Brand AI is built for SMEs that need agency-level work without agency-level retainers. You get strategy, design, and execution tools in one place instead of stitching together multiple apps, and you can use journeys, templates, and dashboards to see which campaigns and channels actually move the needle for your small business."
              }
            },
            {
              "@type": "Question",
              "name": "How does Brand AI help governments and public sector brands?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Governments and public sector teams use Brand AI to keep every department, agency, and supplier working from the same templates, guidelines, and approval flows. You can manage multi-stakeholder campaigns, ensure accessibility and compliance, and still benefit from AI-generated designs and content that stay within your brand system."
              }
            },
            {
              "@type": "Question",
              "name": "Do I need design experience to use Brand AI?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "No. The platform is designed so founders, marketers, and teams without design backgrounds can create professional assets. You choose from guided options, and Brand AI handles layout, typography, and visual hierarchy for you while still letting designers dive deeper when needed."
              }
            }
          ]
        }
      ]
    }
    </script>

    <!-- Google Fonts -->
    <link rel="preconnect" href="https://fonts.googleapis.com/">
    <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin="">
    <link href="/index_files/css2.css" rel="stylesheet">
    <style>
        html {
            scroll-behavior: smooth;
        }

        #root:empty {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            font-family: 'Inter', sans-serif;
            color: #4a5568;
            font-size: 1.25rem;
        }

        #root:empty::after {
            content: "Loading Brand AI...";
            animation: pulse 1.5s infinite ease-in-out;
        }

        @keyframes pulse {
            0%, 100% {
                opacity: 1;
            }
            50% {
                opacity: 0.5;
            }
        }
  </style>
 
    <style>*, ::before, ::after {
        --tw-border-spacing-x: 0;
        --tw-border-spacing-y: 0;
        --tw-translate-x: 0;
        --tw-translate-y: 0;
        --tw-rotate: 0;
        --tw-skew-x: 0;
        --tw-skew-y: 0;
        --tw-scale-x: 1;
        --tw-scale-y: 1;
        --tw-pan-x: ;
        --tw-pan-y: ;
        --tw-pinch-zoom: ;
        --tw-scroll-snap-strictness: proximity;
        --tw-gradient-from-position: ;
        --tw-gradient-via-position: ;
        --tw-gradient-to-position: ;
        --tw-ordinal: ;
        --tw-slashed-zero: ;
        --tw-numeric-figure: ;
        --tw-numeric-spacing: ;
        --tw-numeric-fraction: ;
        --tw-ring-inset: ;
        --tw-ring-offset-width: 0px;
        --tw-ring-offset-color: #fff;
        --tw-ring-color: rgb(59 130 246 / 0.5);
        --tw-ring-offset-shadow: 0 0 #0000;
        --tw-ring-shadow: 0 0 #0000;
        --tw-shadow: 0 0 #0000;
        --tw-shadow-colored: 0 0 #0000;
        --tw-blur: ;
        --tw-brightness: ;
        --tw-contrast: ;
        --tw-grayscale: ;
        --tw-hue-rotate: ;
        --tw-invert: ;
        --tw-saturate: ;
        --tw-sepia: ;
        --tw-drop-shadow: ;
        --tw-backdrop-blur: ;
        --tw-backdrop-brightness: ;
        --tw-backdrop-contrast: ;
        --tw-backdrop-grayscale: ;
        --tw-backdrop-hue-rotate: ;
        --tw-backdrop-invert: ;
        --tw-backdrop-opacity: ;
        --tw-backdrop-saturate: ;
        --tw-backdrop-sepia: ;
        --tw-contain-size: ;
        --tw-contain-layout: ;
        --tw-contain-paint: ;
        --tw-contain-style:
    }

    ::backdrop {
        --tw-border-spacing-x: 0;
        --tw-border-spacing-y: 0;
        --tw-translate-x: 0;
        --tw-translate-y: 0;
        --tw-rotate: 0;
        --tw-skew-x: 0;
        --tw-skew-y: 0;
        --tw-scale-x: 1;
        --tw-scale-y: 1;
        --tw-pan-x: ;
        --tw-pan-y: ;
        --tw-pinch-zoom: ;
        --tw-scroll-snap-strictness: proximity;
        --tw-gradient-from-position: ;
        --tw-gradient-via-position: ;
        --tw-gradient-to-position: ;
        --tw-ordinal: ;
        --tw-slashed-zero: ;
        --tw-numeric-figure: ;
        --tw-numeric-spacing: ;
        --tw-numeric-fraction: ;
        --tw-ring-inset: ;
        --tw-ring-offset-width: 0px;
        --tw-ring-offset-color: #fff;
        --tw-ring-color: rgb(59 130 246 / 0.5);
        --tw-ring-offset-shadow: 0 0 #0000;
        --tw-ring-shadow: 0 0 #0000;
        --tw-shadow: 0 0 #0000;
        --tw-shadow-colored: 0 0 #0000;
        --tw-blur: ;
        --tw-brightness: ;
        --tw-contrast: ;
        --tw-grayscale: ;
        --tw-hue-rotate: ;
        --tw-invert: ;
        --tw-saturate: ;
        --tw-sepia: ;
        --tw-drop-shadow: ;
        --tw-backdrop-blur: ;
        --tw-backdrop-brightness: ;
        --tw-backdrop-contrast: ;
        --tw-backdrop-grayscale: ;
        --tw-backdrop-hue-rotate: ;
        --tw-backdrop-invert: ;
        --tw-backdrop-opacity: ;
        --tw-backdrop-saturate: ;
        --tw-backdrop-sepia: ;
        --tw-contain-size: ;
        --tw-contain-layout: ;
        --tw-contain-paint: ;
        --tw-contain-style:
    }

    /* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */
    *, ::after, ::before {
        box-sizing: border-box;
        border-width: 0;
        border-style: solid;
        border-color: #e5e7eb
    }

    ::after, ::before {
        --tw-content: ''
    }

    :host, html {
        line-height: 1.5;
        -webkit-text-size-adjust: 100%;
        -moz-tab-size: 4;
        tab-size: 4;
        font-family: Inter, sans-serif;
        font-feature-settings: normal;
        font-variation-settings: normal;
        -webkit-tap-highlight-color: transparent
    }

    body {
        margin: 0;
        line-height: inherit
    }

    hr {
        height: 0;
        color: inherit;
        border-top-width: 1px
    }

    abbr:where([title]) {
        -webkit-text-decoration: underline dotted;
        text-decoration: underline dotted
    }

    h1, h2, h3, h4, h5, h6 {
        font-size: inherit;
        font-weight: inherit
    }

    a {
        color: inherit;
        text-decoration: inherit
    }

    b, strong {
        font-weight: bolder
    }

    code, kbd, pre, samp {
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
        font-feature-settings: normal;
        font-variation-settings: normal;
        font-size: 1em
    }

    small {
        font-size: 80%
    }

    sub, sup {
        font-size: 75%;
        line-height: 0;
        position: relative;
        vertical-align: baseline
    }

    sub {
        bottom: -.25em
    }

    sup {
        top: -.5em
    }

    table {
        text-indent: 0;
        border-color: inherit;
        border-collapse: collapse
    }

    button, input, optgroup, select, textarea {
        font-family: inherit;
        font-feature-settings: inherit;
        font-variation-settings: inherit;
        font-size: 100%;
        font-weight: inherit;
        line-height: inherit;
        letter-spacing: inherit;
        color: inherit;
        margin: 0;
        padding: 0
    }

    button, select {
        text-transform: none
    }

    button, input:where([type=button]), input:where([type=reset]), input:where([type=submit]) {
        -webkit-appearance: button;
        background-color: transparent;
        background-image: none
    }

    :-moz-focusring {
        outline: auto
    }

    :-moz-ui-invalid {
        box-shadow: none
    }

    progress {
        vertical-align: baseline
    }

    ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
        height: auto
    }

    [type=search] {
        -webkit-appearance: textfield;
        outline-offset: -2px
    }

    ::-webkit-search-decoration {
        -webkit-appearance: none
    }

    ::-webkit-file-upload-button {
        -webkit-appearance: button;
        font: inherit
    }

    summary {
        display: list-item
    }

    blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre {
        margin: 0
    }

    fieldset {
        margin: 0;
        padding: 0
    }

    legend {
        padding: 0
    }

    menu, ol, ul {
        list-style: none;
        margin: 0;
        padding: 0
    }

    dialog {
        padding: 0
    }

    textarea {
        resize: vertical
    }

    input::placeholder, textarea::placeholder {
        opacity: 1;
        color: #9ca3af
    }

    [role=button], button {
        cursor: pointer
    }

    :disabled {
        cursor: default
    }

    audio, canvas, embed, iframe, img, object, svg, video {
        display: block;
        vertical-align: middle
    }

    img, video {
        max-width: 100%;
        height: auto
    }

    [hidden]:where(:not([hidden=until-found])) {
        display: none
    }

    .container {
        width: 100%
    }

    @media (min-width: 640px) {
        .container {
            max-width: 640px
        }
    }

    @media (min-width: 768px) {
        .container {
            max-width: 768px
        }
    }

    @media (min-width: 1024px) {
        .container {
            max-width: 1024px
        }
    }

    @media (min-width: 1280px) {
        .container {
            max-width: 1280px
        }
    }

    @media (min-width: 1536px) {
        .container {
            max-width: 1536px
        }
    }

    .sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border-width: 0
    }

    .absolute {
        position: absolute
    }

    .relative {
        position: relative
    }

    .sticky {
        position: sticky
    }

    .inset-0 {
        inset: 0px
    }

    .bottom-\[-30\%\] {
        bottom: -30%
    }

    .left-\[-30\%\] {
        left: -30%
    }

    .right-\[-30\%\] {
        right: -30%
    }

    .top-0 {
        top: 0px
    }

    .top-\[-30\%\] {
        top: -30%
    }

    .z-0 {
        z-index: 0
    }

    .z-10 {
        z-index: 10
    }

    .z-50 {
        z-index: 50
    }

    .col-span-2 {
        grid-column: span 2 / span 2
    }

    .mx-auto {
        margin-left: auto;
        margin-right: auto
    }

    .mb-10 {
        margin-bottom: 2.5rem
    }

    .mb-12 {
        margin-bottom: 3rem
    }

    .mb-2 {
        margin-bottom: 0.5rem
    }

    .mb-4 {
        margin-bottom: 1rem
    }

    .mb-6 {
        margin-bottom: 1.5rem
    }

    .mb-8 {
        margin-bottom: 2rem
    }

    .mt-12 {
        margin-top: 3rem
    }

    .mt-4 {
        margin-top: 1rem
    }

    .mt-8 {
        margin-top: 2rem
    }

    .block {
        display: block
    }

    .inline-block {
        display: inline-block
    }

    .flex {
        display: flex
    }

    .grid {
        display: grid
    }

    .hidden {
        display: none
    }

    .aspect-\[4\/3\] {
        aspect-ratio: 4/3
    }

    .h-10 {
        height: 2.5rem
    }

    .h-4\/5 {
        height: 80%
    }

    .h-6 {
        height: 1.5rem
    }

    .h-8 {
        height: 2rem
    }

    .h-full {
        height: 100%
    }

    .min-h-\[480px\] {
        min-height: 480px
    }

    .min-h-\[520px\] {
        min-height: 520px
    }

    .min-h-\[70vh\] {
        min-height: 70vh
    }

    .w-10 {
        width: 2.5rem
    }

    .w-32 {
        width: 8rem
    }

    .w-4\/5 {
        width: 80%
    }

    .w-6 {
        width: 1.5rem
    }

    .w-8 {
        width: 2rem
    }

    .w-full {
        width: 100%
    }

    .max-w-2xl {
        max-width: 42rem
    }

    .max-w-3xl {
        max-width: 48rem
    }

    .scale-105 {
        --tw-scale-x: 1.05;
        --tw-scale-y: 1.05;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .transform {
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .grid-cols-1 {
        grid-template-columns: repeat(1, minmax(0, 1fr))
    }

    .grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .flex-col {
        flex-direction: column
    }

    .flex-wrap {
        flex-wrap: wrap
    }

    .items-center {
        align-items: center
    }

    .justify-center {
        justify-content: center
    }

    .justify-between {
        justify-content: space-between
    }

    .gap-2 {
        gap: 0.5rem
    }

    .gap-4 {
        gap: 1rem
    }

    .gap-6 {
        gap: 1.5rem
    }

    .gap-8 {
        gap: 2rem
    }

    .space-x-4 > :not([hidden]) ~ :not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-right: calc(1rem * var(--tw-space-x-reverse));
        margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)))
    }

    .space-x-6 > :not([hidden]) ~ :not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-right: calc(1.5rem * var(--tw-space-x-reverse));
        margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))
    }

    .space-x-8 > :not([hidden]) ~ :not([hidden]) {
        --tw-space-x-reverse: 0;
        margin-right: calc(2rem * var(--tw-space-x-reverse));
        margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)))
    }

    .space-y-2 > :not([hidden]) ~ :not([hidden]) {
        --tw-space-y-reverse: 0;
        margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
        margin-bottom: calc(0.5rem * var(--tw-space-y-reverse))
    }

    .overflow-hidden {
        overflow: hidden
    }

    .truncate {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .rounded-2xl {
        border-radius: 1rem
    }

    .rounded-3xl {
        border-radius: 1.5rem
    }

    .rounded-full {
        border-radius: 9999px
    }

    .rounded-lg {
        border-radius: 0.5rem
    }

    .border {
        border-width: 1px
    }

    .border-t {
        border-top-width: 1px
    }

    .border-gray-300 {
        --tw-border-opacity: 1;
        border-color: rgb(209 213 219 / var(--tw-border-opacity, 1))
    }

    .border-gray-800 {
        --tw-border-opacity: 1;
        border-color: rgb(31 41 55 / var(--tw-border-opacity, 1))
    }

    .bg-black {
        --tw-bg-opacity: 1;
        background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1))
    }

    .bg-black\/10 {
        background-color: rgb(0 0 0 / 0.1)
    }

    .bg-brand-cyan {
        --tw-bg-opacity: 1;
        background-color: rgb(3 190 243 / var(--tw-bg-opacity, 1))
    }

    .bg-brand-midnight {
        --tw-bg-opacity: 1;
        background-color: rgb(11 15 41 / var(--tw-bg-opacity, 1))
    }

    .bg-cyan-100 {
        --tw-bg-opacity: 1;
        background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1))
    }

    .bg-gray-100 {
        --tw-bg-opacity: 1;
        background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1))
    }

    .bg-gray-200 {
        --tw-bg-opacity: 1;
        background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1))
    }

    .bg-gray-50 {
        --tw-bg-opacity: 1;
        background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1))
    }

    .bg-white {
        --tw-bg-opacity: 1;
        background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1))
    }

    .bg-white\/10 {
        background-color: rgb(255 255 255 / 0.1)
    }

    .bg-white\/80 {
        background-color: rgb(255 255 255 / 0.8)
    }

    .bg-opacity-20 {
        --tw-bg-opacity: 0.2
    }

    .bg-gradient-to-br {
        background-image: linear-gradient(to bottom right, var(--tw-gradient-stops))
    }

    .bg-gradient-to-tl {
        background-image: linear-gradient(to top left, var(--tw-gradient-stops))
    }

    .from-brand-cyan {
        --tw-gradient-from: #03bef3 var(--tw-gradient-from-position);
        --tw-gradient-to: rgb(3 190 243 / 0) var(--tw-gradient-to-position);
        --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
    }

    .to-transparent {
        --tw-gradient-to: transparent var(--tw-gradient-to-position)
    }

    .object-cover {
        object-fit: cover
    }

    .p-3 {
        padding: 0.75rem
    }

    .p-5 {
        padding: 1.25rem
    }

    .p-8 {
        padding: 2rem
    }

    .px-4 {
        padding-left: 1rem;
        padding-right: 1rem
    }

    .px-5 {
        padding-left: 1.25rem;
        padding-right: 1.25rem
    }

    .px-6 {
        padding-left: 1.5rem;
        padding-right: 1.5rem
    }

    .px-8 {
        padding-left: 2rem;
        padding-right: 2rem
    }

    .py-12 {
        padding-top: 3rem;
        padding-bottom: 3rem
    }

    .py-2 {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem
    }

    .py-20 {
        padding-top: 5rem;
        padding-bottom: 5rem
    }

    .py-3 {
        padding-top: 0.75rem;
        padding-bottom: 0.75rem
    }

    .py-4 {
        padding-top: 1rem;
        padding-bottom: 1rem
    }

    .pt-8 {
        padding-top: 2rem
    }

    .text-left {
        text-align: left
    }

    .text-center {
        text-align: center
    }

    .font-sans {
        font-family: Inter, sans-serif
    }

    .text-3xl {
        font-size: 1.875rem;
        line-height: 2.25rem
    }

    .text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem
    }

    .text-5xl {
        font-size: 3rem;
        line-height: 1
    }

    .text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem
    }

    .text-sm {
        font-size: 0.875rem;
        line-height: 1.25rem
    }

    .text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem
    }

    .font-bold {
        font-weight: 700
    }

    .font-extrabold {
        font-weight: 800
    }

    .font-medium {
        font-weight: 500
    }

    .font-semibold {
        font-weight: 600
    }

    .uppercase {
        text-transform: uppercase
    }

    .tracking-tight {
        letter-spacing: -0.025em
    }

    .text-brand-cyan {
        --tw-text-opacity: 1;
        color: rgb(3 190 243 / var(--tw-text-opacity, 1))
    }

    .text-brand-midnight {
        --tw-text-opacity: 1;
        color: rgb(11 15 41 / var(--tw-text-opacity, 1))
    }

    .text-gray-300 {
        --tw-text-opacity: 1;
        color: rgb(209 213 219 / var(--tw-text-opacity, 1))
    }

    .text-gray-400 {
        --tw-text-opacity: 1;
        color: rgb(156 163 175 / var(--tw-text-opacity, 1))
    }

    .text-gray-600 {
        --tw-text-opacity: 1;
        color: rgb(75 85 99 / var(--tw-text-opacity, 1))
    }

    .text-gray-700 {
        --tw-text-opacity: 1;
        color: rgb(55 65 81 / var(--tw-text-opacity, 1))
    }

    .text-gray-800 {
        --tw-text-opacity: 1;
        color: rgb(31 41 55 / var(--tw-text-opacity, 1))
    }

    .text-white {
        --tw-text-opacity: 1;
        color: rgb(255 255 255 / var(--tw-text-opacity, 1))
    }

    .opacity-50 {
        opacity: 0.5
    }

    .opacity-80 {
        opacity: 0.8
    }

    .opacity-90 {
        opacity: 0.9
    }

    .shadow-lg {
        --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
    }

    .shadow-md {
        --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
    }

    .shadow-sm {
        --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
        --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
    }

    .blur-3xl {
        --tw-blur: blur(64px);
        filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
    }

    .filter {
        filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
    }

    .backdrop-blur-sm {
        --tw-backdrop-blur: blur(4px);
        -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
        backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)
    }

    .transition-all {
        transition-property: all;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms
    }

    .transition-colors {
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms
    }

    .transition-opacity {
        transition-property: opacity;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms
    }

    .transition-transform {
        transition-property: transform;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms
    }

    .duration-300 {
        transition-duration: 300ms
    }

    .duration-500 {
        transition-duration: 500ms
    }

    .ease-in-out {
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
    }

    .hover\:-translate-y-1:hover {
        --tw-translate-y: -0.25rem;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .hover\:-translate-y-2:hover {
        --tw-translate-y: -0.5rem;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .hover\:scale-105:hover {
        --tw-scale-x: 1.05;
        --tw-scale-y: 1.05;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .hover\:scale-110:hover {
        --tw-scale-x: 1.1;
        --tw-scale-y: 1.1;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .hover\:border-brand-cyan:hover {
        --tw-border-opacity: 1;
        border-color: rgb(3 190 243 / var(--tw-border-opacity, 1))
    }

    .hover\:bg-cyan-200:hover {
        --tw-bg-opacity: 1;
        background-color: rgb(165 243 252 / var(--tw-bg-opacity, 1))
    }

    .hover\:bg-gray-200:hover {
        --tw-bg-opacity: 1;
        background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1))
    }

    .hover\:bg-gray-300:hover {
        --tw-bg-opacity: 1;
        background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1))
    }

    .hover\:bg-white\/20:hover {
        background-color: rgb(255 255 255 / 0.2)
    }

    .hover\:text-brand-cyan:hover {
        --tw-text-opacity: 1;
        color: rgb(3 190 243 / var(--tw-text-opacity, 1))
    }

    .hover\:opacity-90:hover {
        opacity: 0.9
    }

    .hover\:shadow-xl:hover {
        --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
    }

    .focus\:outline-none:focus {
        outline: 2px solid transparent;
        outline-offset: 2px
    }

    .group:hover .group-hover\:-translate-y-1 {
        --tw-translate-y: -0.25rem;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .group:hover .group-hover\:scale-105 {
        --tw-scale-x: 1.05;
        --tw-scale-y: 1.05;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .group:hover .group-hover\:scale-110 {
        --tw-scale-x: 1.1;
        --tw-scale-y: 1.1;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
    }

    .group:hover .group-hover\:bg-black\/0 {
        background-color: rgb(0 0 0 / 0)
    }

    .group:hover .group-hover\:bg-opacity-10 {
        --tw-bg-opacity: 0.1
    }

    .group:hover .group-hover\:text-brand-cyan {
        --tw-text-opacity: 1;
        color: rgb(3 190 243 / var(--tw-text-opacity, 1))
    }

    .group:hover .group-hover\:opacity-100 {
        opacity: 1
    }

    @media (min-width: 640px) {
        .sm\:grid-cols-3 {
            grid-template-columns: repeat(3, minmax(0, 1fr))
        }
    }

    @media (min-width: 768px) {
        .md\:col-span-2 {
            grid-column: span 2 / span 2
        }

        .md\:mt-0 {
            margin-top: 0px
        }

        .md\:flex {
            display: flex
        }

        .md\:hidden {
            display: none
        }

        .md\:min-h-\[520px\] {
            min-height: 520px
        }

        .md\:min-h-\[80vh\] {
            min-height: 80vh
        }

        .md\:grid-cols-2 {
            grid-template-columns: repeat(2, minmax(0, 1fr))
        }

        .md\:grid-cols-3 {
            grid-template-columns: repeat(3, minmax(0, 1fr))
        }

        .md\:grid-cols-4 {
            grid-template-columns: repeat(4, minmax(0, 1fr))
        }

        .md\:flex-row {
            flex-direction: row
        }

        .md\:gap-12 {
            gap: 3rem
        }

        .md\:gap-4 {
            gap: 1rem
        }

        .md\:gap-8 {
            gap: 2rem
        }

        .md\:py-24 {
            padding-top: 6rem;
            padding-bottom: 6rem
        }

        .md\:py-28 {
            padding-top: 7rem;
            padding-bottom: 7rem
        }

        .md\:text-2xl {
            font-size: 1.5rem;
            line-height: 2rem
        }

        .md\:text-4xl {
            font-size: 2.25rem;
            line-height: 2.5rem
        }

        .md\:text-5xl {
            font-size: 3rem;
            line-height: 1
        }

        .md\:text-6xl {
            font-size: 3.75rem;
            line-height: 1
        }

        .md\:text-7xl {
            font-size: 4.5rem;
            line-height: 1
        }

        .md\:text-base {
            font-size: 1rem;
            line-height: 1.5rem
        }

        .md\:text-xl {
            font-size: 1.25rem;
            line-height: 1.75rem
        }
    }

    @media (min-width: 1024px) {
        .lg\:col-span-1 {
            grid-column: span 1 / span 1
        }

        .lg\:grid-cols-3 {
            grid-template-columns: repeat(3, minmax(0, 1fr))
        }

        .lg\:grid-cols-5 {
            grid-template-columns: repeat(5, minmax(0, 1fr))
        }

        .lg\:text-8xl {
            font-size: 6rem;
            line-height: 1
        }
    }

    @media (min-width: 1280px) {
        .xl\:grid-cols-6 {
            grid-template-columns: repeat(6, minmax(0, 1fr))
        }
    }</style>
    <script type="text/plain" data-disabled="true">function _extends() {
        return _extends = Object.assign ? Object.assign.bind() : function (n) {
            for (var e = 1; e < arguments.length; e++) {
                var t = arguments[e];
                for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
            }
            return n;
        }, _extends.apply(null, arguments);
    }

    import React, {useState} from 'react';
    import ReactDOM from 'react-dom/client';

    // --- START OF constants.tsx ---
    var FEATURES_PRIMARY = [{
        title: 'Bring Your Brand to Life with Brand Creator',
        description: 'Quickly and effortlessly create a powerful, professional brand identity and logos that stand out and drive business growth.',
        link: 'https://www.thebrand.ai/brandcreator/index',
        buttonText: 'Explore Brand Creator',
        imageUrl: 'https://picsum.photos/seed/branding-desk/1200/800',
        bgColor: '#1E003B' // Deep Purple/Indigo
    }, {
        title: 'Revolutionize Your Brand with AI Insights',
        description: 'Supercharge your brand with intelligent solutions, design, and big data to drive growth, engagement, and measurable success.',
        link: 'https://www.thebrand.ai/insights/',
        buttonText: 'Explore Insights',
        imageUrl: 'https://picsum.photos/seed/ai-dashboard/1200/800',
        bgColor: '#003D5B' // Dark Cyan/Blue
    }, {
        title: 'Build a Website Easily with Brand Sites',
        description: 'Choose from over 100 amazing templates to build a stunning website that empowers your brand to stand out.',
        link: 'https://www.thebrand.ai/sites/index',
        buttonText: 'Explore Brand Sites',
        imageUrl: 'https://picsum.photos/seed/web-design/1200/800',
        bgColor: '#004C4C' // Dark Teal
    }];
    var FEATURES_SECONDARY = [{
        title: 'Meet the Visual Suite',
        description: 'Your entire workflow in one place. From bespoke designs and insightful blogs to tailored strategies—all powered by AI.',
        link: 'https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit',
        buttonText: 'Explore Visual Suite',
        imageUrl: 'https://picsum.photos/seed/creative-workspace/1200/800',
        bgColor: '#3D004F',
        // Dark Magenta/Purple
        size: 'large'
    }, {
        title: 'Present with impact',
        description: 'Reimagine presentations with cinematic visuals, smart collaboration, and AI-powered tools.',
        link: 'https://www.thebrand.ai/i/designs',
        buttonText: 'Try Presentations',
        imageUrl: 'https://picsum.photos/seed/presentation-stage/1200/800',
        bgColor: '#005F58',
        // Deep Teal/Green
        size: 'large'
    }];
    var FEATURES_TERTIARY = [{
        title: 'Define your Brand Identity',
        description: 'A central hub to build, manage, and evolve your unique brand identity as you scale.',
        link: 'https://www.thebrand.ai/i/account/build_brand',
        buttonText: 'Build My Brand',
        imageUrl: 'https://picsum.photos/seed/brand-guide/800/600',
        bgColor: '#1A237E' // Dark Indigo
    }, {
        title: 'End-to-end platform for large organizations',
        description: 'Scale brand consistency with enterprise-grade tools, security, and support for large organizations.',
        link: '#',
        buttonText: 'Explore Enterprise',
        imageUrl: 'https://picsum.photos/seed/corporate-dash/800/600',
        bgColor: '#00263E' // Very Dark Blue
    }, {
        title: 'Unlock Growth with Insight Journeys',
        description: "Explore expert-led journeys to transform your startup's growth, overcome challenges, and achieve success.",
        link: 'https://www.thebrand.ai/insights/dashboard?feature=browsejourneys',
        buttonText: 'Discover Your Path',
        imageUrl: 'https://picsum.photos/seed/growth-path/800/600',
        bgColor: '#01579B' // Light Blue
    }];
    var CostIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-10 w-10",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 10v-1m-5.293-6.293l-.707.707M17.293 7.707l.707-.707M5.707 16.293l.707.707M16.586 17H19a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2.414"
    }));
    var TimeIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-10 w-10",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"
    }));
    var ToolsIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-10 w-10",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z"
    }));
    var PROBLEM_CARDS = [{
        icon: /*#__PURE__*/React.createElement(CostIcon, null),
        title: 'Agency-Level Budgets',
        description: 'SMEs and governments need top-tier strategy but lack the budget for expensive agencies.'
    }, {
        icon: /*#__PURE__*/React.createElement(TimeIcon, null),
        title: 'Months of Guesswork',
        description: 'Founders and marketers waste precious time guessing their next move instead of acting on clear insights.'
    }, {
        icon: /*#__PURE__*/React.createElement(ToolsIcon, null),
        title: 'Juggling a Dozen Tools',
        description: 'Creatives juggle multiple, disconnected tools to create a single campaign, with none of them talking to each other.'
    }];
    var SmeIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4v-5h5v5h-5z"
    }));
    var GovernmentIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M12 21l-2-2m2 2l2-2m2 2l2-2M5 15l-2-2m2 2l2-2m2 2l2-2m2 2l2-2M5 21v-6a2 2 0 012-2h10a2 2 0 012 2v6"
    }), " ", /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M3 21h18M5 10l7-7 7 7"
    }));
    var StartupIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M13 10V3L4 14h7v7l9-11h-7z"
    }));
    var MarketerIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
    }), /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"
    }));
    var CorporateIcon = () => /*#__PURE__*/React.createElement("svg", {
        xmlns: "http://www.w3.org/2000/svg",
        className: "h-8 w-8",
        fill: "none",
        viewBox: "0 0 24 24",
        stroke: "currentColor",
        strokeWidth: 2
    }, /*#__PURE__*/React.createElement("path", {
        strokeLinecap: "round",
        strokeLinejoin: "round",
        d: "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4V5h5v7h-5z"
    }));
    var TARGET_MARKETS = [{
        icon: /*#__PURE__*/React.createElement(SmeIcon, null),
        name: 'SMEs'
    }, {
        icon: /*#__PURE__*/React.createElement(GovernmentIcon, null),
        name: 'Governments'
    }, {
        icon: /*#__PURE__*/React.createElement(StartupIcon, null),
        name: 'Startups'
    }, {
        icon: /*#__PURE__*/React.createElement(MarketerIcon, null),
        name: 'Marketers'
    }, {
        icon: /*#__PURE__*/React.createElement(CorporateIcon, null),
        name: 'Corporations'
    }];
    var FacebookIcon = () => /*#__PURE__*/React.createElement("svg", {
        className: "w-6 h-6",
        fill: "currentColor",
        viewBox: "0 0 24 24",
        "aria-hidden": "true"
    }, /*#__PURE__*/React.createElement("path", {
        fillRule: "evenodd",
        d: "M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z",
        clipRule: "evenodd"
    }));
    var TwitterIcon = () => /*#__PURE__*/React.createElement("svg", {
        className: "w-6 h-6",
        fill: "currentColor",
        viewBox: "0 0 24 24",
        "aria-hidden": "true"
    }, /*#__PURE__*/React.createElement("path", {
        d: "M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.71v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"
    }));
    var InstagramIcon = () => /*#__PURE__*/React.createElement("svg", {
        className: "w-6 h-6",
        fill: "currentColor",
        viewBox: "0 0 24 24",
        "aria-hidden": "true"
    }, /*#__PURE__*/React.createElement("path", {
        fillRule: "evenodd",
        d: "M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.024.06 1.378.06 3.808s-.012 2.784-.06 3.808c-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.024.048-1.378.06-3.808.06s-2.784-.012-3.808-.06c-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.048-1.024-.06-1.378-.06-3.808s.012-2.784.06-3.808c.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 016.08 2.525c.636-.247 1.363-.416 2.427-.465C9.53 2.013 9.884 2 12.315 2zM12 7.044c-2.583 0-4.666 2.083-4.666 4.666s2.083 4.666 4.666 4.666 4.666-2.083 4.666-4.666S14.583 7.044 12 7.044zm0 7.666c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.917-7.916a1.146 1.146 0 100-2.292 1.146 1.146 0 000 2.292z",
        clipRule: "evenodd"
    }));
    var LinkedInIcon = () => /*#__PURE__*/React.createElement("svg", {
        className: "w-6 h-6",
        fill: "currentColor",
        viewBox: "0 0 24 24",
        "aria-hidden": "true"
    }, /*#__PURE__*/React.createElement("path", {
        d: "M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"
    }));
    var TEMPLATE_CATEGORIES = [{
        category: 'Social Media',
        templates: [{
            title: "Facebook Post",
            url: "https://www.thebrand.ai/i/social-media/facebook-post"
        }, {
            title: "Instagram Post",
            url: "https://www.thebrand.ai/i/social-media/instagram-posts"
        }, {
            title: "Instagram Story",
            url: "https://www.thebrand.ai/i/social-media/instagram-story"
        }, {
            title: "LinkedIn Post",
            url: "https://www.thebrand.ai/i/social-media/linkedin-post"
        }, {
            title: "Twitter Post",
            url: "https://www.thebrand.ai/i/social-media/twitter"
        }, {
            title: "Pinterest Pin",
            url: "https://www.thebrand.ai/i/social-media/pinterest-pin-graphic-templates"
        }, {
            title: "IGTV Cover",
            url: "https://www.thebrand.ai/i/social-media/igtv-cover"
        }, {
            title: "Highlight Cover",
            url: "https://www.thebrand.ai/i/social-media/instagram-highlight-cover"
        }, {
            title: "YouTube Graphics",
            url: "https://www.thebrand.ai/i/social-media/youtube-graphic-templates"
        }, {
            title: "Twitch Graphics",
            url: "https://www.thebrand.ai/i/social-media/online-streaming"
        }]
    }, {
        category: 'Invites & Cards',
        templates: [{
            title: "Business Card",
            url: "https://www.thebrand.ai/i/invites-and-cards/business-card-85x55mm"
        }, {
            title: "US Business Card",
            url: "https://www.thebrand.ai/i/invites-and-cards/business-card-us"
        }, {
            title: "Greeting Card",
            url: "https://www.thebrand.ai/i/invites-and-cards/card"
        }, {
            title: "Invitation",
            url: "https://www.thebrand.ai/i/invites-and-cards/invitation-13.9x10.7cm"
        }]
    }, {
        category: 'Documents',
        templates: [{
            title: "Presentation 16:9",
            url: "https://www.thebrand.ai/i/documents/presentation-16-9"
        }, {
            title: "Resume",
            url: "https://www.thebrand.ai/i/documents/resume"
        }, {
            title: "Letterhead A4",
            url: "https://www.thebrand.ai/i/documents/letterhead-a4"
        }, {
            title: "Proposal A4",
            url: "https://www.thebrand.ai/i/documents/proposal-a4"
        }, {
            title: "Flyer A4",
            url: "https://www.thebrand.ai/i/documents/flyer-a4"
        }, {
            title: "Newsletter",
            url: "https://www.thebrand.ai/i/documents/newsletter"
        }, {
            title: "Invoice A4",
            url: "https://www.thebrand.ai/i/documents/invoice-a4"
        }, {
            title: "Report A4",
            url: "https://www.thebrand.ai/i/documents/report-a4"
        }, {
            title: "Certificate",
            url: "https://www.thebrand.ai/i/documents/certificate"
        }, {
            title: "Menu A4",
            url: "https://www.thebrand.ai/i/documents/menu-a4"
        }, {
            title: "Checklist",
            url: "https://www.thebrand.ai/i/documents/checklist"
        }, {
            title: "Schedule",
            url: "https://www.thebrand.ai/i/documents/schedule"
        }, {
            title: "Workbook",
            url: "https://www.thebrand.ai/i/documents/workbook"
        }, {
            title: "eBook",
            url: "https://www.thebrand.ai/i/documents/ebook"
        }, {
            title: "Whitepaper",
            url: "https://www.thebrand.ai/i/documents/whitepaper"
        }]
    }, {
        category: 'Advertising',
        templates: [{
            title: "Poster",
            url: "https://www.thebrand.ai/i/advertising/poster-a3"
        }, {
            title: "Banner",
            url: "https://www.thebrand.ai/i/advertising/banner-2x6ft"
        }, {
            title: "Billboard",
            url: "https://www.thebrand.ai/i/advertising/billboard"
        }, {
            title: "Flyer",
            url: "https://www.thebrand.ai/i/advertising/flyer-us"
        }, {
            title: "Yard Sign",
            url: "https://www.thebrand.ai/i/advertising/yard-sign"
        }, {
            title: "Roll-up Banner",
            url: "https://www.thebrand.ai/i/advertising/roll-up-banner"
        }, {
            title: "Brochure",
            url: "https://www.thebrand.ai/i/advertising/brochure"
        }]
    }, {
        category: 'Covers',
        templates: [{
            title: "Book Cover",
            url: "https://www.thebrand.ai/i/covers/book-cover"
        }, {
            title: "Magazine Cover",
            url: "https://www.thebrand.ai/i/covers/magazine-cover"
        }, {
            title: "Report Cover",
            url: "https://www.thebrand.ai/i/covers/report-cover"
        }, {
            title: "Planner Cover",
            url: "https://www.thebrand.ai/i/covers/planner-cover"
        }, {
            title: "eBook Cover",
            url: "https://www.thebrand.ai/i/covers/ebook-cover"
        }]
    }];
    // --- END OF constants.tsx ---

    // --- START OF components/Logo.tsx ---
    var Logo = _ref => {
        var {
            className,
            theme = 'light'
        } = _ref;
        var theColor = theme === 'dark' ? '#9CA3AF' : '#808080';
        var brandColor = theme === 'dark' ? '#FFFFFF' : '#333333';
        return /*#__PURE__*/React.createElement("svg", {
            width: "110",
            height: "30",
            viewBox: "0 0 110 30",
            className: className,
            xmlns: "http://www.w3.org/2000/svg",
            "aria-label": "The Brand Logo"
        }, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("g", {
            transform: "translate(0, -2) rotate(-5, 15, 15)"
        }, /*#__PURE__*/React.createElement("path", {
            d: "M0,3.993C0,1.788,1.788,0,3.993,0h22.013C28.212,0,30,1.788,30,3.993v22.013 c0,2.205-1.788,3.993-3.993,3.993H3.993C1.788,30,0,28.212,0,26.007V3.993z",
            fill: "#29B6F6"
        }), /*#__PURE__*/React.createElement("text", {
            x: "15",
            y: "21",
            textAnchor: "middle",
            fontSize: "18",
            fontWeight: "bold",
            fill: "white",
            style: {
                fontFamily: 'inherit'
            }
        }, "B")), /*#__PURE__*/React.createElement("text", {
            x: "40",
            y: "12",
            fontSize: "9",
            fill: theColor,
            fontWeight: "600",
            style: {
                fontFamily: 'inherit'
            }
        }, "THE"), /*#__PURE__*/React.createElement("text", {
            x: "40",
            y: "27",
            fontSize: "16",
            fill: brandColor,
            fontWeight: "bold",
            style: {
                fontFamily: 'inherit'
            }
        }, "Brand")));
    };
    // --- END OF components/Logo.tsx ---

    // --- START OF components/Header.tsx ---
      
      var Header = () => {
        var [isMenuOpen, setIsMenuOpen] = useState(false);
        var navLinks = [{
            name: 'Brand Creator',
            href: 'https://www.thebrand.ai/brandcreator/index'
        }, {
            name: 'Templates',
            href: 'https://www.thebrand.ai/i/designs'
        }, {
            name: 'Insights',
            href: 'https://www.thebrand.ai/insights/'
        }, {
            name: 'Pricing',
            href: 'https://www.thebrand.ai/brandpay/choose'
        }, {
            name: 'Blogs',
            href: 'https://www.thebrand.ai/blogs'
        } 

             
            ];
        return /*#__PURE__*/React.createElement("header", {
            className: "bg-white/80 backdrop-blur-sm sticky top-0 z-50 shadow-sm"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 py-4"
        }, /*#__PURE__*/React.createElement("div", {
            className: "flex items-center justify-between"
        }, /*#__PURE__*/React.createElement("div", {
            className: "flex items-center space-x-8"
        }, /*#__PURE__*/React.createElement("a", {
            href: "/",
            "aria-label": "Brand AI Homepage"
        }, /*#__PURE__*/React.createElement(Logo, null)), /*#__PURE__*/React.createElement("nav", {
            className: "hidden md:flex items-center space-x-6"
        }, navLinks.map(link => /*#__PURE__*/React.createElement("a", {
            key: link.name,
            href: link.href,
            className: "text-gray-600 hover:text-brand-cyan font-medium transition-colors"
        }, link.name)))), /*#__PURE__*/React.createElement("div", {
            className: "hidden md:flex items-center space-x-4"
        }, /*#__PURE__*/React.createElement("a", {
            href: "https://bit.ly/2LpQJmO",
            target: "_blank",
            rel: "noopener noreferrer",
            className: "font-semibold text-gray-600 hover:text-brand-cyan transition-colors border border-gray-300 rounded-lg py-2 px-4 text-sm hover:border-brand-cyan"
        }, "Download App"),
        


        )), /*#__PURE__*/React.createElement("div", {
            className: "md:hidden"
        }, /*#__PURE__*/React.createElement("button", {
            onClick: () => setIsMenuOpen(!isMenuOpen),
            className: "text-gray-800 focus:outline-none",
            "aria-label": "Toggle menu"
        }, /*#__PURE__*/React.createElement("svg", {
            className: "w-6 h-6",
            fill: "none",
            stroke: "currentColor",
            viewBox: "0 0 24 24",
            xmlns: "http://www.w3.org/2000/svg"
        }, /*#__PURE__*/React.createElement("path", {
            strokeLinecap: "round",
            strokeLinejoin: "round",
            strokeWidth: "2",
            d: isMenuOpen ? "M6 18L18 6M6 6l12 12" : "M4 6h16M4 12h16M4 18h16"
        }))))), isMenuOpen && /*#__PURE__*/React.createElement("div", {
            className: "md:hidden mt-4"
        }, /*#__PURE__*/React.createElement("nav", {
            className: "flex flex-col space-y-4"
        }, navLinks.map(link => /*#__PURE__*/React.createElement("a", {
            key: link.name,
            href: link.href,
            className: "text-gray-600 hover:text-brand-cyan font-medium transition-colors"
        }, link.name)), /*#__PURE__*/React.createElement("div", {
            className: "flex flex-col space-y-3 pt-4 border-t"
        }, /*#__PURE__*/React.createElement("a", {
            href: "https://bit.ly/2LpQJmO",
            target: "_blank",
            rel: "noopener noreferrer",
            className: "w-full text-center border border-gray-300 text-gray-600 font-bold py-2 px-4 rounded-lg hover:border-brand-cyan hover:text-brand-cyan transition-colors"
        }, "Download App") )))));
    };
    // --- END OF components/Header.tsx ---
    // Override Header to render nothing and rely on hardcoded HTML header
    Header = () => null;

    // --- START OF components/Footer.tsx ---
    var Footer = () => {
        var socialLinks = [{
            name: 'Facebook',
            href: 'https://facebook.com/TheBrandApp',
            icon: /*#__PURE__*/React.createElement(FacebookIcon, null)
        }, {
            name: 'Twitter',
            href: 'https://twitter.com/thebrandhq',
            icon: /*#__PURE__*/React.createElement(TwitterIcon, null)
        }, {
            name: 'Instagram',
            href: 'https://www.instagram.com/thebrandapp',
            icon: /*#__PURE__*/React.createElement(InstagramIcon, null)
        }, {
            name: 'LinkedIn',
            href: 'https://www.linkedin.com/company/the-brand-app',
            icon: /*#__PURE__*/React.createElement(LinkedInIcon, null)
        }];
        var footerSections = [{
            title: 'Features',
            links: [{
                name: 'Brand Creator',
                href: 'https://www.thebrand.ai/brandcreator/index'
            }, {
                name: 'My Designs',
                href: 'https://www.thebrand.ai/i/account/designs'
            }, {
                name: 'Templates',
                href: 'https://www.thebrand.ai/i'
            }, {
                name: 'Brand Toolkit',
                href: 'https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit'
            }]
        }, {
            title: 'Resources',
            links: [{
                name: 'Insights',
                href: 'https://www.thebrand.ai/insights/'
            }, {
                name: 'Blogs',
                href: 'https://www.thebrand.ai/blogs'
            }, {
                name: 'Brand Journeys',
                href: 'https://www.thebrand.ai/insights/dashboard?feature=browsejourneys'
            }, {
                name: 'Sites',
                href: 'https://www.thebrand.ai/sites/index'
            }]
        }, {
            title: 'Account',
            links: [{
                name: 'My Brand Identity',
                href: 'https://www.thebrand.ai/i/account/build_brand'
            }, {
                name: 'Update Brand Details',
                href: '#'
            }, {
                name: 'Onboarding',
                href: 'https://www.thebrand.ai/insights/auth-onboard'
            }]
        }, {
            title: 'Company',
            links: [{
                name: 'About Us',
                href: '#'
            }, {
                name: 'Contact Us',
                href: 'https://www.thebrand.ai/i/contact'
            }, {
                name: 'Careers',
                href: '#'
            }]
        }];
        return /*#__PURE__*/React.createElement("footer", {
            className: "bg-brand-midnight text-white"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 py-12"
        }, /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8"
        }, /*#__PURE__*/React.createElement("div", {
            className: "col-span-2 lg:col-span-1"
        }, /*#__PURE__*/React.createElement("a", {
            href: "/",
            "aria-label": "Brand AI Homepage"
        }, /*#__PURE__*/React.createElement(Logo, {
            theme: "dark"
        })), /*#__PURE__*/React.createElement("p", {
            className: "mt-4 text-gray-400"
        }, "Your vision, amplified.")), footerSections.map(section => /*#__PURE__*/React.createElement("div", {
            key: section.title
        }, /*#__PURE__*/React.createElement("h3", {
            className: "font-bold uppercase text-gray-400"
        }, section.title), /*#__PURE__*/React.createElement("ul", {
            className: "mt-4 space-y-2"
        }, section.links.map(link => /*#__PURE__*/React.createElement("li", {
            key: link.name
        }, /*#__PURE__*/React.createElement("a", {
            href: link.href,
            className: "text-gray-300 hover:text-brand-cyan transition-colors"
        }, link.name))))))), /*#__PURE__*/React.createElement("div", {
            className: "mt-12 pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center"
        }, /*#__PURE__*/React.createElement("p", {
            className: "text-gray-400"
        }, "\xA9 ", new Date().getFullYear(), " Brand AI. All rights reserved."), /*#__PURE__*/React.createElement("div", {
            className: "flex space-x-4 mt-4 md:mt-0"
        }, socialLinks.map(social => /*#__PURE__*/React.createElement("a", {
            key: social.name,
            href: social.href,
            className: "text-gray-400 hover:text-brand-cyan transition-colors",
            "aria-label": social.name
        }, /*#__PURE__*/React.createElement("span", {
            className: "sr-only"
        }, social.name), social.icon))))));
    };
    // --- END OF components/Footer.tsx ---

    // --- START OF components/FeatureCard.tsx ---
    var FeatureCard = _ref2 => {
        var {
            title,
            description,
            link,
            buttonText,
            imageUrl,
            bgColor,
            size = 'normal'
        } = _ref2;
        var sizeClasses = {
            normal: 'min-h-[480px] md:min-h-[520px]',
            large: 'min-h-[520px] md:col-span-2 lg:col-span-1' // Special classes can be added here
        };
        return /*#__PURE__*/React.createElement("div", {
            className: "relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 ".concat(sizeClasses[size]),
            style: {
                backgroundColor: bgColor
            }
        }, /*#__PURE__*/React.createElement("div", {
            className: "z-10 relative"
        }, /*#__PURE__*/React.createElement("h3", {
            className: "text-3xl md:text-4xl font-bold mb-4"
        }, title), description && /*#__PURE__*/React.createElement("p", {
            className: "text-lg opacity-90 mb-6"
        }, description), /*#__PURE__*/React.createElement("a", {
            href: link,
            className: "bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block"
        }, buttonText)), /*#__PURE__*/React.createElement("div", {
            className: "absolute inset-0 z-0"
        }, /*#__PURE__*/React.createElement("img", {
            src: imageUrl,
            alt: title,
            className: "w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out",
            loading: "lazy",
            decoding: "async"
        }), /*#__PURE__*/React.createElement("div", {
            className: "absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"
        })));
    };
    // --- END OF components/FeatureCard.tsx ---

    // --- START OF components/TemplateCard.tsx ---
    var TemplateCard = _ref3 => {
        var {
            title,
            url
        } = _ref3;
        var imageSeed = title.replace(/\s+/g, '-').toLowerCase();
        return /*#__PURE__*/React.createElement("a", {
            href: url,
            className: "block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"
        }, /*#__PURE__*/React.createElement("div", {
            className: "relative aspect-[4/3] overflow-hidden"
        }, /*#__PURE__*/React.createElement("img", {
            src: "https://picsum.photos/seed/".concat(imageSeed, "/400/300"),
            alt: title,
            className: "w-full h-full object-cover group-hover:scale-105 transition-transform duration-300",
            loading: "lazy",
            decoding: "async"
        }), /*#__PURE__*/React.createElement("div", {
            className: "absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"
        })), /*#__PURE__*/React.createElement("div", {
            className: "p-3"
        }, /*#__PURE__*/React.createElement("h4", {
            className: "text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300"
        }, title)));
    };
    // --- END OF components/TemplateCard.tsx ---

    // --- START OF components/InteractiveTemplates.tsx ---
    var InteractiveTemplates = () => {
        var initialCache = window.__TEMPLATE_CATEGORIES_CACHE || [];
        var [categories, setCategories] = useState(initialCache);
        var hasSocialInit = initialCache.some(function (c) { return c.category === 'Social Media'; });
        var [activeTab, setActiveTab] = useState(hasSocialInit ? 'Social Media' : (initialCache[0] && initialCache[0].category) || 'Social Media');
        var [isLoading, setIsLoading] = useState(initialCache.length === 0);

        React.useEffect(function () {
            if (initialCache.length) { setIsLoading(false); return; }
            fetch('categories.json').then(function (res) {
                return res.json();
            }).then(function (data) {
                var mapped = (Array.isArray(data) ? data : []).map(function (cat) {
                    return {
                        category: cat.label,
                        templates: (Array.isArray(cat.children) ? cat.children : []).map(function (child) {
                            return { title: child.label, url: child.url }; 
                        })
                    }; 
                }).filter(function (c) { return c.templates && c.templates.length; });
                var desiredOrder = ['Social Media','Invites & Cards','Documents','Advertising','Covers','More'];
                var ordered = mapped.slice().sort(function(a,b){
                  var ai = desiredOrder.indexOf(a.category);
                  var bi = desiredOrder.indexOf(b.category);
                  if (ai === -1 && bi === -1) return 0;
                  if (ai === -1) return 1;
                  if (bi === -1) return -1;
                  return ai - bi;
                });
                setCategories(ordered);
                var hasSocial = mapped.some(function (c) { return c.category === 'Social Media'; });
                setActiveTab(hasSocial ? 'Social Media' : (mapped[0] && mapped[0].category) || '');
                window.__TEMPLATE_CATEGORIES_CACHE = ordered;
                setIsLoading(false);
            }).catch(function () {
                // If fetch fails, do nothing; categories remain empty
                setIsLoading(false);
            });
        }, []);

        var activeCategory = categories.find(function (cat) { return cat.category === activeTab; });

        return /*#__PURE__*/React.createElement("div", { className: "container mx-auto px-6" },
            /*#__PURE__*/React.createElement("div", { className: "text-center mb-12" },
                /*#__PURE__*/React.createElement("h2", { className: "text-4xl md:text-5xl font-bold mb-4" }, "Templates for absolutely anything"),
                /*#__PURE__*/React.createElement("p", { className: "text-lg md:text-xl text-gray-600 max-w-2xl mx-auto" }, "Jumpstart your next project with thousands of professional templates for any occasion."),
                /*#__PURE__*/React.createElement("a", { href: "https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home", className: "mt-8 inline-block bg-brand-cyan text-white font-bold py-3 px-8 rounded-lg text-lg hover:opacity-90 transition-opacity" }, "Create Your Brand Now")
            ),
            /*#__PURE__*/React.createElement("div", { className: "flex flex-wrap justify-center gap-2 md:gap-4 mb-10" },
                categories.map(function (cat) {
                    return /*#__PURE__*/React.createElement("button", {
                        key: cat.category,
                        onClick: function () { return setActiveTab(cat.category); },
                        className: "py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base ".concat(activeTab === cat.category ? 'bg-brand-cyan text-white shadow-lg transform scale-105' : 'bg-gray-200 text-gray-700 hover:bg-gray-300')
                    }, cat.category);
                })
            ),
            /*#__PURE__*/React.createElement("div", { key: activeTab, className: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-6 md:gap-8" },
                isLoading ? Array.from({length:12}).map(function(_,i){
                  return /*#__PURE__*/React.createElement("div", { key:i, className:"rounded-lg bg-gray-200 h-40 animate-pulse"});
                }) : (activeCategory ? activeCategory.templates.map(function (template) {
                    return /*#__PURE__*/React.createElement(TemplateCard, { key: template.url, title: template.title, url: template.url });
                }) : null)
            )
        );
    };
    // --- END OF components/InteractiveTemplates.tsx ---

    // --- START OF App.tsx ---
    var App = () => {
        return /*#__PURE__*/React.createElement("div", {
            className: "bg-white text-gray-800 font-sans"
        }, /*#__PURE__*/React.createElement(Header, null), /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement("section", {
            className: "relative text-white overflow-hidden bg-brand-midnight"
        }, /*#__PURE__*/React.createElement("div", {
            "aria-hidden": "true",
            className: "absolute inset-0 z-0 opacity-50"
        }, /*#__PURE__*/React.createElement("div", {
            className: "absolute top-[-30%] left-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-br from-brand-cyan to-transparent filter blur-3xl"
        }), /*#__PURE__*/React.createElement("div", {
            className: "absolute bottom-[-30%] right-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-tl from-brand-cyan to-transparent filter blur-3xl"
        })), /*#__PURE__*/React.createElement("div", {
            className: "relative z-10 flex flex-col items-center justify-center min-h-[70vh] md:min-h-[80vh] px-4 text-center"
        }, /*#__PURE__*/React.createElement("h1", {
            className: "text-5xl md:text-7xl lg:text-8xl font-extrabold mb-4 tracking-tight"
        }, "Your Entire Brand. One Intelligent Platform."), /*#__PURE__*/React.createElement("p", {
            className: "text-lg md:text-2xl max-w-3xl mb-8"
        }, "Imagine the creative firepower of a design agency, the strategic insight of a consultant, and the brilliance of a top-tier marketing team\u2014all at your fingertips. That's Brand AI."), /*#__PURE__*/React.createElement("div", {
            className: "flex flex-wrap justify-center gap-4"
        }, /*#__PURE__*/React.createElement("a", {
            href: "https://www.thebrand.ai/brandcreator/index",
            className: "bg-white text-brand-midnight font-bold py-3 px-8 rounded-lg text-lg hover:bg-gray-200 transition-all duration-300 transform hover:scale-105"
        }, "Start creating for free"), /*#__PURE__*/React.createElement("a", {
            href: "https://www.thebrand.ai/i/",
            className: "bg-white/10 backdrop-blur-sm text-white font-bold py-3 px-8 rounded-lg text-lg hover:bg-white/20 transition-all duration-300 transform hover:scale-105"
        }, "Browse Templates")))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28 bg-gray-50"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 text-center"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold mb-4"
        }, "The old way is broken."), /*#__PURE__*/React.createElement("p", {
            className: "text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12"
        }, "Did you know 90% of businesses struggle to stand out? They spend months and thousands on solutions that don\u2019t deliver."), /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-1 md:grid-cols-3 gap-8 text-left"
        }, PROBLEM_CARDS.map((card, index) => /*#__PURE__*/React.createElement("div", {
            key: index,
            className: "bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300"
        }, /*#__PURE__*/React.createElement("div", {
            className: "text-brand-cyan mb-4"
        }, card.icon), /*#__PURE__*/React.createElement("h3", {
            className: "text-xl font-bold mb-2"
        }, card.title), /*#__PURE__*/React.createElement("p", {
            className: "text-gray-600"
        }, card.description)))))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold text-center mb-12"
        }, "An entire toolkit, powered by AI."), /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"
        }, FEATURES_PRIMARY.map((feature, index) => /*#__PURE__*/React.createElement(FeatureCard, _extends({
            key: index
        }, feature)))))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-24 bg-brand-midnight text-white"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 text-center"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-5xl md:text-6xl font-extrabold mb-4 tracking-tight"
        }, "34,000+ users and growing."), /*#__PURE__*/React.createElement("p", {
            className: "text-lg md:text-xl opacity-80 max-w-3xl mx-auto"
        }, "Trusted by governments, SMEs, and startups worldwide. All achieved through organic growth fueled by user trust and referrals."))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28 bg-gray-50"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold text-center mb-12"
        }, "All the tools. All in one place."), /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-1 md:grid-cols-2 gap-8"
        }, FEATURES_SECONDARY.map((feature, index) => /*#__PURE__*/React.createElement(FeatureCard, _extends({
            key: index
        }, feature)))))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6 text-center"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold mb-12"
        }, "Hyper-contextual solutions for everyone."), /*#__PURE__*/React.createElement("div", {
            className: "flex flex-wrap justify-center gap-8 md:gap-12"
        }, TARGET_MARKETS.map((market, index) => /*#__PURE__*/React.createElement("div", {
            key: index,
            className: "flex flex-col items-center text-center w-32"
        }, /*#__PURE__*/React.createElement("div", {
            className: "bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200"
        }, market.icon), /*#__PURE__*/React.createElement("h3", {
            className: "font-semibold text-gray-700"
        }, market.name)))))), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28 bg-gray-50"
        }, /*#__PURE__*/React.createElement(InteractiveTemplates, null)), /*#__PURE__*/React.createElement("section", {
            className: "py-20 md:py-28"
        }, /*#__PURE__*/React.createElement("div", {
            className: "container mx-auto px-6"
        }, /*#__PURE__*/React.createElement("h2", {
            className: "text-4xl md:text-5xl font-bold text-center mb-12"
        }, "Your brand's entire ecosystem, connected."), /*#__PURE__*/React.createElement("div", {
            className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"
        }, FEATURES_TERTIARY.map((feature, index) => /*#__PURE__*/React.createElement(FeatureCard, _extends({
            key: index
        }, feature))))))), /*#__PURE__*/React.createElement(Footer, null));
    };
    // --- END OF App.tsx ---

    // --- START OF index.tsx ---
    // React mount disabled to retain static HTML content within #root.
    // --- END OF index.tsx ---
    //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwiUmVhY3RET00iLCJGRUFUVVJFU19QUklNQVJZIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImxpbmsiLCJidXR0b25UZXh0IiwiaW1hZ2VVcmwiLCJiZ0NvbG9yIiwiRkVBVFVSRVNfU0VDT05EQVJZIiwic2l6ZSIsIkZFQVRVUkVTX1RFUlRJQVJZIiwiQ29zdEljb24iLCJjcmVhdGVFbGVtZW50IiwieG1sbnMiLCJjbGFzc05hbWUiLCJmaWxsIiwidmlld0JveCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwiZCIsIlRpbWVJY29uIiwiVG9vbHNJY29uIiwiUFJPQkxFTV9DQVJEUyIsImljb24iLCJTbWVJY29uIiwiR292ZXJubWVudEljb24iLCJTdGFydHVwSWNvbiIsIk1hcmtldGVySWNvbiIsIkNvcnBvcmF0ZUljb24iLCJUQVJHRVRfTUFSS0VUUyIsIm5hbWUiLCJGYWNlYm9va0ljb24iLCJmaWxsUnVsZSIsImNsaXBSdWxlIiwiVHdpdHRlckljb24iLCJJbnN0YWdyYW1JY29uIiwiTGlua2VkSW5JY29uIiwiVEVNUExBVEVfQ0FURUdPUklFUyIsImNhdGVnb3J5IiwidGVtcGxhdGVzIiwidXJsIiwiTG9nbyIsIl9yZWYiLCJ0aGVtZSIsInRoZUNvbG9yIiwiYnJhbmRDb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwidHJhbnNmb3JtIiwieCIsInkiLCJ0ZXh0QW5jaG9yIiwiZm9udFNpemUiLCJmb250V2VpZ2h0Iiwic3R5bGUiLCJmb250RmFtaWx5IiwiSGVhZGVyIiwiaXNNZW51T3BlbiIsInNldElzTWVudU9wZW4iLCJuYXZMaW5rcyIsImhyZWYiLCJtYXAiLCJrZXkiLCJ0YXJnZXQiLCJyZWwiLCJvbkNsaWNrIiwiRm9vdGVyIiwic29jaWFsTGlua3MiLCJmb290ZXJTZWN0aW9ucyIsImxpbmtzIiwic2VjdGlvbiIsIkRhdGUiLCJnZXRGdWxsWWVhciIsInNvY2lhbCIsIkZlYXR1cmVDYXJkIiwiX3JlZjIiLCJzaXplQ2xhc3NlcyIsIm5vcm1hbCIsImxhcmdlIiwiY29uY2F0IiwiYmFja2dyb3VuZENvbG9yIiwic3JjIiwiYWx0IiwibG9hZGluZyIsImRlY29kaW5nIiwiVGVtcGxhdGVDYXJkIiwiX3JlZjMiLCJpbWFnZVNlZWQiLCJyZXBsYWNlIiwidG9Mb3dlckNhc2UiLCJJbnRlcmFjdGl2ZVRlbXBsYXRlcyIsImFjdGl2ZVRhYiIsInNldEFjdGl2ZVRhYiIsImFjdGl2ZUNhdGVnb3J5IiwiZmluZCIsImNhdCIsInRlbXBsYXRlIiwiQXBwIiwiY2FyZCIsImluZGV4IiwiZmVhdHVyZSIsIl9leHRlbmRzIiwibWFya2V0Iiwicm9vdEVsZW1lbnQiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiRXJyb3IiLCJyb290IiwiY3JlYXRlUm9vdCIsInJlbmRlciIsIlN0cmljdE1vZGUiXSwic291cmNlcyI6WyJJbmxpbmUgQmFiZWwgc2NyaXB0Il0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICAgaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuICAgICAgaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuXG4gICAgICAvLyAtLS0gU1RBUlQgT0YgY29uc3RhbnRzLnRzeCAtLS1cbiAgICAgIGNvbnN0IEZFQVRVUkVTX1BSSU1BUlkgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJ0JyaW5nIFlvdXIgQnJhbmQgdG8gTGlmZSB3aXRoIEJyYW5kIENyZWF0b3InLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUXVpY2tseSBhbmQgZWZmb3J0bGVzc2x5IGNyZWF0ZSBhIHBvd2VyZnVsLCBwcm9mZXNzaW9uYWwgYnJhbmQgaWRlbnRpdHkgYW5kIGxvZ29zIHRoYXQgc3RhbmQgb3V0IGFuZCBkcml2ZSBidXNpbmVzcyBncm93dGguJyxcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvYnJhbmRjcmVhdG9yL2luZGV4JyxcbiAgICAgICAgICBidXR0b25UZXh0OiAnRXhwbG9yZSBCcmFuZCBDcmVhdG9yJyxcbiAgICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkL2Rlc2lnbi1hc3NldHMvODAwLzYwMCcsXG4gICAgICAgICAgYmdDb2xvcjogJyMxRTAwM0InLCAvLyBEZWVwIFB1cnBsZS9JbmRpZ29cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnUmV2b2x1dGlvbml6ZSBZb3VyIEJyYW5kIHdpdGggQUkgSW5zaWdodHMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU3VwZXJjaGFyZ2UgeW91ciBicmFuZCB3aXRoIGludGVsbGlnZW50IHNvbHV0aW9ucywgZGVzaWduLCBhbmQgYmlnIGRhdGEgdG8gZHJpdmUgZ3Jvd3RoLCBlbmdhZ2VtZW50LCBhbmQgbWVhc3VyYWJsZSBzdWNjZXNzLicsXG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2luc2lnaHRzLycsXG4gICAgICAgICAgYnV0dG9uVGV4dDogJ0V4cGxvcmUgSW5zaWdodHMnLFxuICAgICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zL3NlZWQvZGF0YS12aXovODAwLzYwMCcsXG4gICAgICAgICAgYmdDb2xvcjogJyMwMDNENUInLCAvLyBEYXJrIEN5YW4vQmx1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6ICdCdWlsZCBhIFdlYnNpdGUgRWFzaWx5IHdpdGggQnJhbmQgU2l0ZXMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2hvb3NlIGZyb20gb3ZlciAxMDAgYW1hemluZyB0ZW1wbGF0ZXMgdG8gYnVpbGQgYSBzdHVubmluZyB3ZWJzaXRlIHRoYXQgZW1wb3dlcnMgeW91ciBicmFuZCB0byBzdGFuZCBvdXQuJyxcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvc2l0ZXMvaW5kZXgnLFxuICAgICAgICAgIGJ1dHRvblRleHQ6ICdFeHBsb3JlIEJyYW5kIFNpdGVzJyxcbiAgICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkL3dlYi1kZXNpZ24vODAwLzYwMCcsXG4gICAgICAgICAgYmdDb2xvcjogJyMwMDRDNEMnLCAvLyBEYXJrIFRlYWxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IEZFQVRVUkVTX1NFQ09OREFSWSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnTWVldCB0aGUgVmlzdWFsIFN1aXRlJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1lvdXIgZW50aXJlIHdvcmtmbG93IGluIG9uZSBwbGFjZS4gRnJvbSBiZXNwb2tlIGRlc2lnbnMgYW5kIGluc2lnaHRmdWwgYmxvZ3MgdG8gdGFpbG9yZWQgc3RyYXRlZ2llc+KAlGFsbCBwb3dlcmVkIGJ5IEFJLicsXG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2luc2lnaHRzL2Rhc2hib2FyZD9mZWF0dXJlPWJyYW5kdG9vbGtpdCcsXG4gICAgICAgICAgYnV0dG9uVGV4dDogJ0V4cGxvcmUgVmlzdWFsIFN1aXRlJyxcbiAgICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkL2JyYW5kLXN1aXRlLzEyMDAvODAwJyxcbiAgICAgICAgICBiZ0NvbG9yOiAnIzNEMDA0RicsIC8vIERhcmsgTWFnZW50YS9QdXJwbGVcbiAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6ICdQcmVzZW50IHdpdGggaW1wYWN0JyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlaW1hZ2luZSBwcmVzZW50YXRpb25zIHdpdGggY2luZW1hdGljIHZpc3VhbHMsIHNtYXJ0IGNvbGxhYm9yYXRpb24sIGFuZCBBSS1wb3dlcmVkIHRvb2xzLicsXG4gICAgICAgICAgbGluazogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZGVzaWducycsXG4gICAgICAgICAgYnV0dG9uVGV4dDogJ1RyeSBQcmVzZW50YXRpb25zJyxcbiAgICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkL2ltcGFjdC1wcmVzLzEyMDAvODAwJyxcbiAgICAgICAgICBiZ0NvbG9yOiAnIzAwNUY1OCcsIC8vIERlZXAgVGVhbC9HcmVlblxuICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBGRUFUVVJFU19URVJUSUFSWSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnRGVmaW5lIHlvdXIgQnJhbmQgSWRlbnRpdHknLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQSBjZW50cmFsIGh1YiB0byBidWlsZCwgbWFuYWdlLCBhbmQgZXZvbHZlIHlvdXIgdW5pcXVlIGJyYW5kIGlkZW50aXR5IGFzIHlvdSBzY2FsZS4nLFxuICAgICAgICAgIGxpbms6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FjY291bnQvYnVpbGRfYnJhbmQnLFxuICAgICAgICAgIGJ1dHRvblRleHQ6ICdCdWlsZCBNeSBCcmFuZCcsXG4gICAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL3BpY3N1bS5waG90b3Mvc2VlZC9icmFuZC1ndWlkZS84MDAvNjAwJyxcbiAgICAgICAgICBiZ0NvbG9yOiAnIzFBMjM3RScsIC8vIERhcmsgSW5kaWdvXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJ0VuZC10by1lbmQgcGxhdGZvcm0gZm9yIGxhcmdlIG9yZ2FuaXphdGlvbnMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2NhbGUgYnJhbmQgY29uc2lzdGVuY3kgd2l0aCBlbnRlcnByaXNlLWdyYWRlIHRvb2xzLCBzZWN1cml0eSwgYW5kIHN1cHBvcnQgZm9yIGxhcmdlIG9yZ2FuaXphdGlvbnMuJyxcbiAgICAgICAgICBsaW5rOiAnIycsXG4gICAgICAgICAgYnV0dG9uVGV4dDogJ0V4cGxvcmUgRW50ZXJwcmlzZScsXG4gICAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL3BpY3N1bS5waG90b3Mvc2VlZC9jb3Jwb3JhdGUtZGFzaC84MDAvNjAwJyxcbiAgICAgICAgICBiZ0NvbG9yOiAnIzAwMjYzRScsIC8vIFZlcnkgRGFyayBCbHVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJ1VubG9jayBHcm93dGggd2l0aCBJbnNpZ2h0IEpvdXJuZXlzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFeHBsb3JlIGV4cGVydC1sZWQgam91cm5leXMgdG8gdHJhbnNmb3JtIHlvdXIgc3RhcnR1cCdzIGdyb3d0aCwgb3ZlcmNvbWUgY2hhbGxlbmdlcywgYW5kIGFjaGlldmUgc3VjY2Vzcy5cIixcbiAgICAgICAgICBsaW5rOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvZGFzaGJvYXJkP2ZlYXR1cmU9YnJvd3Nlam91cm5leXMnLFxuICAgICAgICAgIGJ1dHRvblRleHQ6ICdEaXNjb3ZlciBZb3VyIFBhdGgnLFxuICAgICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9waWNzdW0ucGhvdG9zL3NlZWQvZ3Jvd3RoLXBhdGgvODAwLzYwMCcsXG4gICAgICAgICAgYmdDb2xvcjogJyMwMTU3OUInLCAvLyBMaWdodCBCbHVlXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBDb3N0SWNvbiA9ICgpID0+IChcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3NOYW1lPVwiaC0xMCB3LTEwXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlV2lkdGg9ezJ9PlxuICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTEyIDhjLTEuNjU3IDAtMyAuODk1LTMgMnMxLjM0MyAyIDMgMiAzIC44OTUgMyAyLTEuMzQzIDItMyAybTAtOGMxLjExIDAgMi4wOC40MDIgMi41OTkgMU0xMiA4VjdtMCAxMHYtMW0tNS4yOTMtNi4yOTNsLS43MDcuNzA3TTE3LjI5MyA3LjcwN2wuNzA3LS43MDdNNS43MDcgMTYuMjkzbC43MDcuNzA3TTE2LjU4NiAxN0gxOWEyIDIgMCAwMDItMlY5YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnY2YTIgMiAwIDAwMiAyaDIuNDE0XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBUaW1lSWNvbiA9ICgpID0+IChcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3NOYW1lPVwiaC0xMCB3LTEwXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlV2lkdGg9ezJ9PlxuICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTEyIDh2NGwzIDNtNi0zYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKTtcblxuICAgICAgY29uc3QgVG9vbHNJY29uID0gKCkgPT4gKFxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzc05hbWU9XCJoLTEwIHctMTBcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTEgNGEyIDIgMCAxMTQgMHYxYTEgMSAwIDAwMSAxaDNhMSAxIDAgMDExIDF2M2ExIDEgMCAwMS0xIDFoLTFhMiAyIDAgMTAwIDRoMWExIDEgMCAwMTEgMXYzYTEgMSAwIDAxLTEgMWgtM2ExIDEgMCAwMS0xLTF2LTFhMiAyIDAgMTAtNCAwdjFhMSAxIDAgMDEtMSAxSDdhMSAxIDAgMDEtMS0xdi0zYTEgMSAwIDAwLTEtMUg0YTIgMiAwIDExMC00aDFhMSAxIDAgMDAxLTFWN2ExIDEgMCAwMTEtMWgzYTEgMSAwIDAwMS0xVjR6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBQUk9CTEVNX0NBUkRTID0gW1xuICAgICAgICB7XG4gICAgICAgICAgaWNvbjogPENvc3RJY29uIC8+LFxuICAgICAgICAgIHRpdGxlOiAnQWdlbmN5LUxldmVsIEJ1ZGdldHMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU01FcyBhbmQgZ292ZXJubWVudHMgbmVlZCB0b3AtdGllciBzdHJhdGVneSBidXQgbGFjayB0aGUgYnVkZ2V0IGZvciBleHBlbnNpdmUgYWdlbmNpZXMuJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWNvbjogPFRpbWVJY29uIC8+LFxuICAgICAgICAgIHRpdGxlOiAnTW9udGhzIG9mIEd1ZXNzd29yaycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdGb3VuZGVycyBhbmQgbWFya2V0ZXJzIHdhc3RlIHByZWNpb3VzIHRpbWUgZ3Vlc3NpbmcgdGhlaXIgbmV4dCBtb3ZlIGluc3RlYWQgb2YgYWN0aW5nIG9uIGNsZWFyIGluc2lnaHRzLidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGljb246IDxUb29sc0ljb24gLz4sXG4gICAgICAgICAgdGl0bGU6ICdKdWdnbGluZyBhIERvemVuIFRvb2xzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NyZWF0aXZlcyBqdWdnbGUgbXVsdGlwbGUsIGRpc2Nvbm5lY3RlZCB0b29scyB0byBjcmVhdGUgYSBzaW5nbGUgY2FtcGFpZ24sIHdpdGggbm9uZSBvZiB0aGVtIHRhbGtpbmcgdG8gZWFjaCBvdGhlci4nXG4gICAgICAgIH1cbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IFNtZUljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzTmFtZT1cImgtOCB3LThcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTkgMjFWNWEyIDIgMCAwMC0yLTJIN2EyIDIgMCAwMC0yIDJ2MTZtMTQgMGgybS0yIDBoLTVtLTkgMEgzbTIgMHYtNG0wIDRoNW0wIDB2LTRtMCA0aDVtLTUtNHYtNWg1djVoLTV6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuICAgICAgY29uc3QgR292ZXJubWVudEljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzTmFtZT1cImgtOCB3LThcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTIgMjFsLTItMm0yIDJsMi0ybTIgMmwyLTJNNSAxNWwtMi0ybTIgMmwyLTJtMiAybDItMm0yIDJsMi0yTTUgMjF2LTZhMiAyIDAgMDEyLTJoMTBhMiAyIDAgMDEyIDJ2NlwiIC8+IDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTMgMjFoMThNNSAxMGw3LTcgNyA3XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuICAgICAgY29uc3QgU3RhcnR1cEljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzTmFtZT1cImgtOCB3LThcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTMgMTBWM0w0IDE0aDd2N2w5LTExaC03elwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKTtcbiAgICAgIGNvbnN0IE1hcmtldGVySWNvbiA9ICgpID0+IChcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3NOYW1lPVwiaC04IHctOFwiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZVdpZHRoPXsyfT5cbiAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgZD1cIk0xMSAzLjA1NUE5LjAwMSA5LjAwMSAwIDEwMjAuOTQ1IDEzSDExVjMuMDU1elwiIC8+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMjAuNDg4IDlIMTVWMy41MTJBOS4wMjUgOS4wMjUgMCAwMTIwLjQ4OCA5elwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgKTtcbiAgICAgIGNvbnN0IENvcnBvcmF0ZUljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzTmFtZT1cImgtOCB3LThcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2VXaWR0aD17Mn0+XG4gICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNMTkgMjFWNWEyIDIgMCAwMC0yLTJIN2EyIDIgMCAwMC0yIDJ2MTZtMTQgMGgybS0yIDBoLTVtLTkgMEgzbTIgMHYtNG0wIDRoNW0wIDB2LTRtMCA0aDVtLTUtNFY1aDV2N2gtNXpcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IFRBUkdFVF9NQVJLRVRTID0gW1xuICAgICAgICB7IGljb246IDxTbWVJY29uIC8+LCBuYW1lOiAnU01FcycgfSxcbiAgICAgICAgeyBpY29uOiA8R292ZXJubWVudEljb24gLz4sIG5hbWU6ICdHb3Zlcm5tZW50cycgfSxcbiAgICAgICAgeyBpY29uOiA8U3RhcnR1cEljb24gLz4sIG5hbWU6ICdTdGFydHVwcycgfSxcbiAgICAgICAgeyBpY29uOiA8TWFya2V0ZXJJY29uIC8+LCBuYW1lOiAnTWFya2V0ZXJzJyB9LFxuICAgICAgICB7IGljb246IDxDb3Jwb3JhdGVJY29uIC8+LCBuYW1lOiAnQ29ycG9yYXRpb25zJyB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgRmFjZWJvb2tJY29uID0gKCkgPT4gKFxuICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNiBoLTZcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDxwYXRoIGZpbGxSdWxlPVwiZXZlbm9kZFwiIGQ9XCJNMjIgMTJjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMFMyIDYuNDc3IDIgMTJjMCA0Ljk5MSAzLjY1NyA5LjEyOCA4LjQzOCA5Ljg3OHYtNi45ODdoLTIuNTRWMTJoMi41NFY5Ljc5N2MwLTIuNTA2IDEuNDkyLTMuODkgMy43NzctMy44OSAxLjA5NCAwIDIuMjM4LjE5NSAyLjIzOC4xOTV2Mi40NmgtMS4yNmMtMS4yNDMgMC0xLjYzLjc3MS0xLjYzIDEuNTYyVjEyaDIuNzczbC0uNDQzIDIuODloLTIuMzN2Ni45ODhDMTguMzQzIDIxLjEyOCAyMiAxNi45OTEgMjIgMTJ6XCIgY2xpcFJ1bGU9XCJldmVub2RkXCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBUd2l0dGVySWNvbiA9ICgpID0+IChcbiAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTYgaC02XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTguMjkgMjAuMjUxYzcuNTQ3IDAgMTEuNjc1LTYuMjUzIDExLjY3NS0xMS42NzUgMC0uMTc4IDAtLjM1NS0uMDEyLS41M0E4LjM0OCA4LjM0OCAwIDAwMjIgNS45MmE4LjE5IDguMTkgMCAwMS0yLjM1Ny42NDYgNC4xMTggNC4xMTggMCAwMDEuODA0LTIuMjcgOC4yMjQgOC4yMjQgMCAwMS0yLjYwNS45OTYgNC4xMDcgNC4xMDcgMCAwMC02Ljk5MyAzLjc0MyAxMS42NSAxMS42NSAwIDAxLTguNDU3LTQuMjg3IDQuMTA2IDQuMTA2IDAgMDAxLjI3IDUuNDc3QTQuMDcyIDQuMDcyIDAgMDEyLjggOS43MXYuMDUyYTQuMTA1IDQuMTA1IDAgMDAzLjI5MiA0LjAyMiA0LjA5NSA0LjA5NSAwIDAxLTEuODUzLjA3IDQuMTA4IDQuMTA4IDAgMDAzLjgzNCAyLjg1QTguMjMzIDguMjMzIDAgMDEyIDE4LjQwN2ExMS42MTYgMTEuNjE2IDAgMDA2LjI5IDEuODRcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IEluc3RhZ3JhbUljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy02IGgtNlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgPHBhdGggZmlsbFJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMi4zMTUgMmMyLjQzIDAgMi43ODQuMDEzIDMuODA4LjA2IDEuMDY0LjA0OSAxLjc5MS4yMTggMi40MjcuNDY1YTQuOTAyIDQuOTAyIDAgMDExLjc3MiAxLjE1MyA0LjkwMiA0LjkwMiAwIDAxMS4xNTMgMS43NzJjLjI0Ny42MzYuNDE2IDEuMzYzLjQ2NSAyLjQyNy4wNDggMS4wMjQuMDYgMS4zNzguMDYgMy44MDhzLS4wMTIgMi43ODQtLjA2IDMuODA4Yy0uMDQ5IDEuMDY0LS4yMTggMS43OTEtLjQ2NSAyLjQyN2E0LjkwMiA0LjkwMiAwIDAxLTEuMTUzIDEuNzcyIDQuOTAyIDQuOTAyIDAgMDEtMS43NzIgMS4xNTNjLS42MzYuMjQ3LTEuMzYzLjQxNi0yLjQyNy40NjUtMS4wMjQuMDQ4LTEuMzc4LjA2LTMuODA4LjA2cy0yLjc4NC0uMDEyLTMuODA4LS4wNmMtMS4wNjQtLjA0OS0xLjc5MS0uMjE4LTIuNDI3LS40NjVhNC45MDIgNC45MDIgMCAwMS0xLjc3Mi0xLjE1MyA0LjkwMiA0LjkwMiAwIDAxLTEuMTUzLTEuNzcyYy0uMjQ3LS42MzYtLjQxNi0xLjM2My0uNDY1LTIuNDI3LS4wNDgtMS4wMjQtLjA2LTEuMzc4LS4wNi0zLjgwOHMuMDEyLTIuNzg0LjA2LTMuODA4Yy4wNDktMS4wNjQuMjE4LTEuNzkxLjQ2NS0yLjQyN2E0LjkwMiA0LjkwMiAwIDAxMS4xNTMtMS43NzJBNC45MDIgNC45MDIgMCAwMTYuMDggMi41MjVjLjYzNi0uMjQ3IDEuMzYzLS40MTYgMi40MjctLjQ2NUM5LjUzIDIuMDEzIDkuODg0IDIgMTIuMzE1IDJ6TTEyIDcuMDQ0Yy0yLjU4MyAwLTQuNjY2IDIuMDgzLTQuNjY2IDQuNjY2czIuMDgzIDQuNjY2IDQuNjY2IDQuNjY2IDQuNjY2LTIuMDgzIDQuNjY2LTQuNjY2UzE0LjU4MyA3LjA0NCAxMiA3LjA0NHptMCA3LjY2NmMtMS42NTcgMC0zLTEuMzQzLTMtM3MxLjM0My0zIDMtMyAzIDEuMzQzIDMgMy0xLjM0MyAzLTMgM3ptNC45MTctNy45MTZhMS4xNDYgMS4xNDYgMCAxMDAtMi4yOTIgMS4xNDYgMS4xNDYgMCAwMDAgMi4yOTJ6XCIgY2xpcFJ1bGU9XCJldmVub2RkXCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBMaW5rZWRJbkljb24gPSAoKSA9PiAoXG4gICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy02IGgtNlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0xOSAwaC0xNGMtMi43NjEgMC01IDIuMjM5LTUgNXYxNGMwIDIuNzYxIDIuMjM5IDUgNSA1aDE0YzIuNzYyIDAgNS0yLjIzOSA1LTV2LTE0YzAtMi43NjEtMi4yMzgtNS01LTV6bS0xMSAxOWgtM3YtMTFoM3YxMXptLTEuNS0xMi4yNjhjLS45NjYgMC0xLjc1LS43OS0xLjc1LTEuNzY0cy43ODQtMS43NjQgMS43NS0xLjc2NCAxLjc1Ljc5IDEuNzUgMS43NjQtLjc4MyAxLjc2NC0xLjc1IDEuNzY0em0xMy41IDEyLjI2OGgtM3YtNS42MDRjMC0zLjM2OC00LTMuMTEzLTQgMHY1LjYwNGgtM3YtMTFoM3YxLjc2NWMxLjM5Ni0yLjU4NiA3LTIuNzc3IDcgMi40NzZ2Ni43NTl6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICApO1xuXG4gICAgICBjb25zdCBURU1QTEFURV9DQVRFR09SSUVTID0gW1xuICAgICAgICAgIHsgXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnU29jaWFsIE1lZGlhJywgXG4gICAgICAgICAgICAgIHRlbXBsYXRlczogW1xuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJGYWNlYm9vayBQb3N0XCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL3NvY2lhbC1tZWRpYS9mYWNlYm9vay1wb3N0XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiSW5zdGFncmFtIFBvc3RcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvc29jaWFsLW1lZGlhL2luc3RhZ3JhbS1wb3N0c1wiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkluc3RhZ3JhbSBTdG9yeVwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEvaW5zdGFncmFtLXN0b3J5XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiTGlua2VkSW4gUG9zdFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEvbGlua2VkaW4tcG9zdFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlR3aXR0ZXIgUG9zdFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEvdHdpdHRlclwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlBpbnRlcmVzdCBQaW5cIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvc29jaWFsLW1lZGlhL3BpbnRlcmVzdC1waW4tZ3JhcGhpYy10ZW1wbGF0ZXNcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJJR1RWIENvdmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL3NvY2lhbC1tZWRpYS9pZ3R2LWNvdmVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiSGlnaGxpZ2h0IENvdmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL3NvY2lhbC1tZWRpYS9pbnN0YWdyYW0taGlnaGxpZ2h0LWNvdmVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiWW91VHViZSBHcmFwaGljc1wiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEveW91dHViZS1ncmFwaGljLXRlbXBsYXRlc1wiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlR3aXRjaCBHcmFwaGljc1wiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9zb2NpYWwtbWVkaWEvb25saW5lLXN0cmVhbWluZ1wiIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnSW52aXRlcyAmIENhcmRzJywgXG4gICAgICAgICAgICAgIHRlbXBsYXRlczogW1xuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJCdXNpbmVzcyBDYXJkXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2ludml0ZXMtYW5kLWNhcmRzL2J1c2luZXNzLWNhcmQtODV4NTVtbVwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlVTIEJ1c2luZXNzIENhcmRcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvaW52aXRlcy1hbmQtY2FyZHMvYnVzaW5lc3MtY2FyZC11c1wiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkdyZWV0aW5nIENhcmRcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvaW52aXRlcy1hbmQtY2FyZHMvY2FyZFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkludml0YXRpb25cIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvaW52aXRlcy1hbmQtY2FyZHMvaW52aXRhdGlvbi0xMy45eDEwLjdjbVwiIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnRG9jdW1lbnRzJywgXG4gICAgICAgICAgICAgIHRlbXBsYXRlczogW1xuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJQcmVzZW50YXRpb24gMTY6OVwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvcHJlc2VudGF0aW9uLTE2LTlcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJSZXN1bWVcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL3Jlc3VtZVwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkxldHRlcmhlYWQgQTRcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL2xldHRlcmhlYWQtYTRcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJQcm9wb3NhbCBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvcHJvcG9zYWwtYTRcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJGbHllciBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvZmx5ZXItYTRcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJOZXdzbGV0dGVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2RvY3VtZW50cy9uZXdzbGV0dGVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiSW52b2ljZSBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvaW52b2ljZS1hNFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlJlcG9ydCBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvcmVwb3J0LWE0XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiQ2VydGlmaWNhdGVcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL2NlcnRpZmljYXRlXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiTWVudSBBNFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvbWVudS1hNFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkNoZWNrbGlzdFwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvY2hlY2tsaXN0XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiU2NoZWR1bGVcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL3NjaGVkdWxlXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiV29ya2Jvb2tcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL3dvcmtib29rXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiZUJvb2tcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZG9jdW1lbnRzL2Vib29rXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiV2hpdGVwYXBlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9kb2N1bWVudHMvd2hpdGVwYXBlclwiIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgXG4gICAgICAgICAgICAgIGNhdGVnb3J5OiAnQWR2ZXJ0aXNpbmcnLCBcbiAgICAgICAgICAgICAgdGVtcGxhdGVzOiBbXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlBvc3RlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9hZHZlcnRpc2luZy9wb3N0ZXItYTNcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0aXRsZTogXCJCYW5uZXJcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvYWR2ZXJ0aXNpbmcvYmFubmVyLTJ4NmZ0XCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiQmlsbGJvYXJkXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FkdmVydGlzaW5nL2JpbGxib2FyZFwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIkZseWVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FkdmVydGlzaW5nL2ZseWVyLXVzXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiWWFyZCBTaWduXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FkdmVydGlzaW5nL3lhcmQtc2lnblwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlJvbGwtdXAgQmFubmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FkdmVydGlzaW5nL3JvbGwtdXAtYmFubmVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiQnJvY2h1cmVcIiwgdXJsOiBcImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvYWR2ZXJ0aXNpbmcvYnJvY2h1cmVcIiB9LFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IFxuICAgICAgICAgICAgICBjYXRlZ29yeTogJ0NvdmVycycsIFxuICAgICAgICAgICAgICB0ZW1wbGF0ZXM6IFtcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiQm9vayBDb3ZlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9jb3ZlcnMvYm9vay1jb3ZlclwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIk1hZ2F6aW5lIENvdmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2NvdmVycy9tYWdhemluZS1jb3ZlclwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcIlJlcG9ydCBDb3ZlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9jb3ZlcnMvcmVwb3J0LWNvdmVyXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdGl0bGU6IFwiUGxhbm5lciBDb3ZlclwiLCB1cmw6IFwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaS9jb3ZlcnMvcGxhbm5lci1jb3ZlclwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRpdGxlOiBcImVCb29rIENvdmVyXCIsIHVybDogXCJodHRwczovL3d3dy50aGVicmFuZC5haS9pL2NvdmVycy9lYm9vay1jb3ZlclwiIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIC8vIC0tLSBFTkQgT0YgY29uc3RhbnRzLnRzeCAtLS1cblxuXG4gICAgICAvLyAtLS0gU1RBUlQgT0YgY29tcG9uZW50cy9Mb2dvLnRzeCAtLS1cbiAgICAgIGNvbnN0IExvZ28gPSAoeyBjbGFzc05hbWUsIHRoZW1lID0gJ2xpZ2h0JyB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHRoZUNvbG9yID0gdGhlbWUgPT09ICdkYXJrJyA/ICcjOUNBM0FGJyA6ICcjODA4MDgwJztcbiAgICAgICAgY29uc3QgYnJhbmRDb2xvciA9IHRoZW1lID09PSAnZGFyaycgPyAnI0ZGRkZGRicgOiAnIzMzMzMzMyc7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8c3ZnIFxuICAgICAgICAgICAgd2lkdGg9XCIxMTBcIiBcbiAgICAgICAgICAgIGhlaWdodD1cIjMwXCIgXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDExMCAzMFwiIFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJUaGUgQnJhbmQgTG9nb1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLCAtMikgcm90YXRlKC01LCAxNSwgMTUpXCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAsMy45OTNDMCwxLjc4OCwxLjc4OCwwLDMuOTkzLDBoMjIuMDEzQzI4LjIxMiwwLDMwLDEuNzg4LDMwLDMuOTkzdjIyLjAxMyBjMCwyLjIwNS0xLjc4OCwzLjk5My0zLjk5MywzLjk5M0gzLjk5M0MxLjc4OCwzMCwwLDI4LjIxMiwwLDI2LjAwN1YzLjk5M3pcIiBmaWxsPVwiIzI5QjZGNlwiLz5cbiAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9XCIxNVwiIHk9XCIyMVwiIHRleHRBbmNob3I9XCJtaWRkbGVcIiBmb250U2l6ZT1cIjIwXCIgZm9udFdlaWdodD1cImJvbGRcIiBmaWxsPVwid2hpdGVcIiBzdHlsZT17e2ZvbnRGYW1pbHk6ICdpbmhlcml0J319PkI8L3RleHQ+XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgPHRleHQgeD1cIjQwXCIgeT1cIjEyXCIgZm9udFNpemU9XCI5XCIgZmlsbD17dGhlQ29sb3J9IGZvbnRXZWlnaHQ9XCI2MDBcIiBzdHlsZT17e2ZvbnRGYW1pbHk6ICdpbmhlcml0J319PlRIRTwvdGV4dD5cbiAgICAgICAgICAgICAgPHRleHQgeD1cIjQwXCIgeT1cIjI3XCIgZm9udFNpemU9XCIxNlwiIGZpbGw9e2JyYW5kQ29sb3J9IGZvbnRXZWlnaHQ9XCJib2xkXCIgc3R5bGU9e3tmb250RmFtaWx5OiAnaW5oZXJpdCd9fT5CcmFuZDwvdGV4dD5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICAvLyAtLS0gRU5EIE9GIGNvbXBvbmVudHMvTG9nby50c3ggLS0tXG5cblxuICAgICAgLy8gLS0tIFNUQVJUIE9GIGNvbXBvbmVudHMvSGVhZGVyLnRzeCAtLS1cbiAgICAgIGNvbnN0IEhlYWRlciA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgW2lzTWVudU9wZW4sIHNldElzTWVudU9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgICAgIGNvbnN0IG5hdkxpbmtzID0gW1xuICAgICAgICAgIHsgbmFtZTogJ0JyYW5kIENyZWF0b3InLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvYnJhbmRjcmVhdG9yL2luZGV4JyB9LFxuICAgICAgICAgIHsgbmFtZTogJ1RlbXBsYXRlcycsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pL2Rlc2lnbnMnIH0sXG4gICAgICAgICAgeyBuYW1lOiAnSW5zaWdodHMnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvJyB9LFxuICAgICAgICAgIHsgbmFtZTogJ1ByaWNpbmcnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvYnJhbmRwYXkvY2hvb3NlJyB9LFxuICAgICAgICAgIHsgbmFtZTogJ0Jsb2dzJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2Jsb2dzJyB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJiZy13aGl0ZS84MCBiYWNrZHJvcC1ibHVyLXNtIHN0aWNreSB0b3AtMCB6LTUwIHNoYWRvdy1zbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02IHB5LTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtOFwiPlxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9cIiBhcmlhLWxhYmVsPVwiQnJhbmQgQUkgSG9tZXBhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPExvZ28gLz5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwiaGlkZGVuIG1kOmZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNlwiPlxuICAgICAgICAgICAgICAgICAgICB7bmF2TGlua3MubWFwKChsaW5rKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGEga2V5PXtsaW5rLm5hbWV9IGhyZWY9e2xpbmsuaHJlZn0gY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWJyYW5kLWN5YW4gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsaW5rLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIG1kOmZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNFwiPlxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vYml0Lmx5LzJMcFFKbU9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtYnJhbmQtY3lhbiB0cmFuc2l0aW9uLWNvbG9ycyBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgcHktMiBweC00IHRleHQtc20gaG92ZXI6Ym9yZGVyLWJyYW5kLWN5YW5cIj5Eb3dubG9hZCBBcHA8L2E+XG4gICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cImZvbnQtYm9sZCB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtYnJhbmQtY3lhbiB0cmFuc2l0aW9uLWNvbG9yc1wiPkxvZyBpbjwvYT5cbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3NOYW1lPVwiYmctYnJhbmQtY3lhbiB0ZXh0LXdoaXRlIGZvbnQtYm9sZCBweS0yIHB4LTQgcm91bmRlZC1sZyBob3ZlcjpvcGFjaXR5LTkwIHRyYW5zaXRpb24tb3BhY2l0eVwiPlNpZ24gdXAgZm9yIGZyZWU8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZDpoaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gb25DbGljaz17KCkgPT4gc2V0SXNNZW51T3BlbighaXNNZW51T3Blbil9IGNsYXNzTmFtZT1cInRleHQtZ3JheS04MDAgZm9jdXM6b3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy02IGgtNlwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9XCIyXCIgZD17aXNNZW51T3BlbiA/IFwiTTYgMThMMTggNk02IDZsMTIgMTJcIiA6IFwiTTQgNmgxNk00IDEyaDE2TTQgMThoMTZcIn0+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAge2lzTWVudU9wZW4gJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWQ6aGlkZGVuIG10LTRcIj5cbiAgICAgICAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTRcIj5cbiAgICAgICAgICAgICAgICAgICAge25hdkxpbmtzLm1hcCgobGluaykgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxhIGtleT17bGluay5uYW1lfSBocmVmPXtsaW5rLmhyZWZ9IGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1icmFuZC1jeWFuIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGluay5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTMgcHQtNCBib3JkZXItdFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2JpdC5seS8yTHBRSm1PXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGNsYXNzTmFtZT1cInctZnVsbCB0ZXh0LWNlbnRlciBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHRleHQtZ3JheS02MDAgZm9udC1ib2xkIHB5LTIgcHgtNCByb3VuZGVkLWxnIGhvdmVyOmJvcmRlci1icmFuZC1jeWFuIGhvdmVyOnRleHQtYnJhbmQtY3lhbiB0cmFuc2l0aW9uLWNvbG9yc1wiPkRvd25sb2FkIEFwcDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cImZvbnQtYm9sZCB0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtYnJhbmQtY3lhbiB0cmFuc2l0aW9uLWNvbG9yc1wiPkxvZyBpbjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cInctZnVsbCB0ZXh0LWNlbnRlciBiZy1icmFuZC1jeWFuIHRleHQtd2hpdGUgZm9udC1ib2xkIHB5LTIgcHgtNCByb3VuZGVkLWxnIGhvdmVyOm9wYWNpdHktOTAgdHJhbnNpdGlvbi1vcGFjaXR5XCI+U2lnbiB1cCBmb3IgZnJlZTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIC8vIC0tLSBFTkQgT0YgY29tcG9uZW50cy9IZWFkZXIudHN4IC0tLVxuXG5cbiAgICAgIC8vIC0tLSBTVEFSVCBPRiBjb21wb25lbnRzL0Zvb3Rlci50c3ggLS0tXG4gICAgICBjb25zdCBGb290ZXIgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvY2lhbExpbmtzID0gW1xuICAgICAgICAgIHsgbmFtZTogJ0ZhY2Vib29rJywgaHJlZjogJ2h0dHBzOi8vZmFjZWJvb2suY29tL1RoZUJyYW5kQXBwJywgaWNvbjogPEZhY2Vib29rSWNvbiAvPiB9LFxuICAgICAgICAgIHsgbmFtZTogJ1R3aXR0ZXInLCBocmVmOiAnaHR0cHM6Ly90d2l0dGVyLmNvbS90aGVicmFuZGhxJywgaWNvbjogPFR3aXR0ZXJJY29uIC8+IH0sXG4gICAgICAgICAgeyBuYW1lOiAnSW5zdGFncmFtJywgaHJlZjogJ2h0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vdGhlYnJhbmRhcHAnLCBpY29uOiA8SW5zdGFncmFtSWNvbiAvPiB9LFxuICAgICAgICAgIHsgbmFtZTogJ0xpbmtlZEluJywgaHJlZjogJ2h0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L3RoZS1icmFuZC1hcHAnLCBpY29uOiA8TGlua2VkSW5JY29uIC8+IH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgZm9vdGVyU2VjdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdGZWF0dXJlcycsXG4gICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICdCcmFuZCBDcmVhdG9yJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2JyYW5kY3JlYXRvci9pbmRleCcgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnTXkgRGVzaWducycsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FjY291bnQvZGVzaWducycgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnVGVtcGxhdGVzJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvZGVzaWducycgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnQnJhbmQgVG9vbGtpdCcsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pbnNpZ2h0cy9kYXNoYm9hcmQ/ZmVhdHVyZT1icmFuZHRvb2xraXQnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdSZXNvdXJjZXMnLFxuICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgeyBuYW1lOiAnSW5zaWdodHMnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvJyB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdCbG9ncycsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9ibG9ncycgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnQnJhbmQgSm91cm5leXMnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvZGFzaGJvYXJkP2ZlYXR1cmU9YnJvd3Nlam91cm5leXMnIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ1NpdGVzJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL3NpdGVzL2luZGV4JyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOiAnQWNjb3VudCcsXG4gICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICdNeSBCcmFuZCBJZGVudGl0eScsIGhyZWY6ICdodHRwczovL3d3dy50aGVicmFuZC5haS9pL2FjY291bnQvYnVpbGRfYnJhbmQnIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ1VwZGF0ZSBCcmFuZCBEZXRhaWxzJywgaHJlZjogJyMnIH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ09uYm9hcmRpbmcnLCBocmVmOiAnaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvYXV0aC1vbmJvYXJkJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOiAnQ29tcGFueScsXG4gICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICB7IG5hbWU6ICdBYm91dCBVcycsIGhyZWY6ICcjJyB9LFxuICAgICAgICAgICAgICB7IG5hbWU6ICdDb250YWN0IFVzJywgaHJlZjogJ2h0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2kvY29udGFjdCcgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnQ2FyZWVycycsIGhyZWY6ICcjJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGZvb3RlciBjbGFzc05hbWU9XCJiZy1icmFuZC1taWRuaWdodCB0ZXh0LXdoaXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lciBteC1hdXRvIHB4LTYgcHktMTJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0yIG1kOmdyaWQtY29scy00IGxnOmdyaWQtY29scy01IGdhcC04XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtc3Bhbi0yIGxnOmNvbC1zcGFuLTFcIj5cbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvXCIgYXJpYS1sYWJlbD1cIkJyYW5kIEFJIEhvbWVwYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxMb2dvIHRoZW1lPVwiZGFya1wiIC8+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC00IHRleHQtZ3JheS00MDBcIj5Zb3VyIHZpc2lvbiwgYW1wbGlmaWVkLjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7Zm9vdGVyU2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGtleT17c2VjdGlvbi50aXRsZX0+XG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJmb250LWJvbGQgdXBwZXJjYXNlIHRleHQtZ3JheS00MDBcIj57c2VjdGlvbi50aXRsZX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwibXQtNCBzcGFjZS15LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VjdGlvbi5saW5rcy5tYXAoKGxpbmspID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2xpbmsubmFtZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9e2xpbmsuaHJlZn0gY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LWJyYW5kLWN5YW4gdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bGluay5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTEyIHB0LTggYm9yZGVyLXQgYm9yZGVyLWdyYXktODAwIGZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDBcIj4mY29weTsge25ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0gQnJhbmQgQUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9wPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBzcGFjZS14LTQgbXQtNCBtZDptdC0wXCI+XG4gICAgICAgICAgICAgICAgICB7c29jaWFsTGlua3MubWFwKChzb2NpYWwpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGEga2V5PXtzb2NpYWwubmFtZX0gaHJlZj17c29jaWFsLmhyZWZ9IGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1icmFuZC1jeWFuIHRyYW5zaXRpb24tY29sb3JzXCIgYXJpYS1sYWJlbD17c29jaWFsLm5hbWV9PlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj57c29jaWFsLm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIHtzb2NpYWwuaWNvbn1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgICk7XG4gICAgICB9O1xuICAgICAgLy8gLS0tIEVORCBPRiBjb21wb25lbnRzL0Zvb3Rlci50c3ggLS0tXG5cblxuICAgICAgLy8gLS0tIFNUQVJUIE9GIGNvbXBvbmVudHMvRmVhdHVyZUNhcmQudHN4IC0tLVxuICAgICAgY29uc3QgRmVhdHVyZUNhcmQgPSAoe1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIGxpbmssXG4gICAgICAgIGJ1dHRvblRleHQsXG4gICAgICAgIGltYWdlVXJsLFxuICAgICAgICBiZ0NvbG9yLFxuICAgICAgICBzaXplID0gJ25vcm1hbCdcbiAgICAgIH0pID0+IHtcbiAgICAgICAgY29uc3Qgc2l6ZUNsYXNzZXMgPSB7XG4gICAgICAgICAgbm9ybWFsOiAnbWluLWgtWzQ4MHB4XSBtZDptaW4taC1bNTIwcHhdJyxcbiAgICAgICAgICBsYXJnZTogJ21pbi1oLVs1MjBweF0gbWQ6Y29sLXNwYW4tMiBsZzpjb2wtc3Bhbi0xJywgLy8gU3BlY2lhbCBjbGFzc2VzIGNhbiBiZSBhZGRlZCBoZXJlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2ByZWxhdGl2ZSByb3VuZGVkLTN4bCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LWxnIGdyb3VwIHRleHQtd2hpdGUgcC04IGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMCBlYXNlLWluLW91dCB0cmFuc2Zvcm0gaG92ZXI6LXRyYW5zbGF0ZS15LTIgJHtzaXplQ2xhc3Nlc1tzaXplXX1gfVxuICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBiZ0NvbG9yIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ6LTEwIHJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBtZDp0ZXh0LTR4bCBmb250LWJvbGQgbWItNFwiPnt0aXRsZX08L2gzPlxuICAgICAgICAgICAgICB7ZGVzY3JpcHRpb24gJiYgPHAgY2xhc3NOYW1lPVwidGV4dC1sZyBvcGFjaXR5LTkwIG1iLTZcIj57ZGVzY3JpcHRpb259PC9wPn1cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPXtsaW5rfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXdoaXRlIHRleHQtZ3JheS04MDAgZm9udC1ib2xkIHB5LTIgcHgtNiByb3VuZGVkLWxnIHRleHQtbWQgaG92ZXI6YmctZ3JheS0yMDAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0IHRyYW5zZm9ybSBncm91cC1ob3ZlcjotdHJhbnNsYXRlLXktMSBpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2J1dHRvblRleHR9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHotMFwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz17aW1hZ2VVcmx9IGFsdD17dGl0bGV9IGNsYXNzTmFtZT1cInctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyIG9wYWNpdHktODAgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAgZ3JvdXAtaG92ZXI6c2NhbGUtMTEwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMCBlYXNlLWluLW91dFwiIGxvYWRpbmc9XCJsYXp5XCIgZGVjb2Rpbmc9XCJhc3luY1wiIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBiZy1ibGFjayBiZy1vcGFjaXR5LTIwIGdyb3VwLWhvdmVyOmJnLW9wYWNpdHktMTAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tNTAwIGVhc2UtaW4tb3V0XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICAvLyAtLS0gRU5EIE9GIGNvbXBvbmVudHMvRmVhdHVyZUNhcmQudHN4IC0tLVxuXG5cbiAgICAgIC8vIC0tLSBTVEFSVCBPRiBjb21wb25lbnRzL1RlbXBsYXRlQ2FyZC50c3ggLS0tXG4gICAgICBjb25zdCBUZW1wbGF0ZUNhcmQgPSAoeyB0aXRsZSwgdXJsIH0pID0+IHtcbiAgICAgICAgY29uc3QgaW1hZ2VTZWVkID0gdGl0bGUucmVwbGFjZSgvXFxzKy9nLCAnLScpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj17dXJsfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvY2sgZ3JvdXAgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gYmctZ3JheS0xMDAgc2hhZG93LXNtIGhvdmVyOnNoYWRvdy14bCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgdHJhbnNmb3JtIGhvdmVyOi10cmFuc2xhdGUteS0xXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGFzcGVjdC1bNC8zXSBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIHNyYz17YGh0dHBzOi8vcGljc3VtLnBob3Rvcy9zZWVkLyR7aW1hZ2VTZWVkfS80MDAvMzAwYH1cbiAgICAgICAgICAgICAgICBhbHQ9e3RpdGxlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyIGdyb3VwLWhvdmVyOnNjYWxlLTEwNSB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDBcIlxuICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgICBkZWNvZGluZz1cImFzeW5jXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzEwIGdyb3VwLWhvdmVyOmJnLWJsYWNrLzAgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMzAwXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zXCI+XG4gICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTgwMCB0cnVuY2F0ZSBncm91cC1ob3Zlcjp0ZXh0LWJyYW5kLWN5YW4gdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMzAwXCI+XG4gICAgICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIC8vIC0tLSBFTkQgT0YgY29tcG9uZW50cy9UZW1wbGF0ZUNhcmQudHN4IC0tLVxuXG5cbiAgICAgIC8vIC0tLSBTVEFSVCBPRiBjb21wb25lbnRzL0ludGVyYWN0aXZlVGVtcGxhdGVzLnRzeCAtLS1cbiAgICAgIGNvbnN0IEludGVyYWN0aXZlVGVtcGxhdGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGUoVEVNUExBVEVfQ0FURUdPUklFU1swXS5jYXRlZ29yeSk7XG5cbiAgICAgICAgY29uc3QgYWN0aXZlQ2F0ZWdvcnkgPSBURU1QTEFURV9DQVRFR09SSUVTLmZpbmQoY2F0ID0+IGNhdC5jYXRlZ29yeSA9PT0gYWN0aXZlVGFiKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyIG14LWF1dG8gcHgtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBtYi0xMlwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBtZDp0ZXh0LTV4bCBmb250LWJvbGQgbWItNFwiPlRlbXBsYXRlcyBmb3IgYWJzb2x1dGVseSBhbnl0aGluZzwvaDI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1sZyBtZDp0ZXh0LXhsIHRleHQtZ3JheS02MDAgbWF4LXctMnhsIG14LWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgSnVtcHN0YXJ0IHlvdXIgbmV4dCBwcm9qZWN0IHdpdGggdGhvdXNhbmRzIG9mIHByb2Zlc3Npb25hbCB0ZW1wbGF0ZXMgZm9yIGFueSBvY2Nhc2lvbi5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnRoZWJyYW5kLmFpL2JyYW5kY3JlYXRvci9pbmRleFwiIGNsYXNzTmFtZT1cIm10LTggaW5saW5lLWJsb2NrIGJnLWJyYW5kLWN5YW4gdGV4dC13aGl0ZSBmb250LWJvbGQgcHktMyBweC04IHJvdW5kZWQtbGcgdGV4dC1sZyBob3ZlcjpvcGFjaXR5LTkwIHRyYW5zaXRpb24tb3BhY2l0eVwiPlxuICAgICAgICAgICAgICAgICAgQ3JlYXRlIFlvdXIgQnJhbmQgTm93XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1jZW50ZXIgZ2FwLTIgbWQ6Z2FwLTQgbWItMTBcIj5cbiAgICAgICAgICAgICAge1RFTVBMQVRFX0NBVEVHT1JJRVMubWFwKGNhdCA9PiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtjYXQuY2F0ZWdvcnl9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVUYWIoY2F0LmNhdGVnb3J5KX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHB5LTIgcHgtNSByb3VuZGVkLWZ1bGwgZm9udC1zZW1pYm9sZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgdGV4dC1zbSBtZDp0ZXh0LWJhc2UgJHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVGFiID09PSBjYXQuY2F0ZWdvcnlcbiAgICAgICAgICAgICAgICAgICAgICA/ICdiZy1icmFuZC1jeWFuIHRleHQtd2hpdGUgc2hhZG93LWxnIHRyYW5zZm9ybSBzY2FsZS0xMDUnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnYmctZ3JheS0yMDAgdGV4dC1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTMwMCdcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtjYXQuY2F0ZWdvcnl9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMiBzbTpncmlkLWNvbHMtMyBtZDpncmlkLWNvbHMtNCBsZzpncmlkLWNvbHMtNSB4bDpncmlkLWNvbHMtNiBnYXAtNiBtZDpnYXAtOFwiPlxuICAgICAgICAgICAgICB7YWN0aXZlQ2F0ZWdvcnk/LnRlbXBsYXRlcy5tYXAodGVtcGxhdGUgPT4gKFxuICAgICAgICAgICAgICAgIDxUZW1wbGF0ZUNhcmQgXG4gICAgICAgICAgICAgICAgICBrZXk9e3RlbXBsYXRlLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgdGl0bGU9e3RlbXBsYXRlLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgdXJsPXt0ZW1wbGF0ZS51cmx9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICAvLyAtLS0gRU5EIE9GIGNvbXBvbmVudHMvSW50ZXJhY3RpdmVUZW1wbGF0ZXMudHN4IC0tLVxuXG5cbiAgICAgIC8vIC0tLSBTVEFSVCBPRiBBcHAudHN4IC0tLVxuICAgICAgY29uc3QgQXBwID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgdGV4dC1ncmF5LTgwMCBmb250LXNhbnNcIj5cbiAgICAgICAgICAgIDxIZWFkZXIgLz5cbiAgICAgICAgICAgIDxtYWluPlxuICAgICAgICAgICAgICB7LyogSGVybyBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJyZWxhdGl2ZSB0ZXh0LXdoaXRlIG92ZXJmbG93LWhpZGRlbiBiZy1icmFuZC1taWRuaWdodFwiPlxuICAgICAgICAgICAgICAgIHsvKiBTdHlsaXNoIEJhY2tncm91bmQgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHotMCBvcGFjaXR5LTUwXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC1bLTMwJV0gbGVmdC1bLTMwJV0gdy00LzUgaC00LzUgcm91bmRlZC1mdWxsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tYnJhbmQtY3lhbiB0by10cmFuc3BhcmVudCBmaWx0ZXIgYmx1ci0zeGxcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgYm90dG9tLVstMzAlXSByaWdodC1bLTMwJV0gdy00LzUgaC00LzUgcm91bmRlZC1mdWxsIGJnLWdyYWRpZW50LXRvLXRsIGZyb20tYnJhbmQtY3lhbiB0by10cmFuc3BhcmVudCBmaWx0ZXIgYmx1ci0zeGxcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgei0xMCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtaW4taC1bNzB2aF0gbWQ6bWluLWgtWzgwdmhdIHB4LTQgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTV4bCBtZDp0ZXh0LTd4bCBsZzp0ZXh0LTh4bCBmb250LWV4dHJhYm9sZCBtYi00IHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIFlvdXIgZW50aXJlIG1hcmtldGluZyB0ZWFtLCBpbiBvbmUgQUkuXG4gICAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1sZyBtZDp0ZXh0LTJ4bCBtYXgtdy0zeGwgbWItOFwiPlxuICAgICAgICAgICAgICAgICAgICBJbWFnaW5lIHRoZSBjcmVhdGl2ZSBmaXJlcG93ZXIgb2YgYSBkZXNpZ24gYWdlbmN5LCB0aGUgc3RyYXRlZ2ljIGluc2lnaHQgb2YgYSBjb25zdWx0YW50LCBhbmQgdGhlIGJyaWxsaWFuY2Ugb2YgYSB0b3AtdGllciBtYXJrZXRpbmcgdGVhbeKAlGFsbCBhdCB5b3VyIGZpbmdlcnRpcHMuIFRoYXQncyBCcmFuZCBBSS5cbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvYnJhbmRjcmVhdG9yL2luZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy13aGl0ZSB0ZXh0LWJyYW5kLW1pZG5pZ2h0IGZvbnQtYm9sZCBweS0zIHB4LTggcm91bmRlZC1sZyB0ZXh0LWxnIGhvdmVyOmJnLWdyYXktMjAwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCB0cmFuc2Zvcm0gaG92ZXI6c2NhbGUtMTA1XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0IGNyZWF0aW5nIGZvciBmcmVlXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cudGhlYnJhbmQuYWkvaW5zaWdodHMvXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy13aGl0ZS8xMCBiYWNrZHJvcC1ibHVyLXNtIHRleHQtd2hpdGUgZm9udC1ib2xkIHB5LTMgcHgtOCByb3VuZGVkLWxnIHRleHQtbGcgaG92ZXI6Ymctd2hpdGUvMjAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIHRyYW5zZm9ybSBob3ZlcjpzY2FsZS0xMDVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgRXhwbG9yZSBBSSBGZWF0dXJlc1xuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBUaGUgUHJvYmxlbSBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweS0yMCBtZDpweS0yOCBiZy1ncmF5LTUwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC00eGwgbWQ6dGV4dC01eGwgZm9udC1ib2xkIG1iLTRcIj5UaGUgb2xkIHdheSBpcyBicm9rZW4uPC9oMj5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbGcgbWQ6dGV4dC14bCB0ZXh0LWdyYXktNjAwIG1heC13LTN4bCBteC1hdXRvIG1iLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIERpZCB5b3Uga25vdyA5MCUgb2YgYnVzaW5lc3NlcyBzdHJ1Z2dsZSB0byBzdGFuZCBvdXQ/IFRoZXkgc3BlbmQgbW9udGhzIGFuZCB0aG91c2FuZHMgb24gc29sdXRpb25zIHRoYXQgZG9u4oCZdCBkZWxpdmVyLlxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0zIGdhcC04IHRleHQtbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICB7UFJPQkxFTV9DQVJEUy5tYXAoKGNhcmQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJiZy13aGl0ZSBwLTggcm91bmRlZC0yeGwgc2hhZG93LW1kIGhvdmVyOnNoYWRvdy14bCBob3ZlcjotdHJhbnNsYXRlLXktMiB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1icmFuZC1jeWFuIG1iLTRcIj57Y2FyZC5pY29ufTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkIG1iLTJcIj57Y2FyZC50aXRsZX08L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMFwiPntjYXJkLmRlc2NyaXB0aW9ufTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBUb29scyBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweS0yMCBtZDpweS0yOFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyIG14LWF1dG8gcHgtNlwiPlxuICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtNHhsIG1kOnRleHQtNXhsIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBtYi0xMlwiPlxuICAgICAgICAgICAgICAgICAgICBBbiBlbnRpcmUgdG9vbGtpdCwgcG93ZXJlZCBieSBBSS5cbiAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTMgZ2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAge0ZFQVRVUkVTX1BSSU1BUlkubWFwKChmZWF0dXJlLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxGZWF0dXJlQ2FyZCBrZXk9e2luZGV4fSB7Li4uZmVhdHVyZX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBUcmFjdGlvbiBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweS0yMCBtZDpweS0yNCBiZy1icmFuZC1taWRuaWdodCB0ZXh0LXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC01eGwgbWQ6dGV4dC02eGwgZm9udC1leHRyYWJvbGQgbWItNCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAzNCwwMDArIHVzZXJzIGFuZCBncm93aW5nLlxuICAgICAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbGcgbWQ6dGV4dC14bCBvcGFjaXR5LTgwIG1heC13LTN4bCBteC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgIFRydXN0ZWQgYnkgZ292ZXJubWVudHMsIFNNRXMsIGFuZCBzdGFydHVwcyB3b3JsZHdpZGUuIEFsbCBhY2hpZXZlZCB0aHJvdWdoIG9yZ2FuaWMgZ3Jvd3RoIGZ1ZWxlZCBieSB1c2VyIHRydXN0IGFuZCByZWZlcnJhbHMuXG4gICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgICAgICB7LyogQWxsIGluIG9uZSBwbGFjZSBTZWN0aW9uICovfVxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJweS0yMCBtZDpweS0yOCBiZy1ncmF5LTUwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02XCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC00eGwgbWQ6dGV4dC01eGwgZm9udC1ib2xkIHRleHQtY2VudGVyIG1iLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIEFsbCB0aGUgdG9vbHMuIEFsbCBpbiBvbmUgcGxhY2UuXG4gICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGdhcC04XCI+XG4gICAgICAgICAgICAgICAgICAgIHtGRUFUVVJFU19TRUNPTkRBUlkubWFwKChmZWF0dXJlLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxGZWF0dXJlQ2FyZCBrZXk9e2luZGV4fSB7Li4uZmVhdHVyZX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBUYXJnZXQgTWFya2V0IFNlY3Rpb24gKi99XG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB5LTIwIG1kOnB5LTI4XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC02IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC00eGwgbWQ6dGV4dC01eGwgZm9udC1ib2xkIG1iLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIEh5cGVyLWNvbnRleHR1YWwgc29sdXRpb25zIGZvciBldmVyeW9uZS5cbiAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY2VudGVyIGdhcC04IG1kOmdhcC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICB7VEFSR0VUX01BUktFVFMubWFwKChtYXJrZXQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlciB3LTMyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLWN5YW4tMTAwIHRleHQtYnJhbmQtY3lhbiByb3VuZGVkLWZ1bGwgcC01IG1iLTQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIHRyYW5zZm9ybSBob3ZlcjpzY2FsZS0xMTAgaG92ZXI6YmctY3lhbi0yMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge21hcmtldC5pY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktNzAwXCI+e21hcmtldC5uYW1lfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgICAgICB7LyogVGVtcGxhdGVzIFNlY3Rpb24gKi99XG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB5LTIwIG1kOnB5LTI4IGJnLWdyYXktNTBcIj5cbiAgICAgICAgICAgICAgICA8SW50ZXJhY3RpdmVUZW1wbGF0ZXMgLz5cbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiBFY29zeXN0ZW0gU2VjdGlvbiAqL31cbiAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicHktMjAgbWQ6cHktMjhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lciBteC1hdXRvIHB4LTZcIj5cbiAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBtZDp0ZXh0LTV4bCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbWItMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgWW91ciBicmFuZCdzIGVudGlyZSBlY29zeXN0ZW0sIGNvbm5lY3RlZC5cbiAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTMgZ2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAge0ZFQVRVUkVTX1RFUlRJQVJZLm1hcCgoZmVhdHVyZSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8RmVhdHVyZUNhcmQga2V5PXtpbmRleH0gey4uLmZlYXR1cmV9IC8+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgICAgIDxGb290ZXIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICAvLyAtLS0gRU5EIE9GIEFwcC50c3ggLS0tXG5cblxuICAgICAgLy8gLS0tIFNUQVJUIE9GIGluZGV4LnRzeCAtLS1cbiAgICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTtcbiAgICAgIGlmICghcm9vdEVsZW1lbnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGZpbmQgcm9vdCBlbGVtZW50IHRvIG1vdW50IHRvXCIpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByb290ID0gUmVhY3RET00uY3JlYXRlUm9vdChyb290RWxlbWVudCk7XG4gICAgICByb290LnJlbmRlcihcbiAgICAgICAgPFJlYWN0LlN0cmljdE1vZGU+XG4gICAgICAgICAgPEFwcCAvPlxuICAgICAgICA8L1JlYWN0LlN0cmljdE1vZGU+XG4gICAgICApO1xuICAgICAgLy8gLS0tIEVORCBPRiBpbmRleC50c3ggLS0tXG5cbiAgICAiXSwibWFwcGluZ3MiOiI7QUFDTSxPQUFPQSxLQUFLLElBQUlDLFFBQVEsUUFBUSxPQUFPO0FBQ3ZDLE9BQU9DLFFBQVEsTUFBTSxrQkFBa0I7O0FBRXZDO0FBQ0EsSUFBTUMsZ0JBQWdCLEdBQUcsQ0FDdkI7RUFDRUMsS0FBSyxFQUFFLDZDQUE2QztF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</script>
</head>
  <body>
<noscript>
  <div style="padding: 12px; text-align: center; background: #fff3cd; color: #664d03; font-family: Inter, sans-serif;">
    JavaScript is required to use Brand AI. Please enable JavaScript.
  </div>
</noscript>
        <!-- Full-screen Auth Modal -->
        <div id="authModal" class="fixed inset-0 z-[999] hidden">
            <iframe id="authFrame" src="" class="w-full h-full border-0" title="Brand AI Authentication"
                    allow="clipboard-write; geolocation; microphone; camera"></iframe>
            <button id="authClose" type="button" aria-label="Close authentication"
                    class="absolute top-4 right-4 z-10 bg-gray-900 text-white rounded-full px-4 py-2 shadow-lg hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-white">
                Close
            </button>
        </div>
<div id="root">
    <div class="bg-white text-gray-800 font-sans">
        <header class="bg-white/80 backdrop-blur-sm sticky top-0 z-50 shadow-sm">
            <div class="container mx-auto px-6 py-4">
                <div class="flex items-center justify-between">
                    <div class="flex items-center space-x-8"><a href="https://www.thebrand.ai" aria-label="Brand AI Homepage">


                       <img src="https://www.thebrand.ai/i/uploads/logo/logo_62a4de26e93f0.png" alt="Brand AI Logo" width="110" height="30">

                    </a>
                        <nav class="hidden md:flex items-center space-x-6"><a
                                href="https://www.thebrand.ai/brandcreator/index"
                                class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Brand
                            Creator</a><a href="https://www.thebrand.ai/i"
                                          class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Templates</a><a
                                href="https://www.thebrand.ai/insights/"
                                class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Insights</a><a
                                href="https://www.thebrand.ai/blogs"
                                class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Blogs</a>

                            <a
                                    href="https://www.thebrand.ai/brandpay/choose"
                                    class="text-gray-600 hover:text-brand-cyan font-medium transition-colors">Pricing</a>
                        </nav>
                    </div>
                    <div class="flex items-center space-x-4">
                        <a href="https://bit.ly/2LpQJmO" target="_blank" rel="noopener noreferrer" class="font-semibold text-gray-600 hover:text-brand-cyan transition-colors border border-gray-300 rounded-lg py-2 px-4 text-sm hover:border-brand-cyan">Download App</a>
                        <a href="https://www.thebrand.ai/connect/index.php" data-auth="login" class="font-bold text-gray-600 hover:text-brand-cyan transition-colors">Log in</a>
                        <a href="https://www.thebrand.ai/connect/index.php?action=register" data-auth="signup" class="bg-brand-cyan text-white font-bold py-2 px-4 rounded-lg hover:opacity-90 transition-opacity">Sign up for free</a>
                    </div>
                    <div class="md:hidden">
                        <button class="text-gray-800 focus:outline-none" aria-label="Toggle menu">
                            <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"
                                 xmlns="http://www.w3.org/2000/svg">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
                                      d="M4 6h16M4 12h16M4 18h16"></path>
                            </svg>
                        </button>
                    </div>
                </div>
            </div>
        </header>
        <main>
            <section class="relative text-white overflow-hidden bg-brand-midnight">
                <div aria-hidden="true" class="absolute inset-0 z-0 opacity-50">
                    <div class="absolute top-[-30%] left-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-br from-brand-cyan to-transparent filter blur-3xl"></div>
                    <div class="absolute bottom-[-30%] right-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-tl from-brand-cyan to-transparent filter blur-3xl"></div>
                </div>
                <div class="relative z-10 flex flex-col items-center justify-center min-h-[70vh] md:min-h-[80vh] px-4 text-center">
                    <h1 class="text-5xl md:text-7xl lg:text-8xl font-extrabold mb-4 tracking-tight"><span class="block">Your Entire Brand.</span><span class="block">One Intelligent Platform.</span></h1>
                    <p class="text-lg md:text-2xl max-w-3xl mb-8">Imagine
                        the creative firepower of a design agency, the strategic insight of a
                        consultant, and the brilliance of a top-tier marketing team—all at your
                        fingertips. That's Brand AI.</p>
                    <div class="flex flex-wrap justify-center gap-4">
                        <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                           class="bg-white text-brand-midnight font-bold py-3 px-8 rounded-lg text-lg hover:bg-gray-200 transition-all duration-300 transform hover:scale-105">
                            Start creating for free
                        </a>
                        <a href="https://www.thebrand.ai/i/"
                           class="bg-white/10 backdrop-blur-sm text-white font-bold py-3 px-8 rounded-lg text-lg hover:bg-white/20 transition-all duration-300 transform hover:scale-105">
                            Browse AI templates
                        </a>
                        <a href="https://www.thebrand.ai/brandcreator/index"
                           class="underline-offset-2 hover:underline text-white/90 font-semibold">
                            Watch how Brand AI works
                        </a>
                    </div>
                </div>
            </section>
            <section class="py-8 md:py-10 bg-gray-50 border-t border-gray-100">
                <div class="container mx-auto px-6">
                    <p class="text-xs md:text-sm text-gray-500 text-center uppercase tracking-[0.25em] mb-5">
                        Trusted by teams across governments, SMEs, startups, and enterprises
                    </p>
                    <div class="flex flex-wrap justify-center gap-x-8 md:gap-x-12 gap-y-3 text-gray-400 text-xs md:text-sm font-semibold">
                        <span>Public sector campaigns</span>
                        <span>Growth-stage startups</span>
                        <span>Marketing teams</span>
                        <span>Corporate brands</span>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-24 bg-white">
                <div class="container mx-auto px-6">
                    <div class="max-w-5xl mx-auto bg-gradient-to-r from-brand-midnight/5 via-white to-brand-cyan/5 rounded-3xl p-8 md:p-10 flex flex-col md:flex-row items-center gap-10 shadow-md">
                        <div class="md:w-1/2 text-left">
                            <h2 class="text-3xl md:text-4xl font-bold mb-3">Get the AI Brand Playbook</h2>
                            <p class="text-base md:text-lg text-gray-600 mb-3">Drop your email to receive a practical playbook on how to create a brand identity with AI, set up campaigns, and keep every asset on-brand.</p>
                            <p class="text-xs md:text-sm text-gray-500">No spam. Just occasional, high-signal guides on AI branding, journeys, and campaigns.</p>
                        </div>
                        <div class="md:w-1/2">
                            <form action="/newsletter/subscribe" method="post" class="bg-white/90 backdrop-blur-sm p-4 md:p-5 rounded-2xl border border-gray-100 flex flex-col sm:flex-row gap-3 shadow-sm">
                                <input type="email" name="email" required placeholder="Enter your work email" class="flex-1 px-4 py-3 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-brand-cyan focus:border-brand-cyan text-gray-900 text-sm md:text-base">
                                <button type="submit" class="bg-brand-cyan text-white font-semibold md:font-bold px-5 md:px-6 py-3 rounded-lg hover:opacity-90 transition-opacity text-sm md:text-base whitespace-nowrap">
                                    Get the AI Brand Playbook
                                </button>
                            </form>
                            <p class="mt-2 text-xs text-gray-500 text-left">You can unsubscribe at any time.</p>
                        </div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-28 bg-gray-50">
                <div class="container mx-auto px-6 text-center"><h2 class="text-4xl md:text-5xl font-bold mb-4">The old
                    way is broken.</h2>
                    <p class="text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12">Did you know 90% of businesses
                        struggle to stand out? They spend months and thousands on solutions that don’t deliver.</p>
                    <div class="grid grid-cols-1 md:grid-cols-3 gap-8 text-left">
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300">
                            <div class="text-brand-cyan mb-4">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" fill="none"
                                     viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 10v-1m-5.293-6.293l-.707.707M17.293 7.707l.707-.707M5.707 16.293l.707.707M16.586 17H19a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2.414"></path>
                                </svg>
                            </div>
                            <h3 class="text-xl font-bold mb-2">Agency-Level Budgets</h3>
                            <p class="text-gray-600">SMEs and governments need top-tier strategy but lack the budget for
                                expensive agencies.</p></div>
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300">
                            <div class="text-brand-cyan mb-4">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" fill="none"
                                     viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg>
                            </div>
                            <h3 class="text-xl font-bold mb-2">Months of Guesswork</h3>
                            <p class="text-gray-600">Founders and marketers waste precious time guessing their next move
                                instead of acting on clear insights.</p></div>
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300">
                            <div class="text-brand-cyan mb-4">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" fill="none"
                                     viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z"></path>
                                </svg>
                            </div>
                            <h3 class="text-xl font-bold mb-2">Juggling a Dozen Tools</h3>
                            <p class="text-gray-600">Creatives juggle multiple, disconnected tools to create a single
                                campaign, with none of them talking to each other.</p></div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-28">
                <div class="container mx-auto px-6">
                    <h2 class="text-4xl md:text-5xl font-bold text-center mb-8">How Brand AI works as your AI branding platform</h2>
                    <p class="text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12 text-center">Brand AI is an AI branding platform that walks you from idea to launch. Use the <a href="https://www.thebrand.ai/brandcreator/index" class="text-brand-cyan underline-offset-2 hover:underline">AI brand creator</a>, templates, and dashboards to create a brand with AI in a guided, repeatable way.</p>
                    <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300 text-left">
                            <p class="text-sm font-semibold text-brand-cyan mb-2">Step 1</p>
                            <h3 class="text-xl font-bold mb-3">Tell us about your brand</h3>
                            <p class="text-gray-600 mb-2">Answer a few questions about your business, audience, and goals so the AI branding platform can understand what you are trying to build.</p>
                            <p class="text-gray-600">Brand AI turns this into a clear brand strategy, positioning, and a starting visual direction.</p>
                        </div>
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300 text-left">
                            <p class="text-sm font-semibold text-brand-cyan mb-2">Step 2</p>
                            <h3 class="text-xl font-bold mb-3">Generate on-brand assets with AI</h3>
                            <p class="text-gray-600 mb-2">Use the AI brand creator to instantly generate logos, color systems, typography, websites, and campaign-ready templates.</p>
                            <p class="text-gray-600">You can customise every asset while staying on-brand, so you are not starting from a blank page.</p>
                        </div>
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300 text-left">
                            <p class="text-sm font-semibold text-brand-cyan mb-2">Step 3</p>
                            <h3 class="text-xl font-bold mb-3">Launch, measure, and keep improving</h3>
                            <p class="text-gray-600 mb-2">Publish campaigns, sites, and content in a few clicks, then view performance and brand consistency inside your dashboard.</p>
                            <p class="text-gray-600">Brand AI highlights what to do next so you can grow faster with data-backed decisions instead of guesswork.</p>
                        </div>
                    </div>
                    <div class="mt-12 text-center">
                        <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home" class="inline-block bg-brand-cyan text-white font-bold py-3 px-8 rounded-lg text-lg hover:opacity-90 transition-opacity">Start your brand with AI</a>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-24 bg-white">
                <div class="container mx-auto px-6"><h2 class="text-4xl md:text-5xl font-bold text-center mb-10">AI branding tools to design logos, websites, and marketing assets.</h2>
                    <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(30, 0, 59);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Bring Your Brand
                                to Life with Brand Creator</h3>
                                <p class="text-lg opacity-90 mb-6">Quickly and effortlessly create a powerful,
                                    professional brand identity and logos that stand out and drive business growth. All generated and managed inside your wowX workspace.</p>
                                <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                   class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Brand Creator</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Bring Your Brand to Life with Brand Creator"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="https://picsum.photos/seed/branding-desk/1200/800">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(0, 61, 91);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Revolutionize
                                Your Brand with AI Insights</h3>
                                <p class="text-lg opacity-90 mb-6">Supercharge your brand with intelligent solutions,
                                    design, and big data to drive growth, engagement, and measurable success, powered by the wowX AI brand dashboard.</p><a
                                        href="https://www.thebrand.ai/insights/"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Insights</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Revolutionize Your Brand with AI Insights"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="https://picsum.photos/seed/ai-dashboard/1200/800">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(0, 76, 76);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Build a Website
                                Easily with Brand Sites</h3>
                                <p class="text-lg opacity-90 mb-6">Choose from over 100 amazing templates to build a
                                    stunning website that empowers your brand to stand out, all from the same wowX tools library.</p><a
                                        href="https://www.thebrand.ai/sites/index"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Brand Sites</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Build a Website Easily with Brand Sites"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="https://picsum.photos/seed/web-design/1200/800">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                    </div>
                    <div class="mt-10 text-center">
                        <a href="/wowX/tools/" class="text-brand-cyan font-semibold underline-offset-2 hover:underline">View all AI branding tools in your wowX workspace</a>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-24 bg-brand-midnight text-white">
                <div class="container mx-auto px-6 text-center"><h2
                        class="text-5xl md:text-6xl font-extrabold mb-4 tracking-tight">34,000+ users and growing.</h2>
                    <p class="text-lg md:text-xl opacity-80 max-w-3xl mx-auto">Trusted by governments, SMEs, and
                        startups worldwide. All achieved through organic growth fueled by user trust and referrals.</p>
                </div>
            </section>
            <section class="py-20 md:py-28 bg-gray-50">
                <div class="container mx-auto px-6"><h2 class="text-4xl md:text-5xl font-bold text-center mb-12">All the
                    tools. All in one place.</h2>
                    <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(61, 0, 79);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Meet the Visual
                                Suite</h3>
                                <p class="text-lg opacity-90 mb-6">Your entire workflow in one place. From bespoke
                                    designs and insightful blogs to tailored strategies—all powered by AI and your wowX tools library.</p><a
                                        href="https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Visual Suite</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Meet the Visual Suite"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="https://picsum.photos/seed/creative-workspace/1200/800">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[520px] md:col-span-2 lg:col-span-1"
                             style="background-color: rgb(0, 95, 88);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Present with
                                impact</h3>
                                <p class="text-lg opacity-90 mb-6">Reimagine presentations with cinematic visuals, smart
                                    collaboration, and AI-powered tools, connected to your wowX dashboard.</p><a href="https://www.thebrand.ai/i/designs"
                                                                               class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Try
                                    Presentations</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Present with impact"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="https://picsum.photos/seed/presentation-stage/1200/800">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-28">
                <div class="container mx-auto px-6 text-center"><h2 class="text-4xl md:text-5xl font-bold mb-4">
                    Hyper-contextual solutions for everyone.</h2>
                    <p class="text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12">Choose the AI branding path that matches your reality. Every segment gets tools, templates, and an AI brand dashboard tailored to the way they work, powered by wowX.</p>
                    <div class="flex flex-wrap justify-center gap-8 md:gap-12">
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4v-5h5v5h-5z"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">SMEs</h3>
                            <p class="mt-2 text-sm text-gray-600">Use an AI branding platform for small business to launch a consistent logo, website, and marketing kit without agency-level budgets.</p>
                            <a href="https://www.thebrand.ai/brandcreator/index" class="mt-3 text-sm font-semibold text-brand-cyan underline-offset-2 hover:underline">See AI branding tools for SMEs</a>
                        </div>
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M12 21l-2-2m2 2l2-2m2 2l2-2M5 15l-2-2m2 2l2-2m2 2l2-2m2 2l2-2M5 21v-6a2 2 0 012-2h10a2 2 0 012 2v6"></path>
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M3 21h18M5 10l7-7 7 7"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">Governments</h3>
                            <p class="mt-2 text-sm text-gray-600">Standardise campaigns with AI brand management for government and public sector teams, with governance and approvals baked in.</p>
                            <a href="https://www.thebrand.ai/brandcreator/index" class="mt-3 text-sm font-semibold text-brand-cyan underline-offset-2 hover:underline">Explore AI brand management for governments</a>
                        </div>
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M13 10V3L4 14h7v7l9-11h-7z"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">Startups</h3>
                            <p class="mt-2 text-sm text-gray-600">Launch and scale your startup brand with AI, from pitch decks to landing pages and investor updates.</p>
                            <a href="https://www.thebrand.ai/brandcreator/index" class="mt-3 text-sm font-semibold text-brand-cyan underline-offset-2 hover:underline">Launch your startup brand with AI</a>
                        </div>
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"></path>
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">Marketers</h3>
                            <p class="mt-2 text-sm text-gray-600">Run always-on campaigns with AI marketing tools that keep every client brand on-brief and on-brand.</p>
                            <a href="https://www.thebrand.ai/brandcreator/index" class="mt-3 text-sm font-semibold text-brand-cyan underline-offset-2 hover:underline">Discover AI marketing tools for teams</a>
                        </div>
                        <div class="flex flex-col items-center text-center w-32">
                            <div class="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8" fill="none" viewBox="0 0 24 24"
                                     stroke="currentColor" stroke-width="2">
                                    <path stroke-linecap="round" stroke-linejoin="round"
                                          d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4V5h5v7h-5z"></path>
                                </svg>
                            </div>
                            <h3 class="font-semibold text-gray-700">Corporations</h3>
                            <p class="mt-2 text-sm text-gray-600">Coordinate brand management for corporations with shared templates, approvals, and AI-powered design across regions.</p>
                            <a href="https://www.thebrand.ai/brandcreator/index" class="mt-3 text-sm font-semibold text-brand-cyan underline-offset-2 hover:underline">See how Brand AI scales for enterprises</a>
                        </div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-24 bg-gray-50">
                <div class="container mx-auto px-6">
                    <h2 class="text-3xl md:text-4xl font-bold text-center mb-4">Brands growing with Brand AI</h2>
                    <p class="text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12 text-center">See how different teams use Brand AI to launch faster, stay on-brand, and keep campaigns moving without adding headcount.</p>
                    <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-lg hover:-translate-y-1 transition-all duration-300 text-left">
                            <p class="text-sm font-semibold text-brand-cyan mb-2">SME • E-commerce</p>
                            <p class="text-base text-gray-900 mb-4">“We launched our new brand and website in weeks instead of months, with every campaign asset coming from the same AI branding platform.”</p>
                            <p class="text-sm text-gray-700">Amira, Marketing Lead at BrightCart</p>
                        </div>
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-lg hover:-translate-y-1 transition-all duration-300 text-left">
                            <p class="text-sm font-semibold text-brand-cyan mb-2">Government • Communications</p>
                            <p class="text-base text-gray-900 mb-4">“Templates and approvals now live in one place, so every department communicates with a consistent, accessible brand—without long agency cycles.”</p>
                            <p class="text-sm text-gray-700">David, Communications Director at CityWorks</p>
                        </div>
                        <div class="bg-white p-8 rounded-2xl shadow-md hover:shadow-lg hover:-translate-y-1 transition-all duration-300 text-left">
                            <p class="text-sm font-semibold text-brand-cyan mb-2">Startup • B2B SaaS</p>
                            <p class="text-base text-gray-900 mb-4">“Brand AI gives us decks, landing pages, and campaign visuals that actually match our positioning, so we spend more time selling and less time designing.”</p>
                            <p class="text-sm text-gray-700">Leah, Founder of SignalFlow</p>
                        </div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-28 bg-gray-50">
                <div class="container mx-auto px-6">
                    <h2 class="text-4xl md:text-5xl font-bold text-center mb-8">Frequently asked questions</h2>
                    <p class="text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12 text-center">Answers to common questions about using Brand AI as your AI branding platform, whether you are a small business, government, startup, or marketing team.</p>
                    <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
                        <div class="bg-white p-6 rounded-2xl shadow-md text-left">
                            <h3 class="text-xl font-bold mb-3">How do I create a brand identity with AI?</h3>
                            <p class="text-gray-600 mb-2">Start in the Brand Creator, answer a short guided questionnaire, and let Brand AI generate a full brand identity for you, including logo directions, colours, fonts, and messaging.</p>
                            <p class="text-gray-600">From there you can refine everything inside the editor, apply your brand to templates, and publish assets knowing the system will keep you consistent as you grow.</p>
                        </div>
                        <div class="bg-white p-6 rounded-2xl shadow-md text-left">
                            <h3 class="text-xl font-bold mb-3">What is the best AI branding platform for small business?</h3>
                            <p class="text-gray-600 mb-2">Brand AI is built for SMEs that need agency-level work without agency-level retainers. You get strategy, design, and execution tools in one place instead of stitching together multiple apps.</p>
                            <p class="text-gray-600">Use ready-made journeys, templates, and dashboards to see which campaigns and channels actually move the needle for your small business.</p>
                        </div>
                        <div class="bg-white p-6 rounded-2xl shadow-md text-left">
                            <h3 class="text-xl font-bold mb-3">How does Brand AI help governments and public sector brands?</h3>
                            <p class="text-gray-600 mb-2">Governments and public sector teams use Brand AI to keep every department, agency, and supplier working from the same templates, guidelines, and approval flows.</p>
                            <p class="text-gray-600">You can manage multi-stakeholder campaigns, ensure accessibility and compliance, and still benefit from AI-generated designs and content that stay within your brand system.</p>
                        </div>
                        <div class="bg-white p-6 rounded-2xl shadow-md text-left">
                            <h3 class="text-xl font-bold mb-3">Do I need design experience to use Brand AI?</h3>
                            <p class="text-gray-600 mb-2">No. The platform is designed so founders, marketers, and teams without design backgrounds can create professional assets.</p>
                            <p class="text-gray-600">You choose from guided options, and Brand AI handles layout, typography, and visual hierarchy for you while still letting designers dive deeper when needed.</p>
                        </div>
                    </div>
                </div>
            </section>
            <section class="py-20 md:py-28">
                <div class="container mx-auto px-6"><h2 class="text-4xl md:text-5xl font-bold text-center mb-12">Your
                    brand's entire ecosystem, connected.</h2>
                    <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(26, 35, 126);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Define your Brand
                                Identity</h3>
                                <p class="text-lg opacity-90 mb-6">A central hub to build, manage, and evolve your
                                    unique brand identity as you scale.</p><a
                                        href="https://www.thebrand.ai/i/account/build_brand"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Build
                                    My Brand</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Define your Brand Identity"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/284-800x600.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(0, 38, 62);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">End-to-end
                                platform for large organizations</h3>
                                <p class="text-lg opacity-90 mb-6">Scale brand consistency with enterprise-grade tools,
                                    security, and support for large organizations.</p><a href="#"
                                                                                         class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Explore
                                    Enterprise</a></div>
                            <div class="absolute inset-0 z-0"><img alt="End-to-end platform for large organizations"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/622-800x600.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                        <div class="relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 min-h-[480px] md:min-h-[520px]"
                             style="background-color: rgb(1, 87, 155);">
                            <div class="z-10 relative"><h3 class="text-3xl md:text-4xl font-bold mb-4">Unlock Growth
                                with Insight Journeys</h3>
                                <p class="text-lg opacity-90 mb-6">Explore expert-led journeys to transform your
                                    startup's growth, overcome challenges, and achieve success.</p><a
                                        href="https://www.thebrand.ai/insights/dashboard?feature=browsejourneys"
                                        class="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block">Discover
                                    Your Path</a></div>
                            <div class="absolute inset-0 z-0"><img alt="Unlock Growth with Insight Journeys"
                                                                   class="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                                                                   loading="lazy" decoding="async"
                                                                   src="index_files/898-800x600.jpg">
                                <div class="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                            </div>
                        </div>
                    </div>
                </div>
            </section>
            <!-- Templates section: React mounts only here -->
            <section class="py-20 md:py-24 bg-gray-50">
                <div class="container mx-auto px-6 mb-10">
                    <h2 class="text-3xl md:text-4xl font-bold text-center mb-3">Featured AI branding tools</h2>
                    <p class="text-lg text-gray-600 max-w-3xl mx-auto text-center">Jump straight into the wowX tools your team will use every day—logo creator, website builder, brand insights, and presentation designer.</p>
                    <div class="mt-10 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 text-left">
                        <div class="bg-white p-6 rounded-2xl shadow-md hover:shadow-lg hover:-translate-y-1 transition-all duration-300">
                            <h3 class="text-xl font-bold mb-2">Logo Creator</h3>
                            <p class="text-sm text-gray-600 mb-3">Generate on-brand logo directions in minutes, then refine them with your team.</p>
                            <a href="/wowX/tools/" class="text-sm font-semibold text-brand-cyan underline-offset-2 hover:underline">Start with logo creator</a>
                        </div>
                        <div class="bg-white p-6 rounded-2xl shadow-md hover:shadow-lg hover:-translate-y-1 transition-all duration-300">
                            <h3 class="text-xl font-bold mb-2">Website Builder</h3>
                            <p class="text-sm text-gray-600 mb-3">Launch landing pages and sites that stay consistent with your AI-generated brand system.</p>
                            <a href="/wowX/tools/" class="text-sm font-semibold text-brand-cyan underline-offset-2 hover:underline">Build a site with AI</a>
                        </div>
                        <div class="bg-white p-6 rounded-2xl shadow-md hover:shadow-lg hover:-translate-y-1 transition-all duration-300">
                            <h3 class="text-xl font-bold mb-2">Brand Insights</h3>
                            <p class="text-sm text-gray-600 mb-3">See which campaigns and channels move the needle in your AI brand dashboard.</p>
                            <a href="/wowX/dashboard/" class="text-sm font-semibold text-brand-cyan underline-offset-2 hover:underline">Open AI brand dashboard</a>
                        </div>
                        <div class="bg-white p-6 rounded-2xl shadow-md hover:shadow-lg hover:-translate-y-1 transition-all duration-300">
                            <h3 class="text-xl font-bold mb-2">Presentation Designer</h3>
                            <p class="text-sm text-gray-600 mb-3">Turn your brand system into investor decks, reports, and client presentations.</p>
                            <a href="/wowX/tools/" class="text-sm font-semibold text-brand-cyan underline-offset-2 hover:underline">Design a presentation</a>
                        </div>
                    </div>
                </div>
                <div id="templates-root"></div>
            </section>
        </main>
        <script>
          (function() {
            var root = document.getElementById('templates-root');
            if (!root) return;

            // Image configuration and dynamic resolution
            var IMAGES_CONFIG = {
              pexelsApiKey: 'SnJeKdzoLJiTT1Ge8rud21n5uvhWZPBTT0I9AwBtNSyG1pQLAJA5sRqh',
              pixabayApiKey: '33011976-8e54c670d386b82f432cf1381'
            };

            var LOCAL_IMAGES = [
              'index_files/192-400x300.jpg',
              'index_files/1024-400x300.jpg',
              'index_files/626-400x300.jpg',
              'index_files/682-400x300.jpg',
              'index_files/888-400x300.jpg'
            ];

            function pickImage(label) {
              var s = (label || '');
              var hash = 0;
              for (var i = 0; i < s.length; i++) {
                hash = (hash * 31 + s.charCodeAt(i)) >>> 0;
              }
              return LOCAL_IMAGES[hash % LOCAL_IMAGES.length];
            }

            // Load images.json if present and build an index
            var imagesIndex = null; // normalized as { [label]: { url?: string, query?: string, provider?: 'pexels'|'pixabay' } }

            function normalizeImagesJson(data) {
              var index = {};
              if (!data) return index;
              if (Array.isArray(data)) {
                data.forEach(function(item){
                  if (!item) return;
                  var key = item.label || item.name || item.title;
                  if (!key) return;
                  var obj = {};
                  if (typeof item === 'string') {
                    obj.url = item;
                  }
                  if (item.url || item.imageUrl) obj.url = item.url || item.imageUrl;
                  if (item.query || item.search || item.keyword) obj.query = item.query || item.search || item.keyword;
                  if (item.provider) obj.provider = item.provider;
                  index[key] = obj;
                });
              } else if (typeof data === 'object') {
                Object.keys(data).forEach(function(k){
                  var v = data[k];
                  var obj = {};
                  if (typeof v === 'string') { obj.url = v; }
                  else if (typeof v === 'object' && v) {
                    if (v.url || v.imageUrl) obj.url = v.url || v.imageUrl;
                    if (v.query || v.search || v.keyword) obj.query = v.query || v.search || v.keyword;
                    if (v.provider) obj.provider = v.provider;
                  }
                  index[k] = obj;
                });
              }
              return index;
            }

            function loadImagesIndex() {
              return fetch('/images.json')
                .then(function(r){ return r.ok ? r.json() : null; })
                .then(function(j){ imagesIndex = normalizeImagesJson(j); })
                .catch(function(){ imagesIndex = {}; });
            }

            // Resolve an image for a given label, with caching and API fallback
            function cacheGet(label) {
              try {
                var raw = localStorage.getItem('templateImg:' + label);
                if (!raw) return null;
                var obj = JSON.parse(raw);
                // 7 days TTL
                if (obj && obj.url && obj.ts && (Date.now() - obj.ts) < 7*24*60*60*1000) return obj.url;
              } catch(_) {}
              return null;
            }
            function cacheSet(label, url) {
              try {
                localStorage.setItem('templateImg:' + label, JSON.stringify({ url: url, ts: Date.now() }));
              } catch(_) {}
            }

            function fetchFromPexels(query) {
              if (!IMAGES_CONFIG.pexelsApiKey) return Promise.reject(new Error('Missing Pexels API key'));
              var url = 'https://api.pexels.com/v1/search?per_page=1&query=' + encodeURIComponent(query);
              return fetch(url, { headers: { Authorization: IMAGES_CONFIG.pexelsApiKey } })
                .then(function(r){ if (!r.ok) throw new Error('Pexels fetch failed'); return r.json(); })
                .then(function(j){
                  var p = j && j.photos && j.photos[0];
                  var src = p && p.src;
                  return (src && (src.landscape || src.large || src.medium)) || null;
                });
            }

            function fetchFromPixabay(query) {
              if (!IMAGES_CONFIG.pixabayApiKey) return Promise.reject(new Error('Missing Pixabay API key'));
              var url = 'https://pixabay.com/api/?image_type=photo&per_page=3&key=' + encodeURIComponent(IMAGES_CONFIG.pixabayApiKey) + '&q=' + encodeURIComponent(query);
              return fetch(url)
                .then(function(r){ if (!r.ok) throw new Error('Pixabay fetch failed'); return r.json(); })
                .then(function(j){
                  var h = j && j.hits && j.hits[0];
                  return (h && (h.largeImageURL || h.webformatURL)) || null;
                });
            }

            function resolveImage(label) {
              // 1) localStorage cache
              var cached = cacheGet(label);
              if (cached) return Promise.resolve(cached);

              var idx = imagesIndex || {};
              var entry = idx[label];
              // 2) images.json direct url
              if (entry && entry.url) {
                cacheSet(label, entry.url);
                return Promise.resolve(entry.url);
              }
              // 3) Query via provider
              var query = (entry && entry.query) || label;
              var provider = (entry && entry.provider) || 'pexels';

              var promise = (provider === 'pixabay') ? fetchFromPixabay(query) : fetchFromPexels(query);
              return promise
                .catch(function(){
                  // Fallback to the other provider
                  return (provider === 'pixabay') ? fetchFromPexels(query) : fetchFromPixabay(query);
                })
                .then(function(url){
                  if (url) {
                    cacheSet(label, url);
                    return url;
                  }
                  // Final local fallback
                  return pickImage(label);
                });
            }

            function sortCategories(list) {
              return list.slice().sort(function(a, b) {
                var an = (a && a.label) || '';
                var bn = (b && b.label) || '';
                if (an === 'Social Media') return -1;
                if (bn === 'Social Media') return 1;
                return an.localeCompare(bn);
              });
            }

            function render(categories, activeLabel) {
              root.innerHTML = '';

              var container = document.createElement('div');
              container.className = 'container mx-auto px-6';

              var header = document.createElement('div');
              header.className = 'text-center mb-12';
              var h2 = document.createElement('h2');
              h2.className = 'text-4xl md:text-5xl font-bold mb-4';
              h2.textContent = 'Templates for absolutely anything';
              var p = document.createElement('p');
              p.className = 'text-lg md:text-xl text-gray-600 max-w-2xl mx-auto';
              p.textContent = 'Jumpstart your next project with thousands of professional templates.';
              header.appendChild(h2);
              header.appendChild(p);

              var tabs = document.createElement('div');
              tabs.className = 'flex flex-wrap justify-center gap-2 md:gap-4 mb-10';
              categories.forEach(function(cat) {
                var isActive = activeLabel === cat.label;
                var btn = document.createElement('button');
                btn.type = 'button';
                btn.className = 'py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base ' +
                  (isActive ? 'bg-brand-cyan text-white shadow-lg transform scale-105' : 'bg-gray-200 text-gray-700 hover:bg-gray-300');
                btn.textContent = cat.label;
                btn.setAttribute('data-label', cat.label);
                btn.setAttribute('aria-pressed', isActive ? 'true' : 'false');
                tabs.appendChild(btn);
              });

              var grid = document.createElement('div');
              grid.className = 'grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-6 md:gap-8';

              var activeCategory = categories.find(function(c) { return c.label === activeLabel; });
              var items = [];
              if (activeCategory) {
                if (Array.isArray(activeCategory.children)) items = activeCategory.children;
                else if (Array.isArray(activeCategory.templates)) items = activeCategory.templates;
              }
              items.forEach(function(child) {
                var a = document.createElement('a');
                a.href = child.url;
                a.className = 'block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1';

                var wrap = document.createElement('div');
                wrap.className = 'relative aspect-[4/3] overflow-hidden';
                var img = document.createElement('img');
                // Start with a local placeholder, then resolve asynchronously
                img.src = pickImage(child.label);
                img.alt = child.label;
                img.loading = 'lazy';
                img.decoding = 'async';
                img.className = 'w-full h-full object-cover group-hover:scale-105 transition-transform duration-300';
                var overlay = document.createElement('div');
                overlay.className = 'absolute inset-0 bg-black bg-opacity-10 group-hover:bg-opacity-0 transition-all duration-300';
                wrap.appendChild(img);
                wrap.appendChild(overlay);

                var body = document.createElement('div');
                body.className = 'p-3';
                var h4 = document.createElement('h4');
                h4.className = 'text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300';
                h4.textContent = child.label;
                body.appendChild(h4);

                a.appendChild(wrap);
                a.appendChild(body);
                grid.appendChild(a);

                // Resolve improved image from images.json / Pexels / Pixabay
                resolveImage(child.label).then(function(url){
                  if (url) img.src = url;
                }).catch(function(){ /* keep placeholder */ });
              });

              container.appendChild(header);
              container.appendChild(tabs);
              container.appendChild(grid);
              root.appendChild(container);

              tabs.addEventListener('click', function(e) {
                var target = e.target;
                if (target && target.matches('button[data-label]')) {
                  var next = target.getAttribute('data-label');
                  render(categories, next);
                }
              });
            }

            // First load images index, then categories
            loadImagesIndex().then(function(){
              return fetch('/categories.json')
              .then(function(r) { return r.ok ? r.json() : Promise.reject(new Error('Failed to load categories.json')); })
              .then(function(data) {
                var list = Array.isArray(data) ? data : [];
                var sorted = sortCategories(list);
                var defaultLabel = sorted.find(function(c) { return c.label === 'Social Media'; }) ? 'Social Media' : (sorted[0] ? sorted[0].label : null);
                render(sorted, defaultLabel);
              })
              .catch(function(err) {
                root.innerHTML = '<div class="container mx-auto px-6 py-12 text-center text-red-600">Failed to load templates.</div>';
              });
            });
          })();
        </script>
        <footer class="bg-brand-midnight text-white">
            <div class="container mx-auto px-6 py-12">
                <div class="grid grid-cols-1 md:grid-cols-5 gap-8">
                    <div class="md:col-span-2">
                        <a href="https://www.thebrand.ai" aria-label="Brand AI Homepage">
                            <img src="https://www.thebrand.ai/i/uploads/logo/logo_62a4de26e93f0.png"  width="110" height="30">
                        </a>
                        <p class="mt-4 text-gray-400">AI branding platform to build, launch, and grow your brand in one place.</p>
                        <form action="/newsletter/subscribe" method="post" class="mt-6 flex flex-col sm:flex-row gap-3">
                            <input type="email" name="email" required placeholder="Get weekly AI branding tips" class="flex-1 px-3 py-2 rounded-lg border border-gray-600 bg-brand-midnight text-sm focus:outline-none focus:ring-2 focus:ring-brand-cyan focus:border-brand-cyan placeholder-gray-500">
                            <button type="submit" class="px-4 py-2 rounded-lg bg-brand-cyan text-sm font-semibold text-brand-midnight hover:opacity-90 transition-opacity">
                                Subscribe
                            </button>
                        </form>
                        <p class="mt-2 text-xs text-gray-500">Actionable guides, no fluff. Unsubscribe anytime.</p>
                    </div>
                    <div><h3 class="font-bold uppercase text-gray-400">Features</h3>
                        <ul class="mt-4 space-y-2">
                            <li><a href="https://www.thebrand.ai/brandcreator/index"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Brand Creator</a></li>
                            <li><a href="https://www.thebrand.ai/i/account/designs"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">My Designs</a></li>
                            <li><a href="https://www.thebrand.ai/i"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Templates</a></li>
                            <li><a href="https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Brand Toolkit</a></li>
                        </ul>
                    </div>
                    <div><h3 class="font-bold uppercase text-gray-400">Resources</h3>
                        <ul class="mt-4 space-y-2">
                            <li><a href="https://www.thebrand.ai/insights/"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Insights</a></li>
                            <li><a href="https://www.thebrand.ai/blogs"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Blogs</a></li>
                            <li><a href="https://www.thebrand.ai/insights/dashboard?feature=browsejourneys"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Brand Journeys</a></li>
                            <li><a href="https://www.thebrand.ai/sites/index"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Sites</a></li>
                        </ul>
                    </div>
                    <div><h3 class="font-bold uppercase text-gray-400">Account</h3>
                        <ul class="mt-4 space-y-2">
                            <li><a href="https://www.thebrand.ai/i/account/build_brand"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">My Brand Identity</a>
                            </li>
                            <li><a href="#" class="text-gray-300 hover:text-brand-cyan transition-colors">Update Brand
                                Details</a></li>
                            <li><a href="https://www.thebrand.ai/insights/auth-onboard"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Onboarding</a></li>
                        </ul>
                    </div>
                    <div><h3 class="font-bold uppercase text-gray-400">Company</h3>
                        <ul class="mt-4 space-y-2">
                            <li><a href="#" class="text-gray-300 hover:text-brand-cyan transition-colors">About Us</a>
                            </li>
                            <li><a href="https://www.thebrand.ai/i/contact"
                                   class="text-gray-300 hover:text-brand-cyan transition-colors">Contact Us</a></li>
                            <li><a href="#" class="text-gray-300 hover:text-brand-cyan transition-colors">Careers</a>
                            </li>
                        </ul>
                    </div>
                </div>
                <div class="mt-12 pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center">
                    <p class="text-gray-400">© 2025 Brand AI. All rights reserved.</p>
                    <div class="flex space-x-4 mt-4 md:mt-0"><a href="https://facebook.com/TheBrandApp"
                                                                class="text-gray-400 hover:text-brand-cyan transition-colors"
                                                                aria-label="Facebook"><span
                            class="sr-only">Facebook</span>
                        <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                            <path fill-rule="evenodd"
                                  d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z"
                                  clip-rule="evenodd"></path>
                        </svg>
                    </a><a href="https://twitter.com/thebrandhq"
                           class="text-gray-400 hover:text-brand-cyan transition-colors" aria-label="Twitter"><span
                            class="sr-only">Twitter</span>
                        <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                            <path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.71v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"></path>
                        </svg>
                    </a><a href="https://www.instagram.com/thebrandapp"
                           class="text-gray-400 hover:text-brand-cyan transition-colors" aria-label="Instagram"><span
                            class="sr-only">Instagram</span>
                        <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                            <path fill-rule="evenodd"
                                  d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.024.06 1.378.06 3.808s-.012 2.784-.06 3.808c-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.024.048-1.378.06-3.808.06s-2.784-.012-3.808-.06c-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.048-1.024-.06-1.378-.06-3.808s.012-2.784.06-3.808c.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 016.08 2.525c.636-.247 1.363-.416 2.427-.465C9.53 2.013 9.884 2 12.315 2zM12 7.044c-2.583 0-4.666 2.083-4.666 4.666s2.083 4.666 4.666 4.666 4.666-2.083 4.666-4.666S14.583 7.044 12 7.044zm0 7.666c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.917-7.916a1.146 1.146 0 100-2.292 1.146 1.146 0 000 2.292z"
                                  clip-rule="evenodd"></path>
                        </svg>
                    </a><a href="https://www.linkedin.com/company/the-brand-app"
                           class="text-gray-400 hover:text-brand-cyan transition-colors" aria-label="LinkedIn"><span
                            class="sr-only">LinkedIn</span>
                        <svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
                            <path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"></path>
                        </svg>
                    </a></div>
                </div>
            </div>
        </footer>
    </div>
</div>
<script type="text/plain" data-disabled="true">
    import React, {useState} from 'react';
    import ReactDOM from 'react-dom/client';

    // --- START OF constants.tsx ---
    const FEATURES_PRIMARY = [
        {
            title: 'Bring Your Brand to Life with Brand Creator',
            description: 'Quickly and effortlessly create a powerful, professional brand identity and logos that stand out and drive business growth.',
            link: 'https://www.thebrand.ai/brandcreator/index',
            buttonText: 'Explore Brand Creator',
            imageUrl: 'https://picsum.photos/seed/branding-desk/1200/800',
            bgColor: '#1E003B', // Deep Purple/Indigo
        },
        {
            title: 'Revolutionize Your Brand with AI Insights',
            description: 'Supercharge your brand with intelligent solutions, design, and big data to drive growth, engagement, and measurable success.',
            link: 'https://www.thebrand.ai/insights/',
            buttonText: 'Explore Insights',
            imageUrl: 'https://picsum.photos/seed/ai-dashboard/1200/800',
            bgColor: '#003D5B', // Dark Cyan/Blue
        },
        {
            title: 'Build a Website Easily with Brand Sites',
            description: 'Choose from over 100 amazing templates to build a stunning website that empowers your brand to stand out.',
            link: 'https://www.thebrand.ai/sites/index',
            buttonText: 'Explore Brand Sites',
            imageUrl: 'https://picsum.photos/seed/web-design/1200/800',
            bgColor: '#004C4C', // Dark Teal
        },
    ];

    const FEATURES_SECONDARY = [
        {
            title: 'Meet the Visual Suite',
            description: 'Your entire workflow in one place. From bespoke designs and insightful blogs to tailored strategies—all powered by AI.',
            link: 'https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit',
            buttonText: 'Explore Visual Suite',
            imageUrl: 'https://picsum.photos/seed/creative-workspace/1200/800',
            bgColor: '#3D004F', // Dark Magenta/Purple
            size: 'large',
        },
        {
            title: 'Present with impact',
            description: 'Reimagine presentations with cinematic visuals, smart collaboration, and AI-powered tools.',
            link: 'https://www.thebrand.ai/i/designs',
            buttonText: 'Try Presentations',
            imageUrl: 'https://picsum.photos/seed/presentation-stage/1200/800',
            bgColor: '#005F58', // Deep Teal/Green
            size: 'large',
        },
    ];

    const FEATURES_TERTIARY = [
        {
            title: 'Define your Brand Identity',
            description: 'A central hub to build, manage, and evolve your unique brand identity as you scale.',
            link: 'https://www.thebrand.ai/i/account/build_brand',
            buttonText: 'Build My Brand',
            imageUrl: 'https://picsum.photos/seed/brand-guide/800/600',
            bgColor: '#1A237E', // Dark Indigo
        },
        {
            title: 'End-to-end platform for large organizations',
            description: 'Scale brand consistency with enterprise-grade tools, security, and support for large organizations.',
            link: '#',
            buttonText: 'Explore Enterprise',
            imageUrl: 'https://picsum.photos/seed/corporate-dash/800/600',
            bgColor: '#00263E', // Very Dark Blue
        },
        {
            title: 'Unlock Growth with Insight Journeys',
            description: "Explore expert-led journeys to transform your startup's growth, overcome challenges, and achieve success.",
            link: 'https://www.thebrand.ai/insights/dashboard?feature=browsejourneys',
            buttonText: 'Discover Your Path',
            imageUrl: 'https://picsum.photos/seed/growth-path/800/600',
            bgColor: '#01579B', // Light Blue
        },
    ];

    const CostIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-10 w-10" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 10v-1m-5.293-6.293l-.707.707M17.293 7.707l.707-.707M5.707 16.293l.707.707M16.586 17H19a2 2 0 002-2V9a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2.414"/>
        </svg>
    );

    const TimeIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-10 w-10" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
        </svg>
    );

    const ToolsIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-10 w-10" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z"/>
        </svg>
    );

    const PROBLEM_CARDS = [
        {
            icon: <CostIcon/>,
            title: 'Agency-Level Budgets',
            description: 'SMEs and governments need top-tier strategy but lack the budget for expensive agencies.'
        },
        {
            icon: <TimeIcon/>,
            title: 'Months of Guesswork',
            description: 'Founders and marketers waste precious time guessing their next move instead of acting on clear insights.'
        },
        {
            icon: <ToolsIcon/>,
            title: 'Juggling a Dozen Tools',
            description: 'Creatives juggle multiple, disconnected tools to create a single campaign, with none of them talking to each other.'
        }
    ];

    const SmeIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4v-5h5v5h-5z"/>
        </svg>
    );
    const GovernmentIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M12 21l-2-2m2 2l2-2m2 2l2-2M5 15l-2-2m2 2l2-2m2 2l2-2m2 2l2-2M5 21v-6a2 2 0 012-2h10a2 2 0 012 2v6"/>
            <path strokeLinecap="round" strokeLinejoin="round" d="M3 21h18M5 10l7-7 7 7"/>
        </svg>
    );
    const StartupIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round" d="M13 10V3L4 14h7v7l9-11h-7z"/>
        </svg>
    );
    const MarketerIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round" d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"/>
            <path strokeLinecap="round" strokeLinejoin="round" d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"/>
        </svg>
    );
    const CorporateIcon = () => (
        <svg xmlns="http://www.w3.org/2000/svg" className="h-8 w-8" fill="none" viewBox="0 0 24 24"
             stroke="currentColor" strokeWidth={2}>
            <path strokeLinecap="round" strokeLinejoin="round"
                  d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0v-4m0 4h5m0 0v-4m0 4h5m-5-4V5h5v7h-5z"/>
        </svg>
    );

    const TARGET_MARKETS = [
        {icon: <SmeIcon/>, name: 'SMEs'},
        {icon: <GovernmentIcon/>, name: 'Governments'},
        {icon: <StartupIcon/>, name: 'Startups'},
        {icon: <MarketerIcon/>, name: 'Marketers'},
        {icon: <CorporateIcon/>, name: 'Corporations'},
    ];

    const FacebookIcon = () => (
        <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
            <path fillRule="evenodd"
                  d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z"
                  clipRule="evenodd"/>
        </svg>
    );

    const TwitterIcon = () => (
        <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
            <path
                d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.71v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"/>
        </svg>
    );

    const InstagramIcon = () => (
        <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
            <path fillRule="evenodd"
                  d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.024.06 1.378.06 3.808s-.012 2.784-.06 3.808c-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.024.048-1.378.06-3.808.06s-2.784-.012-3.808-.06c-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.048-1.024-.06-1.378-.06-3.808s.012-2.784.06-3.808c.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 016.08 2.525c.636-.247 1.363-.416 2.427-.465C9.53 2.013 9.884 2 12.315 2zM12 7.044c-2.583 0-4.666 2.083-4.666 4.666s2.083 4.666 4.666 4.666 4.666-2.083 4.666-4.666S14.583 7.044 12 7.044zm0 7.666c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.917-7.916a1.146 1.146 0 100-2.292 1.146 1.146 0 000 2.292z"
                  clipRule="evenodd"/>
        </svg>
    );

    const LinkedInIcon = () => (
        <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
            <path
                d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/>
        </svg>
    );

    const TEMPLATE_CATEGORIES = [
        {
            category: 'Social Media',
            templates: [
                {title: "Facebook Post", url: "https://www.thebrand.ai/i/social-media/facebook-post"},
                {title: "Instagram Post", url: "https://www.thebrand.ai/i/social-media/instagram-posts"},
                {title: "Instagram Story", url: "https://www.thebrand.ai/i/social-media/instagram-story"},
                {title: "LinkedIn Post", url: "https://www.thebrand.ai/i/social-media/linkedin-post"},
                {title: "Twitter Post", url: "https://www.thebrand.ai/i/social-media/twitter"},
                {title: "Pinterest Pin", url: "https://www.thebrand.ai/i/social-media/pinterest-pin-graphic-templates"},
                {title: "IGTV Cover", url: "https://www.thebrand.ai/i/social-media/igtv-cover"},
                {title: "Highlight Cover", url: "https://www.thebrand.ai/i/social-media/instagram-highlight-cover"},
                {title: "YouTube Graphics", url: "https://www.thebrand.ai/i/social-media/youtube-graphic-templates"},
                {title: "Twitch Graphics", url: "https://www.thebrand.ai/i/social-media/online-streaming"},
            ]
        },
        {
            category: 'Invites & Cards',
            templates: [
                {title: "Business Card", url: "https://www.thebrand.ai/i/invites-and-cards/business-card-85x55mm"},
                {title: "US Business Card", url: "https://www.thebrand.ai/i/invites-and-cards/business-card-us"},
                {title: "Greeting Card", url: "https://www.thebrand.ai/i/invites-and-cards/card"},
                {title: "Invitation", url: "https://www.thebrand.ai/i/invites-and-cards/invitation-13.9x10.7cm"},
            ]
        },
        {
            category: 'Documents',
            templates: [
                {title: "Presentation 16:9", url: "https://www.thebrand.ai/i/documents/presentation-16-9"},
                {title: "Resume", url: "https://www.thebrand.ai/i/documents/resume"},
                {title: "Letterhead A4", url: "https://www.thebrand.ai/i/documents/letterhead-a4"},
                {title: "Proposal A4", url: "https://www.thebrand.ai/i/documents/proposal-a4"},
                {title: "Flyer A4", url: "https://www.thebrand.ai/i/documents/flyer-a4"},
                {title: "Newsletter", url: "https://www.thebrand.ai/i/documents/newsletter"},
                {title: "Invoice A4", url: "https://www.thebrand.ai/i/documents/invoice-a4"},
                {title: "Report A4", url: "https://www.thebrand.ai/i/documents/report-a4"},
                {title: "Certificate", url: "https://www.thebrand.ai/i/documents/certificate"},
                {title: "Menu A4", url: "https://www.thebrand.ai/i/documents/menu-a4"},
                {title: "Checklist", url: "https://www.thebrand.ai/i/documents/checklist"},
                {title: "Schedule", url: "https://www.thebrand.ai/i/documents/schedule"},
                {title: "Workbook", url: "https://www.thebrand.ai/i/documents/workbook"},
                {title: "eBook", url: "https://www.thebrand.ai/i/documents/ebook"},
                {title: "Whitepaper", url: "https://www.thebrand.ai/i/documents/whitepaper"},
            ]
        },
        {
            category: 'Advertising',
            templates: [
                {title: "Poster", url: "https://www.thebrand.ai/i/advertising/poster-a3"},
                {title: "Banner", url: "https://www.thebrand.ai/i/advertising/banner-2x6ft"},
                {title: "Billboard", url: "https://www.thebrand.ai/i/advertising/billboard"},
                {title: "Flyer", url: "https://www.thebrand.ai/i/advertising/flyer-us"},
                {title: "Yard Sign", url: "https://www.thebrand.ai/i/advertising/yard-sign"},
                {title: "Roll-up Banner", url: "https://www.thebrand.ai/i/advertising/roll-up-banner"},
                {title: "Brochure", url: "https://www.thebrand.ai/i/advertising/brochure"},
            ]
        },
        {
            category: 'Covers',
            templates: [
                {title: "Book Cover", url: "https://www.thebrand.ai/i/covers/book-cover"},
                {title: "Magazine Cover", url: "https://www.thebrand.ai/i/covers/magazine-cover"},
                {title: "Report Cover", url: "https://www.thebrand.ai/i/covers/report-cover"},
                {title: "Planner Cover", url: "https://www.thebrand.ai/i/covers/planner-cover"},
                {title: "eBook Cover", url: "https://www.thebrand.ai/i/covers/ebook-cover"},
            ]
        },
    ];
    // --- END OF constants.tsx ---


    // --- START OF components/Logo.tsx ---
    const Logo = ({className, theme = 'light'}) => {
        const theColor = theme === 'dark' ? '#9CA3AF' : '#808080';
        const brandColor = theme === 'dark' ? '#FFFFFF' : '#333333';


    };
    // --- END OF components/Logo.tsx ---


    // --- START OF components/Header.tsx ---
    const Header = () => {
        const [isMenuOpen, setIsMenuOpen] = useState(false);

        const navLinks = [
           
            {name: 'Templates', href: 'https://www.thebrand.ai/i'},
             {name: 'Brand Creator', href: 'https://www.thebrand.ai/brandcreator/index'},
            {name: 'Insights', href: 'https://www.thebrand.ai/insights/'},
            {name: 'Blogs', href: 'https://www.thebrand.ai/blogs'},
            {name: 'Pricing', href: 'https://www.thebrand.ai/brandpay/choose'},
        ];

        return (
            <header className="bg-white/80 backdrop-blur-sm sticky top-0 z-50 shadow-sm">
                <div className="container mx-auto px-6 py-4">
                    <div className="flex items-center justify-between">
                        <div className="flex items-center space-x-8">
                            <a href="/" aria-label="Brand AI Homepage">
                                <img src="https://www.thebrand.ai/i/uploads/logo/logo_62a4de26e93f0.png"  width="110" height="30" />
                            </a>
                            <nav className="hidden md:flex items-center space-x-6">
                                {navLinks.map((link) => (
                                    <a key={link.name} href={link.href}
                                       className="text-gray-600 hover:text-brand-cyan font-medium transition-colors">
                                        {link.name}
                                    </a>
                                ))}
                            </nav>
                        </div>
                        <div className="hidden md:flex items-center space-x-4">
                            <a href="https://bit.ly/2LpQJmO" target="_blank" rel="noopener noreferrer"
                               className="font-semibold text-gray-600 hover:text-brand-cyan transition-colors border border-gray-300 rounded-lg py-2 px-4 text-sm hover:border-brand-cyan">Download
                                App</a>
                            <a href="#" className="font-bold text-gray-600 hover:text-brand-cyan transition-colors">Log
                                in</a>
                            <a href="#"
                               className="bg-brand-cyan text-white font-bold py-2 px-4 rounded-lg hover:opacity-90 transition-opacity">Sign
                                up for free</a>
                        </div>
                        <div className="md:hidden">
                            <button onClick={() => setIsMenuOpen(!isMenuOpen)}
                                    className="text-gray-800 focus:outline-none" aria-label="Toggle menu">
                                <svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"
                                     xmlns="http://www.w3.org/2000/svg">
                                    <path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2"
                                          d={isMenuOpen ? "M6 18L18 6M6 6l12 12" : "M4 6h16M4 12h16M4 18h16"}></path>
                                </svg>
                            </button>
                        </div>
                    </div>
                    {isMenuOpen && (
                        <div className="md:hidden mt-4">
                            <nav className="flex flex-col space-y-4">
                                {navLinks.map((link) => (
                                    <a key={link.name} href={link.href}
                                       className="text-gray-600 hover:text-brand-cyan font-medium transition-colors">
                                        {link.name}
                                    </a>
                                ))}
                                <div className="flex flex-col space-y-3 pt-4 border-t">
                                    <a href="https://bit.ly/2LpQJmO" target="_blank" rel="noopener noreferrer"
                                       className="w-full text-center border border-gray-300 text-gray-600 font-bold py-2 px-4 rounded-lg hover:border-brand-cyan hover:text-brand-cyan transition-colors">Download
                                        App</a>
                                    <a href="#"
                                       className="font-bold text-gray-600 hover:text-brand-cyan transition-colors">Log
                                        in</a>
                                    <a href="#"
                                       className="w-full text-center bg-brand-cyan text-white font-bold py-2 px-4 rounded-lg hover:opacity-90 transition-opacity">Sign
                                        up for free</a>
                                </div>
                            </nav>
                        </div>
                    )}
                </div>
            </header>
        );
    };
    // --- END OF components/Header.tsx ---


    // --- START OF components/Footer.tsx ---
    const Footer = () => {
        const socialLinks = [
            {name: 'Facebook', href: 'https://facebook.com/TheBrandApp', icon: <FacebookIcon/>},
            {name: 'Twitter', href: 'https://twitter.com/thebrandhq', icon: <TwitterIcon/>},
            {name: 'Instagram', href: 'https://www.instagram.com/thebrandapp', icon: <InstagramIcon/>},
            {name: 'LinkedIn', href: 'https://www.linkedin.com/company/the-brand-app', icon: <LinkedInIcon/>},
        ];

        const footerSections = [
            {
                title: 'Features',
                links: [
                    {name: 'Brand Creator', href: 'https://www.thebrand.ai/brandcreator/index'},
                    {name: 'My Designs', href: 'https://www.thebrand.ai/i/account/designs'},
                    {name: 'Templates', href: 'https://www.thebrand.ai/i/designs'},
                    {name: 'Brand Toolkit', href: 'https://www.thebrand.ai/insights/dashboard?feature=brandtoolkit'},
                ],
            },
            {
                title: 'Resources',
                links: [
                    {name: 'Insights', href: 'https://www.thebrand.ai/insights/'},
                    {name: 'Blogs', href: 'https://www.thebrand.ai/blogs'},
                    {name: 'Brand Journeys', href: 'https://www.thebrand.ai/insights/dashboard?feature=browsejourneys'},
                    {name: 'Sites', href: 'https://www.thebrand.ai/sites/index'},
                ],
            },
            {
                title: 'Account',
                links: [
                    {name: 'My Brand Identity', href: 'https://www.thebrand.ai/i/account/build_brand'},
                    {name: 'Update Brand Details', href: '#'},
                    {name: 'Onboarding', href: 'https://www.thebrand.ai/insights/auth-onboard'},
                ],
            },
            {
                title: 'Company',
                links: [
                    {name: 'About Us', href: '#'},
                    {name: 'Contact Us', href: 'https://www.thebrand.ai/i/contact'},
                    {name: 'Careers', href: '#'},
                ],
            },
        ];

        return (
            <footer className="bg-brand-midnight text-white">
                <div className="container mx-auto px-6 py-12">
                    <div className="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8">
                        <div className="col-span-2 lg:col-span-1">
                            <a href="/" aria-label="Brand AI Homepage">
        <img src="https://www.thebrand.ai/i/uploads/logo/logo_62a4de26e93f0.png"  width="110" height="30" />
                            </a>
                            <p className="mt-4 text-gray-400">Your vision, amplified.</p>
                        </div>
                        {footerSections.map((section) => (
                            <div key={section.title}>
                                <h3 className="font-bold uppercase text-gray-400">{section.title}</h3>
                                <ul className="mt-4 space-y-2">
                                    {section.links.map((link) => (
                                        <li key={link.name}>
                                            <a href={link.href}
                                               className="text-gray-300 hover:text-brand-cyan transition-colors">
                                                {link.name}
                                            </a>
                                        </li>
                                    ))}
                                </ul>
                            </div>
                        ))}
                    </div>
                    <div
                        className="mt-12 pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center">
                        <p className="text-gray-400">&copy; {new Date().getFullYear()} Brand AI. All rights
                            reserved.</p>
                        <div className="flex space-x-4 mt-4 md:mt-0">
                            {socialLinks.map((social) => (
                                <a key={social.name} href={social.href}
                                   className="text-gray-400 hover:text-brand-cyan transition-colors"
                                   aria-label={social.name}>
                                    <span className="sr-only">{social.name}</span>
                                    {social.icon}
                                </a>
                            ))}
                        </div>
                    </div>
                </div>
            </footer>
        );
    };
    // --- END OF components/Footer.tsx ---


    // --- START OF components/FeatureCard.tsx ---
    const FeatureCard = ({
                             title,
                             description,
                             link,
                             buttonText,
                             imageUrl,
                             bgColor,
                             size = 'normal'
                         }) => {
        const sizeClasses = {
            normal: 'min-h-[480px] md:min-h-[520px]',
            large: 'min-h-[520px] md:col-span-2 lg:col-span-1', // Special classes can be added here
        };

        return (
            <div
                className={`relative rounded-3xl overflow-hidden shadow-lg group text-white p-8 flex flex-col justify-between transition-all duration-500 ease-in-out transform hover:-translate-y-2 ${sizeClasses[size]}`}
                style={{backgroundColor: bgColor}}
            >
                <div className="z-10 relative">
                    <h3 className="text-3xl md:text-4xl font-bold mb-4">{title}</h3>
                    {description && <p className="text-lg opacity-90 mb-6">{description}</p>}
                    <a
                        href={link}
                        className="bg-white text-gray-800 font-bold py-2 px-6 rounded-lg text-md hover:bg-gray-200 transition-all duration-300 ease-in-out transform group-hover:-translate-y-1 inline-block"
                    >
                        {buttonText}
                    </a>
                </div>
                <div className="absolute inset-0 z-0">
                    <img src={imageUrl} alt={title}
                         className="w-full h-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-110 transition-all duration-500 ease-in-out"
                         loading="lazy" decoding="async"/>
                    <div
                        className="absolute inset-0 bg-black bg-opacity-20 group-hover:bg-opacity-10 transition-all duration-500 ease-in-out"></div>
                </div>
            </div>
        );
    };
    // --- END OF components/FeatureCard.tsx ---


    // --- START OF components/TemplateCard.tsx ---
    const TemplateCard = ({title, url}) => {
        const imageSeed = title.replace(/\s+/g, '-').toLowerCase();

        return (
            <a
                href={url}
                className="block group rounded-lg overflow-hidden bg-gray-100 shadow-sm hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1"
            >
                <div className="relative aspect-[4/3] overflow-hidden">
                    <img
                        src={`https://picsum.photos/seed/${imageSeed}/400/300`}
                        alt={title}
                        className="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
                        loading="lazy"
                        decoding="async"
                    />
                    <div
                        className="absolute inset-0 bg-black/10 group-hover:bg-black/0 transition-colors duration-300"></div>
                </div>
                <div className="p-3">
                    <h4 className="text-sm font-semibold text-gray-800 truncate group-hover:text-brand-cyan transition-colors duration-300">
                        {title}
                    </h4>
                </div>
            </a>
        );
    };
    // --- END OF components/TemplateCard.tsx ---


    // --- START OF components/InteractiveTemplates.tsx ---
    const InteractiveTemplates = () => {
        const initialCache = (typeof window !== 'undefined' && window.__TEMPLATE_CATEGORIES_CACHE) || [];
        const [categories, setCategories] = useState(initialCache);
        const hasSocialInit = initialCache.some(cat => cat.category === 'Social Media');
        const [activeTab, setActiveTab] = useState(hasSocialInit ? 'Social Media' : (initialCache[0]?.category || 'Social Media'));
        const [isLoading, setIsLoading] = useState(initialCache.length === 0);

        // Load categories from categories.json and map to local structure
        React.useEffect(() => {
            if (initialCache.length) { setIsLoading(false); return; }
            fetch('categories.json')
                .then(res => res.json())
                .then(data => {
                    const mapped = (Array.isArray(data) ? data : []).map(cat => ({
                        category: cat.label,
                        templates: (Array.isArray(cat.children) ? cat.children : []).map(child => ({
                            title: child.label,
                            url: child.url,
                        })),
                    }));
                    const desiredOrder = [
                        'Social Media',
                        'Invites & Cards',
                        'Documents',
                        'Advertising',
                        'Covers',
                        'More'
                    ];
                    const filtered = mapped.filter(cat => cat.templates && cat.templates.length);
                    const ordered = filtered.slice().sort((a, b) => {
                        const ai = desiredOrder.indexOf(a.category);
                        const bi = desiredOrder.indexOf(b.category);
                        if (ai === -1 && bi === -1) return 0;
                        if (ai === -1) return 1;
                        if (bi === -1) return -1;
                        return ai - bi;
                    });
                    if (ordered.length) {
                        setCategories(ordered);
                        const hasSocial = ordered.some(cat => cat.category === 'Social Media');
                        setActiveTab(hasSocial ? 'Social Media' : ordered[0].category);
                    }
                    window.__TEMPLATE_CATEGORIES_CACHE = ordered;
                    setIsLoading(false);
                })
                .catch(() => {
                    // fallback: keep TEMPLATE_CATEGORIES
                    setIsLoading(false);
                });
        }, []);

        const activeCategory = categories.find(cat => cat.category === activeTab);

        return (
            <div className="container mx-auto px-6">
                <div className="text-center mb-12">
                    <h2 className="text-4xl md:text-5xl font-bold mb-4">Templates for absolutely anything</h2>
                    <p className="text-lg md:text-xl text-gray-600 max-w-2xl mx-auto">
                        Jumpstart your next project with thousands of professional templates for any occasion.
                    </p>
                    <a href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                       className="mt-8 inline-block bg-brand-cyan text-white font-bold py-3 px-8 rounded-lg text-lg hover:opacity-90 transition-opacity">
                        Create Your Brand Now
                    </a>
                </div>

                <div className="flex flex-wrap justify-center gap-2 md:gap-4 mb-10">
                    {categories.map(cat => (
                        <button
                            key={cat.category}
                            onClick={() => setActiveTab(cat.category)}
                            className={`py-2 px-5 rounded-full font-semibold transition-all duration-300 text-sm md:text-base ${
                                activeTab === cat.category
                                    ? 'bg-brand-cyan text-white shadow-lg transform scale-105'
                                    : 'bg-gray-200 text-gray-700 hover:bg-gray-300'
                                }`}
                        >
                            {cat.category}
                        </button>
                    ))}
                </div>

                <div
                    key={activeTab}
                    className="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-6 md:gap-8">
                    {isLoading
                        ? Array.from({ length: 12 }).map((_, i) => (
                            <div key={i} className="rounded-lg bg-gray-200 h-40 animate-pulse" />
                          ))
                        : activeCategory?.templates.map(template => (
                            <TemplateCard
                                key={template.url}
                                title={template.title}
                                url={template.url}
                            />
                          ))}
                </div>
            </div>
        );
    };
    // --- END OF components/InteractiveTemplates.tsx ---


    // --- START OF App.tsx ---
    const App = () => {
        return (
            <div className="bg-white text-gray-800 font-sans">
                <Header/>
                <main>
                    {/* Hero Section */}
                    <section className="relative text-white overflow-hidden bg-brand-midnight">
                        {/* Stylish Background */}
                        <div aria-hidden="true" className="absolute inset-0 z-0 opacity-50">
                            <div
                                className="absolute top-[-30%] left-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-br from-brand-cyan to-transparent filter blur-3xl"></div>
                            <div
                                className="absolute bottom-[-30%] right-[-30%] w-4/5 h-4/5 rounded-full bg-gradient-to-tl from-brand-cyan to-transparent filter blur-3xl"></div>
                        </div>

                        <div
                            className="relative z-10 flex flex-col items-center justify-center min-h-[70vh] md:min-h-[80vh] px-4 text-center">
                            <h1 className="text-5xl md:text-7xl lg:text-8xl font-extrabold mb-4 tracking-tight">
        Your Entire Brand.<br />One Intelligent Platform.
                            </h1>
                            <p className="text-lg md:text-2xl max-w-3xl mb-8">
                                Imagine the creative firepower of a design agency, the strategic insight of a
                                consultant, and the brilliance of a top-tier marketing team—all at your fingertips.
                                That's Brand AI.
                            </p>
                            <div className="flex flex-wrap justify-center gap-4">
                                <a
                                    href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                    className="bg-white text-brand-midnight font-bold py-3 px-8 rounded-lg text-lg hover:bg-gray-200 transition-all duration-300 transform hover:scale-105"
                                >
                                    Start creating for free
                                </a>
                                <a
                                    href="https://www.thebrand.ai/i/"
                                    className="bg-white/10 backdrop-blur-sm text-white font-bold py-3 px-8 rounded-lg text-lg hover:bg-white/20 transition-all duration-300 transform hover:scale-105"
                                >
                                  Browse Templates
                                </a>
                            </div>
                        </div>
                    </section>

                    {/* The Problem Section */}
                    <section className="py-20 md:py-28 bg-gray-50">
                        <div className="container mx-auto px-6 text-center">
                            <h2 className="text-4xl md:text-5xl font-bold mb-4">The old way is broken.</h2>
                            <p className="text-lg md:text-xl text-gray-600 max-w-3xl mx-auto mb-12">
                                Did you know 90% of businesses struggle to stand out? They spend months and thousands on
                                solutions that don’t deliver.
                            </p>
                            <div className="grid grid-cols-1 md:grid-cols-3 gap-8 text-left">
                                {PROBLEM_CARDS.map((card, index) => (
                                    <div key={index}
                                         className="bg-white p-8 rounded-2xl shadow-md hover:shadow-xl hover:-translate-y-2 transition-all duration-300">
                                        <div className="text-brand-cyan mb-4">{card.icon}</div>
                                        <h3 className="text-xl font-bold mb-2">{card.title}</h3>
                                        <p className="text-gray-600">{card.description}</p>
                                    </div>
                                ))}
                            </div>
                        </div>
                    </section>

                    {/* Tools Section */}
                    <section className="py-20 md:py-28">
                        <div className="container mx-auto px-6">
                            <h2 className="text-4xl md:text-5xl font-bold text-center mb-12">
                                An entire toolkit, powered by AI.
                            </h2>
                            <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
                                {FEATURES_PRIMARY.map((feature, index) => (
                                    <FeatureCard key={index} {...feature} />
                                ))}
                            </div>
                        </div>
                    </section>

                    {/* Traction Section */}
                    <section className="py-20 md:py-24 bg-brand-midnight text-white">
                        <div className="container mx-auto px-6 text-center">
                            <h2 className="text-5xl md:text-6xl font-extrabold mb-4 tracking-tight">
                                34,000+ users and growing.
                            </h2>
                            <p className="text-lg md:text-xl opacity-80 max-w-3xl mx-auto">
                                Trusted by governments, SMEs, and startups worldwide. All achieved through organic
                                growth fueled by user trust and referrals.
                            </p>
                        </div>
                    </section>

                    {/* All in one place Section */}
                    <section className="py-20 md:py-28 bg-gray-50">
                        <div className="container mx-auto px-6">
                            <h2 className="text-4xl md:text-5xl font-bold text-center mb-12">
                                All the tools. All in one place.
                            </h2>
                            <div className="grid grid-cols-1 md:grid-cols-2 gap-8">
                                {FEATURES_SECONDARY.map((feature, index) => (
                                    <FeatureCard key={index} {...feature} />
                                ))}
                            </div>
                        </div>
                    </section>

                    {/* Target Market Section */}
                    <section className="py-20 md:py-28">
                        <div className="container mx-auto px-6 text-center">
                            <h2 className="text-4xl md:text-5xl font-bold mb-12">
                                Hyper-contextual solutions for everyone.
                            </h2>
                            <div className="flex flex-wrap justify-center gap-8 md:gap-12">
                                {TARGET_MARKETS.map((market, index) => (
                                    <div key={index} className="flex flex-col items-center text-center w-32">
                                        <div
                                            className="bg-cyan-100 text-brand-cyan rounded-full p-5 mb-4 transition-all duration-300 transform hover:scale-110 hover:bg-cyan-200">
                                            {market.icon}
                                        </div>
                                        <h3 className="font-semibold text-gray-700">{market.name}</h3>
                                    </div>
                                ))}
                            </div>
                        </div>
                    </section>

                    {/* Templates Section */}
                    <section className="py-20 md:py-28 bg-gray-50">
                        <InteractiveTemplates/>
                    </section>

                    {/* Ecosystem Section */}
                    <section className="py-20 md:py-28">
                        <div className="container mx-auto px-6">
                            <h2 className="text-4xl md:text-5xl font-bold text-center mb-12">
                                Your brand's entire ecosystem, connected.
                            </h2>
                            <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
                                {FEATURES_TERTIARY.map((feature, index) => (
                                    <FeatureCard key={index} {...feature} />
                                ))}
                            </div>
                        </div>
                    </section>
                </main>
                {/* Testimonials Section (Minimal Layout) */}
                <section className="py-20 md:py-28">
                    <div className="container mx-auto px-6 text-center">
                        <h2 className="text-4xl md:text-5xl font-bold mb-12">Testimonials</h2>
                        <div className="grid grid-cols-1 md:grid-cols-2 gap-8 text-left">
                            <blockquote className="bg-gray-50 border border-gray-300 p-8 rounded-2xl">
                                <p className="text-xl text-gray-800 font-medium mb-4">“Brand AI gave us agency-level design without agency-level cost.”</p>
                                <cite className="text-gray-600">— Maria R., Founder, The Cozy Bookstore</cite>
                            </blockquote>
                            <blockquote className="bg-gray-50 border border-gray-300 p-8 rounded-2xl">
                                <p className="text-xl text-gray-800 font-medium mb-4">“AI-powered insights helped us outperform competitors and stay ahead of trends.”</p>
                                <cite className="text-gray-600">— Chris T., Head of Analytics, Fitness First Gyms</cite>
                            </blockquote>
                        </div>
                    </div>
                </section>
                {/* Pre-Footer CTA Section */}
                <section className="py-20 md:py-28 bg-brand-midnight text-white">
                    <div className="container mx-auto px-6 text-center">
                        <h2 className="text-4xl md:text-5xl font-bold mb-4">
                            Where creativity meets clarity.
                        </h2>
                        <p className="text-lg md:text-xl text-gray-300 max-w-3xl mx-auto mb-8">
                            Brand brings design, strategy, and insight together—so you can build, scale, and express your brand with the precision of AI and the artistry of a designer.
                        </p>
                        <div className="flex flex-wrap justify-center gap-4">
                            <a
                                href="https://www.thebrand.ai/brandcreator/dashboard/auth-join.php?url=home"
                                className="bg-white text-brand-midnight font-bold py-3 px-8 rounded-lg text-lg hover:bg-gray-200 transition-all duration-300 transform hover:scale-105"
                            >
                                Start for Free
                            </a>
                            <a
                                href="https://www.thebrand.ai/i/"
                                className="bg-white/10 backdrop-blur-sm text-white font-bold py-3 px-8 rounded-lg text-lg hover:bg-white/20 transition-all duration-300 transform hover:scale-105"
                            >
                                Explore Templates
                            </a>
                        </div>
                    </div>
                </section>
                <Footer/>
            </div>
        );
    };
    // --- END OF App.tsx ---


    // --- START OF index.tsx ---
    // React mount disabled to retain static HTML content within #root.
    // --- END OF index.tsx ---

</script>

<!-- Auth modal wiring -->
<script>
  (function () {
    var modal = document.getElementById('authModal');
    var frame = document.getElementById('authFrame');
    var closeBtn = document.getElementById('authClose');
    if (!modal || !frame || !closeBtn) return;

    function openAuth(event) {
      if (event) event.preventDefault();
      var intent = event && event.currentTarget && event.currentTarget.getAttribute('data-auth');
      var src = 'https://www.thebrand.ai/connect/index.php' + (intent === 'signup' ? '?action=register' : '');
      try {
        frame.src = src;
      } catch (e) {}
      modal.classList.remove('hidden');
      document.body.style.overflow = 'hidden';
    }

    Array.prototype.forEach.call(document.querySelectorAll('a[data-auth]'), function (a) {
      a.addEventListener('click', openAuth);
    });

    closeBtn.addEventListener('click', function () {
      modal.classList.add('hidden');
      frame.src = 'about:blank';
      document.body.style.overflow = '';
    });
  })();
</script>

  </body>
</html>
    <!-- Floating Pricing button -->
    <button id="openPricingModal" aria-haspopup="dialog" aria-controls="pricingModal" title="Open Pricing"
      style="position:fixed; right:20px; bottom:20px; z-index:1000; background:#111827; color:#fff; border:none; border-radius:24px; padding:10px 16px; box-shadow:0 6px 18px rgba(0,0,0,0.2); cursor:pointer;">
      Pricing
    </button>

    <!-- Pricing Modal -->
    <div id="pricingModal" role="dialog" aria-modal="true" aria-labelledby="pricingModalTitle" aria-hidden="true"
      style="display:none; position:fixed; inset:0; z-index:1001; background:rgba(0,0,0,0.55);">
      <div id="pricingModalPanel" style="position:relative; margin:5vh auto; width:92vw; max-width:1000px; height:85vh; background:#ffffff; border-radius:14px; box-shadow:0 20px 40px rgba(0,0,0,0.25); overflow:hidden; display:flex; flex-direction:column;">
        <div style="display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid #e5e7eb;">
          <h2 id="pricingModalTitle" style="font-size:16px; font-weight:600; color:#111827;">Pricing & Payment</h2>
          <div style="display:flex; align-items:center; gap:8px;">
            <a href="https://www.thebrand.ai/brandpay/choose" target="_blank" rel="noopener" aria-label="Open pricing in a new tab"
               style="text-decoration:none; font-size:12px; color:#2563eb;">Open in new tab</a>
            <button id="closePricingModal" aria-label="Close Pricing Modal"
              style="background:#111827; color:#fff; border:none; border-radius:8px; padding:8px 10px; cursor:pointer;">Close</button>
          </div>
        </div>
        <div style="flex:1;">
          <iframe id="pricingIframe" title="Choose Payment Method"
                  data-src="https://www.thebrand.ai/brandpay/choose"
                  style="width:100%; height:100%; border:0; background:#f9fafb;"
                  sandbox="allow-forms allow-scripts allow-same-origin allow-popups"
                  referrerpolicy="no-referrer-when-downgrade"></iframe>
        </div>
      </div>
    </div>

    <script>
      (function() {
        var openBtn = document.getElementById('openPricingModal');
        var modal = document.getElementById('pricingModal');
        var panel = document.getElementById('pricingModalPanel');
        var closeBtn = document.getElementById('closePricingModal');
        var iframe = document.getElementById('pricingIframe');

        function openModal() {
          // Lazy-load iframe
          var src = iframe.getAttribute('data-src');
          if (src && iframe.src !== src) {
            iframe.src = src;
          }
          modal.style.display = 'block';
          modal.setAttribute('aria-hidden', 'false');
          // Prevent background scroll
          document.body.dataset.prevOverflow = document.body.style.overflow || '';
          document.body.style.overflow = 'hidden';
          closeBtn.focus();
          window.addEventListener('keydown', onKeyDown);
        }

        function closeModal() {
          modal.style.display = 'none';
          modal.setAttribute('aria-hidden', 'true');
          document.body.style.overflow = document.body.dataset.prevOverflow || '';
          window.removeEventListener('keydown', onKeyDown);
          openBtn.focus();
        }

        function onKeyDown(e) {
          if (e.key === 'Escape') {
            closeModal();
          }
        }

        // Backdrop click closes if clicking outside the panel
        modal.addEventListener('click', function(e) {
          if (!panel.contains(e.target)) {
            closeModal();
          }
        });

        openBtn.addEventListener('click', openModal);
        closeBtn.addEventListener('click', closeModal);

        // Ensure main navigation "Pricing" link opens the modal
        document.addEventListener('click', function(e) {
          var anchor = e.target.closest('a');
          if (!anchor) return;
          var text = (anchor.textContent || '').trim().toLowerCase();
          if (text === 'pricing') {
            e.preventDefault();
            openModal();
          }
        });
      })();
    </script>