@olwiba/cn 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +117 -0
- package/dist/index.d.ts +991 -0
- package/dist/index.js +6814 -0
- package/dist/index.js.map +1 -0
- package/package.json +126 -0
- package/src/styles/preset.css +107 -0
- package/src/styles/theme.css +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/ui-variant-context.tsx","../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/button.tsx","../src/components/ui/alert-dialog.tsx","../src/components/ui/aspect-ratio.tsx","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/separator.tsx","../src/components/ui/button-group.tsx","../src/components/ui/calendar.tsx","../src/components/ui/card.tsx","../src/components/ui/carousel.tsx","../src/components/ui/chart.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/dialog.tsx","../src/components/ui/hotkey.tsx","../src/components/ui/command.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/drawer.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/empty.tsx","../src/components/ui/label.tsx","../src/components/ui/field.tsx","../src/components/ui/form.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/input.tsx","../src/components/ui/textarea.tsx","../src/components/ui/input-group.tsx","../src/components/ui/input-otp.tsx","../src/components/ui/item.tsx","../src/components/ui/kbd.tsx","../src/components/ui/menubar.tsx","../src/components/ui/navigation-menu.tsx","../src/components/ui/pagination.tsx","../src/components/ui/popover.tsx","../src/components/ui/progress.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/resizable.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/select.tsx","../src/components/ui/sheet.tsx","../src/hooks/use-mobile.ts","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/slider.tsx","../src/components/ui/sonner.tsx","../src/components/ui/spinner.tsx","../src/components/ui/status-indicator.tsx","../src/components/ui/switch.tsx","../src/components/ui/table.tsx","../src/components/ui/tabs.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../node_modules/@olwiba/dx/src/ascii/compose.ts","../node_modules/@olwiba/dx/src/ascii/figlet.ts","../node_modules/@olwiba/dx/src/ascii/render.ts","../node_modules/@olwiba/dx/src/ascii/fonts/dosrebel-data.ts","../src/components/AsciiText.tsx","../src/hooks/use-copy-to-clipboard.ts","../src/lib/confetti.ts","../src/components/ui/theme-script.tsx","../src/components/ui/enchanted.tsx"],"names":["React","React2","jsx","React3","cva","React4","jsxs","React5","React6","React7","Slot","React8","React9","className","props","React10","React11","api","React12","config","React13","CollapsibleTrigger","CollapsibleContent","React14","modStr","React15","React16","CommandPrimitive","React17","ChevronRight","Check","DrawerPrimitive","React18","React19","Circle","Label","React20","useMemo","React21","React22","React23","React24","React25","Item","React26","React27","ChevronDown","React28","MoreHorizontal","React29","React30","RadioGroup","React31","PanelGroup","PanelResizeHandle","React32","React33","SheetPrimitive","React34","X","React35","Tooltip","React36","open","React38","Fragment","Sonner","React39","React40","React41","React42","React43","React44","useRef","useState","useCallback","useEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACDA,IAAM,gBAAA,GAAyBA,sBAAyB,MAAS,CAAA;AAM1D,SAAS,iBAAA,CAAkB;AAAA,EAChC,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,2BACG,gBAAA,CAAiB,QAAA,EAAjB,EAA0B,KAAA,EAAO,MAC/B,QAAA,EACH,CAAA;AAEJ;AAEO,SAAS,YAAA,GAA0B;AACxC,EAAA,OAAaA,mBAAW,gBAAgB,CAAA;AAC1C;ACjBA,IAAM,gBAAA,GAAyBC,OAAA,CAAA,aAAA,CAA8D,EAAE,CAAA;AAE/F,IAAM,SAAA,GAAkBA,OAAA,CAAA,UAAA,CAMtB,CAAC,EAAE,IAAA,EAAM,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3BC,GAAAA,CAAC,gBAAA,CAAiB,QAAA,EAAjB,EAA0B,KAAA,EAAO,EAAE,IAAA,EAAM,IAAA,EAAK,EAC7C,QAAA,kBAAAA,GAAAA,CAAoB,kBAAA,CAAA,IAAA,EAAnB,EAAwB,GAAA,EAAW,GAAG,KAAA,EAAO,CAAA,EAChD,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,aAAA,GAAsBD,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,IAAA,EAAK,GAAUA,OAAA,CAAA,UAAA,CAAW,gBAAgB,CAAA;AAClD,EAAA,uBACEC,GAAAA;AAAA,IAAoB,kBAAA,CAAA,IAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,CAAC,IAAA,IAAQ,UAAA;AAAA,QACT,SAAS,QAAA,IAAY,0CAAA;AAAA,QACrB,SAAS,SAAA,IAAa,yCAAA;AAAA,QACtB,gEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,gBAAA,GAAyBD,mBAG7B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAUA,mBAAW,gBAAgB,CAAA;AACxD,EAAA,uBACEC,GAAAA,CAAoB,kBAAA,CAAA,MAAA,EAAnB,EAA0B,WAAU,MAAA,EACnC,QAAA,kBAAA,IAAA;AAAA,IAAoB,kBAAA,CAAA,OAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,yGAAA;AAAA,QACA,IAAA,KAAS,OAAO,MAAA,GAAS,MAAA;AAAA,QACzB,CAAC,IAAA,IAAQ,iBAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,sBAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDA,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAW,EAAA;AAAA,UACtB,oDAAA;AAAA,UACA,SAAS,QAAA,IAAY;AAAA,SACvB,EAAG;AAAA;AAAA;AAAA,GACL,EACF,CAAA;AAEJ,CAAC;AACD,gBAAA,CAAiB,cAAiC,kBAAA,CAAA,OAAA,CAAQ,WAAA;AAE1D,IAAM,gBAAA,GAAyBD,mBAG7B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAUA,mBAAW,gBAAgB,CAAA;AACxD,EAAA,uBACEC,GAAAA;AAAA,IAAoB,kBAAA,CAAA,OAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAU,0HAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA;AAAA,QACd,IAAA,KAAS,OAAO,WAAA,GAAc,WAAA;AAAA,QAC9B,SAAS,QAAA,IAAY,MAAA;AAAA,QACrB,SAAS,SAAA,IAAa,MAAA;AAAA,QACtB;AAAA,SAEC,QAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,gBAAA,CAAiB,cAAiC,kBAAA,CAAA,OAAA,CAAQ,WAAA;AC5F1D,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,2JAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,+BAAA;AAAA,QACT,WAAA,EACE,yFAAA;AAAA,QACF,IAAA,EAAM,+HAAA;AAAA,QACN,OAAA,EACE,6IAAA;AAAA,QACF,GAAA,EAAK;AAAA;AACP,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAKA,IAAM,KAAA,GAAcC,OAAA,CAAA,UAAA,CAQlB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,wBACzDD,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,IAAA,EAAK,OAAA;AAAA,IACL,SAAA,EAAW,EAAA;AAAA,MACT,aAAA,CAAc,EAAE,OAAA,EAAS,CAAA;AAAA,MACzB,SAAS,IAAA,IAAQ,0CAAA;AAAA,MACjB,SAAS,IAAA,IAAQ,4CAAA;AAAA,MACjB,SAAS,QAAA,IAAY,aAAA;AAAA,MACrB,SAAS,SAAA,IAAa,YAAA;AAAA,MACtB,QAAA,IAAY,gCAAA;AAAA,MACZ;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,UAAA,GAAmBC,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BD,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA;AAAA,IACtE,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,gBAAA,GAAyBC,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BD,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;ACrE/B,IAAM,cAAA,GAAiBE,GAAAA;AAAA,EACrB,0TAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,oFAAA;AAAA,QACF,WAAA,EACE,mFAAA;AAAA,QACF,OAAA,EACE,4GAAA;AAAA,QACF,SAAA,EACE,0FAAA;AAAA,QACF,KAAA,EAAO,8CAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,gBAAA;AAAA,QACT,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI,sBAAA;AAAA,QACJ,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AASA,IAAM,MAAA,GAAeC,OAAA,CAAA,UAAA;AAAA,EACnB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,OAAA,GAAU,KAAA,EAAO,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAChF,IAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AACtC,IAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,QAAA;AAE9B,IAAA,MAAM,WAAA,GAAc,IAAA,KAAS,SAAA,IAAa,OAAA,KAAY,WAAW,OAAA,KAAY,MAAA;AAE7E,IAAA,MAAM,aAAA,GAAwC;AAAA,MAC5C,OAAA,EAAS,kCAAA;AAAA,MACT,WAAA,EAAa,0CAAA;AAAA,MACb,SAAA,EAAW,wCAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACX;AAEA,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,uBACEC,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EACd,QAAA,EAAA;AAAA,wBAAAJ,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,0LAAA;AAAA,cACA,aAAA,CAAc,WAAW,SAAS;AAAA,aACpC;AAAA,YACA,aAAA,EAAY;AAAA;AAAA,SACd;AAAA,wBACAA,GAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAA,EAAG,0BAA0B,CAAA;AAAA,YACtF,GAAA;AAAA,YACC,GAAG;AAAA;AAAA;AACN,OAAA,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,cAAA,CAAe,EAAE,OAAA,EAAS,IAAA,EAAM,WAAW,CAAA;AAAA,UAC3C,SAAS,QAAA,IAAY;AAAA,SACvB;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AClFrB,IAAM,WAAA,GAAmC,oBAAA,CAAA;AAEzC,IAAM,kBAAA,GAA0C,oBAAA,CAAA;AAEhD,IAAM,iBAAA,GAAyC,oBAAA,CAAA;AAE/C,IAAM,kBAAA,GAA2BK,mBAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BL,GAAAA;AAAA,EAAsB,oBAAA,CAAA,OAAA;AAAA,EAArB;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,yJAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IACJ;AAAA;AACF,CACD;AACD,kBAAA,CAAmB,cAAmC,oBAAA,CAAA,OAAA,CAAQ,WAAA;AAI9D,IAAM,kBAAA,GAA2BK,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1CD,KAAC,iBAAA,EAAA,EACC,QAAA,EAAA;AAAA,kBAAAJ,IAAC,kBAAA,EAAA,EAAmB,CAAA;AAAA,kBACpBA,GAAAA;AAAA,IAAsB,oBAAA,CAAA,OAAA;AAAA,IAArB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,kZAAA;AAAA,QACA,CAAC,IAAA,IAAQ,yBAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EACH;AAAA;AAAA;AACF,CAAA,EACF,CACD;AACD,kBAAA,CAAmB,cAAmC,oBAAA,CAAA,OAAA,CAAQ,WAAA;AAE9D,IAAM,oBAAoB,CAAC;AAAA,EACzB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,kDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,oBAAoB,CAAC;AAAA,EACzB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,+DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,gBAAA,GAAyBK,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BL,GAAAA;AAAA,EAAsB,oBAAA,CAAA,KAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,SAAS,CAAA;AAAA,IAC/C,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,cAAmC,oBAAA,CAAA,KAAA,CAAM,WAAA;AAE1D,IAAM,sBAAA,GAA+BK,mBAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BL,GAAAA;AAAA,EAAsB,oBAAA,CAAA,WAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,sBAAA,CAAuB,cACA,oBAAA,CAAA,WAAA,CAAY,WAAA;AAEnC,IAAM,iBAAA,GAA0BK,mBAG9B,CAAC,EAAE,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACzBL,GAAAA,CAAsB,6BAArB,EAA4B,GAAA,EAAU,OAAA,EAAO,IAAA,EAAE,GAAG,KAAA,EACjD,0BAAAA,GAAAA,CAAC,MAAA,EAAA,EAAQ,QAAA,EAAS,CAAA,EACpB,CACD;AACD,iBAAA,CAAkB,cAAmC,oBAAA,CAAA,MAAA,CAAO,WAAA;AAE5D,IAAM,iBAAA,GAA0BK,OAAA,CAAA,UAAA,CAG9B,CAAC,EAAE,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACzBL,GAAAA,CAAsB,oBAAA,CAAA,MAAA,EAArB,EAA4B,GAAA,EAAU,OAAA,EAAO,IAAA,EAAE,GAAG,KAAA,EACjD,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAU,cAAA,EAAgB,QAAA,EAAS,CAAA,EAC/D,CACD;AACD,iBAAA,CAAkB,cAAmC,oBAAA,CAAA,MAAA,CAAO,WAAA;AC5H5D,IAAM,WAAA,GAAmC,oBAAA,CAAA;ACSzC,IAAM,aAAA,GAAsBM,OAAA,CAAA,aAAA,CAAqC,EAAE,CAAA;AAEnE,IAAM,WAAA,GAA0C;AAAA,EAC9C,EAAA,EAAI,SAAA;AAAA,EACJ,OAAA,EAAS,WAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAgCtB,IAAM,MAAA,GAAeA,OAAA,CAAA,UAAA,CAOnB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,QAAA,EAAU,IAAA,GAAO,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC9E,EAAA,MAAM,IAAA,GAAQ,YAAY,YAAA,EAAa;AACvC,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACEN,IAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,EAAE,MAAK,EACpC,QAAA,kBAAAI,KAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,2BAAA,EAA6B,WAAA,CAAY,IAAI,CAAA,EAAG,QAAA,IAAY,gCAAgC,CAAA,EAC7G,QAAA,EAAA;AAAA,sBAAAJ,IAAC,OAAA,EAAA,EAAM,uBAAA,EAAyB,EAAE,MAAA,EAAQ,eAAc,EAAG,CAAA;AAAA,sBAC3DA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,yBAAA;AAAA,UACV,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,YAAY,gBAAA,EAAkB,SAAA,EAAW,uCAAA,EAAyC,cAAA,EAAgB,KAAA;AAAM;AAAA,OAClI;AAAA,sBACAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,yBAAA;AAAA,UACV,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,YAAY,gBAAA,EAAkB,SAAA,EAAW,wCAAA,EAA0C,cAAA,EAAgB,KAAA;AAAM;AAAA,OACnI;AAAA,sBACAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,yBAAA;AAAA,UACV,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,YAAY,gBAAA,EAAkB,SAAA,EAAW,wCAAA,EAA0C,cAAA,EAAgB,MAAA;AAAO;AAAA,OACpI;AAAA,sBACAA,GAAAA;AAAA,QAAiB,eAAA,CAAA,IAAA;AAAA,QAAhB;AAAA,UACC,GAAA;AAAA,UACA,SAAA,EAAW,EAAA;AAAA,YACT,0DAAA;AAAA,YACA,YAAY,IAAI,CAAA;AAAA,YAChB;AAAA,WACF;AAAA,UACC,GAAG;AAAA;AAAA;AACN,KAAA,EACF,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,IAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,EAAE,IAAA,EAAK,EACpC,QAAA,kBAAAA,GAAAA;AAAA,IAAiB,eAAA,CAAA,IAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,mDAAA;AAAA,QACA,YAAY,IAAI,CAAA;AAAA,QAChB,SAAS,QAAA,IAAY,8CAAA;AAAA,QACrB,QAAA,IAAY,gCAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ,CAAC;AACD,MAAA,CAAO,cAA8B,eAAA,CAAA,IAAA,CAAK,WAAA;AAE1C,IAAM,WAAA,GAAoBM,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BN,GAAAA;AAAA,EAAiB,eAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,IACrD,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA8B,eAAA,CAAA,KAAA,CAAM,WAAA;AAEhD,IAAM,cAAA,GAAuBM,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,IAAA,EAAK,GAAUA,OAAA,CAAA,UAAA,CAAW,aAAa,CAAA;AAC/C,EAAA,uBACEN,GAAAA;AAAA,IAAiB,eAAA,CAAA,QAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,qGAAA;AAAA,QAAA,CACC,IAAA,KAAS,QAAA,IAAY,IAAA,KAAS,SAAA,KAAc,cAAA;AAAA,QAC7C;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,cAAA,CAAe,cAA8B,eAAA,CAAA,QAAA,CAAS,WAAA;ACrItD,IAAM,aAAA,GAAgBE,GAAAA;AAAA,EACpB,kJAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,2EAAA;AAAA,QACF,SAAA,EACE,iFAAA;AAAA,QACF,WAAA,EACE,uFAAA;AAAA,QACF,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,wBAAA;AAAA,QACJ,OAAA,EAAS,uBAAA;AAAA,QACT,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAQA,SAAS,KAAA,CAAM,EAAE,SAAA,EAAW,OAAA,EAAS,MAAM,QAAA,GAAW,KAAA,EAAO,GAAG,KAAA,EAAM,EAAe;AACnF,EAAA,uBACEF,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,MAAM,CAAA,EAAG,QAAA,IAAY,gCAAA,EAAkC,SAAS,CAAA;AAAA,MACtG,GAAG;AAAA;AAAA,GACN;AAEJ;ACtCA,IAAM,aAAmBO,OAAA,CAAA,UAAA,CAKvB,CAAC,EAAE,GAAG,OAAM,EAAG,GAAA,qBAAQP,GAAAA,CAAC,SAAI,GAAA,EAAU,YAAA,EAAW,YAAA,EAAc,GAAG,OAAO,CAAE;AAC7E,UAAA,CAAW,WAAA,GAAc,YAAA;AAIzB,IAAM,yBAAA,GAA4D;AAAA,EAChE,EAAA,EAAI,0BAAA;AAAA,EACJ,OAAA,EAAS,4BAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,cAAA,GAAuBO,OAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,SAAA,EAAW,IAAA,GAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC5CP,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,+DAAA;AAAA,MACA,0BAA0B,IAAI,CAAA;AAAA,MAC9B;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuBO,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BP,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,SAAS,CAAA;AAAA,IAC1D,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuBO,OAAA,CAAA,UAAA,CAM3B,CAAC,EAAE,OAAA,EAAS,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACrD,EAAA,MAAM,IAAA,GAAO,UAAUC,IAAAA,GAAO,GAAA;AAE9B,EAAA,uBACER,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,yCAAA;AAAA,QACA,QAAA,IAAY,gCAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,cAAA,GAAuBO,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BP,GAAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,IAAA,EAAK,MAAA;AAAA,IACL,eAAA,EAAc,MAAA;AAAA,IACd,cAAA,EAAa,MAAA;AAAA,IACb,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,IACrD,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,sBAAsB,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,IAAA,EAAK,cAAA;AAAA,IACL,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,IACrD,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA,QAAA,oBAAYA,GAAAA,CAAC,YAAA,EAAA,EAAa;AAAA;AAC7B;AAEF,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAElC,IAAM,qBAAqB,CAAC;AAAA,EAC1B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEI,IAAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,IAAA,EAAK,cAAA;AAAA,IACL,aAAA,EAAY,MAAA;AAAA,IACZ,SAAA,EAAW,EAAA,CAAG,0CAAA,EAA4C,SAAS,CAAA;AAAA,IAClE,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAJ,GAAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,sBACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,MAAA,EAAI;AAAA;AAAA;AAChC;AAEF,kBAAA,CAAmB,WAAA,GAAc,oBAAA;ACjHjC,IAAM,SAAA,GAAkBS,OAAA,CAAA,UAAA;AAAA,EAItB,CACE,EAAE,SAAA,EAAW,WAAA,GAAc,YAAA,EAAc,UAAA,GAAa,IAAA,EAAM,GAAG,KAAA,EAAM,EACrE,GAAA,qBAEAT,GAAAA;AAAA,IAAoB,kBAAA,CAAA,IAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,oBAAA;AAAA,QACA,WAAA,KAAgB,eAAe,gBAAA,GAAmB,gBAAA;AAAA,QAClD;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,SAAA,CAAU,cAAiC,kBAAA,CAAA,IAAA,CAAK,WAAA;ACpBhD,IAAM,mBAAA,GAAsBE,GAAAA;AAAA,EAC1B,kSAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,WAAA,EAAa;AAAA,QACX,UAAA,EACE,iHAAA;AAAA,QACF,QAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2E;AACzE,EAAA,uBACEF,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAU,cAAA;AAAA,MACV,kBAAA,EAAkB,WAAA;AAAA,MAClB,WAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAEG;AACD,EAAA,MAAM,IAAA,GAAO,UAAUQ,IAAAA,GAAO,KAAA;AAE9B,EAAA,uBACER,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,wJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,oBAAA,CAAqB;AAAA,EAC5B,SAAA;AAAA,EACA,WAAA,GAAc,UAAA;AAAA,EACd,GAAG;AACL,CAAA,EAA2C;AACzC,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,wBAAA;AAAA,MACV,WAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,wEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AC3DA,IAAM,iBAAA,GAAkD;AAAA,EACtD,EAAA,EAAI,QAAA;AAAA,EACJ,OAAA,EAAS,MAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,iBAAA,GAA0BU,OAAA,CAAA,aAAA,CAA2C,EAAE,CAAA;AAE7E,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,aAAA,GAAgB,OAAA;AAAA,EAChB,aAAA,GAAgB,OAAA;AAAA,EAChB,UAAA;AAAA,EACA,UAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,MAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,EAKG;AACD,EAAA,MAAM,oBAAoB,oBAAA,EAAqB;AAE/C,EAAA,uBACEV,IAAC,iBAAA,CAAkB,QAAA,EAAlB,EAA2B,KAAA,EAAO,EAAE,MAAA,EAAO,EAC1C,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,aAAA,EAAe,iBAAA,CAAkB,IAAI,CAAA,EAAE;AAAA,MAChD,SAAA,EAAW,EAAA,CAAG,QAAA,IAAY,gCAAgC,CAAA;AAAA,MAE1D,QAAA,kBAAAA,GAAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,eAAA;AAAA,UACA,SAAA,EAAW,EAAA;AAAA,YACT,6HAAA;AAAA,YACA,MAAA,CAAO,GAAA,CAAA,yCAAA,CAAA;AAAA,YACP,MAAA,CAAO,GAAA,CAAA,6CAAA,CAAA;AAAA,YACP,SAAA;AAAA,YACA,WAAW,QAAA,IAAY;AAAA,WACzB;AAAA,UACA,aAAA;AAAA,UACA,UAAA,EAAY;AAAA,YACV,mBAAA,EAAqB,CAAC,IAAA,KACpB,IAAA,CAAK,eAAe,SAAA,EAAW,EAAE,KAAA,EAAO,OAAA,EAAS,CAAA;AAAA,YACnD,GAAG;AAAA,WACL;AAAA,UACA,UAAA,EAAY;AAAA,YACV,IAAA,EAAM,EAAA,CAAG,mCAAA,EAAqC,iBAAA,CAAkB,IAAI,CAAA;AAAA,YACpE,MAAA,EAAQ,EAAA;AAAA,cACN,0CAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,KAAA,EAAO,EAAA,CAAG,4BAAA,EAA8B,iBAAA,CAAkB,KAAK,CAAA;AAAA,YAC/D,GAAA,EAAK,EAAA;AAAA,cACH,8EAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,eAAA,EAAiB,EAAA;AAAA,cACf,eAAe,EAAE,OAAA,EAAS,aAAA,EAAe,IAAA,EAAM,QAAQ,CAAA;AAAA,cACvD,iDAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,WAAA,EAAa,EAAA;AAAA,cACX,eAAe,EAAE,OAAA,EAAS,aAAA,EAAe,IAAA,EAAM,QAAQ,CAAA;AAAA,cACvD,iDAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,aAAA,EAAe,EAAA;AAAA,cACb,kDAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,SAAA,EAAW,EAAA;AAAA,cACT,qFAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,aAAA,EAAe,EAAA;AAAA,cACb,qHAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,QAAA,EAAU,EAAA;AAAA,cACR,uCAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,aAAA,EAAe,EAAA;AAAA,cACb,yBAAA;AAAA,cACA,aAAA,KAAkB,UACd,SAAA,GACA,yGAAA;AAAA,cACJ,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,KAAA,EAAO,wBAAA;AAAA,YACP,QAAA,EAAU,EAAA,CAAG,MAAA,EAAQ,iBAAA,CAAkB,QAAQ,CAAA;AAAA,YAC/C,OAAA,EAAS,EAAA;AAAA,cACP,+EAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,IAAA,EAAM,EAAA,CAAG,kBAAA,EAAoB,iBAAA,CAAkB,IAAI,CAAA;AAAA,YACnD,kBAAA,EAAoB,EAAA;AAAA,cAClB,6BAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,WAAA,EAAa,EAAA;AAAA,cACX,iDAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,GAAA,EAAK,EAAA;AAAA,cACH,oMAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,WAAA,EAAa,EAAA;AAAA,cACX,wBAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,YAAA,EAAc,EAAA,CAAG,cAAA,EAAgB,iBAAA,CAAkB,YAAY,CAAA;AAAA,YAC/D,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,iBAAA,CAAkB,SAAS,CAAA;AAAA,YACnE,KAAA,EAAO,EAAA;AAAA,cACL,+EAAA;AAAA,cACA,WAAW,QAAA,IAAY,4CAAA;AAAA,cACvB,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,OAAA,EAAS,EAAA;AAAA,cACP,2DAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,QAAA,EAAU,EAAA;AAAA,cACR,kCAAA;AAAA,cACA,iBAAA,CAAkB;AAAA,aACpB;AAAA,YACA,MAAA,EAAQ,EAAA,CAAG,WAAA,EAAa,iBAAA,CAAkB,MAAM,CAAA;AAAA,YAChD,GAAG;AAAA,WACL;AAAA,UACA,UAAA,EAAY;AAAA,YACV,IAAA,EAAM,CAAC,EAAE,SAAA,EAAAW,YAAW,OAAA,EAAS,GAAGC,QAAM,KAAM;AAC1C,cAAA,uBACEZ,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,WAAA,EAAU,UAAA;AAAA,kBACV,GAAA,EAAK,OAAA;AAAA,kBACL,SAAA,EAAW,GAAGW,UAAS,CAAA;AAAA,kBACtB,GAAGC;AAAA;AAAA,eACN;AAAA,YAEJ,CAAA;AAAA,YACA,OAAA,EAAS,CAAC,EAAE,SAAA,EAAAD,YAAW,WAAA,EAAa,GAAGC,QAAM,KAAM;AACjD,cAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC1B,gBAAA,uBACEZ,IAAC,eAAA,EAAA,EAAgB,SAAA,EAAW,GAAG,QAAA,EAAUW,UAAS,CAAA,EAAI,GAAGC,MAAAA,EAAO,CAAA;AAAA,cAEpE;AAEA,cAAA,IAAI,gBAAgB,OAAA,EAAS;AAC3B,gBAAA,uBACEZ,GAAAA;AAAA,kBAAC,gBAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA,CAAG,QAAA,EAAUW,UAAS,CAAA;AAAA,oBAChC,GAAGC;AAAA;AAAA,iBACN;AAAA,cAEJ;AAEA,cAAA,uBACEZ,IAAC,eAAA,EAAA,EAAgB,SAAA,EAAW,GAAG,QAAA,EAAUW,UAAS,CAAA,EAAI,GAAGC,MAAAA,EAAO,CAAA;AAAA,YAEpE,CAAA;AAAA,YACA,SAAA,EAAW,iBAAA;AAAA,YACX,YAAY,CAAC,EAAE,QAAA,EAAU,GAAGA,QAAM,KAAM;AACtC,cAAA,uBACEZ,GAAAA,CAAC,IAAA,EAAA,EAAI,GAAGY,MAAAA,EACN,QAAA,kBAAAZ,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iEAAA,EACZ,QAAA,EACH,CAAA,EACF,CAAA;AAAA,YAEJ,CAAA;AAAA,YACA,GAAG;AAAA,WACL;AAAA,UACC,GAAG;AAAA;AAAA;AACN;AAAA,GACF,EACF,CAAA;AAEJ;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,GAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2C;AACzC,EAAA,MAAM,EAAE,MAAA,EAAO,GAAUU,OAAA,CAAA,UAAA,CAAW,iBAAiB,CAAA;AACrD,EAAA,MAAM,oBAAoB,oBAAA,EAAqB;AAE/C,EAAA,MAAM,GAAA,GAAYA,eAA0B,IAAI,CAAA;AAChD,EAAMA,kBAAU,MAAM;AACpB,IAAA,IAAI,SAAA,CAAU,OAAA,EAAS,GAAA,CAAI,OAAA,EAAS,KAAA,EAAM;AAAA,EAC5C,CAAA,EAAG,CAAC,SAAA,CAAU,OAAO,CAAC,CAAA;AAEtB,EAAA,MAAM,gBAAA,GACJ,SAAA,CAAU,QAAA,IACV,CAAC,SAAA,CAAU,eACX,CAAC,SAAA,CAAU,SAAA,IACX,CAAC,SAAA,CAAU,YAAA;AAEb,EAAA,MAAM,iBAAA,GAAoB,WAAW,SAAA,IAAa,gBAAA;AAElD,EAAA,MAAM,yBACJV,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,OAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,IAAA,EAAM,MAAA;AAAA,MACN,UAAA,EAAU,GAAA,CAAI,IAAA,CAAK,kBAAA,EAAmB;AAAA,MACtC,sBAAA,EAAsB,gBAAA;AAAA,MACtB,oBAAkB,SAAA,CAAU,WAAA;AAAA,MAC5B,kBAAgB,SAAA,CAAU,SAAA;AAAA,MAC1B,qBAAmB,SAAA,CAAU,YAAA;AAAA,MAC7B,SAAA,EAAW,EAAA;AAAA,QACT,qwBAAA;AAAA,QACA,iBAAA,IAAqB,0BAAA;AAAA,QACrB,iBAAA,CAAkB,GAAA;AAAA,QAClB;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAGF,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,uBACEI,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EACd,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,2NAAA;AAAA,UACV,aAAA,EAAY;AAAA;AAAA,OACd;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,MAAA;AACT;ACvPA,IAAM,IAAA,GAAaa,OAAA,CAAA,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,UAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChD,IAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AACtC,IAAA,IAAI,SAAS,SAAA,EAAW;AACtB,MAAA,uBACEb,IAAC,iBAAA,EAAA,EAAkB,IAAA,EAAK,WACtB,QAAA,kBAAAI,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACb,QAAA,EAAA;AAAA,wBAAAJ,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACAA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,SAAA,EAAW,EAAA;AAAA,cACT,mFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACC,GAAG;AAAA;AAAA;AACN,OAAA,EACF,CAAA,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACEA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,0DAAA;AAAA,UACA,SAAS,QAAA,IAAY,aAAA;AAAA,UACrB;AAAA,SACF;AAAA,QACC,GAAG;AAAA;AAAA,KACN,EACF,CAAA;AAAA,EAEJ;AACF;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAEnB,IAAM,UAAA,GAAmBa,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,SAAA,GAAkBa,mBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,oDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,eAAA,GAAwBa,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,WAAA,GAAoBa,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1Bb,IAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAG,OAAO,CACjE;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,UAAA,GAAmBa,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1Bb,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;ACzFzB,IAAM,MAAA,GAAuC;AAAA,EAC3C,EAAA,EAAI,SAAA;AAAA,EACJ,OAAA,EAAS,SAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,SAAA,GAAkG;AAAA,EACtG,EAAA,EAAS,EAAE,KAAA,EAAO,SAAA,EAAY,OAAO,UAAA,EAAa,KAAA,EAAO,QAAA,EAAW,KAAA,EAAO,WAAA,EAAa;AAAA,EACxF,OAAA,EAAS,EAAE,KAAA,EAAO,UAAA,EAAY,OAAO,WAAA,EAAa,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,YAAA,EAAa;AAAA,EACxF,EAAA,EAAS,EAAE,KAAA,EAAO,UAAA,EAAY,OAAO,WAAA,EAAa,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,YAAA;AAC7E,CAAA;AAwBA,IAAM,eAAA,GAAwBc,sBAA2C,IAAI,CAAA;AAE7E,SAAS,WAAA,GAAc;AACrB,EAAA,MAAM,OAAA,GAAgBA,mBAAW,eAAe,CAAA;AAChD,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAC9E,EAAA,OAAO,OAAA;AACT;AAEA,IAAM,QAAA,GAAiBA,OAAA,CAAA,UAAA;AAAA,EAIrB,CACE;AAAA,IACE,WAAA,GAAc,YAAA;AAAA,IACd,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,GAAO,SAAA;AAAA,IACP,QAAA,GAAW,KAAA;AAAA,IACX,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AAEtC,IAAA,MAAM,CAAC,WAAA,EAAa,GAAG,CAAA,GAAI,gBAAA;AAAA,MACzB,EAAE,GAAG,IAAA,EAAM,MAAM,WAAA,KAAgB,YAAA,GAAe,MAAM,GAAA,EAAI;AAAA,MAC1D;AAAA,KACF;AACA,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,iBAAS,KAAK,CAAA;AAC9D,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAUA,iBAAS,KAAK,CAAA;AAE9D,IAAA,MAAM,QAAA,GAAiBA,OAAA,CAAA,WAAA,CAAY,CAACC,IAAAA,KAAqB;AACvD,MAAA,IAAI,CAACA,IAAAA,EAAK;AACV,MAAA,gBAAA,CAAiBA,IAAAA,CAAI,eAAe,CAAA;AACpC,MAAA,gBAAA,CAAiBA,IAAAA,CAAI,eAAe,CAAA;AAAA,IACtC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,UAAA,GAAmBD,oBAAY,MAAM;AAAE,MAAA,GAAA,EAAK,UAAA,EAAW;AAAA,IAAE,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AACvE,IAAA,MAAM,UAAA,GAAmBA,oBAAY,MAAM;AAAE,MAAA,GAAA,EAAK,UAAA,EAAW;AAAA,IAAE,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA;AAEvE,IAAA,MAAM,aAAA,GAAsBA,OAAA,CAAA,WAAA;AAAA,MAC1B,CAAC,KAAA,KAA+C;AAC9C,QAAA,IAAI,KAAA,CAAM,QAAQ,WAAA,EAAa;AAAE,UAAA,KAAA,CAAM,cAAA,EAAe;AAAG,UAAA,UAAA,EAAW;AAAA,QAAE,CAAA,MAAA,IAC7D,KAAA,CAAM,GAAA,KAAQ,YAAA,EAAc;AAAE,UAAA,KAAA,CAAM,cAAA,EAAe;AAAG,UAAA,UAAA,EAAW;AAAA,QAAE;AAAA,MAC9E,CAAA;AAAA,MACA,CAAC,YAAY,UAAU;AAAA,KACzB;AAEA,IAAMA,kBAAU,MAAM;AACpB,MAAA,IAAI,CAAC,GAAA,IAAO,CAAC,MAAA,EAAQ;AACrB,MAAA,MAAA,CAAO,GAAG,CAAA;AAAA,IACZ,CAAA,EAAG,CAAC,GAAA,EAAK,MAAM,CAAC,CAAA;AAEhB,IAAMA,kBAAU,MAAM;AACpB,MAAA,IAAI,CAAC,GAAA,EAAK;AACV,MAAA,QAAA,CAAS,GAAG,CAAA;AACZ,MAAA,GAAA,CAAI,EAAA,CAAG,UAAU,QAAQ,CAAA;AACzB,MAAA,GAAA,CAAI,EAAA,CAAG,UAAU,QAAQ,CAAA;AACzB,MAAA,OAAO,MAAM;AAAE,QAAA,GAAA,EAAK,GAAA,CAAI,UAAU,QAAQ,CAAA;AAAA,MAAE,CAAA;AAAA,IAC9C,CAAA,EAAG,CAAC,GAAA,EAAK,QAAQ,CAAC,CAAA;AAElB,IAAA,uBACEd,GAAAA;AAAA,MAAC,eAAA,CAAgB,QAAA;AAAA,MAAhB;AAAA,QACC,KAAA,EAAO;AAAA,UACL,WAAA;AAAA,UAAa,GAAA;AAAA,UAAK,IAAA;AAAA,UAClB,WAAA,EAAa,WAAA,KAAgB,IAAA,EAAM,IAAA,KAAS,MAAM,UAAA,GAAa,YAAA,CAAA;AAAA,UAC/D,UAAA;AAAA,UAAY,UAAA;AAAA,UAAY,aAAA;AAAA,UAAe,aAAA;AAAA,UACvC,IAAA;AAAA,UAAM,YAAA,EAAc,IAAA;AAAA,UAAM;AAAA,SAC5B;AAAA,QAEA,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,gBAAA,EAAkB,aAAA;AAAA,YAClB,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,QAAA,IAAY,kCAAkC,SAAS,CAAA;AAAA,YACjF,IAAA,EAAK,QAAA;AAAA,YACL,sBAAA,EAAqB,UAAA;AAAA,YACpB,GAAG,KAAA;AAAA,YAEH;AAAA;AAAA,SACH,EACF;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,eAAA,GAAwBc,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,WAAA,EAAa,WAAA,EAAY,GAAI,WAAA,EAAY;AACjD,EAAA,uBACEd,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAK,WAAA,EAAa,SAAA,EAAU,mBAC/B,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAW,EAAA,CAAG,MAAA,EAAQ,gBAAgB,YAAA,GAAe,OAAA,GAAU,kBAAkB,SAAS,CAAA;AAAA,MACzF,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ,CAAC;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,YAAA,GAAqBc,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,WAAA,EAAY;AACpC,EAAA,uBACEd,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,OAAA;AAAA,MACL,sBAAA,EAAqB,OAAA;AAAA,MACrB,SAAA,EAAW,EAAA;AAAA,QACT,oCAAA;AAAA,QACA,WAAA,KAAgB,eAAe,MAAA,GAAS,MAAA;AAAA,QACxC;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,gBAAA,GAAyBc,OAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,SAAA,EAAW,OAAA,GAAU,SAAA,EAAW,IAAA,GAAO,MAAA,EAAQ,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACtE,EAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,eAAe,IAAA,EAAM,YAAA,KAAiB,WAAA,EAAY;AAEnF,EAAA,MAAM,GAAA,GAAM,OAAO,YAAY,CAAA;AAC/B,EAAA,MAAM,IAAA,GAAO,CAAA,EAAG,SAAA,CAAU,YAAY,EAAE,KAAK,CAAA,yBAAA,CAAA;AAC7C,EAAA,MAAM,IAAA,GAAO,CAAA,EAAG,SAAA,CAAU,YAAY,EAAE,KAAK,CAAA,oCAAA,CAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,WAAA,KAAgB,YAAA,GAAe,IAAA,GAAO,IAAA;AAEvD,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACEV,KAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,wBAAA,EAA0B,GAAA,EAAK,QAAQ,CAAA,EACzD,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,+OAAA;AAAA,UACV,aAAA,EAAW;AAAA;AAAA,OACb;AAAA,sBACAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAAM,QACvB,QAAA,kBAAAI,IAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,OAAA;AAAA,UACA,IAAA;AAAA,UACA,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,SAAS,CAAA;AAAA,UACjE,UAAU,CAAC,aAAA;AAAA,UACX,OAAA,EAAS,UAAA;AAAA,UACR,GAAG,KAAA;AAAA,UAEJ,QAAA,EAAA;AAAA,4BAAAJ,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,4BAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,gBAAA,EAAc;AAAA;AAAA;AAAA,OAC1C,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEI,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,OAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA,EAAM,IAAA,KAAS,QAAA,GAAW,QAAA,GAAW,MAAA;AAAA,MACrC,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,GAAA;AAAA,QACA,SAAS,QAAA,IAAY,cAAA;AAAA,QACrB,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,UAAU,CAAC,aAAA;AAAA,MACX,OAAA,EAAS,UAAA;AAAA,MACR,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,wBAC/BA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,gBAAA,EAAc;AAAA;AAAA;AAAA,GAC1C;AAEJ,CAAC;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,YAAA,GAAqBc,OAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,SAAA,EAAW,OAAA,GAAU,SAAA,EAAW,IAAA,GAAO,MAAA,EAAQ,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACtE,EAAA,MAAM,EAAE,WAAA,EAAa,UAAA,EAAY,eAAe,IAAA,EAAM,YAAA,KAAiB,WAAA,EAAY;AAEnF,EAAA,MAAM,GAAA,GAAM,OAAO,YAAY,CAAA;AAC/B,EAAA,MAAM,IAAA,GAAO,CAAA,EAAG,SAAA,CAAU,YAAY,EAAE,KAAK,CAAA,yBAAA,CAAA;AAC7C,EAAA,MAAM,IAAA,GAAO,CAAA,EAAG,SAAA,CAAU,YAAY,EAAE,KAAK,CAAA,oCAAA,CAAA;AAC7C,EAAA,MAAM,QAAA,GAAW,WAAA,KAAgB,YAAA,GAAe,IAAA,GAAO,IAAA;AAEvD,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACEV,KAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,wBAAA,EAA0B,GAAA,EAAK,QAAQ,CAAA,EACzD,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,+OAAA;AAAA,UACV,aAAA,EAAW;AAAA;AAAA,OACb;AAAA,sBACAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAAM,QACvB,QAAA,kBAAAI,IAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,OAAA;AAAA,UACA,IAAA;AAAA,UACA,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,SAAS,CAAA;AAAA,UACjE,UAAU,CAAC,aAAA;AAAA,UACX,OAAA,EAAS,UAAA;AAAA,UACR,GAAG,KAAA;AAAA,UAEJ,QAAA,EAAA;AAAA,4BAAAJ,GAAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,4BAChCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,YAAA,EAAU;AAAA;AAAA;AAAA,OACtC,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEI,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,OAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA,EAAM,IAAA,KAAS,QAAA,GAAW,QAAA,GAAW,MAAA;AAAA,MACrC,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,GAAA;AAAA,QACA,SAAS,QAAA,IAAY,cAAA;AAAA,QACrB,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,UAAU,CAAC,aAAA;AAAA,MACX,OAAA,EAAS,UAAA;AAAA,MACR,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,wBAChCA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,YAAA,EAAU;AAAA;AAAA;AAAA,GACtC;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;ACvS3B,IAAM,MAAA,GAAS,EAAE,KAAA,EAAO,EAAA,EAAI,MAAM,OAAA,EAAQ;AAgB1C,IAAM,YAAA,GAAqBgB,sBAAwC,IAAI,CAAA;AAEvE,SAAS,QAAA,GAAW;AAClB,EAAA,MAAM,OAAA,GAAgBA,mBAAW,YAAY,CAAA;AAE7C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,mDAAmD,CAAA;AAAA,EACrE;AAEA,EAAA,OAAO,OAAA;AACT;AAEA,IAAM,cAAA,GAAuBA,OAAA,CAAA,UAAA,CAO3B,CAAC,EAAE,EAAA,EAAI,SAAA,EAAW,QAAA,EAAU,MAAA,EAAQ,QAAA,GAAW,KAAA,EAAO,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC1E,EAAA,MAAM,WAAiBA,OAAA,CAAA,KAAA,EAAM;AAC7B,EAAA,MAAM,UAAU,CAAA,MAAA,EAAS,EAAA,IAAM,SAAS,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA,CAAA;AAEzD,EAAA,uBACEhB,IAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,EAAE,MAAA,EAAO,EACrC,QAAA,kBAAAI,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,OAAA;AAAA,MACZ,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,upBAAA;AAAA,QACA,QAAA,IAAY,gCAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAI,OAAA,EAAS,MAAA,EAAgB,CAAA;AAAA,wBACzCA,GAAAA,CAAmB,iBAAA,CAAA,mBAAA,EAAlB,EAAuC,QAAA,EAAS;AAAA;AAAA;AAAA,GACnD,EACF,CAAA;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,OAAA;AAE7B,IAAM,UAAA,GAAa,CAAC,EAAE,EAAA,EAAI,QAAO,KAA2C;AAC1E,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAAE,MAAA;AAAA,IACzC,CAAC,GAAGiB,OAAM,CAAA,KAAMA,OAAAA,CAAO,SAASA,OAAAA,CAAO;AAAA,GACzC;AAEA,EAAA,IAAI,CAAC,YAAY,MAAA,EAAQ;AACvB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEjB,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,uBAAA,EAAyB;AAAA,QACvB,MAAA,EAAQ,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAC1B,GAAA;AAAA,UACC,CAAC,CAAC,KAAA,EAAO,MAAM,CAAA,KAAM;AAAA,EAC/B,MAAM,gBAAgB,EAAE,CAAA;AAAA,EACxB,YACC,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,KAAM;AAC1B,YAAA,MAAM,KAAA,GACJ,UAAA,CAAW,KAAA,GAAQ,KAAsC,KACzD,UAAA,CAAW,KAAA;AACb,YAAA,OAAO,KAAA,GAAQ,CAAA,UAAA,EAAa,GAAG,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,CAAA,GAAM,IAAA;AAAA,UACjD,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAC;AAAA;AAAA;AAAA,SAGH,CACC,KAAK,IAAI;AAAA;AACd;AAAA,GACF;AAEJ;AAEA,IAAM,YAAA,GAAiC,iBAAA,CAAA;AAEvC,IAAM,mBAAA,GAA4BgB,OAAA,CAAA,UAAA;AAAA,EAWhC,CACE;AAAA,IACE,MAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,SAAA,GAAY,KAAA;AAAA,IACZ,aAAA,GAAgB,KAAA;AAAA,IAChB,KAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,KAEF,GAAA,KACG;AACH,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,QAAA,EAAS;AAE5B,IAAA,MAAM,YAAA,GAAqBA,gBAAQ,MAAM;AACvC,MAAA,IAAI,SAAA,IAAa,CAAC,OAAA,EAAS,MAAA,EAAQ;AACjC,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,MAAM,CAAC,IAAI,CAAA,GAAI,OAAA;AACf,MAAA,MAAM,MAAM,CAAA,EAAG,QAAA,IAAY,MAAM,OAAA,IAAW,IAAA,EAAM,QAAQ,OAAO,CAAA,CAAA;AACjE,MAAA,MAAM,UAAA,GAAa,2BAAA,CAA4B,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AAChE,MAAA,MAAM,KAAA,GACJ,CAAC,QAAA,IAAY,OAAO,KAAA,KAAU,QAAA,GAC1B,MAAA,CAAO,KAA4B,CAAA,EAAG,KAAA,IAAS,KAAA,GAC/C,UAAA,EAAY,KAAA;AAElB,MAAA,IAAI,cAAA,EAAgB;AAClB,QAAA,uBACEhB,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,cAAc,CAAA,EAC7C,QAAA,EAAA,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA,EAChC,CAAA;AAAA,MAEJ;AAEA,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,uBAAOA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,aAAA,EAAe,cAAc,GAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACnE,CAAA,EAAG;AAAA,MACD,KAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,OAAA,EAAS,MAAA,EAAQ;AAC/B,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,MAAA,KAAW,CAAA,IAAK,SAAA,KAAc,KAAA;AAExD,IAAA,uBACEI,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,wHAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,CAAC,YAAY,YAAA,GAAe,IAAA;AAAA,0BAC7BJ,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACZ,kBACE,MAAA,CAAO,CAAC,IAAA,KAAS,IAAA,CAAK,SAAS,MAAM,CAAA,CACrC,GAAA,CAAI,CAAC,MAAM,KAAA,KAAU;AACpB,YAAA,MAAM,MAAM,CAAA,EAAG,OAAA,IAAW,KAAK,IAAA,IAAQ,IAAA,CAAK,WAAW,OAAO,CAAA,CAAA;AAC9D,YAAA,MAAM,UAAA,GAAa,2BAAA,CAA4B,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AAChE,YAAA,MAAM,cAAA,GAAiB,KAAA,IAAS,IAAA,CAAK,OAAA,CAAQ,QAAQ,IAAA,CAAK,KAAA;AAE1D,YAAA,uBACEA,GAAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,SAAA,EAAW,EAAA;AAAA,kBACT,qGAAA;AAAA,kBACA,cAAc,KAAA,IAAS;AAAA,iBACzB;AAAA,gBAEC,uBAAa,IAAA,EAAM,KAAA,KAAU,UAAa,IAAA,CAAK,IAAA,GAC9C,UAAU,IAAA,CAAK,KAAA,EAAO,IAAA,CAAK,IAAA,EAAM,MAAM,KAAA,EAAO,IAAA,CAAK,OAAO,CAAA,mBAE1DI,KAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,kBAAA,UAAA,EAAY,IAAA,mBACXJ,GAAAA,CAAC,UAAA,CAAW,MAAX,EAAgB,CAAA,GAEjB,CAAC,aAAA,oBACCA,GAAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EAAW,EAAA;AAAA,wBACT,gEAAA;AAAA,wBACA;AAAA,0BACE,eAAe,SAAA,KAAc,KAAA;AAAA,0BAC7B,OAAO,SAAA,KAAc,MAAA;AAAA,0BACrB,mDACE,SAAA,KAAc,QAAA;AAAA,0BAChB,QAAA,EAAU,aAAa,SAAA,KAAc;AAAA;AACvC,uBACF;AAAA,sBACA,KAAA,EACE;AAAA,wBACE,YAAA,EAAc,cAAA;AAAA,wBACd,gBAAA,EAAkB;AAAA;AACpB;AAAA,mBAEJ;AAAA,kCAGJI,IAAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EAAW,EAAA;AAAA,wBACT,0CAAA;AAAA,wBACA,YAAY,WAAA,GAAc;AAAA,uBAC5B;AAAA,sBAEA,QAAA,EAAA;AAAA,wCAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACZ,QAAA,EAAA;AAAA,0BAAA,SAAA,GAAY,YAAA,GAAe,IAAA;AAAA,0CAC5BJ,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBACb,QAAA,EAAA,UAAA,EAAY,KAAA,IAAS,KAAK,IAAA,EAC7B;AAAA,yBAAA,EACF,CAAA;AAAA,wBACC,IAAA,CAAK,KAAA,oBACJA,GAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,oDAAA,EACb,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,cAAA,EAAe,EAC7B;AAAA;AAAA;AAAA;AAEJ,iBAAA,EACF;AAAA,eAAA;AAAA,cApDG,IAAA,CAAK;AAAA,aAsDZ;AAAA,UAEJ,CAAC,CAAA,EACL;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,mBAAA,CAAoB,WAAA,GAAc,cAAA;AAElC,IAAM,WAAA,GAAgC,iBAAA,CAAA;AAEtC,IAAM,kBAAA,GAA2BgB,OAAA,CAAA,UAAA;AAAA,EAQ/B,CACE,EAAE,SAAA,EAAW,QAAA,GAAW,KAAA,EAAO,SAAS,aAAA,GAAgB,QAAA,EAAU,OAAA,EAAQ,EAC1E,GAAA,KACG;AACH,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,QAAA,EAAS;AAE5B,IAAA,IAAI,CAAC,SAAS,MAAA,EAAQ;AACpB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,uBACEhB,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,wCAAA;AAAA,UACA,aAAA,KAAkB,QAAQ,MAAA,GAAS,MAAA;AAAA,UACnC;AAAA,SACF;AAAA,QAEC,QAAA,EAAA,OAAA,CACE,MAAA,CAAO,CAAC,IAAA,KAAS,IAAA,CAAK,SAAS,MAAM,CAAA,CACrC,GAAA,CAAI,CAAC,IAAA,KAAS;AACb,UAAA,MAAM,GAAA,GAAM,CAAA,EAAG,OAAA,IAAW,IAAA,CAAK,WAAW,OAAO,CAAA,CAAA;AACjD,UAAA,MAAM,UAAA,GAAa,2BAAA,CAA4B,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AAEhE,UAAA,uBACEI,IAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAW,EAAA;AAAA,gBACT;AAAA,eACF;AAAA,cAEC,QAAA,EAAA;AAAA,gBAAA,UAAA,EAAY,IAAA,IAAQ,CAAC,QAAA,mBACpBJ,IAAC,UAAA,CAAW,IAAA,EAAX,EAAgB,CAAA,mBAEjBA,GAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAU,gCAAA;AAAA,oBACV,KAAA,EAAO;AAAA,sBACL,iBAAiB,IAAA,CAAK;AAAA;AACxB;AAAA,iBACF;AAAA,gBAED,UAAA,EAAY;AAAA;AAAA,aAAA;AAAA,YAfR,IAAA,CAAK;AAAA,WAgBZ;AAAA,QAEJ,CAAC;AAAA;AAAA,KACL;AAAA,EAEJ;AACF;AACA,kBAAA,CAAmB,WAAA,GAAc,aAAA;AAGjC,SAAS,2BAAA,CACP,MAAA,EACA,OAAA,EACA,GAAA,EACA;AACA,EAAA,IAAI,OAAO,OAAA,KAAY,QAAA,IAAY,OAAA,KAAY,IAAA,EAAM;AACnD,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,cAAA,GACJ,SAAA,IAAa,OAAA,IACb,OAAO,OAAA,CAAQ,OAAA,KAAY,QAAA,IAC3B,OAAA,CAAQ,OAAA,KAAY,IAAA,GAChB,OAAA,CAAQ,OAAA,GACR,MAAA;AAEN,EAAA,IAAI,cAAA,GAAyB,GAAA;AAE7B,EAAA,IACE,OAAO,OAAA,IACP,OAAO,OAAA,CAAQ,GAA2B,MAAM,QAAA,EAChD;AACA,IAAA,cAAA,GAAiB,QAAQ,GAA2B,CAAA;AAAA,EACtD,CAAA,MAAA,IACE,kBACA,GAAA,IAAO,cAAA,IACP,OAAO,cAAA,CAAe,GAAkC,MAAM,QAAA,EAC9D;AACA,IAAA,cAAA,GAAiB,eACf,GACF,CAAA;AAAA,EACF;AAEA,EAAA,OAAO,kBAAkB,MAAA,GACrB,MAAA,CAAO,cAAc,CAAA,GACrB,OAAO,GAA0B,CAAA;AACvC;ACxVA,IAAM,QAAA,GAAiBkB,OAAA,CAAA,UAAA,CAGrB,CAAC,EAAE,SAAA,EAAW,MAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAClD,EAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AACtC,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACEd,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EACd,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAU;AAAA;AAAA,OACZ;AAAA,sBACAA,GAAAA;AAAA,QAAmB,iBAAA,CAAA,IAAA;AAAA,QAAlB;AAAA,UACC,GAAA;AAAA,UACA,SAAA,EAAW,EAAA;AAAA,YACT,iXAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG,KAAA;AAAA,UAEJ,QAAA,kBAAAA,GAAAA,CAAmB,iBAAA,CAAA,SAAA,EAAlB,EAA4B,SAAA,EAAW,EAAA,CAAG,wCAAwC,CAAA,EACjF,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAU,WAAU,CAAA,EAC7B;AAAA;AAAA;AACF,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAmB,iBAAA,CAAA,IAAA;AAAA,IAAlB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,wVAAA;AAAA,QACA,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAmB,iBAAA,CAAA,SAAA,EAAlB,EAA4B,SAAA,EAAW,EAAA,CAAG,wCAAwC,CAAA,EACjF,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAU,WAAU,CAAA,EAC7B;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,QAAA,CAAS,cAAgC,iBAAA,CAAA,IAAA,CAAK,WAAA;ACnD9C,IAAM,WAAA,GAAmC,oBAAA,CAAA;AAEzC,IAAMmB,mBAAAA,GAA0C,oBAAA,CAAA;AAEhD,IAAMC,mBAAAA,GAA0C,oBAAA,CAAA;ACChD,IAAM,MAAA,GAAyB,eAAA,CAAA;AAE/B,IAAM,aAAA,GAAgC,eAAA,CAAA;AAEtC,IAAM,YAAA,GAA+B,eAAA,CAAA;AAErC,IAAM,WAAA,GAA8B,eAAA,CAAA;AAEpC,IAAM,aAAA,GAAsBC,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrB,GAAAA;AAAA,EAAiB,eAAA,CAAA,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,wJAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,cAA8B,eAAA,CAAA,OAAA,CAAQ,WAAA;AAIpD,IAAM,aAAA,GAAsBqB,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1CjB,KAAC,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,kBAAAJ,IAAC,aAAA,EAAA,EAAc,CAAA;AAAA,kBACfA,GAAAA;AAAA,IAAiB,eAAA,CAAA,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,mVAAA;AAAA,QACA,CAAC,IAAA,IAAQ,yBAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAI,IAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDA,IAAAA,CAAiB,eAAA,CAAA,KAAA,EAAhB,EAAsB,WAAU,+QAAA,EAC/B,QAAA,EAAA;AAAA,0BAAAJ,GAAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,0BACvBA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,OAAA,EAAK;AAAA,SAAA,EACjC;AAAA,OAAA,EACF;AAAA;AAAA;AACF,CAAA,EACF,CACD;AACD,aAAA,CAAc,cAA8B,eAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,eAAe,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,oDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,eAAe,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,+DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,WAAA,GAAoBqB,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrB,GAAAA;AAAA,EAAiB,eAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA8B,eAAA,CAAA,KAAA,CAAM,WAAA;AAEhD,IAAM,iBAAA,GAA0BqB,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BrB,GAAAA;AAAA,EAAiB,eAAA,CAAA,WAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,cAA8B,eAAA,CAAA,WAAA,CAAY,WAAA;AC/G5D,IAAM,cAAA,GAAiB,CAAC,OAAA,EAAS,MAAA,EAAQ,OAAO,KAAK,CAAA;AAGrD,IAAM,WAAA,GAA4C;AAAA,EAChD,KAAA,EAAO,QAAA;AAAA,EACP,IAAA,EAAM,QAAA;AAAA,EACN,GAAA,EAAK,QAAA;AAAA,EACL,GAAA,EAAK;AACP,CAAA;AAEA,SAAS,cAAc,QAAA,EAA8D;AACnF,EAAA,MAAM,KAAA,GAAQ,QAAA,CACX,KAAA,CAAM,GAAG,EACT,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,MAAK,CAAE,WAAA,EAAa,CAAA,CACjC,OAAO,OAAO,CAAA;AACjB,EAAA,MAAM,GAAA,GAAM,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,cAAA,CAAe,QAAA,CAAS,CAAiB,CAAC,CAAA,CAAE,GAAA,EAAI,IAAK,EAAA;AACtF,EAAA,MAAM,YAAY,KAAA,CAAM,MAAA;AAAA,IAAO,CAAC,CAAA,KAC9B,cAAA,CAAe,QAAA,CAAS,CAAiB;AAAA,GAC3C;AACA,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,eAAe,MAAA,CAAO,CAAC,MAAM,SAAA,CAAU,QAAA,CAAS,CAAC,CAAC,CAAA;AAAA,IAC7D,GAAA,EAAK,GAAA,CAAI,WAAA,EAAY,IAAK;AAAA,GAC5B;AACF;AAEA,SAAS,cAAA,CAAe,UAAkB,KAAA,EAAwB;AAChE,EAAA,MAAM,EAAE,SAAA,EAAW,GAAA,EAAI,GAAI,cAAc,QAAQ,CAAA;AACjD,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,MAAMsB,OAAAA,GAAS,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA,KAAM,YAAY,CAAC,CAAC,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA;AAC3D,IAAA,OAAO,CAAA,EAAGA,OAAM,CAAA,EAAG,GAAG,CAAA,CAAA;AAAA,EACxB;AACA,EAAA,MAAM,SAAA,GAA0C;AAAA,IAC9C,KAAA,EAAO,OAAA;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,GAAA,EAAK,KAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AACA,EAAA,MAAM,MAAA,GAAS,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA,KAAM,UAAU,CAAC,CAAC,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAC1D,EAAA,OAAO,MAAM,CAAA,EAAG,MAAM,IAAI,GAAG,CAAA,CAAA,GAAK,GAAG,MAAM,CAAA,CAAA,CAAA;AAC7C;AAEO,SAAS,QAAA,GAAoB;AAClC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUC,iBAAS,KAAK,CAAA;AAC9C,EAAMA,kBAAU,MAAM;AACpB,IAAA,QAAA;AAAA,MACE,OAAO,cAAc,WAAA,IACnB,SAAA,CAAU,SAAS,WAAA,EAAY,CAAE,SAAS,KAAK;AAAA,KACnD;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO,KAAA;AACT;AASA,IAAM,MAAA,GAAeA,OAAA,CAAA,UAAA;AAAA,EACnB,CAAC,EAAE,QAAA,EAAU,KAAA,GAAQ,OAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACzD,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,OAAA,GAAU,cAAA,CAAe,QAAA,EAAU,KAAK,CAAA;AAE9C,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,uBACEvB,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,WAAA,EAAU,QAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,8KAAA;AAAA,YACA,sCAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG,KAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AACA,IAAA,uBACEA,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAU,SAAA,EAAuB,GAAG,OACvC,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AC9ErB,IAAM,OAAA,GAAgBwB,OAAA,CAAA,UAAA,CAMpB,CAAC,EAAE,SAAA,EAAW,MAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAClD,EAAA,MAAM,KAAA,mBACJxB,GAAAA,CAAC,iBAAA,EAAA,EAAkB,MACjB,QAAA,kBAAAA,GAAAA;AAAA,IAACyB,SAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,gFAAA;AAAA,QACA,SAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,qCAAA;AAAA,QACtB,QAAA,IAAY;AAAA,OACd;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAGF,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACErB,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACb,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,mGAAA;AAAA,UACV,aAAA,EAAY;AAAA;AAAA,OACd;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,KAAA;AACT,CAAC;AACD,OAAA,CAAQ,cAAcyB,SAAA,CAAiB,WAAA;AAEvC,IAAM,gBAAgB,CAAC,EAAE,QAAA,EAAU,GAAG,OAAM,KAAmB;AAC7D,EAAA,uBACEzB,GAAAA,CAAC,MAAA,EAAA,EAAQ,GAAG,KAAA,EACV,0BAAAA,GAAAA,CAAC,aAAA,EAAA,EAAc,SAAA,EAAU,+BAAA,EACvB,0BAAAA,GAAAA,CAAC,OAAA,EAAA,EAAQ,WAAU,6WAAA,EAChB,QAAA,EACH,GACF,CAAA,EACF,CAAA;AAEJ;AAEA,IAAM,YAAA,GAAqBwB,OAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BpB,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EAAkC,sBAAmB,EAAA,EAClE,QAAA,EAAA;AAAA,kBAAAJ,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,kCAAA,EAAmC,CAAA;AAAA,kBACrDA,GAAAA;AAAA,IAACyB,SAAA,CAAiB,KAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,wJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AACN,CAAA,EACF,CACD;AAED,YAAA,CAAa,WAAA,GAAcA,UAAiB,KAAA,CAAM,WAAA;AAElD,IAAM,WAAA,GAAoBD,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BxB,GAAAA;AAAA,EAACyB,SAAA,CAAiB,IAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,iDAAA,EAAmD,SAAS,CAAA;AAAA,IACzE,GAAG;AAAA;AACN,CACD;AAED,WAAA,CAAY,WAAA,GAAcA,UAAiB,IAAA,CAAK,WAAA;AAEhD,IAAM,YAAA,GAAqBD,OAAA,CAAA,UAAA,CAGzB,CAAC,KAAA,EAAO,wBACRxB,GAAAA;AAAA,EAACyB,SAAA,CAAiB,KAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAU,0BAAA;AAAA,IACT,GAAG;AAAA;AACN,CACD;AAED,YAAA,CAAa,WAAA,GAAcA,UAAiB,KAAA,CAAM,WAAA;AAElD,IAAM,YAAA,GAAqBD,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BxB,GAAAA;AAAA,EAACyB,SAAA,CAAiB,KAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,wNAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,YAAA,CAAa,WAAA,GAAcA,UAAiB,KAAA,CAAM,WAAA;AAElD,IAAM,gBAAA,GAAyBD,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BxB,GAAAA;AAAA,EAACyB,SAAA,CAAiB,SAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA;AAAA,IAC9C,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAcA,UAAiB,SAAA,CAAU,WAAA;AAE1D,IAAM,WAAA,GAAoBD,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,OAAO,YAAA,EAAa;AAC1B,EAAA,uBACExB,GAAAA;AAAA,IAACyB,SAAA,CAAiB,IAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,gTAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,WAAA,CAAY,WAAA,GAAcA,UAAiB,IAAA,CAAK,WAAA;AAEhD,IAAM,kBAAkB,CAAC;AAAA,EACvB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAqE;AACnE,EAAA,uBACEzB,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,uDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,sBAAY,IAAA,mBAAOA,GAAAA,CAAC,MAAA,EAAA,EAAO,UAAoB,CAAA,GAAK;AAAA;AAAA,GACvD;AAEJ;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AC5K9B,IAAM,WAAA,GAAmC,oBAAA,CAAA;AAEzC,IAAM,kBAAA,GAA0C,oBAAA,CAAA;AAEhD,IAAM,gBAAA,GAAwC,oBAAA,CAAA;AAE9C,IAAM,iBAAA,GAAyC,oBAAA,CAAA;AAE/C,IAAM,cAAA,GAAsC,oBAAA,CAAA;AAE5C,IAAM,qBAAA,GAA6C,oBAAA,CAAA;AAEnD,IAAM,qBAAA,GAA8B0B,OAAA,CAAA,UAAA,CAKlC,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3CtB,IAAAA;AAAA,EAAsB,oBAAA,CAAA,UAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,4MAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACDJ,GAAAA,CAAC2B,YAAAA,EAAA,EAAa,WAAU,iBAAA,EAAkB;AAAA;AAAA;AAC5C,CACD;AACD,qBAAA,CAAsB,cAAmC,oBAAA,CAAA,UAAA,CAAW,WAAA;AAEpE,IAAM,qBAAA,GAA8BD,mBAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B1B,GAAAA;AAAA,EAAsB,oBAAA,CAAA,UAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8eAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,qBAAA,CAAsB,cAAmC,oBAAA,CAAA,UAAA,CAAW,WAAA;AAEpE,IAAM,kBAAA,GAA2B0B,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B1B,GAAAA,CAAsB,oBAAA,CAAA,MAAA,EAArB,EACC,QAAA,kBAAAA,GAAAA;AAAA,EAAsB,oBAAA,CAAA,OAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,4kBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,kBAAA,CAAmB,cAAmC,oBAAA,CAAA,OAAA,CAAQ,WAAA;AAE9D,IAAM,eAAA,GAAwB0B,OAAA,CAAA,UAAA,CAK5B,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjC1B,GAAAA;AAAA,EAAsB,oBAAA,CAAA,IAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,+MAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,cAAmC,oBAAA,CAAA,IAAA,CAAK,WAAA;AAExD,IAAM,uBAAA,GAAgC0B,OAAA,CAAA,UAAA,CAGpC,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC7CtB,IAAAA;AAAA,EAAsB,oBAAA,CAAA,YAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,oNAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAJ,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAsB,oBAAA,CAAA,aAAA,EAArB,EACC,QAAA,kBAAAA,IAAC4B,KAAAA,EAAA,EAAM,SAAA,EAAU,SAAA,EAAU,GAC7B,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,uBAAA,CAAwB,cACD,oBAAA,CAAA,YAAA,CAAa,WAAA;AAEpC,IAAM,oBAAA,GAA6BF,OAAA,CAAA,UAAA,CAGjC,CAAC,EAAE,SAAA,EAAW,UAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCtB,IAAAA;AAAA,EAAsB,oBAAA,CAAA,SAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,oNAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAJ,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAsB,oBAAA,CAAA,aAAA,EAArB,EACC,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,GAC3C,CAAA,EACF,CAAA;AAAA,MACC;AAAA;AAAA;AACH,CACD;AACD,oBAAA,CAAqB,cAAmC,oBAAA,CAAA,SAAA,CAAU,WAAA;AAElE,IAAM,gBAAA,GAAyB0B,OAAA,CAAA,UAAA,CAK7B,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjC1B,GAAAA;AAAA,EAAsB,oBAAA,CAAA,KAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mDAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,cAAmC,oBAAA,CAAA,KAAA,CAAM,WAAA;AAE1D,IAAM,oBAAA,GAA6B0B,mBAGjC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B1B,GAAAA;AAAA,EAAsB,oBAAA,CAAA,SAAA;AAAA,EAArB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,2BAAA,EAA6B,SAAS,CAAA;AAAA,IACnD,GAAG;AAAA;AACN,CACD;AACD,oBAAA,CAAqB,cAAmC,oBAAA,CAAA,SAAA,CAAU,WAAA;AAElE,IAAM,sBAAsB,CAAC;AAAA,EAC3B,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAqE;AACnE,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,uDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,sBAAY,IAAA,mBAAOA,GAAAA,CAAC,MAAA,EAAA,EAAO,UAAoB,CAAA,GAAK;AAAA;AAAA,GACvD;AAEJ;AACA,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AClLlC,IAAM,SAAS,CAAC;AAAA,EACd,qBAAA,GAAwB,IAAA;AAAA,EACxB,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC6B,QAAA,CAAgB,IAAA;AAAA,EAAhB;AAAA,IACC,qBAAA;AAAA,IACC,GAAG;AAAA;AACN;AAEF,MAAA,CAAO,WAAA,GAAc,QAAA;AAErB,IAAM,gBAAgBA,QAAA,CAAgB;AAEtC,IAAM,eAAeA,QAAA,CAAgB;AAErC,IAAM,cAAcA,QAAA,CAAgB;AAEpC,IAAM,aAAA,GAAsBC,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B9B,GAAAA;AAAA,EAAC6B,QAAA,CAAgB,OAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,IACxD,GAAG;AAAA;AACN,CACD;AACD,aAAA,CAAc,WAAA,GAAcA,SAAgB,OAAA,CAAQ,WAAA;AAIpD,IAAM,aAAA,GAAsBC,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1C1B,KAAC,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,kBAAAJ,IAAC,aAAA,EAAA,EAAc,CAAA;AAAA,kBACfA,GAAAA;AAAA,IAAC6B,QAAA,CAAgB,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,+EAAA;AAAA,QACA,CAAC,IAAA,IAAQ,kBAAA;AAAA,QACT,SAAS,QAAA,IAAY,yBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,mDAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAzB,IAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kDAAA,EAAmD,CAAA;AAAA,QACjE;AAAA,OAAA,EACH;AAAA;AAAA;AACF,CAAA,EACF,CACD;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,eAAe,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA,CAAG,2CAAA,EAA6C,SAAS,CAAA;AAAA,IACnE,GAAG;AAAA;AACN;AAEF,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,eAAe,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA,CAAG,iCAAA,EAAmC,SAAS,CAAA;AAAA,IACzD,GAAG;AAAA;AACN;AAEF,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,WAAA,GAAoB8B,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B9B,GAAAA;AAAA,EAAC6B,QAAA,CAAgB,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAcA,SAAgB,KAAA,CAAM,WAAA;AAEhD,IAAM,iBAAA,GAA0BC,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B9B,GAAAA;AAAA,EAAC6B,QAAA,CAAgB,WAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAA,GAAcA,SAAgB,WAAA,CAAY,WAAA;AClG5D,IAAM,YAAA,GAAqC,qBAAA,CAAA;AAE3C,IAAM,mBAAA,GAA4C,qBAAA,CAAA;AAElD,IAAM,iBAAA,GAA0C,qBAAA,CAAA;AAEhD,IAAM,kBAAA,GAA2C,qBAAA,CAAA;AAEjD,IAAM,eAAA,GAAwC,qBAAA,CAAA;AAE9C,IAAM,sBAAA,GAA+C,qBAAA,CAAA;AAErD,IAAM,sBAAA,GAA+BE,OAAA,CAAA,UAAA,CAKnC,CAAC,EAAE,SAAA,EAAW,OAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACnD,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACE3B,IAAAA;AAAA,IAAuB,qBAAA,CAAA,UAAA;AAAA,IAAtB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,6LAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB,KAAA,IAAS,MAAA;AAAA,QACT;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDJ,GAAAA,CAAC2B,YAAAA,EAAA,EAAa,WAAU,SAAA,EAAU;AAAA;AAAA;AAAA,GACpC;AAEJ,CAAC;AACD,sBAAA,CAAuB,cACC,qBAAA,CAAA,UAAA,CAAW,WAAA;AAEnC,IAAM,sBAAA,GAA+BI,OAAA,CAAA,UAAA,CAGnC,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,EAAA,uBACE/B,GAAAA;AAAA,IAAuB,qBAAA,CAAA,UAAA;AAAA,IAAtB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,0dAAA;AAAA,QACA,CAAC,IAAA,IAAQ,sBAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,sBAAA,CAAuB,cACC,qBAAA,CAAA,UAAA,CAAW,WAAA;AAEnC,IAAM,mBAAA,GAA4B+B,OAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,EAAW,UAAA,GAAa,CAAA,EAAG,IAAA,EAAM,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC5E,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,EAAA,uBACE/B,GAAAA,CAAuB,qBAAA,CAAA,MAAA,EAAtB,EACC,QAAA,kBAAAA,GAAAA;AAAA,IAAuB,qBAAA,CAAA,OAAA;AAAA,IAAtB;AAAA,MACC,GAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,wiBAAA;AAAA,QACA,CAAC,IAAA,IAAQ,sBAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EACH;AAAA;AAAA,GACF,EACF,CAAA;AAEJ,CAAC;AACD,mBAAA,CAAoB,cAAoC,qBAAA,CAAA,OAAA,CAAQ,WAAA;AAEhE,IAAM,gBAAA,GAAyB+B,mBAK7B,CAAC,EAAE,WAAW,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACzC,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACE/B,GAAAA;AAAA,IAAuB,qBAAA,CAAA,IAAA;AAAA,IAAtB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,wRAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB,KAAA,IAAS,MAAA;AAAA,QACT;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,gBAAA,CAAiB,cAAoC,qBAAA,CAAA,IAAA,CAAK,WAAA;AAE1D,IAAM,wBAAA,GAAiC+B,OAAA,CAAA,UAAA,CAGrC,CAAC,EAAE,SAAA,EAAW,UAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACrD,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACE3B,IAAAA;AAAA,IAAuB,qBAAA,CAAA,YAAA;AAAA,IAAtB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,2NAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACA,OAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAuB,qBAAA,CAAA,aAAA,EAAtB,EACC,QAAA,kBAAAA,IAAC4B,KAAAA,EAAA,EAAM,SAAA,EAAU,SAAA,EAAU,GAC7B,CAAA,EACF,CAAA;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,wBAAA,CAAyB,cACD,qBAAA,CAAA,YAAA,CAAa,WAAA;AAErC,IAAM,qBAAA,GAA8BG,mBAGlC,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACE3B,IAAAA;AAAA,IAAuB,qBAAA,CAAA,SAAA;AAAA,IAAtB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,2NAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAuB,qBAAA,CAAA,aAAA,EAAtB,EACC,QAAA,kBAAAA,IAACgC,MAAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,GAC3C,CAAA,EACF,CAAA;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,qBAAA,CAAsB,cAAoC,qBAAA,CAAA,SAAA,CAAU,WAAA;AAEpE,IAAM,iBAAA,GAA0BD,OAAA,CAAA,UAAA,CAK9B,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjC/B,GAAAA;AAAA,EAAuB,qBAAA,CAAA,KAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mCAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,cAAoC,qBAAA,CAAA,KAAA,CAAM,WAAA;AAE5D,IAAM,qBAAA,GAA8B+B,mBAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B/B,GAAAA;AAAA,EAAuB,qBAAA,CAAA,SAAA;AAAA,EAAtB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,qBAAA,CAAsB,cAAoC,qBAAA,CAAA,SAAA,CAAU,WAAA;AAEpE,IAAM,uBAAuB,CAAC;AAAA,EAC5B,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAqE;AACnE,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,4CAAA,EAA8C,SAAS,CAAA;AAAA,MACpE,GAAG,KAAA;AAAA,MAEH,sBAAY,IAAA,mBAAOA,GAAAA,CAAC,MAAA,EAAA,EAAO,UAAoB,CAAA,GAAK;AAAA;AAAA,GACvD;AAEJ;AACA,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AC7OnC,SAAS,KAAA,CAAM,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACnE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,8HAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACzE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,uDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,IAAM,kBAAA,GAAqBE,GAAAA;AAAA,EACzB,6FAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,gBAAA;AAAA,QACT,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,uBACEF,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAW,EAAA,CAAG,kBAAA,CAAmB,EAAE,OAAA,EAAS,SAAA,EAAW,CAAC,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA8B;AAC5E,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,yGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC1E,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,+EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACtFA,IAAM,aAAA,GAAgBE,GAAAA;AAAA,EACpB,oFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,OAAA,EAAS,SAAA;AAAA,QACT,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM+B,MAAAA,GAAcC,OAAA,CAAA,UAAA,CAIlB,CAAC,EAAE,SAAA,EAAW,MAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBAChClC,GAAAA;AAAA,EAAgB,cAAA,CAAA,IAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,WAAW,EAAA,CAAG,aAAA,CAAc,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,IAC/C,GAAG;AAAA;AACN,CACD;AACDiC,MAAAA,CAAM,cAA6B,cAAA,CAAA,IAAA,CAAK,WAAA;ACzBxC,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqC;AAC3E,EAAA,uBACEjC,GAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qBAAA;AAAA,QACA,8EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,OAAA,GAAU,QAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAsE;AACpE,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,SAAA,EAAW,EAAA;AAAA,QACT,kBAAA;AAAA,QACA,iCAAA;AAAA,QACA,8BAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,wIAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,IAAM,aAAA,GAAgBE,GAAAA;AAAA,EACpB,oEAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,WAAA,EAAa;AAAA,QACX,QAAA,EAAU,CAAC,2CAA2C,CAAA;AAAA,QACtD,UAAA,EAAY;AAAA,UACV,uBAAA;AAAA,UACA,uCAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,UAAA,EAAY;AAAA,UACV,8HAAA;AAAA,UACA,uDAAA;AAAA,UACA;AAAA;AACF;AACF,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;AAEA,SAAS,KAAA,CAAM;AAAA,EACb,SAAA;AAAA,EACA,WAAA,GAAc,UAAA;AAAA,EACd,IAAA,EAAM,QAAA;AAAA,EACN,YAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAGG;AACD,EAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AACtC,EAAA,uBACEF,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAI,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAU,OAAA;AAAA,MACV,kBAAA,EAAkB,WAAA;AAAA,MAClB,cAAA,EAAc,eAAe,MAAA,GAAS,MAAA;AAAA,MACtC,WAAW,EAAA,CAAG,aAAA,CAAc,EAAE,WAAA,EAAa,GAAG,SAAS,CAAA;AAAA,MACtD,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,YAAA,oBAAgBJ,GAAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,YAAA,EAAa;AAAA;AAAA;AAAA,GAC7C,EACF,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AAC1E,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,+DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuC;AACrC,EAAA,uBACEA,GAAAA;AAAA,IAACiC,MAAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,8GAAA;AAAA,QACA,iKAAA;AAAA,QACA,2HAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACEjC,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA8B;AAC5E,EAAA,uBACEA,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,uHAAA;AAAA,QACA,8DAAA;AAAA,QACA,mEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAEG;AACD,EAAA,uBACEI,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,cAAA,EAAc,CAAC,CAAC,QAAA;AAAA,MAChB,SAAA,EAAW,EAAA;AAAA,QACT,2EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,0BAAA,EAA2B,CAAA;AAAA,QAC/C,4BACCA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,uEAAA;AAAA,YACV,WAAA,EAAU,yBAAA;AAAA,YAET;AAAA;AAAA;AACH;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAEG;AACD,EAAA,MAAM,OAAA,GAAUmC,QAAQ,MAAM;AAC5B,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,OAAO,QAAA;AAAA,IACT;AAEA,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,IAAI,QAAQ,MAAA,KAAW,CAAA,IAAK,MAAA,CAAO,CAAC,GAAG,OAAA,EAAS;AAC9C,MAAA,OAAO,MAAA,CAAO,CAAC,CAAA,CAAE,OAAA;AAAA,IACnB;AAEA,IAAA,uBACEnC,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sCACX,QAAA,EAAA,MAAA,CAAO,GAAA;AAAA,MACN,CAAC,KAAA,EAAO,KAAA,KACN,KAAA,EAAO,OAAA,oBAAWA,GAAAA,CAAC,IAAA,EAAA,EAAgB,QAAA,EAAA,KAAA,CAAM,OAAA,EAAA,EAAd,KAAsB;AAAA,KACrD,EACF,CAAA;AAAA,EAEJ,CAAA,EAAG,CAAC,QAAA,EAAU,MAAM,CAAC,CAAA;AAErB,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,sCAAA,EAAwC,SAAS,CAAA;AAAA,MAC9D,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ;ACrOA,IAAM,IAAA,GAAO;AASb,IAAM,gBAAA,GAAyBoC,sBAA4C,IAAI,CAAA;AAE/E,IAAM,YAAY,CAGhB;AAAA,EACA,GAAG;AACL,CAAA,KAA4C;AAC1C,EAAA,uBACEpC,GAAAA,CAAC,gBAAA,CAAiB,QAAA,EAAjB,EAA0B,OAAO,EAAE,IAAA,EAAM,KAAA,CAAM,IAAA,IAC9C,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAY,GAAG,OAAO,CAAA,EACzB,CAAA;AAEJ;AAEA,IAAM,eAAe,MAAM;AACzB,EAAA,MAAM,YAAA,GAAqBoC,mBAAW,gBAAgB,CAAA;AACtD,EAAA,MAAM,WAAA,GAAoBA,mBAAW,eAAe,CAAA;AACpD,EAAA,MAAM,EAAE,aAAA,EAAe,SAAA,EAAU,GAAI,cAAA,EAAe;AAEpD,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAAA,EAClE;AAEA,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAAA,EACjE;AAEA,EAAA,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,CAAa,IAAA,EAAM,SAAS,CAAA;AAE7D,EAAA,MAAM,EAAE,IAAG,GAAI,WAAA;AAEf,EAAA,OAAO;AAAA,IACL,EAAA;AAAA,IACA,MAAM,YAAA,CAAa,IAAA;AAAA,IACnB,UAAA,EAAY,GAAG,EAAE,CAAA,UAAA,CAAA;AAAA,IACjB,iBAAA,EAAmB,GAAG,EAAE,CAAA,sBAAA,CAAA;AAAA,IACxB,aAAA,EAAe,GAAG,EAAE,CAAA,kBAAA,CAAA;AAAA,IACpB,GAAG;AAAA,GACL;AACF;AAMA,IAAM,eAAA,GAAwBA,sBAA2C,IAAI,CAAA;AAE7E,IAAM,QAAA,GAAiBA,mBAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,KAAWA,OAAA,CAAA,KAAA,EAAM;AAEvB,EAAA,uBACEpC,IAAC,eAAA,CAAgB,QAAA,EAAhB,EAAyB,KAAA,EAAO,EAAE,IAAG,EACpC,QAAA,kBAAAA,IAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,WAAA,EAAa,SAAS,CAAA,EAAI,GAAG,OAAO,CAAA,EACnE,CAAA;AAEJ,CAAC;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,SAAA,GAAkBoC,mBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,KAAA,EAAO,UAAA,EAAW,GAAI,YAAA,EAAa;AAE3C,EAAA,uBACEpC,GAAAA;AAAA,IAACiC,MAAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,KAAA,IAAS,kBAAA,EAAoB,SAAS,CAAA;AAAA,MACpD,OAAA,EAAS,UAAA;AAAA,MACR,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,cAAoBG,OAAA,CAAA,UAAA,CAGxB,CAAC,EAAE,GAAG,KAAA,IAAS,GAAA,KAAQ;AACvB,EAAA,MAAM,EAAE,KAAA,EAAO,UAAA,EAAY,iBAAA,EAAmB,aAAA,KAAkB,YAAA,EAAa;AAE7E,EAAA,uBACEpC,GAAAA;AAAA,IAACQ,IAAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,UAAA;AAAA,MACJ,kBAAA,EACE,CAAC,KAAA,GACG,CAAA,EAAG,iBAAiB,CAAA,CAAA,GACpB,CAAA,EAAG,iBAAiB,CAAA,CAAA,EAAI,aAAa,CAAA,CAAA;AAAA,MAE3C,cAAA,EAAc,CAAC,CAAC,KAAA;AAAA,MACf,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,eAAA,GAAwB4B,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,iBAAA,EAAkB,GAAI,YAAA,EAAa;AAE3C,EAAA,uBACEpC,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,iBAAA;AAAA,MACJ,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,WAAA,GAAoBoC,mBAGxB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,MAAM,EAAE,KAAA,EAAO,aAAA,EAAc,GAAI,YAAA,EAAa;AAC9C,EAAA,MAAM,OAAO,KAAA,GAAQ,MAAA,CAAO,KAAA,EAAO,OAAA,IAAW,EAAE,CAAA,GAAI,QAAA;AAEpD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEpC,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,aAAA;AAAA,MACJ,SAAA,EAAW,EAAA,CAAG,sCAAA,EAAwC,SAAS,CAAA;AAAA,MAC9D,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AC1J1B,IAAM,SAAA,GAA+B,kBAAA,CAAA;AAErC,IAAM,gBAAA,GAAsC,kBAAA,CAAA;AAE5C,IAAM,gBAAA,GAAyBqC,OAAA,CAAA,UAAA,CAG7B,CAAC,EAAE,WAAW,KAAA,GAAQ,QAAA,EAAU,UAAA,GAAa,CAAA,EAAG,MAAM,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC9F,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,EAAA,uBACErC,GAAAA;AAAA,IAAoB,kBAAA,CAAA,OAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,4cAAA;AAAA,QACA,CAAC,IAAA,IAAQ,sBAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,gBAAA,CAAiB,cAAiC,kBAAA,CAAA,OAAA,CAAQ,WAAA;AChC1D,IAAM,KAAA,GAAcsC,OAAA,CAAA,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,MAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACtD,IAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AAEtC,IAAA,uBACEtC,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,+cAAA;AAAA,UACA,SAAS,QAAA,IAAY,cAAA;AAAA,UACrB,SAAS,SAAA,IAAa,8FAAA;AAAA,UACtB;AAAA,SACF;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;AClBpB,IAAM,aAAA,GAAgB;AAAA,EACpB,EAAA,EAAI,4BAAA;AAAA,EACJ,OAAA,EAAS,yCAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,QAAA,GAAiBuC,OAAA,CAAA,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,IAAA,GAAO,SAAA,EAAW,MAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAClE,IAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AAEtC,IAAA,MAAM,2BACJvC,GAAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,sVAAA;AAAA,UACA,cAAc,IAAI,CAAA;AAAA,UAClB,SAAS,QAAA,IAAY,aAAA;AAAA,UACrB,SAAS,SAAA,IAAa,0BAAA;AAAA,UACtB;AAAA,SACF;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,IAAI,SAAS,SAAA,EAAW;AACtB,MAAA,uBACEI,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EACd,QAAA,EAAA;AAAA,wBAAAJ,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,QACC;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ;AAEA,IAAA,OAAO,QAAA;AAAA,EACT;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;ACxCvB,SAAS,UAAA,CAAW;AAAA,EAClB,SAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAGG;AACD,EAAA,uBACEA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,eAAA,EAAe,WAAW,MAAA,GAAS,MAAA;AAAA,MACnC,IAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,0JAAA;AAAA,QACA,4BAAA;AAAA,QAEA,iDAAA;AAAA,QACA,+CAAA;AAAA,QACA,gIAAA;AAAA,QACA,0HAAA;AAAA,QAEA,0HAAA;AAAA,QAEA,gLAAA;AAAA,QAEA,SAAS,QAAA,IAAY,sBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,8FAAA;AAAA,QACtB,QAAA,IAAY,gCAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,IAAM,uBAAA,GAA0BE,GAAAA;AAAA,EAC9B,yPAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO;AAAA,QACL,cAAA,EACE,uEAAA;AAAA,QACF,YAAA,EACE,qEAAA;AAAA,QACF,aAAA,EACE,mGAAA;AAAA,QACF,WAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,KAAA,GAAQ,cAAA;AAAA,EACR,GAAG;AACL,CAAA,EAA+E;AAC7E,EAAA,uBACEF,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAU,mBAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,WAAW,EAAA,CAAG,uBAAA,CAAwB,EAAE,KAAA,EAAO,GAAG,SAAS,CAAA;AAAA,MAC3D,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,QAAA,IAAK,CAAA,CAAE,MAAA,CAAuB,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC/C,UAAA;AAAA,QACF;AACA,QAAA,CAAA,CAAE,aAAA,CAAc,aAAA,EAAe,aAAA,CAAc,OAAO,GAAG,KAAA,EAAM;AAAA,MAC/D,CAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,IAAM,wBAAA,GAA2BE,GAAAA;AAAA,EAC/B,6CAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,yGAAA;AAAA,QACJ,EAAA,EAAI,iDAAA;AAAA,QACJ,SAAA,EACE,6DAAA;AAAA,QACF,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,OAAA,GAAU,OAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,GAAG;AACL,CAAA,EACiD;AAC/C,EAAA,uBACEF,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,WAAA,EAAW,IAAA;AAAA,MACX,OAAA;AAAA,MACA,WAAW,EAAA,CAAG,wBAAA,CAAyB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC1D,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAA,CAAe,EAAE,SAAA,EAAW,GAAG,OAAM,EAAiC;AAC7E,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,wHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkC;AAChC,EAAA,uBACEA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAAM,QACvB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,8HAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqC;AACnC,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,mHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACnKA,IAAM,mBAAA,GAA4BwC,sBAA4B,SAAS,CAAA;AAEvE,SAAS,eAAA,GAAkB;AACzB,EAAA,OAAaA,mBAAW,mBAAmB,CAAA;AAC7C;AAOA,IAAM,QAAA,GAAiBA,OAAA,CAAA,UAAA,CAGrB,CAAC,EAAE,SAAA,EAAW,kBAAA,EAAoB,IAAA,EAAM,IAAA,GAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC9E,EAAA,MAAM,aAAA,GAAgB,KAAA;AAEtB,EAAA,uBACExC,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA,CAAC,mBAAA,CAAoB,QAAA,EAApB,EAA6B,KAAA,EAAO,IAAA,EACnC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,kBAAA,EAAoB,EAAA;AAAA,QAClB,wFAAA;AAAA,QACA,SAAS,SAAA,IAAa,iBAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA;AAAA,MACrD,GAAG;AAAA;AAAA,KAER,CAAA,EACF,CAAA;AAEJ,CAAC;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,aAAA,GAAsBwC,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BxC,IAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,mBAAA,EAAqB,SAAS,CAAA,EAAI,GAAG,OAAO,CAC1E;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,YAAA,GAAqBwC,mBAGzB,CAAC,EAAE,OAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACzC,EAAA,MAAM,eAAA,GAAwBA,mBAAW,eAAe,CAAA;AACxD,EAAA,MAAM,EAAE,IAAA,EAAM,YAAA,EAAc,UAAS,GAAI,eAAA,CAAgB,MAAM,KAAK,CAAA;AACpE,EAAA,MAAM,OAAO,YAAA,EAAa;AAC1B,EAAA,MAAM,OAAO,eAAA,EAAgB;AAE7B,EAAA,uBACEpC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,gHAAA;AAAA,QACA,SAAS,IAAA,IAAQ,iBAAA;AAAA,QACjB,SAAS,SAAA,IAAa,mBAAA;AAAA,QACtB,SAAS,IAAA,IAAQ,qBAAA;AAAA,QACjB,IAAA,KAAS,WAAW,sCAAA,GAAyC,sCAAA;AAAA,QAC7D,SAAS,SAAA,IAAa,8EAAA;AAAA,QACtB,QAAA,IAAY,8CAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA;AAAA,QACA,YAAA,oBACCJ,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uEAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EAA2D,CAAA,EAC5E;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,iBAAA,GAA0BwC,mBAG9B,CAAC,EAAE,GAAG,KAAA,EAAM,EAAG,wBACfxC,GAAAA,CAAC,SAAI,GAAA,EAAU,IAAA,EAAK,aAAa,GAAG,KAAA,EAClC,0BAAAA,GAAAA,CAAC,GAAA,EAAA,EAAI,GACP,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;ACxFhC,SAAS,SAAA,CAAU;AAAA,EACjB,SAAA;AAAA,EACA,IAAA,EAAM,QAAA;AAAA,EACN,GAAG;AACL,CAAA,EAEG;AACD,EAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AAEtC,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACEA,IAAC,iBAAA,EAAA,EAAkB,IAAA,EAAK,WACtB,QAAA,kBAAAI,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACb,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAW,EAAA;AAAA,YACT,yEAAA;AAAA,YACA;AAAA;AACF;AAAA,OACF;AAAA,sBACAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,MAAA;AAAA,UACL,WAAA,EAAU,YAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,kFAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG;AAAA;AAAA;AACN,KAAA,EACF,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,MAAA;AAAA,MACL,WAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,gCAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAS,QAAA,IAAY;AAAA,OACvB;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA2C;AACzC,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,WAAA,EAAY,YAAA;AAAA,MACZ,SAAA,EAAW,EAAA,CAAG,MAAA,EAAQ,SAAS,CAAA;AAAA,MAC9B,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,IAAM,YAAA,GAAeE,GAAAA;AAAA,EACnB,4PAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,gBAAA;AAAA,QACT,OAAA,EAAS,eAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,YAAA;AAAA,QACT,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,SAASuC,KAAAA,CAAK;AAAA,EACZ,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,IAAA,EAAM,QAAA;AAAA,EACN,QAAA,GAAW,KAAA;AAAA,EACX,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAKK;AACH,EAAA,MAAM,IAAA,GAAO,UAAUjC,IAAAA,GAAO,KAAA;AAC9B,EAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AAEtC,EAAA,uBACER,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,MAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,eAAA,EAAe,WAAW,MAAA,GAAS,MAAA;AAAA,MACnC,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,YAAA,CAAa,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,QAC9B,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,QAAA,IAAY,gCAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,IAAM,iBAAA,GAAoBE,GAAAA;AAAA,EACxB,oMAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,gBAAA;AAAA,QACT,IAAA,EAAM,wEAAA;AAAA,QACN,KAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEA,SAAS,SAAA,CAAU;AAAA,EACjB,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAyE;AACvE,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACEF,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,SAAA,EAAW,EAAA;AAAA,QACT,iBAAA,CAAkB,EAAE,OAAA,EAAS,CAAA;AAAA,QAC7B,IAAA,KAAS,QAAA,IAAY,OAAA,KAAY,SAAA,IAAa,YAAA;AAAA,QAC9C;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACzE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,mEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,SAAA,CAAU,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACvE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,gEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA8B;AAC3E,EAAA,uBACEA,GAAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,oFAAA;AAAA,QACA,mEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACzE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA;AAAA,MACjD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,oDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,oDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AC/OA,SAAS,GAAA,CAAI,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACjE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,KAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,8KAAA;AAAA,QACA,sCAAA;AAAA,QACA,wJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACtE,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,MACxD,GAAG;AAAA;AAAA,GACN;AAEJ;ACfA,SAAS,WAAA,CAAY;AAAA,EACnB,GAAG;AACL,CAAA,EAAuD;AACrD,EAAA,uBAAOA,GAAAA,CAAkB,gBAAA,CAAA,IAAA,EAAjB,EAAuB,GAAG,KAAA,EAAO,CAAA;AAC3C;AAEA,SAAS,YAAA,CAAa;AAAA,EACpB,GAAG;AACL,CAAA,EAAwD;AACtD,EAAA,uBAAOA,GAAAA,CAAkB,gBAAA,CAAA,KAAA,EAAjB,EAAwB,GAAG,KAAA,EAAO,CAAA;AAC5C;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,GAAG;AACL,CAAA,EAAyD;AACvD,EAAA,uBAAOA,GAAAA,CAAkB,gBAAA,CAAA,MAAA,EAAjB,EAAyB,GAAG,KAAA,EAAO,CAAA;AAC7C;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,GAAG;AACL,CAAA,EAA6D;AAC3D,EAAA,uBAAOA,GAAAA,CAAkB,gBAAA,CAAA,UAAA,EAAjB,EAA6B,GAAG,KAAA,EAAO,CAAA;AACjD;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,GAAG;AACL,CAAA,EAAsD;AACpD,EAAA,uBAAOA,GAAAA,CAAkB,gBAAA,CAAA,GAAA,EAAjB,EAAqB,WAAA,EAAU,aAAA,EAAe,GAAG,KAAA,EAAO,CAAA;AAClE;AAEA,IAAM,OAAA,GAAgB0C,OAAA,CAAA,UAAA,CAGpB,CAAC,EAAE,WAAW,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBAChC1C,GAAAA,CAAC,iBAAA,EAAA,EAAkB,MACjB,QAAA,kBAAAA,GAAAA;AAAA,EAAkB,gBAAA,CAAA,IAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,2DAAA;AAAA,MACA,CAAC,IAAA,IAAQ,YAAA;AAAA,MACT,SAAS,QAAA,IAAY,wBAAA;AAAA,MACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,MACtB;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CAAA,EACF,CACD;AACD,OAAA,CAAQ,cAA+B,gBAAA,CAAA,IAAA,CAAK,WAAA;AAE5C,IAAM,cAAA,GAAuB0C,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACE1C,GAAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,4QAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,cAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,cAAA,CAAe,cAA+B,gBAAA,CAAA,OAAA,CAAQ,WAAA;AAEtD,IAAM,iBAAA,GAA0B0C,OAAA,CAAA,UAAA,CAK9B,CAAC,EAAE,SAAA,EAAW,OAAO,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACnD,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACEtC,IAAAA;AAAA,IAAkB,gBAAA,CAAA,UAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,iMAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB,KAAA,IAAS,MAAA;AAAA,QACT;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDJ,GAAAA,CAAC2B,YAAAA,EAAA,EAAa,WAAU,iBAAA,EAAkB;AAAA;AAAA;AAAA,GAC5C;AAEJ,CAAC;AACD,iBAAA,CAAkB,cAA+B,gBAAA,CAAA,UAAA,CAAW,WAAA;AAE5D,IAAM,iBAAA,GAA0Be,OAAA,CAAA,UAAA,CAG9B,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,EAAA,uBACE1C,GAAAA;AAAA,IAAkB,gBAAA,CAAA,UAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,odAAA;AAAA,QACA,CAAC,IAAA,IAAQ,sBAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,iBAAA,CAAkB,cAA+B,gBAAA,CAAA,UAAA,CAAW,WAAA;AAE5D,IAAM,cAAA,GAAuB0C,OAAA,CAAA,UAAA;AAAA,EAI3B,CACE,EAAE,SAAA,EAAW,KAAA,GAAQ,SAAS,WAAA,GAAc,EAAA,EAAI,UAAA,GAAa,CAAA,EAAG,MAAM,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,IAC7F,GAAA,KACG;AACH,IAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,IAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,IAAA,uBACE1C,GAAAA,CAAkB,gBAAA,CAAA,MAAA,EAAjB,EACC,QAAA,kBAAAA,GAAAA;AAAA,MAAkB,gBAAA,CAAA,OAAA;AAAA,MAAjB;AAAA,QACC,GAAA;AAAA,QACA,KAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,qbAAA;AAAA,UACA,CAAC,IAAA,IAAQ,sBAAA;AAAA,UACT,SAAS,QAAA,IAAY,uBAAA;AAAA,UACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,UACtB;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEJ,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EACH;AAAA;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AACF;AACA,cAAA,CAAe,cAA+B,gBAAA,CAAA,OAAA,CAAQ,WAAA;AAEtD,IAAM,WAAA,GAAoB0C,mBAKxB,CAAC,EAAE,WAAW,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACzC,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACE1C,GAAAA;AAAA,IAAkB,gBAAA,CAAA,IAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,oMAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB,KAAA,IAAS,MAAA;AAAA,QACT;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,WAAA,CAAY,cAA+B,gBAAA,CAAA,IAAA,CAAK,WAAA;AAEhD,IAAM,mBAAA,GAA4B0C,OAAA,CAAA,UAAA,CAGhC,CAAC,EAAE,SAAA,EAAW,UAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACrD,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACEtC,IAAAA;AAAA,IAAkB,gBAAA,CAAA,YAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,yMAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACA,OAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAkB,gBAAA,CAAA,aAAA,EAAjB,EACC,QAAA,kBAAAA,IAAC4B,KAAAA,EAAA,EAAM,SAAA,EAAU,SAAA,EAAU,GAC7B,CAAA,EACF,CAAA;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,mBAAA,CAAoB,cAA+B,gBAAA,CAAA,YAAA,CAAa,WAAA;AAEhE,IAAM,gBAAA,GAAyBc,mBAG7B,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACEtC,IAAAA;AAAA,IAAkB,gBAAA,CAAA,SAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,yMAAA;AAAA,QACA,CAAC,IAAA,IAAQ,YAAA;AAAA,QACT,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAkB,gBAAA,CAAA,aAAA,EAAjB,EACC,QAAA,kBAAAA,IAACgC,MAAAA,EAAA,EAAO,SAAA,EAAU,sBAAA,EAAuB,GAC3C,CAAA,EACF,CAAA;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,gBAAA,CAAiB,cAA+B,gBAAA,CAAA,SAAA,CAAU,WAAA;AAE1D,IAAM,YAAA,GAAqBU,OAAA,CAAA,UAAA,CAKzB,CAAC,EAAE,SAAA,EAAW,OAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACjC1C,GAAAA;AAAA,EAAkB,gBAAA,CAAA,KAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,mCAAA;AAAA,MACA,KAAA,IAAS,MAAA;AAAA,MACT;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAA,CAAa,cAA+B,gBAAA,CAAA,KAAA,CAAM,WAAA;AAElD,IAAM,gBAAA,GAAyB0C,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B1C,GAAAA;AAAA,EAAkB,gBAAA,CAAA,SAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,cAA+B,gBAAA,CAAA,SAAA,CAAU,WAAA;AAE1D,IAAM,kBAAkB,CAAC;AAAA,EACvB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAqE;AACnE,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,uDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,sBAAY,IAAA,mBAAOA,GAAAA,CAAC,MAAA,EAAA,EAAO,UAAoB,CAAA,GAAK;AAAA;AAAA,GACvD;AAEJ;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AC5S9B,IAAM,cAAA,GAAuB2C,OAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5D,EAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AACtC,EAAA,uBACE3C,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAI,IAAAA;AAAA,IAAyB,uBAAA,CAAA,IAAA;AAAA,IAAxB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,iEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDJ,IAAC,sBAAA,EAAA,EAAuB;AAAA;AAAA;AAAA,GAC1B,EACF,CAAA;AAEJ,CAAC;AACD,cAAA,CAAe,cAAsC,uBAAA,CAAA,IAAA,CAAK,WAAA;AAE1D,IAAM,kBAAA,GAA2B2C,mBAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,OAAO,YAAA,EAAa;AAC1B,EAAA,uBACE3C,GAAAA;AAAA,IAAyB,uBAAA,CAAA,IAAA;AAAA,IAAxB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,yDAAA;AAAA,QACA,IAAA,KAAS,YAAY,WAAA,GAAc,WAAA;AAAA,QACnC;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,kBAAA,CAAmB,cAAsC,uBAAA,CAAA,IAAA,CAAK,WAAA;AAE9D,IAAM,kBAAA,GAA6C,uBAAA,CAAA;AAEnD,IAAM,0BAAA,GAA6BE,GAAAA;AAAA,EACjC;AACF;AAEA,IAAM,qBAAA,GAA8ByC,mBAGlC,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,MAAM,0BACJvC,IAAAA;AAAA,IAAyB,uBAAA,CAAA,OAAA;AAAA,IAAxB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,0BAAA,EAA2B;AAAA,QAC3B,OAAA;AAAA,QACA,SAAS,QAAA,IAAY,cAAA;AAAA,QACrB,SAAS,SAAA,IAAa,UAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QAAU,GAAA;AAAA,wBACXJ,GAAAA;AAAA,UAAC4C,WAAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,4FAAA;AAAA,YACV,aAAA,EAAY;AAAA;AAAA;AACd;AAAA;AAAA,GACF;AAGF,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACExC,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EACd,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAU;AAAA;AAAA,OACZ;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,OAAA;AACT,CAAC;AACD,qBAAA,CAAsB,cAAsC,uBAAA,CAAA,OAAA,CAAQ,WAAA;AAEpE,IAAM,qBAAA,GAA8B2C,mBAGlC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B3C,GAAAA;AAAA,EAAyB,uBAAA,CAAA,OAAA;AAAA,EAAxB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,uVAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,qBAAA,CAAsB,cAAsC,uBAAA,CAAA,OAAA,CAAQ,WAAA;AAEpE,IAAM,kBAAA,GAA2B2C,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,SAAA,EAAW,SAAS,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACrD,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,IAAI,CAAC,OAAA,IAAW,IAAA,KAAS,SAAA,EAAW;AAClC,IAAA,uBACEvC,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EACd,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAU;AAAA;AAAA,OACZ;AAAA,sBACAA,GAAAA;AAAA,QAAyB,uBAAA,CAAA,IAAA;AAAA,QAAxB;AAAA,UACC,GAAA;AAAA,UACA,OAAA;AAAA,UACA,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS,CAAA;AAAA,UAClC,GAAG,KAAA;AAAA,UAEH;AAAA;AAAA;AACH,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAyB,uBAAA,CAAA,IAAA;AAAA,IAAxB;AAAA,MACC,GAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,SAAA;AAAA,QACA,CAAC,OAAA,IAAW,IAAA,KAAS,QAAA,IAAY;AAAA,OACnC;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;AACD,kBAAA,CAAmB,cAAsC,uBAAA,CAAA,IAAA,CAAK,WAAA;AAE9D,IAAM,sBAAA,GAA+B2C,mBAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACE3C,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gDACb,QAAA,kBAAAI,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACb,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAU;AAAA;AAAA,OACZ;AAAA,sBACAA,GAAAA;AAAA,QAAyB,uBAAA,CAAA,QAAA;AAAA,QAAxB;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,uVAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,GAAA;AAAA,UACC,GAAG;AAAA;AAAA;AACN,KAAA,EACF,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gDACb,QAAA,kBAAAA,GAAAA;AAAA,IAAyB,uBAAA,CAAA,QAAA;AAAA,IAAxB;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,uVAAA;AAAA,QACA,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ,CAAC;AACD,sBAAA,CAAuB,cAAsC,uBAAA,CAAA,QAAA,CAAS,WAAA;AAEtE,IAAM,uBAAA,GAAgC2C,mBAGpC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B3C,GAAAA;AAAA,EAAyB,uBAAA,CAAA,SAAA;AAAA,EAAxB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,8LAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wEAAA,EAAyE;AAAA;AAC1F,CACD;AACD,uBAAA,CAAwB,cAAsC,uBAAA,CAAA,SAAA,CAAU,WAAA;AC7MxE,IAAM,aAAa,CAAC;AAAA,EAClB,SAAA;AAAA,EACA,IAAA,EAAM,QAAA;AAAA,EACN,GAAG;AACL,CAAA,KAEM;AACJ,EAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AAEtC,EAAA,uBACEA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,YAAA;AAAA,MACL,YAAA,EAAW,YAAA;AAAA,MACX,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,MAC5D,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,iBAAA,GAA0B6C,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1B7C,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,kCAAA,EAAoC,SAAS,CAAA;AAAA,IAC1D,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,cAAA,GAAuB6C,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B7C,IAAC,IAAA,EAAA,EAAG,GAAA,EAAU,WAAW,EAAA,CAAG,EAAA,EAAI,SAAS,CAAA,EAAI,GAAG,OAAO,CACxD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAa7B,IAAM,mBAAA,GAAsB;AAAA,EAC1B,EAAA,EAAI,SAAA;AAAA,EACJ,OAAA,EAAS,WAAA;AAAA,EACT,EAAA,EAAI,qBAAA;AAAA,EACJ,IAAA,EAAM;AACR,CAAA;AAEA,IAAM,uBAAA,GAA0B;AAAA,EAC9B,EAAA,EAAI,kBAAA;AAAA,EACJ,OAAA,EAAS,gBAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,iBAAiB,CAAC;AAAA,EACtB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,EAAM,QAAA;AAAA,EACN,IAAA,GAAO,SAAA;AAAA,EACP,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,OAAA,EAAO,IAAA;AAAA,IACP,OAAA,EAAS,WAAW,SAAA,GAAY,OAAA;AAAA,IAChC,IAAA,EAAK,MAAA;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,EAAW,EAAA;AAAA,MACT,oBAAoB,IAAI,CAAA;AAAA,MACxB,QAAA,IAAY,gCAAA;AAAA,MACZ;AAAA,KACF;AAAA,IAEA,QAAA,kBAAAA,GAAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,QAClC,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,QAAA,EAAU,QAAA,GAAW,EAAA,GAAK,KAAA,CAAM,QAAA;AAAA,QAC/B,GAAG;AAAA;AAAA;AACN;AACF;AAEF,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,qBAAqB,CAAC;AAAA,EAC1B,SAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,GAAG;AACL,CAAA,qBACEI,IAAAA;AAAA,EAAC,cAAA;AAAA,EAAA;AAAA,IACC,YAAA,EAAW,qBAAA;AAAA,IACX,WAAW,EAAA,CAAG,uBAAA,CAAwB,IAAI,CAAA,EAAG,uBAAuB,SAAS,CAAA;AAAA,IAC5E,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAJ,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,sBACjCA,GAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA,UAAA,EAAQ;AAAA;AAAA;AAChB;AAEF,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,iBAAiB,CAAC;AAAA,EACtB,SAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,GAAG;AACL,CAAA,qBACEI,IAAAA;AAAA,EAAC,cAAA;AAAA,EAAA;AAAA,IACC,YAAA,EAAW,iBAAA;AAAA,IACX,WAAW,EAAA,CAAG,uBAAA,CAAwB,IAAI,CAAA,EAAG,uBAAuB,SAAS,CAAA;AAAA,IAC5E,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAJ,GAAAA,CAAC,UAAK,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,sBACVA,GAAAA,CAAC2B,YAAAA,EAAA,EAAa,WAAU,SAAA,EAAU;AAAA;AAAA;AACpC;AAEF,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,qBAAqB,CAAC;AAAA,EAC1B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEvB,IAAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,aAAA,EAAW,IAAA;AAAA,IACX,SAAA,EAAW,EAAA,CAAG,0CAAA,EAA4C,SAAS,CAAA;AAAA,IAClE,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAJ,GAAAA,CAAC8C,cAAAA,EAAA,EAAe,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,sBACpC9C,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,YAAA,EAAU;AAAA;AAAA;AACtC;AAEF,kBAAA,CAAmB,WAAA,GAAc,oBAAA;ACzIjC,IAAM,OAAA,GAA2B,gBAAA,CAAA;AAEjC,IAAM,cAAA,GAAkC,gBAAA,CAAA;AAExC,IAAM,aAAA,GAAiC,gBAAA,CAAA;AAEvC,IAAM,cAAA,GAAuB+C,OAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,WAAW,KAAA,GAAQ,QAAA,EAAU,UAAA,GAAa,CAAA,EAAG,MAAM,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC9F,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,EAAA,uBACE/C,GAAAA,CAAkB,gBAAA,CAAA,MAAA,EAAjB,EACC,QAAA,kBAAAA,GAAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,ycAAA;AAAA,QACA,CAAC,IAAA,IAAQ,sBAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EACH;AAAA;AAAA,GACF,EACF,CAAA;AAEJ,CAAC;AACD,cAAA,CAAe,cAA+B,gBAAA,CAAA,OAAA,CAAQ,WAAA;ACtCtD,IAAM,QAAA,GAAiBgD,OAAA,CAAA,UAAA,CAKrB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,GAAW,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnDhD,GAAAA;AAAA,EAAmB,iBAAA,CAAA,IAAA;AAAA,EAAlB;AAAA,IACC,GAAA;AAAA,IACA,iBAAe,QAAA,IAAY,MAAA;AAAA,IAC3B,eAAA,EAAe,WAAW,EAAA,GAAK,MAAA;AAAA,IAC/B,SAAA,EAAW,EAAA;AAAA,MACT,+DAAA;AAAA,MACA,QAAA,IAAY,YAAA;AAAA,MACZ;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA;AAAA,MAAmB,iBAAA,CAAA,SAAA;AAAA,MAAlB;AAAA,QACC,SAAA,EAAU,gDAAA;AAAA,QACV,OAAO,EAAE,SAAA,EAAW,eAAe,GAAA,IAAO,KAAA,IAAS,EAAE,CAAA,EAAA,CAAA;AAAK;AAAA;AAC5D;AACF,CACD;AACD,QAAA,CAAS,cAAgC,iBAAA,CAAA,IAAA,CAAK,WAAA;ACxB9C,IAAMiD,WAAAA,GAAmBC,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACElD,GAAAA;AAAA,IAAqB,mBAAA,CAAA,IAAA;AAAA,IAApB;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,YAAA,EAAc,SAAS,CAAA;AAAA,MACpC,GAAG,KAAA;AAAA,MACJ;AAAA;AAAA,GACF;AAEJ,CAAC;AACDiD,WAAAA,CAAW,cAAkC,mBAAA,CAAA,IAAA,CAAK,WAAA;AAElD,IAAM,cAAA,GAAuBC,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACElD,GAAAA;AAAA,IAAqB,mBAAA,CAAA,IAAA;AAAA,IAApB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,0OAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAqB,mBAAA,CAAA,SAAA,EAApB,EAA8B,SAAA,EAAU,kCAAA,EACvC,QAAA,kBAAAA,GAAAA,CAACgC,MAAAA,EAAA,EAAO,SAAA,EAAU,uCAAA,EAAwC,CAAA,EAC5D;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,cAAA,CAAe,cAAkC,mBAAA,CAAA,IAAA,CAAK,WAAA;AC5BtD,IAAM,sBAAsB,CAAC;AAAA,EAC3B,SAAA;AAAA,EACA,WAAA,GAAc,YAAA;AAAA,EACd,GAAG;AACL,CAAA,qBACEhC,GAAAA;AAAA,EAACmD,KAAA;AAAA,EAAA;AAAA,IACC,WAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAsB,SAAS,CAAA;AAAA,IAC5C,GAAG;AAAA;AACN;AAGF,IAAM,cAAA,GAAiB;AAEvB,IAAM,kBAAkB,CAAC;AAAA,EACvB,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBAGEnD,GAAAA;AAAA,EAACoD,WAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,ykBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEH,QAAA,EAAA,UAAA,oBACCpD,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2EAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,aAAA,EAAc,CAAA,EACxC;AAAA;AAEJ;ACvCF,IAAM,UAAA,GAAmBqD,OAAA,CAAA,UAAA,CAKvB,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,UAAA,GAAa,UAAA,EAAY,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC7DjD,IAAAA;AAAA,EAAqB,mBAAA,CAAA,IAAA;AAAA,EAApB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAClD,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAJ,GAAAA,CAAqB,mBAAA,CAAA,QAAA,EAApB,EAA6B,SAAA,EAAU,mCACrC,QAAA,EACH,CAAA;AAAA,MACC,UAAA,KAAe,YAAA,oBAAgBA,GAAAA,CAAC,SAAA,EAAA,EAAU,CAAA;AAAA,MAC1C,eAAe,UAAA,oBAAcA,GAAAA,CAAC,SAAA,EAAA,EAAU,aAAY,YAAA,EAAa,CAAA;AAAA,sBAClEA,GAAAA,CAAqB,mBAAA,CAAA,MAAA,EAApB,EAA2B;AAAA;AAAA;AAC9B,CACD;AACD,UAAA,CAAW,cAAkC,mBAAA,CAAA,IAAA,CAAK,WAAA;AAElD,IAAM,SAAA,GAAkBqD,OAAA,CAAA,UAAA,CAGtB,CAAC,EAAE,SAAA,EAAW,WAAA,GAAc,UAAA,EAAY,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpDrD,GAAAA;AAAA,EAAqB,mBAAA,CAAA,mBAAA;AAAA,EAApB;AAAA,IACC,GAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,+CAAA;AAAA,MACA,gBAAgB,UAAA,IACd,oDAAA;AAAA,MACF,gBAAgB,YAAA,IACd,sDAAA;AAAA,MACF;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAqB,mBAAA,CAAA,eAAA,EAApB,EAAoC,WAAU,wCAAA,EAAyC;AAAA;AAC1F,CACD;AACD,SAAA,CAAU,cAAkC,mBAAA,CAAA,mBAAA,CAAoB,WAAA;ACrChE,IAAM,MAAA,GAAyB,eAAA,CAAA;AAE/B,IAAM,WAAA,GAA8B,eAAA,CAAA;AAEpC,IAAM,WAAA,GAA8B,eAAA,CAAA;AAEpC,IAAM,aAAA,GAAsBsD,OAAA,CAAA,UAAA,CAM1B,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,IAAA,EAAM,QAAA,EAAU,IAAA,GAAO,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC9E,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,EAAA,uBACElD,IAAAA;AAAA,IAAiB,eAAA,CAAA,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,ySAAA;AAAA,QACA,SAAS,IAAA,IAAQ,yBAAA;AAAA,QACjB,SAAS,SAAA,IAAa,wBAAA;AAAA,QACtB,SAAS,IAAA,IAAQ,4BAAA;AAAA,QACjB,SAAS,QAAA,IAAY,sBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,8FAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDJ,GAAAA,CAAiB,eAAA,CAAA,IAAA,EAAhB,EAAqB,OAAA,EAAO,IAAA,EAC3B,QAAA,kBAAAA,GAAAA,CAAC4C,WAAAA,EAAA,EAAY,SAAA,EAAU,oBAAA,EAAqB,CAAA,EAC9C;AAAA;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,aAAA,CAAc,cAA8B,eAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,oBAAA,GAA6BU,mBAGjC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BtD,GAAAA;AAAA,EAAiB,eAAA,CAAA,cAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,SAAA,EAAU;AAAA;AACjC,CACD;AACD,oBAAA,CAAqB,cAA8B,eAAA,CAAA,cAAA,CAAe,WAAA;AAElE,IAAM,sBAAA,GAA+BsD,mBAGnC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BtD,GAAAA;AAAA,EAAiB,eAAA,CAAA,gBAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAC4C,WAAAA,EAAA,EAAY,WAAU,SAAA,EAAU;AAAA;AACnC,CACD;AACD,sBAAA,CAAuB,cACL,eAAA,CAAA,gBAAA,CAAiB,WAAA;AAEnC,IAAM,aAAA,GAAsBU,OAAA,CAAA,UAAA,CAG1B,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,QAAA,GAAW,QAAA,EAAU,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AACjF,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,EAAA,uBACEtD,GAAAA,CAAiB,eAAA,CAAA,MAAA,EAAhB,EACC,QAAA,kBAAAI,IAAAA;AAAA,IAAiB,eAAA,CAAA,OAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,0hBAAA;AAAA,QACA,CAAC,IAAA,IAAQ,sBAAA;AAAA,QACT,SAAS,QAAA,IAAY,uBAAA;AAAA,QACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,QACtB,aAAa,QAAA,IACX,iIAAA;AAAA,QACF;AAAA,OACF;AAAA,MACA,QAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,IAAC,oBAAA,EAAA,EAAqB,CAAA;AAAA,wBACtBA,GAAAA;AAAA,UAAiB,eAAA,CAAA,QAAA;AAAA,UAAhB;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,KAAA;AAAA,cACA,aAAa,QAAA,IACX;AAAA,aACJ;AAAA,YAEA,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EACH;AAAA;AAAA,SACF;AAAA,wBACAA,IAAC,sBAAA,EAAA,EAAuB;AAAA;AAAA;AAAA,GAC1B,EACF,CAAA;AAEJ,CAAC;AACD,aAAA,CAAc,cAA8B,eAAA,CAAA,OAAA,CAAQ,WAAA;AAEpD,IAAM,WAAA,GAAoBsD,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BtD,GAAAA;AAAA,EAAiB,eAAA,CAAA,KAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,SAAS,CAAA;AAAA,IAChE,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA8B,eAAA,CAAA,KAAA,CAAM,WAAA;AAEhD,IAAM,UAAA,GAAmBsD,mBAGvB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5C,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACElD,IAAAA;AAAA,IAAiB,eAAA,CAAA,IAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,2NAAA;AAAA,QACA,SAAS,QAAA,IAAY,YAAA;AAAA,QACrB,SAAS,SAAA,IAAa,YAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAAA,EACd,0BAAAA,GAAAA,CAAiB,eAAA,CAAA,aAAA,EAAhB,EACC,QAAA,kBAAAA,IAAC4B,KAAAA,EAAA,EAAM,SAAA,EAAU,SAAA,EAAU,GAC7B,CAAA,EACF,CAAA;AAAA,wBAEA5B,GAAAA,CAAiB,eAAA,CAAA,QAAA,EAAhB,EAA0B,QAAA,EAAS;AAAA;AAAA;AAAA,GACtC;AAEJ,CAAC;AACD,UAAA,CAAW,cAA8B,eAAA,CAAA,IAAA,CAAK,WAAA;AAE9C,IAAM,eAAA,GAAwBsD,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BtD,GAAAA;AAAA,EAAiB,eAAA,CAAA,SAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,cAA8B,eAAA,CAAA,SAAA,CAAU,WAAA;ACpKxD,IAAM,KAAA,GAAuBuD,eAAA,CAAA;AAE7B,IAAM,YAAA,GAA8BA,eAAA,CAAA;AAEpC,IAAM,UAAA,GAA4BA,eAAA,CAAA;AAElC,IAAM,WAAA,GAA6BA,eAAA,CAAA;AAEnC,IAAM,YAAA,GAAqBC,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BxD,GAAAA;AAAA,EAAgBuD,eAAA,CAAA,OAAA;AAAA,EAAf;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,yJAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IACJ;AAAA;AACF,CACD;AACD,YAAA,CAAa,cAA6BA,eAAA,CAAA,OAAA,CAAQ,WAAA;AAElD,IAAM,aAAA,GAAgBrD,GAAAA;AAAA,EACpB,kMAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,GAAA,EAAK,mGAAA;AAAA,QACL,MAAA,EACE,4GAAA;AAAA,QACF,IAAA,EAAM,+HAAA;AAAA,QACN,KAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,kBAAA,GAA6C;AAAA,EACjD,KAAA,EAAO,eAAA;AAAA,EACP,IAAA,EAAM,eAAA;AAAA,EACN,GAAA,EAAK,eAAA;AAAA,EACL,MAAA,EAAQ;AACV,CAAA;AAEA,IAAM,mBAAA,GAA8C;AAAA,EAClD,KAAA,EAAO,cAAA;AAAA,EACP,IAAA,EAAM,cAAA;AAAA,EACN,GAAA,EAAK,cAAA;AAAA,EACL,MAAA,EAAQ;AACV,CAAA;AASA,IAAM,eAAqBsD,OAAA,CAAA,UAAA,CAGzB,CAAC,EAAE,IAAA,GAAO,OAAA,EAAS,WAAW,QAAA,EAAU,SAAA,EAAW,MAAM,GAAG,KAAA,IAAS,GAAA,qBACrEpD,KAAC,WAAA,EAAA,EAAY,SAAA,EAAW,aAAa,MAAA,EACnC,QAAA,EAAA;AAAA,kBAAAJ,IAAC,YAAA,EAAA,EAAa,CAAA;AAAA,kBACdA,GAAAA;AAAA,IAAgBuD,eAAA,CAAA,OAAA;AAAA,IAAf;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,aAAA,CAAc,EAAE,IAAA,EAAM,CAAA;AAAA,QACtB,SAAS,QAAA,IAAY,CAAA,EAAG,kBAAA,CAAmB,IAAA,IAAQ,OAAO,CAAC,CAAA,UAAA,CAAA;AAAA,QAC3D,SAAS,SAAA,IAAa,CAAA,EAAG,mBAAA,CAAoB,IAAA,IAAQ,OAAO,CAAC,CAAA,qCAAA,CAAA;AAAA,QAC7D;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAnD,IAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACDA,IAAAA,CAAgBmD,eAAA,CAAA,KAAA,EAAf,EAAqB,WAAU,0OAAA,EAC9B,QAAA,EAAA;AAAA,0BAAAvD,GAAAA,CAACyD,CAAAA,EAAA,EAAE,SAAA,EAAU,SAAA,EAAU,CAAA;AAAA,0BACvBzD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,OAAA,EAAK;AAAA,SAAA,EACjC;AAAA,OAAA,EACF;AAAA;AAAA;AACF,CAAA,EACF,CACD;AACD,YAAA,CAAa,cAA6BuD,eAAA,CAAA,OAAA,CAAQ,WAAA;AAElD,IAAM,cAAc,CAAC;AAAA,EACnB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEvD,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,kDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,cAAc,CAAC;AAAA,EACnB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACEA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAA;AAAA,MACT,+DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,UAAA,GAAmBwD,mBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BxD,GAAAA;AAAA,EAAgBuD,eAAA,CAAA,KAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA;AAAA,IAC/D,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,cAA6BA,eAAA,CAAA,KAAA,CAAM,WAAA;AAE9C,IAAM,gBAAA,GAAyBC,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BxD,GAAAA;AAAA,EAAgBuD,eAAA,CAAA,WAAA;AAAA,EAAf;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,cAA6BA,eAAA,CAAA,WAAA,CAAY,WAAA;ACvJ1D,IAAM,iBAAA,GAAoB,GAAA;AAEnB,SAAS,WAAA,GAAc;AAC5B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAUG,iBAA8B,MAAS,CAAA;AAE7E,EAAMA,kBAAU,MAAM;AACpB,IAAA,MAAM,MAAM,MAAA,CAAO,UAAA,CAAW,CAAA,YAAA,EAAe,iBAAA,GAAoB,CAAC,CAAA,GAAA,CAAK,CAAA;AACvE,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,WAAA,CAAY,MAAA,CAAO,aAAa,iBAAiB,CAAA;AAAA,IACnD,CAAA;AACA,IAAA,GAAA,CAAI,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAA,WAAA,CAAY,MAAA,CAAO,aAAa,iBAAiB,CAAA;AACjD,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,CAAC,CAAC,QAAA;AACX;AChBA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyC;AACvC,EAAA,uBACE1D,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA;AAAA,MAC3D,GAAG;AAAA;AAAA,GACN;AAEJ;ACFA,IAAM,eAAA,GAAmC,gBAAA,CAAA;AAEzC,IAAM2D,QAAAA,GAA2B,gBAAA,CAAA;AAEjC,IAAM,cAAA,GAAkC,gBAAA,CAAA;AAExC,IAAM,cAAA,GAAuBC,OAAA,CAAA,UAAA,CAG3B,CAAC,EAAE,SAAA,EAAW,UAAA,GAAa,CAAA,EAAG,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,wBAC1D5D,GAAAA;AAAA,EAAkB,gBAAA,CAAA,OAAA;AAAA,EAAjB;AAAA,IACC,GAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,sbAAA;AAAA,MACA,SAAS,QAAA,IAAY,sBAAA;AAAA,MACrB,SAAS,SAAA,IAAa,iDAAA;AAAA,MACtB;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAChB,QAAA,EACH;AAAA;AACF,CACD;AACD,cAAA,CAAe,cAA+B,gBAAA,CAAA,OAAA,CAAQ,WAAA;ACNtD,IAAM,mBAAA,GAAsB,eAAA;AAC5B,IAAM,sBAAA,GAAyB,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,CAAA;AAC9C,IAAM,aAAA,GAAgB,OAAA;AACtB,IAAM,oBAAA,GAAuB,OAAA;AAC7B,IAAM,kBAAA,GAAqB,MAAA;AAC3B,IAAM,yBAAA,GAA4B,GAAA;AAalC,IAAM,cAAA,GAAuB,sBAA0C,IAAI,CAAA;AAE3E,SAAS,UAAA,GAAa;AACpB,EAAA,MAAM,OAAA,GAAgB,mBAAW,cAAc,CAAA;AAC/C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,mDAAmD,CAAA;AAAA,EACrE;AAEA,EAAA,OAAO,OAAA;AACT;AAEA,IAAM,eAAA,GAAwB,OAAA,CAAA,UAAA;AAAA,EAqB5B,CACE;AAAA,IACE,WAAA,GAAc,IAAA;AAAA,IACd,IAAA,EAAM,QAAA;AAAA,IACN,YAAA,EAAc,WAAA;AAAA,IACd,gBAAA,GAAmB,GAAA;AAAA,IACnB,MAAA,GAAS,UAAA;AAAA,IACT,YAAA,GAAe,aAAA;AAAA,IACf,gBAAA,GAAmB,kBAAA;AAAA,IACnB,SAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,mBAAmB,WAAA,EAAY;AACrC,IAAA,MAAM,UAAA,GAAmB,eAA8B,IAAI,CAAA;AAC3D,IAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAClC,iBAA6B,IAAI,CAAA;AACzC,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAU,iBAEtD,IAAI,CAAA;AACN,IAAA,MAAM,WAAW,iBAAA,IAAqB,gBAAA;AACtC,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAU,iBAAS,KAAK,CAAA;AAIxD,IAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAU,iBAAS,WAAW,CAAA;AACpD,IAAA,MAAM,OAAO,QAAA,IAAY,KAAA;AACzB,IAAA,MAAM,OAAA,GAAgB,OAAA,CAAA,WAAA;AAAA,MACpB,CAAC,KAAA,KAAmD;AAClD,QAAA,MAAM,YAAY,OAAO,KAAA,KAAU,UAAA,GAAa,KAAA,CAAM,IAAI,CAAA,GAAI,KAAA;AAC9D,QAAA,IAAI,WAAA,EAAa;AACf,UAAA,WAAA,CAAY,SAAS,CAAA;AAAA,QACvB,CAAA,MAAO;AACL,UAAA,QAAA,CAAS,SAAS,CAAA;AAAA,QACpB;AAGA,QAAA,QAAA,CAAS,SAAS,CAAA,EAAG,mBAAmB,CAAA,CAAA,EAAI,SAAS,qBAAqB,sBAAsB,CAAA,CAAA;AAAA,MAClG,CAAA;AAAA,MACA,CAAC,aAAa,IAAI;AAAA,KACpB;AAGA,IAAA,MAAM,aAAA,GAAsB,oBAAY,MAAM;AAC5C,MAAA,OAAO,QAAA,GACH,aAAA,CAAc,CAAC6D,KAAAA,KAAS,CAACA,KAAI,CAAA,GAC7B,OAAA,CAAQ,CAACA,KAAAA,KAAS,CAACA,KAAI,CAAA;AAAA,IAC7B,CAAA,EAAG,CAAC,QAAA,EAAU,OAAA,EAAS,aAAa,CAAC,CAAA;AAErC,IAAM,kBAAU,MAAM;AACpB,MAAA,MAAM,OAAO,UAAA,CAAW,OAAA;AACxB,MAAA,IAAI,CAAC,IAAA,EAAM;AACX,MAAA,kBAAA,CAAmB,IAAA,CAAK,aAAA,EAAe,IAAA,IAAQ,IAAI,CAAA;AAEnD,MAAA,MAAM,eAAA,GAAkB,CAAC,KAAA,KAAkB;AACzC,QAAA,oBAAA,CAAqB,QAAQ,gBAAgB,CAAA;AAAA,MAC/C,CAAA;AAEA,MAAA,eAAA,CAAgB,KAAK,WAAW,CAAA;AAEhC,MAAA,MAAM,IAAA,GAAO,KAAK,aAAA,EAAe,WAAA;AACjC,MAAA,MAAM,kBAAA,GAAqB,MAAM,cAAA,IAAkB,cAAA;AACnD,MAAA,IAAI,CAAC,kBAAA,EAAoB;AAEzB,MAAA,MAAM,QAAA,GAAW,IAAI,kBAAA,CAAmB,CAAC,OAAA,KAAY;AACnD,QAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,CAAC,CAAA,EAAG,WAAA,CAAY,KAAA;AAC1C,QAAA,IAAI,OAAO,cAAc,QAAA,EAAU;AACjC,UAAA,eAAA,CAAgB,SAAS,CAAA;AAAA,QAC3B;AAAA,MACF,CAAC,CAAA;AACD,MAAA,QAAA,CAAS,QAAQ,IAAI,CAAA;AACrB,MAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,IACnC,CAAA,EAAG,CAAC,gBAAgB,CAAC,CAAA;AAGrB,IAAM,kBAAU,MAAM;AACpB,MAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyB;AAC9C,QAAA,IACE,MAAM,GAAA,KAAQ,yBAAA,KACb,KAAA,CAAM,OAAA,IAAW,MAAM,OAAA,CAAA,EACxB;AACA,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,aAAA,EAAc;AAAA,QAChB;AAAA,MACF,CAAA;AAEA,MAAA,MAAA,CAAO,gBAAA,CAAiB,WAAW,aAAa,CAAA;AAChD,MAAA,OAAO,MAAM,MAAA,CAAO,mBAAA,CAAoB,SAAA,EAAW,aAAa,CAAA;AAAA,IAClE,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAIlB,IAAA,MAAM,KAAA,GAAQ,OAAO,UAAA,GAAa,WAAA;AAElC,IAAA,MAAM,YAAA,GAAqB,OAAA,CAAA,OAAA;AAAA,MACzB,OAAO;AAAA,QACL,KAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA;AAAA,QACA,eAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA;AAAA,QACE,KAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA;AAAA,QACA,eAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,uBACE7D,GAAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EAAO,YAAA,EAC9B,QAAA,kBAAAA,GAAAA,CAAC,eAAA,EAAA,EAAgB,aAAA,EAAe,CAAA,EAC9B,QAAA,kBAAAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EACE;AAAA,UACE,iBAAA,EAAmB,YAAA;AAAA,UACnB,sBAAA,EAAwB,gBAAA;AAAA,UACxB,GAAG;AAAA,SACL;AAAA,QAEF,SAAA,EAAW,EAAA;AAAA,UACT,uFAAA;AAAA,UACA,MAAA,KAAW,aAAa,gBAAA,GAAmB,WAAA;AAAA,UAC3C;AAAA,SACF;AAAA,QACA,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,UAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AACrB,UAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,YAAA,GAAA,CAAI,IAAI,CAAA;AAAA,UACV,WAAW,GAAA,EAAK;AACd,YAAA,GAAA,CAAI,OAAA,GAAU,IAAA;AAAA,UAChB;AAAA,QACF,CAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,OAEL,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,OAAA,GAAgB,OAAA,CAAA,UAAA;AAAA,EAgBpB,CACE;AAAA,IACE,IAAA,GAAO,MAAA;AAAA,IACP,OAAA,GAAU,SAAA;AAAA,IACV,WAAA,GAAc,WAAA;AAAA,IACd,IAAA,EAAM,QAAA;AAAA,IACN,eAAA,GAAkB,UAAA;AAAA,IAClB,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,EAAE,QAAA,EAAU,KAAA,EAAO,YAAY,aAAA,EAAe,eAAA,KAClD,UAAA,EAAW;AACb,IAAA,MAAM,IAAA,GAAO,YAAY,YAAA,EAAa;AACtC,IAAA,MAAM,cAAc,eAAA,KAAoB,WAAA;AACxC,IAAA,MAAM,cAAA,GAAiB,eAAe,OAAA,KAAY,SAAA;AAElD,IAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC1B,MAAA,uBACEA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,0FAAA;AAAA,YACA,IAAA,KAAS,YAAY,cAAA,IAAkB,sBAAA;AAAA,YACvC,IAAA,KAAS,aAAa,cAAA,IAAkB,YAAA;AAAA,YACxC;AAAA,WACF;AAAA,UACA,GAAA;AAAA,UACC,GAAG,KAAA;AAAA,UAEH;AAAA;AAAA,OACH,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,uBACEA,IAAC,KAAA,EAAA,EAAM,IAAA,EAAM,YAAY,YAAA,EAAc,aAAA,EAAgB,GAAG,KAAA,EACxD,QAAA,kBAAAI,IAAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,eAAA;AAAA,UACX,cAAA,EAAa,SAAA;AAAA,UACb,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAW,EAAA;AAAA,YACT,mFAAA;AAAA,YACA,SAAS,QAAA,IAAY,eAAA;AAAA,YACrB,SAAS,SAAA,IAAa;AAAA,WACxB;AAAA,UACA,KAAA,EACE;AAAA,YACE,iBAAA,EAAmB;AAAA,WACrB;AAAA,UAEF,IAAA;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,SAAA,EACrB,QAAA,EAAA;AAAA,8BAAAJ,GAAAA,CAAC,cAAW,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,8BACnBA,GAAAA,CAAC,gBAAA,EAAA,EAAiB,QAAA,EAAA,8BAAA,EAA4B;AAAA,aAAA,EAChD,CAAA;AAAA,4BACAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAA,EAAuC,QAAA,EAAS,CAAA,EACjE;AAAA;AAAA;AAAA,OACF,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,MAAM,cAAc,KAAA,KAAU,WAAA;AAC9B,IAAA,MAAM,eAAA,GAAkB,eAAe,WAAA,KAAgB,MAAA;AACvD,IAAA,MAAM,oBAAA,GAAuB,eAAe,WAAA,KAAgB,WAAA;AAC5D,IAAA,MAAM,eAAA,GACJ,YAAY,UAAA,IAAc,OAAA,KAAY,UAClC,eAAA,GACE,6DAAA,GACA,0BAAA,GACF,eAAA,GACE,+BAAA,GACA,0BAAA;AAER,IAAA,uBACEI,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,qEAAA;AAAA,UACA,WAAA,IAAe,sEAAA;AAAA,UACf,WAAA,IAAe,CAAC,oBAAA,IAAwB,eAAA;AAAA,UACxC,eAAe,oBAAA,IAAwB;AAAA,SACzC;AAAA,QACA,YAAA,EAAY,KAAA;AAAA,QACZ,kBAAA,EAAkB,KAAA,KAAU,WAAA,GAAc,WAAA,GAAc,EAAA;AAAA,QACxD,cAAA,EAAc,OAAA;AAAA,QACd,WAAA,EAAW,IAAA;AAAA,QACX,uBAAA,EAAuB,eAAA;AAAA,QACtB,GAAG,KAAA;AAAA,QAGJ,QAAA,EAAA;AAAA,0BAAAJ,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,qEAAA;AAAA,gBACA,cAAc,sBAAA,GAAyB,0BAAA;AAAA,gBACvC,oCAAA;AAAA,gBACA,oBAAA,IAAwB,KAAA;AAAA,gBACxB,OAAA,KAAY,cAAc,OAAA,KAAY,OAAA,GAClC,kBACE,wDAAA,GACA,IAAA,GACF,kBACE,+BAAA,GACA;AAAA;AACR;AAAA,WACF;AAAA,0BACAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,cACI,6HAAA,GACA,2HAAA;AAAA,gBACJ,SAAS,MAAA,GACL,EAAA;AAAA,kBACE,cAAc,EAAA,GAAK,QAAA;AAAA,kBACnB,CAAC,eAAe,oBAAA,IAAwB;AAAA,iBAC1C,GACA,EAAA;AAAA,kBACE,cAAc,EAAA,GAAK,SAAA;AAAA,kBACnB,CAAC,eAAe,oBAAA,IAAwB;AAAA,iBAC1C;AAAA;AAAA,gBAEJ,OAAA,KAAY,UAAA,IAAc,OAAA,KAAY,OAAA,GAClC,EAAA;AAAA,kBACE,KAAA;AAAA,kBACA,WAAA,IAAe,eAAA;AAAA,kBACf,CAAC,eAAe,eAAA,IAAmB;AAAA,iBACrC,GACA,EAAA;AAAA,kBACE,IAAA,KAAS,SAAS,UAAA,GAAa,UAAA;AAAA,kBAC/B,WAAA,IAAe,eAAA;AAAA,kBACf,CAAC,eAAe,eAAA,IAAmB;AAAA,iBACrC;AAAA,gBACJ;AAAA,eACF;AAAA,cAEA,QAAA,kBAAAA,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,cAAA,EAAa,SAAA;AAAA,kBACb,SAAA,EAAW,EAAA;AAAA,oBACT,+NAAA;AAAA,oBACA,IAAA,KAAS,YAAY,cAAA,IAAkB,sBAAA;AAAA,oBACvC,IAAA,KAAS,aAAa,cAAA,IAAkB;AAAA,mBAC1C;AAAA,kBAEA,QAAA,kBAAAA,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EAAa,QAAA,EAAS;AAAA;AAAA;AAC3C;AAAA;AACF;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA;AAEtB,IAAM,cAAA,GAAuB,mBAG3B,CAAC,EAAE,WAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC3C,EAAA,MAAM,EAAE,aAAA,EAAc,GAAI,UAAA,EAAW;AAErC,EAAA,uBACEI,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,SAAA;AAAA,MACb,OAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,SAAS,CAAA;AAAA,MAClC,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,OAAA,GAAU,KAAK,CAAA;AACf,QAAA,aAAA,EAAc;AAAA,MAChB,CAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAJ,IAAC,SAAA,EAAA,EAAU,CAAA;AAAA,wBACXA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAU,QAAA,EAAA,gBAAA,EAAc;AAAA;AAAA;AAAA,GAC1C;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,WAAA,GAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,EAAE,aAAA,EAAc,GAAI,UAAA,EAAW;AAErC,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,MAAA;AAAA,MACb,YAAA,EAAW,gBAAA;AAAA,MACX,QAAA,EAAU,EAAA;AAAA,MACV,OAAA,EAAS,aAAA;AAAA,MACT,KAAA,EAAM,gBAAA;AAAA,MACN,SAAA,EAAW,EAAA;AAAA,QACT,iPAAA;AAAA,QACA,4EAAA;AAAA,QACA,wHAAA;AAAA,QACA,yJAAA;AAAA,QACA,2DAAA;AAAA,QACA,2DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,YAAA,GAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACEA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA;AAAA;AAAA,QAGT,6DAAA;AAAA,QACA,8MAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,YAAA,GAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,OAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,2FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,aAAA,GAAsB,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,QAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA;AAAA,MACjD,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,aAAA,GAAsB,mBAG1B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,QAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,yBAAA,EAA2B,SAAS,CAAA;AAAA,MACjD,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,gBAAA,GAAyB,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,WAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACvD,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,cAAA,GAAuB,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,SAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,gGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,YAAA,GAAqB,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,OAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,iDAAA,EAAmD,SAAS,CAAA;AAAA,MACzE,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;AAE3B,IAAM,iBAAA,GAA0B,OAAA,CAAA,UAAA,CAG9B,CAAC,EAAE,SAAA,EAAW,UAAU,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACnD,EAAA,MAAM,IAAA,GAAO,UAAUQ,IAAAA,GAAO,KAAA;AAE9B,EAAA,uBACER,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,aAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,wOAAA;AAAA,QACA,6EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,kBAAA,GAA2B,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,SAAA,EAAW,UAAU,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACnD,EAAA,MAAM,IAAA,GAAO,UAAUQ,IAAAA,GAAO,QAAA;AAE9B,EAAA,uBACER,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,cAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,0RAAA;AAAA;AAAA,QAEA,+CAAA;AAAA,QACA,sCAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,mBAAA,GAA4B,mBAGhC,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,cAAA,EAAa,eAAA;AAAA,IACb,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS,CAAA;AAAA,IACxC,GAAG;AAAA;AACN,CACD;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAElC,IAAM,WAAA,GAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,cAAA,EAAa,MAAA;AAAA,IACb,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AAAA,IAC5D,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,eAAA,GAAwB,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,cAAA,EAAa,WAAA;AAAA,IACb,SAAA,EAAW,EAAA;AAAA,MACT,0BAAA;AAAA,MACA,6CAAA;AAAA,MACA,iDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAM,yBAAA,GAA4BE,GAAAA;AAAA,EAChC,8wBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,8DAAA;AAAA,QACT,OAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EACE,oKAAA;AAAA,QACF,EAAA,EAAI,sKAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,iBAAA,GAA0B,OAAA,CAAA,UAAA;AAAA,EAQ9B,CACE;AAAA,IACE,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,OAAA,GAAU,SAAA;AAAA,IACV,IAAA,GAAO,SAAA;AAAA,IACP,OAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,IAAA,GAAO,UAAUM,IAAAA,GAAO,QAAA;AAC9B,IAAA,MAAM,EAAE,QAAA,EAAU,KAAA,EAAM,GAAI,UAAA,EAAW;AACvC,IAAA,MAAM,OAAO,YAAA,EAAa;AAC1B,IAAA,MAAM,kBAAA,GAAqB,SAAS,SAAA,IAAa,QAAA;AAEjD,IAAA,MAAM,yBACJR,GAAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,cAAA,EAAa,aAAA;AAAA,QACb,WAAA,EAAW,IAAA;AAAA,QACX,aAAA,EAAa,QAAA;AAAA,QACb,SAAA,EAAW,EAAA;AAAA,UACT,yBAAA,CAA0B,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,UAC3C,SAAS,QAAA,IAAY,0BAAA;AAAA,UACrB,SAAS,SAAA,IAAa,YAAA;AAAA,UACtB,kBAAA,IAAsB,UAAA;AAAA,UACtB;AAAA,SACF;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,MAAM,qBAAqB,kBAAA,mBACzBI,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,oDAAA,EACd,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAW,EAAA;AAAA,YACT,oFAAA;AAAA,YACA,qFAAA;AAAA,YACA;AAAA;AACF;AAAA,OACF;AAAA,MACC;AAAA,KAAA,EACH,CAAA,GAEA,MAAA;AAGF,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,kBAAA;AAAA,IACT;AAEA,IAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAC/B,MAAA,OAAA,GAAU;AAAA,QACR,QAAA,EAAU;AAAA,OACZ;AAAA,IACF;AAEA,IAAA,uBACEI,IAAAA,CAACuD,QAAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA3D,GAAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,kBAAA,EAAmB,CAAA;AAAA,sBAC5CA,GAAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,OAAA;AAAA,UACL,KAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ,UAAU,WAAA,IAAe,QAAA;AAAA,UAChC,GAAG;AAAA;AAAA;AACN,KAAA,EACF,CAAA;AAAA,EAEJ;AACF;AACA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,iBAAA,GAA0B,OAAA,CAAA,UAAA,CAM9B,CAAC,EAAE,SAAA,EAAW,OAAA,GAAU,KAAA,EAAO,WAAA,GAAc,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACxE,EAAA,MAAM,IAAA,GAAO,UAAUQ,IAAAA,GAAO,QAAA;AAE9B,EAAA,uBACER,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,aAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,gVAAA;AAAA;AAAA,QAEA,+CAAA;AAAA,QACA,uCAAA;AAAA,QACA,8CAAA;AAAA,QACA,yCAAA;AAAA,QACA,sCAAA;AAAA,QACA,WAAA,IACE,0LAAA;AAAA,QACF;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AAEhC,IAAM,gBAAA,GAAyB,mBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BA,GAAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,cAAA,EAAa,YAAA;AAAA,IACb,SAAA,EAAW,EAAA;AAAA,MACT,wKAAA;AAAA,MACA,0HAAA;AAAA,MACA,uCAAA;AAAA,MACA,8CAAA;AAAA,MACA,yCAAA;AAAA,MACA,sCAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,mBAAA,GAA4B,OAAA,CAAA,UAAA,CAKhC,CAAC,EAAE,SAAA,EAAW,WAAW,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAEpD,EAAA,MAAM,KAAA,GAAc,gBAAQ,MAAM;AAChC,IAAA,OAAO,CAAA,EAAG,KAAK,KAAA,CAAM,IAAA,CAAK,QAAO,GAAI,EAAE,IAAI,EAAE,CAAA,CAAA,CAAA;AAAA,EAC/C,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACEI,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,eAAA;AAAA,MACb,SAAA,EAAW,EAAA,CAAG,6CAAA,EAA+C,SAAS,CAAA;AAAA,MACrE,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA,oBACCJ,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,mBAAA;AAAA,YACV,cAAA,EAAa;AAAA;AAAA,SACf;AAAA,wBAEFA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,qCAAA;AAAA,YACV,cAAA,EAAa,oBAAA;AAAA,YACb,KAAA,EACE;AAAA,cACE,kBAAA,EAAoB;AAAA;AACtB;AAAA;AAEJ;AAAA;AAAA,GACF;AAEJ,CAAC;AACD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAElC,IAAM,cAAA,GAAuB,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BA,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,cAAA,EAAa,UAAA;AAAA,IACb,SAAA,EAAW,EAAA;AAAA,MACT,gGAAA;AAAA,MACA,sCAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAE7B,IAAM,kBAAA,GAA2B,OAAA,CAAA,UAAA,CAG/B,CAAC,EAAE,GAAG,KAAA,EAAM,EAAG,GAAA,qBAAQA,GAAAA,CAAC,IAAA,EAAA,EAAG,GAAA,EAAW,GAAG,OAAO,CAAE;AACpD,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAEjC,IAAM,oBAAA,GAA6B,OAAA,CAAA,UAAA,CAOjC,CAAC,EAAE,OAAA,GAAU,KAAA,EAAO,IAAA,GAAO,IAAA,EAAM,QAAA,EAAU,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC1E,EAAA,MAAM,IAAA,GAAO,UAAUQ,IAAAA,GAAO,GAAA;AAE9B,EAAA,uBACER,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,cAAA,EAAa,iBAAA;AAAA,MACb,WAAA,EAAW,IAAA;AAAA,MACX,aAAA,EAAa,QAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,4fAAA;AAAA,QACA,wFAAA;AAAA,QACA,SAAS,IAAA,IAAQ,SAAA;AAAA,QACjB,SAAS,IAAA,IAAQ,SAAA;AAAA,QACjB,sCAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AC74BnC,IAAM,gBAAA,GAA+C;AAAA,EACnD,EAAA,EAAI,OAAA;AAAA,EACJ,OAAA,EAAS,KAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,gBAAA,GAA+C;AAAA,EACnD,EAAA,EAAI,SAAA;AAAA,EACJ,OAAA,EAAS,SAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAOA,IAAM,MAAA,GAAe8D,OAAA,CAAA,UAAA,CAGnB,CAAC,EAAE,SAAA,EAAW,IAAA,GAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC5C1D,IAAAA;AAAA,EAAiB,eAAA,CAAA,IAAA;AAAA,EAAhB;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,0DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAiB,eAAA,CAAA,KAAA;AAAA,QAAhB;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,gEAAA;AAAA,YACA,iBAAiB,IAAI;AAAA,WACvB;AAAA,UAEA,QAAA,kBAAAA,GAAAA,CAAiB,eAAA,CAAA,KAAA,EAAhB,EAAsB,WAAU,4BAAA,EAA6B;AAAA;AAAA,OAChE;AAAA,sBACAA,GAAAA;AAAA,QAAiB,eAAA,CAAA,KAAA;AAAA,QAAhB;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,wPAAA;AAAA,YACA,iBAAiB,IAAI;AAAA;AACvB;AAAA;AACF;AAAA;AACF,CACD;AACD,MAAA,CAAO,cAA8B,eAAA,CAAA,IAAA,CAAK,WAAA;ACpC1C,IAAM,OAAA,GAAU,CAAC,EAAE,IAAA,EAAM,WAAW,KAAA,EAAO,GAAG,OAAM,KAA6C;AAC/F,EAAA,MAAM,EAAE,KAAA,GAAQ,QAAA,EAAS,GAAI,QAAA,EAAS;AAEtC,EAAA,uBACEI,IAAAA,CAAA2D,QAAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,IAAA,KAAS,QAAA,oBACR/D,GAAAA,CAAC,OAAA,EAAA,EAAO,QAAA,EAAA,CAAA,iEAAA,CAAA,EAAoE,CAAA;AAAA,IAE7E,IAAA,KAAS,SAAA,oBACRA,GAAAA,CAAC,OAAA,EAAA,EAAO,QAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CAAA,EAQN,CAAA;AAAA,oBAEJA,GAAAA;AAAA,MAACgE,SAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,WAAW,EAAA,CAAG,eAAA,EAAiB,QAAQ,CAAA,QAAA,EAAW,IAAI,IAAI,SAAS,CAAA;AAAA,QACnE,KAAA,EAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,GAAG,KAAA,EAAM;AAAA,QACnC,KAAA,EAAO;AAAA,UACL,OAAA,kBAAShE,GAAAA,CAAC,WAAA,EAAA,EAAY,WAAU,SAAA,EAAU,CAAA;AAAA,UAC1C,IAAA,kBAAMA,GAAAA,CAAC,IAAA,EAAA,EAAK,WAAU,SAAA,EAAU,CAAA;AAAA,UAChC,OAAA,kBAASA,GAAAA,CAAC,aAAA,EAAA,EAAc,WAAU,SAAA,EAAU,CAAA;AAAA,UAC5C,KAAA,kBAAOA,GAAAA,CAAC,QAAA,EAAA,EAAS,WAAU,SAAA,EAAU,CAAA;AAAA,UACrC,OAAA,kBAASA,GAAAA,CAAC,YAAA,EAAA,EAAa,WAAU,sBAAA,EAAuB;AAAA,SAC1D;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,UAAA,EAAY;AAAA,YACV,KAAA,EAAO,EAAA;AAAA,cACL;AAAA,aACF;AAAA,YACA,WAAA,EAAa,sCAAA;AAAA,YACb,YAAA,EAAc,kEAAA;AAAA,YACd,YAAA,EAAc;AAAA;AAChB,SACF;AAAA,QACC,GAAG;AAAA;AAAA;AACN,GAAA,EACF,CAAA;AAEJ;ACxDA,SAAS,OAAA,CAAQ,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACrE,EAAA,uBACEA,GAAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,SAAA;AAAA,MACX,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA;AAAA,MAC7C,GAAG;AAAA;AAAA,GACN;AAEJ;ACRA,IAAM,0BAAA,GAA6BE,GAAAA;AAAA,EACjC,oEAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,UAAA;AAAA,QACJ,OAAA,EAAS,QAAA;AAAA,QACT,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAUA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,MAAM,kBAAA,GACJ,KAAA,CAAM,YAAY,CAAA,IAAK,IAAA,IACvB,KAAA,CAAM,iBAAiB,CAAA,IAAK,IAAA,IACtB+D,OAAA,CAAA,QAAA,CAAS,KAAA,CAAM,QAAQ,CAAA,GAAI,CAAA;AAEnC,EAAA,uBACE7D,IAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,eAAA,EAAe,WAAW,IAAA,GAAO,MAAA;AAAA,MACjC,eAAA,EAAe,WAAW,IAAA,GAAO,MAAA;AAAA,MACjC,SAAA,EAAW,EAAA;AAAA,QACT,yGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAa,qBAAqB,MAAA,GAAY,IAAA;AAAA,MAC7C,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAA,IAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,sBAAA;AAAA,YACV,WAAW,EAAA,CAAG,0BAAA,CAA2B,EAAE,IAAA,EAAM,GAAG,YAAY,CAAA;AAAA,YAChE,KAAA,EAAO,KAAA,GAAQ,EAAE,KAAA,EAAM,GAAI,MAAA;AAAA,YAE1B,QAAA,EAAA;AAAA,cAAA,KAAA,mBACCJ,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,WAAA,EAAU,wBAAA;AAAA,kBACV,SAAA,EAAU;AAAA;AAAA,eACZ,GACE,IAAA;AAAA,8BACJA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EAAmD;AAAA;AAAA;AAAA,SACrE;AAAA,QACC,2BACCA,GAAAA,CAAC,UAAK,WAAA,EAAU,wBAAA,EAA0B,UAAS,CAAA,GACjD;AAAA;AAAA;AAAA,GACN;AAEJ;ACjEA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO;AAAA,GACT;AAAA,EACA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,UAAA;AAAA,IACN,KAAA,EAAO;AAAA,GACT;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,UAAA;AAAA,IACN,KAAA,EAAO;AAAA;AAEX,CAAA;AAEA,IAAM,MAAA,GAAekE,OAAA,CAAA,UAAA,CAGnB,CAAC,EAAE,SAAA,EAAW,OAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACpD,EAAA,MAAM,KAAA,GAAQ,YAAY,IAAI,CAAA;AAE9B,EAAA,uBACElE,GAAAA;AAAA,IAAkB,gBAAA,CAAA,IAAA;AAAA,IAAjB;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,2WAAA;AAAA,QACA,KAAA,CAAM,IAAA;AAAA,QACN;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,GAAA;AAAA,MAEA,QAAA,kBAAAA,GAAAA;AAAA,QAAkB,gBAAA,CAAA,KAAA;AAAA,QAAjB;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,iIAAA;AAAA,YACA,KAAA,CAAM;AAAA;AACR;AAAA;AACF;AAAA,GACF;AAEJ,CAAC;AACD,MAAA,CAAO,cAA+B,gBAAA,CAAA,IAAA,CAAK,WAAA;ACvC3C,IAAM,gBAAA,GAAyBmE,sBAAyB,SAAS,CAAA;AAEjE,IAAM,cAAA,GAA4C;AAAA,EAChD,EAAA,EAAI,SAAA;AAAA,EACJ,OAAA,EAAS,SAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,cAAA,GAA4C;AAAA,EAChD,EAAA,EAAI,UAAA;AAAA,EACJ,OAAA,EAAS,WAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,cAAA,GAA4C;AAAA,EAChD,EAAA,EAAI,KAAA;AAAA,EACJ,OAAA,EAAS,KAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,iBAAA,GAA+C;AAAA,EACnD,EAAA,EAAI,cAAA;AAAA,EACJ,OAAA,EAAS,cAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,KAAA,GAAcA,mBAGlB,CAAC,EAAE,WAAW,IAAA,GAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC5CnE,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,iBAAiB,QAAA,EAAjB,EAA0B,KAAA,EAAO,IAAA,EAChC,QAAA,kBAAAA,GAAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,WAAW,EAAA,CAAG,uBAAA,EAAyB,cAAA,CAAe,IAAI,GAAG,SAAS,CAAA;AAAA,IACrE,GAAG;AAAA;AACN,CAAA,EACF,GACF,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,WAAA,GAAoBmE,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BnE,IAAC,OAAA,EAAA,EAAM,GAAA,EAAU,WAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,OAAO,CAC1E;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,SAAA,GAAkBmE,mBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BnE,GAAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,WAAA,GAAoBmE,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BnE,GAAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,yDAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,WAAA,GAAc,aAAA;AAE1B,IAAM,QAAA,GAAiBmE,mBAGrB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BnE,GAAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,6EAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,QAAA,CAAS,WAAA,GAAc,UAAA;AAEvB,IAAM,SAAA,GAAkBmE,mBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,IAAA,GAAaA,mBAAW,gBAAgB,CAAA;AAE9C,EAAA,uBACEnE,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,wFAAA;AAAA,QACA,eAAe,IAAI,CAAA;AAAA,QACnB;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,SAAA,GAAkBmE,mBAGtB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,IAAA,GAAaA,mBAAW,gBAAgB,CAAA;AAE9C,EAAA,uBACEnE,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,4CAAA;AAAA,QACA,eAAe,IAAI,CAAA;AAAA,QACnB;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAExB,IAAM,YAAA,GAAqBmE,mBAGzB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,IAAA,GAAaA,mBAAW,gBAAgB,CAAA;AAE9C,EAAA,uBACEnE,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAW,EAAA,CAAG,iBAAA,CAAkB,IAAI,CAAA,EAAG,yBAAyB,SAAS,CAAA;AAAA,MACxE,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,YAAA,CAAa,WAAA,GAAc,cAAA;ACtI3B,IAAM,eAAA,GAAwBoE,sBAAwB,SAAS,CAAA;AAE/D,IAAM,aAAA,GAA0C;AAAA,EAC9C,EAAA,EAAI,SAAA;AAAA,EACJ,OAAA,EAAS,UAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,gBAAA,GAA6C;AAAA,EACjD,EAAA,EAAI,qBAAA;AAAA,EACJ,OAAA,EAAS,qBAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,IAAA,GAAaA,mBAGjB,CAAC,EAAE,MAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACvC,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,EAAA,uBACEpE,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA,CAAe,aAAA,CAAA,IAAA,EAAd,EAAmB,GAAA,EAAW,GAAG,KAAA,EAAO,CAAA,EAC3C,CAAA;AAEJ,CAAC;AACD,IAAA,CAAK,cAA4B,aAAA,CAAA,IAAA,CAAK,WAAA;AAEtC,IAAM,QAAA,GAAiBoE,OAAA,CAAA,UAAA,CAGrB,CAAC,EAAE,SAAA,EAAW,OAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACpD,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,uBACEpE,GAAAA,CAAC,eAAA,CAAgB,UAAhB,EAAyB,KAAA,EAAO,MAC/B,QAAA,kBAAAA,GAAAA;AAAA,IAAe,aAAA,CAAA,IAAA;AAAA,IAAd;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,mFAAA;AAAA,QACA,cAAc,IAAI,CAAA;AAAA,QAClB,SAAS,QAAA,IAAY,cAAA;AAAA,QACrB,SAAS,SAAA,IACP,uEAAA;AAAA,QACF;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ,CAAC;AACD,QAAA,CAAS,cAA4B,aAAA,CAAA,IAAA,CAAK,WAAA;AAE1C,IAAM,WAAA,GAAoBoE,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAClC,EAAA,MAAM,IAAA,GAAaA,mBAAW,eAAe,CAAA;AAC7C,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,MAAM,0BACJpE,GAAAA;AAAA,IAAe,aAAA,CAAA,OAAA;AAAA,IAAd;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,0XAAA;AAAA,QACA,iBAAiB,IAAI,CAAA;AAAA,QACrB,SAAS,QAAA,IAAY,8CAAA;AAAA,QACrB,SAAS,SAAA,IACP,wDAAA;AAAA,QACF;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAGF,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACEI,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iDAAA,EACd,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,6MAAA;AAAA,UACV,aAAA,EAAY;AAAA;AAAA,OACd;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,OAAA;AACT,CAAC;AACD,WAAA,CAAY,cAA4B,aAAA,CAAA,OAAA,CAAQ,WAAA;AAEhD,IAAM,WAAA,GAAoBoE,mBAGxB,CAAC,EAAE,WAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1BpE,GAAAA;AAAA,EAAe,aAAA,CAAA,OAAA;AAAA,EAAd;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACT,iIAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,WAAA,CAAY,cAA4B,aAAA,CAAA,OAAA,CAAQ,WAAA;ACxHhD,IAAM,cAAA,GAAiBE,GAAAA;AAAA,EACrB,obAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,gBAAA;AAAA,QACT,OAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,oBAAA;AAAA,QACT,EAAA,EAAI,oBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,IAAM,MAAA,GAAemE,OAAA,CAAA,UAAA,CAMnB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACjE,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AACzB,EAAA,MAAM,yBACJrE,GAAAA;AAAA,IAAiB,eAAA,CAAA,IAAA;AAAA,IAAhB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,cAAA,CAAe,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,QAChC,SAAS,QAAA,IAAY,cAAA;AAAA,QACrB,SAAS,SAAA,IACP,oDAAA;AAAA,QACF;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAGF,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACEI,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EACd,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAU;AAAA;AAAA,OACZ;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,MAAA;AACT,CAAC;AAED,MAAA,CAAO,cAA8B,eAAA,CAAA,IAAA,CAAK,WAAA;ACrD1C,IAAM,qBAA2BsE,OAAA,CAAA,aAAA,CAE/B;AAAA,EACA,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC,CAAA;AAcD,IAAM,WAAA,GAAoBA,OAAA,CAAA,UAAA,CAGxB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC3E,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,OAAO,QAAA,IAAY,aAAA;AAEzB,EAAA,uBACEtE,GAAAA,CAAC,iBAAA,EAAA,EAAkB,IAAA,EACjB,QAAA,kBAAAA,GAAAA;AAAA,IAAsB,oBAAA,CAAA,IAAA;AAAA,IAArB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,SAAS,CAAA;AAAA,MAChE,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,kBAAA,CAAmB,QAAA,EAAnB,EAA4B,KAAA,EAAO,EAAE,OAAA,EAAS,IAAA,EAAM,IAAA,EAAK,EACvD,QAAA,EACH;AAAA;AAAA,GACF,EACF,CAAA;AAEJ,CAAC;AAED,WAAA,CAAY,cAAmC,oBAAA,CAAA,IAAA,CAAK,WAAA;AAEpD,IAAM,eAAA,GAAwBsE,OAAA,CAAA,UAAA,CAG5B,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC3E,EAAA,MAAM,OAAA,GAAgBA,mBAAW,kBAAkB,CAAA;AACnD,EAAA,MAAM,gBAAgB,YAAA,EAAa;AACnC,EAAA,MAAM,IAAA,GAAO,QAAA,IAAY,OAAA,CAAQ,IAAA,IAAQ,aAAA;AACzC,EAAA,MAAM,uBACJtE,GAAAA;AAAA,IAAsB,oBAAA,CAAA,IAAA;AAAA,IAArB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,cAAA,CAAe;AAAA,UACb,OAAA,EAAS,QAAQ,OAAA,IAAW,OAAA;AAAA,UAC5B,IAAA,EAAM,QAAQ,IAAA,IAAQ;AAAA,SACvB,CAAA;AAAA,QACD,SAAS,QAAA,IAAY,cAAA;AAAA,QACrB,SAAS,SAAA,IACP,oDAAA;AAAA,QACF;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAGF,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,uBACEI,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wJAAA,EACd,QAAA,EAAA;AAAA,sBAAAJ,GAAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAU;AAAA;AAAA,OACZ;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,IAAA;AACT,CAAC;AAED,eAAA,CAAgB,cAAmC,oBAAA,CAAA,IAAA,CAAK,WAAA;;;ACpFjD,SAAS,gBAAA,CAAiB,MAAkB,IAAA,EAA+B;AAChF,EAAA,MAAM,aAAwD,EAAA;AAE9D,EAAA,KAAA,MAAW,MAAM,IAAA,EAAM;AACrB,IAAA,MAAM,IAAA,GAAO,EAAA,CAAG,UAAA,CAAW,CAAC,CAAA;AAC5B,IAAA,MAAM,KAAA,GAAQ,KAAK,KAAA,CAAM,GAAA,CAAI,IAAI,CAAA,IAAK,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,EAAE,CAAA;AACvD,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,GAAG,KAAA,CAAM,IAAI,CAAC,IAAA,KAAS,IAAA,CAAK,MAAM,CAAC,CAAA;AAC1D,IAAA,UAAA,CAAW,IAAA,CAAK;AACd,MAAA,KAAA,EAAO,MAAM,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAC7C,MAAA;KACD,CAAA;AACH,EAAA;AAEA,EAAA,MAAM,IAAA,GAAO,WAAW,MAAA,CAAO,CAAC,KAAK,KAAA,KAAU,GAAA,GAAM,KAAA,CAAM,KAAA,EAAO,CAAC,CAAA;AACnE,EAAA,MAAM,OAAO,IAAA,CAAK,MAAA;AAClB,EAAA,MAAM,QAAqB,EAAA;AAC3B,EAAA,IAAI,OAAA,GAAU,CAAA;AAEd,EAAA,KAAA,MAAW,SAAS,UAAA,EAAY;AAC9B,IAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,IAAA,EAAM,GAAA,EAAA,EAAO;AACnC,MAAA,MAAM,IAAA,GAAO,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,IAAK,EAAA;AACjC,MAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,IAAA,CAAK,QAAQ,GAAA,EAAA,EAAO;AAC1C,QAAA,MAAM,EAAA,GAAK,KAAK,GAAG,CAAA;AACnB,QAAA,IAAI,EAAA,KAAO,QAAA,IAAO,EAAA,KAAO,QAAA,EAAK;AAC5B,UAAA,KAAA,CAAM,KAAK,EAAE,EAAA,EAAI,KAAK,OAAA,GAAU,GAAA,EAAK,KAAK,CAAA;AAC5C,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA,OAAA,IAAW,KAAA,CAAM,KAAA;AACnB,EAAA;AAEA,EAAA,OAAO,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAA;AACxB;AAEO,SAAS,qBAAA,CACd,IAAA,EACA,IAAA,EACA,MAAA,EACa;AACb,EAAA,IAAI,CAAC,MAAA,EAAQ,uBAAO,IAAI,GAAA,EAAA;AAExB,EAAA,MAAM,OAAA,uBAAc,GAAA,EAAA;AACpB,EAAA,IAAI,OAAA,GAAU,CAAA;AAEd,EAAA,KAAA,MAAW,MAAM,IAAA,EAAM;AACrB,IAAA,MAAM,IAAA,GAAO,EAAA,CAAG,UAAA,CAAW,CAAC,CAAA;AAC5B,IAAA,MAAM,KAAA,GAAQ,KAAK,KAAA,CAAM,GAAA,CAAI,IAAI,CAAA,IAAK,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,EAAE,CAAA;AACvD,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,GAAG,KAAA,CAAM,IAAI,CAAC,IAAA,KAAS,IAAA,CAAK,MAAM,CAAC,CAAA;AAC1D,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,EAAE,CAAA,EAAG;AACvB,MAAA,KAAA,IAAS,GAAA,GAAM,GAAG,GAAA,GAAM,KAAA,EAAO,OAAO,OAAA,CAAQ,GAAA,CAAI,UAAU,GAAG,CAAA;AACjE,IAAA;AACA,IAAA,OAAA,IAAW,KAAA;AACb,EAAA;AAEA,EAAA,OAAO,OAAA;AACT;AClEO,SAAS,gBAAgB,GAAA,EAAyB;AACvD,EAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA;AAE5B,EAAA,IAAI,MAAM,CAAC,CAAA,EAAG,UAAA,CAAW,CAAC,MAAM,KAAA,EAAQ;AACtC,IAAA,KAAA,CAAM,CAAC,CAAA,GAAI,KAAA,CAAM,CAAC,CAAA,CAAE,MAAM,CAAC,CAAA;AAC7B,EAAA;AAEA,EAAA,MAAM,MAAA,GAAS,MAAM,CAAC,CAAA;AACtB,EAAA,IAAI,CAAC,MAAA,EAAQ,UAAA,CAAW,OAAO,CAAA,EAAG;AAChC,IAAA,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAC7D,EAAA;AAEA,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,CAAC,CAAA,IAAK,GAAA;AAC/B,EAAA,MAAM,KAAA,GAAQ,OAAO,KAAA,CAAM,CAAC,EAAE,IAAA,EAAA,CAAO,MAAM,KAAK,CAAA;AAChD,EAAA,MAAM,SAAS,MAAA,CAAO,QAAA,CAAS,MAAM,CAAC,CAAA,IAAK,IAAI,EAAE,CAAA;AACjD,EAAA,MAAM,WAAW,MAAA,CAAO,QAAA,CAAS,MAAM,CAAC,CAAA,IAAK,IAAI,EAAE,CAAA;AACnD,EAAA,MAAM,eAAe,MAAA,CAAO,QAAA,CAAS,MAAM,CAAC,CAAA,IAAK,IAAI,EAAE,CAAA;AAEvD,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,IAAK,UAAU,CAAA,EAAG;AAC3C,IAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AACjE,EAAA;AAEA,EAAA,MAAM,YAAY,CAAA,IAAK,MAAA,CAAO,QAAA,CAAS,YAAY,IAAI,YAAA,GAAe,CAAA,CAAA;AACtE,EAAA,MAAM,KAAA,uBAAY,GAAA,EAAA;AAClB,EAAA,IAAI,SAAA,GAAY,SAAA;AAChB,EAAA,IAAI,KAAA,GAAQ,EAAA;AAEZ,EAAA,OAAO,SAAA,GAAY,MAAA,IAAU,KAAA,CAAM,MAAA,IAAU,SAAS,GAAA,EAAK;AACzD,IAAA,MAAM,YAAsB,EAAA;AAC5B,IAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,MAAA,EAAQ,GAAA,EAAA,EAAO;AACrC,MAAA,MAAM,IAAA,GAAA,CAAQ,KAAA,CAAM,SAAA,GAAY,GAAG,CAAA,IAAK,EAAA,EACrC,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,CACjB,UAAA,CAAW,SAAA,EAAW,GAAG,CAAA;AAC5B,MAAA,SAAA,CAAU,KAAK,IAAI,CAAA;AACrB,IAAA;AAEA,IAAA,KAAA,CAAM,GAAA,CAAI,OAAO,SAAS,CAAA;AAC1B,IAAA,SAAA,IAAa,MAAA;AACb,IAAA,KAAA,EAAA;AACF,EAAA;AAEA,EAAA,OAAO,EAAE,MAAA,EAAQ,QAAA,EAAU,SAAA,EAAW,KAAA,EAAA;AACxC;AC/CO,IAAM,gBAAA,GAAmB,GAAA;AACzB,IAAM,iBAAA,GAAoB,EAAA;AAoC1B,SAAS,kBAAA,CACd,MAAA,EACA,SAAA,GAAY,gBAAA,EACZ,aAAa,iBAAA,EACb;AACA,EAAA,OAAO;AACL,IAAA,KAAA,EAAO,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,IAAA,GAAO,SAAS,CAAA;AACxC,IAAA,MAAA,EAAQ,OAAO,IAAA,GAAO;AAAA,GAAA;AAE1B;AAEO,SAAS,qBAAA,CAAsB,MAAiB,OAAA,EAAkC;AACvF,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAA,IAAQ,CAAA;AAC7B,EAAA,MAAM,IAAA,GAAO,QAAQ,KAAA,IAAS,IAAA,GAAO,OAAO,OAAA,CAAQ,KAAA,GAAQ,KAAK,EAAA,GAAK,CAAA;AAEtE,EAAA,IAAI,IAAA,CAAK,OAAO,QAAA,EAAK;AACnB,IAAA,MAAM,QACJ,IAAA,IAAQ,IAAA,GACJ,KAAK,GAAA,CAAI,IAAA,GAAO,MAAM,IAAA,CAAK,GAAA,GAAM,GAAG,CAAA,GAAI,OACxC,IAAA,CAAK,GAAA,CAAI,OAAO,IAAA,CAAK,GAAA,GAAM,GAAG,CAAA,GAAI,IAAA;AACxC,IAAA,OAAO,IAAA,GAAO,KAAA;AAChB,EAAA;AAEA,EAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,IAAA,OAAO,gBAAA,CAAiB,MAAM,IAAI,CAAA;AACpC,EAAA;AAEA,EAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,IAAA,EAAM,IAAI,CAAA;AAErC,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,GAAM,IAAA,GAAO,KAAK,GAAA,GAAM,KAAA;AAC1C,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,GAAI,GAAA;AACtC,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,MAAM,YAAY,CAAA;AACtD,EAAA,MAAM,OAAA,GAAU,WAAA,GAAc,IAAA,GAAO,IAAA,GAAO,CAAA;AAE5C,EAAA,IAAI,SAAA,GAAY,MAAM,KAAA,GAAQ,OAAA;AAC9B,EAAA,MAAM,SAAA,GAAY,gBAAA;AAClB,EAAA,MAAM,UAAA,GAAa,iBAAA;AAEnB,EAAA,IAAI,OAAA,CAAQ,SAAS,MAAA,EAAQ;AAC3B,IAAA,MAAM,MAAM,IAAA,CAAK,GAAA,GAAM,YAAY,SAAA,GAAY,CAAA,GAAI,QAAQ,OAAA,CAAQ,CAAA;AACnE,IAAA,MAAM,MAAM,IAAA,CAAK,GAAA,GAAM,aAAa,UAAA,GAAa,CAAA,GAAI,QAAQ,OAAA,CAAQ,CAAA;AACrE,IAAA,MAAM,QAAQ,IAAA,CAAK,IAAA,CAAK,GAAA,GAAM,GAAA,GAAM,MAAM,GAAG,CAAA;AAC7C,IAAA,MAAM,MAAA,GAAS,EAAA;AACf,IAAA,IAAI,QAAQ,MAAA,EAAQ;AAClB,MAAA,MAAM,OAAA,GAAU,IAAI,KAAA,GAAQ,MAAA;AAC5B,MAAA,MAAM,MAAA,GAAS,KAAK,GAAA,CAAI,KAAA,GAAQ,OAAO,IAAA,GAAO,CAAC,CAAA,GAAI,IAAA,GAAO,OAAA,GAAU,OAAA;AACpE,MAAA,SAAA,GAAY,KAAK,GAAA,CAAI,CAAA,EAAG,SAAA,GAAY,OAAA,GAAU,MAAM,MAAM,CAAA;AAC5D,IAAA;AACF,EAAA;AAEA,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,GAAM,SAAA,GAAY,SAAA,GAAY,CAAA;AAC9C,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,GAAM,UAAA,GAAa,UAAA,GAAa,CAAA;AAChD,EAAA,KAAA,MAAW,IAAA,IAAQ,OAAA,CAAQ,KAAA,IAAS,EAAA,EAAI;AACtC,IAAA,MAAM,GAAA,GAAM,KAAK,IAAA,CAAK,EAAA;AACtB,IAAA,MAAM,GAAA,GAAM,KAAK,IAAA,CAAK,EAAA;AACtB,IAAA,MAAM,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,GAAM,GAAA,GAAM,MAAM,GAAG,CAAA;AAC5C,IAAA,MAAM,GAAA,GAAM,OAAO,IAAA,CAAK,CAAA;AACxB,IAAA,MAAM,aAAa,GAAA,GAAM,GAAA;AACzB,IAAA,MAAM,QAAQ,IAAA,GAAO,UAAA;AACrB,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,CAAC,MAAM,GAAG,CAAA;AAChC,IAAA,MAAM,OAAO,IAAA,CAAK,GAAA,CAAI,CAAC,KAAA,GAAQ,KAAA,GAAQ,IAAK,CAAA,GAAI,IAAA;AAChD,IAAA,SAAA,GAAY,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,SAAA,GAAY,IAAA,GAAO,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,KAAA,GAAQ,IAAA,GAAO,GAAG,CAAC,CAAA;AAC/E,EAAA;AAEA,EAAA,OAAO,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,GAAA,CAAI,CAAA,EAAG,SAAS,CAAC,CAAA;AAC7C;AAEO,SAAS,yBAAA,CACd,GAAA,EACA,MAAA,EACA,OAAA,EACA;AACA,EAAA,MAAM,SAAA,GAAY,QAAQ,SAAA,IAAa,gBAAA;AACvC,EAAA,MAAM,UAAA,GAAa,QAAQ,UAAA,IAAc,iBAAA;AACzC,EAAA,MAAM,EAAE,KAAA,EAAO,MAAA,KAAW,kBAAA,CAAmB,MAAA,EAAQ,WAAW,UAAU,CAAA;AAC1E,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,WAAA,IAAe,OAAA,CAAQ,KAAA;AAEnD,EAAA,GAAA,CAAI,SAAA,CAAU,CAAA,EAAG,CAAA,EAAG,KAAA,EAAO,MAAM,CAAA;AAEjC,EAAA,KAAA,MAAW,IAAA,IAAQ,OAAO,KAAA,EAAO;AAC/B,IAAA,MAAM,WAAW,OAAA,CAAQ,aAAA,EAAe,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA,IAAK,KAAA;AACzD,IAAA,GAAA,CAAI,WAAA,GAAc,qBAAA,CAAsB,IAAA,EAAM,OAAO,CAAA;AACrD,IAAA,GAAA,CAAI,SAAA,GAAY,QAAA,GAAW,WAAA,GAAc,OAAA,CAAQ,KAAA;AACjD,IAAA,GAAA,CAAI,QAAA,CAAS,KAAK,GAAA,GAAM,SAAA,EAAW,KAAK,GAAA,GAAM,UAAA,EAAY,WAAW,UAAU,CAAA;AACjF,EAAA;AAEA,EAAA,GAAA,CAAI,WAAA,GAAc,CAAA;AACpB;AAEA,SAAS,YAAA,CAAa,MAAiB,IAAA,EAAsB;AAC3D,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,GAAM,IAAA,GAAO,IAAA,GAAO,GAAA;AACpC,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,GAAM,GAAA,GAAM,IAAA,GAAO,IAAA;AACnC,EAAA,OACE,IAAA,CAAK,GAAA,CAAI,EAAE,CAAA,GAAI,OACf,IAAA,CAAK,GAAA,CAAI,EAAA,GAAK,GAAA,GAAM,EAAA,GAAK,GAAG,CAAA,GAAI,GAAA,GAChC,KAAK,GAAA,CAAI,EAAA,GAAK,GAAA,GAAM,EAAA,GAAK,GAAA,GAAM,IAAA,GAAO,GAAG,CAAA,GAAI,OAC7C,IAAA,CAAK,GAAA,CAAA,CAAK,IAAA,CAAK,GAAA,GAAM,IAAA,CAAK,GAAA,IAAO,IAAA,GAAO,IAAA,GAAO,GAAG,CAAA,GAAI,IAAA;AAE1D;AAEA,SAAS,gBAAA,CAAiB,MAAiB,IAAA,EAAsB;AAC/D,EAAA,MAAM,OACJ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,GAAM,OAAO,IAAI,CAAA,GAAI,KAAA,GACnC,IAAA,CAAK,IAAI,IAAA,CAAK,GAAA,GAAM,IAAA,GAAO,IAAA,GAAO,IAAI,CAAA,GAAI,IAAA;AAC5C,EAAA,MAAM,OAAA,GAAA,CAAW,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,GAAM,IAAA,GAAO,IAAA,CAAK,GAAA,GAAM,IAAA,GAAO,IAAA,GAAO,CAAC,CAAA,GAAI,CAAA,IAAK,CAAA;AAC/E,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,CAAC,CAAA,GAAI,IAAA;AACzC,EAAA,MAAM,SAAA,GAAY,OAAO,IAAA,GAAO,SAAA;AAEhC,EAAA,OAAO,KAAK,GAAA,CAAI,IAAA,EAAM,KAAK,GAAA,CAAI,CAAA,EAAG,SAAS,CAAC,CAAA;AAC9C;ACnJO,IAAM,YAAA,GAAuB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqB7B,SAAS,SAAA,CAAU;AAAA,EACxB,IAAA,GAAO,UAAA;AAAA,EACP,MAAA,GAAS,EAAA;AAAA,EACT,KAAA;AAAA,EACA;AACF,CAAA,EAAmB;AACjB,EAAA,MAAM,OAAOmC,OAAAA,CAAQ,MAAM,gBAAgB,YAAY,CAAA,EAAG,EAAE,CAAA;AAC5D,EAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,KAASA,OAAAA,CAAQ,MAAM,gBAAA,CAAiB,IAAA,EAAM,IAAI,CAAA,EAAG,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA;AAGtF,EAAA,MAAM,UAAA,GAAaA,QAAQ,MAAM;AAC/B,IAAA,OAAO,qBAAA,CAAsB,IAAA,EAAM,IAAA,EAAM,MAAM,CAAA;AAAA,EACjD,CAAA,EAAG,CAAC,IAAA,EAAM,IAAA,EAAM,MAAM,CAAC,CAAA;AAEvB,EAAA,MAAM,SAAA,GAAYoC,OAA0B,IAAI,CAAA;AAChD,EAAA,MAAM,OAAA,GAAUA,OAAe,CAAC,CAAA;AAChC,EAAA,MAAM,OAAA,GAAUA,OAAe,CAAC,CAAA;AAChC,EAAA,MAAM,aAAA,GAAgBA,OAAO,KAAK,CAAA;AAClC,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,SAAS,KAAK,CAAA;AACxD,EAAA,MAAM,WAAWD,MAAAA,CAAkD;AAAA,IACjE,CAAA,EAAG,IAAA;AAAA,IACH,CAAA,EAAG,IAAA;AAAA,IACH,MAAA,EAAQ;AAAA,GACT,CAAA;AACD,EAAA,MAAM,QAAA,GAAWA,MAAAA,CAAgD,EAAE,CAAA;AAEnE,EAAA,MAAM,MAAA,GAASE,YAAY,MAAM;AAC/B,IAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAClC,IAAA,IAAI,CAAC,GAAA,EAAK;AAEV,IAAA,MAAM,OAAO,OAAA,CAAQ,OAAA;AACrB,IAAA,GAAA,CAAI,UAAU,CAAA,EAAG,CAAA,EAAG,MAAA,CAAO,KAAA,EAAO,OAAO,MAAM,CAAA;AAE/C,IAAA,MAAM,OAAO,QAAA,CAAS,eAAA;AACtB,IAAA,MAAM,SAAA,GAAY,iBAAiB,IAAI,CAAA;AACvC,IAAA,MAAM,KAAA,GAAQ,iBAAiB,MAAM,CAAA;AACrC,IAAA,MAAM,SAAA,GAAY,KAAA,IAAS,KAAA,CAAM,KAAA,IAAS,SAAA;AAE1C,IAAA,IAAI,cAAA,GAAiB,SAAA;AACrB,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,MAAM,QAAA,GAAW,WAAA,CAAY,KAAA,CAAM,oBAAoB,CAAA;AACvD,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,cAAA,GAAiB,SAAA,CAAU,iBAAiB,CAAA,EAAA,EAAK,QAAA,CAAS,CAAC,CAAC,CAAA,CAAE,CAAA,CAAE,IAAA,EAAK,IAAK,SAAA;AAAA,MAC5E,CAAA,MAAO;AACL,QAAA,cAAA,GAAiB,WAAA;AAAA,MACnB;AAAA,IACF;AAEA,IAAA,yBAAA,CAA0B,GAAA,EAAqC,EAAE,KAAA,EAAO,IAAA,EAAM,MAAK,EAAG;AAAA,MACpF,aAAA,EAAe,UAAA;AAAA,MACf,KAAA,EAAO,SAAA;AAAA,MACP,WAAA,EAAa,cAAA;AAAA,MACb,IAAA;AAAA,MACA,SAAS,QAAA,CAAS,OAAA;AAAA,MAClB,OAAO,QAAA,CAAS;AAAA,KACjB,CAAA;AAED,IAAA,IAAI,CAAC,cAAc,OAAA,EAAS;AAC1B,MAAA,aAAA,CAAc,OAAA,GAAU,IAAA;AACxB,MAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,IACvB;AAGA,IAAA,QAAA,CAAS,OAAA,GAAU,SAAS,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,IAAA,GAAO,CAAA,CAAE,CAAA,GAAI,CAAC,CAAA;AAAA,EAClE,GAAG,CAAC,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,WAAW,CAAC,CAAA;AAE1C,EAAAC,UAAU,MAAM;AACd,IAAA,aAAA,CAAc,OAAA,GAAU,KAAA;AACxB,IAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,EACxB,GAAG,CAAC,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,WAAW,CAAC,CAAA;AAErC,EAAAA,UAAU,MAAM;AACd,IAAA,IAAI,OAAA,GAAU,IAAA;AACd,IAAA,MAAM,OAAO,MAAM;AACjB,MAAA,IAAI,CAAC,OAAA,EAAS;AACd,MAAA,OAAA,CAAQ,OAAA,IAAW,KAAA;AACnB,MAAA,MAAA,EAAO;AACP,MAAA,OAAA,CAAQ,OAAA,GAAU,sBAAsB,IAAI,CAAA;AAAA,IAC9C,CAAA;AACA,IAAA,IAAA,EAAK;AACL,IAAA,OAAO,MAAM;AACX,MAAA,OAAA,GAAU,KAAA;AACV,MAAA,oBAAA,CAAqB,QAAQ,OAAO,CAAA;AAAA,IACtC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,eAAA,GAAkBD,WAAAA;AAAA,IACtB,CAAC,CAAA,KAA2C;AAC1C,MAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,MAAA,IAAI,CAAC,MAAA,EAAQ;AACb,MAAA,MAAM,IAAA,GAAO,OAAO,qBAAA,EAAsB;AAC1C,MAAA,MAAM,MAAA,GAAS,MAAA,CAAO,KAAA,GAAQ,IAAA,CAAK,KAAA;AACnC,MAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,GAAS,IAAA,CAAK,MAAA;AACpC,MAAA,QAAA,CAAS,OAAA,GAAU;AAAA,QACjB,CAAA,EAAA,CAAI,CAAA,CAAE,OAAA,GAAU,IAAA,CAAK,IAAA,IAAQ,MAAA;AAAA,QAC7B,CAAA,EAAA,CAAI,CAAA,CAAE,OAAA,GAAU,IAAA,CAAK,GAAA,IAAO,MAAA;AAAA,QAC5B,MAAA,EAAQ;AAAA,OACV;AAAA,IACF,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,WAAA,GAAcA,WAAAA;AAAA,IAClB,CAAC,CAAA,KAA2C;AAC1C,MAAA,MAAM,SAAS,SAAA,CAAU,OAAA;AACzB,MAAA,IAAI,CAAC,MAAA,EAAQ;AACb,MAAA,MAAM,IAAA,GAAO,OAAO,qBAAA,EAAsB;AAC1C,MAAA,MAAM,MAAA,GAAS,MAAA,CAAO,KAAA,GAAQ,IAAA,CAAK,KAAA;AACnC,MAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,GAAS,IAAA,CAAK,MAAA;AACpC,MAAA,QAAA,CAAS,QAAQ,IAAA,CAAK;AAAA,QACpB,EAAA,EAAA,CAAK,CAAA,CAAE,OAAA,GAAU,IAAA,CAAK,IAAA,IAAQ,MAAA;AAAA,QAC9B,EAAA,EAAA,CAAK,CAAA,CAAE,OAAA,GAAU,IAAA,CAAK,GAAA,IAAO,MAAA;AAAA,QAC7B,GAAG,OAAA,CAAQ;AAAA,OACZ,CAAA;AAAA,IACH,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,gBAAA,GAAmBA,YAAY,MAAM;AACzC,IAAA,QAAA,CAAS,UAAU,EAAE,CAAA,EAAG,MAAM,CAAA,EAAG,IAAA,EAAM,QAAQ,KAAA,EAAM;AAAA,EACvD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,IAAA,GAAO,gBAAM,CAAA;AACvC,EAAA,MAAM,UAAU,IAAA,GAAO,iBAAA;AACvB,EAAA,MAAM,sBAAsB,WAAA,IAAe,cAAA;AAE3C,EAAA,uBACEzE,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kDAAA,EAAmD,aAAA,EAAY,QAC5E,QAAA,kBAAAI,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,UAAA;AAAA,MACV,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,UAAU,MAAA,EAAO;AAAA,MAE1C,QAAA,EAAA;AAAA,wBAAAJ,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,CAAA,IAAA,EAAO,OAAO,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA;AAAA,YAClC,SAAA,EAAW,CAAA,wFAAA,EACT,aAAA,GAAgB,WAAA,GAAc,aAChC,CAAA,CAAA;AAAA,YACA,mBAAA,EAAoB,eAAA;AAAA,YAEnB,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,cAAA,MAAM,QAAA,GAAW,UAAA,CAAW,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AACxC,cAAA,uBACEA,GAAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBAEC,CAAA,EAAG,KAAK,GAAA,GAAM,gBAAA;AAAA,kBACd,CAAA,EAAG,KAAK,GAAA,GAAM,iBAAA;AAAA,kBACd,KAAA,EAAO,gBAAA;AAAA,kBACP,MAAA,EAAQ,iBAAA;AAAA,kBACR,IAAA,EAAM,WAAW,mBAAA,GAAsB,cAAA;AAAA,kBACvC,OAAA,EAAS,IAAA,CAAK,EAAA,KAAO,QAAA,GAAM,IAAA,GAAO;AAAA,iBAAA;AAAA,gBAN7B,CAAA,EAAG,IAAA,CAAK,GAAG,CAAA,CAAA,EAAI,KAAK,GAAG,CAAA;AAAA,eAO9B;AAAA,YAEJ,CAAC;AAAA;AAAA,SACH;AAAA,wBACAA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,SAAA;AAAA,YACL,KAAA,EAAO,OAAA;AAAA,YACP,MAAA,EAAQ,OAAA;AAAA,YACR,SAAA,EAAW,CAAA,yGAAA,EACT,aAAA,GAAgB,aAAA,GAAgB,WAClC,CAAA,CAAA;AAAA,YACA,OAAO,EAAE,WAAA,EAAa,GAAG,OAAO,CAAA,GAAA,EAAM,OAAO,CAAA,CAAA,EAAG;AAAA,YAChD,WAAA,EAAa,eAAA;AAAA,YACb,OAAA,EAAS,WAAA;AAAA,YACT,YAAA,EAAc;AAAA;AAAA;AAChB;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;AC/LO,SAAS,kBAAA,CAAmB,UAAU,GAAA,EAAM;AACjD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIwE,SAAS,KAAK,CAAA;AAE9C,EAAA,MAAM,eAAA,GAAkBC,WAAAA;AAAA,IACtB,OAAO,IAAA,KAAiB;AACtB,MAAA,IAAI;AACF,QAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,IAAI,CAAA;AACxC,QAAA,WAAA,CAAY,IAAI,CAAA;AAChB,QAAA,UAAA,CAAW,MAAM,WAAA,CAAY,KAAK,CAAA,EAAG,OAAO,CAAA;AAC5C,QAAA,OAAO,IAAA;AAAA,MACT,CAAA,CAAA,MAAQ;AACN,QAAA,WAAA,CAAY,KAAK,CAAA;AACjB,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF,CAAA;AAAA,IACA,CAAC,OAAO;AAAA,GACV;AAEA,EAAA,OAAO,EAAE,iBAAiB,QAAA,EAAS;AACrC;ACfO,SAAS,sBAAsB,OAAA,EAAiC;AACrE,EAAA,IAAI,OAAO,QAAA,KAAa,WAAA,EAAa,OAAO,EAAC;AAC7C,EAAA,MAAM,EAAA,GAAgB,QAAA,CAAS,eAAA;AAC/B,EAAA,MAAM,KAAA,GAAQ,iBAAiB,EAAE,CAAA;AACjC,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,gBAAA,CAAiB,WAAW,EAAE,IAAA,EAAK;AACzD,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,gBAAA,CAAiB,sBAAsB,EAAE,IAAA,EAAK;AACtE,EAAA,MAAM,MAAgB,EAAC;AACvB,EAAA,IAAI,OAAA,EAAS,GAAA,CAAI,IAAA,CAAK,OAAO,CAAA;AAC7B,EAAA,IAAI,SAAA,IAAa,SAAA,KAAc,OAAA,EAAS,GAAA,CAAI,KAAK,SAAS,CAAA;AAC1D,EAAA,OAAO,GAAA;AACT;AAIA,SAAS,WAAW,KAAA,EAA8B;AAChD,EAAA,MAAM,CAAA,GAAI,KAAA,CAAM,IAAA,EAAK,CAAE,MAAM,iDAAiD,CAAA;AAC9E,EAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AACf,EAAA,MAAM,CAAA,GAAI,MAAA,CAAO,CAAA,CAAE,CAAC,CAAC,CAAA;AACrB,EAAA,MAAM,CAAA,GAAI,MAAA,CAAO,CAAA,CAAE,CAAC,CAAC,CAAA;AACrB,EAAA,MAAM,IAAK,MAAA,CAAO,CAAA,CAAE,CAAC,CAAC,CAAA,GAAI,KAAK,EAAA,GAAM,GAAA;AACrC,EAAA,MAAM,IAAA,GAAO,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA;AAC3B,EAAA,MAAM,IAAA,GAAO,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA;AAC3B,EAAA,MAAM,GAAA,GAAM,CAAC,CAAA,EAAa,CAAA,KAAgB;AAAA,IACxC,EAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,IAAI,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA,GAAI,EAAE,CAAC,CAAA;AAAA,IACtC,EAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,IAAI,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA,GAAI,EAAE,CAAC,CAAA;AAAA,IACtC,EAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,IAAI,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA,GAAI,EAAE,CAAC;AAAA,GACxC;AACA,EAAA,MAAM,IAAA,GAAO,GAAA;AAAA,IACX,CAAC,GAAG,kBAAA,EAAoB,kBAAA,EAAoB,GAAG,mBAAA,EAAqB,mBAAA,EAAqB,CAAA,EAAG,mBAAA,EAAqB,mBAAmB,CAAA;AAAA,IACpI,CAAC,CAAA,EAAG,IAAA,EAAM,IAAI;AAAA,GAChB;AACA,EAAA,MAAM,MAAM,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM,KAAK,CAAC,CAAA;AAClC,EAAA,MAAM,GAAA,GAAM,GAAA;AAAA,IACV,CAAC,oBAAoB,mBAAA,EAAqB,kBAAA,EAAoB,qBAAqB,iBAAA,EAAmB,mBAAA,EAAqB,mBAAA,EAAqB,mBAAA,EAAqB,kBAAkB,CAAA;AAAA,IACvL;AAAA,GACF;AACA,EAAA,MAAM,IAAA,GAAO,GAAA;AAAA,IACX,CAAC,oBAAoB,kBAAA,EAAoB,mBAAA,EAAqB,qBAAqB,kBAAA,EAAoB,mBAAA,EAAqB,mBAAA,EAAqB,oBAAA,EAAsB,kBAAkB,CAAA;AAAA,IACzL;AAAA,GACF;AACA,EAAA,MAAM,CAAC,GAAG,CAAA,EAAG,CAAC,IAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,KAAM;AAChC,IAAA,MAAM,CAAA,GAAI,KAAK,GAAA,CAAI,CAAC,IAAI,QAAA,GAAA,CAAa,CAAA,GAAI,IAAI,EAAA,GAAK,CAAA,KAAM,QAAQ,IAAA,CAAK,GAAA,CAAI,KAAK,GAAA,CAAI,CAAC,GAAG,CAAA,GAAI,GAAG,CAAA,GAAI,KAAA,CAAA,GAAS,KAAA,GAAQ,CAAA;AAClH,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,GAAG,CAAC,CAAC,CAAA;AAAA,EACvD,CAAC,CAAA;AACD,EAAA,OAAO,MAAM,CAAC,CAAA,EAAG,GAAG,CAAC,CAAA,CAAE,IAAI,CAAC,CAAA,KAAM,EAAE,QAAA,CAAS,EAAE,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAE,KAAK,EAAE,CAAA;AAC5E;AAGA,SAAS,SAAS,GAAA,EAA4B;AAC5C,EAAA,MAAM,CAAA,GAAI,GAAA,CAAI,IAAA,EAAK,CAAE,MAAM,8CAA8C,CAAA;AACzE,EAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AACf,EAAA,MAAM,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,IAAI,CAAC,MAAA,CAAO,CAAA,CAAE,CAAC,CAAC,CAAA,EAAG,MAAA,CAAO,CAAA,CAAE,CAAC,CAAC,CAAA,EAAG,MAAA,CAAO,CAAA,CAAE,CAAC,CAAC,CAAC,CAAA,CAAE,IAAI,CAAC,CAAA,KAAM,IAAA,CAAK,GAAA,CAAI,GAAG,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,CAAC,CAAC,CAAC,CAAA;AACrG,EAAA,OAAO,MAAM,CAAC,CAAA,EAAG,GAAG,CAAC,CAAA,CAAE,IAAI,CAAC,CAAA,KAAM,EAAE,QAAA,CAAS,EAAE,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAE,KAAK,EAAE,CAAA;AAC5E;AAGA,SAAS,MAAM,KAAA,EAAuB;AACpC,EAAA,MAAM,CAAA,GAAI,MAAM,IAAA,EAAK;AACrB,EAAA,IAAI,CAAA,CAAE,UAAA,CAAW,GAAG,CAAA,EAAG,OAAO,CAAA;AAC9B,EAAA,MAAM,GAAA,GAAM,WAAW,CAAC,CAAA;AACxB,EAAA,IAAI,KAAK,OAAO,GAAA;AAChB,EAAA,IAAI,EAAE,UAAA,CAAW,KAAK,GAAG,OAAO,QAAA,CAAS,CAAC,CAAA,IAAK,CAAA;AAC/C,EAAA,IAAI,OAAO,aAAa,WAAA,EAAa;AACnC,IAAA,MAAM,EAAA,GAAK,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACvC,IAAA,EAAA,CAAG,KAAA,CAAM,OAAA,GAAU,CAAA,+DAAA,EAAkE,CAAC,CAAA,CAAA,CAAA;AACtF,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,EAAE,CAAA;AAC5B,IAAA,EAAA,CAAG,YAAA;AACH,IAAA,MAAM,GAAA,GAAM,gBAAA,CAAiB,EAAE,CAAA,CAAE,eAAA;AACjC,IAAA,EAAA,CAAG,MAAA,EAAO;AACV,IAAA,IAAI,KAAK,UAAA,CAAW,KAAK,GAAG,OAAO,QAAA,CAAS,GAAG,CAAA,IAAK,CAAA;AAAA,EACtD;AACA,EAAA,OAAO,CAAA;AACT;AAYO,SAAS,aAAa,OAAA,EAAiC;AAC5D,EAAA,MAAM,SAAA,GAAY,OAAA,EAAS,MAAA,IAAU,qBAAA,EAAsB;AAC3D,EAAA,MAAM,MAAA,GACJ,SAAA,CAAU,MAAA,GAAS,CAAA,GAAI,UAAU,GAAA,CAAI,KAAK,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,EAAG,UAAA,CAAW,GAAG,CAAC,CAAA,GAAI,MAAA;AAElF,EAAA,MAAM,aAAA,GAAgB,SAAS,aAAA,IAAiB,GAAA;AAChD,EAAA,MAAM,MAAA,GAAS,SAAS,MAAA,IAAU,EAAA;AAClC,EAAA,MAAM,MAAA,GAAS,SAAS,MAAA,IAAU,GAAA;AAClC,EAAA,MAAM,KAAA,GAAQ,SAAS,KAAA,IAAS,GAAA;AAChC,EAAA,MAAM,aAAA,GAAgB,EAAA;AACtB,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,aAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAI,MAAA,EAAQ,MAAA,GAAS,EAAE,MAAA,KAAW;AAAC,GACrC;AAEA,EAAA,IAAI,SAAS,QAAA,EAAU;AACrB,IAAA,QAAA,CAAS,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,EAAE,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,CAAA,EAAE,EAAG,KAAA,EAAO,EAAA,EAAI,CAAA;AACzD,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,aAAA,GAAgB,GAAG,CAAA;AAC3C,EAAA,QAAA,CAAS,EAAE,GAAG,IAAA,EAAM,aAAA,EAAe,MAAM,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,IAAK,CAAA;AAC5E,EAAA,QAAA,CAAS,EAAE,GAAG,IAAA,EAAM,aAAA,EAAe,MAAM,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,IAAK,CAAA;AAC/E;ACtGA,IAAM,MAAA,GAAS,CAAA,gIAAA,CAAA;AAER,SAAS,WAAA,GAAc;AAC5B,EAAA,uBAAOzE,GAAAA,CAAC,QAAA,EAAA,EAAO,yBAAyB,EAAE,MAAA,EAAQ,QAAO,EAAG,CAAA;AAC9D;ACdA,IAAM,MAAA,GAAS;AAAA;AAAA,EAEb,EAAE,GAAA,EAAK,MAAA,EAAW,IAAA,EAAM,KAAA,EAAQ,MAAM,CAAA,EAAG,KAAA,EAAO,IAAA,EAAS,QAAA,EAAU,MAAA,EAAO;AAAA,EAC1E,EAAE,GAAA,EAAK,KAAA,EAAW,KAAA,EAAO,MAAA,EAAQ,MAAM,CAAA,EAAG,KAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAO;AAAA,EAC1E,EAAE,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,KAAA,EAAO,MAAM,CAAA,EAAG,KAAA,EAAO,MAAA,EAAS,QAAA,EAAU,MAAA,EAAO;AAAA,EAC1E,EAAE,GAAA,EAAK,KAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,MAAM,CAAA,EAAG,KAAA,EAAO,MAAA,EAAS,QAAA,EAAU,MAAA,EAAO;AAAA;AAAA,EAE1E,EAAE,GAAA,EAAK,KAAA,EAAW,IAAA,EAAM,KAAA,EAAQ,MAAM,CAAA,EAAG,KAAA,EAAO,MAAA,EAAS,QAAA,EAAU,MAAA,EAAO;AAAA,EAC1E,EAAE,GAAA,EAAK,KAAA,EAAW,KAAA,EAAO,KAAA,EAAO,MAAM,CAAA,EAAG,KAAA,EAAO,MAAA,EAAS,QAAA,EAAU,MAAA,EAAO;AAAA,EAC1E,EAAE,MAAA,EAAQ,KAAA,EAAQ,IAAA,EAAM,KAAA,EAAQ,MAAM,CAAA,EAAG,KAAA,EAAO,MAAA,EAAS,QAAA,EAAU,MAAA;AACrE,CAAA;AAEA,SAAS,SAAA,CAAU,EAAE,IAAA,EAAK,EAAqB;AAC7C,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,OAAO,IAAA,EAAM,MAAA,EAAQ,MAAM,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,cAAA,EAAe,eAAY,MAAA,EAChF,QAAA,kBAAAA,IAAC,MAAA,EAAA,EAAK,CAAA,EAAE,qEAAoE,CAAA,EAC9E,CAAA;AAEJ;AAMO,SAAS,UAAU,EAAE,QAAA,EAAU,SAAA,EAAW,GAAG,OAAM,EAAmB;AAC3E,EAAA,uBACEI,KAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAG,KAAA,EAC5C,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,sBACdJ,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QAEC,SAAA,EAAU,kEAAA;AAAA,QACV,OAAO,EAAE,GAAA,EAAK,EAAE,GAAA,EAAK,MAAA,EAAQ,EAAE,MAAA,EAAQ,IAAA,EAAM,EAAE,IAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAO,cAAA,EAAgB,EAAE,KAAA,EAAO,iBAAA,EAAmB,EAAE,QAAA,EAAS;AAAA,QAE5H,QAAA,kBAAAA,GAAAA,CAAC,SAAA,EAAA,EAAU,IAAA,EAAM,EAAE,IAAA,EAAM;AAAA,OAAA;AAAA,MAJpB;AAAA,KAMR;AAAA,GAAA,EACH,CAAA;AAEJ","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\n\nexport type UIVariant = \"playful\" | \"smooth\" | undefined\n\nconst UIVariantContext = React.createContext<UIVariant>(undefined)\n\n/**\n * Sets a global default UI variant for all olwibaCN primitives in the tree.\n * Individual components can still override with an explicit `mode` prop.\n */\nexport function UIVariantProvider({\n mode,\n children,\n}: {\n mode: UIVariant\n children: React.ReactNode\n}) {\n return (\n <UIVariantContext.Provider value={mode}>\n {children}\n </UIVariantContext.Provider>\n )\n}\n\nexport function useUIVariant(): UIVariant {\n return React.useContext(UIVariantContext)\n}\n","import * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype AccordionMode = \"playful\" | \"smooth\"\ntype AccordionSize = \"sm\" | \"default\"\n\nconst AccordionContext = React.createContext<{ mode?: AccordionMode; size?: AccordionSize }>({})\n\nconst Accordion = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root> & {\n mode?: AccordionMode\n size?: AccordionSize\n }\n>(({ mode, size, ...props }, ref) => (\n <AccordionContext.Provider value={{ mode, size }}>\n <AccordionPrimitive.Root ref={ref} {...props} />\n </AccordionContext.Provider>\n))\nAccordion.displayName = \"Accordion\"\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => {\n const { mode } = React.useContext(AccordionContext)\n return (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\n !mode && \"border-b\",\n mode === \"smooth\" && \"rounded-xl border bg-card mb-2 last:mb-0\",\n mode === \"playful\" && \"border-b border-l-4 border-l-primary/40\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n})\nAccordionItem.displayName = \"AccordionItem\"\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => {\n const { mode, size } = React.useContext(AccordionContext)\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between font-medium transition-all [&[data-state=open]>svg]:rotate-180\",\n size === \"sm\" ? \"py-2\" : \"py-4\",\n !mode && \"hover:underline\",\n mode === \"smooth\" && \"px-4 hover:opacity-70\",\n mode === \"playful\" && \"pl-4 hover:underline\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className={cn(\n \"h-4 w-4 shrink-0 transition-transform duration-200\",\n mode === \"smooth\" && \"mr-4\",\n )} />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n})\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => {\n const { mode, size } = React.useContext(AccordionContext)\n return (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\n size === \"sm\" ? \"pb-2 pt-0\" : \"pb-4 pt-0\",\n mode === \"smooth\" && \"px-4\",\n mode === \"playful\" && \"pl-4\",\n className,\n )}>\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n})\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n info: \"border-blue-100 bg-blue-50/50 text-blue-900 dark:border-blue-800 dark:bg-blue-950/50 dark:text-blue-200 [&>svg]:text-blue-500\",\n warning:\n \"border-yellow-100 bg-yellow-50/50 text-yellow-900 dark:border-yellow-800 dark:bg-yellow-950/50 dark:text-yellow-200 [&>svg]:text-yellow-500\",\n tip: \"border-emerald-100 bg-emerald-50/50 text-emerald-900 dark:border-emerald-800 dark:bg-emerald-950/50 dark:text-emerald-200 [&>svg]:text-emerald-500\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\ntype AlertMode = \"playful\" | \"smooth\"\ntype AlertSize = \"sm\" | \"default\" | \"lg\"\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof alertVariants> & {\n mode?: AlertMode\n size?: AlertSize\n disabled?: boolean\n }\n>(({ className, variant, mode, size, disabled, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(\n alertVariants({ variant }),\n size === \"sm\" && \"p-3 text-xs [&>svg]:top-3 [&>svg]:left-3\",\n size === \"lg\" && \"p-6 text-base [&>svg]:top-6 [&>svg]:left-6\",\n mode === \"smooth\" && \"rounded-2xl\",\n mode === \"playful\" && \"border-l-4\",\n disabled && \"opacity-50 pointer-events-none\",\n className,\n )}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useUIVariant } from \"./ui-variant-context\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold transition-all duration-200 focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/20 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-sm shadow-primary/20 hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-sm shadow-destructive/20 hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-sm shadow-zinc-800/5 hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-sm shadow-zinc-800/5 hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline underline-offset-4 decoration-primary/20 hover:decoration-primary/40\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n mode?: \"playful\" | \"smooth\"\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, mode: modeProp, ...props }, ref) => {\n const mode = modeProp ?? useUIVariant()\n const Comp = asChild ? Slot : \"button\"\n\n const hasBackdrop = mode === \"playful\" && variant !== \"ghost\" && variant !== \"link\"\n\n const backdropColor: Record<string, string> = {\n default: \"bg-primary/30 dark:bg-primary/20\",\n destructive: \"bg-destructive/30 dark:bg-destructive/20\",\n secondary: \"bg-foreground/10 dark:bg-foreground/10\",\n outline: \"bg-foreground/10 dark:bg-foreground/10\",\n }\n\n if (hasBackdrop) {\n return (\n <span className=\"group/playful relative inline-flex\">\n <span\n className={cn(\n \"absolute inset-0 rounded-md transition-transform duration-200 translate-x-[3px] translate-y-[3px] -rotate-[0.5deg] group-hover/playful:-rotate-[1.5deg] group-hover/playful:scale-[1.01]\",\n backdropColor[variant ?? \"default\"],\n )}\n aria-hidden=\"true\"\n />\n <Comp\n className={cn(buttonVariants({ variant, size, className }), \"relative rotate-[0.3deg]\")}\n ref={ref}\n {...props}\n />\n </span>\n )\n }\n\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, size, className }),\n mode === \"smooth\" && \"rounded-full shadow-none\",\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { UIVariantProvider } from \"@/components/ui/ui-variant-context\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\ntype AlertDialogMode = \"playful\" | \"smooth\"\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content> & { mode?: AlertDialogMode }\n>(({ className, mode, children, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-top-[48%]\",\n !mode && \"shadow-lg sm:rounded-lg\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-lg shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n </UIVariantProvider>\n </AlertDialogPrimitive.Content>\n </AlertDialogPortal>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ children, ...props }, ref) => (\n <AlertDialogPrimitive.Action ref={ref} asChild {...props}>\n <Button>{children}</Button>\n </AlertDialogPrimitive.Action>\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ children, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel ref={ref} asChild {...props}>\n <Button variant=\"outline\" className=\"mt-2 sm:mt-0\">{children}</Button>\n </AlertDialogPrimitive.Cancel>\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n","import * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useUIVariant } from \"./ui-variant-context\"\n\ntype AvatarMode = \"playful\" | \"smooth\"\ntype AvatarSize = \"sm\" | \"default\" | \"lg\"\n\nconst AvatarContext = React.createContext<{ mode?: AvatarMode }>({})\n\nconst sizeClasses: Record<AvatarSize, string> = {\n sm: \"h-8 w-8\",\n default: \"h-10 w-10\",\n lg: \"h-14 w-14\",\n}\n\nconst blobKeyframes = `\n @keyframes avatar-blob-1 {\n 0% { border-radius: 52% 48% 51% 49% / 50% 52% 48% 50%; transform: rotate(0deg) scale(0.82); }\n 12% { border-radius: 56% 44% 54% 46% / 46% 56% 45% 55%; transform: rotate(43deg) scale(0.88); }\n 25% { border-radius: 64% 36% 60% 40% / 40% 62% 42% 58%; transform: rotate(90deg) scale(1.00); }\n 38% { border-radius: 56% 44% 54% 46% / 46% 55% 45% 55%; transform: rotate(137deg) scale(0.88); }\n 50% { border-radius: 52% 48% 51% 49% / 50% 52% 48% 50%; transform: rotate(180deg) scale(0.82); }\n 65% { border-radius: 54% 46% 53% 47% / 48% 54% 46% 54%; transform: rotate(234deg) scale(0.85); }\n 78% { border-radius: 60% 40% 58% 42% / 42% 60% 44% 56%; transform: rotate(281deg) scale(0.97); }\n 90% { border-radius: 54% 46% 52% 48% / 47% 54% 46% 54%; transform: rotate(324deg) scale(0.85); }\n 100% { border-radius: 52% 48% 51% 49% / 50% 52% 48% 50%; transform: rotate(360deg) scale(0.82); }\n }\n @keyframes avatar-blob-2 {\n 0% { border-radius: 50% 50% 53% 47% / 48% 52% 50% 50%; transform: rotate(0deg) scale(0.84); }\n 18% { border-radius: 54% 46% 57% 43% / 44% 56% 46% 54%; transform: rotate(-58deg) scale(0.91); }\n 32% { border-radius: 44% 56% 63% 37% / 58% 42% 40% 60%; transform: rotate(-103deg) scale(1.00); }\n 46% { border-radius: 53% 47% 56% 44% / 45% 55% 46% 54%; transform: rotate(-148deg) scale(0.90); }\n 58% { border-radius: 50% 50% 52% 48% / 49% 51% 50% 50%; transform: rotate(-186deg) scale(0.83); }\n 78% { border-radius: 52% 48% 54% 46% / 47% 53% 48% 52%; transform: rotate(-250deg) scale(0.83); }\n 100% { border-radius: 50% 50% 53% 47% / 48% 52% 50% 50%; transform: rotate(-360deg) scale(0.84); }\n }\n @keyframes avatar-blob-3 {\n 0% { border-radius: 51% 49% 50% 50% / 52% 48% 51% 49%; transform: rotate(0deg) scale(0.83); }\n 22% { border-radius: 51% 49% 52% 48% / 51% 49% 52% 48%; transform: rotate(79deg) scale(0.83); }\n 42% { border-radius: 55% 45% 57% 43% / 46% 54% 47% 53%; transform: rotate(151deg) scale(0.88); }\n 58% { border-radius: 62% 38% 65% 35% / 38% 62% 42% 58%; transform: rotate(209deg) scale(1.00); }\n 72% { border-radius: 55% 45% 57% 43% / 46% 54% 47% 53%; transform: rotate(259deg) scale(0.88); }\n 86% { border-radius: 52% 48% 51% 49% / 51% 49% 52% 48%; transform: rotate(310deg) scale(0.83); }\n 100% { border-radius: 51% 49% 50% 50% / 52% 48% 51% 49%; transform: rotate(360deg) scale(0.83); }\n }\n`\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> & {\n mode?: AvatarMode\n size?: AvatarSize\n disabled?: boolean\n }\n>(({ className, mode: modeProp, size = \"default\", disabled, ...props }, ref) => {\n const mode = (modeProp ?? useUIVariant()) as AvatarMode | undefined\n if (mode === \"playful\") {\n return (\n <AvatarContext.Provider value={{ mode }}>\n <div className={cn(\"relative overflow-visible\", sizeClasses[size], disabled && \"opacity-50 pointer-events-none\")}>\n <style dangerouslySetInnerHTML={{ __html: blobKeyframes }} />\n <div\n className=\"absolute opacity-[0.22]\"\n style={{ inset: \"-3px\", background: \"var(--primary)\", animation: \"avatar-blob-1 9s ease-in-out infinite\", animationDelay: \"-2s\" }}\n />\n <div\n className=\"absolute opacity-[0.16]\"\n style={{ inset: \"-3px\", background: \"var(--primary)\", animation: \"avatar-blob-2 13s ease-in-out infinite\", animationDelay: \"-6s\" }}\n />\n <div\n className=\"absolute opacity-[0.10]\"\n style={{ inset: \"-3px\", background: \"var(--primary)\", animation: \"avatar-blob-3 17s ease-in-out infinite\", animationDelay: \"-11s\" }}\n />\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative z-10 flex shrink-0 overflow-hidden rounded-full\",\n sizeClasses[size],\n className\n )}\n {...props}\n />\n </div>\n </AvatarContext.Provider>\n )\n }\n\n return (\n <AvatarContext.Provider value={{ mode }}>\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex shrink-0 overflow-hidden rounded-xl\",\n sizeClasses[size],\n mode === \"smooth\" && \"rounded-full ring-1 ring-border/50 shadow-sm\",\n disabled && \"opacity-50 pointer-events-none\",\n className\n )}\n {...props}\n />\n </AvatarContext.Provider>\n )\n})\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => {\n const { mode } = React.useContext(AvatarContext)\n return (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-xl bg-muted text-xs font-medium leading-none\",\n (mode === \"smooth\" || mode === \"playful\") && \"rounded-full\",\n className\n )}\n {...props}\n />\n )\n})\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n size: {\n sm: \"px-2 py-px text-[10px]\",\n default: \"px-2.5 py-0.5 text-xs\",\n lg: \"px-3 py-1 text-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n disabled?: boolean\n}\n\nfunction Badge({ className, variant, size, disabled = false, ...props }: BadgeProps) {\n return (\n <div\n className={cn(badgeVariants({ variant, size }), disabled && \"opacity-50 pointer-events-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Badge, badgeVariants }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = \"Breadcrumb\"\n\ntype BreadcrumbSize = \"sm\" | \"default\" | \"lg\"\n\nconst breadcrumbListSizeClasses: Record<BreadcrumbSize, string> = {\n sm: \"gap-1 text-xs sm:gap-1.5\",\n default: \"gap-1.5 text-sm sm:gap-2.5\",\n lg: \"gap-2 text-base sm:gap-3\",\n}\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\"> & { size?: BreadcrumbSize }\n>(({ className, size = \"default\", ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center break-words text-muted-foreground\",\n breadcrumbListSizeClasses[size],\n className\n )}\n {...props}\n />\n))\nBreadcrumbList.displayName = \"BreadcrumbList\"\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n))\nBreadcrumbItem.displayName = \"BreadcrumbItem\"\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean\n disabled?: boolean\n }\n>(({ asChild, className, disabled, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n className={cn(\n \"transition-colors hover:text-foreground\",\n disabled && \"opacity-50 pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = \"BreadcrumbLink\"\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n))\nBreadcrumbPage.displayName = \"BreadcrumbPage\"\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n)\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\"\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\"\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/components/ui/separator\"\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 [&>*]:focus-visible:relative [&>*]:focus-visible:z-10 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n className={cn(\n \"bg-muted shadow-xs flex items-center gap-2 rounded-md border px-4 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/ui/button\"\n\ntype CalendarSize = \"sm\" | \"default\" | \"lg\"\ntype CalendarUIMode = \"playful\" | \"smooth\"\n\nconst calendarCellSizes: Record<CalendarSize, string> = {\n sm: \"1.5rem\",\n default: \"2rem\",\n lg: \"2.5rem\",\n}\n\nconst CalendarUIContext = React.createContext<{ uiMode?: CalendarUIMode }>({})\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n size = \"default\",\n uiMode,\n disabled = false,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n size?: CalendarSize\n uiMode?: CalendarUIMode\n disabled?: boolean\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <CalendarUIContext.Provider value={{ uiMode }}>\n <div\n style={{ \"--cell-size\": calendarCellSizes[size] } as React.CSSProperties}\n className={cn(disabled && \"opacity-50 pointer-events-none\")}\n >\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n uiMode === \"smooth\" && \"rounded-xl\",\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-[calc(var(--cell-size)*7+1rem)]\", defaultClassNames.root),\n months: cn(\n \"relative flex flex-col gap-4 md:flex-row\",\n defaultClassNames.months\n ),\n month: cn(\"flex w-full flex-col gap-4\", defaultClassNames.month),\n nav: cn(\n \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-2 px-1\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant, size: \"icon\" }),\n \"size-9 select-none p-0 aria-disabled:opacity-50\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant, size: \"icon\" }),\n \"size-9 select-none p-0 aria-disabled:opacity-50\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex h-9 w-full items-center justify-center px-9\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"bg-popover absolute inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal\",\n defaultClassNames.weekday\n ),\n week: cn(\"mt-2 flex w-full\", defaultClassNames.week),\n week_number_header: cn(\n \"w-[--cell-size] select-none\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-muted-foreground select-none text-[0.8rem]\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"group/day relative flex-1 aspect-square h-full w-full select-none p-0.5 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"bg-accent rounded-l-md\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"bg-accent rounded-r-md\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n uiMode === \"smooth\" && \"rounded-xl data-[selected=true]:rounded-xl\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-[--cell-size] items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n </div>\n </CalendarUIContext.Provider>\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const { uiMode } = React.useContext(CalendarUIContext)\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n const isSelectedSingle =\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n\n const isPlayfulSelected = uiMode === \"playful\" && isSelectedSingle\n\n const button = (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n mode={uiMode}\n data-day={day.date.toLocaleDateString()}\n data-selected-single={isSelectedSingle}\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70\",\n isPlayfulSelected && \"relative rotate-[0.3deg]\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n\n if (isPlayfulSelected) {\n return (\n <span className=\"group/playful relative inline-flex w-full h-full\">\n <span\n className=\"absolute inset-0 rounded-md bg-primary/30 dark:bg-primary/20 translate-x-[3px] translate-y-[3px] -rotate-[0.5deg] transition-transform duration-200 group-hover/playful:-rotate-[1.5deg] group-hover/playful:scale-[1.01]\"\n aria-hidden=\"true\"\n />\n {button}\n </span>\n )\n }\n\n return button\n}\n\nexport { Calendar, CalendarDayButton }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider, useUIVariant } from \"./ui-variant-context\"\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {\n mode?: \"playful\" | \"smooth\"\n}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, mode: modeProp, ...props }, ref) => {\n const mode = modeProp ?? useUIVariant()\n if (mode === \"playful\") {\n return (\n <UIVariantProvider mode=\"playful\">\n <div className=\"group/playful relative\">\n <div\n aria-hidden=\"true\"\n className=\"absolute inset-0 rounded-lg bg-border transition-transform duration-200 translate-x-[5px] translate-y-[5px] -rotate-[0.5deg] group-hover/playful:-rotate-[1.5deg] group-hover/playful:translate-x-[6px] group-hover/playful:translate-y-[6px]\"\n />\n <div\n ref={ref}\n className={cn(\n \"relative rounded-lg border bg-card text-card-foreground shadow-sm rotate-[0.3deg]\",\n className\n )}\n {...props}\n />\n </div>\n </UIVariantProvider>\n )\n }\n\n return (\n <UIVariantProvider mode={mode}>\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n mode === \"smooth\" && \"rounded-3xl\",\n className\n )}\n {...props}\n />\n </UIVariantProvider>\n )\n }\n)\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { UIVariantProvider, useUIVariant } from \"@/components/ui/ui-variant-context\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\ntype CarouselSize = \"sm\" | \"default\" | \"lg\"\n\nconst navDim: Record<CarouselSize, string> = {\n sm: \"h-6 w-6\",\n default: \"h-8 w-8\",\n lg: \"h-10 w-10\",\n}\n\nconst navOffset: Record<CarouselSize, { prevH: string; nextH: string; prevV: string; nextV: string }> = {\n sm: { prevH: \"-left-9\", nextH: \"-right-9\", prevV: \"-top-9\", nextV: \"-bottom-9\" },\n default: { prevH: \"-left-12\", nextH: \"-right-12\", prevV: \"-top-12\", nextV: \"-bottom-12\" },\n lg: { prevH: \"-left-14\", nextH: \"-right-14\", prevV: \"-top-14\", nextV: \"-bottom-14\" },\n}\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n mode?: \"playful\" | \"smooth\"\n size?: CarouselSize\n disabled?: boolean\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n mode?: \"playful\" | \"smooth\"\n carouselSize: CarouselSize\n disabled?: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n if (!context) throw new Error(\"useCarousel must be used within a <Carousel />\")\n return context\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n mode: modeProp,\n size = \"default\",\n disabled = false,\n ...props\n },\n ref\n ) => {\n const mode = modeProp ?? useUIVariant()\n\n const [carouselRef, api] = useEmblaCarousel(\n { ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => { api?.scrollPrev() }, [api])\n const scrollNext = React.useCallback(() => { api?.scrollNext() }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") { event.preventDefault(); scrollPrev() }\n else if (event.key === \"ArrowRight\") { event.preventDefault(); scrollNext() }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n return () => { api?.off(\"select\", onSelect) }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef, api, opts,\n orientation: orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev, scrollNext, canScrollPrev, canScrollNext,\n mode, carouselSize: size, disabled,\n }}\n >\n <UIVariantProvider mode={mode}>\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", disabled && \"opacity-50 pointer-events-none\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </UIVariantProvider>\n </CarouselContext.Provider>\n )\n }\n)\nCarousel.displayName = \"Carousel\"\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel()\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\"flex\", orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\", className)}\n {...props}\n />\n </div>\n )\n})\nCarouselContent.displayName = \"CarouselContent\"\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { orientation } = useCarousel()\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n})\nCarouselItem.displayName = \"CarouselItem\"\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev, mode, carouselSize } = useCarousel()\n\n const dim = navDim[carouselSize]\n const posH = `${navOffset[carouselSize].prevH} top-1/2 -translate-y-1/2`\n const posV = `${navOffset[carouselSize].prevV} left-1/2 -translate-x-1/2 rotate-90`\n const position = orientation === \"horizontal\" ? posH : posV\n\n if (mode === \"playful\") {\n return (\n <span className={cn(\"group/playful absolute\", dim, position)}>\n <span\n className=\"absolute inset-0 rounded-md bg-border translate-x-[3px] translate-y-[3px] -rotate-[0.5deg] transition-transform duration-200 group-hover/playful:-rotate-[1.5deg] group-hover/playful:translate-x-[4px] group-hover/playful:translate-y-[4px]\"\n aria-hidden\n />\n <UIVariantProvider mode={undefined}>\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\"relative h-full w-full rotate-[0.3deg]\", className)}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n </UIVariantProvider>\n </span>\n )\n }\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n mode={mode === \"smooth\" ? \"smooth\" : undefined}\n className={cn(\n \"absolute\",\n dim,\n mode === \"smooth\" && \"rounded-full\",\n position,\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n})\nCarouselPrevious.displayName = \"CarouselPrevious\"\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext, mode, carouselSize } = useCarousel()\n\n const dim = navDim[carouselSize]\n const posH = `${navOffset[carouselSize].nextH} top-1/2 -translate-y-1/2`\n const posV = `${navOffset[carouselSize].nextV} left-1/2 -translate-x-1/2 rotate-90`\n const position = orientation === \"horizontal\" ? posH : posV\n\n if (mode === \"playful\") {\n return (\n <span className={cn(\"group/playful absolute\", dim, position)}>\n <span\n className=\"absolute inset-0 rounded-md bg-border translate-x-[3px] translate-y-[3px] -rotate-[0.5deg] transition-transform duration-200 group-hover/playful:-rotate-[1.5deg] group-hover/playful:translate-x-[4px] group-hover/playful:translate-y-[4px]\"\n aria-hidden\n />\n <UIVariantProvider mode={undefined}>\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\"relative h-full w-full rotate-[0.3deg]\", className)}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n </UIVariantProvider>\n </span>\n )\n }\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n mode={mode === \"smooth\" ? \"smooth\" : undefined}\n className={cn(\n \"absolute\",\n dim,\n mode === \"smooth\" && \"rounded-full\",\n position,\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n})\nCarouselNext.displayName = \"CarouselNext\"\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n}\n","import * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\n\nimport { cn } from \"@/lib/utils\"\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\")\n }\n\n return context\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>[\"children\"]\n disabled?: boolean\n }\n>(({ id, className, children, config, disabled = false, ...props }, ref) => {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n disabled && \"opacity-50 pointer-events-none\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n})\nChartContainer.displayName = \"Chart\"\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color\n )\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref\n ) => {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\"\n\n return (\n <div\n ref={ref}\n className={cn(\n \"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\",\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n }\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\"\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n }\n)\nChartTooltipContent.displayName = \"ChartTooltip\"\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean\n nameKey?: string\n }\n>(\n (\n { className, hideIcon = false, payload, verticalAlign = \"bottom\", nameKey },\n ref\n ) => {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n }\n)\nChartLegendContent.displayName = \"ChartLegend\"\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useUIVariant } from \"./ui-variant-context\"\n\nexport interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {\n mode?: \"playful\" | \"smooth\"\n}\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, mode: modeProp, ...props }, ref) => {\n const mode = modeProp ?? useUIVariant()\n if (mode === \"playful\") {\n return (\n <span className=\"group/playful relative inline-flex\">\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 rounded-sm bg-primary/30 dark:bg-primary/20 transition-transform duration-200 translate-x-[2px] translate-y-[2px] -rotate-[3deg] group-hover/playful:-rotate-[5deg]\"\n />\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"relative grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground rotate-[1.5deg]\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className={cn(\"grid place-content-center text-current\")}>\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n </span>\n )\n }\n\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n mode === \"smooth\" && \"rounded-md\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className={cn(\"grid place-content-center text-current\")}>\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n})\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n","\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider } from \"@/components/ui/ui-variant-context\"\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\ntype DialogMode = \"playful\" | \"smooth\"\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & { mode?: DialogMode }\n>(({ className, mode, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:slide-out-to-top-full data-[state=open]:slide-in-from-top-full\",\n !mode && \"shadow-lg sm:rounded-lg\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-lg shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </UIVariantProvider>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nconst MODIFIER_ORDER = [\"shift\", \"ctrl\", \"alt\", \"mod\"] as const;\ntype ModifierName = (typeof MODIFIER_ORDER)[number];\n\nconst MAC_SYMBOLS: Record<ModifierName, string> = {\n shift: \"⇧\",\n ctrl: \"⌃\",\n alt: \"⌥\",\n mod: \"⌘\",\n};\n\nfunction parseShortcut(shortcut: string): { modifiers: ModifierName[]; key: string } {\n const parts = shortcut\n .split(\"+\")\n .map((p) => p.trim().toLowerCase())\n .filter(Boolean);\n const key = parts.filter((p) => !MODIFIER_ORDER.includes(p as ModifierName)).pop() ?? \"\";\n const modifiers = parts.filter((p) =>\n MODIFIER_ORDER.includes(p as ModifierName)\n ) as ModifierName[];\n return {\n modifiers: MODIFIER_ORDER.filter((m) => modifiers.includes(m)),\n key: key.toUpperCase() || key,\n };\n}\n\nfunction formatShortcut(shortcut: string, isMac: boolean): string {\n const { modifiers, key } = parseShortcut(shortcut);\n if (isMac) {\n const modStr = modifiers.map((m) => MAC_SYMBOLS[m]).join(\"\");\n return `${modStr}${key}`;\n }\n const modLabels: Record<ModifierName, string> = {\n shift: \"Shift\",\n ctrl: \"Ctrl\",\n alt: \"Alt\",\n mod: \"Ctrl\",\n };\n const modStr = modifiers.map((m) => modLabels[m]).join(\"+\");\n return key ? `${modStr}+${key}` : `${modStr}+`;\n}\n\nexport function useIsMac(): boolean {\n const [isMac, setIsMac] = React.useState(false);\n React.useEffect(() => {\n setIsMac(\n typeof navigator !== \"undefined\" &&\n navigator.platform.toUpperCase().includes(\"MAC\")\n );\n }, []);\n return isMac;\n}\n\nexport interface HotkeyProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Shortcut string, e.g. \"mod+T\", \"shift+mod+Z\", \"mod\" (modifier only) */\n shortcut: string;\n /** When true, render inside a <kbd> for standalone use (e.g. toolbar). When false, raw span for use inside MenubarShortcut etc. */\n asKbd?: boolean;\n}\n\nconst Hotkey = React.forwardRef<HTMLSpanElement, HotkeyProps>(\n ({ shortcut, asKbd = false, className, ...props }, ref) => {\n const isMac = useIsMac();\n const content = formatShortcut(shortcut, isMac);\n\n if (asKbd) {\n return (\n <kbd\n ref={ref as React.Ref<HTMLElement>}\n data-slot=\"hotkey\"\n className={cn(\n \"bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 select-none items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium\",\n \"[&_svg:not([class*='size-'])]:size-3\",\n className\n )}\n {...props}\n >\n {content}\n </kbd>\n );\n }\n return (\n <span ref={ref} className={className} {...props}>\n {content}\n </span>\n );\n }\n);\nHotkey.displayName = \"Hotkey\";\n\nexport { Hotkey };\n","\"use client\"\n\nimport * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\"\nimport { Hotkey } from \"@/components/ui/hotkey\"\nimport { UIVariantProvider, useUIVariant } from \"@/components/ui/ui-variant-context\"\n\ntype CommandMode = \"playful\" | \"smooth\"\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive> & {\n mode?: CommandMode\n disabled?: boolean\n }\n>(({ className, mode, disabled, ...props }, ref) => {\n const inner = (\n <UIVariantProvider mode={mode}>\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden bg-popover text-popover-foreground\",\n className,\n !mode && \"rounded-md\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 rotate-[0.3deg]\",\n disabled && \"pointer-events-none opacity-50\",\n )}\n {...props}\n />\n </UIVariantProvider>\n )\n\n if (mode === \"playful\") {\n return (\n <div className=\"relative\">\n <span\n className=\"absolute inset-0 rounded-xl bg-foreground/10 translate-x-[3px] translate-y-[3px] -rotate-[0.5deg]\"\n aria-hidden=\"true\"\n />\n {inner}\n </div>\n )\n }\n\n return inner\n})\nCommand.displayName = CommandPrimitive.displayName\n\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => {\n const mode = useUIVariant()\n return (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n className\n )}\n {...props}\n />\n )\n})\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n shortcut,\n children,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement> & { shortcut?: string }) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n >\n {shortcut != null ? <Hotkey shortcut={shortcut} /> : children}\n </span>\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","import * as React from \"react\"\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Hotkey } from \"@/components/ui/hotkey\"\n\nconst ContextMenu = ContextMenuPrimitive.Root\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n))\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-context-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n))\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-context-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n))\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n))\nContextMenuCheckboxItem.displayName =\n ContextMenuPrimitive.CheckboxItem.displayName\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n))\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-foreground\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n))\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\n\nconst ContextMenuShortcut = ({\n className,\n shortcut,\n children,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement> & { shortcut?: string }) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n >\n {shortcut != null ? <Hotkey shortcut={shortcut} /> : children}\n </span>\n )\n}\nContextMenuShortcut.displayName = \"ContextMenuShortcut\"\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n}\n","import * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider } from \"@/components/ui/ui-variant-context\"\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n)\nDrawer.displayName = \"Drawer\"\n\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\nconst DrawerPortal = DrawerPrimitive.Portal\n\nconst DrawerClose = DrawerPrimitive.Close\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n))\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\n\ntype DrawerMode = \"playful\" | \"smooth\"\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & { mode?: DrawerMode }\n>(({ className, mode, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col border bg-background\",\n !mode && \"rounded-t-[10px]\",\n mode === \"smooth\" && \"rounded-t-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-t-xl border-2 shadow-lg shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </UIVariantProvider>\n </DrawerPrimitive.Content>\n </DrawerPortal>\n))\nDrawerContent.displayName = \"DrawerContent\"\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n)\nDrawerHeader.displayName = \"DrawerHeader\"\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n)\nDrawerFooter.displayName = \"DrawerFooter\"\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Hotkey } from \"@/components/ui/hotkey\"\nimport { UIVariantProvider, useUIVariant } from \"@/components/ui/ui-variant-context\"\n\ntype DropdownMenuMode = \"playful\" | \"smooth\"\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center gap-2 px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n )\n})\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent> & { mode?: DropdownMenuMode }\n>(({ className, mode: modeProp, children, ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]\",\n !mode && \"rounded-md shadow-lg\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-lg shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n </UIVariantProvider>\n </DropdownMenuPrimitive.SubContent>\n )\n})\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> & { mode?: DropdownMenuMode }\n>(({ className, sideOffset = 4, mode: modeProp, children, ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]\",\n !mode && \"rounded-md shadow-md\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-lg shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n </UIVariantProvider>\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n )\n})\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n )\n})\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n})\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n})\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({\n className,\n shortcut,\n children,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement> & { shortcut?: string }) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n >\n {shortcut != null ? <Hotkey shortcut={shortcut} /> : children}\n </span>\n )\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 text-balance rounded-lg border-dashed p-6 text-center md:p-12\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n \"flex max-w-sm flex-col items-center gap-2 text-center\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full min-w-0 max-w-sm flex-col items-center gap-4 text-balance text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst labelVariants = cva(\n \"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n default: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, size, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants({ size }), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","\"use client\"\n\nimport { useMemo } from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/components/ui/label\"\nimport { Separator } from \"@/components/ui/separator\"\nimport { UIVariantProvider, useUIVariant, type UIVariant } from \"@/components/ui/ui-variant-context\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6\",\n \"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n \"group/field data-[invalid=true]:text-destructive flex w-full gap-2\",\n {\n variants: {\n orientation: {\n vertical: [\"flex-col [&>*]:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"[&>[data-slot=field-label]]:flex-auto\",\n \"has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px has-[>[data-slot=field-content]]:items-start\",\n ],\n responsive: [\n \"@md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto flex-col [&>*]:w-full [&>.sr-only]:w-auto\",\n \"@md/field-group:[&>[data-slot=field-label]]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nfunction Field({\n className,\n orientation = \"vertical\",\n mode: modeProp,\n errorMessage,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants> & {\n mode?: UIVariant\n errorMessage?: string\n}) {\n const mode = modeProp ?? useUIVariant()\n return (\n <UIVariantProvider mode={mode}>\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n data-invalid={errorMessage ? \"true\" : undefined}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n >\n {children}\n {errorMessage && <FieldError>{errorMessage}</FieldError>}\n </div>\n </UIVariantProvider>\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1.5 leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>[data-slot=field]]:p-4\",\n \"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm font-medium leading-snug group-data-[disabled=true]/field:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-muted-foreground text-sm font-normal leading-normal group-has-[[data-orientation=horizontal]]/field:text-balance\",\n \"nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors) {\n return null\n }\n\n if (errors?.length === 1 && errors[0]?.message) {\n return errors[0].message\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-destructive text-sm font-normal\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport {\n Controller,\n FormProvider,\n useFormContext,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/components/ui/label\"\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue | null>(null)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState, formState } = useFormContext()\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\")\n }\n\n if (!itemContext) {\n throw new Error(\"useFormField should be used within <FormItem>\")\n }\n\n const fieldState = getFieldState(fieldContext.name, formState)\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\ntype FormItemContextValue = {\n id: string\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue | null>(null)\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId()\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n )\n})\nFormItem.displayName = \"FormItem\"\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n )\n})\nFormLabel.displayName = \"FormLabel\"\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n )\n})\nFormControl.displayName = \"FormControl\"\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n})\nFormDescription.displayName = \"FormDescription\"\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message ?? \"\") : children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-sm font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFormMessage.displayName = \"FormMessage\"\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider, useUIVariant } from \"@/components/ui/ui-variant-context\"\n\ntype HoverCardMode = \"playful\" | \"smooth\"\n\nconst HoverCard = HoverCardPrimitive.Root\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content> & { mode?: HoverCardMode }\n>(({ className, align = \"center\", sideOffset = 4, mode: modeProp, children, ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 border bg-popover p-4 text-popover-foreground outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-hover-card-content-transform-origin]\",\n !mode && \"rounded-md shadow-md\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-lg shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n </UIVariantProvider>\n </HoverCardPrimitive.Content>\n )\n})\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useUIVariant } from \"./ui-variant-context\"\n\nexport interface InputProps extends React.ComponentProps<\"input\"> {\n mode?: \"playful\" | \"smooth\"\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, mode: modeProp, ...props }, ref) => {\n const mode = modeProp ?? useUIVariant()\n\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/20\",\n mode === \"smooth\" && \"rounded-full\",\n mode === \"playful\" && \"rotate-[0.3deg] [box-shadow:3px_3px_0px_0px_color-mix(in_srgb,currentColor_12%,transparent)]\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useUIVariant } from \"./ui-variant-context\"\n\nexport interface TextareaProps extends React.ComponentProps<\"textarea\"> {\n size?: \"sm\" | \"default\" | \"lg\"\n mode?: \"playful\" | \"smooth\"\n}\n\nconst textareaSizes = {\n sm: \"min-h-16 px-3 py-2 text-sm\",\n default: \"min-h-20 px-3 py-2 text-base md:text-sm\",\n lg: \"min-h-28 px-4 py-3 text-base\",\n}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, size = \"default\", mode: modeProp, ...props }, ref) => {\n const mode = modeProp ?? useUIVariant()\n\n const textarea = (\n <textarea\n className={cn(\n \"flex w-full rounded-md border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/20\",\n textareaSizes[size],\n mode === \"smooth\" && \"rounded-2xl\",\n mode === \"playful\" && \"relative z-10 rounded-md\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n\n if (mode === \"playful\") {\n return (\n <span className=\"group/playful relative flex w-full\">\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 z-0 translate-x-[3px] translate-y-[3px] -rotate-[0.4deg] rounded-md bg-foreground/8 transition-transform duration-200 group-hover/playful:-rotate-[1deg] dark:bg-foreground/10\"\n />\n {textarea}\n </span>\n )\n }\n\n return textarea\n }\n)\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport { UIVariantProvider, type UIVariant } from \"@/components/ui/ui-variant-context\"\n\nfunction InputGroup({\n className,\n mode,\n disabled,\n ...props\n}: React.ComponentProps<\"div\"> & {\n mode?: UIVariant\n disabled?: boolean\n}) {\n return (\n <UIVariantProvider mode={mode}>\n <div\n data-slot=\"input-group\"\n data-disabled={disabled ? \"true\" : undefined}\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 shadow-xs relative flex w-full items-center rounded-md border outline-none transition-[color,box-shadow]\",\n \"h-9 has-[>textarea]:h-auto\",\n\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n \"has-[[data-slot=input-group-control]:focus-visible]:ring-ring has-[[data-slot=input-group-control]:focus-visible]:ring-1\",\n\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n mode === \"smooth\" && \"rounded-xl shadow-xl\",\n mode === \"playful\" && \"rotate-[0.3deg] [box-shadow:3px_3px_0px_0px_color-mix(in_srgb,currentColor_12%,transparent)]\",\n disabled && \"pointer-events-none opacity-50\",\n className\n )}\n {...props}\n />\n </UIVariantProvider>\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"[.border-b]:pb-3 order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"[.border-t]:pt-3 order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <UIVariantProvider mode={undefined}>\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n </UIVariantProvider>\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n","import * as React from \"react\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { Dot } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider, useUIVariant } from \"./ui-variant-context\"\n\ntype InputOTPSize = \"sm\" | \"default\" | \"lg\"\n\nconst InputOTPSizeContext = React.createContext<InputOTPSize>(\"default\")\n\nfunction useInputOTPSize() {\n return React.useContext(InputOTPSizeContext)\n}\n\nexport type InputOTPProps = Omit<React.ComponentPropsWithoutRef<typeof OTPInput>, \"size\"> & {\n mode?: \"playful\" | \"smooth\"\n size?: InputOTPSize\n}\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n InputOTPProps\n>(({ className, containerClassName, mode, size = \"default\", ...props }, ref) => {\n const otpInputProps = props as React.ComponentPropsWithoutRef<typeof OTPInput>\n\n return (\n <UIVariantProvider mode={mode}>\n <InputOTPSizeContext.Provider value={size}>\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:pointer-events-none has-[:disabled]:opacity-50\",\n mode === \"playful\" && \"rotate-[0.3deg]\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...otpInputProps}\n />\n </InputOTPSizeContext.Provider>\n </UIVariantProvider>\n )\n})\nInputOTP.displayName = \"InputOTP\"\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props} />\n))\nInputOTPGroup.displayName = \"InputOTPGroup\"\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n const mode = useUIVariant()\n const size = useInputOTPSize()\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex items-center justify-center border-y border-r border-input text-sm transition-all first:border-l\",\n size === \"sm\" && \"h-8 w-8 text-xs\",\n size === \"default\" && \"h-10 w-10 text-sm\",\n size === \"lg\" && \"h-12 w-12 text-base\",\n mode === \"smooth\" ? \"first:rounded-l-xl last:rounded-r-xl\" : \"first:rounded-l-md last:rounded-r-md\",\n mode === \"playful\" && \"[box-shadow:3px_3px_0px_0px_color-mix(in_srgb,currentColor_12%,transparent)]\",\n isActive && \"z-10 ring-2 ring-ring ring-offset-background\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = \"InputOTPSlot\"\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Dot />\n </div>\n))\nInputOTPSeparator.displayName = \"InputOTPSeparator\"\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/components/ui/separator\"\nimport { UIVariantProvider, useUIVariant, type UIVariant } from \"@/components/ui/ui-variant-context\"\n\nfunction ItemGroup({\n className,\n mode: modeProp,\n ...props\n}: React.ComponentProps<\"div\"> & {\n mode?: UIVariant\n}) {\n const mode = modeProp ?? useUIVariant()\n\n if (mode === \"playful\") {\n return (\n <UIVariantProvider mode=\"playful\">\n <div className=\"grid w-fit max-w-full\">\n <span\n aria-hidden=\"true\"\n className={cn(\n \"pointer-events-none col-start-1 row-start-1 rounded-lg bg-foreground/10\",\n \"translate-x-[4px] translate-y-[4px] -rotate-[0.6deg]\"\n )}\n />\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\n \"group/item-group relative col-start-1 row-start-1 flex flex-col bg-fd-background\",\n className\n )}\n {...props}\n />\n </div>\n </UIVariantProvider>\n )\n }\n\n return (\n <UIVariantProvider mode={mode}>\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\n \"group/item-group flex flex-col\",\n className,\n mode === \"smooth\" && \"rounded-2xl shadow-sm\"\n )}\n {...props}\n />\n </UIVariantProvider>\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-0\", className)}\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"group/item [a]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 [a]:transition-colors flex flex-wrap items-center rounded-md border border-transparent text-sm outline-none transition-colors duration-100 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n },\n size: {\n default: \"gap-4 p-4 \",\n sm: \"gap-2.5 px-4 py-3\",\n lg: \"gap-5 p-5 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n mode: modeProp,\n disabled = false,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> &\n VariantProps<typeof itemVariants> & {\n mode?: UIVariant\n disabled?: boolean\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : \"div\"\n const mode = modeProp ?? useUIVariant()\n\n return (\n <UIVariantProvider mode={mode}>\n <Comp\n data-slot=\"item\"\n data-variant={variant}\n data-size={size}\n data-disabled={disabled ? \"true\" : undefined}\n aria-disabled={disabled || undefined}\n className={cn(\n itemVariants({ variant, size }),\n mode === \"smooth\" && \"rounded-xl\",\n disabled && \"pointer-events-none opacity-50\",\n className\n )}\n {...props}\n />\n </UIVariantProvider>\n )\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n const mode = useUIVariant()\n\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(\n itemMediaVariants({ variant }),\n mode === \"smooth\" && variant !== \"default\" && \"rounded-lg\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm font-medium leading-snug\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"text-muted-foreground line-clamp-2 text-balance text-sm font-normal leading-normal\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(\n \"bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 select-none items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium\",\n \"[&_svg:not([class*='size-'])]:size-3\",\n \"[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction KbdGroup({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nexport { Kbd, KbdGroup }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Hotkey } from \"@/components/ui/hotkey\"\nimport { UIVariantProvider, useUIVariant } from \"@/components/ui/ui-variant-context\"\n\ntype MenubarMode = \"playful\" | \"smooth\"\n\nfunction MenubarMenu({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu {...props} />\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group {...props} />\n}\n\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal {...props} />\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return <MenubarPrimitive.RadioGroup {...props} />\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />\n}\n\nconst Menubar = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root> & { mode?: MenubarMode }\n>(({ className, mode, ...props }, ref) => (\n <UIVariantProvider mode={mode}>\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\n \"flex h-10 items-center space-x-1 border bg-background p-1\",\n !mode && \"rounded-md\",\n mode === \"smooth\" && \"rounded-full shadow-sm\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-sm shadow-primary/10\",\n className\n )}\n {...props}\n />\n </UIVariantProvider>\n))\nMenubar.displayName = MenubarPrimitive.Root.displayName\n\nconst MenubarTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\n>(({ className, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-full\",\n mode === \"playful\" && \"rounded-lg\",\n className\n )}\n {...props}\n />\n )\n})\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName\n\nconst MenubarSubTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n )\n})\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName\n\nconst MenubarSubContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent> & { mode?: MenubarMode }\n>(({ className, mode: modeProp, children, ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-menubar-content-transform-origin]\",\n !mode && \"rounded-md shadow-md\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-lg shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n </UIVariantProvider>\n </MenubarPrimitive.SubContent>\n )\n})\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName\n\nconst MenubarContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content> & { mode?: MenubarMode }\n>(\n (\n { className, align = \"start\", alignOffset = -4, sideOffset = 8, mode: modeProp, children, ...props },\n ref\n ) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[12rem] overflow-hidden border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-menubar-content-transform-origin]\",\n !mode && \"rounded-md shadow-md\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-lg shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n </UIVariantProvider>\n </MenubarPrimitive.Content>\n </MenubarPrimitive.Portal>\n )\n }\n)\nMenubarContent.displayName = MenubarPrimitive.Content.displayName\n\nconst MenubarItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <MenubarPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n )\n})\nMenubarItem.displayName = MenubarPrimitive.Item.displayName\n\nconst MenubarCheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n )\n})\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName\n\nconst MenubarRadioItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n !mode && \"rounded-sm\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n )\n})\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName\n\nconst MenubarLabel = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName\n\nconst MenubarSeparator = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName\n\nconst MenubarShortcut = ({\n className,\n shortcut,\n children,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement> & { shortcut?: string }) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n >\n {shortcut != null ? <Hotkey shortcut={shortcut} /> : children}\n </span>\n )\n}\nMenubarShortcut.displayName = \"MenubarShortcut\"\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarPortal,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarSub,\n MenubarShortcut,\n}\n","import * as React from \"react\"\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\"\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider, useUIVariant, type UIVariant } from \"@/components/ui/ui-variant-context\"\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root> & { mode?: UIVariant }\n>(({ className, children, mode: modeProp, ...props }, ref) => {\n const mode = modeProp ?? useUIVariant()\n return (\n <UIVariantProvider mode={mode}>\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n \"relative z-10 flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n </UIVariantProvider>\n )\n})\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => {\n const mode = useUIVariant()\n return (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n \"group flex flex-1 list-none items-center justify-center\",\n mode === \"playful\" ? \"space-x-3\" : \"space-x-1\",\n className\n )}\n {...props}\n />\n )\n})\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-10 w-max cursor-pointer items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent\"\n)\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => {\n const mode = useUIVariant()\n\n const trigger = (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(\n navigationMenuTriggerStyle(),\n \"group\",\n mode === \"smooth\" && \"rounded-full\",\n mode === \"playful\" && \"relative\",\n className\n )}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n\n if (mode === \"playful\") {\n return (\n <span className=\"group/playful relative inline-flex\">\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 rounded-md bg-foreground/8 dark:bg-foreground/10 transition-transform duration-200 translate-x-[3px] translate-y-[3px] -rotate-[0.4deg] group-hover/playful:-rotate-[1deg]\"\n />\n {trigger}\n </span>\n )\n }\n\n return trigger\n})\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto\",\n className\n )}\n {...props}\n />\n))\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName\n\nconst NavigationMenuLink = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Link>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Link>\n>(({ className, asChild, children, ...props }, ref) => {\n const mode = useUIVariant()\n\n if (!asChild && mode === \"playful\") {\n return (\n <span className=\"group/playful relative inline-flex\">\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 rounded-md bg-foreground/8 dark:bg-foreground/10 transition-transform duration-200 translate-x-[3px] translate-y-[3px] -rotate-[0.4deg] group-hover/playful:-rotate-[1deg]\"\n />\n <NavigationMenuPrimitive.Link\n ref={ref}\n asChild={asChild}\n className={cn(\"relative\", className)}\n {...props}\n >\n {children}\n </NavigationMenuPrimitive.Link>\n </span>\n )\n }\n\n return (\n <NavigationMenuPrimitive.Link\n ref={ref}\n asChild={asChild}\n className={cn(\n className,\n !asChild && mode === \"smooth\" && \"rounded-full\",\n )}\n {...props}\n >\n {children}\n </NavigationMenuPrimitive.Link>\n )\n})\nNavigationMenuLink.displayName = NavigationMenuPrimitive.Link.displayName\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => {\n const mode = useUIVariant()\n\n if (mode === \"playful\") {\n return (\n <div className=\"absolute left-0 top-full flex justify-center\">\n <div className=\"relative\">\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 rounded-xl bg-foreground/10 translate-x-[3px] translate-y-[3px] -rotate-[0.5deg]\"\n />\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n </div>\n )\n }\n\n return (\n <div className=\"absolute left-0 top-full flex justify-center\">\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n )\n})\nNavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n))\nNavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n}\n","import * as React from \"react\"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { UIVariantProvider, useUIVariant, type UIVariant } from \"@/components/ui/ui-variant-context\"\n\nconst Pagination = ({\n className,\n mode: modeProp,\n ...props\n}: React.ComponentProps<\"nav\"> & {\n mode?: UIVariant\n}) => {\n const mode = modeProp ?? useUIVariant()\n\n return (\n <UIVariantProvider mode={mode}>\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n </UIVariantProvider>\n )\n}\nPagination.displayName = \"Pagination\"\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n))\nPaginationContent.displayName = \"PaginationContent\"\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"\", className)} {...props} />\n))\nPaginationItem.displayName = \"PaginationItem\"\n\ntype PaginationLinkProps = {\n isActive?: boolean\n disabled?: boolean\n mode?: UIVariant\n size?: \"sm\" | \"default\" | \"lg\" | \"icon\"\n} & Omit<React.ComponentProps<\"a\">, \"size\">\n\ntype PaginationTextLinkProps = Omit<PaginationLinkProps, \"size\"> & {\n size?: \"sm\" | \"default\" | \"lg\"\n}\n\nconst paginationLinkSizes = {\n sm: \"h-9 w-9\",\n default: \"h-10 w-10\",\n lg: \"h-11 w-11 text-base\",\n icon: \"h-10 w-10\",\n}\n\nconst paginationTextLinkSizes = {\n sm: \"h-9 px-3 text-sm\",\n default: \"h-10 px-4 py-2\",\n lg: \"h-11 px-5 text-base\",\n}\n\nconst PaginationLink = ({\n className,\n isActive,\n disabled = false,\n mode: modeProp,\n size = \"default\",\n ...props\n}: PaginationLinkProps) => (\n <Button\n asChild\n variant={isActive ? \"outline\" : \"ghost\"}\n size=\"icon\"\n mode={modeProp}\n className={cn(\n paginationLinkSizes[size],\n disabled && \"pointer-events-none opacity-50\",\n className\n )}\n >\n <a\n aria-current={isActive ? \"page\" : undefined}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : props.tabIndex}\n {...props}\n />\n </Button>\n)\nPaginationLink.displayName = \"PaginationLink\"\n\nconst PaginationPrevious = ({\n className,\n size = \"default\",\n ...props\n}: PaginationTextLinkProps) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cn(paginationTextLinkSizes[size], \"w-auto gap-1 pl-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span>Previous</span>\n </PaginationLink>\n)\nPaginationPrevious.displayName = \"PaginationPrevious\"\n\nconst PaginationNext = ({\n className,\n size = \"default\",\n ...props\n}: PaginationTextLinkProps) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cn(paginationTextLinkSizes[size], \"w-auto gap-1 pr-2.5\", className)}\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n)\nPaginationNext.displayName = \"PaginationNext\"\n\nconst PaginationEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n aria-hidden\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n)\nPaginationEllipsis.displayName = \"PaginationEllipsis\"\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider, useUIVariant } from \"@/components/ui/ui-variant-context\"\n\ntype PopoverMode = \"playful\" | \"smooth\"\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & { mode?: PopoverMode }\n>(({ className, align = \"center\", sideOffset = 4, mode: modeProp, children, ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 border bg-popover p-4 text-popover-foreground outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]\",\n !mode && \"rounded-md shadow-md\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-lg shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n </UIVariantProvider>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n )\n})\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> & {\n disabled?: boolean\n }\n>(({ className, value, disabled = false, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n aria-disabled={disabled || undefined}\n data-disabled={disabled ? \"\" : undefined}\n className={cn(\n \"relative h-4 w-full overflow-hidden rounded-full bg-secondary\",\n disabled && \"opacity-50\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n))\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem }\n","\"use client\"\n\nimport { GripVertical } from \"lucide-react\"\nimport {\n Panel,\n Group as PanelGroup,\n Separator as PanelResizeHandle,\n} from \"react-resizable-panels\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst ResizablePanelGroup = ({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof PanelGroup>) => (\n <PanelGroup\n orientation={orientation}\n className={cn(\"flex h-full w-full\", className)}\n {...props}\n />\n)\n\nconst ResizablePanel = Panel\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof PanelResizeHandle> & {\n withHandle?: boolean\n}) => (\n <PanelResizeHandle\n className={cn(\n \"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 aria-[orientation=horizontal]:after:translate-x-0 [&[aria-orientation=horizontal]>div]:rotate-90\",\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </PanelResizeHandle>\n)\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n","import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> & {\n scrollbars?: \"vertical\" | \"horizontal\" | \"both\"\n }\n>(({ className, children, scrollbars = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n {scrollbars !== \"horizontal\" && <ScrollBar />}\n {scrollbars !== \"vertical\" && <ScrollBar orientation=\"horizontal\" />}\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider, useUIVariant, type UIVariant } from \"@/components/ui/ui-variant-context\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> & {\n mode?: UIVariant\n size?: \"sm\" | \"default\" | \"lg\"\n }\n>(({ className, children, mode: modeProp, size = \"default\", ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex w-full items-center justify-between rounded-md border border-input bg-background text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n size === \"sm\" && \"h-9 px-3 py-1.5 text-xs\",\n size === \"default\" && \"h-10 px-3 py-2 text-sm\",\n size === \"lg\" && \"h-11 px-4 py-2.5 text-base\",\n mode === \"smooth\" && \"rounded-xl shadow-sm\",\n mode === \"playful\" && \"rotate-[0.3deg] [box-shadow:3px_3px_0px_0px_color-mix(in_srgb,currentColor_12%,transparent)]\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n})\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & { mode?: UIVariant }\n>(({ className, children, position = \"popper\", mode: modeProp, ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden border bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]\",\n !mode && \"rounded-md shadow-md\",\n mode === \"smooth\" && \"rounded-2xl shadow-xl\",\n mode === \"playful\" && \"rounded-xl border-2 shadow-lg shadow-primary/10\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n <UIVariantProvider mode={mode}>\n {children}\n </UIVariantProvider>\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n})\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n mode === \"smooth\" && \"rounded-lg\",\n mode === \"playful\" && \"rounded-lg\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n})\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider } from \"@/components/ui/ui-variant-context\"\n\ntype SheetMode = \"playful\" | \"smooth\"\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\nconst sideRoundingSmooth: Record<string, string> = {\n right: \"rounded-l-2xl\",\n left: \"rounded-r-2xl\",\n top: \"rounded-b-2xl\",\n bottom: \"rounded-t-2xl\",\n}\n\nconst sideRoundingPlayful: Record<string, string> = {\n right: \"rounded-l-xl\",\n left: \"rounded-r-xl\",\n top: \"rounded-b-xl\",\n bottom: \"rounded-t-xl\",\n}\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {\n container?: HTMLElement | null\n mode?: SheetMode\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, container, mode, ...props }, ref) => (\n <SheetPortal container={container ?? undefined}>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(\n sheetVariants({ side }),\n mode === \"smooth\" && `${sideRoundingSmooth[side ?? \"right\"]} shadow-xl`,\n mode === \"playful\" && `${sideRoundingPlayful[side ?? \"right\"]} border-2 shadow-lg shadow-primary/10`,\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </UIVariantProvider>\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n","import { cn } from \"@/lib/utils\"\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\nimport { UIVariantProvider } from \"@/components/ui/ui-variant-context\"\n\ntype TooltipMode = \"playful\" | \"smooth\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & { mode?: TooltipMode }\n>(({ className, sideOffset = 4, mode, children, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]\",\n mode === \"smooth\" && \"rounded-xl shadow-xl\",\n mode === \"playful\" && \"rounded-lg border-2 shadow-md shadow-primary/10\",\n className\n )}\n {...props}\n >\n <UIVariantProvider mode={mode}>\n {children}\n </UIVariantProvider>\n </TooltipPrimitive.Content>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeft } from \"lucide-react\"\n\nimport { useIsMobile } from \"@/hooks/use-mobile\"\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/ui/sheet\"\nimport { Skeleton } from \"@/components/ui/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\"\nimport {\n UIVariantProvider,\n useUIVariant,\n type UIVariant,\n} from \"@/components/ui/ui-variant-context\"\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n portalContainer: HTMLElement | null\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n /**\n * Breakpoint used for container-based mobile behavior.\n * In embedded contexts (docs sandboxes, modals), sidebar mobile mode is based on\n * this provider's rendered width instead of the top-level window width.\n */\n mobileBreakpoint?: number\n /**\n * `viewport` (default) — `min-h-svh` for full-page app shells.\n * `embedded` — `h-full min-h-0` to fill a parent (docs sandboxes, modals); avoids viewport-sized layout.\n */\n layout?: \"viewport\" | \"embedded\"\n sidebarWidth?: string\n sidebarWidthIcon?: string\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n mobileBreakpoint = 768,\n layout = \"viewport\",\n sidebarWidth = SIDEBAR_WIDTH,\n sidebarWidthIcon = SIDEBAR_WIDTH_ICON,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const viewportIsMobile = useIsMobile()\n const wrapperRef = React.useRef<HTMLDivElement | null>(null)\n const [portalContainer, setPortalContainer] =\n React.useState<HTMLElement | null>(null)\n const [isContainerMobile, setIsContainerMobile] = React.useState<\n boolean | null\n >(null)\n const isMobile = isContainerMobile ?? viewportIsMobile\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n React.useEffect(() => {\n const node = wrapperRef.current\n if (!node) return\n setPortalContainer(node.ownerDocument?.body ?? null)\n\n const updateFromWidth = (width: number) => {\n setIsContainerMobile(width < mobileBreakpoint)\n }\n\n updateFromWidth(node.clientWidth)\n\n const view = node.ownerDocument?.defaultView\n const ResizeObserverCtor = view?.ResizeObserver ?? ResizeObserver\n if (!ResizeObserverCtor) return\n\n const observer = new ResizeObserverCtor((entries) => {\n const nextWidth = entries[0]?.contentRect.width\n if (typeof nextWidth === \"number\") {\n updateFromWidth(nextWidth)\n }\n })\n observer.observe(node)\n return () => observer.disconnect()\n }, [mobileBreakpoint])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n portalContainer,\n toggleSidebar,\n }),\n [\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n portalContainer,\n toggleSidebar,\n ]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": sidebarWidth,\n \"--sidebar-width-icon\": sidebarWidthIcon,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex w-full items-stretch has-[[data-variant=inset]]:bg-sidebar\",\n layout === \"embedded\" ? \"h-full min-h-0\" : \"min-h-svh\",\n className\n )}\n ref={(node) => {\n wrapperRef.current = node\n if (typeof ref === \"function\") {\n ref(node)\n } else if (ref) {\n ref.current = node\n }\n }}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = \"SidebarProvider\"\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n mode?: UIVariant\n /**\n * Where the desktop sidebar panel is positioned.\n * - `viewport` — `position: fixed` to the window (default shadcn behaviour; full-page apps).\n * - `contained` — `position: absolute` within the sidebar row; use in docs previews, modals, or any\n * non–full-viewport shell so the rail and main content stay one layout unit.\n */\n sidebarPosition?: \"viewport\" | \"contained\"\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n mode: modeProp,\n sidebarPosition = \"viewport\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile, portalContainer } =\n useSidebar()\n const mode = modeProp ?? useUIVariant()\n const isContained = sidebarPosition === \"contained\"\n const isPanelRounded = isContained || variant !== \"sidebar\"\n\n if (collapsible === \"none\") {\n return (\n <UIVariantProvider mode={mode}>\n <div\n className={cn(\n \"flex h-full w-[var(--sidebar-width)] min-w-0 flex-col bg-sidebar text-sidebar-foreground\",\n mode === \"smooth\" && isPanelRounded && \"rounded-xl shadow-sm\",\n mode === \"playful\" && isPanelRounded && \"rounded-lg\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </UIVariantProvider>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n container={portalContainer}\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className={cn(\n \"w-[var(--sidebar-width)] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\",\n mode === \"smooth\" && \"rounded-l-2xl\",\n mode === \"playful\" && \"rounded-l-lg\"\n )}\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <UIVariantProvider mode={mode}>\n <div className=\"flex h-full w-full min-w-0 flex-col\">{children}</div>\n </UIVariantProvider>\n </SheetContent>\n </Sheet>\n )\n }\n\n const isCollapsed = state === \"collapsed\"\n const isIconCollapsed = isCollapsed && collapsible === \"icon\"\n const isOffcanvasCollapsed = isCollapsed && collapsible === \"offcanvas\"\n const panelWidthClass =\n variant === \"floating\" || variant === \"inset\"\n ? isIconCollapsed\n ? \"w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"w-[var(--sidebar-width)]\"\n : isIconCollapsed\n ? \"w-[var(--sidebar-width-icon)]\"\n : \"w-[var(--sidebar-width)]\"\n\n return (\n <div\n ref={ref}\n className={cn(\n \"group peer hidden min-w-0 shrink-0 text-sidebar-foreground md:block\",\n isContained && \"relative overflow-hidden transition-[width] duration-200 ease-linear\",\n isContained && !isOffcanvasCollapsed && panelWidthClass,\n isContained && isOffcanvasCollapsed && \"w-0\"\n )}\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-sidebar-position={sidebarPosition}\n {...props}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"relative bg-transparent transition-[width] duration-200 ease-linear\",\n isContained ? \"hidden w-0 md:hidden\" : \"w-[var(--sidebar-width)]\",\n \"group-data-[side=right]:rotate-180\",\n isOffcanvasCollapsed && \"w-0\",\n variant === \"floating\" || variant === \"inset\"\n ? isIconCollapsed\n ? \"w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : null\n : isIconCollapsed\n ? \"w-[var(--sidebar-width-icon)]\"\n : null\n )}\n />\n <div\n className={cn(\n isContained\n ? \"relative z-10 hidden h-full min-w-0 shrink-0 overflow-hidden transition-[left,right,width] duration-200 ease-linear md:flex\"\n : \"fixed inset-y-0 z-10 hidden h-svh w-[var(--sidebar-width)] transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? cn(\n isContained ? \"\" : \"left-0\",\n !isContained && isOffcanvasCollapsed && \"left-[calc(var(--sidebar-width)*-1)]\"\n )\n : cn(\n isContained ? \"\" : \"right-0\",\n !isContained && isOffcanvasCollapsed && \"right-[calc(var(--sidebar-width)*-1)]\"\n ),\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? cn(\n \"p-2\",\n isContained && panelWidthClass,\n !isContained && isIconCollapsed && \"w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n )\n : cn(\n side === \"left\" ? \"border-r\" : \"border-l\",\n isContained && panelWidthClass,\n !isContained && isIconCollapsed && \"w-[var(--sidebar-width-icon)]\"\n ),\n className\n )}\n >\n <div\n data-sidebar=\"sidebar\"\n className={cn(\n \"flex h-full min-h-0 w-full min-w-0 flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\",\n mode === \"smooth\" && isPanelRounded && \"rounded-xl shadow-sm\",\n mode === \"playful\" && isPanelRounded && \"rounded-lg\"\n )}\n >\n <UIVariantProvider mode={mode}>{children}</UIVariantProvider>\n </div>\n </div>\n </div>\n )\n }\n)\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = \"SidebarTrigger\"\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarRail.displayName = \"SidebarRail\"\n\nconst SidebarInset = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"main\">\n>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n // flex-1 + min-w-0 (not w-full): in a row flex, w-full resolves to the full provider width and\n // the main column can paint under the sidebar; min-w-0 lets flex sizing + truncation work.\n \"relative flex min-h-0 min-w-0 flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarInset.displayName = \"SidebarInset\"\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = \"SidebarInput\"\n\nconst SidebarHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n})\nSidebarHeader.displayName = \"SidebarHeader\"\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n})\nSidebarFooter.displayName = \"SidebarFooter\"\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = \"SidebarSeparator\"\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarContent.displayName = \"SidebarContent\"\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col px-2 pb-2\", className)}\n {...props}\n />\n )\n})\nSidebarGroup.displayName = \"SidebarGroup\"\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\"\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = \"SidebarGroupAction\"\n\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n))\nSidebarGroupContent.displayName = \"SidebarGroupContent\"\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n))\nSidebarMenu.displayName = \"SidebarMenu\"\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\n \"group/menu-item relative\",\n \"[--sidebar-playful-backdrop-rotate:-0.5deg]\",\n \"even:[--sidebar-playful-backdrop-rotate:0.5deg]\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full min-w-0 items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:min-w-0 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default:\n \"h-8 text-sm group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!min-w-8 group-data-[collapsible=icon]:!max-w-8 group-data-[collapsible=icon]:!p-2\",\n sm: \"h-7 text-xs group-data-[collapsible=icon]:!size-7 group-data-[collapsible=icon]:!min-w-7 group-data-[collapsible=icon]:!max-w-7 group-data-[collapsible=icon]:!p-1.5\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!size-12 group-data-[collapsible=icon]:!min-w-12 group-data-[collapsible=icon]:!max-w-12 group-data-[collapsible=icon]:!p-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n const { isMobile, state } = useSidebar()\n const mode = useUIVariant()\n const hasPlayfulBackdrop = mode === \"playful\" && isActive\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n sidebarMenuButtonVariants({ variant, size }),\n mode === \"smooth\" && \"rounded-full shadow-none\",\n mode === \"playful\" && \"rounded-lg\",\n hasPlayfulBackdrop && \"relative\",\n className\n )}\n {...props}\n />\n )\n\n const buttonWithBackdrop = hasPlayfulBackdrop ? (\n <span className=\"group/sidebar-playful relative flex w-full min-w-0\">\n <span\n aria-hidden=\"true\"\n className={cn(\n \"absolute inset-0 rounded-lg bg-sidebar-accent/40 transition-transform duration-200\",\n \"translate-x-[3px] translate-y-[3px] rotate-[var(--sidebar-playful-backdrop-rotate)]\",\n \"group-hover/sidebar-playful:translate-x-[4px] group-hover/sidebar-playful:translate-y-[4px] group-hover/sidebar-playful:scale-[1.01]\"\n )}\n />\n {button}\n </span>\n ) : (\n button\n )\n\n if (!tooltip) {\n return buttonWithBackdrop\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{buttonWithBackdrop}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n }\n)\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = \"SidebarMenuAction\"\n\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\"\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\"\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuSub.displayName = \"SidebarMenuSub\"\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) => <li ref={ref} {...props} />)\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\"\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground cursor-pointer\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\"\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","import * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype SliderSize = \"sm\" | \"default\" | \"lg\"\n\nconst sliderTrackSizes: Record<SliderSize, string> = {\n sm: \"h-1.5\",\n default: \"h-2\",\n lg: \"h-2.5\",\n}\n\nconst sliderThumbSizes: Record<SliderSize, string> = {\n sm: \"h-4 w-4\",\n default: \"h-5 w-5\",\n lg: \"h-6 w-6\",\n}\n\nexport interface SliderProps\n extends React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {\n size?: SliderSize\n}\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n SliderProps\n>(({ className, size = \"default\", ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n className={cn(\n \"relative w-full grow overflow-hidden rounded-full bg-secondary\",\n sliderTrackSizes[size]\n )}\n >\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb\n className={cn(\n \"block rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n sliderThumbSizes[size]\n )}\n />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n","\"use client\"\n\nimport {\n CircleCheck,\n Info,\n LoaderCircle,\n OctagonX,\n TriangleAlert,\n} from \"lucide-react\"\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner } from \"sonner\"\nimport { cn } from \"@/lib/utils\"\n\ntype ToasterProps = React.ComponentProps<typeof Sonner>\ntype ToasterMode = \"playful\" | \"smooth\"\n\nconst Toaster = ({ mode, className, style, ...props }: ToasterProps & { mode?: ToasterMode }) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <>\n {mode === \"smooth\" && (\n <style>{`[data-sonner-toaster].toaster-smooth { --border-radius: 1.5rem; }`}</style>\n )}\n {mode === \"playful\" && (\n <style>{`\n [data-sonner-toaster].toaster-playful [data-sonner-toast][data-mounted=true] {\n transform: var(--y) rotate(0.3deg);\n filter: drop-shadow(4px 4px 0 var(--border));\n }\n [data-sonner-toaster].toaster-playful [data-sonner-toast][data-mounted=true]:nth-child(even) {\n transform: var(--y) rotate(-0.3deg);\n }\n `}</style>\n )}\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className={cn(\"toaster group\", mode && `toaster-${mode}`, className)}\n style={{ zIndex: 9999999, ...style }}\n icons={{\n success: <CircleCheck className=\"h-4 w-4\" />,\n info: <Info className=\"h-4 w-4\" />,\n warning: <TriangleAlert className=\"h-4 w-4\" />,\n error: <OctagonX className=\"h-4 w-4\" />,\n loading: <LoaderCircle className=\"h-4 w-4 animate-spin\" />,\n }}\n toastOptions={{\n classNames: {\n toast: cn(\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n ),\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton: \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton: \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n },\n }}\n {...props}\n />\n </>\n )\n}\n\nexport { Toaster }\n","import { Loader2Icon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Spinner({ className, ...props }: React.ComponentProps<\"svg\">) {\n return (\n <Loader2Icon\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\"size-4 animate-spin\", className)}\n {...props}\n />\n )\n}\n\nexport { Spinner }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst statusIndicatorDotVariants = cva(\n \"relative inline-flex shrink-0 rounded-full bg-current text-primary\",\n {\n variants: {\n size: {\n sm: \"size-1.5\",\n default: \"size-2\",\n lg: \"size-2.5\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nexport interface StatusIndicatorProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof statusIndicatorDotVariants> {\n pulse?: boolean\n disabled?: boolean\n dotClassName?: string\n}\n\nfunction StatusIndicator({\n className,\n dotClassName,\n color,\n size,\n pulse = false,\n disabled = false,\n children,\n ...props\n}: StatusIndicatorProps) {\n const hasAccessibleLabel =\n props[\"aria-label\"] != null ||\n props[\"aria-labelledby\"] != null ||\n React.Children.count(children) > 0\n\n return (\n <span\n data-slot=\"status-indicator\"\n data-disabled={disabled ? true : undefined}\n aria-disabled={disabled ? true : undefined}\n className={cn(\n \"inline-flex items-center gap-2 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n className\n )}\n aria-hidden={hasAccessibleLabel ? undefined : true}\n {...props}\n >\n <span\n data-slot=\"status-indicator-dot\"\n className={cn(statusIndicatorDotVariants({ size }), dotClassName)}\n style={color ? { color } : undefined}\n >\n {pulse ? (\n <span\n data-slot=\"status-indicator-pulse\"\n className=\"absolute inset-0 rounded-full bg-current opacity-70 animate-ping\"\n />\n ) : null}\n <span className=\"relative block size-full rounded-full bg-current\" />\n </span>\n {children ? (\n <span data-slot=\"status-indicator-label\">{children}</span>\n ) : null}\n </span>\n )\n}\n\nexport { StatusIndicator, statusIndicatorDotVariants }\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport interface SwitchProps extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> {\n size?: \"sm\" | \"default\" | \"lg\"\n}\n\nconst switchSizes = {\n sm: {\n root: \"h-5 w-9\",\n thumb: \"size-4 data-[state=checked]:translate-x-4\",\n },\n default: {\n root: \"h-6 w-11\",\n thumb: \"size-5 data-[state=checked]:translate-x-5\",\n },\n lg: {\n root: \"h-7 w-14\",\n thumb: \"size-6 data-[state=checked]:translate-x-7\",\n },\n} as const\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, size = \"default\", ...props }, ref) => {\n const sizes = switchSizes[size]\n\n return (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n sizes.root,\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=unchecked]:translate-x-0\",\n sizes.thumb\n )}\n />\n </SwitchPrimitives.Root>\n )\n})\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype TableSize = \"sm\" | \"default\" | \"lg\"\n\ninterface TableProps extends React.HTMLAttributes<HTMLTableElement> {\n size?: TableSize\n}\n\nconst TableSizeContext = React.createContext<TableSize>(\"default\")\n\nconst tableTextSizes: Record<TableSize, string> = {\n sm: \"text-xs\",\n default: \"text-sm\",\n lg: \"text-base\",\n}\n\nconst tableHeadSizes: Record<TableSize, string> = {\n sm: \"h-9 px-3\",\n default: \"h-12 px-4\",\n lg: \"h-14 px-5\",\n}\n\nconst tableCellSizes: Record<TableSize, string> = {\n sm: \"p-3\",\n default: \"p-4\",\n lg: \"p-5\",\n}\n\nconst tableCaptionSizes: Record<TableSize, string> = {\n sm: \"mt-3 text-xs\",\n default: \"mt-4 text-sm\",\n lg: \"mt-4 text-sm\",\n}\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n TableProps\n>(({ className, size = \"default\", ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <TableSizeContext.Provider value={size}>\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom\", tableTextSizes[size], className)}\n {...props}\n />\n </TableSizeContext.Provider>\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => {\n const size = React.useContext(TableSizeContext)\n\n return (\n <th\n ref={ref}\n className={cn(\n \"text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n tableHeadSizes[size],\n className\n )}\n {...props}\n />\n )\n})\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => {\n const size = React.useContext(TableSizeContext)\n\n return (\n <td\n ref={ref}\n className={cn(\n \"align-middle [&:has([role=checkbox])]:pr-0\",\n tableCellSizes[size],\n className\n )}\n {...props}\n />\n )\n})\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => {\n const size = React.useContext(TableSizeContext)\n\n return (\n <caption\n ref={ref}\n className={cn(tableCaptionSizes[size], \"text-muted-foreground\", className)}\n {...props}\n />\n )\n})\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n UIVariantProvider,\n type UIVariant,\n useUIVariant,\n} from \"./ui-variant-context\"\n\ntype TabsSize = \"sm\" | \"default\" | \"lg\"\n\ninterface TabsProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> {\n mode?: UIVariant\n}\n\ninterface TabsListProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> {\n size?: TabsSize\n}\n\nconst TabsSizeContext = React.createContext<TabsSize>(\"default\")\n\nconst tabsListSizes: Record<TabsSize, string> = {\n sm: \"h-8 p-1\",\n default: \"h-10 p-1\",\n lg: \"h-11 p-1\",\n}\n\nconst tabsTriggerSizes: Record<TabsSize, string> = {\n sm: \"px-2.5 py-1 text-xs\",\n default: \"px-3 py-1.5 text-sm\",\n lg: \"px-4 py-2 text-sm\",\n}\n\nconst Tabs = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Root>,\n TabsProps\n>(({ mode: modeProp, ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <UIVariantProvider mode={mode}>\n <TabsPrimitive.Root ref={ref} {...props} />\n </UIVariantProvider>\n )\n})\nTabs.displayName = TabsPrimitive.Root.displayName\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, size = \"default\", ...props }, ref) => {\n const mode = useUIVariant()\n\n return (\n <TabsSizeContext.Provider value={size}>\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center rounded-md bg-muted text-muted-foreground\",\n tabsListSizes[size],\n mode === \"smooth\" && \"rounded-full\",\n mode === \"playful\" &&\n \"box-content overflow-visible rounded-lg bg-muted/70 pr-[7px] pb-[7px]\",\n className\n )}\n {...props}\n />\n </TabsSizeContext.Provider>\n )\n})\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => {\n const size = React.useContext(TabsSizeContext)\n const mode = useUIVariant()\n\n const trigger = (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"relative inline-flex items-center justify-center whitespace-nowrap rounded-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n tabsTriggerSizes[size],\n mode === \"smooth\" && \"rounded-full data-[state=active]:shadow-none\",\n mode === \"playful\" &&\n \"z-10 w-full rounded-md data-[state=active]:shadow-none\",\n className\n )}\n {...props}\n />\n )\n\n if (mode === \"playful\") {\n return (\n <span className=\"group/tabs-trigger relative inline-flex min-w-0\">\n <span\n className=\"absolute inset-0 z-0 translate-x-[3px] translate-y-[3px] -rotate-[0.5deg] rounded-md bg-primary/25 opacity-0 transition-opacity duration-200 group-has-[button[data-state=active]]/tabs-trigger:opacity-100\"\n aria-hidden=\"true\"\n />\n {trigger}\n </span>\n )\n }\n\n return trigger\n})\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","import * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { type UIVariant, useUIVariant } from \"./ui-variant-context\"\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-3 min-w-10\",\n sm: \"h-9 px-2.5 min-w-9\",\n lg: \"h-11 px-5 min-w-11\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n mode?: UIVariant\n }\n>(({ className, variant, size, mode: modeProp, ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n const toggle = (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(\n toggleVariants({ variant, size }),\n mode === \"smooth\" && \"rounded-full\",\n mode === \"playful\" &&\n \"relative z-10 rounded-md data-[state=on]:shadow-sm\",\n className\n )}\n {...props}\n />\n )\n\n if (mode === \"playful\") {\n return (\n <span className=\"group/toggle relative inline-flex\">\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 z-0 origin-center translate-x-[3px] translate-y-[3px] -rotate-[1.5deg] rounded-md bg-primary/30 opacity-0 transition-[opacity,transform] duration-200 group-has-[[data-state=on]]/toggle:opacity-100\"\n />\n {toggle}\n </span>\n )\n }\n\n return toggle\n})\n\nToggle.displayName = TogglePrimitive.Root.displayName\n\nexport { Toggle, toggleVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toggleVariants } from \"@/components/ui/toggle\"\nimport {\n UIVariantProvider,\n type UIVariant,\n useUIVariant,\n} from \"./ui-variant-context\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & { mode?: UIVariant }\n>({\n size: \"default\",\n variant: \"default\",\n})\n\ntype ToggleGroupProps =\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n mode?: UIVariant\n }\n\ntype ToggleGroupItemProps =\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants> & {\n mode?: UIVariant\n }\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n ToggleGroupProps\n>(({ className, variant, size, mode: modeProp, children, ...props }, ref) => {\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? inheritedMode\n\n return (\n <UIVariantProvider mode={mode}>\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn(\"flex items-center justify-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size, mode }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n </UIVariantProvider>\n )\n})\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n ToggleGroupItemProps\n>(({ className, children, variant, size, mode: modeProp, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext)\n const inheritedMode = useUIVariant()\n const mode = modeProp ?? context.mode ?? inheritedMode\n const item = (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n mode === \"smooth\" && \"rounded-full\",\n mode === \"playful\" &&\n \"relative z-10 rounded-md data-[state=on]:shadow-sm\",\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n\n if (mode === \"playful\") {\n return (\n <span className=\"group/toggle-group-item relative inline-flex [&:nth-child(even)>span:first-child]:rotate-[1.5deg] [&:nth-child(odd)>span:first-child]:-rotate-[1.5deg]\">\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 z-0 origin-center translate-x-[3px] translate-y-[3px] rounded-md bg-primary/30 opacity-0 transition-[opacity,transform] duration-200 group-has-[button[data-state=on]]/toggle-group-item:opacity-100\"\n />\n {item}\n </span>\n )\n }\n\n return item\n})\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem }\n","import type { FigletFont } from \"./figlet\"\n\nexport interface AsciiCell {\n ch: \"█\" | \"░\"\n col: number\n row: number\n}\n\nexport interface AsciiTextLayout {\n cells: AsciiCell[]\n cols: number\n rows: number\n}\n\nexport function composeAsciiText(font: FigletFont, text: string): AsciiTextLayout {\n const charBlocks: Array<{ lines: string[]; width: number }> = []\n\n for (const ch of text) {\n const code = ch.charCodeAt(0)\n const glyph = font.chars.get(code) ?? font.chars.get(32)\n if (!glyph) continue\n\n const width = Math.max(...glyph.map((line) => line.length))\n charBlocks.push({\n lines: glyph.map((line) => line.padEnd(width)),\n width,\n })\n }\n\n const cols = charBlocks.reduce((sum, block) => sum + block.width, 0)\n const rows = font.height\n const cells: AsciiCell[] = []\n let offsetX = 0\n\n for (const block of charBlocks) {\n for (let row = 0; row < rows; row++) {\n const line = block.lines[row] ?? \"\"\n for (let col = 0; col < line.length; col++) {\n const ch = line[col]\n if (ch === \"█\" || ch === \"░\") {\n cells.push({ ch, col: offsetX + col, row })\n }\n }\n }\n offsetX += block.width\n }\n\n return { cells, cols, rows }\n}\n\nexport function getAsciiAccentColumns(\n font: FigletFont,\n text: string,\n accent: string,\n): Set<number> {\n if (!accent) return new Set<number>()\n\n const columns = new Set<number>()\n let offsetX = 0\n\n for (const ch of text) {\n const code = ch.charCodeAt(0)\n const glyph = font.chars.get(code) ?? font.chars.get(32)\n if (!glyph) continue\n\n const width = Math.max(...glyph.map((line) => line.length))\n if (accent.includes(ch)) {\n for (let col = 0; col < width; col++) columns.add(offsetX + col)\n }\n offsetX += width\n }\n\n return columns\n}\n","export interface FigletFont {\n height: number\n baseline: number\n hardblank: string\n chars: Map<number, string[]>\n}\n\nexport function parseFigletFont(raw: string): FigletFont {\n const lines = raw.split(\"\\n\")\n\n if (lines[0]?.charCodeAt(0) === 0xfeff) {\n lines[0] = lines[0].slice(1)\n }\n\n const header = lines[0]\n if (!header?.startsWith(\"flf2a\")) {\n throw new Error(\"Invalid FIGlet font: missing flf2a header\")\n }\n\n const hardblank = header[5] ?? \"$\"\n const parts = header.slice(6).trim().split(/\\s+/)\n const height = Number.parseInt(parts[0] ?? \"\", 10)\n const baseline = Number.parseInt(parts[1] ?? \"\", 10)\n const commentLines = Number.parseInt(parts[4] ?? \"\", 10)\n\n if (!Number.isFinite(height) || height <= 0) {\n throw new Error(\"Invalid FIGlet font: missing character height\")\n }\n\n const dataStart = 1 + (Number.isFinite(commentLines) ? commentLines : 0)\n const chars = new Map<number, string[]>()\n let lineIndex = dataStart\n let ascii = 32\n\n while (lineIndex + height <= lines.length && ascii <= 126) {\n const charLines: string[] = []\n for (let row = 0; row < height; row++) {\n const line = (lines[lineIndex + row] ?? \"\")\n .replace(/@+$/, \"\")\n .replaceAll(hardblank, \" \")\n charLines.push(line)\n }\n\n chars.set(ascii, charLines)\n lineIndex += height\n ascii++\n }\n\n return { height, baseline, hardblank, chars }\n}\n","import type { AsciiCell, AsciiTextLayout } from \"./compose\"\n\nexport const ASCII_CHAR_WIDTH = 7.5\nexport const ASCII_CHAR_HEIGHT = 15\n\nexport interface AsciiWave {\n cx: number\n cy: number\n t: number\n}\n\nexport interface AsciiPointer {\n x: number\n y: number\n active: boolean\n}\n\nexport interface AsciiFrameState {\n time?: number\n phase?: number\n pointer?: AsciiPointer\n waves?: AsciiWave[]\n}\n\nexport interface AsciiRenderOptions extends AsciiFrameState {\n accentColumns?: ReadonlySet<number>\n color: string\n accentColor?: string\n charWidth?: number\n charHeight?: number\n}\n\nexport interface AsciiFrameContext {\n clearRect(x: number, y: number, width: number, height: number): void\n fillRect(x: number, y: number, width: number, height: number): void\n globalAlpha: number\n fillStyle: string\n}\n\nexport function getAsciiCanvasSize(\n layout: AsciiTextLayout,\n charWidth = ASCII_CHAR_WIDTH,\n charHeight = ASCII_CHAR_HEIGHT,\n) {\n return {\n width: Math.ceil(layout.cols * charWidth),\n height: layout.rows * charHeight,\n }\n}\n\nexport function getAsciiCellIntensity(cell: AsciiCell, options: AsciiFrameState): number {\n const time = options.time ?? 0\n const loop = options.phase == null ? null : options.phase * Math.PI * 2\n\n if (cell.ch === \"░\") {\n const drift =\n loop == null\n ? Math.sin(time * 0.3 + cell.col * 0.1) * 0.03\n : Math.sin(loop + cell.col * 0.1) * 0.03\n return 0.15 + drift\n }\n\n if (loop != null) {\n return getLoopIntensity(cell, loop)\n }\n\n const noise = getLiveNoise(cell, time)\n\n const seed = cell.col * 7.13 + cell.row * 13.37\n const flickerPhase = Math.sin(seed) * 1000\n const flickerWave = Math.sin(time * 0.8 + flickerPhase)\n const flicker = flickerWave > 0.97 ? 0.15 : 0\n\n let intensity = 0.7 + noise + flicker\n const charWidth = ASCII_CHAR_WIDTH\n const charHeight = ASCII_CHAR_HEIGHT\n\n if (options.pointer?.active) {\n const mdx = cell.col * charWidth + charWidth / 2 - options.pointer.x\n const mdy = cell.row * charHeight + charHeight / 2 - options.pointer.y\n const mDist = Math.sqrt(mdx * mdx + mdy * mdy)\n const radius = 80\n if (mDist < radius) {\n const falloff = 1 - mDist / radius\n const ripple = Math.sin(mDist * 0.08 - time * 4) * 0.12 * falloff * falloff\n intensity = Math.min(1, intensity + falloff * 0.2 + ripple)\n }\n }\n\n const px = cell.col * charWidth + charWidth / 2\n const py = cell.row * charHeight + charHeight / 2\n for (const wave of options.waves ?? []) {\n const wdx = px - wave.cx\n const wdy = py - wave.cy\n const dist = Math.sqrt(wdx * wdx + wdy * wdy)\n const age = time - wave.t\n const waveRadius = age * 200\n const delta = dist - waveRadius\n const fade = Math.exp(-age * 1.5)\n const ring = Math.exp(-delta * delta * 0.002) * fade\n intensity = Math.min(1, intensity + ring * 0.5 * Math.sin(delta * 0.06 + 1.5))\n }\n\n return Math.max(0.5, Math.min(1, intensity))\n}\n\nexport function renderAsciiFrameToContext(\n ctx: AsciiFrameContext,\n layout: AsciiTextLayout,\n options: AsciiRenderOptions,\n) {\n const charWidth = options.charWidth ?? ASCII_CHAR_WIDTH\n const charHeight = options.charHeight ?? ASCII_CHAR_HEIGHT\n const { width, height } = getAsciiCanvasSize(layout, charWidth, charHeight)\n const accentColor = options.accentColor ?? options.color\n\n ctx.clearRect(0, 0, width, height)\n\n for (const cell of layout.cells) {\n const isAccent = options.accentColumns?.has(cell.col) ?? false\n ctx.globalAlpha = getAsciiCellIntensity(cell, options)\n ctx.fillStyle = isAccent ? accentColor : options.color\n ctx.fillRect(cell.col * charWidth, cell.row * charHeight, charWidth, charHeight)\n }\n\n ctx.globalAlpha = 1\n}\n\nfunction getLiveNoise(cell: AsciiCell, time: number): number {\n const nx = cell.col * 0.18 + time * 0.9\n const ny = cell.row * 0.3 + time * 0.55\n return (\n Math.sin(nx) * 0.12 +\n Math.sin(ny * 1.4 + nx * 0.6) * 0.1 +\n Math.sin(nx * 0.4 - ny * 0.8 + time * 1.6) * 0.08 +\n Math.sin((cell.col + cell.row) * 0.15 + time * 0.4) * 0.07\n )\n}\n\nfunction getLoopIntensity(cell: AsciiCell, loop: number): number {\n const flow =\n Math.sin(cell.col * 0.08 + loop) * 0.055 +\n Math.sin(cell.row * 0.22 - loop * 0.75) * 0.04\n const shimmer = (Math.sin(cell.col * 0.16 + cell.row * 0.08 - loop * 2) + 1) / 2\n const highlight = Math.pow(shimmer, 4) * 0.22\n const intensity = 0.68 + flow + highlight\n\n return Math.max(0.55, Math.min(1, intensity))\n}\n","// @generated from dosrebel.flf. Do not edit by hand.\nexport const dosrebelFont: string = \"flf2a$ 11 8 35 -1 15\\nRebel by Valerie Mates (popcorn@cyberspace.org), based on a font by Ron Bliss\\n(who sometimes goes by the name \\\"rebel\\\" because his initials are REB).\\nNOTE: THIS FONT ONLY WORKS IN MS-DOS.\\nMay 27, 1994\\n\\nExplanation of first line:\\nflf2 - \\\"magic number\\\" for file identification\\na - should always be `a', for now\\n$ - the \\\"hardblank\\\" -- prints as a blank, but can't be smushed\\n11 - height of a character\\n8 - height of a character, not including descenders\\n35 - max line length (excluding comment lines) + a fudge factor\\n-1 - default smushmode for this font (like \\\"-m 15\\\" on command line)\\n15 - number of comment lines\\n\\n$$$@\\n$$$@\\n$$$@\\n$$$@\\n$$$@\\n$$$@\\n$$$@\\n$$$@\\n$$$@\\n$$$@\\n$$$@@\\n ███@\\n░███@\\n░███@\\n░███@\\n░███@\\n░░░ @\\n ███@\\n░░░ @\\n @\\n @\\n @@\\n ██ ██@\\n░██░██@\\n░░ ░░ @\\n @\\n @\\n @\\n @\\n @\\n @\\n @\\n @@\\n ███ ███ @\\n ████████████@\\n░░░███░░███░ @\\n ████████████@\\n░░░███░░███░ @\\n ░░░ ░░░ @\\n @\\n @\\n @\\n @\\n @@\\n ███ @\\n ██████ @\\n ███░░░ @\\n ░░█████ @\\n ░░░░███ @\\n ██████ @\\n ░░░███ @\\n ░░░ @\\n @\\n @\\n @@\\n ███ ███@\\n ░░░ ███░ @\\n ███░ @\\n ███░ @\\n ███░ @\\n ███░ @\\n ███░ ███ @\\n░░░ ░░░ @\\n @\\n @\\n @@\\n ██████ @\\n ███░░███ @\\n ░░██████ @\\n ██████ @\\n░███░░███ @\\n░███ ░░███ @\\n░░█████░███@\\n ░░░░░ ░░░ @\\n @\\n @\\n @@\\n ██@\\n ███@\\n░░░ @\\n @\\n @\\n @\\n @\\n @\\n @\\n @\\n @@\\n ███@\\n ███ @\\n ███ @\\n░███ @\\n░███ @\\n░░███ @\\n ░░███@\\n ░░░ @\\n @\\n @\\n @@\\n ███ @\\n░░███ @\\n ░░███@\\n ░███@\\n ░███@\\n ███ @\\n ██░ @\\n░░░ @\\n @\\n @\\n @@\\n ███ @\\n ███ ░███ ███@\\n░░░█████████░ @\\n ░░░█████░ @\\n █████████ @\\n ███░░███░░███@\\n░░░ ░███ ░░░ @\\n ░░░ @\\n @\\n @\\n @@\\n @\\n ███ @\\n ░███ @\\n ███████████@\\n░░░░░███░░░ @\\n ░███ @\\n ░░░ @\\n @\\n @\\n @\\n @@\\n @\\n @\\n @\\n @\\n @\\n @\\n ██@\\n ██ @\\n░░ @\\n @\\n @@\\n @\\n @\\n @\\n ██████████@\\n░░░░░░░░░░ @\\n @\\n @\\n @\\n @\\n @\\n @@\\n @\\n @\\n @\\n @\\n @\\n @\\n ██@\\n░░ @\\n @\\n @\\n @@\\n ███@\\n ███░ @\\n ███░ @\\n ███░ @\\n ███░ @\\n ███░ @\\n ███░ @\\n░░░ @\\n @\\n @\\n @@\\n █████ @\\n ███░░░███ @\\n ███ ░░███@\\n░███ ░███@\\n░███ ░███@\\n░░███ ███ @\\n ░░░█████░ @\\n ░░░░░░ @\\n @\\n @\\n @@\\n ████ @\\n░░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n █████@\\n░░░░░ @\\n @\\n @\\n @@\\n ████████ @\\n ███░░░░███@\\n░░░ ░███@\\n ███████ @\\n ███░░░░ @\\n ███ █@\\n░██████████@\\n░░░░░░░░░░ @\\n @\\n @\\n @@\\n ████████ @\\n ███░░░░███@\\n░░░ ░███@\\n ██████░ @\\n ░░░░░░███@\\n ███ ░███@\\n░░████████ @\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n █████ █████ @\\n░░███ ░░███ @\\n ░███ ░███ █@\\n ░███████████@\\n ░░░░░░░███░█@\\n ░███░ @\\n █████ @\\n ░░░░░ @\\n @\\n @\\n @@\\n ██████████@\\n░███░░░░░░█@\\n░███ ░ @\\n░█████████ @\\n░░░░░░░░███@\\n ███ ░███@\\n░░████████ @\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n ████████ @\\n ███░░░░███@\\n░███ ░░░ @\\n░█████████ @\\n░███░░░░███@\\n░███ ░███@\\n░░████████ @\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n ██████████@\\n░███░░░░███@\\n░░░ ███ @\\n ███ @\\n ███ @\\n ███ @\\n ███ @\\n ░░░ @\\n @\\n @\\n @@\\n ████████ @\\n ███░░░░███ @\\n░███ ░███ @\\n░░████████ @\\n ███░░░░███ @\\n░███ ░███ @\\n░░████████ @\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n ████████ @\\n ███░░░░███@\\n░███ ░███@\\n░░█████████@\\n ░░░░░░░███@\\n ███ ░███@\\n░░████████ @\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n ██@\\n░░ @\\n @\\n @\\n ██@\\n░░ @\\n @\\n @\\n @@\\n @\\n @\\n @\\n @\\n ██@\\n ░░ @\\n ██@\\n ██ @\\n░░ @\\n @\\n @@\\n ███@\\n ███░ @\\n ███░ @\\n ███░ @\\n░░░███ @\\n ░░░███ @\\n ░░░███@\\n ░░░ @\\n @\\n @\\n @@\\n @\\n @\\n █████████@\\n░░░░░░░░░ @\\n █████████@\\n░░░░░░░░░ @\\n @\\n @\\n @\\n @\\n @@\\n ███ @\\n░░░███ @\\n ░░░███ @\\n ░░░███@\\n ███░ @\\n ███░ @\\n ███░ @\\n░░░ @\\n @\\n @\\n @@\\n ███████ @\\n ███░░░███@\\n░░░ ░███@\\n ███████ @\\n ░███░░░ @\\n ░░░ @\\n ███ @\\n ░░░ @\\n @\\n @\\n @@\\n █████████ @\\n ███░░░░░░ @\\n░███ ██████ @\\n░███░███░███@\\n░███░███░███@\\n░███░░░ ░███@\\n░░█████████ @\\n ░░░░░░░░░ @\\n @\\n @\\n @@\\n █████████ @\\n ███░░░░░███ @\\n ░███ ░███ @\\n ░███████████ @\\n ░███░░░░░███ @\\n ░███ ░███ @\\n █████ █████@\\n░░░░░ ░░░░░ @\\n @\\n @\\n @@\\n ███████████ @\\n░░███░░░░░███@\\n ░███ ░███@\\n ░██████████ @\\n ░███░░░░░███@\\n ░███ ░███@\\n ███████████ @\\n░░░░░░░░░░░ @\\n @\\n @\\n @@\\n █████████ @\\n ███░░░░░███@\\n ███ ░░░ @\\n░███ @\\n░███ @\\n░░███ ███@\\n ░░█████████ @\\n ░░░░░░░░░ @\\n @\\n @\\n @@\\n ██████████ @\\n░░███░░░░███ @\\n ░███ ░░███@\\n ░███ ░███@\\n ░███ ░███@\\n ░███ ███ @\\n ██████████ @\\n░░░░░░░░░░ @\\n @\\n @\\n @@\\n ██████████@\\n░░███░░░░░█@\\n ░███ █ ░ @\\n ░██████ @\\n ░███░░█ @\\n ░███ ░ █@\\n ██████████@\\n░░░░░░░░░░ @\\n @\\n @\\n @@\\n ███████████@\\n░░███░░░░░░█@\\n ░███ █ ░ @\\n ░███████ @\\n ░███░░░█ @\\n ░███ ░ @\\n █████ @\\n░░░░░ @\\n @\\n @\\n @@\\n █████████ @\\n ███░░░░░███@\\n ███ ░░░ @\\n░███ @\\n░███ █████@\\n░░███ ░░███ @\\n ░░█████████ @\\n ░░░░░░░░░ @\\n @\\n @\\n @@\\n █████ █████@\\n░░███ ░░███ @\\n ░███ ░███ @\\n ░███████████ @\\n ░███░░░░░███ @\\n ░███ ░███ @\\n █████ █████@\\n░░░░░ ░░░░░ @\\n @\\n @\\n @@\\n █████@\\n░░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n █████@\\n░░░░░ @\\n @\\n @\\n @@\\n █████@\\n ░░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n ███ ░███ @\\n░░████████ @\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n █████ ████@\\n░░███ ███░ @\\n ░███ ███ @\\n ░███████ @\\n ░███░░███ @\\n ░███ ░░███ @\\n █████ ░░████@\\n░░░░░ ░░░░ @\\n @\\n @\\n @@\\n █████ @\\n░░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n ░███ █@\\n ███████████@\\n░░░░░░░░░░░ @\\n @\\n @\\n @@\\n ██████ ██████@\\n░░██████ ██████ @\\n ░███░█████░███ @\\n ░███░░███ ░███ @\\n ░███ ░░░ ░███ @\\n ░███ ░███ @\\n █████ █████@\\n░░░░░ ░░░░░ @\\n @\\n @\\n @@\\n ██████ █████@\\n░░██████ ░░███ @\\n ░███░███ ░███ @\\n ░███░░███░███ @\\n ░███ ░░██████ @\\n ░███ ░░█████ @\\n █████ ░░█████@\\n░░░░░ ░░░░░ @\\n @\\n @\\n @@\\n ███████ @\\n ███░░░░░███ @\\n ███ ░░███@\\n░███ ░███@\\n░███ ░███@\\n░░███ ███ @\\n ░░░███████░ @\\n ░░░░░░░ @\\n @\\n @\\n @@\\n ███████████ @\\n░░███░░░░░███@\\n ░███ ░███@\\n ░██████████ @\\n ░███░░░░░░ @\\n ░███ @\\n █████ @\\n░░░░░ @\\n @\\n @\\n @@\\n ██████ @\\n ███░░░░███ @\\n ███ ░░███@\\n░███ ░███@\\n░███ ██░███@\\n░░███ ░░████ @\\n ░░░██████░██@\\n ░░░░░░ ░░ @\\n @\\n @\\n @@\\n ███████████ @\\n░░███░░░░░███ @\\n ░███ ░███ @\\n ░██████████ @\\n ░███░░░░░███ @\\n ░███ ░███ @\\n █████ █████@\\n░░░░░ ░░░░░ @\\n @\\n @\\n @@\\n █████████ @\\n ███░░░░░███@\\n░███ ░░░ @\\n░░█████████ @\\n ░░░░░░░░███@\\n ███ ░███@\\n░░█████████ @\\n ░░░░░░░░░ @\\n @\\n @\\n @@\\n ███████████@\\n░█░░░███░░░█@\\n░ ░███ ░ @\\n ░███ @\\n ░███ @\\n ░███ @\\n █████ @\\n ░░░░░ @\\n @\\n @\\n @@\\n █████ █████@\\n░░███ ░░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ░░████████ @\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n █████ █████@\\n░░███ ░░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ░░███ ███ @\\n ░░░█████░ @\\n ░░███ @\\n ░░░ @\\n @\\n @\\n @@\\n █████ ███ █████@\\n░░███ ░███ ░░███ @\\n ░███ ░███ ░███ @\\n ░███ ░███ ░███ @\\n ░░███ █████ ███ @\\n ░░░█████░█████░ @\\n ░░███ ░░███ @\\n ░░░ ░░░ @\\n @\\n @\\n @@\\n █████ █████@\\n░░███ ░░███ @\\n ░░███ ███ @\\n ░░█████ @\\n ███░███ @\\n ███ ░░███ @\\n █████ █████@\\n░░░░░ ░░░░░ @\\n @\\n @\\n @@\\n █████ █████@\\n░░███ ░░███ @\\n ░░███ ███ @\\n ░░█████ @\\n ░░███ @\\n ░███ @\\n █████ @\\n ░░░░░ @\\n @\\n @\\n @@\\n ███████████@\\n░█░░░░░░███ @\\n░ ███░ @\\n ███ @\\n ███ @\\n ████ █@\\n ███████████@\\n░░░░░░░░░░░ @\\n @\\n @\\n @@\\n █████@\\n░███░ @\\n░███ @\\n░███ @\\n░███ @\\n░███ @\\n░█████@\\n░░░░░ @\\n @\\n @\\n @@\\n ███ @\\n░░███ @\\n ░░███ @\\n ░░███ @\\n ░░███ @\\n ░░███ @\\n ░░███@\\n ░░░ @\\n @\\n @\\n @@\\n █████@\\n░░░███@\\n ░███@\\n ░███@\\n ░███@\\n ░███@\\n █████@\\n░░░░░ @\\n @\\n @\\n @@\\n ██ @\\n ████ @\\n ██░░██@\\n░░ ░░ @\\n @\\n @\\n @\\n @\\n @\\n @\\n @@\\n @\\n @\\n @\\n @\\n @\\n @\\n █████████@\\n░░░░░░░░░ @\\n @\\n @\\n @@\\n ██ @\\n░███@\\n░░░ @\\n @\\n @\\n @\\n @\\n @\\n @\\n @\\n @@\\n @\\n @\\n ██████ @\\n ░░░░░███ @\\n ███████ @\\n ███░░███ @\\n░░████████@\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n █████ @\\n░░███ @\\n ░███████ @\\n ░███░░███@\\n ░███ ░███@\\n ░███ ░███@\\n ████████ @\\n░░░░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n ██████ @\\n ███░░███@\\n░███ ░░░ @\\n░███ ███@\\n░░██████ @\\n ░░░░░░ @\\n @\\n @\\n @@\\n █████@\\n ░░███ @\\n ███████ @\\n ███░░███ @\\n░███ ░███ @\\n░███ ░███ @\\n░░████████@\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n ██████ @\\n ███░░███@\\n░███████ @\\n░███░░░ @\\n░░██████ @\\n ░░░░░░ @\\n @\\n @\\n @@\\n ██████ @\\n ███░░███@\\n ░███ ░░░ @\\n ███████ @\\n░░░███░ @\\n ░███ @\\n █████ @\\n ░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n ███████@\\n ███░░███@\\n░███ ░███@\\n░███ ░███@\\n░░███████@\\n ░░░░░███@\\n ███ ░███@\\n░░██████ @\\n ░░░░░░ @@\\n █████ @\\n░░███ @\\n ░███████ @\\n ░███░░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ████ █████@\\n░░░░ ░░░░░ @\\n @\\n @\\n @@\\n ███ @\\n ░░░ @\\n ████ @\\n░░███ @\\n ░███ @\\n ░███ @\\n █████@\\n░░░░░ @\\n @\\n @\\n @@\\n ███ @\\n ░░░ @\\n █████@\\n ░░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n ███ ░███ @\\n░░██████ @\\n ░░░░░░ @@\\n █████ @\\n░░███ @\\n ░███ █████@\\n ░███░░███ @\\n ░██████░ @\\n ░███░░███ @\\n ████ █████@\\n░░░░ ░░░░░ @\\n @\\n @\\n @@\\n ████ @\\n░░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n ░███ @\\n █████@\\n░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n █████████████ @\\n░░███░░███░░███ @\\n ░███ ░███ ░███ @\\n ░███ ░███ ░███ @\\n █████░███ █████@\\n░░░░░ ░░░ ░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n ████████ @\\n░░███░░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ████ █████@\\n░░░░ ░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n ██████ @\\n ███░░███@\\n░███ ░███@\\n░███ ░███@\\n░░██████ @\\n ░░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n ████████ @\\n░░███░░███@\\n ░███ ░███@\\n ░███ ░███@\\n ░███████ @\\n ░███░░░ @\\n ░███ @\\n █████ @\\n░░░░░ @@\\n @\\n @\\n ████████@\\n ███░░███ @\\n░███ ░███ @\\n░███ ░███ @\\n░░███████ @\\n ░░░░░███ @\\n ░███ @\\n █████@\\n ░░░░░ @@\\n @\\n @\\n ████████ @\\n░░███░░███@\\n ░███ ░░░ @\\n ░███ @\\n █████ @\\n░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n █████ @\\n ███░░ @\\n░░█████ @\\n ░░░░███@\\n ██████ @\\n░░░░░░ @\\n @\\n @\\n @@\\n █████ @\\n ░░███ @\\n ███████ @\\n░░░███░ @\\n ░███ @\\n ░███ ███@\\n ░░█████ @\\n ░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n █████ ████@\\n░░███ ░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ░░████████@\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n █████ █████@\\n░░███ ░░███ @\\n ░███ ░███ @\\n ░░███ ███ @\\n ░░█████ @\\n ░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n █████ ███ █████@\\n░░███ ░███░░███ @\\n ░███ ░███ ░███ @\\n ░░███████████ @\\n ░░████░████ @\\n ░░░░ ░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n █████ █████@\\n░░███ ░░███ @\\n ░░░█████░ @\\n ███░░░███ @\\n █████ █████@\\n░░░░░ ░░░░░ @\\n @\\n @\\n @@\\n @\\n @\\n █████ ████@\\n░░███ ░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ░░███████ @\\n ░░░░░███ @\\n ███ ░███ @\\n ░░██████ @\\n ░░░░░░ @@\\n @\\n @\\n █████████@\\n ░█░░░░███ @\\n ░ ███░ @\\n ███░ █@\\n █████████@\\n ░░░░░░░░░ @\\n @\\n @\\n @@\\n ███@\\n ██░ @\\n ██ @\\n ███ @\\n░░░██ @\\n ░░██ @\\n ░░███@\\n ░░░ @\\n @\\n @\\n @@\\n ███@\\n░███@\\n░███@\\n░███@\\n░███@\\n░███@\\n░███@\\n░░░ @\\n @\\n @\\n @@\\n ███ @\\n░░░██ @\\n ░░██ @\\n ░░███@\\n ██░ @\\n ██ @\\n ███ @\\n░░░ @\\n @\\n @\\n @@\\n @\\n ███ ███@\\n ███░███░ @\\n░░░ ░░░ @\\n @\\n @\\n @\\n @\\n @\\n @\\n @@\\n ███ ███ @\\n ░░░ ░░░ @\\n ███████ @\\n ███░░░███ @\\n ░█████████ @\\n ░███░░░███ @\\n █████ █████@\\n░░░░░ ░░░░░ @\\n @\\n @\\n @@\\n ███ ███ @\\n░░░ ░░░ @\\n ███████ @\\n ███░░░███@\\n░███ ░███@\\n░███ ░███@\\n░░███████ @\\n ░░░░░░░ @\\n @\\n @\\n @@\\n ███ ███ @\\n ░░░ ░░░ @\\n █████ █████@\\n░░███ ░░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ░░███████ @\\n ░░░░░░░ @\\n @\\n @\\n @@\\n ███ ███ @\\n░░░ ░░░ @\\n ██████ @\\n ░░░░░███ @\\n ███████ @\\n ███░░███ @\\n░░████████@\\n ░░░░░░░░ @\\n @\\n @\\n @@\\n ███ ███ @\\n░░░ ░░░ @\\n ███████ @\\n ███░░░███@\\n░███ ░███@\\n░███ ░███@\\n░░███████ @\\n ░░░░░░░ @\\n @\\n @\\n @@\\n ███ ███ @\\n ░░░ ░░░ @\\n █████ █████@\\n░░███ ░░███ @\\n ░███ ░███ @\\n ░███ ░███ @\\n ░░█████████@\\n ░░░░░░░░░ @\\n @\\n @\\n @@\\n █████████ @\\n ███░░░░░███@\\n ░███ ░███@\\n ░██████████ @\\n ░███░░░░░███@\\n ░███ ░███@\\n ████ ██████ @\\n░░░░ ░░░░░░ @\\n @\\n @\\n @@\\n\"\n\n","import * as React from 'react';\nimport { useRef, useEffect, useCallback, useMemo, useState } from 'react';\nimport {\n ASCII_CHAR_HEIGHT as CHAR_H,\n ASCII_CHAR_WIDTH as CHAR_W,\n composeAsciiText,\n dosrebelFont,\n getAsciiAccentColumns,\n parseFigletFont,\n renderAsciiFrameToContext,\n type AsciiFrameContext,\n} from '@olwiba/dx/ascii';\n\n// ── Component ──────────────────────────────────────────────────\n\nexport interface AsciiTextProps {\n text?: string;\n accent?: string;\n color?: string;\n accentColor?: string;\n}\n\nexport function AsciiText({\n text = 'olwibaCN',\n accent = '',\n color,\n accentColor,\n}: AsciiTextProps) {\n const font = useMemo(() => parseFigletFont(dosrebelFont), []);\n const { cells, cols, rows } = useMemo(() => composeAsciiText(font, text), [font, text]);\n\n // Pre-compute which columns belong to accent characters\n const accentCols = useMemo(() => {\n return getAsciiAccentColumns(font, text, accent);\n }, [font, text, accent]);\n\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const animRef = useRef<number>(0);\n const timeRef = useRef<number>(0);\n const hasPaintedRef = useRef(false);\n const [isCanvasReady, setIsCanvasReady] = useState(false);\n const mouseRef = useRef<{ x: number; y: number; active: boolean }>({\n x: -100,\n y: -100,\n active: false,\n });\n const wavesRef = useRef<{ cx: number; cy: number; t: number }[]>([]);\n\n const render = useCallback(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const time = timeRef.current;\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n const root = document.documentElement;\n const rootStyle = getComputedStyle(root);\n const style = getComputedStyle(canvas);\n const baseColor = color || style.color || '#a3a3a3';\n // Resolve CSS variables for canvas (which can't use var() directly)\n let highlightColor = baseColor;\n if (accentColor) {\n const varMatch = accentColor.match(/^var\\(--([^)]+)\\)$/);\n if (varMatch) {\n highlightColor = rootStyle.getPropertyValue(`--${varMatch[1]}`).trim() || baseColor;\n } else {\n highlightColor = accentColor;\n }\n }\n\n renderAsciiFrameToContext(ctx as unknown as AsciiFrameContext, { cells, cols, rows }, {\n accentColumns: accentCols,\n color: baseColor,\n accentColor: highlightColor,\n time,\n pointer: mouseRef.current,\n waves: wavesRef.current,\n });\n\n if (!hasPaintedRef.current) {\n hasPaintedRef.current = true;\n setIsCanvasReady(true);\n }\n\n // Prune old waves\n wavesRef.current = wavesRef.current.filter((w) => time - w.t < 3);\n }, [cells, accentCols, color, accentColor]);\n\n useEffect(() => {\n hasPaintedRef.current = false;\n setIsCanvasReady(false);\n }, [text, accent, color, accentColor]);\n\n useEffect(() => {\n let running = true;\n const loop = () => {\n if (!running) return;\n timeRef.current += 0.016;\n render();\n animRef.current = requestAnimationFrame(loop);\n };\n loop();\n return () => {\n running = false;\n cancelAnimationFrame(animRef.current);\n };\n }, [render]);\n\n const handleMouseMove = useCallback(\n (e: React.MouseEvent<HTMLCanvasElement>) => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const rect = canvas.getBoundingClientRect();\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n mouseRef.current = {\n x: (e.clientX - rect.left) * scaleX,\n y: (e.clientY - rect.top) * scaleY,\n active: true,\n };\n },\n [],\n );\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLCanvasElement>) => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const rect = canvas.getBoundingClientRect();\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n wavesRef.current.push({\n cx: (e.clientX - rect.left) * scaleX,\n cy: (e.clientY - rect.top) * scaleY,\n t: timeRef.current,\n });\n },\n [],\n );\n\n const handleMouseLeave = useCallback(() => {\n mouseRef.current = { x: -100, y: -100, active: false };\n }, []);\n\n const canvasW = Math.ceil(cols * CHAR_W);\n const canvasH = rows * CHAR_H;\n const fallbackAccentColor = accentColor || 'currentColor';\n\n return (\n <div className=\"flex justify-center select-none mb-2 w-full px-4\" aria-hidden=\"true\">\n <div\n className=\"relative\"\n style={{ width: canvasW, maxWidth: '100%' }}\n >\n <svg\n viewBox={`0 0 ${canvasW} ${canvasH}`}\n className={`text-foreground pointer-events-none block h-auto w-full transition-opacity duration-200 ${\n isCanvasReady ? 'opacity-0' : 'opacity-100'\n }`}\n preserveAspectRatio=\"xMidYMid meet\"\n >\n {cells.map((cell) => {\n const isAccent = accentCols.has(cell.col);\n return (\n <rect\n key={`${cell.col}-${cell.row}`}\n x={cell.col * CHAR_W}\n y={cell.row * CHAR_H}\n width={CHAR_W}\n height={CHAR_H}\n fill={isAccent ? fallbackAccentColor : 'currentColor'}\n opacity={cell.ch === '░' ? 0.15 : 0.78}\n />\n );\n })}\n </svg>\n <canvas\n ref={canvasRef}\n width={canvasW}\n height={canvasH}\n className={`text-foreground absolute top-0 left-0 block h-auto w-full cursor-pointer transition-opacity duration-200 ${\n isCanvasReady ? 'opacity-100' : 'opacity-0'\n }`}\n style={{ aspectRatio: `${canvasW} / ${canvasH}` }}\n onMouseMove={handleMouseMove}\n onClick={handleClick}\n onMouseLeave={handleMouseLeave}\n />\n </div>\n </div>\n );\n}\n","import { useState, useCallback } from \"react\";\n\nexport function useCopyToClipboard(timeout = 2000) {\n const [isCopied, setIsCopied] = useState(false);\n\n const copyToClipboard = useCallback(\n async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), timeout);\n return true;\n } catch {\n setIsCopied(false);\n return false;\n }\n },\n [timeout]\n );\n\n return { copyToClipboard, isCopied };\n}\n","import confetti from \"canvas-confetti\";\n\n/**\n * Read theme colors from CSS variables in JS.\n * Use the element that has the theme (e.g. documentElement for :root vars).\n */\nexport function getThemeColorsFromCSS(element?: HTMLElement): string[] {\n if (typeof document === \"undefined\") return [];\n const el = element ?? document.documentElement;\n const style = getComputedStyle(el);\n const primary = style.getPropertyValue(\"--primary\").trim();\n const primaryFg = style.getPropertyValue(\"--primary-foreground\").trim();\n const out: string[] = [];\n if (primary) out.push(primary);\n if (primaryFg && primaryFg !== primary) out.push(primaryFg);\n return out;\n}\n\n\n/** oklch(L C H) → #rrggbb in one step. canvas-confetti expects HEX. */\nfunction oklchToHex(color: string): string | null {\n const m = color.trim().match(/^oklch\\(\\s*([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)\\s*\\)$/);\n if (!m) return null;\n const L = Number(m[1]);\n const C = Number(m[2]);\n const H = (Number(m[3]) * Math.PI) / 180;\n const aLab = C * Math.cos(H);\n const bLab = C * Math.sin(H);\n const mul = (A: number[], B: number[]) => [\n A[0] * B[0] + A[1] * B[1] + A[2] * B[2],\n A[3] * B[0] + A[4] * B[1] + A[5] * B[2],\n A[6] * B[0] + A[7] * B[1] + A[8] * B[2],\n ];\n const lmsG = mul(\n [1, 0.3963377773761749, 0.2158037573099136, 1, -0.1055613458156586, -0.0638541728258133, 1, -0.0894841775298119, -1.2914855480194092],\n [L, aLab, bLab]\n );\n const lms = lmsG.map((x) => x ** 3);\n const xyz = mul(\n [1.2268798758459243, -0.5578149944602171, 0.2813910456659647, -0.0405757452148008, 1.112286803280317, -0.0717110580655164, -0.0763729366746601, -0.4214933324022432, 1.5869240198367816],\n lms\n );\n const rgbL = mul(\n [3.2409699419045226, -1.537383177570094, -0.4986107602930034, -0.9692436362808796, 1.8759675015077202, 0.04155505740717559, 0.05563007969699366, -0.20397695888897652, 1.0569715142428786],\n xyz\n );\n const [r, g, b] = rgbL.map((c) => {\n const v = Math.abs(c) > 0.0031308 ? (c < 0 ? -1 : 1) * (1.055 * Math.pow(Math.abs(c), 1 / 2.4) - 0.055) : 12.92 * c;\n return Math.max(0, Math.min(255, Math.round(v * 255)));\n });\n return \"#\" + [r, g, b].map((x) => x.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n/** rgb(r, g, b) → #rrggbb (for DOM fallback). */\nfunction rgbToHex(rgb: string): string | null {\n const m = rgb.trim().match(/^rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/);\n if (!m) return null;\n const [r, g, b] = [Number(m[1]), Number(m[2]), Number(m[3])].map((x) => Math.max(0, Math.min(255, x)));\n return \"#\" + [r, g, b].map((x) => x.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n/** Any CSS color → #rrggbb for canvas-confetti. */\nfunction toHex(color: string): string {\n const v = color.trim();\n if (v.startsWith(\"#\")) return v;\n const hex = oklchToHex(v);\n if (hex) return hex;\n if (v.startsWith(\"rgb\")) return rgbToHex(v) ?? v;\n if (typeof document !== \"undefined\") {\n const el = document.createElement(\"div\");\n el.style.cssText = `position:absolute;left:-9999px;width:2px;height:2px;background:${v};`;\n document.body.appendChild(el);\n el.offsetHeight;\n const res = getComputedStyle(el).backgroundColor;\n el.remove();\n if (res?.startsWith(\"rgb\")) return rgbToHex(res) ?? v;\n }\n return v;\n}\n\nexport interface ConfettiOptions {\n centered?: boolean;\n particleCount?: number;\n spread?: number;\n scalar?: number;\n ticks?: number;\n /** Colors to use. If not set, reads from CSS vars via getThemeColorsFromCSS(). */\n colors?: string[];\n}\n\nexport function fireConfetti(options?: ConfettiOptions): void {\n const rawColors = options?.colors ?? getThemeColorsFromCSS();\n const colors =\n rawColors.length > 0 ? rawColors.map(toHex).filter((c) => c?.startsWith(\"#\")) : undefined;\n\n const particleCount = options?.particleCount ?? 120;\n const spread = options?.spread ?? 60;\n const scalar = options?.scalar ?? 1.2;\n const ticks = options?.ticks ?? 200;\n const startVelocity = 35;\n const base = {\n particleCount,\n spread,\n startVelocity,\n scalar,\n ticks,\n ...(colors?.length ? { colors } : {}),\n };\n\n if (options?.centered) {\n confetti({ ...base, origin: { x: 0.5, y: 1 }, angle: 90 });\n return;\n }\n\n const side = Math.floor(particleCount * 0.6);\n confetti({ ...base, particleCount: side, angle: 60, origin: { x: 0, y: 1 } });\n confetti({ ...base, particleCount: side, angle: 120, origin: { x: 1, y: 1 } });\n}\n","/**\n * ThemeScript — blocking script that must be rendered in <head> before any content.\n *\n * Reads the user's stored theme preference from localStorage and applies the\n * `.dark` class to <html> before first paint, preventing a flash of the wrong theme.\n *\n * Defaults to dark mode if no preference is stored.\n *\n * Usage (in your root layout / document shell):\n * <head>\n * <ThemeScript />\n * ...\n * </head>\n */\n\nconst script = `(function(){try{var t=localStorage.getItem('theme');document.documentElement.classList.toggle('dark',t!=='light')}catch(e){}})()`;\n\nexport function ThemeScript() {\n return <script dangerouslySetInnerHTML={{ __html: script }} />;\n}\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nconst GLINTS = [\n // perimeter\n { top: '-7px', left: '10%', size: 7, delay: '0s', duration: '2.1s' },\n { top: '2px', right: '-7px', size: 6, delay: '0.3s', duration: '3.4s' },\n { bottom: '-6px', right: '15%', size: 6, delay: '1.1s', duration: '1.7s' },\n { top: '3px', left: '-6px', size: 5, delay: '0.7s', duration: '2.9s' },\n // inside / overlapping the child\n { top: '20%', left: '38%', size: 5, delay: '1.5s', duration: '2.3s' },\n { top: '15%', right: '22%', size: 4, delay: '0.5s', duration: '3.1s' },\n { bottom: '15%', left: '22%', size: 4, delay: '1.9s', duration: '1.8s' },\n];\n\nfunction GlintIcon({ size }: { size: number }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 8 8\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M4 0.5 L4.6 3.4 L7.5 4 L4.6 4.6 L4 7.5 L3.4 4.6 L0.5 4 L3.4 3.4 Z\" />\n </svg>\n );\n}\n\nexport interface EnchantedProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nexport function Enchanted({ children, className, ...props }: EnchantedProps) {\n return (\n <div className={cn('relative', className)} {...props}>\n {children}\n {GLINTS.map((g, i) => (\n <span\n key={i}\n className=\"pointer-events-none absolute z-10 text-primary animate-enchanted\"\n style={{ top: g.top, bottom: g.bottom, left: g.left, right: g.right, animationDelay: g.delay, animationDuration: g.duration }}\n >\n <GlintIcon size={g.size} />\n </span>\n ))}\n </div>\n );\n}\n"]}
|