PageSourceSearch

https://therapedia.ai/src/components/Resources.tsx

js therapedia.ai collected 2026-10-05 14:12:22 UTC 55,451 bytes, 669 lines download raw bytes

1import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/components/Resources.tsx");import __vite__cjsImport0_react_jsxDevRuntime from "/@fs/home/runner/workspace/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=7d105d5e"; const jsxDEV = __vite__cjsImport0_react_jsxDevRuntime["jsxDEV"];
2import RefreshRuntime from "/@react-refresh";
3const inWebWorker = typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope;
4let prevRefreshReg;
5let prevRefreshSig;
6if (import.meta.hot && !inWebWorker) {
7  if (!window.__vite_plugin_react_preamble_installed__) {
8    throw new Error("@vitejs/plugin-react can't detect preamble. Something is wrong. See https://github.com/vitejs/vite-plugin-react/pull/11#discussion_r430879201");
9  }
10  prevRefreshReg = window.$RefreshReg$;
11  prevRefreshSig = window.$RefreshSig$;
12  window.$RefreshReg$ = (type, id) => {
13    RefreshRuntime.register(type, "/home/runner/workspace/client/src/components/Resources.tsx " + id);
14  };
15  window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
16}
17var _s = $RefreshSig$(), _s2 = $RefreshSig$();
18import { motion } from "/@fs/home/runner/workspace/node_modules/.vite/deps/framer-motion.js?v=7d105d5e";
19import { Card } from "/src/components/ui/card.tsx";
20import {
21  Book,
22  FileText,
23  GraduationCap,
24  Newspaper,
25  PlayCircle,
26  Video,
27  ArrowRight,
28  Clock,
29  Bookmark
30} from "/@fs/home/runner/workspace/node_modules/.vite/deps/lucide-react.js?v=7d105d5e";
31import { Button } from "/src/components/ui/button.tsx";
32import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "/src/components/ui/carousel.tsx";
33import { Badge } from "/src/components/ui/badge.tsx";
34import __vite__cjsImport9_react from "/@fs/home/runner/workspace/node_modules/.vite/deps/react.js?v=7d105d5e"; const useState = __vite__cjsImport9_react["useState"];
35import { itemVariants, buttonHoverAnimation } from "/src/lib/animations.ts";
36const getColorHex = (colorClass) => {
37  if (colorClass.includes("blue")) return "#3b82f6";
38  if (colorClass.includes("purple")) return "#a855f7";
39  if (colorClass.includes("cyan")) return "#06b6d4";
40  if (colorClass.includes("green")) return "#22c55e";
41  if (colorClass.includes("red")) return "#ef4444";
42  if (colorClass.includes("amber")) return "#f59e0b";
43  return "#1f2937";
44};
45const resources = [
46  {
47    title: "Guide to Clinical Documentation",
48    type: "Article",
49    icon: /* @__PURE__ */ jsxDEV(FileText, { className: "w-6 h-6" }, void 0, false, {
50      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
51      lineNumber: 47,
52      columnNumber: 9
53    }, this),
54    description: "Learn best practices for therapy note-taking and documentation.",
55    readTime: "10 min read",
56    category: "Documentation",
57    color: "bg-blue-500",
58    badgeColor: "bg-blue-100 text-blue-600"
59  },
60  {
61    title: "EHR Integration Strategies",
62    type: "Video",
63    icon: /* @__PURE__ */ jsxDEV(Video, { className: "w-6 h-6" }, void 0, false, {
64      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
65      lineNumber: 57,
66      columnNumber: 9
67    }, this),
68    description: "How to seamlessly integrate AI notes with your EHR system.",
69    readTime: "15 min watch",
70    category: "Technical",
71    color: "bg-purple-500",
72    badgeColor: "bg-purple-100 text-purple-600"
73  },
74  {
75    title: "Therapy Note Templates",
76    type: "Guide",
77    icon: /* @__PURE__ */ jsxDEV(Book, { className: "w-6 h-6" }, void 0, false, {
78      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
79      lineNumber: 67,
80      columnNumber: 9
81    }, this),
82    description: "Standardized templates for different therapy modalities.",
83    readTime: "8 min read",
84    category: "Templates",
85    color: "bg-green-500",
86    badgeColor: "bg-green-100 text-green-600"
87  },
88  {
89    title: "HIPAA Compliance Guide",
90    type: "Course",
91    icon: /* @__PURE__ */ jsxDEV(GraduationCap, { className: "w-6 h-6" }, void 0, false, {
92      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
93      lineNumber: 77,
94      columnNumber: 9
95    }, this),
96    description: "Understanding HIPAA requirements in digital note-taking.",
97    readTime: "30 min course",
98    category: "Compliance",
99    color: "bg-red-500",
100    badgeColor: "bg-red-100 text-red-600"
101  },
102  {
103    title: "Latest Updates",
104    type: "News",
105    icon: /* @__PURE__ */ jsxDEV(Newspaper, { className: "w-6 h-6" }, void 0, false, {
106      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
107      lineNumber: 87,
108      columnNumber: 9
109    }, this),
110    description: "Stay updated with the latest features and improvements.",
111    readTime: "5 min read",
112    category: "News",
113    color: "bg-amber-500",
114    badgeColor: "bg-amber-100 text-amber-600"
115  },
116  {
117    title: "Video Tutorials",
118    type: "Video Series",
119    icon: /* @__PURE__ */ jsxDEV(PlayCircle, { className: "w-6 h-6" }, void 0, false, {
120      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
121      lineNumber: 97,
122      columnNumber: 9
123    }, this),
124    description: "Step-by-step guides to using all platform features.",
125    readTime: "45 min series",
126    category: "Tutorial",
127    color: "bg-cyan-500",
128    badgeColor: "bg-cyan-100 text-cyan-600"
129  }
130];
131const ResourceCard = ({ resource, index }) => {
132  _s();
133  const [isHovered, setIsHovered] = useState(false);
134  const getResourceColorHex = (color) => {
135    if (color.includes("blue")) return "#3b82f6";
136    if (color.includes("purple")) return "#a855f7";
137    if (color.includes("cyan")) return "#06b6d4";
138    if (color.includes("green")) return "#22c55e";
139    if (color.includes("red")) return "#ef4444";
140    if (color.includes("amber")) return "#f59e0b";
141    return "#1f2937";
142  };
143  return /* @__PURE__ */ jsxDEV(
144    motion.div,
145    {
146      variants: itemVariants,
147      custom: index,
148      onHoverStart: () => setIsHovered(true),
149      onHoverEnd: () => setIsHovered(false),
150      whileHover: { y: -8 },
151      transition: { type: "spring", stiffness: 300, damping: 20 },
152      className: "h-full",
153      children: /* @__PURE__ */ jsxDEV(Card, { className: "p-6 h-full border shadow-sm hover:shadow-lg transition-all duration-300 overflow-hidden relative", children: [
154        /* @__PURE__ */ jsxDEV(
155          motion.div,
156          {
157            className: `absolute -top-12 -right-12 w-32 h-32 ${resource.color} rounded-full opacity-10 blur-lg`,
158            animate: {
159              scale: isHovered ? 1.5 : 1,
160              opacity: isHovered ? 0.2 : 0.1
161            },
162            transition: { duration: 0.7 }
163          },
164          void 0,
165          false,
166          {
167            fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
168            lineNumber: 132,
169            columnNumber: 9
170          },
171          this
172        ),
173        /* @__PURE__ */ jsxDEV("div", { className: "flex items-start gap-4 mb-4 relative z-10", children: [
174          /* @__PURE__ */ jsxDEV(
175            motion.div,
176            {
177              animate: {
178                rotate: isHovered ? [0, 15, 0] : 0,
179                scale: isHovered ? 1.1 : 1
180              },
181              transition: { duration: 0.6, ease: "easeInOut" },
182              className: `w-12 h-12 ${resource.color} bg-opacity-10 rounded-lg flex items-center justify-center ${resource.color.replace("bg-", "text-")}`,
183              children: resource.icon
184            },
185            void 0,
186            false,
187            {
188              fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
189              lineNumber: 142,
190              columnNumber: 11
191            },
192            this
193          ),
194          /* @__PURE__ */ jsxDEV("div", { children: [
195            /* @__PURE__ */ jsxDEV(Badge, { variant: "secondary", className: `${resource.badgeColor} font-medium mb-1`, children: resource.type }, void 0, false, {
196              fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
197              lineNumber: 153,
198              columnNumber: 13
199            }, this),
200            /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-2 text-sm text-gray-500", children: [
201              /* @__PURE__ */ jsxDEV(Clock, { className: "w-3.5 h-3.5" }, void 0, false, {
202                fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
203                lineNumber: 157,
204                columnNumber: 15
205              }, this),
206              /* @__PURE__ */ jsxDEV("span", { children: resource.readTime }, void 0, false, {
207                fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
208                lineNumber: 158,
209                columnNumber: 15
210              }, this)
211            ] }, void 0, true, {
212              fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
213              lineNumber: 156,
214              columnNumber: 13
215            }, this)
216          ] }, void 0, true, {
217            fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
218            lineNumber: 152,
219            columnNumber: 11
220          }, this)
221        ] }, void 0, true, {
222          fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
223          lineNumber: 141,
224          columnNumber: 9
225        }, this),
226        /* @__PURE__ */ jsxDEV(
227          motion.h3,
228          {
229            className: "text-lg font-semibold mb-2",
230            animate: {
231              x: isHovered ? 3 : 0,
232              color: isHovered ? getResourceColorHex(resource.color) : "#1f2937"
233            },
234            transition: { duration: 0.3 },
235            children: resource.title
236          },
237          void 0,
238          false,
239          {
240            fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
241            lineNumber: 163,
242            columnNumber: 9
243          },
244          this
245        ),
246        /* @__PURE__ */ jsxDEV("p", { className: "text-gray-600 mb-4 relative z-10", children: resource.description }, void 0, false, {
247          fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
248          lineNumber: 174,
249          columnNumber: 9
250        }, this),
251        /* @__PURE__ */ jsxDEV("div", { className: "flex items-center justify-between mt-auto relative z-10", children: [
252          /* @__PURE__ */ jsxDEV(Badge, { variant: "outline", className: "text-gray-500 border-gray-200", children: resource.category }, void 0, false, {
253            fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
254            lineNumber: 177,
255            columnNumber: 11
256          }, this),
257          /* @__PURE__ */ jsxDEV(
258            motion.div,
259            {
260              whileHover: "hover",
261              whileTap: "tap",
262              variants: buttonHoverAnimation,
263              children: /* @__PURE__ */ jsxDEV(
264                Button,
265                {
266                  variant: "ghost",
267                  size: "sm",
268                  className: "group",
269                  children: [
270                    /* @__PURE__ */ jsxDEV("span", { className: "mr-1", children: "Learn More" }, void 0, false, {
271                      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
272                      lineNumber: 191,
273                      columnNumber: 15
274                    }, this),
275                    /* @__PURE__ */ jsxDEV(
276                      motion.div,
277                      {
278                        animate: { x: isHovered ? 3 : 0 },
279                        transition: { duration: 0.2 },
280                        children: /* @__PURE__ */ jsxDEV(ArrowRight, { size: 16, className: `group-hover:text-blue-500` }, void 0, false, {
281                          fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
282                          lineNumber: 196,
283                          columnNumber: 17
284                        }, this)
285                      },
286                      void 0,
287                      false,
288                      {
289                        fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
290                        lineNumber: 192,
291                        columnNumber: 15
292                      },
293                      this
294                    )
295                  ]
296                },
297                void 0,
298                true,
299                {
300                  fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
301                  lineNumber: 186,
302                  columnNumber: 13
303                },
304                this
305              )
306            },
307            void 0,
308            false,
309            {
310              fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
311              lineNumber: 181,
312              columnNumber: 11
313            },
314            this
315          )
316        ] }, void 0, true, {
317          fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
318          lineNumber: 176,
319          columnNumber: 9
320        }, this)
321      ] }, void 0, true, {
322        fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
323        lineNumber: 130,
324        columnNumber: 7
325      }, this)
326    },
327    void 0,
328    false,
329    {
330      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
331      lineNumber: 121,
332      columnNumber: 5
333    },
334    this
335  );
336};
337_s(ResourceCard, "FPQn8a98tPjpohC7NUYORQR8GJE=");
338_c = ResourceCard;
339export default function Resources() {
340  _s2();
341  const [isBookmarked, setIsBookmarked] = useState(false);
342  return /* @__PURE__ */ jsxDEV("section", { id: "resources-section", className: "py-24 px-4 bg-gradient-to-b from-white to-gray-50 relative overflow-hidden", children: [
343    /* @__PURE__ */ jsxDEV(
344      motion.div,
345      {
346        initial: { opacity: 0, scale: 0.8 },
347        animate: { opacity: 0.05, scale: 1 },
348        transition: { duration: 1.5 },
349        className: "absolute -right-20 top-40 w-80 h-80 bg-gradient-to-br from-blue-300 to-cyan-300 rounded-full blur-3xl"
350      },
351      void 0,
352      false,
353      {
354        fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
355        lineNumber: 211,
356        columnNumber: 7
357      },
358      this
359    ),
360    /* @__PURE__ */ jsxDEV("div", { className: "container mx-auto relative z-10", children: [
361      /* @__PURE__ */ jsxDEV("div", { className: "text-center max-w-3xl mx-auto mb-16", children: [
362        /* @__PURE__ */ jsxDEV(
363          motion.h2,
364          {
365            initial: { opacity: 0, y: 20 },
366            whileInView: { opacity: 1, y: 0 },
367            transition: { duration: 0.6 },
368            viewport: { once: true },
369            className: "text-4xl font-bold mb-4",
370            children: [
371              /* @__PURE__ */ jsxDEV("span", { className: "bg-clip-text text-transparent bg-gradient-to-r from-blue-500 to-cyan-400", children: "Resources" }, void 0, false, {
372                fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
373                lineNumber: 227,
374                columnNumber: 13
375              }, this),
376              /* @__PURE__ */ jsxDEV("span", { className: "text-gray-900", children: " & Learning Hub" }, void 0, false, {
377                fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
378                lineNumber: 230,
379                columnNumber: 13
380              }, this)
381            ]
382          },
383          void 0,
384          true,
385          {
386            fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
387            lineNumber: 220,
388            columnNumber: 11
389          },
390          this
391        ),
392        /* @__PURE__ */ jsxDEV(
393          motion.p,
394          {
395            initial: { opacity: 0, y: 20 },
396            whileInView: { opacity: 1, y: 0 },
397            transition: { duration: 0.6, delay: 0.2 },
398            viewport: { once: true },
399            className: "text-xl text-gray-600 mb-8",
400            children: "Explore our comprehensive library of guides, tutorials, and best practices to enhance your clinical documentation workflow."
401          },
402          void 0,
403          false,
404          {
405            fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
406            lineNumber: 232,
407            columnNumber: 11
408          },
409          this
410        )
411      ] }, void 0, true, {
412        fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
413        lineNumber: 219,
414        columnNumber: 9
415      }, this),
416      /* @__PURE__ */ jsxDEV(
417        motion.div,
418        {
419          initial: { opacity: 0, y: 20 },
420          whileInView: { opacity: 1, y: 0 },
421          transition: { duration: 0.6 },
422          viewport: { once: true },
423          className: "mb-16",
424          children: /* @__PURE__ */ jsxDEV(
425            Carousel,
426            {
427              opts: {
428                align: "start",
429                loop: true
430              },
431              className: "w-full",
432              children: [
433                /* @__PURE__ */ jsxDEV(CarouselContent, { className: "-ml-4", children: resources.map(
434                  (resource, index) => /* @__PURE__ */ jsxDEV(CarouselItem, { className: "pl-4 md:basis-1/2 lg:basis-1/3", children: /* @__PURE__ */ jsxDEV(ResourceCard, { resource, index }, void 0, false, {
435                    fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
436                    lineNumber: 262,
437                    columnNumber: 19
438                  }, this) }, index, false, {
439                    fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
440                    lineNumber: 261,
441                    columnNumber: 15
442                  }, this)
443                ) }, void 0, false, {
444                  fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
445                  lineNumber: 259,
446                  columnNumber: 13
447                }, this),
448                /* @__PURE__ */ jsxDEV("div", { className: "hidden md:flex items-center justify-center mt-8 gap-2", children: [
449                  /* @__PURE__ */ jsxDEV(
450                    motion.div,
451                    {
452                      whileHover: { scale: 1.05 },
453                      whileTap: { scale: 0.95 },
454                      children: /* @__PURE__ */ jsxDEV(CarouselPrevious, { className: "position-relative border-blue-200 hover:bg-blue-50 hover:border-blue-300" }, void 0, false, {
455                        fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
456                        lineNumber: 271,
457                        columnNumber: 17
458                      }, this)
459                    },
460                    void 0,
461                    false,
462                    {
463                      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
464                      lineNumber: 267,
465                      columnNumber: 15
466                    },
467                    this
468                  ),
469                  /* @__PURE__ */ jsxDEV(
470                    motion.div,
471                    {
472                      whileHover: { scale: 1.05 },
473                      whileTap: { scale: 0.95 },
474                      children: /* @__PURE__ */ jsxDEV(CarouselNext, { className: "position-relative border-blue-200 hover:bg-blue-50 hover:border-blue-300" }, void 0, false, {
475                        fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
476                        lineNumber: 277,
477                        columnNumber: 17
478                      }, this)
479                    },
480                    void 0,
481                    false,
482                    {
483                      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
484                      lineNumber: 273,
485                      columnNumber: 15
486                    },
487                    this
488                  )
489                ] }, void 0, true, {
490                  fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
491                  lineNumber: 266,
492                  columnNumber: 13
493                }, this)
494              ]
495            },
496            void 0,
497            true,
498            {
499              fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
500              lineNumber: 252,
501              columnNumber: 11
502            },
503            this
504          )
505        },
506        void 0,
507        false,
508        {
509          fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
510          lineNumber: 245,
511          columnNumber: 9
512        },
513        this
514      ),
515      /* @__PURE__ */ jsxDEV(
516        motion.div,
517        {
518          initial: { opacity: 0, y: 20 },
519          whileInView: { opacity: 1, y: 0 },
520          transition: { duration: 0.6 },
521          viewport: { once: true },
522          className: "text-center",
523          children: [
524            /* @__PURE__ */ jsxDEV(
525              motion.div,
526              {
527                whileHover: "hover",
528                whileTap: "tap",
529                variants: buttonHoverAnimation,
530                children: /* @__PURE__ */ jsxDEV("a", { href: "https://transcribe.therapedia.pro/resources", target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ jsxDEV(
531                  Button,
532                  {
533                    size: "lg",
534                    className: "bg-gradient-to-r from-blue-500 to-cyan-400 text-white hover:from-blue-600 hover:to-cyan-500 shadow-lg hover:shadow-xl transition-all duration-300",
535                    children: [
536                      /* @__PURE__ */ jsxDEV("span", { className: "mr-2", children: "Browse All Resources" }, void 0, false, {
537                        fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
538                        lineNumber: 301,
539                        columnNumber: 17
540                      }, this),
541                      /* @__PURE__ */ jsxDEV(ArrowRight, { size: 18 }, void 0, false, {
542                        fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
543                        lineNumber: 302,
544                        columnNumber: 17
545                      }, this)
546                    ]
547                  },
548                  void 0,
549                  true,
550                  {
551                    fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
552                    lineNumber: 297,
553                    columnNumber: 15
554                  },
555                  this
556                ) }, void 0, false, {
557                  fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
558                  lineNumber: 296,
559                  columnNumber: 13
560                }, this)
561              },
562              void 0,
563              false,
564              {
565                fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
566                lineNumber: 291,
567                columnNumber: 11
568              },
569              this
570            ),
571            /* @__PURE__ */ jsxDEV(
572              motion.div,
573              {
574                initial: { opacity: 0 },
575                whileInView: { opacity: 1 },
576                transition: { delay: 0.8 },
577                viewport: { once: true },
578                className: "mt-8 flex items-center justify-center gap-2 text-gray-500",
579                children: /* @__PURE__ */ jsxDEV(
580                  Button,
581                  {
582                    variant: "ghost",
583                    size: "sm",
584                    className: "text-gray-500 hover:text-blue-500",
585                    onClick: () => setIsBookmarked(!isBookmarked),
586                    children: [
587                      /* @__PURE__ */ jsxDEV(
588                        Bookmark,
589                        {
590                          className: `mr-1 h-4 w-4 ${isBookmarked ? "fill-blue-500 text-blue-500" : ""}`
591                        },
592                        void 0,
593                        false,
594                        {
595                          fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
596                          lineNumber: 320,
597                          columnNumber: 15
598                        },
599                        this
600                      ),
601                      /* @__PURE__ */ jsxDEV("span", { children: isBookmarked ? "Bookmarked" : "Bookmark for later" }, void 0, false, {
602                        fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
603                        lineNumber: 323,
604                        columnNumber: 15
605                      }, this)
606                    ]
607                  },
608                  void 0,
609                  true,
610                  {
611                    fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
612                    lineNumber: 314,
613                    columnNumber: 13
614                  },
615                  this
616                )
617              },
618              void 0,
619              false,
620              {
621                fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
622                lineNumber: 307,
623                columnNumber: 11
624              },
625              this
626            )
627          ]
628        },
629        void 0,
630        true,
631        {
632          fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
633          lineNumber: 284,
634          columnNumber: 9
635        },
636        this
637      )
638    ] }, void 0, true, {
639      fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
640      lineNumber: 218,
641      columnNumber: 7
642    }, this)
643  ] }, void 0, true, {
644    fileName: "/home/runner/workspace/client/src/components/Resources.tsx",
645    lineNumber: 210,
646    columnNumber: 5
647  }, this);
648}
649_s2(Resources, "HFurTH7sY6RQgkzgOadQX9lUkTY=");
650_c2 = Resources;
651var _c, _c2;
652$RefreshReg$(_c, "ResourceCard");
653$RefreshReg$(_c2, "Resources");
654if (import.meta.hot && !inWebWorker) {
655  window.$RefreshReg$ = prevRefreshReg;
656  window.$RefreshSig$ = prevRefreshSig;
657}
658if (import.meta.hot && !inWebWorker) {
659  RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {
660    RefreshRuntime.registerExportsForReactRefresh("/home/runner/workspace/client/src/components/Resources.tsx", currentExports);
661    import.meta.hot.accept((nextExports) => {
662      if (!nextExports) return;
663      const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate("/home/runner/workspace/client/src/components/Resources.tsx", currentExports, nextExports);
664      if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);
665    });
666  });
667}
668
669//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6IkFBOENVOzs7Ozs7Ozs7Ozs7Ozs7OztBQTdDVixTQUFTQSxjQUFjO0FBQ3ZCLFNBQVNDLFlBQVk7QUFDckI7QUFBQSxFQUNFQztBQUFBQSxFQUNBQztBQUFBQSxFQUNBQztBQUFBQSxFQUNBQztBQUFBQSxFQUNBQztBQUFBQSxFQUNBQztBQUFBQSxFQUNBQztBQUFBQSxFQUNBQztBQUFBQSxFQUNBQztBQUFBQSxPQUNLO0FBQ1AsU0FBU0MsY0FBYztBQUN2QixTQUFTQyxVQUFVQyxpQkFBaUJDLGNBQWNDLGNBQWNDLHdCQUF3QjtB
669QUN4RixTQUFTQyxhQUFhO0FBQ3RCLFNBQVNDLGdCQUFnQjtBQUN6QixTQUE0QkMsY0FBY0MsNEJBQTRCO0FBR3RFLE1BQU1DLGNBQWNBLENBQUNDLGVBQStCO0FBQ2xELE1BQUlBLFdBQVdDLFNBQVMsTUFBTSxFQUFHLFFBQU87QUFDeEMsTUFBSUQsV0FBV0MsU0FBUyxRQUFRLEVBQUcsUUFBTztBQUMxQyxNQUFJRCxXQUFXQyxTQUFTLE1BQU0sRUFBRyxRQUFPO0FBQ3hDLE1BQUlELFdBQVdDLFNBQVMsT0FBTyxFQUFHLFFBQU87QUFDekMsTUFBSUQsV0FBV0MsU0FBUyxLQUFLLEVBQUcsUUFBTztBQUN2QyxNQUFJRCxXQUFXQyxTQUFTLE9BQU8sRUFBRyxRQUFPO0FBQ3pDLFNBQU87QUFDVDtBQWFBLE1BQU1DLFlBQTRCO0FBQUEsRUFDaEM7QUFBQSxJQUNFQyxPQUFPO0FBQUEsSUFDUEMsTUFBTTtBQUFBLElBQ05DLE1BQU0sdUJBQUMsWUFBUyxXQUFVLGFBQXBCO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FBNkI7QUFBQSxJQUNuQ0MsYUFBYTtBQUFBLElBQ2JDLFVBQVU7QUFBQSxJQUNWQyxVQUFVO0FBQUEsSUFDVkMsT0FBTztBQUFBLElBQ1BDLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0VQLE9BQU87QUFBQSxJQUNQQyxNQUFNO0FBQUEsSUFDTkMsTUFBTSx1QkFBQyxTQUFNLFdBQVUsYUFBakI7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQUEwQjtBQUFBLElBQ2hDQyxhQUFhO0FBQUEsSUFDYkMsVUFBVTtBQUFBLElBQ1ZDLFVBQVU7QUFBQSxJQUNWQyxPQUFPO0FBQUEsSUFDUEMsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRVAsT0FBTztBQUFBLElBQ1BDLE1BQU07QUFBQSxJQUNOQyxNQUFNLHVCQUFDLFFBQUssV0FBVSxhQUFoQjtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBQXlCO0FBQUEsSUFDL0JDLGFBQWE7QUFBQSxJQUNiQyxVQUFVO0FBQUEsSUFDVkMsV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FBO0FBQUEsb0JBQ0MsU0FBUTtBQUFBLG9CQUNSLE1BQUs7QUFBQSxvQkFDTCxXQUFVO0FBQUEsb0JBQ1YsU0FBUyxNQUFNRCxnQkFBZ0IsQ0FBQ0QsWUFBWTtBQUFBLG9CQUU1QztBQUFBO0FBQUEsd0JBQUM7QUFBQTtBQUFBLDBCQUNDLFdBQVcsZ0JBQWdCQSxlQUFlLGdDQUFnQyxFQUFFO0FBQUE7QUFBQSx3QkFEOUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHNCQUNpRjtBQUFBLHNCQUVqRix1QkFBQyxVQUFNQSx5QkFBZSxlQUFlLHdCQUFyQztBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQUEwRDtBQUFBO0FBQUE7QUFBQSxrQkFUNUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQVVBO0FBQUE7QUFBQSxjQWpCRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFrQkE7QUFBQTtBQUFBO0FBQUEsUUF6Q0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BMENBO0FBQUEsU0E1R0Y7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQTZHQTtBQUFBLE9BckhGO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FzSEE7QUFFSjtBQUFDRCxJQTVIdUJELFdBQVM7QUFBQVMsTUFBVFQ7QUFBUyxJQUFBRCxJQUFBVTtBQUFBQyxhQUFBWCxJQUFBO0FBQUFXLGFBQUFELEtBQUEiLCJuYW1lcyI6WyJtb3Rpb24iLCJDYXJkIiwiQm9vayIsIkZpbGVUZXh0IiwiR3JhZHVhdGlvbkNhcCIsIk5ld3NwYXBlciIsIlBsYXlDaXJjbGUiLCJWaWRlbyIsIkFycm93UmlnaHQiLCJDbG9jayIsIkJvb2ttYXJrIiwiQnV0dG9uIiwiQ2Fyb3VzZWwiLCJDYXJvdXNlbENvbnRlbnQiLCJDYXJvdXNlbEl0ZW0iLCJDYXJvdXNlbE5leHQiLCJDYXJvdXNlbFByZXZpb3VzIiwiQmFkZ2UiLCJ1c2VTdGF0ZSIsIml0ZW1WYXJpYW50cyIsImJ1dHRvbkhvdmVyQW5pbWF0aW9uIiwiZ2V0Q29sb3JIZXgiLCJjb2xvckNsYXNzIiwiaW5jbHVkZXMiLCJyZXNvdXJjZXMiLCJ0aXRsZSIsInR5cGUiLCJpY29uIiwiZGVzY3JpcHRpb24iLCJyZWFkVGltZSIsImNhdGVnb3J5IiwiY29sb3IiLCJiYWRnZUNvbG9yIiwiUmVzb3VyY2VDYXJkIiwicmVzb3VyY2UiLCJpbmRleCIsIl9zIiwiaXNIb3ZlcmVkIiwic2V0SXNIb3ZlcmVkIiwiZ2V0UmVzb3VyY2VDb2xvckhleCIsInkiLCJzdGlmZm5lc3MiLCJkYW1waW5nIiwic2NhbGUiLCJvcGFjaXR5IiwiZHVyYXRpb24iLCJyb3RhdGUiLCJlYXNlIiwicmVwbGFjZSIsIngiLCJfYyIsIlJlc291cmNlcyIsIl9zMiIsImlzQm9va21hcmtlZCIsInNldElzQm9va21hcmtlZCIsIm9uY2UiLCJkZWxheSIsImFsaWduIiwibG9vcCIsIm1hcCIsIl9jMiIsIiRSZWZyZXNoUmVnJCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJSZXNvdXJjZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSBcImZyYW1lci1tb3Rpb25cIjtcbmltcG9ydCB7IENhcmQgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2NhcmRcIjtcbmltcG9ydCB7XG4gIEJvb2ssXG4gIEZpbGVUZXh0LFxuICBHcmFkdWF0aW9uQ2FwLFxuICBOZXdzcGFwZXIsXG4gIFBsYXlDaXJjbGUsXG4gIFZpZGVvLFxuICBBcnJvd1JpZ2h0LFxuICBDbG9jayxcbiAgQm9va21hcmssXG59IGZyb20gXCJsdWNpZGUtcmVhY3RcIjtcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvYnV0dG9uXCI7XG5pbXBvcnQgeyBDYXJvdXNlbCwgQ2Fyb3VzZWxDb250ZW50LCBDYXJvdXNlbEl0ZW0sIENhcm91c2VsTmV4dCwgQ2Fyb3VzZWxQcmV2aW91cyB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvY2Fyb3VzZWxcIjtcbmltcG9ydCB7IEJhZGdlIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9iYWRnZVwiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbnRhaW5lclZhcmlhbnRzLCBpdGVtVmFyaWFudHMsIGJ1dHRvbkhvdmVyQW5pbWF0aW9uIH0gZnJvbSBcIkAvbGliL2FuaW1hdGlvbnNcIjtcblxuLy8gRnVuY3Rpb24gdG8gY29udmVydCBUYWlsd2luZCBjb2xvciBjbGFzc2VzIHRvIGhleCB2YWx1ZXNcbmNvbnN0IGdldENvbG9ySGV4ID0gKGNvbG9yQ2xhc3M6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmIChjb2xvckNsYXNzLmluY2x1ZGVzKCdibHVlJykpIHJldHVybiAnIzNiODJmNic7ICAvLyBibHVlLTUwMFxuICBpZiAoY29sb3JDbGFzcy5pbmNsdWRlcygncHVycGxlJykpIHJldHVybiAnI2E4NTVmNyc7ICAvLyBwdXJwbGUtNTAwXG4gIGlmIChjb2xvckNsYXNzLmluY2x1ZGVzKCdjeWFuJykpIHJldHVybiAnIzA2YjZkNCc7ICAvLyBjeWFuLTUwMFxuICBpZiAoY29sb3JDbGFzcy5pbmNsdWRlcygnZ3JlZW4nKSkgcmV0dXJuICcjMjJjNTVlJzsgIC8vIGdyZWVuLTUwMFxuICBpZiAoY29sb3JDbGFzcy5pbmNsdWRlcygncmVkJykpIHJldHVybiAnI2VmNDQ0NCc7ICAvLyByZWQtNTAwXG4gIGlmIChjb2xvckNsYXNzLmluY2x1ZGVzKCdhbWJlcicpKSByZXR1cm4gJyNmNTllMGInOyAgLy8gYW1iZXItNTAwXG4gIHJldHVybiAnIzFmMjkzNyc7ICAvLyBEZWZhdWx0IGdyYXktOTAwXG59O1xuXG50eXBlIFJlc291cmNlVHlwZSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBpY29uOiBSZWFjdC5SZWFjdE5vZGU7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRUaW1lOiBzdHJpbmc7XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGJhZGdlQ29sb3I6IHN0cmluZztcbn07XG5cbmNvbnN0IHJlc291cmNlczogUmVzb3VyY2VUeXBlW10gPSBbXG4gIHtcbiAgICB0aXRsZTogXCJHdWlkZSB0byBDbGluaWNhbCBEb2N1bWVudGF0aW9uXCIsXG4gICAgdHlwZTogXCJBcnRpY2xlXCIsXG4gICAgaWNvbjogPEZpbGVUZXh0IGNsYXNzTmFtZT1cInctNiBoLTZcIiAvPixcbiAgICBkZXNjcmlwdGlvbjogXCJMZWFybiBiZXN0IHByYWN0aWNlcyBmb3IgdGhlcmFweSBub3RlLXRha2luZyBhbmQgZG9jdW1lbnRhdGlvbi5cIixcbiAgICByZWFkVGltZTogXCIxMCBtaW4gcmVhZFwiLFxuICAgIGNhdGVnb3J5OiBcIkRvY3VtZW50YXRpb25cIixcbiAgICBjb2xvcjogXCJiZy1ibHVlLTUwMFwiLFxuICAgIGJhZGdlQ29sb3I6IFwiYmctYmx1ZS0xMDAgdGV4dC1ibHVlLTYwMFwiLFxuICB9LFxuICB7XG4gICAgdGl0bGU6IFwiRUhSIEludGVncmF0aW9uIFN0cmF0ZWdpZXNcIixcbiAgICB0eX
669BlOiBcIlZpZGVvXCIsXG4gICAgaWNvbjogPFZpZGVvIGNsYXNzTmFtZT1cInctNiBoLTZcIiAvPixcbiAgICBkZXNjcmlwdGlvbjogXCJIb3cgdG8gc2VhbWxlc3NseSBpbnRlZ3JhdGUgQUkgbm90ZXMgd2l0aCB5b3VyIEVIUiBzeXN0ZW0uXCIsXG4gICAgcmVhZFRpbWU6IFwiMTUgbWluIHdhdGNoXCIsXG4gICAgY2F0ZWdvcnk6IFwiVGVjaG5pY2FsXCIsXG4gICAgY29sb3I6IFwiYmctcHVycGxlLTUwMFwiLFxuICAgIGJhZGdlQ29sb3I6IFwiYmctcHVycGxlLTEwMCB0ZXh0LXB1cnBsZS02MDBcIixcbiAgfSxcbiAge1xuICAgIHRpdGxlOiBcIlRoZXJhcHkgTm90ZSBUZW1wbGF0ZXNcIixcbiAgICB0eXBlOiBcIkd1aWRlXCIsXG4gICAgaWNvbjogPEJvb2sgY2xhc3NOYW1lPVwidy02IGgtNlwiIC8+LFxuICAgIGRlc2NyaXB0aW9uOiBcIlN0YW5kYXJkaXplZCB0ZW1wbGF0ZXMgZm9yIGRpZmZlcmVudCB0aGVyYXB5IG1vZGFsaXRpZXMuXCIsXG4gICAgcmVhZFRpbWU6IFwiOCBtaW4gcmVhZFwiLFxuICAgIGNhdGVnb3J5OiBcIlRlbXBsYXRlc1wiLFxuICAgIGNvbG9yOiBcImJnLWdyZWVuLTUwMFwiLFxuICAgIGJhZGdlQ29sb3I6IFwiYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tNjAwXCIsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogXCJISVBBQSBDb21wbGlhbmNlIEd1aWRlXCIsXG4gICAgdHlwZTogXCJDb3Vyc2VcIixcbiAgICBpY29uOiA8R3JhZHVhdGlvbkNhcCBjbGFzc05hbWU9XCJ3LTYgaC02XCIgLz4sXG4gICAgZGVzY3JpcHRpb246IFwiVW5kZXJzdGFuZGluZyBISVBBQSByZXF1aXJlbWVudHMgaW4gZGlnaXRhbCBub3RlLXRha2luZy5cIixcbiAgICByZWFkVGltZTogXCIzMCBtaW4gY291cnNlXCIsXG4gICAgY2F0ZWdvcnk6IFwiQ29tcGxpYW5jZVwiLFxuICAgIGNvbG9yOiBcImJnLXJlZC01MDBcIixcbiAgICBiYWRnZUNvbG9yOiBcImJnLXJlZC0xMDAgdGV4dC1yZWQtNjAwXCIsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogXCJMYXRlc3QgVXBkYXRlc1wiLFxuICAgIHR5cGU6IFwiTmV3c1wiLFxuICAgIGljb246IDxOZXdzcGFwZXIgY2xhc3NOYW1lPVwidy02IGgtNlwiIC8+LFxuICAgIGRlc2NyaXB0aW9uOiBcIlN0YXkgdXBkYXRlZCB3aXRoIHRoZSBsYXRlc3QgZmVhdHVyZXMgYW5kIGltcHJvdmVtZW50cy5cIixcbiAgICByZWFkVGltZTogXCI1IG1pbiByZWFkXCIsXG4gICAgY2F0ZWdvcnk6IFwiTmV3c1wiLFxuICAgIGNvbG9yOiBcImJnLWFtYmVyLTUwMFwiLFxuICAgIGJhZGdlQ29sb3I6IFwiYmctYW1iZXItMTAwIHRleHQtYW1iZXItNjAwXCIsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogXCJWaWRlbyBUdXRvcmlhbHNcIixcbiAgICB0eXBlOiBcIlZpZGVvIFNlcmllc1wiLFxuICAgIGljb246IDxQbGF5Q2lyY2xlIGNsYXNzTmFtZT1cInctNiBoLTZcIiAvPixcbiAgICBkZXNjcmlwdGlvbjogXCJTdGVwLWJ5LXN0ZXAgZ3VpZGVzIHRvIHVzaW5nIGFsbCBwbGF0Zm9ybSBmZWF0dXJlcy5cIixcbiAgICByZWFkVGltZTogXCI0NSBtaW4gc2VyaWVzXCIsXG4gICAgY2F0ZWdvcnk6IFwiVHV0b3JpYWxcIixcbiAgICBjb2xvcjogXCJiZy1jeWFuLTUwMFwiLFxuICAgIGJhZGdlQ29sb3I6IFwiYmctY3lhbi0xMDAgdGV4dC1jeWFuLTYwMFwiLFxuICB9LFxuXTtcblxuY29uc3QgUmVzb3VyY2VDYXJkID0gKHsgcmVzb3VyY2UsIGluZGV4IH06IHsgcmVzb3VyY2U6IFJlc291cmNlVHlwZTsgaW5kZXg6IG51bWJlciB9KSA9PiB7XG4gIGNvbnN0IFtpc0hvdmVyZWQsIHNldElzSG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIFxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IGNvbG9yIGhleCBiYXNlZCBvbiByZXNvdXJjZSBjb2xvclxuICBjb25zdCBnZXRSZXNvdXJjZUNvbG9ySGV4ID0gKGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgIGlmIChjb2xvci5pbmNsdWRlcygnYmx1ZScpKSByZXR1cm4gJyMzYjgyZjYnO1xuICAgIGlmIChjb2xvci5pbmNsdWRlcygncHVycGxlJykpIHJldHVybiAnI2E4NTVmNyc7XG4gICAgaWYgKGNvbG9yLmluY2x1ZGVzKCdjeWFuJykpIHJldHVybiAnIzA2YjZkNCc7XG4gICAgaWYgKGNvbG9yLmluY2x1ZGVzKCdncmVlbicpKSByZXR1cm4gJyMyMmM1NWUnO1xuICAgIGlmIChjb2xvci5pbmNsdWRlcygncmVkJykpIHJldHVybiAnI2VmNDQ0NCc7XG4gICAgaWYgKGNvbG9yLmluY2x1ZGVzKCdhbWJlcicpKSByZXR1cm4gJyNmNTllMGInO1xuICAgIHJldHVybiAnIzFmMjkzNyc7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8bW90aW9uLmRpdlxuICAgICAgdmFyaWFudHM9e2l0ZW1WYXJpYW50c31cbiAgICAgIGN1c3RvbT17aW5kZXh9XG4gICAgICBvbkhvdmVyU3RhcnQ9eygpID0+IHNldElzSG92ZXJlZCh0cnVlKX1cbiAgICAgIG9uSG92ZXJFbmQ9eygpID0+IHNldElzSG92ZXJlZChmYWxzZSl9XG4gICAgICB3aGlsZUhvdmVyPXt7IHk6IC04IH19XG4gICAgICB0cmFuc2l0aW9uPXt7IHR5cGU6IFwic3ByaW5nXCIsIHN0aWZmbmVzczogMzAwLCBkYW1waW5nOiAyMCB9fVxuICAgICAgY2xhc3NOYW1lPVwiaC1mdWxsXCJcbiAgICA+XG4gICAgICA8Q2FyZCBjbGFzc05hbWU9XCJwLTYgaC1mdWxsIGJvcmRlciBzaGFkb3ctc20gaG92ZXI6c2hhZG93LWxnIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBvdmVyZmxvdy1oaWRkZW4gcmVsYXRpdmVcIj5cbiAgICAgICAgey8qIERlY29yYXRpdmUgY29ybmVyIGJsdXIgZWZmZWN0ICovfVxuICAgICAgICA8bW90aW9uLmRpdiBcbiAgICAgICAgICBjbGFzc05hbWU9e2BhYnNvbHV0ZSAtdG9wLTEyIC1yaWdodC0xMiB3LTMyIGgtMzIgJHtyZXNvdXJjZS5jb2xvcn0gcm91bmRlZC1mdWxsIG9wYWNpdHktMTAgYmx1ci1sZ2B9XG4gICAgICAgICAgYW5pbWF0ZT17eyBcbiAgICAgICAgICAgIHNjYWxlOiBpc0hvdmVyZWQgPyAxLjUgOiAxLFxuICAgICAgICAgICAgb3BhY2l0eTogaXNIb3ZlcmVkID8gMC4yIDogMC4xXG4gICAgICAgICAgfX1cbiAgICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjcgfX1cbiAgICAgICAgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQgZ2FwLTQgbWItNCByZWxhdGl2ZSB6LTEwXCI+XG4gICAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgICBhbmltYXRlPXt7IFxuICAgICAgICAgICAgICByb3RhdGU6IGlzSG92ZXJlZCA/IFswLCAxNSwgMF0gOiAwLFxuICAgICAgICAgICAgICBzY2FsZTogaXNIb3ZlcmVkID8gMS4xIDogMSBcbiAgICAgICAgICAgI
669H19XG4gICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjYsIGVhc2U6IFwiZWFzZUluT3V0XCIgfX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17YHctMTIgaC0xMiAke3Jlc291cmNlLmNvbG9yfSBiZy1vcGFjaXR5LTEwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgJHtyZXNvdXJjZS5jb2xvci5yZXBsYWNlKCdiZy0nLCAndGV4dC0nKX1gfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtyZXNvdXJjZS5pY29ufVxuICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPEJhZGdlIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBjbGFzc05hbWU9e2Ake3Jlc291cmNlLmJhZGdlQ29sb3J9IGZvbnQtbWVkaXVtIG1iLTFgfT5cbiAgICAgICAgICAgICAge3Jlc291cmNlLnR5cGV9XG4gICAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNtIHRleHQtZ3JheS01MDBcIj5cbiAgICAgICAgICAgICAgPENsb2NrIGNsYXNzTmFtZT1cInctMy41IGgtMy41XCIgLz5cbiAgICAgICAgICAgICAgPHNwYW4+e3Jlc291cmNlLnJlYWRUaW1lfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bW90aW9uLmgzIFxuICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi0yXCJcbiAgICAgICAgICBhbmltYXRlPXt7IFxuICAgICAgICAgICAgeDogaXNIb3ZlcmVkID8gMyA6IDAsXG4gICAgICAgICAgICBjb2xvcjogaXNIb3ZlcmVkID8gZ2V0UmVzb3VyY2VDb2xvckhleChyZXNvdXJjZS5jb2xvcikgOiAnIzFmMjkzNycgXG4gICAgICAgICAgfX1cbiAgICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjMgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHtyZXNvdXJjZS50aXRsZX1cbiAgICAgICAgPC9tb3Rpb24uaDM+XG4gICAgICAgIFxuICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwIG1iLTQgcmVsYXRpdmUgei0xMFwiPntyZXNvdXJjZS5kZXNjcmlwdGlvbn08L3A+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtdC1hdXRvIHJlbGF0aXZlIHotMTBcIj5cbiAgICAgICAgICA8QmFkZ2UgdmFyaWFudD1cIm91dGxpbmVcIiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNTAwIGJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICAgICAge3Jlc291cmNlLmNhdGVnb3J5fVxuICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgXG4gICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgIHdoaWxlSG92ZXI9XCJob3ZlclwiXG4gICAgICAgICAgICB3aGlsZVRhcD1cInRhcFwiXG4gICAgICAgICAgICB2Y
669XJpYW50cz17YnV0dG9uSG92ZXJBbmltYXRpb259XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCIgXG4gICAgICAgICAgICAgIHNpemU9XCJzbVwiIFxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJncm91cFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm1yLTFcIj5MZWFybiBNb3JlPC9zcGFuPlxuICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgeDogaXNIb3ZlcmVkID8gMyA6IDAgfX1cbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjIgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxBcnJvd1JpZ2h0IHNpemU9ezE2fSBjbGFzc05hbWU9e2Bncm91cC1ob3Zlcjp0ZXh0LWJsdWUtNTAwYH0gLz5cbiAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvQ2FyZD5cbiAgICA8L21vdGlvbi5kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSZXNvdXJjZXMoKSB7XG4gIGNvbnN0IFtpc0Jvb2ttYXJrZWQsIHNldElzQm9va21hcmtlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8c2VjdGlvbiBpZD1cInJlc291cmNlcy1zZWN0aW9uXCIgY2xhc3NOYW1lPVwicHktMjQgcHgtNCBiZy1ncmFkaWVudC10by1iIGZyb20td2hpdGUgdG8tZ3JheS01MCByZWxhdGl2ZSBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIDxtb3Rpb24uZGl2IFxuICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjggfX1cbiAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAwLjA1LCBzY2FsZTogMSB9fVxuICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAxLjUgfX1cbiAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgLXJpZ2h0LTIwIHRvcC00MCB3LTgwIGgtODAgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1ibHVlLTMwMCB0by1jeWFuLTMwMCByb3VuZGVkLWZ1bGwgYmx1ci0zeGxcIlxuICAgICAgLz5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byByZWxhdGl2ZSB6LTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgbWF4LXctM3hsIG14LWF1dG8gbWItMTZcIj5cbiAgICAgICAgICA8bW90aW9uLmgyXG4gICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDIwIH19XG4gICAgICAgICAgICB3aGlsZUluVmlldz17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjYgfX1cbiAgICAgICAgICAgIHZpZXdwb3J0PXt7IG9uY2U6IHRydWUgfX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtNHhsIGZvbnQtYm9sZCBtYi00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJiZy1jbGlwLXRleHQgdGV4dC10cmFuc3BhcmVudCBiZy1ncmFkaWVudC10by1yIGZyb20tYmx1ZS01MDAgdG8tY3lhbi00MDBcIj5cbiAgICAgICAgICAgICAgUmVzb3VyY2VzXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktOTAwXCI+ICYgTGVhcm5pbmcgSHViPC9zcGFuPlxuICAgICAgICAgIDwvbW90aW9uLmgyPlxuICAgICAgICAgIDxtb3Rpb24ucFxuICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCB5OiAyMCB9fVxuICAgICAgICAgICAgd2hpbGVJblZpZXc9e3sgb3BhY2l0eTogMSwgeTogMCB9fVxuICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkdXJhdGlvbjogMC42LCBkZWxheTogMC4yIH19XG4gICAgICAgICAgICB2aWV3cG9ydD17eyBvbmNlOiB0cnVlIH19XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXhsIHRleHQtZ3JheS02MDAgbWItOFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgRXhwbG9yZSBvdXIgY29tcHJlaGVuc2l2ZSBsaWJyYXJ5IG9mIGd1aWRlcywgdHV0b3JpYWxzLCBhbmQgYmVzdCBwcmFjdGljZXNcbiAgICAgICAgICAgIHRvIGVuaGFuY2UgeW91ciBjbGluaWNhbCBkb2N1bWVudGF0aW9uIHdvcmtmbG93LlxuICAgICAgICAgIDwvbW90aW9uLnA+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHsvKiBGZWF0dXJlZCBSZXNvdXJjZXMgQ2Fyb3VzZWwgKi99XG4gICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCB5OiAyMCB9fVxuICAgICAgICAgIHdoaWxlSW5WaWV3PXt7IG9wYWNpdHk6IDEsIHk6IDAgfX1cbiAgICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjYgfX1cbiAgICAgICAgICB2aWV3cG9ydD17eyBvbmNlOiB0cnVlIH19XG4gICAgICAgICAgY2xhc3NOYW1lPVwibWItMTZcIlxuICAgICAgICA+XG4gICAgICAgICAgPENhcm91c2VsXG4gICAgICAgICAgICBvcHRzPXt7XG4gICAgICAgICAgICAgIGFsaWduOiBcInN0YXJ0XCIsXG4gICAgICAgICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2Fyb3VzZWxDb250ZW50IGNsYXNzTmFtZT1cIi1tbC00XCI+XG4gICAgICAgICAgICAgIHtyZXNvdXJjZXMubWFwKChyZXNvdXJjZSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICA8Q2Fyb3VzZWxJdGVtIGtleT17aW5kZXh9IGNsYXNzTmFtZT1cInBsLTQgbWQ6YmFzaXMtMS8yIGxnOmJhc2lzLTEvM1wiPlxuICAgICAgICAgICAgICAgICAgPFJlc291cmNlQ2FyZCByZXNvdXJjZT17cmVzb3VyY2V9IGluZGV4PXtpbmRleH0gLz5cbiAgICAgICAgICAgICAgICA8L0Nhcm91c2VsSXRlbT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L0Nhcm91c2VsQ29udGVudD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIG1kOmZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG10LTggZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICB3aGlsZUhvdmVyPXt7IHNjYWxlOiAxLjA1IH19XG4gICAgICAgICAgICAgICAgd2hpbGVUYXA9e3sgc2NhbGU6IDAuOTUgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXJvdXNlbFByZXZpb3VzIGNsYXNzTmFtZT1cInBvc2l0aW9uLXJlbGF0aXZlIGJvcmRlci1ibHVlLTIwMCBob3ZlcjpiZy1ibHVlLTUwIGhvdmVyOmJvcmRlci1ibHVlLTMwMFwiIC8+XG4gICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICB3aGlsZUhvdmVyPXt7IHNjYWxlOiAxLjA1IH19XG4gICAgICAgICAgICAgICAgd2hpbGVUYXA9e3sgc2NhbGU6IDAuOTUgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDYXJvdXNlbE5leHQgY2xhc3NOYW1lPVwicG9zaXRpb24tcmVsYXRpdmUgYm9yZGVyLWJsdWUtMjAwIGhvdmVyOmJnLWJsdWUtNTAgaG92ZXI6Ym9yZGVyLWJsdWUtMzAwXCIgLz5cbiAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9DYXJvdXNlbD5cbiAgICAgICAgPC9tb3Rpb24uZGl2PlxuXG4gICAgICAgI
669HsvKiBDYWxsIHRvIEFjdGlvbiAqL31cbiAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDIwIH19XG4gICAgICAgICAgd2hpbGVJblZpZXc9e3sgb3BhY2l0eTogMSwgeTogMCB9fVxuICAgICAgICAgIHRyYW5zaXRpb249e3sgZHVyYXRpb246IDAuNiB9fVxuICAgICAgICAgIHZpZXdwb3J0PXt7IG9uY2U6IHRydWUgfX1cbiAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgd2hpbGVIb3Zlcj1cImhvdmVyXCJcbiAgICAgICAgICAgIHdoaWxlVGFwPVwidGFwXCJcbiAgICAgICAgICAgIHZhcmlhbnRzPXtidXR0b25Ib3ZlckFuaW1hdGlvbn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90cmFuc2NyaWJlLnRoZXJhcGVkaWEucHJvL3Jlc291cmNlc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHNpemU9XCJsZ1wiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctZ3JhZGllbnQtdG8tciBmcm9tLWJsdWUtNTAwIHRvLWN5YW4tNDAwIHRleHQtd2hpdGUgaG92ZXI6ZnJvbS1ibHVlLTYwMCBob3Zlcjp0by1jeWFuLTUwMCBzaGFkb3ctbGcgaG92ZXI6c2hhZG93LXhsIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtci0yXCI+QnJvd3NlIEFsbCBSZXNvdXJjZXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPEFycm93UmlnaHQgc2l6ZT17MTh9IC8+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICBcbiAgICAgICAgICA8bW90aW9uLmRpdiBcbiAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgd2hpbGVJblZpZXc9e3sgb3BhY2l0eTogMSB9fVxuICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkZWxheTogMC44IH19XG4gICAgICAgICAgICB2aWV3cG9ydD17eyBvbmNlOiB0cnVlIH19XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJtdC04IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIHRleHQtZ3JheS01MDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxCdXR0b24gXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiIFxuICAgICAgICAgICAgICBzaXplPVwic21cIiBcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTUwMCBob3Zlcjp0ZXh0LWJsdWUtNTAwXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0SXNCb29rbWFya2VkKCFpc0Jvb2ttYXJrZWQpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Qm9va21hcmsgXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgbXItMSBoLTQgdy00ICR7aXNCb29rbWFya2VkID8gJ2ZpbGwtYmx1ZS01MDAgdGV4dC1ibHVlLTUwMCcgOiAnJ31gfSBcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHNwYW4+e2lzQm9va21hcmtlZCA/ICdCb29rbWFya2VkJyA6ICdCb29rbWFyayBmb3IgbGF0ZXInfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICApO1xufVxuIl0sImZpbGUiOiIvaG9tZS9ydW5uZXIvd29ya3NwYWNlL2NsaWVudC9zcmMvY29tcG9uZW50cy9SZXNvdXJjZXMudHN4In0=

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.