{"version":3,"sources":["jsdelivr-header.js","/npm/@papanasi/qwik@1.1.2/lib/index.qwik.mjs"],"names":[],"mappings":"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CA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAEI,eAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAEI,eAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MAEA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MAEA,OAEA,eAEA,QACA,gBACA,WACA,UACA,KAEA,OAEA,aACA,eACA,OACA,OACA,aACA,MAEA,YAEA,UAEA,iBAEA,eAEA,mBAEA,cAEA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAGI,gBAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAEI,WAAa,CACjB,gBACA,cACA,aACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,YACA,kBACA,OACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,SACA,OACA,aACA,cACA,QACA,UACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,QACA,WACA,MAEA,WACA,eACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,wBACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,WAGA,UACF,SAAS,IAAI,GACX,MAAM,EAAQ,EAAK,MACb,EAAQ,MAAM,GAKd,EAAU,CACd,EAAK,iBACL,EAAK,mBAEP,MAAO,CACL,KAAM,MACN,kBAAkB,EAClB,QAAS,UACT,SAAU,CAAE,iBAAkB,WAC9B,iBAAkB,CAGhB,iBAAkB,gBAEpB,SAAU,CACR,EAAM,cAnBY,CAAE,MAAO,gCAuB3B,EAAM,gBACN,CACE,UAAW,cACX,MAAO,kBACP,UAAW,GAEb,CACE,UAAW,iBACX,MAAO,6BACP,UAAW,GAEb,EAAM,wBACN,CACE,UAAW,kBACX,SAAU,CACR,CAAE,MAAO,KAAO,eAAe,KAAK,KAAO,KAC3C,CAAE,MAAO,SAAW,gBAAgB,KAAK,KAAO,OASpD,EAAM,aACN,CACE,UAAW,YACX,MAAO,OAAS,WAAW,KAAK,KAAO,QAGzC,CACE,MAAO,IACP,IAAK,QACL,SAAU,CACR,EAAM,cACN,EAAM,SACN,EAAM,UACN,EAAM,mBACH,EAIH,CACE,MAAO,mBACP,IAAK,KACL,UAAW,EAEX,SAAU,CAAE,SAAU,gBACtB,SAAU,IACL,EACH,CACE,UAAW,SAGX,MAAO,OACP,gBAAgB,EAChB,YAAY,KAIlB,EAAM,oBAGV,CACE,MAAO,EAAM,UAAU,KACvB,IAAK,OACL,UAAW,EACX,QAAS,IAET,SAAU,CACR,CACE,UAAW,UACX,MA9Fa,qBAgGf,CACE,MAAO,KACP,gBAAgB,EAChB,YAAY,EACZ,UAAW,EACX,SAAU,CACR,SAAU,UACV,QAxGS,kBAyGT,UAAW,eAAe,KAAK,MAEjC,SAAU,CACR,CACE,MAAO,eACP,UAAW,gBAEV,EACH,EAAM,oBAKd,CACE,UAAW,eACX,MAAO,OAAS,KAAK,KAAK,KAAO,SAIzC,CACA,MAAM,WAAa,2BACb,WAAa,CACjB,KAEA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEI,WAAa,CACjB,OACA,QACA,OACA,YACA,MACA,YAEI,QAAU,CAEd,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAEI,cAAgB,CACpB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAEI,mBAAqB,CACzB,cACA,aACA,gBACA,eACA,UACA,UACA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAEI,qBAAuB,CAC3B,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UAGI,YAAc,GAAG,OACrB,mBACA,QACA,eAEF,SAAS,aAAa,GACpB,MAAM,EAAQ,EAAK,MAMb,EAAe,WACf,EACG,KADH,EAEC,MAGD,EAAU,CACd,MAAO,sBACP,IAAK,4BAKL,kBAAmB,CAAC,EAAO,KACzB,MAAM,EAAkB,EAAM,GAAG,OAAS,EAAM,MAC1C,EAAW,EAAM,MAAM,GAC7B,GAIe,MAAb,GAEa,MAAb,EAGA,YADA,EAAS,cAQX,IAAI,EALa,MAAb,IAhCc,EAAC,GAAS,YAC9B,MAAM,EAAM,KAAO,EAAM,GAAG,MAAM,GAElC,OAAgB,IADJ,EAAM,MAAM,QAAQ,EAAK,EACpB,EA8BR,CAAc,EAAO,CAAE,MAAO,KACjC,EAAS,eAIb,MAAM,EAAa,EAAM,MAAM,UA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,CAAE,MAAO,iCACT,CAAE,MAAO,iCAET,CACE,MAAO,MACP,IAAK,aAEP,CACE,MAAO,MACP,IAAK,aAEP,CAAE,MAAO,SACT,CACE,MAAO,kBAGP,SAAU,CACR,CACE,MAAO,cACP,IAAK,WAGT,UAAW,KA9BO,CACtB,MAAO,cACP,IAAK,KAiNH,EA3KmB,CACrB,MAAO,eACP,aAAa,EACb,SAAU,CACR,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,cAAc,EACd,YAAY,GAEd,CACE,UAAW,OACX,MAAO,OACP,IAAK,IACL,cAAc,MAgKtB,CACA,MAAM,SAAW,2BACX,SAAW,CACf,KAEA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEI,SAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAEI,MAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,eAEI,YAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,YAEI,iBAAmB,CACvB,cACA,aACA,gBACA,eACA,UACA,UACA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAEI,mBAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UAGI,UAAY,GAAG,OACnB,iBACA,MACA,aAEF,SAAS,WAAW,GAClB,MAAM,EAAQ,EAAK,MAMb,EAAc,SACd,EACG,KADH,EAEC,MAGD,EAAU,CACd,MAAO,sBACP,IAAK,4BAKL,kBAAmB,CAAC,EAAO,KACzB,MAAM,EAAkB,EAAM,GAAG,OAAS,EAAM,MAC1C,EAAW,EAAM,MAAM,GAC7B,GAIe,MAAb,GAEa,MAAb,EAGA,YADA,EAAS,cAQX,IAAI,EALa,MAAb,IAhCc,EAAC,GAAS,YAC9B,MAAM,EAAM,KAAO,EAAM,GAAG,MAAM,GAElC,OAAgB,IADJ,EAAM,MAAM,QAAQ,EAAK,EACpB,EA8BR,CAAc,EAAO,CAAE,MAAO,KACjC,EAAS,eAIb,MAAM,EAAa,EAAM,MAAM,UAAU,KACrC,EAAI,EAAW,MAAM,YAIrB,EAAI,EAAW,MAAM,oBACP,IAAZ,EAAE,QAJN,EAAS,aAQX,GAGE,EAAc,CAClB,SAAU,SACV,QAAS,SACT,QAAS,SACT,SAAU,UACV,oBAAqB,oBAEjB,EAAgB,kBAChB,EAAO,OAAO,KACd,EAAiB,sCACjB,EAAS,CACb,UAAW,SACX,SAAU,CAER,CAAE,MAAO,QAAQ,OAAoB,aAAgB,gBAAmB,SACxE,CAAE,MAAO,OAAO,UAAuB,gBAAmB,SAE1D,CAAE,MAAO,8BAET,CAAE,MAAO,4CACT,CAAE,MAAO,gCACT,CAAE,MAAO,gCAGT,CAAE,MAAO,oBAEX,UAAW,GAEP,EAAQ,CACZ,UAAW,QACX,MAAO,SACP,IAAK,MACL,SAAU,EACV,SAAU,IAGN,EAAgB,CACpB,MAAO,QACP,IAAK,GACL,OAAQ,CACN,IAAK,IACL,WAAW,EACX,SAAU,CACR,EAAK,iBACL,GAEF,YAAa,QAGX,EAAe,CACnB,MAAO,OACP,IAAK,GACL,OAAQ,CACN,IAAK,IACL,WAAW,EACX,SAAU,CACR,EAAK,iBACL,GAEF,YAAa,QAGX,EAAkB,CACtB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,iBACL,IA0CE,EAAU,CACd,UAAW,UACX,SAAU,CAzCU,EAAK,QACzB,eACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CACE,MAAO,iBACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,MAAO,cAET,CACE,UAAW,OACX,MAAO,MACP,IAAK,MACL,YAAY,EACZ,cAAc,EACd,UAAW,GAEb,CACE,UAAW,WACX,MAAO,EAAc,gBACrB,YAAY,EACZ,UAAW,GAIb,CACE,MAAO,cACP,UAAW,QAWnB,EAAK,qBACL,EAAK,sBAGH,EAAkB,CACtB,EAAK,iBACL,EAAK,kBACL,EACA,EACA,EAEA,CAAE,MAAO,SACT,GAKF,EAAM,SAAW,EAAgB,OAAO,CAGtC,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CACR,QACA,OAAO,KAEX,MAAM,EAAqB,GAAG,OAAO,EAAS,EAAM,UAC9C,EAAkB,EAAmB,OAAO,CAEhD,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CAAC,QAAQ,OAAO,MAGxB,EAAS,CACb,UAAW,SACX,MAAO,KACP,IAAK,KACL,cAAc,EACd,YAAY,EACZ,SAAU,EACV,SAAU,GAEN,EAAmB,CACvB,SAAU,CAER,CACE,MAAO,CACL,QACA,MACA,EACA,MACA,UACA,MACA,EAAM,OAAO,EAAa,IAAK,EAAM,OAAO,KAAM,GAAc,OAElE,MAAO,CACL,EAAG,UACH,EAAG,cACH,EAAG,UACH,EAAG,0BAIP,CACE,MAAO,CACL,QACA,MACA,GAEF,MAAO,CACL,EAAG,UACH,EAAG,kBAKL,EAAkB,CACtB,UAAW,EACX,MAAO,EAAM,OAEX,SAEA,iCAEA,6CAEA,oDAMF,UAAW,cACX,SAAU,CACR,EAAG,IAEE,SACA,eAUH,EAAsB,CAC1B,SAAU,CACR,CACE,MAAO,CACL,WACA,MACA,EACA,cAIJ,CACE,MAAO,CACL,WACA,eAIN,UAAW,CACT,EAAG,UACH,EAAG,kBAEL,MAAO,WACP,SAAU,CAAC,GACX,QAAS,KAUX,MAAM,EAAgB,CACpB,MAAO,EAAM,OACX,MALY,EAML,IACF,iBACH,QACA,UARG,EAAM,OAAO,MAAO,EAAK,KAAK,KAAM,MAUzC,EACA,EAAM,UAAU,OAElB,UAAW,iBACX,UAAW,GAfb,IAAgB,EAiBhB,MAAM,EAAkB,CACtB,MAAO,EAAM,OAAO,KAAM,EAAM,UAC9B,EAAM,OAAO,EAAa,wBAE5B,IAAK,EACL,cAAc,EACd,SAAU,YACV,UAAW,WACX,UAAW,GAEP,EAAmB,CACvB,MAAO,CACL,UACA,MACA,EACA,UAEF,UAAW,CACT,EAAG,UACH,EAAG,kBAEL,SAAU,CACR,CAEE,MAAO,QAET,IAGE,EAAkB,2DAA6D,EAAK,oBAAsB,UAC1G,EAAoB,CACxB,MAAO,CACL,gBACA,MACA,EACA,MACA,OACA,cAEA,EAAM,UAAU,IAElB,SAAU,QACV,UAAW,CACT,EAAG,UACH,EAAG,kBAEL,SAAU,CACR,IAGJ,MAAO,CACL,KAAM,aACN,QAAS,CAAC,KAAM,MAAO,MAAO,OAC9B,SAAU,EAEV,QAAS,CAAE,kBAAiB,mBAC5B,QAAS,eACT,SAAU,CACR,EAAK,QAAQ,CACX,MAAO,UACP,OAAQ,OACR,UAAW,IAnHE,CACjB,MAAO,aACP,UAAW,OACX,UAAW,GACX,MAAO,gCAkHL,EAAK,iBACL,EAAK,kBACL,EACA,EACA,EACA,EAEA,CAAE,MAAO,SACT,EACA,EACA,CACE,UAAW,OACX,MAAO,EAAc,EAAM,UAAU,KACrC,UAAW,GAEb,EACA,CAEE,MAAO,IAAM,EAAK,eAAiB,kCACnC,SAAU,oBACV,UAAW,EACX,SAAU,CACR,EACA,EAAK,YACL,CACE,UAAW,WAIX,MAAO,EACP,aAAa,EACb,IAAK,SACL,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,EAAK,oBACZ,UAAW,GAEb,CACE,UAAW,KACX,MAAO,UACP,MAAM,GAER,CACE,MAAO,KACP,IAAK,KACL,cAAc,EACd,YAAY,EACZ,SAAU,EACV,SAAU,OAMpB,CAEE,MAAO,IACP,UAAW,GAEb,CACE,MAAO,MACP,UAAW,GAEb,CAEE,SAAU,CACR,CAAE,MAAO,EAAgB,IAAK,GAC9B,CAAE,MAhcW,6BAicb,CACE,MAAO,EAAQ,MAGf,WAAY,EAAQ,kBACpB,IAAK,EAAQ,MAGjB,YAAa,MACb,SAAU,CACR,CACE,MAAO,EAAQ,MACf,IAAK,EAAQ,IACb,MAAM,EACN,SAAU,CAAC,aAMrB,EACA,CAGE,cAAe,6BAEjB,CAIE,MAAO,kBAAoB,EAAK,oBAAsB,gEAEtD,aAAa,EACb,MAAO,WACP,SAAU,CACR,EACA,EAAK,QAAQ,EAAK,WAAY,CAAE,MAAO,EAAa,UAAW,qBAInE,CACE,MAAO,SACP,UAAW,GAEb,EAIA,CACE,MAAO,MAAQ,EACf,UAAW,GAEb,CACE,MAAO,CAAC,0BACR,UAAW,CAAE,EAAG,kBAChB,SAAU,CAAC,IAEb,EAtNwB,CAC1B,UAAW,EACX,MAAO,sBACP,UAAW,qBAqNT,EACA,EACA,CACE,MAAO,WAKf,CACA,SAAS,WAAW,GAClB,MAAM,EAAa,WAAW,GACxB,EAAc,SACd,EAAS,CACb,MACA,OACA,SACA,UACA,SACA,SACA,QACA,SACA,SACA,WAEI,EAAY,CAChB,cAAe,YACf,IAAK,KACL,YAAY,EACZ,SAAU,CAAC,EAAW,QAAQ,kBAE1B,EAAY,CAChB,cAAe,YACf,IAAK,KACL,YAAY,EACZ,SAAU,CACR,QAAS,oBACT,SAAU,GAEZ,SAAU,CAAC,EAAW,QAAQ,kBAqB1B,EAAc,CAClB,SAAU,SACV,QAAS,SAAS,OAhBS,CAC3B,OACA,YACA,YACA,SACA,UACA,YACA,aACA,UACA,WACA,WACA,OACA,aAKA,QAAS,SACT,SAAU,UAAU,OAAO,GAC3B,oBAAqB,oBAEjB,EAAY,CAChB,UAAW,OACX,MAAO,IAAM,GAET,EAAW,CAAC,EAAM,EAAO,KAC7B,MAAM,EAAO,EAAK,SAAS,WAAW,GAAM,EAAE,QAAU,IACxD,IAAc,IAAV,EACF,MAAM,IAAI,MAAM,gCAElB,EAAK,SAAS,OAAO,EAAM,EAAG,EAAY,EAE5C,OAAO,OAAO,EAAW,SAAU,GACnC,EAAW,QAAQ,gBAAgB,KAAK,GACxC,EAAW,SAAW,EAAW,SAAS,OAAO,CAC/C,EACA,EACA,IAEF,EAAS,EAAY,UAAW,EAAK,WACrC,EAAS,EAAY,aA7CF,CACjB,UAAW,OACX,UAAW,GACX,MAAO,2BAoDT,OAT4B,EAAW,SAAS,MAAM,GAAkB,aAAZ,EAAE,QAC1C,UAAY,EAChC,OAAO,OAAO,EAAY,CACxB,KAAM,aACN,QAAS,CACP,KACA,SAGG,CACT,CACA,SAAS,IAAI,GACX,MAAM,EAAQ,EAAK,MACb,EAAc,EAAM,OAAO,YAAa,EAAM,SAAS,oBAAqB,mBAE5E,EAAe,CACnB,UAAW,SACX,MAAO,oCAEH,EAAoB,CACxB,MAAO,KACP,SAAU,CACR,CACE,UAAW,UACX,MAAO,sBACP,QAAS,QAIT,EAAwB,EAAK,QAAQ,EAAmB,CAC5D,MAAO,KACP,IAAK,OAED,EAAwB,EAAK,QAAQ,EAAK,iBAAkB,CAAE,UAAW,WACzE,EAAyB,EAAK,QAAQ,EAAK,kBAAmB,CAAE,UAAW,WAC3E,EAAgB,CACpB,gBAAgB,EAChB,QAAS,IACT,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MA5Be,mBA6Bf,UAAW,GAEb,CACE,MAAO,OACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,YAAY,EACZ,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAC,IAEb,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAC,IAEb,CAAE,MAAO,sBAOrB,MAAO,CACL,KAAM,YACN,QAAS,CACP,OACA,QACA,MACA,OACA,MACA,MACA,MACA,QACA,MACA,OAEF,kBAAkB,EAClB,cAAc,EACd,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,UAAW,GACX,SAAU,CACR,EACA,EACA,EACA,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,SAAU,CACR,EACA,EACA,EACA,QAOZ,EAAK,QACH,OACA,MACA,CAAE,UAAW,KAEf,CACE,MAAO,cACP,IAAK,QACL,UAAW,IAEb,EAEA,CACE,UAAW,OACX,IAAK,MACL,SAAU,CACR,CACE,MAAO,SACP,UAAW,GACX,SAAU,CACR,IAGJ,CACE,MAAO,uBAIb,CACE,UAAW,MAMX,MAAO,iBACP,IAAK,IACL,SAAU,CAAE,KAAM,SAClB,SAAU,CAAC,GACX,OAAQ,CACN,IAAK,YACL,WAAW,EACX,YAAa,CACX,MACA,SAIN,CACE,UAAW,MAEX,MAAO,kBACP,IAAK,IACL,SAAU,CAAE,KAAM,UAClB,SAAU,CAAC,GACX,OAAQ,CACN,IAAK,aACL,WAAW,EACX,YAAa,CACX,aACA,aACA,SAKN,CACE,UAAW,MACX,MAAO,WAGT,CACE,UAAW,MACX,MAAO,EAAM,OACX,IACA,EAAM,UAAU,EAAM,OACpB,EAIA,EAAM,OAAO,MAAO,IAAK,SAG7B,IAAK,OACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,EACP,UAAW,EACX,OAAQ,KAKd,CACE,UAAW,MACX,MAAO,EAAM,OACX,MACA,EAAM,UAAU,EAAM,OACpB,EACA,OAGJ,SAAU,CACR,CACE,UAAW,OACX,MAAO,EACP,UAAW,GAEb,CACE,MAAO,IACP,UAAW,EACX,YAAY,MAMxB,CACA,MAAM,cAAgB,CACpB,WAAY,aACZ,sBACA,QACA,QACA,mBAEI,eAAiB,gBAAmB,OAAO,uBAAuB,QACxE,SAAS,gBAAgB,EAAM,GAC7B,cAAc,GAAQ,CACxB,CACA,MAAM,SAAW,YACX,WAAa,cACnB,SAAS,QAAQ,EAAQ,EAAW,EAAM,CAAC,GACzC,MAAM,EAAU,CACd,IAAK,KACL,SAAU,UACV,cAAe,UACf,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,OAAQ,YACL,GAEC,EAAY,GACZ,EAAU,GAChB,IAEI,EACA,EAHA,GAAM,EACN,GAAQ,EAGZ,EAAO,aAAa,kBAAmB,kBACvC,EAAO,aAAa,aAAc,EAAQ,WAAa,OAAS,SAChE,EAAO,MAAM,QAAU,OACvB,EAAO,MAAM,aAAe,aAC5B,EAAO,MAAM,UAAY,OACzB,EAAO,MAAM,WAAa,WAC1B,IAAI,GAAW,EACf,EAAU,GACqB,mBAA3B,EAAO,kBACT,GAAW,GACT,GACF,EAAO,aAAa,kBAAmB,QACzC,MAAM,EAAoB,GAAS,KACjC,MAAM,EAAM,IACZ,EAAU,EAAQ,GAClB,EAAQ,EAAI,GACX,IACH,IAAI,GAAY,EAChB,MAAM,EAAgB,IACZ,EAAO,KAAW,EAAO,IAAwB,SAAd,EAAM,KAAgC,YAAd,EAAM,KAAmC,QAAd,EAAM,MAAkB,EAAM,IAAI,WAAW,SAEvI,EAAwB,GAAU,IAClC,EAAa,KACf,IACA,GAAY,EACd,GACC,KACG,EAAK,CAAC,EAAM,KAChB,EAAU,KAAK,CACb,EACA,IAEF,EAAO,iBAAiB,EAAM,EAAG,EAgDnC,SAAS,IACP,MAAM,EAAI,IACJ,EAAM,CACV,MAAO,EACP,IAAK,EACL,SAAK,GAEP,IAAI,WAAE,EAAU,aAAE,EAAY,UAAE,EAAS,YAAE,GAAgB,EAC3D,IAAK,IAAe,EAClB,KAAM,SACR,GAAI,EAAW,WAAa,KAAK,aAAc,CAC7C,MAAM,EAAO,WAAW,eAAe,IACvC,EAAW,aAAa,EAAM,EAAW,WAAW,IACpD,EAAa,EACb,EAAe,CACjB,CACA,GAAI,EAAU,WAAa,KAAK,aAAc,CAC5C,MAAM,EAAO,WAAW,eAAe,IACvC,EAAU,aAAa,EAAM,EAAU,WAAW,IAClD,EAAY,EACZ,EAAc,CAChB,CA6BA,OA5BA,EAAM,GAAS,IACb,GAAI,IAAO,GAAc,IAAO,EAI9B,OAHA,EAAI,OAAS,EACb,EAAI,KAAO,EACX,EAAI,IAAM,GAAgB,EAAc,KAAO,KACxC,OAET,GAAI,IAAO,EAAY,CAErB,GADA,EAAI,OAAS,EACR,EAAI,IAGP,MAAO,OAFP,EAAI,IAAM,IAGd,MAAO,GAAI,IAAO,EAAW,CAE3B,GADA,EAAI,KAAO,EACN,EAAI,IAGP,MAAO,OAFP,EAAI,IAAM,IAGd,CACI,EAAG,WAAa,KAAK,YACR,MAAX,EAAI,MACN,EAAI,OAAS,EAAG,UAAU,QACb,MAAX,EAAI,MACN,EAAI,KAAO,EAAG,UAAU,QAC5B,IAEF,EAAO,YACA,CACT,CACA,SAAS,EAAQ,GACf,MAAM,EAAI,IACV,IAAI,EACA,EADW,EAAc,EAChB,EAAY,EAOzB,GANK,EAAI,MACP,EAAI,IAAM,MACR,EAAI,MAAQ,IACd,EAAI,MAAQ,GACV,EAAI,IAAM,IACZ,EAAI,IAAM,GACG,MAAX,EAAI,IAAa,CACnB,MAAM,MAAE,EAAK,IAAE,GAAQ,EACvB,EAAI,MAAQ,EACZ,EAAI,IAAM,CACZ,CACA,IAAI,EAAU,EACd,EAAM,GAAS,IACb,GAAI,EAAG,WAAa,KAAK,UACvB,OACF,MAAM,GAAO,EAAG,WAAa,IAAI,OACjC,GAAI,EAAU,EAAM,EAAI,QACjB,IACH,EAAY,EACZ,EAAc,EAAI,MAAQ,GAExB,EAAU,EAAM,EAAI,KAGtB,OAFA,EAAU,EACV,EAAY,EAAI,IAAM,EACf,OAGX,GAAW,CAAG,IAEX,IACH,EAAY,EAAQ,EAAc,EAAO,WAAW,QACjD,IACH,EAAU,EAAQ,EAAY,EAAO,WAAW,QACnC,MAAX,EAAI,OACL,EAAW,EAAa,EAAS,GAAa,CAC7C,EACA,EACA,EACA,IAEJ,EAAE,iBAAiB,EAAW,EAAa,EAAS,EACtD,CACA,SAAS,IACP,MACM,EADI,IACG,WAAW,GAClB,EAAI,WAAW,cAGrB,OAFA,EAAE,mBAAmB,GACrB,EAAE,OAAO,EAAG,eAAgB,EAAG,aACxB,EAAE,UACX,CACA,SAAS,IACP,MACM,EADI,IACG,WAAW,GAClB,EAAI,WAAW,cAGrB,OAFA,EAAE,mBAAmB,GACrB,EAAE,SAAS,EAAG,aAAc,EAAG,WACxB,EAAE,UACX,CAsBA,SAAS,EAAiB,GACxB,GAAI,GAA0B,UAAd,EAAM,IAGpB,GAFA,EAAe,GACf,EAAM,kBACe,IAAjB,IAAqB,CACvB,EAAO,OACP,MAAM,EAAM,IACZ,EAAI,QAAU,EAAI,IAClB,EAAQ,EACV,MACE,EAAO,KAEb,CA0EA,SAAS,IACP,IAAK,EACH,OACF,MAAM,EAAO,EAAO,UACd,EAAM,IACN,EAAa,EAAQ,GACvB,GACE,EAAW,OAAS,GAAQ,EAAW,IAAI,QAAU,EAAI,OAAS,EAAW,IAAI,MAAQ,EAAI,MAGnG,IACA,EAAQ,GAAM,CACZ,OACA,OAEF,EAAQ,OAAO,EAAK,GAChB,EAAK,MACP,EAAK,IACL,EAAQ,OAAO,EAAG,IAEtB,CAaA,SAAS,EAAM,EAAS,GACtB,MAAM,EAAQ,GACV,EAAQ,YACV,EAAM,KAAK,EAAQ,YACrB,IAAI,EAAK,EAAM,MACf,KAAO,GACe,SAAhB,EAAQ,IAER,EAAG,aACL,EAAM,KAAK,EAAG,aACZ,EAAG,YACL,EAAM,KAAK,EAAG,YAChB,EAAK,EAAM,KAEf,CACA,SAAS,EAAO,GACd,OAAO,EAAM,SAAW,EAAM,OAChC,CACA,SAAS,EAAO,GACd,OAAO,EAAO,KAAW,EAAM,UAA2B,SAAf,EAAM,IACnD,CACA,SAAS,EAAO,GACd,OAAO,EAAO,IAAU,EAAM,UAA2B,SAAf,EAAM,IAClD,CACA,SAAS,EAAO,GACd,EAAO,EAAK,QAAQ,KAAM,SAAS,QAAQ,KAAM,QAAQ,QAAQ,KAAM,QAAQ,QAAQ,KAAM,UAAU,QAAQ,KAAM,UACrH,WAAW,YAAY,cAAc,EAAO,EAC9C,CACA,SAAS,EAAS,EAAI,GACpB,IAAI,EAAU,EACd,MAAO,IAAI,KACT,aAAa,GACb,EAAU,SAAS,YAAW,IAAM,KAAM,IAAO,EAAM,CAE3D,CACA,SAAS,EAAY,GACnB,IAAI,EAAI,EAAK,OAAS,EACtB,KAAO,GAAK,GAAiB,OAAZ,EAAK,IACpB,IACF,IACA,IAAI,EAAI,EACR,KAAO,EAAI,EAAK,QAAU,QAAQ,KAAK,EAAK,KAC1C,IACF,MAAO,CACL,EAAK,UAAU,EAAG,IAAM,GACxB,EACA,EAEJ,CACA,SAAS,IACP,OAAO,EAAO,aAAe,EAC/B,CACA,SAAS,EAAe,GACtB,EAAM,gBACR,CACA,SAAS,IACP,OAAI,EAAO,YAAY,UAAY,KAAK,uBAC/B,EAAO,WAAW,eACpB,SAAS,cAClB,CACA,OAxWA,EAAG,WAAY,IACT,EAAM,mBAEV,EAAO,IACH,EAAQ,cA4Jd,SAAuB,GACrB,GAAkB,UAAd,EAAM,IAAiB,CACzB,MAAM,EAAS,IACT,EAAQ,KACP,GAAW,EAAY,GAC9B,IAAI,EAAiB,EASrB,GARI,EAAQ,SAAS,KAAK,KACxB,GAAkB,EAAQ,KACxB,EAAe,OAAS,GAC1B,EAAe,GACf,EAAM,kBACN,EAAO,KAAO,IAEd,EAAiB,GACf,IAAmB,GAAW,EAAQ,cAAc,KAAK,GAAQ,CACnE,MAAM,EAAM,IACZ,EAAO,KAAO,GACd,EAAQ,EACV,CACF,CACF,CA/KI,CAAc,GAEd,EAAiB,GACf,EAAQ,UAqNd,SAA6B,GAC3B,GAAkB,QAAd,EAAM,IAER,GADA,EAAe,GACX,EAAM,SAAU,CAClB,MAAM,EAAS,KACR,EAAS,GAAS,EAAY,GACrC,GAAI,EAAQ,OAAS,EAAG,CACtB,MAAM,EAAM,IACN,EAAM,KAAK,IAAI,EAAQ,IAAI,OAAQ,EAAQ,QACjD,EAAQ,CACN,QACA,IAAK,EAAQ,IAEf,WAAW,YAAY,UACvB,EAAI,OAAS,EACb,EAAI,KAAO,EACX,EAAQ,EACV,CACF,MACE,EAAO,EAAQ,IAErB,CAzOI,CAAoB,GAClB,EAAQ,YAwLd,SAAqC,GACnC,MAAM,EAAO,SACP,EAAQ,SACR,EAAY,IACZ,EAAa,IACb,EAA+D,OAA7C,EAAW,OAAO,EAAW,OAAS,GACxD,EAAY,EAAU,OAAO,EAAG,GACtC,GAAI,EAAM,SAAS,EAAM,OAAS,GAAmB,IAAc,EAAM,IAAK,CAC5E,MAAM,EAAM,IACZ,EAAe,GACf,EAAI,QAAU,EAAI,IAClB,EAAQ,EACV,MAAO,GAAI,EAAK,SAAS,EAAM,OAAS,IAAoB,MAAK,SAAS,EAAM,MAAQ,CACtF,GACA,IACA,MACA,SAAS,IAAa,CACtB,EAAe,GACf,MAAM,EAAM,IACN,EAAW,EAAI,OAAS,EAAI,IAAM,GAAK,IAAe,WAE5D,EADa,EAAM,IAAM,EAAW,EAAM,EAAK,QAAQ,EAAM,OAE7D,EAAI,QACJ,EAAI,MACJ,EAAQ,EACV,CACF,CAjNI,CAA4B,GAC1B,EAAQ,WAuOd,SAAwB,GACtB,GAAI,EAAO,GAAQ,CACjB,EAAe,GACf,IACA,MAAM,EAAS,EAAQ,GACnB,IACF,EAAO,UAAY,EAAO,KAC1B,EAAQ,EAAO,MAEb,EAAK,IACP,EAAK,EACT,CACA,GAAI,EAAO,GAAQ,CACjB,EAAe,GACf,IACA,MAAM,EAAS,EAAQ,GACnB,IACF,EAAO,UAAY,EAAO,KAC1B,EAAQ,EAAO,MAEb,GAAM,EAAQ,QAChB,GACJ,CACF,CA7PI,CAAe,GACX,EAAa,KAAW,IAC1B,IACA,GAAY,IAGZ,GACF,EAAQ,KAAO,IAEnB,EAAG,SAAU,IACP,EAAM,kBAEN,EAAM,cAEN,IAAS,KACX,IACF,EAAsB,GAClB,GACF,EAAS,KAAY,IAEzB,EAAG,SAAU,IACX,GAAQ,CAAI,IAEd,EAAG,QAAS,IACV,GAAQ,CAAK,IAEf,EAAG,SAAU,IACX,IAwPF,SAAqB,GACnB,EAAe,GACf,MAAM,GAAQ,EAAM,eAAiB,GAAO,cAAc,QAAQ,cAAc,QAAQ,MAAO,IACzF,EAAM,IACZ,EAAO,GACP,EAAU,GACV,EAAQ,CACN,MAAO,KAAK,IAAI,EAAI,MAAO,EAAI,KAAO,EAAK,OAC3C,IAAK,KAAK,IAAI,EAAI,MAAO,EAAI,KAAO,EAAK,OACzC,IAAK,MAET,CAlQE,CAAY,GACZ,IACI,GACF,EAAS,IAAY,IA4TlB,CACL,aAAA,CAAc,GACZ,OAAO,OAAO,EAAS,EACzB,EACA,UAAA,CAAW,GACT,EAAO,YAAc,EACrB,EAAU,EACZ,EACA,QAAA,CAAS,GACP,EAAW,CACb,EACA,SAAU,EACV,OACA,UACA,gBACA,OAAA,GACE,IAAK,MAAO,EAAM,KAAO,EACvB,EAAO,oBAAoB,EAAM,EACrC,EAEJ,CACA,SAAS,OAAO,EAAK,GACnB,OAAO,KAAK,MAAM,KAAK,UAAY,EAAM,EAAM,GAAK,EACtD,CACA,SAAS,QAAQ,EAAG,EAAG,GAKrB,OAJI,EAAI,IACN,GAAK,GACH,EAAI,IACN,GAAK,GACH,EAAI,EAAI,EACH,EAAc,GAAT,EAAI,GAAS,EACvB,EAAI,GACC,EACL,EAAI,EAAI,EACH,GAAK,EAAI,IAAM,EAAI,EAAI,GAAK,EAC9B,CACT,CACA,SAAS,SAAS,EAAM,EAAM,EAAM,EAAQ,GAC1C,MAAM,EAAI,EAAO,IACX,EAAI,EAAO,IACX,EAAI,EAAO,GACjB,IAAI,EAAG,EAAG,EACV,GAAU,IAAN,EACF,EAAI,EAAI,EAAI,MACT,CACH,MAAM,EAAI,EAAI,GAAM,GAAK,EAAI,GAAK,EAAI,EAAI,EAAI,EACxC,EAAI,EAAI,EAAI,EAClB,EAAI,QAAQ,EAAG,EAAG,EAAI,EAAI,GAC1B,EAAI,QAAQ,EAAG,EAAG,GAClB,EAAI,QAAQ,EAAG,EAAG,EAAI,EAAI,EAC5B,CACA,MAAO,QAAQ,KAAK,MAAU,IAAJ,OAAa,KAAK,MAAU,IAAJ,OAAa,KAAK,MAAU,IAAJ,OAAa,IACzF,CACA,SAAS,SAAS,GAChB,IAAI,EAAO,EACX,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,EAAO,EAAK,WAAW,KAAO,GAAQ,GAAK,GAC7C,OAAO,CACT,CACA,eAAe,YAAY,EAAM,EAAQ,IACvC,MAAM,EAAI,SAAS,GAAQ,IACrB,EAAI,OAAO,GAAI,IACf,EAAI,OAAO,GAAI,IACrB,MAAO,CACL,WAAY,SAAS,EAAG,EAAO,IAAJ,EAAU,GACrC,WAAY,SAAS,EAAG,EAAO,IAAJ,EAAS,GAExC,CACA,IAAI,YACJ,SAAU,GACR,EAAY,EAAkB,KAAI,GAAK,OACvC,EAAY,EAAiB,IAAI,GAAK,MACtC,EAAY,EAAwB,WAAI,GAAK,YAC9C,CAJD,CAIG,aAAe,WAAa,CAAC,IAChC,IAAI,WAAa,WAAW,KAC5B,MAAM,gBAAkB,CACtB,CAAC,WAAW,MAAO,IAAM,KACzB,CAAC,WAAW,KAAO,GAAY,QAAQ,IAAI,GAC3C,CAAC,WAAW,YAAc,IACxB,QAAQ,IAAI,EACJ,GAGZ,SAAS,cAAc,GACrB,WAAa,CACf,CACA,SAAS,MAAM,GACb,gBAAgB,YAAY,EAC9B,CACA,SAAS,2BAA2B,EAAS,EAAU,GACrD,IAAK,EAAQ,iBACX,OACF,MAAM,EAAW,MAAM,KAAK,EAAQ,iBAAiB,IACjD,GACF,EAAS,QAAQ,GAenB,OAdiB,IAAI,kBAAkB,IACrC,EAAU,SAAS,IACjB,EAAS,WAAW,SAAS,IACvB,EAAS,WAAa,KAAK,cAAgB,EAAS,QAAQ,KAC9D,EAAS,KAAK,GACd,GAAY,EAAS,GACvB,GACA,GACF,IAEK,QAAQ,EAAS,CACxB,WAAW,EACX,SAAS,IAEJ,CACT,CACA,MAAM,eAAiB,oIACjB,qBAAuB,iKACvB,UAAY,oCAClB,SAAS,mBAAmB,EAAK,GAC/B,KAAY,cAAR,GAGQ,gBAAR,GAAyB,GAA4B,iBAAX,GAAuB,cAAe,GAGpF,OAAO,CACT,CACA,SAAS,MAAM,EAAQ,EAAU,CAAC,GAChC,GAAsB,iBAAX,EACT,OAAO,EAET,MAAM,EAAQ,EAAO,cAAc,OACnC,GAAc,SAAV,EACF,OAAO,EAET,GAAc,UAAV,EACF,OAAO,EAET,GAAc,SAAV,EACF,OAAO,KAET,GAAc,QAAV,EACF,OAAO,OAAO,IAEhB,GAAc,aAAV,EACF,OAAO,OAAO,kBAEhB,GAAc,cAAV,EAAJ,CAGA,IAAK,UAAU,KAAK,GAAS,CAC3B,GAAI,EAAQ,OACV,MAAM,IAAI,YAAY,gBAExB,OAAO,CACT,CACA,IACE,OAAI,eAAe,KAAK,IAAW,qBAAqB,KAAK,GACpD,KAAK,MAAM,EAAQ,oBAErB,KAAK,MAAM,EACpB,CAAE,MAAO,GACP,GAAI,EAAQ,OACV,MAAM,EAER,OAAO,CACT,CAjBA,CAkBF,CACA,MAAM,QAAU,KACV,aAAe,KACf,SAAW,KACX,QAAU,MACV,aAAe,QACf,gBAAkB,QAClB,YAAc,QACd,aAAe,QACrB,SAAS,SAAS,GAChB,OAAO,UAAU,GAAK,GAAM,QAAQ,YAAa,IACnD,CACA,SAAS,iBAAiB,GACxB,OAAO,SAA0B,iBAAV,EAAqB,EAAQ,KAAK,UAAU,IAAQ,QAAQ,QAAS,OAAO,QAAQ,aAAc,KAAK,QAAQ,QAAS,OAAO,QAAQ,aAAc,OAAO,QAAQ,gBAAiB,KAAK,QAAQ,aAAc,IACzO,CACA,SAAS,eAAe,GACtB,OAAO,iBAAiB,GAAM,QAAQ,SAAU,MAClD,CACA,SAAS,SAAS,EAAO,IACvB,IACE,OAAO,mBAAmB,GAAK,EACjC,CAAE,MACA,MAAO,GAAK,CACd,CACF,CACA,SAAS,iBAAiB,GACxB,OAAO,SAAS,EAAK,QAAQ,QAAS,KACxC,CACA,SAAS,WAAW,EAAmB,IACrC,MAAM,EAAS,CAAC,EACY,MAAxB,EAAiB,KACnB,EAAmB,EAAiB,MAAM,IAE5C,IAAK,MAAM,KAAa,EAAiB,MAAM,KAAM,CACnD,MAAM,EAAI,EAAU,MAAM,kBAAoB,GAC9C,GAAI,EAAE,OAAS,EACb,SAEF,MAAM,EAAM,SAAS,EAAE,IACvB,GAAY,cAAR,GAA+B,gBAAR,EACzB,SAEF,MAAM,EAAS,iBAAiB,EAAE,IAAM,SACb,IAAhB,EAAO,GACZ,MAAM,QAAQ,EAAO,IACvB,EAAO,GAAK,KAAK,GAEjB,EAAO,GAAO,CAAC,EAAO,GAAM,GAG9B,EAAO,GAAO,CAElB,CACA,OAAO,CACT,CACA,SAAS,gBAAgB,EAAK,GAI5B,MAHsB,iBAAX,GAAyC,kBAAX,IACvC,EAAS,OAAO,IAEb,EAGD,MAAM,QAAQ,GACT,EAAO,KAAK,GAAW,GAAG,eAAe,MAAQ,iBAAiB,OAAW,KAAK,KAEpF,GAAG,eAAe,MAAQ,iBAAiB,KALzC,eAAe,EAM1B,CACA,SAAS,eAAe,GACtB,OAAO,OAAO,KAAK,GAAO,QAAQ,QAAmB,IAAb,EAAM,KAAe,KAAK,GAAM,gBAAgB,EAAG,EAAM,MAAK,KAAK,IAC7G,CACA,MAAM,sBAAwB,uBACxB,eAAiB,sBACjB,wBAA0B,wBAChC,SAAS,YAAY,EAAa,EAAO,CAAC,GAIxC,MAHoB,kBAAT,IACT,EAAO,CAAE,eAAgB,IAEvB,EAAK,OACA,sBAAsB,KAAK,GAE7B,eAAe,KAAK,MAAiB,EAAK,gBAAiB,wBAAwB,KAAK,EACjG,CACA,MAAM,kBAAoB,WAC1B,SAAS,iBAAiB,EAAQ,GAAI,GAAkB,GACtD,OAAK,EAGE,kBAAkB,KAAK,GAFrB,EAAM,SAAS,IAG1B,CACA,SAAS,qBAAqB,EAAQ,GAAI,GAAkB,GAC1D,IAAK,EACH,OAAQ,iBAAiB,GAAS,EAAM,MAAM,GAAI,GAAK,IAAU,IAEnE,IAAK,iBAAiB,GAAO,GAC3B,OAAO,GAAS,IAElB,MAAO,KAAO,GAAK,EAAM,MAAM,KAC/B,OAAQ,EAAG,MAAM,GAAI,IAAM,MAAQ,EAAE,OAAS,EAAI,IAAI,EAAE,KAAK,OAAS,GACxE,CACA,SAAS,kBAAkB,EAAQ,GAAI,GAAkB,GACvD,IAAK,EACH,OAAO,EAAM,SAAS,KAAO,EAAQ,EAAQ,IAE/C,GAAI,iBAAiB,GAAO,GAC1B,OAAO,GAAS,IAElB,MAAO,KAAO,GAAK,EAAM,MAAM,KAC/B,OAAO,EAAK,KAAO,EAAE,OAAS,EAAI,IAAI,EAAE,KAAK,OAAS,GACxD,CACA,SAAS,gBAAgB,EAAQ,IAC/B,OAAO,EAAM,WAAW,IAC1B,CACA,SAAS,oBAAoB,EAAQ,IACnC,OAAQ,gBAAgB,GAAS,EAAM,MAAM,GAAK,IAAU,GAC9D,CACA,SAAS,SAAS,EAAO,GACvB,GAAI,WAAW,IAAS,YAAY,GAClC,OAAO,EAET,MAAM,EAAQ,qBAAqB,GACnC,OAAI,EAAM,WAAW,GACZ,EAEF,QAAQ,EAAO,EACxB,CACA,SAAS,UAAU,EAAO,GACxB,MAAM,EAAS,SAAS,GAClB,EAAc,IAAK,WAAW,EAAO,WAAY,GAEvD,OADA,EAAO,OAAS,eAAe,GACxB,mBAAmB,EAC5B,CACA,SAAS,WAAW,GAClB,OAAQ,GAAiB,MAAT,CAClB,CACA,SAAS,cAAc,GACrB,OAAO,GAAiB,MAAT,CACjB,CACA,SAAS,QAAQ,KAAS,GACxB,IAAI,EAAO,GAAQ,GACnB,IAAK,MAAM,KAAS,EAAM,QAAQ,GAAU,cAAc,KACxD,EAAO,EAAO,kBAAkB,GAAQ,oBAAoB,GAAS,EAEvE,OAAO,CACT,CACA,SAAS,SAAS,EAAQ,GAAI,GAC5B,IAAK,YAAY,EAAO,CAAE,gBAAgB,IACxC,OAAO,EAAe,SAAS,EAAe,GAAS,UAAU,GAEnE,MAAO,EAAW,GAAI,EAAM,EAAc,KAAO,EAAM,QAAQ,MAAO,KAAK,MAAM,iCAAmC,IAAI,OAAO,IACxH,EAAO,GAAI,EAAO,KAAO,EAAY,MAAM,mBAAqB,IAAI,OAAO,IAC5E,SAAE,EAAQ,OAAE,EAAM,KAAE,GAAS,UACjC,EAAK,QAAQ,kBAAmB,KAElC,MAAO,CACL,WACA,KAAM,EAAO,EAAK,MAAM,EAAG,KAAK,IAAI,EAAG,EAAK,OAAS,IAAM,GAC3D,OACA,WACA,SACA,OAEJ,CACA,SAAS,UAAU,EAAQ,IACzB,MAAO,EAAW,GAAI,EAAS,GAAI,EAAO,KAAO,EAAM,MAAM,6BAA+B,IAAI,OAAO,GACvG,MAAO,CACL,WACA,SACA,OAEJ,CACA,SAAS,mBAAmB,GAC1B,MAAM,EAAW,EAAO,UAAY,EAAO,QAAU,EAAO,OAAO,WAAW,KAAO,GAAK,KAAO,EAAO,OAAS,IAAM,EAAO,KAC9H,OAAK,EAAO,SAGL,EAAO,SAAW,MAAQ,EAAO,KAAO,EAAO,KAAO,IAAM,IAAM,EAAO,KAAO,EAF9E,CAGX,CACA,MAAM,mBAAmB,MACvB,WAAA,GACE,SAAS,WACT,KAAK,KAAO,YACd,EAEF,SAAS,iBAAiB,EAAS,EAAO,GACxC,IAAI,EAAU,GACV,IACF,EAAU,EAAM,SAEd,GAAW,EACb,EAAU,GAAG,MAAY,EAAS,UAAU,EAAS,eAAe,EAAQ,eACnE,IACT,EAAU,GAAG,MAAY,EAAQ,eAEnC,MAAM,EAAa,IAAI,WAAW,GAoClC,OAnCA,OAAO,eAAe,EAAY,UAAW,CAC3C,IAAG,IACM,IAGX,OAAO,eAAe,EAAY,WAAY,CAC5C,IAAG,IACM,IAGX,OAAO,eAAe,EAAY,OAAQ,CACxC,IAAG,IACM,GAAY,EAAS,QAGhC,OAAO,eAAe,EAAY,SAAU,CAC1C,IAAG,IACM,GAAY,EAAS,SAGhC,OAAO,eAAe,EAAY,aAAc,CAC9C,IAAG,IACM,GAAY,EAAS,aAGhC,OAAO,eAAe,EAAY,aAAc,CAC9C,IAAG,IACM,GAAY,EAAS,SAGhC,OAAO,eAAe,EAAY,gBAAiB,CACjD,IAAG,IACM,GAAY,EAAS,aAGzB,CACT,CACA,MAAM,eAAiB,IAAI,IACzB,OAAO,OAAO,CAAC,QAAS,OAAQ,MAAO,YAEzC,SAAS,gBAAgB,EAAS,OAChC,OAAO,eAAe,IAAI,EAAO,cACnC,CACA,SAAS,mBAAmB,GAC1B,QAAe,IAAX,EACF,OAAO,EAET,MAAM,SAAW,EACjB,MAAU,WAAN,GAAwB,WAAN,GAAwB,YAAN,GAAyB,OAAN,GAGjD,WAAN,MAGA,MAAM,QAAQ,KAGX,EAAO,aAA2C,WAA5B,EAAO,YAAY,MAA8C,mBAAlB,EAAO,QACrF,CACA,MAAM,UAA4B,IAAI,IAAI,CACxC,YACA,kBACA,oBACA,qBAEI,QAAU,oDAChB,SAAS,mBAAmB,EAAe,IACzC,IAAK,EACH,MAAO,OAET,MAAM,EAAc,EAAa,MAAM,KAAK,SAAW,GACvD,OAAI,QAAQ,KAAK,GACR,OAEL,UAAU,IAAI,IAAgB,EAAY,WAAW,SAChD,OAEF,MACT,CACA,MAAM,iBAAmC,IAAI,IAAI,CAC/C,IAEA,IAEA,IAEA,IAEA,IAEA,IAEA,IAEA,MAGF,SAAS,YAAY,GACnB,MAAQ,MAAO,EAAQ,QAAS,GAAa,EAC7C,SAAS,EAAQ,GACf,MAAM,EAAU,EAAQ,OAAgC,eAAvB,EAAQ,MAAM,OAAyB,EACxE,IAA8B,IAA1B,EAAQ,QAAQ,QAAoB,EAAS,CAC/C,IAAI,EAEF,EADmC,iBAA1B,EAAQ,QAAQ,MACf,EAAQ,QAAQ,MAEhB,gBAAgB,EAAQ,QAAQ,QAAU,EAAI,EAE1D,MAAM,EAAe,EAAQ,UAAY,EAAQ,SAAS,QAAU,IACpE,GAAI,EAAU,GAAK,iBAAiB,IAAI,GACtC,OAAO,EAAU,EAAQ,QAAS,IAC7B,EAAQ,QACX,MAAO,EAAU,GAGvB,CACA,MAAM,EAAQ,iBACZ,EAAQ,QACR,EAAQ,MACR,EAAQ,UAKV,MAHI,MAAM,mBACR,MAAM,kBAAkB,EAAO,GAE3B,CACR,CACA,MAAM,EAAY,eAA0B,EAAU,EAAW,CAAC,GAChE,MAAM,EAAU,CACd,QAAS,EACT,QAAS,IAAK,EAAc,YAAa,GACzC,cAAU,EACV,WAAO,GAEL,EAAQ,QAAQ,iBACZ,EAAQ,QAAQ,UAAU,GAEH,iBAApB,EAAQ,UACb,EAAQ,QAAQ,UAClB,EAAQ,QAAU,SAAS,EAAQ,QAAS,EAAQ,QAAQ,WAE1D,EAAQ,QAAQ,OAAS,EAAQ,QAAQ,UAC3C,EAAQ,QAAU,UAAU,EAAQ,QAAS,IACxC,EAAQ,QAAQ,UAChB,EAAQ,QAAQ,SAGnB,EAAQ,QAAQ,MAAQ,gBAAgB,EAAQ,QAAQ,SAAW,mBAAmB,EAAQ,QAAQ,QACxG,EAAQ,QAAQ,KAAuC,iBAAzB,EAAQ,QAAQ,KAAoB,EAAQ,QAAQ,KAAO,KAAK,UAAU,EAAQ,QAAQ,MACxH,EAAQ,QAAQ,QAAU,IAAI,EAAS,EAAQ,QAAQ,SAClD,EAAQ,QAAQ,QAAQ,IAAI,iBAC/B,EAAQ,QAAQ,QAAQ,IAAI,eAAgB,oBAEzC,EAAQ,QAAQ,QAAQ,IAAI,WAC/B,EAAQ,QAAQ,QAAQ,IAAI,SAAU,sBAI5C,EAAQ,eAAiB,EACvB,EAAQ,QACR,EAAQ,SACR,OAAM,MAAO,IACb,EAAQ,MAAQ,EACZ,EAAQ,QAAQ,sBACZ,EAAQ,QAAQ,eAAe,GAEhC,EAAQ,MAEjB,MAAM,GAAgB,EAAQ,QAAQ,cAAgB,OAAS,EAAQ,QAAQ,eAAiB,mBAAmB,EAAQ,SAAS,QAAQ,IAAI,iBAAmB,IACnK,GAAqB,SAAjB,EAAyB,CAC3B,MAAM,QAAa,EAAQ,SAAS,OAC9B,EAAgB,EAAQ,QAAQ,eAAiB,MACvD,EAAQ,SAAS,MAAQ,EAAc,EACzC,MACE,EAAQ,SAAS,MADS,WAAjB,EACgB,EAAQ,SAAS,WAEX,EAAQ,SAAS,KAKlD,OAHI,EAAQ,QAAQ,kBACZ,EAAQ,QAAQ,WAAW,GAE/B,EAAQ,SAAS,QAAU,KAAO,EAAQ,SAAS,OAAS,KAC1D,EAAQ,QAAQ,uBACZ,EAAQ,QAAQ,gBAAgB,GAEjC,EAAQ,IAEV,EAAQ,QACjB,EACM,EAAS,SAAiB,EAAS,GACvC,OAAO,EAAU,EAAS,GAAS,MAAM,GAAM,EAAE,OACnD,EAUA,OATA,EAAO,IAAM,EACb,EAAO,OAAS,EAChB,EAAO,OAAS,CAAC,EAAiB,CAAC,IAAM,YAAY,IAChD,EACH,SAAU,IACL,EAAc,YACd,KAGA,CACT,CACA,MAAM,YAAc,WAClB,GAA0B,oBAAf,WACT,OAAO,WAET,GAAoB,oBAAT,KACT,OAAO,KAET,GAAsB,oBAAX,OACT,OAAO,OAET,GAAsB,oBAAX,OACT,OAAO,OAET,MAAM,IAAI,MAAM,iCAClB,CAdoB,GAed,MAAQ,YAAY,OAAS,KAAO,QAAQ,OAAO,IAAI,MAAM,6CAC7D,QAAU,YAAY,QACtB,OAAS,YAAY,CAAE,YAAO,kBAC9B,KAAO,CAAC,EAiBd,SAAS,eAAe,EAAQ,GAC9B,OAAO,GAAU,EAAO,GAAY,EAAO,GAAY,IACzD,CACA,IAAI,SAnBJ,KAAK,YAAc,eAAe,GACpB,MAAR,IACF,EAAO,CAAC,GACV,MAAM,EAAS,EAAK,QAAU,UAC9B,IAAK,EAAK,KACR,MAAM,IAAI,MAAM,gBAClB,IAAK,EAAK,KACR,MAAM,IAAI,MAAM,gBAClB,IAAI,EAAO,WAAa,EAAK,KAAO,IAAM,EAAS,IAAM,EAAK,KAAO,aACjE,EAAK,SACP,EAAO,EAAO,WAAa,EAAK,QAClC,MAAM,QAAa,OAAO,EAAM,CAC9B,cAAe,KAAK,QAEtB,MAAkC,mBAApB,EAAK,WAA4B,EAAK,WAAW,QAAQ,CACzE,EAKA,SAAU,GACR,EAAmB,QAAI,UACvB,EAAmB,QAAI,UACvB,EAAkB,OAAI,SACtB,EAAgB,KAAI,OACpB,EAAiB,MAAI,QACrB,EAAiB,MAAI,QACrB,EAAkB,OAAI,SACtB,EAAe,IAAI,MACnB,EAAyB,cAAI,eAC9B,CAVD,CAUG,WAAa,SAAW,CAAC,IAC5B,IAAI,SAAW,SAAS,QACxB,SAAS,YAAY,GACnB,MAAM,wBAAwB,KAC9B,SAAW,CACb,CACA,SAAS,cACP,OAAO,QACT,CACA,IAAI,QAAU,QACd,SAAS,WAAW,GAClB,MAAM,wBAAwB,KAC9B,QAAU,CACZ,CACA,SAAS,aACP,OAAO,OACT,CACA,MAAM,UAAY,GACZ,OAAS,GACf,MAAM,cACJ,UAAA,CAAW,EAAS,EAAU,GAC5B,MAAM,EAAO,gBAAgB,CAC3B,YACA,CACE,EACA,cAAc,KAEhB,CACE,EACA,eAEF,GAAa,KAET,EAAa,gBAAgB,CACjC,uBACA,CACE,EACA,cAAc,OAIlB,OADA,MAAM,mCAAmC,iBAAoB,KACtD,CACL,OACA,UAAW,EAEf,CACA,eAAM,CAAU,EAAM,GACpB,MAAM,QAAmB,KAAK,SAAS,EAAM,GAE7C,OADA,MAAM,uCAAuC,KAAK,UAAU,MACrD,CACL,UAAW,EAEf,CACA,WAAA,CAAY,GACV,MAAM,EAAY,EAAK,MAAM,mBAAmB,KAAK,GAAM,EAAE,SAAQ,KAAK,IAAI,MAAM,eAAe,KAAK,IAAI,oBAE5G,OADA,MAAM,wCAAwC,KACvC,CACT,CACA,cAAM,CAAS,EAAM,GACnB,GAAI,EAEF,OADA,MAAM,0CAA0C,KACzC,CAAC,EAEV,MAAM,QAAc,YAAY,GAEhC,OADA,MAAM,kCAAkC,KAAK,UAAU,MAChD,CACL,yBAA0B,EAAM,WAChC,yBAA0B,EAAM,WAEpC,CACA,SAAA,CAAU,EAAM,GACd,MAAM,EAAU,EAAW,uBAAuB,IAAa,EAE/D,OADA,MAAM,oCAAoC,KACnC,CACT,EAEF,MAAM,cAAgB,IAAI,cACpB,UAAY,SAAkB,EAAO,GACzC,OAAO,cAAc,WAAW,EAAM,QAAS,EAAM,SAAU,EAAM,OAAS,EAAM,UACtF,EACM,SAAW,SAAmB,EAAO,GACzC,OAAO,cAAc,YAAY,EAAM,KACzC,EACM,OAAS,SAAiB,EAAO,GACrC,OAAO,cAAc,UAAU,EAAM,IAAK,EAAM,SAClD,EACM,OAAyB,aAA6B,YAAY,IACtE,MAAM,EAAS,SAAS,CACtB,OAAQ,CACN,UAAW,QAaf,OAVA,WAA2B,YAAW,UACpC,MAAO,EAAQ,GAAW,wBAC1B,iBACE,EAAQ,aAAe,cAAc,UAAU,EAAO,KAAM,EAAO,QACrE,CACM,EAAS,GACd,uCAAwC,CACzC,EACA,KAEqB,MAAM,MAAO,CAClC,MAAO,YAAY,UAAU,GAAQ,SACpC,CACD,MAAO,WAAW,GAAO,EAAG,MAAM,CAChC,GACC,YACF,EAAO,OAAO,UAA4B,MAAM,MAAO,CACxD,MAAO,YAAY,UAAU,GAAQ,cACpC,CACD,MAAO,WAAW,GAAO,EAAG,OAAO,WAAW,CAC5C,GACC,wBACF,CACD,OAAO,GAAyB,MAAM,MAAO,CAC3C,IAAK,OAAO,IACX,CACD,MAAO,mBACP,IAAK,WAAW,GAAO,EAAG,MAAM,CAC9B,GACC,YACF,KAAM,EAAG,QAAU,KACrB,OAAO,GAAiF,KAAxD,MAAM,OAAQ,KAAM,KAAM,SAAS,GAAQ,EAAG,SAC9E,EAAG,QAAU,KAAM,EAAG,OAAO,GAC/B,iCACG,OAAS,GACf,MAAM,cACJ,UAAA,CAAW,EAAS,EAAS,EAAQ,EAAU,GAC7C,MAAM,EAAO,gBAAgB,CAC3B,YACA,CACE,EACA,cAAc,KAEhB,CACE,EACA,sBAEF,CACE,EACA,MAAM,KAER,CACE,EACA,eAEF,GAAa,KAGf,OADA,MAAM,mCAAmC,KAClC,CACL,OAEJ,EAEF,MAAM,cAAgB,IAAI,cACpB,UAAY,SAAmB,EAAO,GAC1C,OAAO,cAAc,WAAW,EAAM,QAAS,EAAM,QAAS,EAAM,OAAQ,EAAM,SAAU,EAAM,MACpG,EACM,OAAyB,aAA6B,YAAY,GAC/C,MAAM,SAAU,CACrC,MAAO,YAAY,UAAU,GAAQ,SACpC,KAAsB,MAAM,KAAM,KAAM,EAAG,QAAS,EAAG,SACzD,iCACG,KAAO,GACP,WAAa,CACjB,UACA,OACA,iBACA,gBACA,SACA,WAEF,MAAM,YACJ,WAAA,GACE,KAAK,OAAS,GACd,KAAK,IAAM,KACX,KAAK,kBAAoB,EACzB,KAAK,KAAO,IACd,CACA,UAAA,CAAW,EAAU,GACnB,MAAM,EAAO,gBAAgB,CAC3B,UACA,GAAa,KAET,EAAS,gBAAgB,CAC7B,kBACA,CACE,EACA,YAAY,OAIhB,OADA,MAAM,iCAAiC,cAAiB,KACjD,CACL,OACA,SAEJ,CACA,gBAAM,CAAW,EAAS,EAAU,GAClC,KAAK,WAAa,iBAClB,KAAK,IAAM,QAAQ,GAAU,IACtB,EAAO,YAEZ,KAAK,iBAAiB,GACtB,KAAK,cAAc,GAAO,IAE5B,MAAM,qCAAqC,aAAoB,KAC/D,KAAK,KAAK,UAAU,CAClB,qBAAqB,IAEvB,KAAK,iBACL,KAAK,mBAAmB,GACxB,MAAM,qDACR,CACA,OAAA,GACE,MAAM,qDACN,KAAK,IAAI,SACX,CACA,MAAA,CAAO,GACL,MAAM,6BAA6B,KACnC,KAAK,IAAI,WAAW,EACtB,CACA,QAAA,CAAS,GACP,MAAM,mCAAmC,KACzC,KAAK,IAAI,SAAS,EACpB,CACA,iBAAM,CAAY,EAAS,SACnB,OACN,MAAM,sCAAsC,KAC5C,EAAQ,aAAa,kBAAmB,EAAW,iBAAmB,QACxE,CACA,UAAM,CAAK,GACT,MAAM,SAAc,OAAO,uBAAuB,MAAM,GAAM,EAAE,KAAI,QACpE,MAAM,2BAA2B,KACjC,EAAK,EACP,CACA,cAAA,GACM,KAAK,QAAQ,OAAS,IAE1B,KAAK,OAAS,WAAW,KAAK,IAC5B,MAAM,EAAO,SAAS,cAAc,QAMpC,OALA,EAAK,KAAO,qEAAqE,YACjF,EAAK,IAAM,aACX,EAAK,UAAW,EAChB,SAAS,KAAK,YAAY,GAC1B,MAAM,sCAAsC,KACrC,CAAI,IAEf,CACA,kBAAA,CAAmB,GACjB,KAAK,OAAO,KAAK,mBAAmB,aAAa,WAAY,QAC7D,KAAK,kBAAoB,KAAK,OAAO,WAAW,GAAU,EAAM,KAAK,SAAS,KAC9E,KAAK,OAAO,KAAK,mBAAmB,gBAAgB,YACpD,MAAM,0CAA0C,IAClD,CACA,gBAAA,CAAiB,GACE,eAAb,GAA0C,eAAb,GAC/B,KAAK,KAAK,iBAAiB,MAAO,cAAmB,KACvD,KAAK,KAAK,iBAAiB,EAAU,cAAc,IACnD,MAAM,2CAA2C,IACnD,CACA,aAAA,CAAc,GACZ,KAAK,KAAK,iBAAiB,GACtB,EAAO,UAAU,SAAS,kBAE/B,MAAM,qCACN,EAAO,iBAAiB,gBAAgB,SAAS,IAC/C,EAAQ,aAAa,QAAS,mBAAmB,EAAQ,cAAc,IAE3E,EAEF,MAAM,MAAQ,SAAgB,EAAO,EAAQ,EAAS,EAAG,GACvD,OAAO,eAAe,EAAG,EAC3B,EACM,KAAuB,aAA6B,YAAY,IACpE,MAAM,EAAU,YACV,EAAS,SAAS,CACtB,QAAS,CACP,KAAM,GACN,OAAQ,IAEV,YAAa,KACb,QAAQ,IAsCV,OApCA,WAA2B,YAAW,OAAS,YAC7C,MAAO,EAAU,EAAQ,GAAW,kBACpC,GAAM,IAAM,EAAS,QACrB,EAAS,MACJ,EAAS,aAEd,iBACE,MAAM,EAAU,IAAI,kBACd,EAAQ,WAAW,EAAS,MAAO,EAAO,SAAU,EAAO,OAAS,UAC1E,EAAQ,QAAU,EAAQ,WAAW,EAAO,SAAU,EAAO,OAAS,EAAO,WAC7E,EAAQ,YAAc,YAAY,GAClC,EAAQ,QAAS,CACnB,CACM,EAAS,GACd,qCAAsC,CACvC,EACA,EACA,KAEF,WAA2B,YAAW,OAAS,YAC7C,MAAO,EAAU,EAAQ,GAAW,kBACpC,GAAM,IAAM,EAAQ,SACpB,GAAM,IAAM,EAAO,WACnB,GAAM,IAAM,EAAS,QAChB,EAAQ,SAEb,EAAQ,YAAY,OAAO,EAAO,MAClC,EAAQ,YAAY,YAAY,EAAS,MAAO,EAAO,UACvD,EAAQ,YAAY,UAAU,IAC5B,EAAO,UAAY,EAAO,SAAS,EAAM,IACzC,GACD,uCAAwC,CACzC,EACA,EACA,KAEqB,MAAM,MAAO,KAAM,CACxC,MAAO,WAAW,GAAO,EAAG,QAAQ,MAAM,CACxC,GACC,oBACF,CACe,MAAM,MAAO,KAAM,KAAsB,MAAM,OAAQ,CACrE,IAAK,GACJ,CACD,MAAO,WAAW,GAAO,EAAG,QAAQ,QAAQ,CAC1C,GACC,sBACF,KAAM,EAAG,MAAO,EAAG,MACtB,EAAO,OAAyB,MAAM,MAAO,KAAM,CACjD,MAAO,oBACN,EACA,EAAM,OAAS,IAAI,KAAI,SAAS,EAAM,GACrC,OAAuB,MAAM,MAAO,KAAM,CACxC,MAAO,mBACN,CACD,MAAM,EAAO,EAAQ,EAAS,EAAM,OAAyB,MAAM,IAAK,CACtE,KAAM,MAAM,EAAO,EAAQ,EAAS,EAAM,QACzC,CACD,MAAO,gBACP,OAAQ,UACP,CACD,MAAM,EAAO,EAAQ,EAAS,EAAM,QAA0B,MAAM,MAAO,CACzE,IAAK,MAAM,EAAO,EAAQ,EAAS,EAAM,QACzC,IAAK,MAAM,EAAO,EAAQ,EAAS,EAAM,UACxC,CACD,MAAO,iBACN,KAAM,EAAG,QAAU,KACtB,MAAM,EAAO,EAAQ,EAAS,EAAM,UACnC,EAAG,QAAU,KACf,MAAM,EAAO,EAAQ,EAAS,EAAM,OAUrB,KAV8C,MAAM,OAAQ,KAAM,CAChF,MAAO,qCACN,CACD,MAAM,EAAO,EAAQ,EAAS,EAAM,QAA0B,MAAM,MAAO,CACzE,IAAK,MAAM,EAAO,EAAQ,EAAS,EAAM,QACzC,IAAK,MAAM,EAAO,EAAQ,EAAS,EAAM,UACxC,CACD,MAAO,iBACN,KAAM,EAAG,QAAU,KACtB,MAAM,EAAO,EAAQ,EAAS,EAAM,UACnC,EAAG,SACL,EAAG,EACR,KACC,EAAM,aAAe,EAAM,SAA2B,MAAM,OAAQ,KAAM,CACzE,MAAO,wCACP,SAA0B,YAAY,IACpC,MAAO,EAAQ,GAAW,kBAC1B,OAAO,EAAQ,YAAY,KAAK,EAAO,KAAK,GAC3C,kDAAmD,CACpD,EACA,KAEe,MAAM,OAAQ,KAAM,CACrC,MAAO,iBACN,WAAW,GAAO,EAAG,UAAU,CAChC,GACC,eAAgB,EAAG,MAAO,EAAG,QAAU,MACzC,EAAG,QAAU,MACf,EAAG,OAAO,GACZ,+BACG,KAAO,GACb,MAAM,YACJ,UAAA,CAAW,EAAS,EAAQ,EAAU,GACpC,MAAM,EAAO,gBAAgB,CAC3B,UACA,CACE,EACA,YAAY,KAEd,CACE,EACA,MAAM,KAER,CACE,EACA,eAEF,GAAa,KAGf,OADA,MAAM,iCAAiC,KAChC,CACL,OAEJ,EAEF,MAAM,YAAc,IAAI,YAClB,UAAY,SAAmB,EAAO,GAC1C,OAAO,YAAY,WAAW,EAAM,QAAS,EAAM,OAAQ,EAAM,SAAU,EAAM,OAAS,EAAM,UAClG,EACM,KAAuB,aAA6B,YAAY,GAC7C,MAAM,OAAQ,CACnC,MAAO,YAAY,UAAU,GAAQ,SACpC,KAAsB,MAAM,KAAM,KAAM,EAAG,QAAS,EAAG,SACzD,+BACG,QAAU,GAChB,MAAM,eACJ,UAAA,CAAW,EAAS,EAAM,EAAY,GACpC,MAAM,EAAO,gBAAgB,CAC3B,aACA,CACE,EACA,eAAe,KAEjB,CACE,IAAS,EACT,oBAEF,CACE,EACA,0BAEF,GAAa,KAGf,OADA,MAAM,oCAAoC,KACnC,CACL,OAEJ,EAEF,MAAM,eAAiB,IAAI,eACrB,UAAY,SAAmB,EAAO,GAC1C,OAAO,eAAe,WAAW,EAAM,QAAS,EAAM,KAAM,EAAM,WAAY,EAAM,OAAS,EAAM,UACrG,EACM,QAA0B,aAA6B,YAAY,IACvE,SAAS,CACP,QAAQ,IAEa,MAAM,MAAO,CAClC,MAAO,YAAY,UAAU,GAAQ,SACpC,KAAsB,MAAM,MAAO,KAAM,CAC1C,MAAO,mBACP,QAAS,YACT,MAAO,8BACU,MAAM,SAAU,KAAM,CACvC,MAAO,mBACP,KAAM,OACN,GAAI,KACJ,GAAI,KACJ,EAAG,MACF,KAAM,EAAG,MAAO,EAAG,MAAO,EAAG,UAC/B,kCACG,OAAS,GACf,MAAM,cACJ,UAAA,CAAW,GAKT,MAAO,CACL,KALW,gBAAgB,CAC3B,YACA,GAAa,KAKjB,CACA,iBAAM,CAAY,EAAM,EAAM,GAE5B,OADA,MAAM,oCAAoC,YAAe,KAClD,IAAI,SAAS,IAClB,KAAK,YAAY,CACf,OACA,OACA,SACA,WAAa,IACX,MAAM,+CAA+C,KAAK,UAAU,MACpE,EAAS,EAAK,GAEhB,GAEN,CACA,iBAAM,CAAY,EAAM,EAAM,GAE5B,aADmB,KAAK,YAAY,EAAM,EAAM,EAElD,CACA,aAAA,CAAc,EAAM,EAAM,EAAQ,IAAK,EAAS,KAC9C,MAAM,EAAU,YACV,GAAO,OAAO,OAAS,GAAU,EACjC,GAAQ,OAAO,MAAQ,GAAS,EACtC,MAAM,sCAAsC,YAAe,WAAc,YAAc,KACvF,MAAM,EAAe,EAAQ,KAAK,WAAa,EAAO,YAAc,EAAO,oBAAqB,WAAY,qCAAuC,EAAQ,YAAc,EAAS,SAAW,EAAM,UAAY,GAC7K,mBAAvB,EAAa,OACtB,EAAa,OACjB,EAEF,MAAM,cAAgB,IAAI,cACpB,UAAY,SAAmB,EAAO,GAC1C,OAAO,cAAc,WAAW,EAAM,MACxC,EACM,cAAgB,SAAwB,EAAO,EAAQ,EAAM,EAAM,EAAO,GAC9E,cAAc,cAAc,EAAM,EAAM,EAAO,EACjD,EACM,OAAyB,aAA6B,YAAY,IACtE,aACA,MAAM,EAAS,SAAS,CACtB,SAAU,KACV,QAAQ,IAgBV,OAdA,WAA2B,YAAW,UACpC,MAAO,EAAQ,GAAW,wBAC1B,iBACE,MAAM,QAAa,cAAc,YAAY,EAAO,KAAM,EAAO,KAAM,EAAO,QAC9E,EAAQ,SAAW,EACnB,EAAQ,QAAS,EACjB,MAAM,yCACN,EAAO,QAAU,EAAO,OAAO,EACjC,CACM,EAAS,GACd,uCAAwC,CACzC,EACA,KAEqB,MAAM,MAAO,CAClC,MAAO,YAAY,UAAU,GAAQ,SACpC,KAAsB,MAAM,MAAO,KAAM,CAC1C,MAAO,wBACN,CACD,EAAO,OAAyB,MAAM,MAAO,KAAM,CACjD,MAAO,mBACP,IAAK,WAAW,GAAO,EAAG,SAAS,OAAO,CACxC,GACC,qBACH,IAAK,WAAW,GAAO,EAAG,SAAS,aAAa,CAC9C,GACC,4BACF,KAAM,EAAG,QAAU,KACN,MAAM,MAAO,KAAM,CACjC,MAAO,mBACN,CACD,EAAO,OAAyB,MAAM,MAAO,KAAM,CACjD,MAAO,oBACN,CACe,MAAM,OAAQ,KAAM,CAClC,MAAO,oBACN,WAAW,GAAO,EAAG,SAAS,OAAO,CACtC,GACC,qBAAsB,EAAG,MACZ,MAAM,OAAQ,KAAM,CAClC,MAAO,oBACN,WAAW,GAAO,EAAG,SAAS,OAAO,CACtC,GACC,qBAAsB,EAAG,OAC3B,EAAG,QAAU,KACA,MAAM,OAAQ,KAAM,CAClC,MAAO,sBACP,SAA0B,YAAY,IACpC,MAAO,EAAQ,GAAW,kBAC1B,OAAO,cAAc,EAAQ,EAAS,EAAO,KAAM,EAAO,KAAM,EAAO,MAAO,EAAO,OAAO,GAC3F,wDAAyD,CAC1D,EACA,KAED,CACD,EAAO,OAAyB,MAAM,OAAQ,KAAM,KAAsB,MAAM,KAAM,KAAM,EAAG,QAAS,EAAG,QAAU,KACpH,EAAO,OAE2B,KAFF,MAAM,OAAQ,KAAM,KAAM,WAAW,GAAO,EAAG,aAAa,CAC3F,GACC,kBAAmB,EAAG,SACxB,EAAG,OACL,EAAG,OACL,EAAG,MAAO,EAAG,OAAO,GACtB,iCACG,QAAU,GAChB,IAAI,aAAc,EACd,SAAW,GACf,SAAS,YAAY,GACnB,EAAO,eAAe,MAAM,UAAY,aAAa,EAAO,QAAQ,EAAO,OAC3E,EAAO,eAAe,MAAM,MAAQ,GAAG,EAAO,UAC9C,EAAO,eAAe,UAAY,EAAO,MACzC,MAAM,sCAAsC,KAAK,UAAU,MAC3D,YAAW,KACT,EAAO,eAAe,UAAU,OAAO,YAAY,GAClD,EAAO,KACZ,CACA,SAAS,YAAY,GACnB,EAAO,eAAe,UAAU,IAAI,aACpC,MAAM,sCAAsC,KAAK,UAAU,MAC3D,YAAW,KACT,EAAO,eAAe,MAAM,UAAY,4BACxC,EAAO,eAAe,UAAY,EAAE,GACnC,EAAO,KACZ,CACA,SAAS,mBAAmB,GAC1B,MAAM,EAAQ,EAAQ,aAAa,SAC7B,EAAY,EAAQ,aAAa,cAIvC,OAHA,EAAQ,aAAa,aAAc,GAAa,GAChD,EAAQ,gBAAgB,SACxB,MAAM,6CAA6C,KAC5C,CACT,CACA,SAAS,aAAa,EAAa,GACjC,MAAM,EAAU,YACV,EAAQ,mBAAmB,GAE3B,EADS,EAAQ,iBAAiB,GACV,iBAAiB,gCAAgC,OAC/E,MAAM,gDAAgD,KACtD,MAAM,EAAS,CACb,eAAgB,KAChB,EAAG,EACH,EAAG,EACH,OAAQ,EACR,MAAO,EACP,MAAO,GACP,KAAM,OAAO,IAET,EAAiB,qBAAqB,GAC5C,EAAO,eAAiB,EACxB,SAAS,KAAK,GACd,EAAQ,iBAAiB,cAAc,KACrC,MAAM,EAAO,EAAQ,wBACf,EAAW,EAAY,wBAC7B,MAAM,2CACN,EAAO,EAAI,KAAK,IAAI,EAAS,GAAK,EAAY,WAAa,EAAK,EAChE,EAAO,EAAI,KAAK,IAAI,EAAS,GAAK,EAAY,UAAY,EAAK,EAC/D,EAAO,OAAS,EAAK,OACrB,EAAO,MAAQ,EAAK,MACpB,EAAO,MAAQ,EACf,YAAY,EAAO,IAErB,EAAQ,iBAAiB,cAAc,KACrC,EAAO,EAAI,EACX,EAAO,EAAI,EACX,EAAO,OAAS,EAChB,EAAO,MAAQ,EACf,EAAO,MAAQ,GACf,MAAM,2CACN,YAAY,EAAO,GAEvB,CACA,SAAS,qBAAqB,GAC5B,MACM,EADY,cACQ,cAAc,OAKxC,OAJA,EAAQ,UAAU,IAAI,aAAc,aACpC,EAAQ,aAAa,cAAe,QACpC,EAAY,QAAQ,GACpB,MAAM,uCACC,CACT,CACA,SAAS,oBAAoB,GAC3B,MAAM,EAAY,cACZ,EAAU,GAAe,EAAU,KACrC,cACF,MAAM,mDACN,SAAS,SAAS,IAChB,YAAY,GACZ,EAAO,eAAe,QAAQ,IAEhC,SAAW,IAEb,aAAc,EACd,YAAW,IAAM,2BAA2B,EAAS,WAAY,GAAiB,aAAa,EAAS,MAAgB,GAC1H,CACA,IAAI,eAAuC,oBAAf,WAA6B,WAA+B,oBAAX,OAAyB,OAA2B,oBAAX,OAAyB,OAAyB,oBAAT,KAAuB,KAAO,CAAC,EAC1L,IAAM,CAAC,EACP,gBAAkB,CAAC,EACnB,WAAa,CACf,WAAI,GACF,OAAO,eACT,EACA,WAAI,CAAQ,GACV,gBAAkB,CACpB;;CAGF,SAAU,EAAQ,IAChB,SAAU,GACR,IAAI,EAAc,IAAY,EAAQ,UAAY,EAC9C,EAAa,IAAW,EAAO,UAAY,EAC3C,EAAsC,iBAAlB,gBAA8B,eAClD,EAAW,SAAW,GAAc,EAAW,SAAW,GAAc,EAAW,OAAS,IAC9F,EAAO,GAET,IAAI,EAI0F,EAJ/E,EAAS,WAAY,EAAO,GAAmG,EAAgB,QAAS,EAAgB,eAAgB,EAAkB,4BAA6B,EAAS,CAC7P,SAAY,kDACZ,YAAa,iDACb,gBAAiB,iBACa,EAAQ,KAAK,MAAO,EAAqB,OAAO,aAChF,SAAS,EAAM,GACb,MAAM,WAAW,EAAO,GAC1B,CACA,SAAS,EAAI,EAAO,GAGlB,IAFA,IAAI,EAAS,EAAM,OACf,EAAS,GACN,KACL,EAAO,GAAU,EAAG,EAAM,IAE5B,OAAO,CACT,CACA,SAAS,EAAU,EAAQ,GACzB,IAAI,EAAQ,EAAO,MAAM,KACrB,EAAS,GAQb,OAPI,EAAM,OAAS,IACjB,EAAS,EAAM,GAAK,IACpB,EAAS,EAAM,IAKV,EADO,GAFd,EAAS,EAAO,QAAQ,EAAiB,MACrB,MAAM,KACA,GAAI,KAAK,IAErC,CACA,SAAS,EAAW,GAElB,IADA,IAAsD,EAAQ,EAA1D,EAAS,GAAI,EAAU,EAAG,EAAS,EAAO,OACvC,EAAU,IACf,EAAS,EAAO,WAAW,OACb,OAAS,GAAU,OAAS,EAAU,EAE3B,QAAV,OADb,EAAQ,EAAO,WAAW,OAExB,EAAO,OAAgB,KAAT,IAAkB,KAAe,KAAR,GAAgB,QAEvD,EAAO,KAAK,GACZ,KAGF,EAAO,KAAK,GAGhB,OAAO,CACT,CACA,SAAS,EAAW,GAClB,OAAO,EAAI,GAAO,SAAS,GACzB,IAAI,EAAS,GAOb,OANI,EAAS,QAEX,GAAU,GADV,GAAU,SAC8B,GAAK,KAAO,OACpD,EAAS,MAAiB,KAAT,GAEnB,GAAU,EAAmB,EAE/B,IAAG,KAAK,GACV,CAaA,SAAS,EAAa,EAAO,GAC3B,OAAO,EAAQ,GAAK,IAAM,EAAQ,MAAgB,GAAR,IAAc,EAC1D,CACA,SAAS,EAAM,EAAO,EAAW,GAC/B,IAAI,EAAI,EAGR,IAFA,EAAQ,EAAY,EAAM,EA3E0D,KA2E1C,GAAS,EACnD,GAAS,EAAM,EAAQ,GAChB,EAAQ,IAA2B,GAAK,EAC7C,EAAQ,EAAM,EA1EC,IA4EjB,OAAO,EAAM,EAAI,GAAsB,GAAS,EAhFyB,IAiF3E,CACA,SAAS,EAAQ,GACf,IAA6C,EAA8C,EAAO,EAAG,EAAO,EAAM,EAAG,EAAG,EAAO,EAAG,EAzB9G,EAyBhB,EAAS,GAAI,EAAc,EAAM,OAAa,EAAI,EAAG,EAnF6D,IAmF/C,EAnFgC,GAwFvG,KAJA,EAAQ,EAAM,YApFyH,MAqF3H,IACV,EAAQ,GAEL,EAAI,EAAG,EAAI,IAAS,EACnB,EAAM,WAAW,IAAM,KACzB,EAAM,aAER,EAAO,KAAK,EAAM,WAAW,IAE/B,IAAK,EAAQ,EAAQ,EAAI,EAAQ,EAAI,EAAG,EAAQ,GAAe,CAC7D,IAAK,EAAO,EAAG,EAAI,EAAG,EAAI,EACpB,GAAS,GACX,EAAM,mBAER,GAzCgB,EAyCK,EAAM,WAAW,MAxC1B,GAAK,GACZ,EAAY,GAEjB,EAAY,GAAK,GACZ,EAAY,GAEjB,EAAY,GAAK,GACZ,EAAY,GAEd,IAgCU,GAAQ,EAAQ,GAAO,EAAS,GAAK,KAChD,EAAM,YAER,GAAK,EAAQ,IAET,GADJ,EAAI,GAAK,EAxGuC,EAwGzB,GAAK,EAxG8B,MAwGT,EAAI,IATrB,GAAK,EAcjC,EAAI,EAAM,GADd,EAAa,EAAO,KAElB,EAAM,YAER,GAAK,EAGP,EAAO,EAAM,EAAI,EADjB,EAAM,EAAO,OAAS,EACc,GAAR,GACxB,EAAM,EAAI,GAAO,EAAS,GAC5B,EAAM,YAER,GAAK,EAAM,EAAI,GACf,GAAK,EACL,EAAO,OAAO,IAAK,EAAG,EACxB,CACA,OAAO,EAAW,EACpB,CACA,SAAS,EAAQ,GACf,IAAI,EAAG,EAAO,EAAgB,EAAa,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAA2B,EAAa,EAAuB,EAAY,EAA7D,EAAS,GAMvF,IAJA,GADA,EAAQ,EAAW,IACC,OACpB,EAjIsH,IAkItH,EAAQ,EACR,EAnIuG,GAoIlG,EAAI,EAAG,EAAI,IAAe,GAC7B,EAAe,EAAM,IACF,KACjB,EAAO,KAAK,EAAmB,IAOnC,IAJA,EAAiB,EAAc,EAAO,OAClC,GACF,EAAO,KA5I8H,KA8IhI,EAAiB,GAAa,CACnC,IAAK,EAAI,EAAQ,EAAI,EAAG,EAAI,IAAe,GACzC,EAAe,EAAM,KACD,GAAK,EAAe,IACtC,EAAI,GASR,IALI,EAAI,EAAI,GAAO,EAAS,IAD5B,EAAwB,EAAiB,KAEvC,EAAM,YAER,IAAU,EAAI,GAAK,EACnB,EAAI,EACC,EAAI,EAAG,EAAI,IAAe,EAK7B,IAJA,EAAe,EAAM,IACF,KAAO,EAAQ,GAChC,EAAM,YAEJ,GAAgB,EAAG,CACrB,IAAK,EAAI,EAAO,EAAI,IAEd,GADJ,EAAI,GAAK,EAlKmC,EAkKrB,GAAK,EAlK0B,MAkKL,EAAI,IAD3B,GAAK,EAK/B,EAAU,EAAI,EACd,EAAa,EAAO,EACpB,EAAO,KACL,EAAmB,EAAa,EAAI,EAAU,EAAY,KAE5D,EAAI,EAAM,EAAU,GAEtB,EAAO,KAAK,EAAmB,EAAa,EAAG,KAC/C,EAAO,EAAM,EAAO,EAAuB,GAAkB,GAC7D,EAAQ,IACN,CACJ,GAEA,IACA,CACJ,CACA,OAAO,EAAO,KAAK,GACrB,CAkCA,GAvBA,EAAY,CAMV,QAAW,QAQX,KAAQ,CACN,OAAU,EACV,OAAU,GAEZ,OAAU,EACV,OAAU,EACV,QAzBF,SAAiB,GACf,OAAO,EAAU,GAAO,SAAS,GAC/B,OAAO,EAAc,KAAK,GAAU,OAAS,EAAQ,GAAU,CACjE,GACF,EAsBE,UA/BF,SAAmB,GACjB,OAAO,EAAU,GAAO,SAAS,GAC/B,OAAO,EAAc,KAAK,GAAU,EAAQ,EAAO,MAAM,GAAG,eAAiB,CAC/E,GACF,GA6BI,GAAe,EACjB,GAAI,EAAO,SAAW,EACpB,EAAW,QAAU,OAErB,IAAK,KAAO,EACV,EAAU,eAAe,KAAS,EAAY,GAAO,EAAU,SAInE,EAAK,SAAW,CAEnB,CA3OD,CA2OG,eACJ,CA7OD,CA6OG,WAAY,iBACf,IAAI,OAAS,CACX,SAAU,SAAS,GACjB,MAAsB,iBAAR,CAChB,EACA,SAAU,SAAS,GACjB,MAAsB,iBAAR,GAA4B,OAAR,CACpC,EACA,OAAQ,SAAS,GACf,OAAe,OAAR,CACT,EACA,kBAAmB,SAAS,GAC1B,OAAc,MAAP,CACT,GAEE,cAAgB,CAAC,EACrB,SAAS,eAAe,EAAK,GAC3B,OAAO,OAAO,UAAU,eAAe,KAAK,EAAK,EACnD,CACA,IAAI,OAAS,SAAS,EAAI,EAAK,EAAI,GACjC,EAAM,GAAO,IACb,EAAK,GAAM,IACX,IAAI,EAAM,CAAC,EACX,GAAkB,iBAAP,GAAiC,IAAd,EAAG,OAC/B,OAAO,EAET,IAAI,EAAS,MACb,EAAK,EAAG,MAAM,GACd,IAAI,EAAU,IACV,GAAsC,iBAApB,EAAQ,UAC5B,EAAU,EAAQ,SAEpB,IAAI,EAAM,EAAG,OACT,EAAU,GAAK,EAAM,IACvB,EAAM,GAER,IAAK,IAAI,EAAI,EAAG,EAAI,IAAO,EAAG,CAC5B,IAA2D,EAAM,EAAM,EAAG,EAAtE,EAAI,EAAG,GAAG,QAAQ,EAAQ,OAAQ,EAAM,EAAE,QAAQ,GAClD,GAAO,GACT,EAAO,EAAE,OAAO,EAAG,GACnB,EAAO,EAAE,OAAO,EAAM,KAEtB,EAAO,EACP,EAAO,IAET,EAAI,mBAAmB,GACvB,EAAI,mBAAmB,GAClB,eAAe,EAAK,GAEd,MAAM,QAAQ,EAAI,IAC3B,EAAI,GAAG,KAAK,GAEZ,EAAI,GAAK,CAAC,EAAI,GAAI,GAJlB,EAAI,GAAK,CAMb,CACA,OAAO,CACT,EACI,mBAAqB,SAAS,GAChC,cAAe,GACb,IAAK,SACH,OAAO,EACT,IAAK,UACH,OAAO,EAAI,OAAS,QACtB,IAAK,SACH,OAAO,SAAS,GAAK,EAAI,GAC3B,QACE,MAAO,GAEb,EACI,OAAS,SAAS,EAAK,EAAK,EAAI,GAMlC,OALA,EAAM,GAAO,IACb,EAAK,GAAM,IACC,OAAR,IACF,OAAM,GAEW,iBAAR,EACF,OAAO,KAAK,GAAK,KAAI,SAAS,GACnC,IAAI,EAAK,mBAAmB,mBAAmB,IAAM,EACrD,OAAI,MAAM,QAAQ,EAAI,IACb,EAAI,GAAG,KAAI,SAAS,GACzB,OAAO,EAAK,mBAAmB,mBAAmB,GACpD,IAAG,KAAK,GAED,EAAK,mBAAmB,mBAAmB,EAAI,IAE1D,IAAG,KAAK,GAEL,EAEE,mBAAmB,mBAAmB,IAAS,EAAK,mBAAmB,mBAAmB,IADxF,EAEX,EACA,cAAc,OAAS,cAAc,MAAQ,OAC7C,cAAc,OAAS,cAAc,UAAY,OACjD,IAAI,SAAW,gBACX,KAAO,OAMX,SAAS,MACP,KAAK,SAAW,KAChB,KAAK,QAAU,KACf,KAAK,KAAO,KACZ,KAAK,KAAO,KACZ,KAAK,KAAO,KACZ,KAAK,SAAW,KAChB,KAAK,KAAO,KACZ,KAAK,OAAS,KACd,KAAK,MAAQ,KACb,KAAK,SAAW,KAChB,KAAK,KAAO,KACZ,KAAK,KAAO,IACd,CAlBA,IAAI,MAAQ,SACZ,IAAI,QAAU,WACd,IAAI,cAAgB,iBACpB,IAAI,OAAS,UACb,IAAI,IAAM,IAeV,IAAI,gBAAkB,oBAAqB,YAAc,WAAY,kBAAoB,qCAAsC,OAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAAM,OAAS,CAAC,IAAK,IAAK,IAAK,KAAM,IAAK,KAAK,OAAO,QAAS,WAAa,CAAC,KAAK,OAAO,QAAS,aAAe,CAAC,IAAK,IAAK,IAAK,IAAK,KAAK,OAAO,YAAa,gBAAkB,CAAC,IAAK,IAAK,KAAM,eAAiB,IAAK,oBAAsB,yBAA0B,kBAAoB,+BAAgC,eAAiB,CACzf,YAAc,EACd,eAAe,GACd,iBAAmB,CACpB,YAAc,EACd,eAAe,GACd,gBAAkB,CACnB,MAAQ,EACR,OAAS,EACT,KAAO,EACP,QAAU,EACV,MAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GACR,YAAc,cACjB,SAAS,SAAS,EAAM,EAAkB,GACxC,GAAI,GAAQ,KAAK,SAAS,IAAS,aAAgB,IACjD,OAAO,EACT,IAAI,EAAI,IAAI,IAEZ,OADA,EAAE,MAAM,EAAM,EAAkB,GACzB,CACT,CAwKA,SAAS,UAAU,GAGjB,OAFI,KAAK,SAAS,KAChB,EAAM,SAAS,IACX,aAAe,IAEd,EAAI,SADF,IAAI,UAAU,OAAO,KAAK,EAErC,CAwCA,SAAS,WAAW,EAAS,GAC3B,OAAO,SAAS,GAAS,GAAO,GAAM,QAAQ,EAChD,CAIA,SAAS,iBAAiB,EAAS,GACjC,OAAK,EAEE,SAAS,GAAS,GAAO,GAAM,cAAc,GAD3C,CAEX,CA/NA,IAAI,UAAU,MAAQ,SAAS,EAAM,EAAkB,GACrD,IAAK,KAAK,SAAS,GACjB,MAAM,IAAI,UAAU,gDAAkD,GAExE,IAAI,EAAa,EAAK,QAAQ,KAAM,GAA2B,IAAhB,GAAqB,EAAa,EAAK,QAAQ,KAAO,IAAM,IAAK,EAAS,EAAK,MAAM,GACpI,EAAO,GAAK,EAAO,GAAG,QADsI,MAClH,KAE1C,IAAI,EADJ,EAAO,EAAO,KAAK,GAGnB,GADA,EAAO,EAAK,QACP,GAAgD,IAA3B,EAAK,MAAM,KAAK,OAAc,CACtD,IAAI,EAAa,kBAAkB,KAAK,GACxC,GAAI,EAeF,OAdA,KAAK,KAAO,EACZ,KAAK,KAAO,EACZ,KAAK,SAAW,EAAW,GACvB,EAAW,IACb,KAAK,OAAS,EAAW,GAEvB,KAAK,MADH,EACW,YAAY,MAAM,KAAK,OAAO,OAAO,IAErC,KAAK,OAAO,OAAO,IAEzB,IACT,KAAK,OAAS,GACd,KAAK,MAAQ,CAAC,GAET,IAEX,CACA,IAAI,EAAQ,gBAAgB,KAAK,GACjC,GAAI,EAAO,CAET,IAAI,GADJ,EAAQ,EAAM,IACS,cACvB,KAAK,SAAW,EAChB,EAAO,EAAK,OAAO,EAAM,OAC3B,CACA,GAAI,GAAqB,GAAS,EAAK,MAAM,wBAAyB,CACpE,IAAI,EAAgC,OAAtB,EAAK,OAAO,EAAG,IACzB,GAAa,GAAS,iBAAiB,KACzC,EAAO,EAAK,OAAO,GACnB,KAAK,SAAU,EAEnB,CACA,IAAK,iBAAiB,KAAW,GAAW,IAAU,gBAAgB,IAAS,CAE7E,IADA,IAMI,EAAM,EANN,GAAW,EACN,EAAI,EAAG,EAAI,gBAAgB,OAAQ,IAAK,EAElC,KADT,EAAM,EAAK,QAAQ,gBAAgB,QACP,IAAb,GAAkB,EAAM,KACzC,EAAU,EACd,EAOgB,KAJd,GADe,IAAb,EACO,EAAK,YAAY,KAEjB,EAAK,YAAY,IAAK,MAG/B,EAAO,EAAK,MAAM,EAAG,GACrB,EAAO,EAAK,MAAM,EAAS,GAC3B,KAAK,KAAO,mBAAmB,IAEjC,GAAW,EACX,IAAS,EAAI,EAAG,EAAI,aAAa,OAAQ,IAAK,CAC5C,IAAI,GACS,KADT,EAAM,EAAK,QAAQ,aAAa,QACJ,IAAb,GAAkB,EAAM,KACzC,EAAU,EACd,EACiB,IAAb,IACF,EAAU,EAAK,QACjB,KAAK,KAAO,EAAK,MAAM,EAAG,GAC1B,EAAO,EAAK,MAAM,GAClB,KAAK,YACL,KAAK,SAAW,KAAK,UAAY,GACjC,IAAI,EAAoC,MAArB,KAAK,SAAS,IAA0D,MAA5C,KAAK,SAAS,KAAK,SAAS,OAAS,GACpF,IAAK,EAEH,IADA,IAAI,EAAY,KAAK,SAAS,MAAM,MACpB,GAAP,EAAI,EAAO,EAAU,QAAQ,EAAI,EAAG,IAAK,CAChD,IAAI,EAAO,EAAU,GACrB,GAAK,IAEA,EAAK,MAAM,qBAAsB,CAEpC,IADA,IAAI,EAAU,GACL,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAI,EAAG,IAClC,EAAK,WAAW,GAAK,IACvB,GAAW,IAEX,GAAW,EAAK,GAGpB,IAAK,EAAQ,MAAM,qBAAsB,CACvC,IAAI,EAAa,EAAU,MAAM,EAAG,GAChC,EAAU,EAAU,MAAM,EAAI,GAC9B,EAAM,EAAK,MAAM,mBACjB,IACF,EAAW,KAAK,EAAI,IACpB,EAAQ,QAAQ,EAAI,KAElB,EAAQ,SACV,EAAO,IAAM,EAAQ,KAAK,KAAO,GAEnC,KAAK,SAAW,EAAW,KAAK,KAChC,KACF,CACF,CACF,CAEE,KAAK,SAAS,OAAS,eACzB,KAAK,SAAW,GAEhB,KAAK,SAAW,KAAK,SAAS,cAE3B,IACH,KAAK,SAAW,SAAS,QAAQ,KAAK,WAExC,IAAI,EAAI,KAAK,KAAO,IAAM,KAAK,KAAO,GAClC,EAAI,KAAK,UAAY,GACzB,KAAK,KAAO,EAAI,EAChB,KAAK,MAAQ,KAAK,KACd,IACF,KAAK,SAAW,KAAK,SAAS,OAAO,EAAG,KAAK,SAAS,OAAS,GAC/C,MAAZ,EAAK,KACP,EAAO,IAAM,GAGnB,CACA,IAAK,eAAe,GAClB,IAAS,EAAI,EAAG,EAAI,WAAW,OAAQ,EAAI,EAAG,IAAK,CACjD,IAAI,EAAK,WAAW,GACpB,IAA0B,IAAtB,EAAK,QAAQ,GAAjB,CAEA,IAAI,EAAM,mBAAmB,GACzB,IAAQ,IACV,EAAM,OAAO,IAEf,EAAO,EAAK,MAAM,GAAI,KAAK,EALjB,CAMZ,CAEF,IAAI,EAAO,EAAK,QAAQ,MACV,IAAV,IACF,KAAK,KAAO,EAAK,OAAO,GACxB,EAAO,EAAK,MAAM,EAAG,IAEvB,IAAI,EAAK,EAAK,QAAQ,KAiBtB,IAhBY,IAAR,GACF,KAAK,OAAS,EAAK,OAAO,GAC1B,KAAK,MAAQ,EAAK,OAAO,EAAK,GAC1B,IACF,KAAK,MAAQ,YAAY,MAAM,KAAK,QAEtC,EAAO,EAAK,MAAM,EAAG,IACZ,IACT,KAAK,OAAS,GACd,KAAK,MAAQ,CAAC,GAEZ,IACF,KAAK,SAAW,GACd,gBAAgB,IAAe,KAAK,WAAa,KAAK,WACxD,KAAK,SAAW,KAEd,KAAK,UAAY,KAAK,OAAQ,CAC5B,EAAI,KAAK,UAAY,GAAzB,IACI,EAAI,KAAK,QAAU,GACvB,KAAK,KAAO,EAAI,CAClB,CAEA,OADA,KAAK,KAAO,KAAK,SACV,IACT,EAQA,IAAI,UAAU,OAAS,WACrB,IAAI,EAAO,KAAK,MAAQ,GACpB,IAEF,GADA,EAAO,mBAAmB,IACd,QAAQ,OAAQ,KAC5B,GAAQ,KAEV,IAAI,EAAW,KAAK,UAAY,GAAI,EAAW,KAAK,UAAY,GAAI,EAAO,KAAK,MAAQ,GAAI,GAAO,EAAO,EAAQ,GAC9G,KAAK,KACP,EAAO,EAAO,KAAK,KACV,KAAK,WACd,EAAO,IAAwC,IAAhC,KAAK,SAAS,QAAQ,KAAc,KAAK,SAAW,IAAM,KAAK,SAAW,KACrF,KAAK,OACP,GAAQ,IAAM,KAAK,OAGnB,KAAK,OAAS,KAAK,SAAS,KAAK,QAAU,OAAO,KAAK,KAAK,OAAO,SACrE,EAAQ,YAAY,UAAU,KAAK,QAErC,IAAI,EAAS,KAAK,QAAU,GAAS,IAAM,GAAS,GAkBpD,OAjBI,GAAoC,MAAxB,EAAS,QAAQ,KAC/B,GAAY,KACV,KAAK,WAAa,GAAY,gBAAgB,MAAuB,IAAT,GAC9D,EAAO,MAAQ,GAAQ,IACnB,GAAmC,MAAvB,EAAS,OAAO,KAC9B,EAAW,IAAM,IACT,IACV,EAAO,IAEL,GAA2B,MAAnB,EAAK,OAAO,KACtB,EAAO,IAAM,GACX,GAA+B,MAArB,EAAO,OAAO,KAC1B,EAAS,IAAM,GAKV,EAAW,GAJlB,EAAW,EAAS,QAAQ,SAAS,SAAS,GAC5C,OAAO,mBAAmB,EAC5B,MACA,EAAS,EAAO,QAAQ,IAAK,QACgB,CAC/C,EAIA,IAAI,UAAU,QAAU,SAAS,GAC/B,OAAO,KAAK,cAAc,SAAS,GAAU,GAAO,IAAO,QAC7D,EAMA,IAAI,UAAU,cAAgB,SAAS,GACrC,GAAI,KAAK,SAAS,GAAW,CAC3B,IAAI,EAAM,IAAI,IACd,EAAI,MAAM,GAAU,GAAO,GAC3B,EAAW,CACb,CAGA,IAFA,IAAI,EAAS,IAAI,IACb,EAAQ,OAAO,KAAK,MACf,EAAK,EAAG,EAAK,EAAM,OAAQ,IAAM,CACxC,IAAI,EAAO,EAAM,GACjB,EAAO,GAAQ,KAAK,EACtB,CAEA,GADA,EAAO,KAAO,EAAS,KACD,KAAlB,EAAS,KAEX,OADA,EAAO,KAAO,EAAO,SACd,EAET,GAAI,EAAS,UAAY,EAAS,SAAU,CAE1C,IADA,IAAI,EAAQ,OAAO,KAAK,GACf,EAAK,EAAG,EAAK,EAAM,OAAQ,IAAM,CACxC,IAAI,EAAO,EAAM,GACJ,aAAT,IACF,EAAO,GAAQ,EAAS,GAC5B,CAKA,OAJI,gBAAgB,EAAO,WAAa,EAAO,WAAa,EAAO,WACjE,EAAO,KAAO,EAAO,SAAW,KAElC,EAAO,KAAO,EAAO,SACd,CACT,CACA,GAAI,EAAS,UAAY,EAAS,WAAa,EAAO,SAAU,CAC9D,IAAK,gBAAgB,EAAS,UAAW,CAEvC,IADA,IAAI,EAAO,OAAO,KAAK,GACd,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,IAAI,EAAI,EAAK,GACb,EAAO,GAAK,EAAS,EACvB,CAEA,OADA,EAAO,KAAO,EAAO,SACd,CACT,CAEA,GADA,EAAO,SAAW,EAAS,SACtB,EAAS,MAAS,iBAAiB,EAAS,UAc/C,EAAO,SAAW,EAAS,aAd+B,CAE1D,IADA,IAAI,GAAW,EAAS,UAAY,IAAI,MAAM,KACvC,EAAQ,UAAY,EAAS,KAAO,EAAQ,WAE9C,EAAS,OACZ,EAAS,KAAO,IACb,EAAS,WACZ,EAAS,SAAW,IACH,KAAf,EAAQ,IACV,EAAQ,QAAQ,IACd,EAAQ,OAAS,GACnB,EAAQ,QAAQ,IAClB,EAAO,SAAW,EAAQ,KAAK,IACjC,CASA,GANA,EAAO,OAAS,EAAS,OACzB,EAAO,MAAQ,EAAS,MACxB,EAAO,KAAO,EAAS,MAAQ,GAC/B,EAAO,KAAO,EAAS,KACvB,EAAO,SAAW,EAAS,UAAY,EAAS,KAChD,EAAO,KAAO,EAAS,KACnB,EAAO,UAAY,EAAO,OAAQ,CACpC,IAAI,EAAI,EAAO,UAAY,GACvB,EAAI,EAAO,QAAU,GACzB,EAAO,KAAO,EAAI,CACpB,CAGA,OAFA,EAAO,QAAU,EAAO,SAAW,EAAS,QAC5C,EAAO,KAAO,EAAO,SACd,CACT,CACA,IAAI,EAAc,EAAO,UAA0C,MAA9B,EAAO,SAAS,OAAO,GAAY,EAAW,EAAS,MAAQ,EAAS,UAA4C,MAAhC,EAAS,SAAS,OAAO,GAAY,EAAa,GAAY,GAAe,EAAO,MAAQ,EAAS,SAAU,EAAgB,EAAY,EAAU,EAAO,UAAY,EAAO,SAAS,MAAM,MAAQ,GAAuE,GAAnE,EAAU,EAAS,UAAY,EAAS,SAAS,MAAM,MAAQ,GAAgB,EAAO,WAAa,gBAAgB,EAAO,WAwB7b,GAvBI,IACF,EAAO,SAAW,GAClB,EAAO,KAAO,KACV,EAAO,OACU,KAAf,EAAQ,GACV,EAAQ,GAAK,EAAO,KAEpB,EAAQ,QAAQ,EAAO,OAE3B,EAAO,KAAO,GACV,EAAS,WACX,EAAS,SAAW,KACpB,EAAS,KAAO,KACZ,EAAS,OACQ,KAAf,EAAQ,GACV,EAAQ,GAAK,EAAS,KAEtB,EAAQ,QAAQ,EAAS,OAE7B,EAAS,KAAO,MAElB,EAAa,IAA8B,KAAf,EAAQ,IAA4B,KAAf,EAAQ,KAEvD,EACF,EAAO,KAAO,EAAS,MAA0B,KAAlB,EAAS,KAAc,EAAS,KAAO,EAAO,KAC7E,EAAO,SAAW,EAAS,UAAkC,KAAtB,EAAS,SAAkB,EAAS,SAAW,EAAO,SAC7F,EAAO,OAAS,EAAS,OACzB,EAAO,MAAQ,EAAS,MACxB,EAAU,OACL,GAAI,EAAQ,OACZ,IACH,EAAU,IACZ,EAAQ,MACR,EAAU,EAAQ,OAAO,GACzB,EAAO,OAAS,EAAS,OACzB,EAAO,MAAQ,EAAS,WACnB,IAAK,KAAK,kBAAkB,EAAS,QAAS,CACnD,GAAI,EACF,EAAO,SAAW,EAAO,KAAO,EAAQ,SACpC,KAAa,EAAO,MAAQ,EAAO,KAAK,QAAQ,KAAO,IAAI,EAAO,KAAK,MAAM,QAE/E,EAAO,KAAO,EAAW,QACzB,EAAO,KAAO,EAAO,SAAW,EAAW,SAS/C,OANA,EAAO,OAAS,EAAS,OACzB,EAAO,MAAQ,EAAS,MACnB,KAAK,OAAO,EAAO,WAAc,KAAK,OAAO,EAAO,UACvD,EAAO,MAAQ,EAAO,SAAW,EAAO,SAAW,KAAO,EAAO,OAAS,EAAO,OAAS,KAE5F,EAAO,KAAO,EAAO,SACd,CACT,CACA,IAAK,EAAQ,OAQX,OAPA,EAAO,SAAW,KACd,EAAO,OACT,EAAO,KAAO,IAAM,EAAO,OAE3B,EAAO,KAAO,KAEhB,EAAO,KAAO,EAAO,SACd,EAKT,IAHA,IAAI,EAAO,EAAQ,OAAO,GAAG,GACzB,GAAqB,EAAO,MAAQ,EAAS,MAAQ,EAAQ,OAAS,KAAgB,MAAT,GAAyB,OAAT,IAA2B,KAAT,EAC/G,EAAK,EACA,EAAI,EAAQ,OAAQ,GAAK,EAAG,IAEtB,OADb,EAAO,EAAQ,IAEb,EAAQ,OAAO,EAAG,GACA,OAAT,GACT,EAAQ,OAAO,EAAG,GAClB,KACS,IACT,EAAQ,OAAO,EAAG,GAClB,KAGJ,IAAK,IAAe,EAClB,KAAO,IAAM,EACX,EAAQ,QAAQ,OAGhB,GAA6B,KAAf,EAAQ,IAAe,EAAQ,IAA+B,MAAzB,EAAQ,GAAG,OAAO,IACvE,EAAQ,QAAQ,IAEd,GAAsD,MAAjC,EAAQ,KAAK,KAAK,QAAQ,IACjD,EAAQ,KAAK,IAEf,IAGM,EAHF,EAA4B,KAAf,EAAQ,IAAa,EAAQ,IAA+B,MAAzB,EAAQ,GAAG,OAAO,GAClE,IACF,EAAO,SAAW,EAAO,KAAO,EAAa,GAAK,EAAQ,OAAS,EAAQ,QAAU,IACjF,KAAa,EAAO,MAAQ,EAAO,KAAK,QAAQ,KAAO,IAAI,EAAO,KAAK,MAAM,QAE/E,EAAO,KAAO,EAAW,QACzB,EAAO,KAAO,EAAO,SAAW,EAAW,UAmB/C,OAhBA,EAAa,GAAc,EAAO,MAAQ,EAAQ,UAC/B,GACjB,EAAQ,QAAQ,IAEb,EAAQ,OAIX,EAAO,SAAW,EAAQ,KAAK,MAH/B,EAAO,SAAW,KAClB,EAAO,KAAO,MAIX,KAAK,OAAO,EAAO,WAAc,KAAK,OAAO,EAAO,UACvD,EAAO,MAAQ,EAAO,SAAW,EAAO,SAAW,KAAO,EAAO,OAAS,EAAO,OAAS,KAE5F,EAAO,KAAO,EAAS,MAAQ,EAAO,KACtC,EAAO,QAAU,EAAO,SAAW,EAAS,QAC5C,EAAO,KAAO,EAAO,SACd,CACT,EACA,IAAI,UAAU,UAAY,WACxB,IAAI,EAAO,KAAK,KACZ,EAAO,YAAY,KAAK,GACxB,IAEW,OADb,EAAO,EAAK,MAEV,KAAK,KAAO,EAAK,OAAO,IAE1B,EAAO,EAAK,OAAO,EAAG,EAAK,OAAS,EAAK,SAEvC,IACF,KAAK,SAAW,EACpB,EACA,IAAI,UAAY,CAAC,EACb,IAAM,IACN,kBAAoB,UAAU,gBAAkB,SAAyB,EAAS,EAAU,EAAQ,EAAM,EAAM,GAYlH,GAXI,MAAM,QAAQ,IAChB,KAAK,KAAO,EACZ,KAAK,SAAW,EAAK,QAAO,SAAS,EAAK,GACxC,OAAO,EAAM,aAAa,EAC5B,GAAG,kBACe,IAAT,IACT,KAAK,SAAW,GAEd,IACF,KAAK,QAAU,GAEb,EAAQ,CACV,IAAI,EAAK,EAAO,KAAO,EAAO,GAC9B,KAAK,OAAS,GAAM,CACtB,MACiB,IAAb,IACF,KAAK,SAAW,GAElB,KAAK,KAAO,EACZ,KAAK,SAAW,EAChB,KAAK,MAAQ,KAAK,UACpB,EACA,kBAAkB,UAAU,SAAW,WACrC,OAAO,KAAK,SAAW,IAAM,KAAK,OACpC,EACA,IAAI,kBAAoB,UAAU,gBAAkB,SAAyB,EAAU,EAAQ,EAAS,GACtG,KAAK,SAAW,EAChB,KAAK,OAAS,EACd,KAAK,QAAU,EACf,KAAK,KAAO,EAAI,KAChB,KAAK,aAAe,EAAI,aACxB,KAAK,OAAS,GACd,KAAK,WAAa,GAAW,EAAQ,WACrC,KAAK,WAAa,GAAW,EAAQ,WACrC,KAAK,SAAW,GAAW,EAAQ,SACnC,KAAK,cAAgB,IAAqC,IAA1B,EAAQ,aAC1C,EA6BA,SAAS,aAAa,EAAG,GACvB,OAAO,EAAI,KAAO,EAAE,WAAa,IACnC,CAQA,SAAS,uBAAuB,GAC1B,MAAM,mBACR,MAAM,kBAAkB,KAAM,wBAEhC,KAAK,SAAW,EAAO,SACvB,KAAK,OAAS,EAAO,OACrB,KAAK,QAAU,EAAO,QACtB,KAAK,OAAS,EAAO,MACvB,CA9CA,kBAAkB,UAAU,SAAW,SAAkB,GACvD,IAAI,EACJ,GAAqB,iBAAV,EACT,EAAM,IAAI,kBAAkB,EAAQ,KAAK,SAAU,KAAK,OAAQ,KAAK,UAChE,CACL,IAAK,EACH,MAAM,IAAI,MAAM,wBAClB,IAAK,EAAO,QACV,MAAM,IAAI,MAAM,yBAClB,IAAK,EAAO,KACV,MAAM,IAAI,MAAM,0BAClB,EAAM,IAAI,kBAAkB,EAAO,QAAS,KAAK,SAAU,KAAK,OAAQ,KAAK,KAAM,EAAO,KAAM,EAAO,SACzG,CAEA,GADA,KAAK,OAAO,KAAK,GACb,KAAK,WACP,MAAM,IAAI,uBAAuB,MAC5B,GAAI,KAAK,WACd,MAAM,EAER,OAAO,CACT,EACA,kBAAkB,UAAU,aAAe,SAAsB,GAC7C,iBAAP,GAAmB,GAAO,EAAI,cACvC,KAAK,SAAS,GACL,GAAO,EAAI,SACpB,KAAK,OAAS,KAAK,OAAO,OAAO,EAAI,QAEzC,EAIA,kBAAkB,UAAU,SAAW,SAAmB,GACxD,OAAO,KAAK,OAAO,IAAI,cAAc,KAAK,GAC5C,EACA,OAAO,eAAe,kBAAkB,UAAW,QAAS,CAAE,IAAK,WACjE,OAAQ,KAAK,OAAO,MACtB,IACA,UAAU,qBAAuB,uBAUjC,uBAAuB,UAAY,IAAI,MACvC,uBAAuB,UAAU,YAAc,uBAC/C,uBAAuB,UAAU,KAAO,mBACxC,IAAI,cAAgB,UAAU,YAAc,SAAS,EAAY,EAAK,GACpE,KAAK,QAAU,EACf,KAAK,OAAS,EACd,MAAM,KAAK,KAAM,GACjB,MAAM,kBAAkB,KAAM,EAChC,EACA,cAAc,UAAY,OAAO,OAC/B,MAAM,UACN,CACE,YAAa,CAAE,MAAO,cAAe,YAAY,GACjD,KAAM,CAAE,MAAO,cAAe,YAAY,KAG9C,IAAI,gBAAkB,UAAU,cAAgB,SAAuB,EAAQ,EAAS,EAAM,EAAM,GAClG,KAAK,OAAS,EACd,KAAK,QAAU,EACX,MAAM,QAAQ,IAChB,KAAK,KAAO,EACZ,KAAK,aAAe,EAAK,QAAO,SAAS,EAAK,GAC5C,OAAO,EAAM,aAAa,EAC5B,GAAG,aAEH,KAAK,aAAe,EAEtB,KAAK,KAAO,EACZ,KAAK,QAAU,CACjB,EACA,gBAAgB,UAAU,QAAU,SAAiB,GACnD,OAAO,IAAI,QAAQ,KAAK,KAAM,EAChC,EACA,gBAAgB,UAAU,UAAY,SAAmB,EAAQ,GAC/D,IAAI,OAAwB,IAAjB,EAA0B,KAAK,KAAO,KAAK,KAAK,OAAO,CAAC,IAC/D,EAAK,EAAO,KAAO,EAAO,GAC1B,EAAO,IAAI,QAAQ,KAAK,KAAM,GAAM,IACpC,EAAM,IAAI,gBAAgB,EAAQ,KAAK,QAAS,EAAM,EAAM,OAAO,OAAO,KAAK,UAInF,OAHI,IAAO,EAAI,QAAQ,KACrB,EAAI,QAAQ,GAAQ,GAEf,CACT,EACA,IAAI,eAAiB,UAAU,eAAiB,CAE9C,YAAa,8JACb,KAAQ,2DACR,KAAQ,oDACR,SAAY,+GAGZ,MAAS,ySACT,YAAa,8NAGb,aAAc,8FAEd,KAAQ,0jCAIR,IAAO,mCACP,gBAAiB,qxCACjB,IAAO,mCACP,gBAAiB,mhDACjB,KAAQ,kEAER,eAAgB,oNAEhB,eAAgB,2CAChB,wBAAyB,kDAEzB,SAAY,gIACZ,YAAa,gIACb,eAAgB,SAAS,GACvB,MAAwB,iBAAV,GAAsB,WAAW,KAAW,SAAS,EAAO,MAAQ,MAAM,EAC1F,EAEA,MAAS,SAAS,GAChB,IAAI,GAAS,EACb,IACE,IAAI,OAAO,EACb,CAAE,MAAO,GACP,GAAS,CACX,CACA,OAAO,CACT,EAGA,MAAS,+DAET,MAAS,6YACT,MAAS,6BACT,MAAS,cACT,aAAgB,kBAElB,eAAe,OAAS,eAAe,MACvC,eAAe,QAAU,eAAe,MACxC,eAAe,KAAO,eAAe,cACrC,UAAU,SAAW,SAAkB,EAAO,EAAQ,GACpD,GAAqB,iBAAV,QAAiD,IAA3B,eAAe,GAAoB,CAClE,GAAI,eAAe,aAAmB,OACpC,OAAO,eAAe,GAAQ,KAAK,GAErC,GAAsC,mBAA3B,eAAe,GACxB,OAAO,eAAe,GAAQ,EAElC,MAAO,GAAI,GAAc,EAAW,eAA6D,mBAArC,EAAW,cAAc,GACnF,OAAO,EAAW,cAAc,GAAQ,GAE1C,OAAO,CACT,EACA,IAAI,aAAe,UAAU,WAAa,SAAoB,GAE5D,OADA,EAAM,EAAI,YACD,MAAM,cAAiB,EAAI,MAAM,SAGtC,EAAI,MAAM,SACL,IAAM,EAAM,IAEd,IAAM,KAAK,UAAU,GAAO,IAL1B,IAAM,CAMjB,EA+BA,SAAS,WAAW,EAAQ,EAAK,EAAG,GACjB,iBAAN,EACT,EAAI,GAAK,UAAU,EAAO,GAAI,IAEH,IAAvB,EAAO,QAAQ,IACjB,EAAI,KAAK,EAGf,CACA,SAAS,QAAQ,EAAK,EAAK,GACzB,EAAI,GAAO,EAAI,EACjB,CACA,SAAS,qBAAqB,EAAQ,EAAK,EAAK,GACtB,iBAAb,EAAI,IAAsB,EAAI,IAGlC,EAAO,GAGV,EAAI,GAAO,UAAU,EAAO,GAAM,EAAI,IALxC,EAAI,GAAO,EAAI,EAQnB,CACA,SAAS,UAAU,EAAQ,GACzB,IAAI,EAAQ,MAAM,QAAQ,GACtB,EAAM,GAAS,IAAM,CAAC,EAW1B,OAVI,GACF,EAAS,GAAU,GACnB,EAAM,EAAI,OAAO,GACjB,EAAI,QAAQ,WAAW,KAAK,KAAM,EAAQ,MAEtC,GAA4B,iBAAX,GACnB,OAAO,KAAK,GAAQ,QAAQ,QAAQ,KAAK,KAAM,EAAQ,IAEzD,OAAO,KAAK,GAAK,QAAQ,qBAAqB,KAAK,KAAM,EAAQ,EAAK,KAEjE,CACT,CAaA,SAAS,YAAY,GACnB,MAAO,IAAM,mBAAmB,GAAG,QAAQ,KAAM,MACnD,CAlFA,UAAU,kBAAoB,SAAS,EAAkB,EAAG,GAC1D,UAAW,UAAa,EACtB,OAAO,EAET,GAAI,MAAM,QAAQ,GAChB,QAAK,MAAM,QAAQ,KAGf,EAAE,SAAW,EAAE,QAGZ,EAAE,OAAM,SAAS,EAAG,GACzB,OAAO,EAAkB,EAAE,GAAI,EAAE,GACnC,KAEF,GAAiB,iBAAN,EAAgB,CACzB,IAAK,IAAM,EACT,OAAO,IAAM,EAEf,IAAI,EAAQ,OAAO,KAAK,GACpB,EAAQ,OAAO,KAAK,GACxB,OAAI,EAAM,SAAW,EAAM,QAGpB,EAAM,OAAM,SAAS,GAC1B,OAAO,EAAkB,EAAE,GAAI,EAAE,GACnC,GACF,CACA,OAAO,IAAM,CACf,EAuCA,UAAU,UAAY,UACtB,UAAU,cAAgB,SAAuB,EAAG,GAGlD,IAFA,IACI,EADA,EAAQ,EAAE,MAAM,KAAK,MAAM,GAEM,iBAAtB,EAAI,EAAM,UAAsB,CAC7C,IAAI,EAAI,mBAAmB,EAAE,QAAQ,KAAM,KAAK,QAAQ,MAAO,MAC/D,KAAM,KAAK,GACT,OACF,EAAI,EAAE,EACR,CACA,OAAO,CACT,EAIA,UAAU,WAAa,SAAuB,GAC5C,OAAO,EAAE,IAAI,aAAa,KAAK,GACjC,EACA,UAAU,iBAAmB,SAA0B,GACrD,IAAI,EAAgB,EACpB,GAAI,MAAM,GACR,OAAO,EACa,iBAAX,IACT,EAAS,OAAO,IAElB,IAAI,EAAQ,EAAO,WAAW,MAAM,KACpC,GAAqB,IAAjB,EAAM,OAAc,CACtB,GAAoB,MAAhB,EAAM,GAAG,GACX,OAAO,EAEP,EAAgB,OAAO,EAAM,GAAG,MAAM,GAE1C,CACA,IAAI,EAAe,EAAM,GAAG,MAAM,KAIlC,OAH4B,IAAxB,EAAa,SACf,GAAiB,EAAa,GAAG,QAE5B,CACT,EACA,UAAU,SAAW,SAAkB,GACrC,MAAsB,iBAAR,GAAoB,GAAsB,kBAAR,CAClD,EACA,IAAI,UAAY,UACZ,kBAAoB,UAAU,gBAC9B,cAAgB,UAAU,YAC1B,YAAc,CAClB,iBAA+B,CAE7B,IAAM,EACN,SAAW,EACX,aAAe,EACf,OAAS,EAET,iBAAmB,EACnB,MAAQ,EACR,MAAQ,EAER,SAAW,EACX,MAAQ,EACR,SAAW,IAET,WAAa,YAAY,WAAa,CAAC,EAsB3C,SAAS,kBAAkB,EAAU,EAAS,EAAK,EAAU,GAC3D,IAAI,EAAa,EAAQ,WACrB,EAAW,EAAQ,SACvB,EAAQ,YAAa,EACrB,EAAQ,UAAW,EACnB,IAAI,EAAM,KAAK,eAAe,EAAU,EAAQ,EAAS,GAMzD,OALA,EAAQ,WAAa,EACrB,EAAQ,SAAW,GACd,EAAI,OAAS,aAAoB,UACpC,EAAS,GAEJ,EAAI,KACb,CA2HA,SAAS,sBAAsB,EAAQ,GACrC,GAAI,OAAO,eAAe,KAAK,EAAQ,GACrC,OAAO,EAAO,GAChB,GAAM,KAAO,EAEb,KAAO,EAAS,OAAO,eAAe,IACpC,GAAI,OAAO,qBAAqB,KAAK,EAAQ,GAC3C,OAAO,EAAO,EAEpB,CAuCA,SAAS,uBAAuB,EAAU,EAAQ,EAAS,EAAK,EAAU,GACxE,GAAK,KAAK,MAAM,OAAO,MAEnB,EAAO,iBAA8C,IAAhC,EAAO,WAAW,IAG3C,IAAoC,IAAhC,EAAO,qBACT,EAAO,SAAS,CACd,KAAM,uBACN,SAAU,EACV,QAAS,kDAAoD,KAAK,UAAU,SAEzE,CACL,IAAI,EAAuB,EAAO,sBAAwB,CAAC,EACjB,mBAA/B,EAAQ,qBACjB,EAAQ,oBAAoB,EAAU,EAAU,EAAsB,EAAS,GAEjF,IAAI,EAAM,KAAK,eAAe,EAAS,GAAW,EAAsB,EAAS,EAAI,UAAU,EAAsB,IACjH,EAAI,WAAa,EAAO,SAAS,KACnC,EAAO,SAAS,GAAY,EAAI,UAClC,EAAO,aAAa,EACtB,CACF,CAlOA,WAAW,KAAO,SAAsB,EAAU,EAAQ,EAAS,GACjE,QAAiB,IAAb,EACF,OAAO,KAET,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAS,MAAM,QAAQ,EAAO,MAAQ,EAAO,KAAO,CAAC,EAAO,MAChE,IAAK,EAAO,KAAK,KAAK,SAAS,KAAK,KAAM,EAAU,EAAQ,EAAS,IAAO,CAC1E,IAAI,EAAO,EAAO,KAAI,SAAS,GAC7B,GAAK,EAAL,CAEA,IAAI,EAAK,EAAE,KAAO,EAAE,GACpB,OAAO,EAAK,IAAM,EAAK,IAAM,EAAI,EAFzB,CAGV,IACA,EAAO,SAAS,CACd,KAAM,OACN,SAAU,EACV,QAAS,uBAAyB,GAEtC,CACA,OAAO,CACT,EAcA,WAAW,MAAQ,SAAuB,EAAU,EAAQ,EAAS,GACnE,QAAiB,IAAb,EACF,OAAO,KAET,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAQ,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC7D,IAAK,MAAM,QAAQ,EAAO,OACxB,MAAM,IAAI,cAAc,0BAE1B,IAAK,EAAO,MAAM,KAChB,kBAAkB,KAChB,KACA,EACA,EACA,GACA,SAAS,GACP,EAAM,aAAa,EACrB,KAED,CACD,IAAI,EAAO,EAAO,MAAM,KAAI,SAAS,EAAG,GACtC,IAAI,EAAK,EAAE,KAAO,EAAE,GACpB,OAAI,EACK,IAAM,EAAK,IACb,EAAE,OAAS,KAAK,UAAU,EAAE,QAAU,EAAQ,MAAK,IAAM,EAAQ,KAAI,KAAO,cAAgB,EAAI,GACzG,IACI,EAAQ,cACV,EAAO,aAAa,GAEtB,EAAO,SAAS,CACd,KAAM,QACN,SAAU,EACV,QAAS,iBAAmB,EAAK,KAAK,MAE1C,CACA,OAAO,CACT,EACA,WAAW,MAAQ,SAAuB,EAAU,EAAQ,EAAS,GACnE,QAAiB,IAAb,EACF,OAAO,KAET,IAAK,MAAM,QAAQ,EAAO,OACxB,MAAM,IAAI,cAAc,0BAE1B,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAQ,KAcZ,OAbA,EAAO,MAAM,SAAQ,SAAS,EAAG,GAC/B,IAAI,EAAQ,EAAM,eAAe,EAAU,EAAG,EAAS,GACvD,IAAK,EAAM,MAAO,CAChB,IACI,EADK,EAAE,KAAO,EAAE,IACJ,EAAE,OAAS,KAAK,UAAU,EAAE,QAAU,EAAQ,MAAK,IAAM,EAAQ,KAAI,KAAO,cAAgB,EAAI,IAChH,EAAO,SAAS,CACd,KAAM,QACN,SAAU,CAAE,GAAI,EAAK,OAAQ,EAAM,OAAO,OAAQ,SAClD,QAAS,+BAAiC,EAAM,SAAW,EAAM,OAAO,OAAS,eAEnF,EAAO,aAAa,EACtB,CACF,IACO,CACT,EACA,WAAW,MAAQ,SAAuB,EAAU,EAAQ,EAAS,GACnE,QAAiB,IAAb,EACF,OAAO,KAET,IAAK,MAAM,QAAQ,EAAO,OACxB,MAAM,IAAI,cAAc,0BAE1B,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAQ,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GACzD,EAAQ,EAAO,MAAM,OACvB,kBAAkB,KAChB,KACA,EACA,EACA,GACA,SAAS,GACP,EAAM,aAAa,EACrB,KAEF,OACE,EAAO,EAAO,MAAM,KAAI,SAAS,EAAG,GAEtC,OADS,EAAE,KAAO,EAAE,IACP,EAAE,OAAS,KAAK,UAAU,EAAE,QAAU,EAAQ,MAAK,IAAM,EAAQ,KAAI,KAAO,cAAgB,EAAI,GAC/G,IAWA,OAVc,IAAV,IACE,EAAQ,cACV,EAAO,aAAa,GAEtB,EAAO,SAAS,CACd,KAAM,QACN,SAAU,EACV,QAAS,2BAA6B,EAAK,KAAK,QAG7C,CACT,EACA,WAAW,GAAK,SAAoB,EAAU,EAAQ,EAAS,GAC7D,QAAiB,IAAb,EACF,OAAO,KACT,IAAK,UAAU,SAAS,EAAO,IAC7B,MAAM,IAAI,MAAM,wCAClB,IAEI,EAFA,EAAU,kBAAkB,KAAK,KAAM,EAAU,EAAS,EAAK,KAAM,EAAO,IAC5E,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAE9D,GAAI,EAAS,CACX,QAAoB,IAAhB,EAAO,KACT,OACF,IAAK,UAAU,SAAS,EAAO,MAC7B,MAAM,IAAI,MAAM,0CAClB,EAAM,KAAK,eAAe,EAAU,EAAO,KAAM,EAAS,EAAI,UAAU,EAAO,OAC/E,EAAO,aAAa,EACtB,KAAO,CACL,QAAoB,IAAhB,EAAO,KACT,OACF,IAAK,UAAU,SAAS,EAAO,MAC7B,MAAM,IAAI,MAAM,0CAClB,EAAM,KAAK,eAAe,EAAU,EAAO,KAAM,EAAS,EAAI,UAAU,EAAO,OAC/E,EAAO,aAAa,EACtB,CACA,OAAO,CACT,EAWA,WAAW,cAAgB,SAA+B,EAAU,EAAQ,EAAS,GACnF,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,OAAqC,IAAzB,EAAO,cAA2B,EAAO,cAAgB,CAAC,EAC1E,IAAK,UAAU,SAAS,GACtB,MAAM,IAAI,cAAc,+DAC1B,IAAK,IAAI,KAAY,EACnB,QAAkD,IAA9C,sBAAsB,EAAU,GAAsB,CACxD,IAAI,EAAM,KAAK,eAAe,EAAU,EAAW,EAAS,EAAI,UAAU,IAC1E,EAAO,aAAa,EACtB,CAEF,OAAO,CAXC,CAYV,EACA,WAAW,WAAa,SAA4B,EAAU,EAAQ,EAAS,GAC7E,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAa,EAAO,YAAc,CAAC,EACvC,IAAK,IAAI,KAAY,EAAY,CAC/B,IAAI,EAAY,EAAW,GAC3B,QAAkB,IAAd,EAAJ,CAEO,GAAkB,OAAd,EACT,MAAM,IAAI,cAAc,oDAEgB,mBAA/B,EAAQ,qBACjB,EAAQ,oBAAoB,EAAU,EAAU,EAAW,EAAS,GAEtE,IAAI,EAAO,sBAAsB,EAAU,GACvC,EAAM,KAAK,eAAe,EAAM,EAAW,EAAS,EAAI,UAAU,EAAW,IAC7E,EAAI,WAAa,EAAO,SAAS,KACnC,EAAO,SAAS,GAAY,EAAI,UAClC,EAAO,aAAa,EARpB,CASF,CACA,OAAO,CAnBC,CAoBV,EAwBA,WAAW,kBAAoB,SAAmC,EAAU,EAAQ,EAAS,GAC3F,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAoB,EAAO,mBAAqB,CAAC,EACrD,IAAK,IAAI,KAAY,EAAU,CAC7B,IAAI,GAAO,EACX,IAAK,IAAI,KAAW,EAAmB,CACrC,IAAI,EAAY,EAAkB,GAClC,QAAkB,IAAd,EAAJ,CAEO,GAAkB,OAAd,EACT,MAAM,IAAI,cAAc,2DAE1B,IACE,IAAI,EAAS,IAAI,OAAO,EAAS,IACnC,CAAE,MAAO,GACP,EAAS,IAAI,OAAO,EACtB,CACA,GAAK,EAAO,KAAK,GAAjB,CAGA,GAAO,EACmC,mBAA/B,EAAQ,qBACjB,EAAQ,oBAAoB,EAAU,EAAU,EAAW,EAAS,GAEtE,IAAI,EAAM,KAAK,eAAe,EAAS,GAAW,EAAW,EAAS,EAAI,UAAU,EAAW,IAC3F,EAAI,WAAa,EAAO,SAAS,KACnC,EAAO,SAAS,GAAY,EAAI,UAClC,EAAO,aAAa,EARpB,CARA,CAiBF,CACI,GACF,uBAAuB,KAAK,KAAM,EAAU,EAAQ,EAAS,EAAK,EAAU,EAEhF,CACA,OAAO,CAjCC,CAkCV,EACA,WAAW,qBAAuB,SAAsC,EAAU,EAAQ,EAAS,GACjG,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,GAAI,EAAO,kBACT,OAAO,KAET,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC9D,IAAK,IAAI,KAAY,EACnB,uBAAuB,KAAK,KAAM,EAAU,EAAQ,EAAS,EAAK,EAAU,GAE9E,OAAO,CARC,CASV,EACA,WAAW,cAAgB,SAA+B,EAAU,EAAQ,EAAS,GACnF,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAS9D,OARW,OAAO,KAAK,GACZ,QAAU,EAAO,eAC1B,EAAO,SAAS,CACd,KAAM,gBACN,SAAU,EAAO,cACjB,QAAS,4CAA8C,EAAO,gBAG3D,CAVC,CAWV,EACA,WAAW,cAAgB,SAA+B,EAAU,EAAQ,EAAS,GACnF,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAS9D,OARW,OAAO,KAAK,GACZ,QAAU,EAAO,eAC1B,EAAO,SAAS,CACd,KAAM,gBACN,SAAU,EAAO,cACjB,QAAS,4CAA8C,EAAO,gBAG3D,CAVC,CAWV,EACA,WAAW,MAAQ,SAAuB,EAAU,EAAQ,EAAS,GACnE,IAAI,EAAQ,KACZ,GAAK,KAAK,MAAM,MAAM,SAED,IAAjB,EAAO,MAAX,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAuB9D,OAtBA,EAAS,OAAM,SAAS,EAAQ,GAC9B,GAAI,MAAM,QAAQ,EAAO,OACvB,IAAI,OAA4B,IAApB,EAAO,MAAM,GAAgB,EAAO,gBAAkB,EAAO,MAAM,QAE3E,EAAQ,EAAO,MAErB,QAAc,IAAV,EACF,OAAO,EAET,IAAc,IAAV,EAKF,OAJA,EAAO,SAAS,CACd,KAAM,QACN,QAAS,mCAEJ,EAET,IAAI,EAAM,EAAM,eAAe,EAAQ,EAAO,EAAS,EAAI,UAAU,EAAO,IAI5E,OAHI,EAAI,WAAa,EAAO,SAAS,KACnC,EAAO,SAAS,GAAK,EAAI,UAC3B,EAAO,aAAa,IACb,CACT,IACO,CAxBC,CAyBV,EACA,WAAW,SAAW,SAA0B,EAAU,EAAQ,EAAS,GACzE,IAAI,EAAQ,KACZ,GAAK,KAAK,MAAM,MAAM,SAEE,IAApB,EAAO,SAAX,CAEA,IAAK,UAAU,SAAS,EAAO,UAC7B,MAAM,IAAI,MAAM,8CAClB,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAY9D,OAPc,IAJF,EAAS,MAAK,SAAS,EAAQ,GAEzC,OAA6B,IADnB,EAAM,eAAe,EAAQ,EAAO,SAAU,EAAS,EAAI,UAAU,EAAO,SAAU,IACrF,OAAO,MACpB,KAEE,EAAO,SAAS,CACd,KAAM,WACN,SAAU,EAAO,SACjB,QAAS,+CAGN,CAfC,CAgBV,EACA,WAAW,QAAU,SAAyB,EAAU,EAAQ,EAAS,GACvE,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAkB9D,OAjBI,EAAO,mBAAgD,IAA5B,EAAO,iBAC9B,EAAW,EAAO,SACtB,EAAO,SAAS,CACd,KAAM,UACN,SAAU,EAAO,QACjB,QAAS,wBAA0B,EAAO,UAIxC,GAAY,EAAO,SACvB,EAAO,SAAS,CACd,KAAM,UACN,SAAU,EAAO,QACjB,QAAS,oCAAsC,EAAO,UAIrD,CAnBC,CAoBV,EACA,WAAW,QAAU,SAAyB,EAAU,EAAQ,EAAS,GACvE,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAkB9D,OAjBI,EAAO,mBAAgD,IAA5B,EAAO,iBAC9B,EAAW,EAAO,SACtB,EAAO,SAAS,CACd,KAAM,UACN,SAAU,EAAO,QACjB,QAAS,qBAAuB,EAAO,UAIrC,GAAY,EAAO,SACvB,EAAO,SAAS,CACd,KAAM,UACN,SAAU,EAAO,QACjB,QAAS,iCAAmC,EAAO,UAIlD,CAnBC,CAoBV,EACA,WAAW,iBAAmB,SAAkC,EAAU,EAAQ,EAAS,GACzF,GAAuC,kBAA5B,EAAO,kBAEb,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAS9D,OARY,EAAW,EAAO,kBAE5B,EAAO,SAAS,CACd,KAAM,mBACN,SAAU,EAAO,iBACjB,QAAS,iCAAmC,EAAO,mBAGhD,CAVC,CAWV,EACA,WAAW,iBAAmB,SAAkC,EAAU,EAAQ,EAAS,GACzF,GAAuC,kBAA5B,EAAO,kBAEb,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAS9D,OARY,EAAW,EAAO,kBAE5B,EAAO,SAAS,CACd,KAAM,mBACN,SAAU,EAAO,iBACjB,QAAS,8BAAgC,EAAO,mBAG7C,CAVC,CAWV,EACA,IAAI,+BAAiC,SAAyC,EAAU,EAAQ,EAAS,EAAK,EAAgB,GAC5H,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAqB,EAAO,GAChC,GAA0B,GAAtB,EACF,MAAM,IAAI,cAAc,EAAiB,mBAE3C,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAmB,UAAU,iBAAiB,GAC9C,EAAkB,UAAU,iBAAiB,GAC7C,EAAc,KAAK,IAAI,EAAkB,GACzC,EAAa,KAAK,IAAI,GAAI,GAQ9B,OAPI,KAAK,MAAM,EAAW,GAAc,KAAK,MAAM,EAAqB,IAAgB,GACtF,EAAO,SAAS,CACd,KAAM,EACN,SAAU,EACV,QAAS,EAAe,KAAK,UAAU,KAGpC,CAjBC,CAkBV,EAmHA,SAAS,WAAW,EAAG,EAAG,GACxB,IAAI,EAAG,EAAM,EAAE,OACf,IAAK,EAAI,EAAI,EAAQ,EAAI,EAAK,IAC5B,GAAI,UAAU,kBAAkB,EAAG,EAAE,IACnC,OAAO,EAGX,OAAO,CACT,CA1HA,WAAW,WAAa,SAA4B,EAAU,EAAQ,EAAS,GAC7E,OAAO,+BAA+B,KAAK,KAAM,EAAU,EAAQ,EAAS,EAAK,aAAc,uCACjG,EACA,WAAW,YAAc,SAA6B,EAAU,EAAQ,EAAS,GAC/E,OAAO,+BAA+B,KAAK,KAAM,EAAU,EAAQ,EAAS,EAAK,cAAe,qCAClG,EACA,WAAW,SAAW,SAA0B,EAAU,EAAQ,EAAS,GACzE,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAiB9D,YAhBiB,IAAb,IAA2C,IAApB,EAAO,SAChC,EAAO,SAAS,CACd,KAAM,WACN,QAAS,gBAEF,KAAK,MAAM,OAAO,IAAa,MAAM,QAAQ,EAAO,WAC7D,EAAO,SAAS,SAAQ,SAAS,QACY,IAAvC,sBAAsB,EAAU,IAClC,EAAO,SAAS,CACd,KAAM,WACN,SAAU,EACV,QAAS,qBAAuB,KAAK,UAAU,IAGrD,IAEK,CACT,EACA,WAAW,QAAU,SAAyB,EAAU,EAAQ,EAAS,GACvE,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAU,EAAO,QACrB,IACE,IAAI,EAAS,IAAI,OAAO,EAAS,IACnC,CAAE,MAAO,GACP,EAAS,IAAI,OAAO,EACtB,CAQA,OAPK,EAAS,MAAM,IAClB,EAAO,SAAS,CACd,KAAM,UACN,SAAU,EAAO,QACjB,QAAS,0BAA4B,KAAK,UAAU,EAAO,QAAQ,cAGhE,CAfC,CAgBV,EACA,WAAW,OAAS,SAAwB,EAAU,EAAQ,EAAS,GACrE,QAAiB,IAAb,EAAJ,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAQ9D,OAPK,EAAO,eAAkB,UAAU,SAAS,EAAU,EAAO,OAAQ,OACxE,EAAO,SAAS,CACd,KAAM,SACN,SAAU,EAAO,OACjB,QAAS,2BAA6B,KAAK,UAAU,EAAO,QAAU,YAGnE,CATC,CAUV,EACA,WAAW,UAAY,SAA2B,EAAU,EAAQ,EAAS,GAC3E,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAM,EAAS,MAAM,oBASzB,OARa,EAAS,QAAU,EAAM,EAAI,OAAS,IACnC,EAAO,WACrB,EAAO,SAAS,CACd,KAAM,YACN,SAAU,EAAO,UACjB,QAAS,mCAAqC,EAAO,YAGlD,CAXC,CAYV,EACA,WAAW,UAAY,SAA2B,EAAU,EAAQ,EAAS,GAC3E,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAM,EAAS,MAAM,oBASzB,OARa,EAAS,QAAU,EAAM,EAAI,OAAS,IACnC,EAAO,WACrB,EAAO,SAAS,CACd,KAAM,YACN,SAAU,EAAO,UACjB,QAAS,mCAAqC,EAAO,YAGlD,CAXC,CAYV,EACA,WAAW,SAAW,SAA0B,EAAU,EAAQ,EAAS,GACzE,GAAK,KAAK,MAAM,MAAM,GAAtB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAQ9D,OAPM,EAAS,QAAU,EAAO,UAC9B,EAAO,SAAS,CACd,KAAM,WACN,SAAU,EAAO,SACjB,QAAS,mCAAqC,EAAO,WAGlD,CATC,CAUV,EACA,WAAW,SAAW,SAA0B,EAAU,EAAQ,EAAS,GACzE,GAAK,KAAK,MAAM,MAAM,GAAtB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAQ9D,OAPM,EAAS,QAAU,EAAO,UAC9B,EAAO,SAAS,CACd,KAAM,WACN,SAAU,EAAO,SACjB,QAAS,mCAAqC,EAAO,WAGlD,CATC,CAUV,EAUA,WAAW,YAAc,SAA6B,EAAU,EAAQ,EAAS,GAC/E,IAA2B,IAAvB,EAAO,aAEN,KAAK,MAAM,MAAM,GAAtB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAO9D,OANK,EAAS,MAAM,aAClB,EAAO,SAAS,CACd,KAAM,cACN,QAAS,4BAGN,CARC,CASV,EACA,WAAW,aAAe,SAA8B,EAAU,EAAQ,EAAS,GACjF,GAAK,KAAK,MAAM,OAAO,GAAvB,CAEA,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC9D,IAAK,IAAI,KAAY,EAAO,aAC1B,QAA2B,IAAvB,EAAS,GAAb,CAGA,IAAI,EAAM,EAAO,aAAa,GAC1B,EAAe,EAAI,UAAU,EAAK,GAItC,GAHkB,iBAAP,IACT,EAAM,CAAC,IAEL,MAAM,QAAQ,GAChB,EAAI,SAAQ,SAAS,QACI,IAAnB,EAAS,IACX,EAAO,SAAS,CAGd,KAAM,eACN,SAAU,EAAa,aACvB,QAAS,YAAc,EAAO,2BAA6B,EAAa,cAG9E,QACK,CACL,IAAI,EAAM,KAAK,eAAe,EAAU,EAAK,EAAS,GAClD,EAAO,WAAa,EAAI,WAC1B,EAAO,SAAW,EAAI,UACpB,GAAO,EAAI,OAAO,SACpB,EAAO,SAAS,CACd,KAAM,eACN,SAAU,EAAa,aACvB,QAAS,wCAA0C,EAAa,eAElE,EAAO,aAAa,GAExB,CA9BA,CAgCF,OAAO,CArCC,CAsCV,EACA,WAAiB,KAAI,SAAsB,EAAU,EAAQ,EAAS,GACpE,QAAiB,IAAb,EACF,OAAO,KAET,IAAK,MAAM,QAAQ,EAAa,MAC9B,MAAM,IAAI,cAAc,wBAAyB,GAEnD,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAQ9D,OAPK,EAAa,KAAE,KAAK,UAAU,kBAAkB,KAAK,KAAM,KAC9D,EAAO,SAAS,CACd,KAAM,OACN,SAAU,EAAa,KACvB,QAAS,8BAAgC,EAAa,KAAE,IAAI,QAAQ,KAAK,OAGtE,CACT,EACA,WAAkB,MAAI,SAAuB,EAAU,EAAQ,EAAS,GACtE,QAAiB,IAAb,EACF,OAAO,KAET,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAQ9D,OAPK,UAAU,kBAAkB,EAAc,MAAG,IAChD,EAAO,SAAS,CACd,KAAM,QACN,SAAU,EAAc,MACxB,QAAS,6CAA+C,EAAc,QAGnE,CACT,EACA,WAAW,IAAM,WAAW,SAAW,SAAqB,EAAU,EAAQ,EAAS,GACrF,IAAI,EAAQ,KACZ,QAAiB,IAAb,EACF,OAAO,KACT,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC1D,EAAW,EAAO,KAAO,EAAO,SACpC,OAAK,GAEA,MAAM,QAAQ,KACjB,EAAW,CAAC,IACd,EAAS,SAAQ,SAAS,GACxB,GAAI,EAAM,SAAS,EAAU,EAAQ,EAAS,EAAK,GAAO,CACxD,IACI,EADK,IAAS,EAAK,KAAO,EAAK,KACd,EACrB,EAAO,SAAS,CACd,KAAM,MACN,SAAU,EACV,QAAS,yBAA2B,GAExC,CACF,IACO,GAdE,IAeX,EACA,IAAI,YAAc,YACd,KAAO,CAAC,EACR,SAAW,IACX,UAAY,UAEhB,SAAS,iBAAiB,EAAO,GAC/B,KAAK,GAAK,EACV,KAAK,IAAM,CACb,CAJA,KAAK,iBAAmB,iBAKxB,KAAK,KAAO,SAAe,EAAM,GAC/B,SAAS,EAAY,EAAS,GAC5B,GAAK,GAA6B,iBAAX,EAEvB,GAAI,EAAQ,KAAZ,CACE,IAAI,EAAc,SAAS,QAAQ,EAAS,EAAQ,MACpD,EAAI,GAAe,EAAI,GAAe,EAAI,GAAe,EAAI,CAE/D,KAJA,CAKA,IAAI,EAAK,EAAQ,KAAO,EAAQ,GAC5B,EAAU,EAAK,SAAS,QAAQ,EAAS,GAAM,EACnD,GAAI,EAAS,CAGX,GAFI,EAAQ,QAAQ,KAAO,IACzB,GAAW,KACT,EAAM,GAAU,CAClB,IAAK,UAAU,kBAAkB,EAAM,GAAU,GAC/C,MAAM,IAAI,MAAM,WAAa,EAAU,8CAEzC,OAAO,EAAM,EACf,CACA,EAAM,GAAW,EACkB,KAA/B,EAAQ,EAAQ,OAAS,KAC3B,EAAM,EAAQ,UAAU,EAAG,EAAQ,OAAS,IAAM,EAEtD,CACA,EAAU,EAAU,SAAU,MAAM,QAAQ,EAAQ,OAAS,EAAQ,MAAQ,CAAC,EAAQ,QACtF,EAAU,EAAU,WAAY,MAAM,QAAQ,EAAQ,SAAW,EAAQ,QAAU,CAAC,EAAQ,UAC5F,EAAY,EAAU,mBAAoB,EAAQ,iBAClD,EAAW,EAAU,cAAe,EAAQ,YAC5C,EAAY,EAAU,wBAAyB,EAAQ,sBACvD,EAAW,EAAU,eAAgB,EAAQ,aAC7C,EAAW,EAAU,qBAAsB,EAAQ,mBACnD,EAAW,EAAU,gBAAiB,EAAQ,cAC9C,EAAU,EAAU,YAAa,EAAQ,UACzC,EAAU,EAAU,SAAU,EAAQ,OACtC,EAAU,EAAU,SAAU,EAAQ,OACtC,EAAU,EAAU,SAAU,EAAQ,OACtC,EAAY,EAAU,OAAQ,EAAQ,IA7BtC,CA8BF,CACA,SAAS,EAAU,EAAS,GAC1B,GAAK,MAAM,QAAQ,GAEnB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAClC,EAAY,EAAU,IAAM,EAAG,EAAQ,GAE3C,CACA,SAAS,EAAW,EAAS,GAC3B,GAAK,GAA6B,iBAAX,EAEvB,IAAK,IAAI,KAAK,EACZ,EAAY,EAAU,IAAM,EAAG,EAAQ,GAE3C,CACA,IAAI,EAAQ,CAAC,EACT,EAAM,CAAC,EAEX,OADA,EAAY,EAAM,GACX,IAAI,iBAAiB,EAAO,EACrC,EACA,IAAI,OAAS,IACT,UAAY,YACZ,QAAU,UACV,WAAa,KAAK,KAClB,kBAAoB,QAAQ,gBAC5B,uBAAyB,QAAQ,qBACjC,aAAe,QAAQ,YACvB,eAAiB,QAAQ,cACzB,cAAgB,IAChB,YAAc,SAAS,IACzB,KAAK,cAAgB,OAAO,OAAO,EAAU,UAAU,eACvD,KAAK,QAAU,CAAC,EAChB,KAAK,eAAiB,GACtB,KAAK,MAAQ,OAAO,OAAO,OAC3B,KAAK,WAAa,OAAO,OAAO,UAAU,WAC5C,EA6EA,SAAS,cAAc,GACrB,IAAI,EAAwB,iBAAX,EAAsB,EAAS,EAAO,KACvD,MAAkB,iBAAP,GACF,CAEX,CAjFA,YAAY,UAAU,cAAgB,CAAC,EACvC,YAAY,UAAU,QAAU,KAChC,YAAY,UAAU,MAAQ,KAC9B,YAAY,UAAU,WAAa,KACnC,YAAY,UAAU,eAAiB,KACvC,YAAY,UAAU,UAAY,SAAmB,EAAQ,GAC3D,IAAI,EAAQ,KACZ,IAAK,EACH,OAAO,KAET,IAAI,EAAQ,WAAW,GAAQ,cAAe,GAC1C,EAAS,GAAQ,EAAO,KAAO,EAAO,GAC1C,IAAK,IAAI,KAAQ,EAAM,GACrB,KAAK,QAAQ,GAAQ,EAAM,GAAG,GAEhC,IAAK,IAAI,KAAQ,EAAM,IACrB,KAAK,eAAe,KAAK,GAK3B,OAHA,KAAK,eAAiB,KAAK,eAAe,QAAO,SAAS,GACxD,YAAsC,IAAxB,EAAM,QAAQ,EAC9B,IACO,KAAK,QAAQ,EACtB,EACA,YAAY,UAAU,kBAAoB,SAA2B,EAAS,GAC5E,GAAK,MAAM,QAAQ,GAEnB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAClC,KAAK,aAAa,EAAS,EAAQ,GAEvC,EACA,YAAY,UAAU,mBAAqB,SAA4B,EAAS,GAC9E,GAAK,GAA6B,iBAAX,EAEvB,IAAK,IAAI,KAAK,EACZ,KAAK,aAAa,EAAS,EAAQ,GAEvC,EACA,YAAY,UAAU,WAAa,SAAoB,GACrD,KAAK,QAAU,CACjB,EACA,YAAY,UAAU,UAAY,SAAmB,GACnD,OAAO,KAAK,QAAQ,EACtB,EACA,YAAY,UAAU,SAAW,SAAkB,EAAU,EAAQ,EAAS,GAC5E,GAAsB,kBAAX,GAA0C,iBAAX,GAAkC,OAAX,EAC/D,MAAM,IAAI,aAAa,gDAEpB,IACH,EAAU,CAAC,GAEb,IAkBI,EAlBA,EAAK,EAAO,KAAO,EAAO,GAC1B,EAAO,OAAO,QAAQ,EAAQ,MAAQ,cAAe,GAAM,IAC/D,IAAK,EAAK,EACR,EAAM,IAAI,eAAe,EAAQ,EAAS,GAAI,EAAM,OAAO,OAAO,KAAK,WAC9D,QAAQ,KACf,EAAI,QAAQ,GAAQ,GAEtB,IAAI,EAAQ,WAAW,EAAM,GAC7B,IAAK,IAAI,KAAK,EAAM,GAAI,CACtB,IAAI,EAAM,EAAM,GAAG,GACnB,EAAI,QAAQ,GAAK,CACnB,CACF,CACA,GAAI,EAAQ,eAAyB,IAAb,EAGtB,OAFI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,IACvD,SAAS,iCACT,EAGT,KADI,EAAS,KAAK,eAAe,EAAU,EAAQ,EAAS,IAE1D,MAAM,IAAI,MAAM,oBACX,GAAI,EAAQ,UAAY,EAAO,OAAO,OAC3C,MAAM,IAAI,uBAAuB,GAEnC,OAAO,CACT,EAOA,YAAY,UAAU,eAAiB,SAAwB,EAAU,EAAQ,EAAS,GACxF,IAAI,EAAS,IAAI,kBAAkB,EAAU,EAAQ,EAAS,GAC9D,GAAsB,kBAAX,GACM,IAAX,EACF,EAAS,CAAC,GACU,IAAX,IACT,EAAS,CAAE,KAAM,UAEd,IAAK,EACV,MAAM,IAAI,MAAM,uBAElB,GAAI,EAAgB,QAClB,GAAI,MAAM,QAAQ,EAAgB,SAAI,CACpC,IAAI,EAAY,CAAE,SAAQ,OAC1B,EAAgB,QAAE,QAAQ,KAAK,gBAAgB,KAAK,KAAM,IAC1D,EAAS,EAAU,OACnB,EAAU,OAAS,KACnB,EAAU,IAAM,KAChB,EAAY,IACd,MACE,EAAS,QAAQ,UAAU,EAAQ,KAAK,aAAa,EAAgB,QAAG,IAG5E,IAAI,EAAe,cAAc,GACjC,GAAI,EAAc,CAChB,IAAI,EAAW,KAAK,QAAQ,EAAQ,EAAc,GAC9C,EAAS,IAAI,eAAe,EAAS,UAAW,EAAS,EAAI,KAAM,EAAS,aAAc,EAAI,SAClG,OAAO,KAAK,eAAe,EAAU,EAAS,UAAW,EAAS,EACpE,CACA,IAAI,EAAiB,GAAW,EAAQ,gBAAkB,GAC1D,IAAK,IAAI,KAAO,EACd,IAAK,UAAU,iBAAiB,IAAQ,EAAe,QAAQ,GAAO,EAAG,CACvE,IAAI,EAAe,KACf,EAAa,KAAK,WAAW,GACjC,GAAI,EACF,EAAe,EAAW,KAAK,KAAM,EAAU,EAAQ,EAAS,QAC3D,IAAuC,IAAnC,EAAQ,uBACjB,MAAM,IAAI,aAAa,0BAA4B,EAAK,GAEtD,GACF,EAAO,aAAa,EAExB,CAEF,GAA8B,mBAAnB,EAAQ,QAAuB,CACxC,IAAI,EAAS,EAAQ,QAAQ,KAAK,KAAM,EAAU,EAAQ,EAAS,GACnE,EAAO,SAAW,CACpB,CACA,OAAO,CACT,EACA,YAAY,UAAU,gBAAkB,SAAyB,EAAW,GAC1E,EAAU,OAAS,QAAQ,UAAU,EAAU,OAAQ,KAAK,aAAa,EAAG,EAAU,KACxF,EACA,YAAY,UAAU,aAAe,SAAsB,EAAQ,GACjE,IAAI,EAAM,cAAc,GACxB,OAAI,EACK,KAAK,QAAQ,EAAQ,EAAK,GAAK,UAEjC,CACT,EACA,YAAY,UAAU,QAAU,SAAkB,EAAQ,EAAc,GAEtE,GADA,EAAe,EAAI,QAAQ,GACvB,EAAI,QAAQ,GACd,MAAO,CAAE,UAAW,EAAI,QAAQ,GAAe,gBAEjD,IAAI,EAAS,OAAO,MAAM,GACtB,EAAW,GAAU,EAAO,KAC5B,EAAY,GAAY,EAAS,QAAU,EAAa,OAAO,EAAG,EAAa,OAAS,EAAS,QACrG,IAAK,IAAc,EAAI,QAAQ,GAC7B,MAAM,IAAI,aAAa,mBAAqB,EAAe,IAAK,GAElE,IAAI,EAAY,QAAQ,cAAc,EAAI,QAAQ,GAAY,EAAS,OAAO,IAC9E,QAAkB,IAAd,EACF,MAAM,IAAI,aAAa,kBAAoB,EAAW,gBAAkB,EAAY,IAAK,GAE3F,MAAO,CAAE,YAAW,eACtB,EACA,YAAY,UAAU,SAAW,SAAuB,EAAU,EAAQ,EAAS,EAAK,GACtF,QAAa,IAAT,EAAJ,CAEO,GAAa,OAAT,EACT,MAAM,IAAI,aAAa,qCAEzB,GAA+B,mBAApB,KAAK,MAAM,GACpB,OAAO,KAAK,MAAM,GAAM,KAAK,KAAM,GAErC,GAAI,GAAuB,iBAAR,EAAkB,CACnC,IAAI,EAAM,KAAK,eAAe,EAAU,EAAM,EAAS,GACvD,YAAe,IAAR,KAAoB,GAAO,EAAI,OAAO,OAC/C,CACA,OAAO,CARP,CASF,EACA,IAAI,MAAQ,YAAY,UAAU,MAAQ,CAAC,EAC3C,MAAM,OAAS,SAAoB,GACjC,MAA0B,iBAAZ,CAChB,EACA,MAAM,OAAS,SAAoB,GACjC,MAA0B,iBAAZ,GAAwB,SAAS,EACjD,EACA,MAAM,QAAU,SAAqB,GACnC,MAA0B,iBAAZ,GAAwB,EAAW,GAAM,CACzD,EACA,MAAM,QAAU,SAAqB,GACnC,MAA0B,kBAAZ,CAChB,EACA,MAAM,MAAQ,SAAmB,GAC/B,OAAO,MAAM,QAAQ,EACvB,EACA,MAAY,KAAI,SAAkB,GAChC,OAAoB,OAAb,CACT,EACA,MAAM,KAAO,SAAkB,GAC7B,OAAO,aAAoB,IAC7B,EACA,MAAM,IAAM,SAAiB,GAC3B,OAAO,CACT,EACA,MAAM,OAAS,SAAoB,GACjC,OAAO,GAAgC,iBAAb,IAA0B,MAAM,QAAQ,MAAe,aAAoB,KACvG,EACA,IAAI,UAAY,YACZ,WAAa,UACjB,UAAU,gBACV,UAAU,qBACV,UAAU,gBACV,UAAU,YACV,IAAI,UAAY,SAAS,EAAU,EAAQ,GAEzC,OADQ,IAAI,YACH,SAAS,EAAU,EAAQ,EACtC,EACI,cAAgB,SAAS,EAAG,GAQ9B,OAPA,cAAgB,OAAO,gBAAkB,CAAE,UAAW,cAAgB,OAAS,SAAS,EAAI,GAC1F,EAAG,UAAY,CACjB,GAAK,SAAS,EAAI,GAChB,IAAK,IAAI,KAAK,EACR,OAAO,UAAU,eAAe,KAAK,EAAI,KAC3C,EAAG,GAAK,EAAG,GACjB,GACqB,EAAG,EAC1B,EACA,SAAS,UAAU,EAAG,GACpB,GAAiB,mBAAN,GAA0B,OAAN,EAC7B,MAAM,IAAI,UAAU,uBAAyB,OAAO,GAAK,iCAE3D,SAAS,IACP,KAAK,YAAc,CACrB,CAHA,cAAc,EAAG,GAIjB,EAAE,UAAkB,OAAN,EAAa,OAAO,OAAO,IAAM,EAAG,UAAY,EAAE,UAAW,IAAI,EACjF,CACA,IAAI,iBAAmB,SAA0B,EAAS,EAAU,EAAQ,EAAM,EAAM,GAYtF,GAXI,MAAM,QAAQ,IAChB,KAAK,KAAO,EACZ,KAAK,SAAW,EAAK,QAAO,SAAS,EAAK,GACxC,OAAO,EAAM,YAAY,EAC3B,GAAG,kBACe,IAAT,IACT,KAAK,SAAW,GAEd,IACF,KAAK,QAAU,GAEb,EAAQ,CACV,IAAI,EAAK,EAAO,KAAO,EAAO,GAC9B,KAAK,OAAS,GAAM,CACtB,MACiB,IAAb,IACF,KAAK,SAAW,GAElB,KAAK,KAAO,EACZ,KAAK,SAAW,EAChB,KAAK,MAAQ,KAAK,UACpB,EACA,iBAAiB,UAAU,SAAW,WACpC,OAAO,KAAK,SAAW,IAAM,KAAK,OACpC,EACA,IAAI,iBAAmB,SAA0B,EAAU,EAAQ,EAAS,GAC1E,KAAK,SAAW,EAChB,KAAK,OAAS,EACd,KAAK,QAAU,EACf,KAAK,KAAO,EAAI,KAChB,KAAK,aAAe,EAAI,aACxB,KAAK,OAAS,GACd,KAAK,WAAa,GAAW,EAAQ,WACrC,KAAK,WAAa,GAAW,EAAQ,WACrC,KAAK,SAAW,GAAW,EAAQ,SACnC,KAAK,cAAgB,IAAqC,IAA1B,EAAQ,aAC1C,EA6BA,SAAS,WAAW,EAAG,GACrB,OAAO,EAAI,KAAO,EAAE,WAAa,IACnC,CAOA,SAAS,qBAAqB,GACxB,MAAM,mBACR,MAAM,kBAAkB,KAAM,sBAEhC,KAAK,SAAW,EAAO,SACvB,KAAK,OAAS,EAAO,OACrB,KAAK,QAAU,EAAO,QACtB,KAAK,OAAS,EAAO,MACvB,CA7CA,iBAAiB,UAAU,SAAW,SAAmB,GACvD,IAAI,EACJ,GAAqB,iBAAV,EACT,EAAM,IAAI,iBAAiB,EAAQ,KAAK,SAAU,KAAK,OAAQ,KAAK,UAC/D,CACL,IAAK,EACH,MAAM,IAAI,MAAM,wBAClB,IAAK,EAAO,QACV,MAAM,IAAI,MAAM,yBAClB,IAAK,EAAO,KACV,MAAM,IAAI,MAAM,0BAClB,EAAM,IAAI,iBAAiB,EAAO,QAAS,KAAK,SAAU,KAAK,OAAQ,KAAK,KAAM,EAAO,KAAM,EAAO,SACxG,CAEA,GADA,KAAK,OAAO,KAAK,GACb,KAAK,WACP,MAAM,IAAI,qBAAqB,MAC1B,GAAI,KAAK,WACd,MAAM,EAER,OAAO,CACT,EACA,iBAAiB,UAAU,aAAe,SAAuB,GAC7C,iBAAP,GAAmB,GAAO,EAAI,cACvC,KAAK,SAAS,GACL,GAAO,EAAI,SACpB,KAAK,OAAS,KAAK,OAAO,OAAO,EAAI,QAEzC,EAIA,iBAAiB,UAAU,SAAW,SAAmB,GACvD,OAAO,KAAK,OAAO,IAAI,YAAY,KAAK,GAC1C,EACA,OAAO,eAAe,iBAAiB,UAAW,QAAS,CAAE,IAAK,WAChE,OAAQ,KAAK,OAAO,MACtB,IAUA,qBAAqB,UAAY,IAAI,MACrC,qBAAqB,UAAU,YAAc,qBAC7C,qBAAqB,UAAU,KAAO,mBACtC,IAAI,YAAc,SAAqB,GAErC,OADA,EAAM,EAAI,YACD,MAAM,cAAiB,EAAI,MAAM,SAGtC,EAAI,MAAM,SACL,IAAM,EAAM,IAEd,IAAM,KAAK,UAAU,GAAO,IAL1B,IAAM,CAMjB,EACI,mBAAqB,SAAS,EAAmB,EAAG,GACtD,UAAW,UAAa,EACtB,OAAO,EAET,GAAI,MAAM,QAAQ,GAChB,QAAK,MAAM,QAAQ,KAGf,EAAE,SAAW,EAAE,QAGZ,EAAE,OAAM,SAAS,EAAG,GACzB,OAAO,EAAmB,EAAE,GAAI,EAAE,GACpC,KAEF,GAAiB,iBAAN,EAAgB,CACzB,IAAK,IAAM,EACT,OAAO,IAAM,EAEf,IAAI,EAAQ,OAAO,KAAK,GACpB,EAAQ,OAAO,KAAK,GACxB,OAAI,EAAM,SAAW,EAAM,QAGpB,EAAM,OAAM,SAAS,GAC1B,OAAO,EAAmB,EAAE,GAAI,EAAE,GACpC,GACF,CACA,OAAO,IAAM,CACf,EACI,qBAEF,SAAS,GAEP,SAAS,EAAsB,EAAS,EAAQ,GAC9C,IAAI,EAAQ,EAAO,KAAK,KAAM,4DAA4D,OAAO,EAAS,QAAU,KAQpH,OAPA,EAAM,QAAU,EAChB,EAAM,OAAS,EACf,EAAM,QAAU,EACZ,MAAM,mBACR,MAAM,kBAAkB,EAAO,GAEjC,EAAM,KAAO,uBACN,CACT,CACA,OAZA,UAAU,EAAuB,GAY1B,CACT,CAhByB,CAgBvB,OAEA,oBAEF,SAAS,GAEP,SAAS,EAAqB,EAAS,EAAQ,GAC7C,IAAI,EAAQ,EAAO,KAAK,KAAM,4BAA4B,OAAO,EAAS,6CAA+C,KAQzH,OAPA,EAAM,QAAU,EAChB,EAAM,OAAS,EACf,EAAM,UAAY,EACd,MAAM,mBACR,MAAM,kBAAkB,EAAO,GAEjC,EAAM,KAAO,sBACN,CACT,CACA,OAZA,UAAU,EAAsB,GAYzB,CACT,CAhBwB,CAgBtB,OAEA,SAEF,WACE,SAAS,IACP,KAAK,QAAU,EACf,KAAK,eAAiB,CAAC,CACzB,CA+EA,OA9EA,EAAU,UAAU,WAAa,WAC/B,OAAO,KAAK,SACd,EACA,EAAU,UAAU,SAAW,SAAS,EAAS,GAC/C,IAAI,GAAS,EACR,KAAK,eAAe,KACvB,GAAS,EACT,KAAK,eAAe,GAAW,CAAC,GAElC,IAAI,EAAa,KAAK,eAAe,GAAS,SAC9C,GAAI,IAAe,mBAAmB,EAAY,GAChD,MAAM,IAAI,oBAAoB,EAAS,EAAY,GAGrD,OADA,KAAK,eAAe,GAAS,SAAW,EACjC,CACT,EACA,EAAU,UAAU,WAAa,SAAS,GACxC,IAAI,EAAgB,KAAK,eAAe,GACpC,GAAS,EAKb,OAJI,GAAiB,EAAc,WACjC,GAAS,SACF,EAAc,UAEhB,CACT,EACA,EAAU,UAAU,UAAY,SAAS,EAAS,EAAQ,GACxD,IAAI,EAAK,KAAK,aACV,EAA2B,kBAAX,GAAuB,EACvC,EAA6B,mBAAX,EAAwB,EAAS,EACvD,GAAwB,mBAAb,EACT,MAAM,IAAI,MAAM,8EAClB,IAAI,EAAgB,KAAK,eAAe,GAMxC,OALK,EAEI,GACP,EAAS,CAAE,UAAS,QAAS,EAAc,WAF3C,EAAgB,KAAK,eAAe,GAAW,CAAC,EAGlD,EAAc,GAAM,EACb,CACL,YAAa,WACX,cAAc,EAAc,EAC9B,EAEJ,EACA,EAAU,UAAU,QAAU,SAAS,EAAS,GAC9C,IAAI,EAAgB,KAAK,eAAe,GACnC,IACH,EAAgB,KAAK,eAAe,GAAW,CAAC,GAClD,IAAI,EAAS,EAAc,SAC3B,QAAuB,IAAZ,GAA2B,IAAW,UAAU,EAAS,GAAQ,MAC1E,MAAM,IAAI,qBAAqB,EAAS,EAAQ,GAGlD,IAAK,IAAI,KADT,EAAc,SAAW,EACV,EACF,aAAP,GAA4B,aAAP,GAEQ,mBAAtB,EAAc,IAEzB,EAAc,GAAI,CAAE,UAAS,YAG/B,GADA,EAAgB,KAAK,eAAe,KAElC,IAAK,IAAI,KAAM,EACF,aAAP,GAA4B,aAAP,GAEQ,mBAAtB,EAAc,IAEzB,EAAc,GAAI,CAAE,UAAS,WAGnC,EACA,EAAU,UAAU,UAAY,SAAS,GACvC,GAAI,KAAK,eAAe,GACtB,OAAO,KAAK,eAAe,GAAS,QACxC,EACA,EAAU,UAAU,UAAY,SAAS,GACvC,GAAI,KAAK,eAAe,GACtB,OAAO,KAAK,eAAe,GAAS,QACxC,EACO,CACT,CAtFa,GAwFX,UAAY,WACd,GAAoB,oBAAT,KACT,OAAO,KAET,GAAsB,oBAAX,OACT,OAAO,OAET,GAAsB,oBAAX,OACT,OAAO,OAET,MAAM,IAAI,MAAM,iCAClB,EACA,YAAY,SAAW,IAAI,SAC3B,MAAM,IAAM,IAAI,SACV,MAAQ,GACR,UAAa,GAAa,IAAI,UAAU,QAAS,GACjD,SAAW,CAAC,EAAc,CAC9B,KAAM,UACF,IAAI,SAAS,QAAS,GACtB,QAAW,IACf,MAAM,KAAK,GACX,IAAI,QAAQ,QAAS,EAAQ,EAEzB,SAAW,CACf,oBACA,kBACA,gBACA,MAAO,IAAM,OAET,MAAQ,GACR,QAAU,CAAC,EACjB,SAAS,cAAc,GACrB,OAAQ,IACN,SAAS,QAAQ,CACf,GAAI,GAAG,KAAK,cACT,GACH,CAEN,CACA,SAAS,YAAY,GACnB,MAIM,EAAQ,CAAC,EAJI,CACjB,aACA,cAGS,SAAS,GAAa,EAAM,GAAY,kBAAkB,KAAY,OACjF,MAAM,6BAA6B,MAAS,KAAK,UAAU,MAC3D,SAAS,WACT,QAAQ,GAAQ,eAClB,CACA,SAAS,oBAAoB,EAAM,GACjC,OAAO,QAAQ,GAAM,EACvB,CACA,SAAS,oBAGP,OAFA,YAAY,WACZ,YAAY,SACL,CACL,QAAS,QAAQ,QACjB,MAAO,QAAQ,MACf,wBACA,QAAS,oBAEb,CACA,MAAM,aACJ,WAAA,GACE,KAAK,OAAS,EAChB,CACA,cAAA,CAAe,GACb,KAAK,OAAS,SAAS,QACvB,MAAM,wCAAwC,KAAK,SACrD,CACA,UAAA,CAAW,EAAU,GACnB,MAAM,EAAO,gBAAgB,CAC3B,WACA,CACE,EACA,eAEF,GAAa,KAGf,OADA,MAAM,kCAAkC,KACjC,CACL,OAEJ,CACA,SAAA,GACE,OAAO,KAAK,MACd,CACA,SAAA,GAEE,OADA,MAAM,0BACC,SAAS,UAAU,KAAK,eACjC,EAEF,MAAM,aAAe,IAAI,aACnB,UAAY,SAAmB,EAAO,GAC1C,OAAO,aAAa,WAAW,EAAM,SAAU,EAAM,OAAS,EAAM,UACtE,EACM,OAAS,SAAiB,EAAO,GACrC,OAAO,aAAa,WACtB,EACM,MAAwB,aAA6B,YAAY,IACrE,MAAM,EAAS,SAAS,CACtB,kBAAmB,OAUrB,OARA,kBAAkC,YAAW,KAC3C,MAAO,GAAW,kBACd,EAAQ,oBAEZ,EAAQ,kBAAoB,aAAa,YAAW,GACnD,6CAA8C,CAC/C,KAEqB,MAAM,MAAO,CAClC,MAAO,YAAY,UAAU,GAAQ,SACpC,KAAM,EACN,UAAY,IAAI,KAAI,SAAS,GAC5B,OAAuB,MAAM,MAAO,KAAM,KAAM,YAAY,EAAQ,WAAY,EAAG,OACrF,IACgB,MAAM,KAAM,KAAM,EAAG,SACpC,EAAG,OAAO,GACZ,gCACG,OAAS,GACf,MAAM,cACJ,UAAA,CAAW,EAAU,EAAO,EAAK,EAAI,EAAG,EAAG,EAAG,EAAI,EAAK,GAUrD,MAAO,CACL,KAVW,gBAAgB,CAC3B,YACA,CACE,EACA,uBAEF,qBAAqB,EAAO,EAAK,EAAI,EAAG,EAAG,EAAG,EAAI,EAAK,eACvD,GAAa,KAKjB,EAEF,MAAM,cAAgB,IAAI,cACpB,UAAY,SAAmB,EAAO,GAC1C,OAAO,cAAc,WAAW,EAAM,WAAY,EAAO,EAAM,MAAO,EAAM,IAAK,EAAM,GAAI,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,GAAI,EAAM,IAAK,EAAM,MACnJ,EACM,OAAyB,aAA6B,YAAY,GAC/C,MAAM,MAAO,CAClC,MAAO,YAAY,UAAU,GAAQ,SACpC,KAAsB,MAAM,KAAM,KAAM,EAAG,QAAS,EAAG,SACzD,iCACG,UAAY,GAClB,MAAM,iBACJ,UAAA,CAAW,EAAU,EAAO,GAa1B,MAAO,CACL,KAbW,gBAAgB,CAC3B,eACA,CACE,EACA,uBAEF,CACE,EACA,uBAEF,GAAa,KAKjB,EAEF,MAAM,iBAAmB,IAAI,iBACvB,UAAY,SAAmB,EAAO,GAC1C,OAAO,iBAAiB,WAAW,EAAM,WAAY,EAAO,EAAM,MAAO,EAAM,OAAS,EAAM,UAChG,EACM,UAA4B,aAA6B,YAAY,GAClD,MAAM,MAAO,CAClC,MAAO,YAAY,UAAU,GAAQ,SACpC,KAAsB,MAAM,KAAM,KAAM,EAAG,QAAS,EAAG,SACzD,oCACG,IAAM,GACZ,MAAM,WACJ,UAAA,CAAW,EAAO,EAAK,EAAI,EAAG,EAAG,EAAG,EAAI,EAAK,GAM3C,MAAO,CACL,KANW,gBAAgB,CAC3B,SACA,qBAAqB,EAAO,EAAK,EAAI,EAAG,EAAG,EAAG,EAAI,EAAK,YACvD,GAAa,KAKjB,EAEF,MAAM,WAAa,IAAI,WACjB,QAAU,SAAmB,EAAO,GACxC,OAAO,WAAW,WAAW,EAAM,MAAO,EAAM,IAAK,EAAM,GAAI,EAAM,EAAG,EAAM,EAAG,EAAM,EAAG,EAAM,GAAI,EAAM,IAAK,EAAM,MACvH,EACM,IAAsB,aAA6B,YAAY,GAC5C,MAAM,MAAO,CAClC,MAAO,YAAY,QAAQ,GAAQ,SAClC,KAAsB,MAAM,KAAM,KAAM,EAAG,QAAS,EAAG,SACzD,8BACH,YAAY,SAAS,MACrB,WAAW,SACX,+BAEE,OACA,OACA,KACA,OACA,UACA,WACA,OACA,KACA,IACA,QACA,MACA,gBACA,YACA,WACA,cACA,kBACA","file":"/npm/@papanasi/qwik@1.1.2/lib/index.qwik.mjs","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@papanasi/qwik@1.1.2/lib/index.qwik.mjs\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { componentQrl, inlinedQrl, useStore, useTaskQrl, useLexicalScope, _jsxQ, _wrapSignal, _fnSignal, _jsxC, Slot, useSignal, noSerialize, _jsxBranch, useVisibleTaskQrl } from \"@builder.io/qwik\";\nlet Breakpoint;\n(function(Breakpoint2) {\n  Breakpoint2[\"Basic\"] = \"basic\";\n  Breakpoint2[\"XXS\"] = \"xxs\";\n  Breakpoint2[\"XS\"] = \"xs\";\n  Breakpoint2[\"S\"] = \"s\";\n  Breakpoint2[\"M\"] = \"m\";\n  Breakpoint2[\"L\"] = \"l\";\n  Breakpoint2[\"XL\"] = \"xl\";\n  Breakpoint2[\"XXL\"] = \"xxl\";\n})(Breakpoint || (Breakpoint = {}));\nconst breakpoints = Object.entries(Breakpoint).map(([key, value3]) => ({\n  key,\n  value: value3\n}));\nlet Intent;\n(function(Intent2) {\n  Intent2[\"None\"] = \"\";\n  Intent2[\"Info\"] = \"info\";\n  Intent2[\"Success\"] = \"warning\";\n  Intent2[\"Warning\"] = \"success\";\n  Intent2[\"Error\"] = \"error\";\n})(Intent || (Intent = {}));\nObject.entries(Intent).map(([key, value3]) => ({\n  key,\n  value: value3\n}));\nlet Variant;\n(function(Variant2) {\n  Variant2[\"Basic\"] = \"\";\n  Variant2[\"Primary\"] = \"primary\";\n  Variant2[\"Secondary\"] = \"secondary\";\n  Variant2[\"Tertiary\"] = \"tertiary\";\n})(Variant || (Variant = {}));\nObject.entries(Variant).map(([key, value3]) => ({\n  key,\n  value: value3\n}));\nfunction isObject(obj) {\n  return obj !== null && typeof obj === \"object\" && \"constructor\" in obj && obj.constructor === Object;\n}\nfunction extend(target = {}, src = {}) {\n  Object.keys(src).forEach((key) => {\n    if (typeof target[key] === \"undefined\")\n      target[key] = src[key];\n    else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n      extend(target[key], src[key]);\n    }\n  });\n}\nconst ssrDocument = {\n  body: {},\n  addEventListener() {\n  },\n  removeEventListener() {\n  },\n  activeElement: {\n    blur() {\n    },\n    nodeName: \"\"\n  },\n  querySelector() {\n    return null;\n  },\n  querySelectorAll() {\n    return [];\n  },\n  getElementById() {\n    return null;\n  },\n  createEvent() {\n    return {\n      initEvent() {\n      }\n    };\n  },\n  createElement() {\n    return {\n      children: [],\n      childNodes: [],\n      style: {},\n      setAttribute() {\n      },\n      getElementsByTagName() {\n        return [];\n      }\n    };\n  },\n  createElementNS() {\n    return {};\n  },\n  importNode() {\n    return null;\n  },\n  location: {\n    hash: \"\",\n    host: \"\",\n    hostname: \"\",\n    href: \"\",\n    origin: \"\",\n    pathname: \"\",\n    protocol: \"\",\n    search: \"\"\n  }\n};\nfunction getDocument() {\n  const doc = typeof document !== \"undefined\" ? document : {};\n  extend(doc, ssrDocument);\n  return doc;\n}\nconst ssrWindow = {\n  document: ssrDocument,\n  navigator: {\n    userAgent: \"\"\n  },\n  location: {\n    hash: \"\",\n    host: \"\",\n    hostname: \"\",\n    href: \"\",\n    origin: \"\",\n    pathname: \"\",\n    protocol: \"\",\n    search: \"\"\n  },\n  history: {\n    replaceState() {\n    },\n    pushState() {\n    },\n    go() {\n    },\n    back() {\n    }\n  },\n  CustomEvent: function CustomEvent() {\n    return this;\n  },\n  addEventListener() {\n  },\n  removeEventListener() {\n  },\n  getComputedStyle() {\n    return {\n      getPropertyValue() {\n        return \"\";\n      }\n    };\n  },\n  Image() {\n  },\n  Date() {\n  },\n  screen: {},\n  setTimeout() {\n  },\n  clearTimeout() {\n  },\n  matchMedia() {\n    return {};\n  },\n  requestAnimationFrame(callback) {\n    if (typeof setTimeout === \"undefined\") {\n      callback();\n      return null;\n    }\n    return setTimeout(callback, 0);\n  },\n  cancelAnimationFrame(id) {\n    if (typeof setTimeout === \"undefined\") {\n      return;\n    }\n    clearTimeout(id);\n  }\n};\nfunction getWindow() {\n  const win = typeof window !== \"undefined\" ? window : {};\n  extend(win, ssrWindow);\n  return win;\n}\nfunction wait(ms = 10) {\n  return new Promise((resolve3) => setTimeout(resolve3, ms));\n}\nfunction getBreakpointClasses(basic, xxs, xs, s, m, l, xl, xxl, prefix = \"\") {\n  const props = {\n    basic,\n    xxs,\n    xs,\n    s,\n    m,\n    l,\n    xl,\n    xxl\n  };\n  const usedBreakpoints = Object.entries(props).filter(([key]) => breakpoints.find((x) => x.value === key)).filter((x) => x[0] && x[1] !== \"\" && x[1] !== null && x[1] !== void 0);\n  const breakpointsClasses = usedBreakpoints.map(([key, value3]) => prefix + value3 + \"@\" + key);\n  return \" \" + breakpointsClasses.join(\" \");\n}\nfunction checkBreakpoints() {\n  const window2 = getWindow();\n  const document2 = getDocument();\n  const styles = window2.getComputedStyle(document2.documentElement);\n  const medias = breakpoints.map((breakpoint) => ({\n    key: breakpoint.value,\n    value: breakpoint.value === Breakpoint.Basic ? \"0\" : styles.getPropertyValue(`--pa-breakpoint-${breakpoint.value}`).trim()\n  }));\n  if (!window2.matchMedia || !document2.body || !document2.body.classList)\n    return;\n  function onChangeMedia(media, matches) {\n    const className = `breakpoint-${media.trim()}`;\n    if (matches)\n      document2.body.classList.add(className);\n    else\n      document2.body.classList.remove(className);\n  }\n  medias.forEach(({ key, value: value3 }) => {\n    onChangeMedia(key, window2.innerWidth > Number(value3.replace(\"px\", \"\")));\n    window2.matchMedia(`(min-width: ${value3})`).addEventListener(\"change\", (e) => onChangeMedia(key, e.matches));\n  });\n}\nasync function initBreakpointChecker() {\n  await wait();\n  checkBreakpoints();\n}\nfunction classesToString(classes3) {\n  let stringWithClasses = \"\";\n  classes3.map((className) => {\n    if (Array.isArray(className) && className[0])\n      stringWithClasses += ` ${className[1]}`;\n    if (!Array.isArray(className))\n      stringWithClasses += ` ${className}`;\n  });\n  return stringWithClasses;\n}\nconst MODES = (hljs) => {\n  return {\n    IMPORTANT: {\n      scope: \"meta\",\n      begin: \"!important\"\n    },\n    BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n    HEXCOLOR: {\n      scope: \"number\",\n      begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n    },\n    FUNCTION_DISPATCH: {\n      className: \"built_in\",\n      begin: /[\\w-]+(?=\\()/\n    },\n    ATTRIBUTE_SELECTOR_MODE: {\n      scope: \"selector-attr\",\n      begin: /\\[/,\n      end: /\\]/,\n      illegal: \"$\",\n      contains: [\n        hljs.APOS_STRING_MODE,\n        hljs.QUOTE_STRING_MODE\n      ]\n    },\n    CSS_NUMBER_MODE: {\n      scope: \"number\",\n      begin: hljs.NUMBER_RE + \"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",\n      relevance: 0\n    },\n    CSS_VARIABLE: {\n      className: \"attr\",\n      begin: /--[A-Za-z][A-Za-z0-9_-]*/\n    }\n  };\n};\nconst TAGS = [\n  \"a\",\n  \"abbr\",\n  \"address\",\n  \"article\",\n  \"aside\",\n  \"audio\",\n  \"b\",\n  \"blockquote\",\n  \"body\",\n  \"button\",\n  \"canvas\",\n  \"caption\",\n  \"cite\",\n  \"code\",\n  \"dd\",\n  \"del\",\n  \"details\",\n  \"dfn\",\n  \"div\",\n  \"dl\",\n  \"dt\",\n  \"em\",\n  \"fieldset\",\n  \"figcaption\",\n  \"figure\",\n  \"footer\",\n  \"form\",\n  \"h1\",\n  \"h2\",\n  \"h3\",\n  \"h4\",\n  \"h5\",\n  \"h6\",\n  \"header\",\n  \"hgroup\",\n  \"html\",\n  \"i\",\n  \"iframe\",\n  \"img\",\n  \"input\",\n  \"ins\",\n  \"kbd\",\n  \"label\",\n  \"legend\",\n  \"li\",\n  \"main\",\n  \"mark\",\n  \"menu\",\n  \"nav\",\n  \"object\",\n  \"ol\",\n  \"p\",\n  \"q\",\n  \"quote\",\n  \"samp\",\n  \"section\",\n  \"span\",\n  \"strong\",\n  \"summary\",\n  \"sup\",\n  \"table\",\n  \"tbody\",\n  \"td\",\n  \"textarea\",\n  \"tfoot\",\n  \"th\",\n  \"thead\",\n  \"time\",\n  \"tr\",\n  \"ul\",\n  \"var\",\n  \"video\"\n];\nconst MEDIA_FEATURES = [\n  \"any-hover\",\n  \"any-pointer\",\n  \"aspect-ratio\",\n  \"color\",\n  \"color-gamut\",\n  \"color-index\",\n  \"device-aspect-ratio\",\n  \"device-height\",\n  \"device-width\",\n  \"display-mode\",\n  \"forced-colors\",\n  \"grid\",\n  \"height\",\n  \"hover\",\n  \"inverted-colors\",\n  \"monochrome\",\n  \"orientation\",\n  \"overflow-block\",\n  \"overflow-inline\",\n  \"pointer\",\n  \"prefers-color-scheme\",\n  \"prefers-contrast\",\n  \"prefers-reduced-motion\",\n  \"prefers-reduced-transparency\",\n  \"resolution\",\n  \"scan\",\n  \"scripting\",\n  \"update\",\n  \"width\",\n  // TODO: find a better solution?\n  \"min-width\",\n  \"max-width\",\n  \"min-height\",\n  \"max-height\"\n];\nconst PSEUDO_CLASSES = [\n  \"active\",\n  \"any-link\",\n  \"blank\",\n  \"checked\",\n  \"current\",\n  \"default\",\n  \"defined\",\n  \"dir\",\n  // dir()\n  \"disabled\",\n  \"drop\",\n  \"empty\",\n  \"enabled\",\n  \"first\",\n  \"first-child\",\n  \"first-of-type\",\n  \"fullscreen\",\n  \"future\",\n  \"focus\",\n  \"focus-visible\",\n  \"focus-within\",\n  \"has\",\n  // has()\n  \"host\",\n  // host or host()\n  \"host-context\",\n  // host-context()\n  \"hover\",\n  \"indeterminate\",\n  \"in-range\",\n  \"invalid\",\n  \"is\",\n  // is()\n  \"lang\",\n  // lang()\n  \"last-child\",\n  \"last-of-type\",\n  \"left\",\n  \"link\",\n  \"local-link\",\n  \"not\",\n  // not()\n  \"nth-child\",\n  // nth-child()\n  \"nth-col\",\n  // nth-col()\n  \"nth-last-child\",\n  // nth-last-child()\n  \"nth-last-col\",\n  // nth-last-col()\n  \"nth-last-of-type\",\n  //nth-last-of-type()\n  \"nth-of-type\",\n  //nth-of-type()\n  \"only-child\",\n  \"only-of-type\",\n  \"optional\",\n  \"out-of-range\",\n  \"past\",\n  \"placeholder-shown\",\n  \"read-only\",\n  \"read-write\",\n  \"required\",\n  \"right\",\n  \"root\",\n  \"scope\",\n  \"target\",\n  \"target-within\",\n  \"user-invalid\",\n  \"valid\",\n  \"visited\",\n  \"where\"\n  // where()\n];\nconst PSEUDO_ELEMENTS = [\n  \"after\",\n  \"backdrop\",\n  \"before\",\n  \"cue\",\n  \"cue-region\",\n  \"first-letter\",\n  \"first-line\",\n  \"grammar-error\",\n  \"marker\",\n  \"part\",\n  \"placeholder\",\n  \"selection\",\n  \"slotted\",\n  \"spelling-error\"\n];\nconst ATTRIBUTES = [\n  \"align-content\",\n  \"align-items\",\n  \"align-self\",\n  \"all\",\n  \"animation\",\n  \"animation-delay\",\n  \"animation-direction\",\n  \"animation-duration\",\n  \"animation-fill-mode\",\n  \"animation-iteration-count\",\n  \"animation-name\",\n  \"animation-play-state\",\n  \"animation-timing-function\",\n  \"backface-visibility\",\n  \"background\",\n  \"background-attachment\",\n  \"background-blend-mode\",\n  \"background-clip\",\n  \"background-color\",\n  \"background-image\",\n  \"background-origin\",\n  \"background-position\",\n  \"background-repeat\",\n  \"background-size\",\n  \"block-size\",\n  \"border\",\n  \"border-block\",\n  \"border-block-color\",\n  \"border-block-end\",\n  \"border-block-end-color\",\n  \"border-block-end-style\",\n  \"border-block-end-width\",\n  \"border-block-start\",\n  \"border-block-start-color\",\n  \"border-block-start-style\",\n  \"border-block-start-width\",\n  \"border-block-style\",\n  \"border-block-width\",\n  \"border-bottom\",\n  \"border-bottom-color\",\n  \"border-bottom-left-radius\",\n  \"border-bottom-right-radius\",\n  \"border-bottom-style\",\n  \"border-bottom-width\",\n  \"border-collapse\",\n  \"border-color\",\n  \"border-image\",\n  \"border-image-outset\",\n  \"border-image-repeat\",\n  \"border-image-slice\",\n  \"border-image-source\",\n  \"border-image-width\",\n  \"border-inline\",\n  \"border-inline-color\",\n  \"border-inline-end\",\n  \"border-inline-end-color\",\n  \"border-inline-end-style\",\n  \"border-inline-end-width\",\n  \"border-inline-start\",\n  \"border-inline-start-color\",\n  \"border-inline-start-style\",\n  \"border-inline-start-width\",\n  \"border-inline-style\",\n  \"border-inline-width\",\n  \"border-left\",\n  \"border-left-color\",\n  \"border-left-style\",\n  \"border-left-width\",\n  \"border-radius\",\n  \"border-right\",\n  \"border-right-color\",\n  \"border-right-style\",\n  \"border-right-width\",\n  \"border-spacing\",\n  \"border-style\",\n  \"border-top\",\n  \"border-top-color\",\n  \"border-top-left-radius\",\n  \"border-top-right-radius\",\n  \"border-top-style\",\n  \"border-top-width\",\n  \"border-width\",\n  \"bottom\",\n  \"box-decoration-break\",\n  \"box-shadow\",\n  \"box-sizing\",\n  \"break-after\",\n  \"break-before\",\n  \"break-inside\",\n  \"caption-side\",\n  \"caret-color\",\n  \"clear\",\n  \"clip\",\n  \"clip-path\",\n  \"clip-rule\",\n  \"color\",\n  \"column-count\",\n  \"column-fill\",\n  \"column-gap\",\n  \"column-rule\",\n  \"column-rule-color\",\n  \"column-rule-style\",\n  \"column-rule-width\",\n  \"column-span\",\n  \"column-width\",\n  \"columns\",\n  \"contain\",\n  \"content\",\n  \"content-visibility\",\n  \"counter-increment\",\n  \"counter-reset\",\n  \"cue\",\n  \"cue-after\",\n  \"cue-before\",\n  \"cursor\",\n  \"direction\",\n  \"display\",\n  \"empty-cells\",\n  \"filter\",\n  \"flex\",\n  \"flex-basis\",\n  \"flex-direction\",\n  \"flex-flow\",\n  \"flex-grow\",\n  \"flex-shrink\",\n  \"flex-wrap\",\n  \"float\",\n  \"flow\",\n  \"font\",\n  \"font-display\",\n  \"font-family\",\n  \"font-feature-settings\",\n  \"font-kerning\",\n  \"font-language-override\",\n  \"font-size\",\n  \"font-size-adjust\",\n  \"font-smoothing\",\n  \"font-stretch\",\n  \"font-style\",\n  \"font-synthesis\",\n  \"font-variant\",\n  \"font-variant-caps\",\n  \"font-variant-east-asian\",\n  \"font-variant-ligatures\",\n  \"font-variant-numeric\",\n  \"font-variant-position\",\n  \"font-variation-settings\",\n  \"font-weight\",\n  \"gap\",\n  \"glyph-orientation-vertical\",\n  \"grid\",\n  \"grid-area\",\n  \"grid-auto-columns\",\n  \"grid-auto-flow\",\n  \"grid-auto-rows\",\n  \"grid-column\",\n  \"grid-column-end\",\n  \"grid-column-start\",\n  \"grid-gap\",\n  \"grid-row\",\n  \"grid-row-end\",\n  \"grid-row-start\",\n  \"grid-template\",\n  \"grid-template-areas\",\n  \"grid-template-columns\",\n  \"grid-template-rows\",\n  \"hanging-punctuation\",\n  \"height\",\n  \"hyphens\",\n  \"icon\",\n  \"image-orientation\",\n  \"image-rendering\",\n  \"image-resolution\",\n  \"ime-mode\",\n  \"inline-size\",\n  \"isolation\",\n  \"justify-content\",\n  \"left\",\n  \"letter-spacing\",\n  \"line-break\",\n  \"line-height\",\n  \"list-style\",\n  \"list-style-image\",\n  \"list-style-position\",\n  \"list-style-type\",\n  \"margin\",\n  \"margin-block\",\n  \"margin-block-end\",\n  \"margin-block-start\",\n  \"margin-bottom\",\n  \"margin-inline\",\n  \"margin-inline-end\",\n  \"margin-inline-start\",\n  \"margin-left\",\n  \"margin-right\",\n  \"margin-top\",\n  \"marks\",\n  \"mask\",\n  \"mask-border\",\n  \"mask-border-mode\",\n  \"mask-border-outset\",\n  \"mask-border-repeat\",\n  \"mask-border-slice\",\n  \"mask-border-source\",\n  \"mask-border-width\",\n  \"mask-clip\",\n  \"mask-composite\",\n  \"mask-image\",\n  \"mask-mode\",\n  \"mask-origin\",\n  \"mask-position\",\n  \"mask-repeat\",\n  \"mask-size\",\n  \"mask-type\",\n  \"max-block-size\",\n  \"max-height\",\n  \"max-inline-size\",\n  \"max-width\",\n  \"min-block-size\",\n  \"min-height\",\n  \"min-inline-size\",\n  \"min-width\",\n  \"mix-blend-mode\",\n  \"nav-down\",\n  \"nav-index\",\n  \"nav-left\",\n  \"nav-right\",\n  \"nav-up\",\n  \"none\",\n  \"normal\",\n  \"object-fit\",\n  \"object-position\",\n  \"opacity\",\n  \"order\",\n  \"orphans\",\n  \"outline\",\n  \"outline-color\",\n  \"outline-offset\",\n  \"outline-style\",\n  \"outline-width\",\n  \"overflow\",\n  \"overflow-wrap\",\n  \"overflow-x\",\n  \"overflow-y\",\n  \"padding\",\n  \"padding-block\",\n  \"padding-block-end\",\n  \"padding-block-start\",\n  \"padding-bottom\",\n  \"padding-inline\",\n  \"padding-inline-end\",\n  \"padding-inline-start\",\n  \"padding-left\",\n  \"padding-right\",\n  \"padding-top\",\n  \"page-break-after\",\n  \"page-break-before\",\n  \"page-break-inside\",\n  \"pause\",\n  \"pause-after\",\n  \"pause-before\",\n  \"perspective\",\n  \"perspective-origin\",\n  \"pointer-events\",\n  \"position\",\n  \"quotes\",\n  \"resize\",\n  \"rest\",\n  \"rest-after\",\n  \"rest-before\",\n  \"right\",\n  \"row-gap\",\n  \"scroll-margin\",\n  \"scroll-margin-block\",\n  \"scroll-margin-block-end\",\n  \"scroll-margin-block-start\",\n  \"scroll-margin-bottom\",\n  \"scroll-margin-inline\",\n  \"scroll-margin-inline-end\",\n  \"scroll-margin-inline-start\",\n  \"scroll-margin-left\",\n  \"scroll-margin-right\",\n  \"scroll-margin-top\",\n  \"scroll-padding\",\n  \"scroll-padding-block\",\n  \"scroll-padding-block-end\",\n  \"scroll-padding-block-start\",\n  \"scroll-padding-bottom\",\n  \"scroll-padding-inline\",\n  \"scroll-padding-inline-end\",\n  \"scroll-padding-inline-start\",\n  \"scroll-padding-left\",\n  \"scroll-padding-right\",\n  \"scroll-padding-top\",\n  \"scroll-snap-align\",\n  \"scroll-snap-stop\",\n  \"scroll-snap-type\",\n  \"scrollbar-color\",\n  \"scrollbar-gutter\",\n  \"scrollbar-width\",\n  \"shape-image-threshold\",\n  \"shape-margin\",\n  \"shape-outside\",\n  \"speak\",\n  \"speak-as\",\n  \"src\",\n  // @font-face\n  \"tab-size\",\n  \"table-layout\",\n  \"text-align\",\n  \"text-align-all\",\n  \"text-align-last\",\n  \"text-combine-upright\",\n  \"text-decoration\",\n  \"text-decoration-color\",\n  \"text-decoration-line\",\n  \"text-decoration-style\",\n  \"text-emphasis\",\n  \"text-emphasis-color\",\n  \"text-emphasis-position\",\n  \"text-emphasis-style\",\n  \"text-indent\",\n  \"text-justify\",\n  \"text-orientation\",\n  \"text-overflow\",\n  \"text-rendering\",\n  \"text-shadow\",\n  \"text-transform\",\n  \"text-underline-position\",\n  \"top\",\n  \"transform\",\n  \"transform-box\",\n  \"transform-origin\",\n  \"transform-style\",\n  \"transition\",\n  \"transition-delay\",\n  \"transition-duration\",\n  \"transition-property\",\n  \"transition-timing-function\",\n  \"unicode-bidi\",\n  \"vertical-align\",\n  \"visibility\",\n  \"voice-balance\",\n  \"voice-duration\",\n  \"voice-family\",\n  \"voice-pitch\",\n  \"voice-range\",\n  \"voice-rate\",\n  \"voice-stress\",\n  \"voice-volume\",\n  \"white-space\",\n  \"widows\",\n  \"width\",\n  \"will-change\",\n  \"word-break\",\n  \"word-spacing\",\n  \"word-wrap\",\n  \"writing-mode\",\n  \"z-index\"\n  // reverse makes sure longer attributes `font-weight` are matched fully\n  // instead of getting false positives on say `font`\n].reverse();\nfunction css(hljs) {\n  const regex = hljs.regex;\n  const modes = MODES(hljs);\n  const VENDOR_PREFIX = { begin: /-(webkit|moz|ms|o)-(?=[a-z])/ };\n  const AT_MODIFIERS = \"and or not only\";\n  const AT_PROPERTY_RE = /@-?\\w[\\w]*(-\\w+)*/;\n  const IDENT_RE2 = \"[a-zA-Z-][a-zA-Z0-9_-]*\";\n  const STRINGS = [\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE\n  ];\n  return {\n    name: \"CSS\",\n    case_insensitive: true,\n    illegal: /[=|'\\$]/,\n    keywords: { keyframePosition: \"from to\" },\n    classNameAliases: {\n      // for visual continuity with `tag {}` and because we\n      // don't have a great class for this?\n      keyframePosition: \"selector-tag\"\n    },\n    contains: [\n      modes.BLOCK_COMMENT,\n      VENDOR_PREFIX,\n      // to recognize keyframe 40% etc which are outside the scope of our\n      // attribute value mode\n      modes.CSS_NUMBER_MODE,\n      {\n        className: \"selector-id\",\n        begin: /#[A-Za-z0-9_-]+/,\n        relevance: 0\n      },\n      {\n        className: \"selector-class\",\n        begin: \"\\\\.\" + IDENT_RE2,\n        relevance: 0\n      },\n      modes.ATTRIBUTE_SELECTOR_MODE,\n      {\n        className: \"selector-pseudo\",\n        variants: [\n          { begin: \":(\" + PSEUDO_CLASSES.join(\"|\") + \")\" },\n          { begin: \":(:)?(\" + PSEUDO_ELEMENTS.join(\"|\") + \")\" }\n        ]\n      },\n      // we may actually need this (12/2020)\n      // { // pseudo-selector params\n      //   begin: /\\(/,\n      //   end: /\\)/,\n      //   contains: [ hljs.CSS_NUMBER_MODE ]\n      // },\n      modes.CSS_VARIABLE,\n      {\n        className: \"attribute\",\n        begin: \"\\\\b(\" + ATTRIBUTES.join(\"|\") + \")\\\\b\"\n      },\n      // attribute values\n      {\n        begin: /:/,\n        end: /[;}{]/,\n        contains: [\n          modes.BLOCK_COMMENT,\n          modes.HEXCOLOR,\n          modes.IMPORTANT,\n          modes.CSS_NUMBER_MODE,\n          ...STRINGS,\n          // needed to highlight these as strings and to avoid issues with\n          // illegal characters that might be inside urls that would tigger the\n          // languages illegal stack\n          {\n            begin: /(url|data-uri)\\(/,\n            end: /\\)/,\n            relevance: 0,\n            // from keywords\n            keywords: { built_in: \"url data-uri\" },\n            contains: [\n              ...STRINGS,\n              {\n                className: \"string\",\n                // any character other than `)` as in `url()` will be the start\n                // of a string, which ends with `)` (from the parent mode)\n                begin: /[^)]/,\n                endsWithParent: true,\n                excludeEnd: true\n              }\n            ]\n          },\n          modes.FUNCTION_DISPATCH\n        ]\n      },\n      {\n        begin: regex.lookahead(/@/),\n        end: \"[{;]\",\n        relevance: 0,\n        illegal: /:/,\n        // break on Less variables @var: ...\n        contains: [\n          {\n            className: \"keyword\",\n            begin: AT_PROPERTY_RE\n          },\n          {\n            begin: /\\s/,\n            endsWithParent: true,\n            excludeEnd: true,\n            relevance: 0,\n            keywords: {\n              $pattern: /[a-z-]+/,\n              keyword: AT_MODIFIERS,\n              attribute: MEDIA_FEATURES.join(\" \")\n            },\n            contains: [\n              {\n                begin: /[a-z-]+(?=:)/,\n                className: \"attribute\"\n              },\n              ...STRINGS,\n              modes.CSS_NUMBER_MODE\n            ]\n          }\n        ]\n      },\n      {\n        className: \"selector-tag\",\n        begin: \"\\\\b(\" + TAGS.join(\"|\") + \")\\\\b\"\n      }\n    ]\n  };\n}\nconst IDENT_RE$1 = \"[A-Za-z$_][0-9A-Za-z$_]*\";\nconst KEYWORDS$1 = [\n  \"as\",\n  // for exports\n  \"in\",\n  \"of\",\n  \"if\",\n  \"for\",\n  \"while\",\n  \"finally\",\n  \"var\",\n  \"new\",\n  \"function\",\n  \"do\",\n  \"return\",\n  \"void\",\n  \"else\",\n  \"break\",\n  \"catch\",\n  \"instanceof\",\n  \"with\",\n  \"throw\",\n  \"case\",\n  \"default\",\n  \"try\",\n  \"switch\",\n  \"continue\",\n  \"typeof\",\n  \"delete\",\n  \"let\",\n  \"yield\",\n  \"const\",\n  \"class\",\n  // JS handles these with a special rule\n  // \"get\",\n  // \"set\",\n  \"debugger\",\n  \"async\",\n  \"await\",\n  \"static\",\n  \"import\",\n  \"from\",\n  \"export\",\n  \"extends\"\n];\nconst LITERALS$1 = [\n  \"true\",\n  \"false\",\n  \"null\",\n  \"undefined\",\n  \"NaN\",\n  \"Infinity\"\n];\nconst TYPES$1 = [\n  // Fundamental objects\n  \"Object\",\n  \"Function\",\n  \"Boolean\",\n  \"Symbol\",\n  // numbers and dates\n  \"Math\",\n  \"Date\",\n  \"Number\",\n  \"BigInt\",\n  // text\n  \"String\",\n  \"RegExp\",\n  // Indexed collections\n  \"Array\",\n  \"Float32Array\",\n  \"Float64Array\",\n  \"Int8Array\",\n  \"Uint8Array\",\n  \"Uint8ClampedArray\",\n  \"Int16Array\",\n  \"Int32Array\",\n  \"Uint16Array\",\n  \"Uint32Array\",\n  \"BigInt64Array\",\n  \"BigUint64Array\",\n  // Keyed collections\n  \"Set\",\n  \"Map\",\n  \"WeakSet\",\n  \"WeakMap\",\n  // Structured data\n  \"ArrayBuffer\",\n  \"SharedArrayBuffer\",\n  \"Atomics\",\n  \"DataView\",\n  \"JSON\",\n  // Control abstraction objects\n  \"Promise\",\n  \"Generator\",\n  \"GeneratorFunction\",\n  \"AsyncFunction\",\n  // Reflection\n  \"Reflect\",\n  \"Proxy\",\n  // Internationalization\n  \"Intl\",\n  // WebAssembly\n  \"WebAssembly\"\n];\nconst ERROR_TYPES$1 = [\n  \"Error\",\n  \"EvalError\",\n  \"InternalError\",\n  \"RangeError\",\n  \"ReferenceError\",\n  \"SyntaxError\",\n  \"TypeError\",\n  \"URIError\"\n];\nconst BUILT_IN_GLOBALS$1 = [\n  \"setInterval\",\n  \"setTimeout\",\n  \"clearInterval\",\n  \"clearTimeout\",\n  \"require\",\n  \"exports\",\n  \"eval\",\n  \"isFinite\",\n  \"isNaN\",\n  \"parseFloat\",\n  \"parseInt\",\n  \"decodeURI\",\n  \"decodeURIComponent\",\n  \"encodeURI\",\n  \"encodeURIComponent\",\n  \"escape\",\n  \"unescape\"\n];\nconst BUILT_IN_VARIABLES$1 = [\n  \"arguments\",\n  \"this\",\n  \"super\",\n  \"console\",\n  \"window\",\n  \"document\",\n  \"localStorage\",\n  \"module\",\n  \"global\"\n  // Node.js\n];\nconst BUILT_INS$1 = [].concat(\n  BUILT_IN_GLOBALS$1,\n  TYPES$1,\n  ERROR_TYPES$1\n);\nfunction javascript$1(hljs) {\n  const regex = hljs.regex;\n  const hasClosingTag = (match, { after }) => {\n    const tag = \"</\" + match[0].slice(1);\n    const pos = match.input.indexOf(tag, after);\n    return pos !== -1;\n  };\n  const IDENT_RE$1$1 = IDENT_RE$1;\n  const FRAGMENT = {\n    begin: \"<>\",\n    end: \"</>\"\n  };\n  const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n  const XML_TAG = {\n    begin: /<[A-Za-z0-9\\\\._:-]+/,\n    end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n    /**\n     * @param {RegExpMatchArray} match\n     * @param {CallbackResponse} response\n     */\n    isTrulyOpeningTag: (match, response) => {\n      const afterMatchIndex = match[0].length + match.index;\n      const nextChar = match.input[afterMatchIndex];\n      if (\n        // HTML should not include another raw `<` inside a tag\n        // nested type?\n        // `<Array<Array<number>>`, etc.\n        nextChar === \"<\" || // the , gives away that this is not HTML\n        // `<T, A extends keyof T, V>`\n        nextChar === \",\"\n      ) {\n        response.ignoreMatch();\n        return;\n      }\n      if (nextChar === \">\") {\n        if (!hasClosingTag(match, { after: afterMatchIndex })) {\n          response.ignoreMatch();\n        }\n      }\n      let m;\n      const afterMatch = match.input.substring(afterMatchIndex);\n      if (m = afterMatch.match(/^\\s*=/)) {\n        response.ignoreMatch();\n        return;\n      }\n      if (m = afterMatch.match(/^\\s+extends\\s+/)) {\n        if (m.index === 0) {\n          response.ignoreMatch();\n          return;\n        }\n      }\n    }\n  };\n  const KEYWORDS$1$1 = {\n    $pattern: IDENT_RE$1,\n    keyword: KEYWORDS$1,\n    literal: LITERALS$1,\n    built_in: BUILT_INS$1,\n    \"variable.language\": BUILT_IN_VARIABLES$1\n  };\n  const decimalDigits = \"[0-9](_?[0-9])*\";\n  const frac = `\\\\.(${decimalDigits})`;\n  const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n  const NUMBER = {\n    className: \"number\",\n    variants: [\n      // DecimalLiteral\n      { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))[eE][+-]?(${decimalDigits})\\\\b` },\n      { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n      // DecimalBigIntegerLiteral\n      { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n      // NonDecimalIntegerLiteral\n      { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n      { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n      { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n      // LegacyOctalIntegerLiteral (does not include underscore separators)\n      // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n      { begin: \"\\\\b0[0-7]+n?\\\\b\" }\n    ],\n    relevance: 0\n  };\n  const SUBST = {\n    className: \"subst\",\n    begin: \"\\\\$\\\\{\",\n    end: \"\\\\}\",\n    keywords: KEYWORDS$1$1,\n    contains: []\n    // defined later\n  };\n  const HTML_TEMPLATE = {\n    begin: \"html`\",\n    end: \"\",\n    starts: {\n      end: \"`\",\n      returnEnd: false,\n      contains: [\n        hljs.BACKSLASH_ESCAPE,\n        SUBST\n      ],\n      subLanguage: \"xml\"\n    }\n  };\n  const CSS_TEMPLATE = {\n    begin: \"css`\",\n    end: \"\",\n    starts: {\n      end: \"`\",\n      returnEnd: false,\n      contains: [\n        hljs.BACKSLASH_ESCAPE,\n        SUBST\n      ],\n      subLanguage: \"css\"\n    }\n  };\n  const TEMPLATE_STRING = {\n    className: \"string\",\n    begin: \"`\",\n    end: \"`\",\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      SUBST\n    ]\n  };\n  const JSDOC_COMMENT = hljs.COMMENT(\n    /\\/\\*\\*(?!\\/)/,\n    \"\\\\*/\",\n    {\n      relevance: 0,\n      contains: [\n        {\n          begin: \"(?=@[A-Za-z]+)\",\n          relevance: 0,\n          contains: [\n            {\n              className: \"doctag\",\n              begin: \"@[A-Za-z]+\"\n            },\n            {\n              className: \"type\",\n              begin: \"\\\\{\",\n              end: \"\\\\}\",\n              excludeEnd: true,\n              excludeBegin: true,\n              relevance: 0\n            },\n            {\n              className: \"variable\",\n              begin: IDENT_RE$1$1 + \"(?=\\\\s*(-)|$)\",\n              endsParent: true,\n              relevance: 0\n            },\n            // eat spaces (not newlines) so we can find\n            // types or variables\n            {\n              begin: /(?=[^\\n])\\s/,\n              relevance: 0\n            }\n          ]\n        }\n      ]\n    }\n  );\n  const COMMENT = {\n    className: \"comment\",\n    variants: [\n      JSDOC_COMMENT,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_LINE_COMMENT_MODE\n    ]\n  };\n  const SUBST_INTERNALS = [\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE,\n    HTML_TEMPLATE,\n    CSS_TEMPLATE,\n    TEMPLATE_STRING,\n    // Skip numbers when they are part of a variable name\n    { match: /\\$\\d+/ },\n    NUMBER\n    // This is intentional:\n    // See https://github.com/highlightjs/highlight.js/issues/3288\n    // hljs.REGEXP_MODE\n  ];\n  SUBST.contains = SUBST_INTERNALS.concat({\n    // we need to pair up {} inside our subst to prevent\n    // it from ending too early by matching another }\n    begin: /\\{/,\n    end: /\\}/,\n    keywords: KEYWORDS$1$1,\n    contains: [\n      \"self\"\n    ].concat(SUBST_INTERNALS)\n  });\n  const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n  const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n    // eat recursive parens in sub expressions\n    {\n      begin: /\\(/,\n      end: /\\)/,\n      keywords: KEYWORDS$1$1,\n      contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n    }\n  ]);\n  const PARAMS = {\n    className: \"params\",\n    begin: /\\(/,\n    end: /\\)/,\n    excludeBegin: true,\n    excludeEnd: true,\n    keywords: KEYWORDS$1$1,\n    contains: PARAMS_CONTAINS\n  };\n  const CLASS_OR_EXTENDS = {\n    variants: [\n      // class Car extends vehicle\n      {\n        match: [\n          /class/,\n          /\\s+/,\n          IDENT_RE$1$1,\n          /\\s+/,\n          /extends/,\n          /\\s+/,\n          regex.concat(IDENT_RE$1$1, \"(\", regex.concat(/\\./, IDENT_RE$1$1), \")*\")\n        ],\n        scope: {\n          1: \"keyword\",\n          3: \"title.class\",\n          5: \"keyword\",\n          7: \"title.class.inherited\"\n        }\n      },\n      // class Car\n      {\n        match: [\n          /class/,\n          /\\s+/,\n          IDENT_RE$1$1\n        ],\n        scope: {\n          1: \"keyword\",\n          3: \"title.class\"\n        }\n      }\n    ]\n  };\n  const CLASS_REFERENCE = {\n    relevance: 0,\n    match: regex.either(\n      // Hard coded exceptions\n      /\\bJSON/,\n      // Float32Array, OutT\n      /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n      // CSSFactory, CSSFactoryT\n      /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n      // FPs, FPsT\n      /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/\n      // P\n      // single letters are not highlighted\n      // BLAH\n      // this will be flagged as a UPPER_CASE_CONSTANT instead\n    ),\n    className: \"title.class\",\n    keywords: {\n      _: [\n        // se we still get relevance credit for JS library classes\n        ...TYPES$1,\n        ...ERROR_TYPES$1\n      ]\n    }\n  };\n  const USE_STRICT = {\n    label: \"use_strict\",\n    className: \"meta\",\n    relevance: 10,\n    begin: /^\\s*['\"]use (strict|asm)['\"]/\n  };\n  const FUNCTION_DEFINITION = {\n    variants: [\n      {\n        match: [\n          /function/,\n          /\\s+/,\n          IDENT_RE$1$1,\n          /(?=\\s*\\()/\n        ]\n      },\n      // anonymous function\n      {\n        match: [\n          /function/,\n          /\\s*(?=\\()/\n        ]\n      }\n    ],\n    className: {\n      1: \"keyword\",\n      3: \"title.function\"\n    },\n    label: \"func.def\",\n    contains: [PARAMS],\n    illegal: /%/\n  };\n  const UPPER_CASE_CONSTANT = {\n    relevance: 0,\n    match: /\\b[A-Z][A-Z_0-9]+\\b/,\n    className: \"variable.constant\"\n  };\n  function noneOf(list) {\n    return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n  }\n  const FUNCTION_CALL = {\n    match: regex.concat(\n      /\\b/,\n      noneOf([\n        ...BUILT_IN_GLOBALS$1,\n        \"super\",\n        \"import\"\n      ]),\n      IDENT_RE$1$1,\n      regex.lookahead(/\\(/)\n    ),\n    className: \"title.function\",\n    relevance: 0\n  };\n  const PROPERTY_ACCESS = {\n    begin: regex.concat(/\\./, regex.lookahead(\n      regex.concat(IDENT_RE$1$1, /(?![0-9A-Za-z$_(])/)\n    )),\n    end: IDENT_RE$1$1,\n    excludeBegin: true,\n    keywords: \"prototype\",\n    className: \"property\",\n    relevance: 0\n  };\n  const GETTER_OR_SETTER = {\n    match: [\n      /get|set/,\n      /\\s+/,\n      IDENT_RE$1$1,\n      /(?=\\()/\n    ],\n    className: {\n      1: \"keyword\",\n      3: \"title.function\"\n    },\n    contains: [\n      {\n        // eat to avoid empty params\n        begin: /\\(\\)/\n      },\n      PARAMS\n    ]\n  };\n  const FUNC_LEAD_IN_RE = \"(\\\\([^()]*(\\\\([^()]*(\\\\([^()]*\\\\)[^()]*)*\\\\)[^()]*)*\\\\)|\" + hljs.UNDERSCORE_IDENT_RE + \")\\\\s*=>\";\n  const FUNCTION_VARIABLE = {\n    match: [\n      /const|var|let/,\n      /\\s+/,\n      IDENT_RE$1$1,\n      /\\s*/,\n      /=\\s*/,\n      /(async\\s*)?/,\n      // async is optional\n      regex.lookahead(FUNC_LEAD_IN_RE)\n    ],\n    keywords: \"async\",\n    className: {\n      1: \"keyword\",\n      3: \"title.function\"\n    },\n    contains: [\n      PARAMS\n    ]\n  };\n  return {\n    name: \"Javascript\",\n    aliases: [\"js\", \"jsx\", \"mjs\", \"cjs\"],\n    keywords: KEYWORDS$1$1,\n    // this will be extended by TypeScript\n    exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n    illegal: /#(?![$_A-z])/,\n    contains: [\n      hljs.SHEBANG({\n        label: \"shebang\",\n        binary: \"node\",\n        relevance: 5\n      }),\n      USE_STRICT,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      HTML_TEMPLATE,\n      CSS_TEMPLATE,\n      TEMPLATE_STRING,\n      COMMENT,\n      // Skip numbers when they are part of a variable name\n      { match: /\\$\\d+/ },\n      NUMBER,\n      CLASS_REFERENCE,\n      {\n        className: \"attr\",\n        begin: IDENT_RE$1$1 + regex.lookahead(\":\"),\n        relevance: 0\n      },\n      FUNCTION_VARIABLE,\n      {\n        // \"value\" container\n        begin: \"(\" + hljs.RE_STARTERS_RE + \"|\\\\b(case|return|throw)\\\\b)\\\\s*\",\n        keywords: \"return throw case\",\n        relevance: 0,\n        contains: [\n          COMMENT,\n          hljs.REGEXP_MODE,\n          {\n            className: \"function\",\n            // we have to count the parens to make sure we actually have the\n            // correct bounding ( ) before the =>.  There could be any number of\n            // sub-expressions inside also surrounded by parens.\n            begin: FUNC_LEAD_IN_RE,\n            returnBegin: true,\n            end: \"\\\\s*=>\",\n            contains: [\n              {\n                className: \"params\",\n                variants: [\n                  {\n                    begin: hljs.UNDERSCORE_IDENT_RE,\n                    relevance: 0\n                  },\n                  {\n                    className: null,\n                    begin: /\\(\\s*\\)/,\n                    skip: true\n                  },\n                  {\n                    begin: /\\(/,\n                    end: /\\)/,\n                    excludeBegin: true,\n                    excludeEnd: true,\n                    keywords: KEYWORDS$1$1,\n                    contains: PARAMS_CONTAINS\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            // could be a comma delimited list of params to a function call\n            begin: /,/,\n            relevance: 0\n          },\n          {\n            match: /\\s+/,\n            relevance: 0\n          },\n          {\n            // JSX\n            variants: [\n              { begin: FRAGMENT.begin, end: FRAGMENT.end },\n              { match: XML_SELF_CLOSING },\n              {\n                begin: XML_TAG.begin,\n                // we carefully check the opening tag to see if it truly\n                // is a tag and not a false positive\n                \"on:begin\": XML_TAG.isTrulyOpeningTag,\n                end: XML_TAG.end\n              }\n            ],\n            subLanguage: \"xml\",\n            contains: [\n              {\n                begin: XML_TAG.begin,\n                end: XML_TAG.end,\n                skip: true,\n                contains: [\"self\"]\n              }\n            ]\n          }\n        ]\n      },\n      FUNCTION_DEFINITION,\n      {\n        // prevent this from getting swallowed up by function\n        // since they appear \"function like\"\n        beginKeywords: \"while if switch catch for\"\n      },\n      {\n        // we have to count the parens to make sure we actually have the correct\n        // bounding ( ).  There could be any number of sub-expressions inside\n        // also surrounded by parens.\n        begin: \"\\\\b(?!function)\" + hljs.UNDERSCORE_IDENT_RE + \"\\\\([^()]*(\\\\([^()]*(\\\\([^()]*\\\\)[^()]*)*\\\\)[^()]*)*\\\\)\\\\s*\\\\{\",\n        // end parens\n        returnBegin: true,\n        label: \"func.def\",\n        contains: [\n          PARAMS,\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1$1, className: \"title.function\" })\n        ]\n      },\n      // catch ... so it won't trigger the property rule below\n      {\n        match: /\\.\\.\\./,\n        relevance: 0\n      },\n      PROPERTY_ACCESS,\n      // hack: prevents detection of keywords in some circumstances\n      // .keyword()\n      // $keyword = x\n      {\n        match: \"\\\\$\" + IDENT_RE$1$1,\n        relevance: 0\n      },\n      {\n        match: [/\\bconstructor(?=\\s*\\()/],\n        className: { 1: \"title.function\" },\n        contains: [PARAMS]\n      },\n      FUNCTION_CALL,\n      UPPER_CASE_CONSTANT,\n      CLASS_OR_EXTENDS,\n      GETTER_OR_SETTER,\n      {\n        match: /\\$[(.]/\n        // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n      }\n    ]\n  };\n}\nfunction markdown(hljs) {\n  const regex = hljs.regex;\n  const INLINE_HTML = {\n    begin: /<\\/?[A-Za-z_]/,\n    end: \">\",\n    subLanguage: \"xml\",\n    relevance: 0\n  };\n  const HORIZONTAL_RULE = {\n    begin: \"^[-\\\\*]{3,}\",\n    end: \"$\"\n  };\n  const CODE = {\n    className: \"code\",\n    variants: [\n      // TODO: fix to allow these to work with sublanguage also\n      { begin: \"(`{3,})[^`](.|\\\\n)*?\\\\1`*[ ]*\" },\n      { begin: \"(~{3,})[^~](.|\\\\n)*?\\\\1~*[ ]*\" },\n      // needed to allow markdown as a sublanguage to work\n      {\n        begin: \"```\",\n        end: \"```+[ ]*$\"\n      },\n      {\n        begin: \"~~~\",\n        end: \"~~~+[ ]*$\"\n      },\n      { begin: \"`.+?`\" },\n      {\n        begin: \"(?=^( {4}|\\\\t))\",\n        // use contains to gobble up multiple lines to allow the block to be whatever size\n        // but only have a single open/close tag vs one per line\n        contains: [\n          {\n            begin: \"^( {4}|\\\\t)\",\n            end: \"(\\\\n)$\"\n          }\n        ],\n        relevance: 0\n      }\n    ]\n  };\n  const LIST = {\n    className: \"bullet\",\n    begin: \"^[ \t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)\",\n    end: \"\\\\s+\",\n    excludeEnd: true\n  };\n  const LINK_REFERENCE = {\n    begin: /^\\[[^\\n]+\\]:/,\n    returnBegin: true,\n    contains: [\n      {\n        className: \"symbol\",\n        begin: /\\[/,\n        end: /\\]/,\n        excludeBegin: true,\n        excludeEnd: true\n      },\n      {\n        className: \"link\",\n        begin: /:\\s*/,\n        end: /$/,\n        excludeBegin: true\n      }\n    ]\n  };\n  const URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/;\n  const LINK = {\n    variants: [\n      // too much like nested array access in so many languages\n      // to have any real relevance\n      {\n        begin: /\\[.+?\\]\\[.*?\\]/,\n        relevance: 0\n      },\n      // popular internet URLs\n      {\n        begin: /\\[.+?\\]\\(((data|javascript|mailto):|(?:http|ftp)s?:\\/\\/).*?\\)/,\n        relevance: 2\n      },\n      {\n        begin: regex.concat(/\\[.+?\\]\\(/, URL_SCHEME, /:\\/\\/.*?\\)/),\n        relevance: 2\n      },\n      // relative urls\n      {\n        begin: /\\[.+?\\]\\([./?&#].*?\\)/,\n        relevance: 1\n      },\n      // whatever else, lower relevance (might not be a link at all)\n      {\n        begin: /\\[.*?\\]\\(.*?\\)/,\n        relevance: 0\n      }\n    ],\n    returnBegin: true,\n    contains: [\n      {\n        // empty strings for alt or link text\n        match: /\\[(?=\\])/\n      },\n      {\n        className: \"string\",\n        relevance: 0,\n        begin: \"\\\\[\",\n        end: \"\\\\]\",\n        excludeBegin: true,\n        returnEnd: true\n      },\n      {\n        className: \"link\",\n        relevance: 0,\n        begin: \"\\\\]\\\\(\",\n        end: \"\\\\)\",\n        excludeBegin: true,\n        excludeEnd: true\n      },\n      {\n        className: \"symbol\",\n        relevance: 0,\n        begin: \"\\\\]\\\\[\",\n        end: \"\\\\]\",\n        excludeBegin: true,\n        excludeEnd: true\n      }\n    ]\n  };\n  const BOLD = {\n    className: \"strong\",\n    contains: [],\n    // defined later\n    variants: [\n      {\n        begin: /_{2}(?!\\s)/,\n        end: /_{2}/\n      },\n      {\n        begin: /\\*{2}(?!\\s)/,\n        end: /\\*{2}/\n      }\n    ]\n  };\n  const ITALIC = {\n    className: \"emphasis\",\n    contains: [],\n    // defined later\n    variants: [\n      {\n        begin: /\\*(?![*\\s])/,\n        end: /\\*/\n      },\n      {\n        begin: /_(?![_\\s])/,\n        end: /_/,\n        relevance: 0\n      }\n    ]\n  };\n  const BOLD_WITHOUT_ITALIC = hljs.inherit(BOLD, { contains: [] });\n  const ITALIC_WITHOUT_BOLD = hljs.inherit(ITALIC, { contains: [] });\n  BOLD.contains.push(ITALIC_WITHOUT_BOLD);\n  ITALIC.contains.push(BOLD_WITHOUT_ITALIC);\n  let CONTAINABLE = [\n    INLINE_HTML,\n    LINK\n  ];\n  [\n    BOLD,\n    ITALIC,\n    BOLD_WITHOUT_ITALIC,\n    ITALIC_WITHOUT_BOLD\n  ].forEach((m) => {\n    m.contains = m.contains.concat(CONTAINABLE);\n  });\n  CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);\n  const HEADER = {\n    className: \"section\",\n    variants: [\n      {\n        begin: \"^#{1,6}\",\n        end: \"$\",\n        contains: CONTAINABLE\n      },\n      {\n        begin: \"(?=^.+?\\\\n[=-]{2,}$)\",\n        contains: [\n          { begin: \"^[=-]*$\" },\n          {\n            begin: \"^\",\n            end: \"\\\\n\",\n            contains: CONTAINABLE\n          }\n        ]\n      }\n    ]\n  };\n  const BLOCKQUOTE = {\n    className: \"quote\",\n    begin: \"^>\\\\s+\",\n    contains: CONTAINABLE,\n    end: \"$\"\n  };\n  return {\n    name: \"Markdown\",\n    aliases: [\n      \"md\",\n      \"mkdown\",\n      \"mkd\"\n    ],\n    contains: [\n      HEADER,\n      INLINE_HTML,\n      LIST,\n      BOLD,\n      ITALIC,\n      BLOCKQUOTE,\n      CODE,\n      HORIZONTAL_RULE,\n      LINK,\n      LINK_REFERENCE\n    ]\n  };\n}\nconst IDENT_RE = \"[A-Za-z$_][0-9A-Za-z$_]*\";\nconst KEYWORDS = [\n  \"as\",\n  // for exports\n  \"in\",\n  \"of\",\n  \"if\",\n  \"for\",\n  \"while\",\n  \"finally\",\n  \"var\",\n  \"new\",\n  \"function\",\n  \"do\",\n  \"return\",\n  \"void\",\n  \"else\",\n  \"break\",\n  \"catch\",\n  \"instanceof\",\n  \"with\",\n  \"throw\",\n  \"case\",\n  \"default\",\n  \"try\",\n  \"switch\",\n  \"continue\",\n  \"typeof\",\n  \"delete\",\n  \"let\",\n  \"yield\",\n  \"const\",\n  \"class\",\n  // JS handles these with a special rule\n  // \"get\",\n  // \"set\",\n  \"debugger\",\n  \"async\",\n  \"await\",\n  \"static\",\n  \"import\",\n  \"from\",\n  \"export\",\n  \"extends\"\n];\nconst LITERALS = [\n  \"true\",\n  \"false\",\n  \"null\",\n  \"undefined\",\n  \"NaN\",\n  \"Infinity\"\n];\nconst TYPES = [\n  // Fundamental objects\n  \"Object\",\n  \"Function\",\n  \"Boolean\",\n  \"Symbol\",\n  // numbers and dates\n  \"Math\",\n  \"Date\",\n  \"Number\",\n  \"BigInt\",\n  // text\n  \"String\",\n  \"RegExp\",\n  // Indexed collections\n  \"Array\",\n  \"Float32Array\",\n  \"Float64Array\",\n  \"Int8Array\",\n  \"Uint8Array\",\n  \"Uint8ClampedArray\",\n  \"Int16Array\",\n  \"Int32Array\",\n  \"Uint16Array\",\n  \"Uint32Array\",\n  \"BigInt64Array\",\n  \"BigUint64Array\",\n  // Keyed collections\n  \"Set\",\n  \"Map\",\n  \"WeakSet\",\n  \"WeakMap\",\n  // Structured data\n  \"ArrayBuffer\",\n  \"SharedArrayBuffer\",\n  \"Atomics\",\n  \"DataView\",\n  \"JSON\",\n  // Control abstraction objects\n  \"Promise\",\n  \"Generator\",\n  \"GeneratorFunction\",\n  \"AsyncFunction\",\n  // Reflection\n  \"Reflect\",\n  \"Proxy\",\n  // Internationalization\n  \"Intl\",\n  // WebAssembly\n  \"WebAssembly\"\n];\nconst ERROR_TYPES = [\n  \"Error\",\n  \"EvalError\",\n  \"InternalError\",\n  \"RangeError\",\n  \"ReferenceError\",\n  \"SyntaxError\",\n  \"TypeError\",\n  \"URIError\"\n];\nconst BUILT_IN_GLOBALS = [\n  \"setInterval\",\n  \"setTimeout\",\n  \"clearInterval\",\n  \"clearTimeout\",\n  \"require\",\n  \"exports\",\n  \"eval\",\n  \"isFinite\",\n  \"isNaN\",\n  \"parseFloat\",\n  \"parseInt\",\n  \"decodeURI\",\n  \"decodeURIComponent\",\n  \"encodeURI\",\n  \"encodeURIComponent\",\n  \"escape\",\n  \"unescape\"\n];\nconst BUILT_IN_VARIABLES = [\n  \"arguments\",\n  \"this\",\n  \"super\",\n  \"console\",\n  \"window\",\n  \"document\",\n  \"localStorage\",\n  \"module\",\n  \"global\"\n  // Node.js\n];\nconst BUILT_INS = [].concat(\n  BUILT_IN_GLOBALS,\n  TYPES,\n  ERROR_TYPES\n);\nfunction javascript(hljs) {\n  const regex = hljs.regex;\n  const hasClosingTag = (match, { after }) => {\n    const tag = \"</\" + match[0].slice(1);\n    const pos = match.input.indexOf(tag, after);\n    return pos !== -1;\n  };\n  const IDENT_RE$12 = IDENT_RE;\n  const FRAGMENT = {\n    begin: \"<>\",\n    end: \"</>\"\n  };\n  const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n  const XML_TAG = {\n    begin: /<[A-Za-z0-9\\\\._:-]+/,\n    end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n    /**\n     * @param {RegExpMatchArray} match\n     * @param {CallbackResponse} response\n     */\n    isTrulyOpeningTag: (match, response) => {\n      const afterMatchIndex = match[0].length + match.index;\n      const nextChar = match.input[afterMatchIndex];\n      if (\n        // HTML should not include another raw `<` inside a tag\n        // nested type?\n        // `<Array<Array<number>>`, etc.\n        nextChar === \"<\" || // the , gives away that this is not HTML\n        // `<T, A extends keyof T, V>`\n        nextChar === \",\"\n      ) {\n        response.ignoreMatch();\n        return;\n      }\n      if (nextChar === \">\") {\n        if (!hasClosingTag(match, { after: afterMatchIndex })) {\n          response.ignoreMatch();\n        }\n      }\n      let m;\n      const afterMatch = match.input.substring(afterMatchIndex);\n      if (m = afterMatch.match(/^\\s*=/)) {\n        response.ignoreMatch();\n        return;\n      }\n      if (m = afterMatch.match(/^\\s+extends\\s+/)) {\n        if (m.index === 0) {\n          response.ignoreMatch();\n          return;\n        }\n      }\n    }\n  };\n  const KEYWORDS$12 = {\n    $pattern: IDENT_RE,\n    keyword: KEYWORDS,\n    literal: LITERALS,\n    built_in: BUILT_INS,\n    \"variable.language\": BUILT_IN_VARIABLES\n  };\n  const decimalDigits = \"[0-9](_?[0-9])*\";\n  const frac = `\\\\.(${decimalDigits})`;\n  const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n  const NUMBER = {\n    className: \"number\",\n    variants: [\n      // DecimalLiteral\n      { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))[eE][+-]?(${decimalDigits})\\\\b` },\n      { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n      // DecimalBigIntegerLiteral\n      { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n      // NonDecimalIntegerLiteral\n      { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n      { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n      { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n      // LegacyOctalIntegerLiteral (does not include underscore separators)\n      // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n      { begin: \"\\\\b0[0-7]+n?\\\\b\" }\n    ],\n    relevance: 0\n  };\n  const SUBST = {\n    className: \"subst\",\n    begin: \"\\\\$\\\\{\",\n    end: \"\\\\}\",\n    keywords: KEYWORDS$12,\n    contains: []\n    // defined later\n  };\n  const HTML_TEMPLATE = {\n    begin: \"html`\",\n    end: \"\",\n    starts: {\n      end: \"`\",\n      returnEnd: false,\n      contains: [\n        hljs.BACKSLASH_ESCAPE,\n        SUBST\n      ],\n      subLanguage: \"xml\"\n    }\n  };\n  const CSS_TEMPLATE = {\n    begin: \"css`\",\n    end: \"\",\n    starts: {\n      end: \"`\",\n      returnEnd: false,\n      contains: [\n        hljs.BACKSLASH_ESCAPE,\n        SUBST\n      ],\n      subLanguage: \"css\"\n    }\n  };\n  const TEMPLATE_STRING = {\n    className: \"string\",\n    begin: \"`\",\n    end: \"`\",\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      SUBST\n    ]\n  };\n  const JSDOC_COMMENT = hljs.COMMENT(\n    /\\/\\*\\*(?!\\/)/,\n    \"\\\\*/\",\n    {\n      relevance: 0,\n      contains: [\n        {\n          begin: \"(?=@[A-Za-z]+)\",\n          relevance: 0,\n          contains: [\n            {\n              className: \"doctag\",\n              begin: \"@[A-Za-z]+\"\n            },\n            {\n              className: \"type\",\n              begin: \"\\\\{\",\n              end: \"\\\\}\",\n              excludeEnd: true,\n              excludeBegin: true,\n              relevance: 0\n            },\n            {\n              className: \"variable\",\n              begin: IDENT_RE$12 + \"(?=\\\\s*(-)|$)\",\n              endsParent: true,\n              relevance: 0\n            },\n            // eat spaces (not newlines) so we can find\n            // types or variables\n            {\n              begin: /(?=[^\\n])\\s/,\n              relevance: 0\n            }\n          ]\n        }\n      ]\n    }\n  );\n  const COMMENT = {\n    className: \"comment\",\n    variants: [\n      JSDOC_COMMENT,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_LINE_COMMENT_MODE\n    ]\n  };\n  const SUBST_INTERNALS = [\n    hljs.APOS_STRING_MODE,\n    hljs.QUOTE_STRING_MODE,\n    HTML_TEMPLATE,\n    CSS_TEMPLATE,\n    TEMPLATE_STRING,\n    // Skip numbers when they are part of a variable name\n    { match: /\\$\\d+/ },\n    NUMBER\n    // This is intentional:\n    // See https://github.com/highlightjs/highlight.js/issues/3288\n    // hljs.REGEXP_MODE\n  ];\n  SUBST.contains = SUBST_INTERNALS.concat({\n    // we need to pair up {} inside our subst to prevent\n    // it from ending too early by matching another }\n    begin: /\\{/,\n    end: /\\}/,\n    keywords: KEYWORDS$12,\n    contains: [\n      \"self\"\n    ].concat(SUBST_INTERNALS)\n  });\n  const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n  const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n    // eat recursive parens in sub expressions\n    {\n      begin: /\\(/,\n      end: /\\)/,\n      keywords: KEYWORDS$12,\n      contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n    }\n  ]);\n  const PARAMS = {\n    className: \"params\",\n    begin: /\\(/,\n    end: /\\)/,\n    excludeBegin: true,\n    excludeEnd: true,\n    keywords: KEYWORDS$12,\n    contains: PARAMS_CONTAINS\n  };\n  const CLASS_OR_EXTENDS = {\n    variants: [\n      // class Car extends vehicle\n      {\n        match: [\n          /class/,\n          /\\s+/,\n          IDENT_RE$12,\n          /\\s+/,\n          /extends/,\n          /\\s+/,\n          regex.concat(IDENT_RE$12, \"(\", regex.concat(/\\./, IDENT_RE$12), \")*\")\n        ],\n        scope: {\n          1: \"keyword\",\n          3: \"title.class\",\n          5: \"keyword\",\n          7: \"title.class.inherited\"\n        }\n      },\n      // class Car\n      {\n        match: [\n          /class/,\n          /\\s+/,\n          IDENT_RE$12\n        ],\n        scope: {\n          1: \"keyword\",\n          3: \"title.class\"\n        }\n      }\n    ]\n  };\n  const CLASS_REFERENCE = {\n    relevance: 0,\n    match: regex.either(\n      // Hard coded exceptions\n      /\\bJSON/,\n      // Float32Array, OutT\n      /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n      // CSSFactory, CSSFactoryT\n      /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n      // FPs, FPsT\n      /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/\n      // P\n      // single letters are not highlighted\n      // BLAH\n      // this will be flagged as a UPPER_CASE_CONSTANT instead\n    ),\n    className: \"title.class\",\n    keywords: {\n      _: [\n        // se we still get relevance credit for JS library classes\n        ...TYPES,\n        ...ERROR_TYPES\n      ]\n    }\n  };\n  const USE_STRICT = {\n    label: \"use_strict\",\n    className: \"meta\",\n    relevance: 10,\n    begin: /^\\s*['\"]use (strict|asm)['\"]/\n  };\n  const FUNCTION_DEFINITION = {\n    variants: [\n      {\n        match: [\n          /function/,\n          /\\s+/,\n          IDENT_RE$12,\n          /(?=\\s*\\()/\n        ]\n      },\n      // anonymous function\n      {\n        match: [\n          /function/,\n          /\\s*(?=\\()/\n        ]\n      }\n    ],\n    className: {\n      1: \"keyword\",\n      3: \"title.function\"\n    },\n    label: \"func.def\",\n    contains: [PARAMS],\n    illegal: /%/\n  };\n  const UPPER_CASE_CONSTANT = {\n    relevance: 0,\n    match: /\\b[A-Z][A-Z_0-9]+\\b/,\n    className: \"variable.constant\"\n  };\n  function noneOf(list) {\n    return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n  }\n  const FUNCTION_CALL = {\n    match: regex.concat(\n      /\\b/,\n      noneOf([\n        ...BUILT_IN_GLOBALS,\n        \"super\",\n        \"import\"\n      ]),\n      IDENT_RE$12,\n      regex.lookahead(/\\(/)\n    ),\n    className: \"title.function\",\n    relevance: 0\n  };\n  const PROPERTY_ACCESS = {\n    begin: regex.concat(/\\./, regex.lookahead(\n      regex.concat(IDENT_RE$12, /(?![0-9A-Za-z$_(])/)\n    )),\n    end: IDENT_RE$12,\n    excludeBegin: true,\n    keywords: \"prototype\",\n    className: \"property\",\n    relevance: 0\n  };\n  const GETTER_OR_SETTER = {\n    match: [\n      /get|set/,\n      /\\s+/,\n      IDENT_RE$12,\n      /(?=\\()/\n    ],\n    className: {\n      1: \"keyword\",\n      3: \"title.function\"\n    },\n    contains: [\n      {\n        // eat to avoid empty params\n        begin: /\\(\\)/\n      },\n      PARAMS\n    ]\n  };\n  const FUNC_LEAD_IN_RE = \"(\\\\([^()]*(\\\\([^()]*(\\\\([^()]*\\\\)[^()]*)*\\\\)[^()]*)*\\\\)|\" + hljs.UNDERSCORE_IDENT_RE + \")\\\\s*=>\";\n  const FUNCTION_VARIABLE = {\n    match: [\n      /const|var|let/,\n      /\\s+/,\n      IDENT_RE$12,\n      /\\s*/,\n      /=\\s*/,\n      /(async\\s*)?/,\n      // async is optional\n      regex.lookahead(FUNC_LEAD_IN_RE)\n    ],\n    keywords: \"async\",\n    className: {\n      1: \"keyword\",\n      3: \"title.function\"\n    },\n    contains: [\n      PARAMS\n    ]\n  };\n  return {\n    name: \"Javascript\",\n    aliases: [\"js\", \"jsx\", \"mjs\", \"cjs\"],\n    keywords: KEYWORDS$12,\n    // this will be extended by TypeScript\n    exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n    illegal: /#(?![$_A-z])/,\n    contains: [\n      hljs.SHEBANG({\n        label: \"shebang\",\n        binary: \"node\",\n        relevance: 5\n      }),\n      USE_STRICT,\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      HTML_TEMPLATE,\n      CSS_TEMPLATE,\n      TEMPLATE_STRING,\n      COMMENT,\n      // Skip numbers when they are part of a variable name\n      { match: /\\$\\d+/ },\n      NUMBER,\n      CLASS_REFERENCE,\n      {\n        className: \"attr\",\n        begin: IDENT_RE$12 + regex.lookahead(\":\"),\n        relevance: 0\n      },\n      FUNCTION_VARIABLE,\n      {\n        // \"value\" container\n        begin: \"(\" + hljs.RE_STARTERS_RE + \"|\\\\b(case|return|throw)\\\\b)\\\\s*\",\n        keywords: \"return throw case\",\n        relevance: 0,\n        contains: [\n          COMMENT,\n          hljs.REGEXP_MODE,\n          {\n            className: \"function\",\n            // we have to count the parens to make sure we actually have the\n            // correct bounding ( ) before the =>.  There could be any number of\n            // sub-expressions inside also surrounded by parens.\n            begin: FUNC_LEAD_IN_RE,\n            returnBegin: true,\n            end: \"\\\\s*=>\",\n            contains: [\n              {\n                className: \"params\",\n                variants: [\n                  {\n                    begin: hljs.UNDERSCORE_IDENT_RE,\n                    relevance: 0\n                  },\n                  {\n                    className: null,\n                    begin: /\\(\\s*\\)/,\n                    skip: true\n                  },\n                  {\n                    begin: /\\(/,\n                    end: /\\)/,\n                    excludeBegin: true,\n                    excludeEnd: true,\n                    keywords: KEYWORDS$12,\n                    contains: PARAMS_CONTAINS\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            // could be a comma delimited list of params to a function call\n            begin: /,/,\n            relevance: 0\n          },\n          {\n            match: /\\s+/,\n            relevance: 0\n          },\n          {\n            // JSX\n            variants: [\n              { begin: FRAGMENT.begin, end: FRAGMENT.end },\n              { match: XML_SELF_CLOSING },\n              {\n                begin: XML_TAG.begin,\n                // we carefully check the opening tag to see if it truly\n                // is a tag and not a false positive\n                \"on:begin\": XML_TAG.isTrulyOpeningTag,\n                end: XML_TAG.end\n              }\n            ],\n            subLanguage: \"xml\",\n            contains: [\n              {\n                begin: XML_TAG.begin,\n                end: XML_TAG.end,\n                skip: true,\n                contains: [\"self\"]\n              }\n            ]\n          }\n        ]\n      },\n      FUNCTION_DEFINITION,\n      {\n        // prevent this from getting swallowed up by function\n        // since they appear \"function like\"\n        beginKeywords: \"while if switch catch for\"\n      },\n      {\n        // we have to count the parens to make sure we actually have the correct\n        // bounding ( ).  There could be any number of sub-expressions inside\n        // also surrounded by parens.\n        begin: \"\\\\b(?!function)\" + hljs.UNDERSCORE_IDENT_RE + \"\\\\([^()]*(\\\\([^()]*(\\\\([^()]*\\\\)[^()]*)*\\\\)[^()]*)*\\\\)\\\\s*\\\\{\",\n        // end parens\n        returnBegin: true,\n        label: \"func.def\",\n        contains: [\n          PARAMS,\n          hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$12, className: \"title.function\" })\n        ]\n      },\n      // catch ... so it won't trigger the property rule below\n      {\n        match: /\\.\\.\\./,\n        relevance: 0\n      },\n      PROPERTY_ACCESS,\n      // hack: prevents detection of keywords in some circumstances\n      // .keyword()\n      // $keyword = x\n      {\n        match: \"\\\\$\" + IDENT_RE$12,\n        relevance: 0\n      },\n      {\n        match: [/\\bconstructor(?=\\s*\\()/],\n        className: { 1: \"title.function\" },\n        contains: [PARAMS]\n      },\n      FUNCTION_CALL,\n      UPPER_CASE_CONSTANT,\n      CLASS_OR_EXTENDS,\n      GETTER_OR_SETTER,\n      {\n        match: /\\$[(.]/\n        // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n      }\n    ]\n  };\n}\nfunction typescript(hljs) {\n  const tsLanguage = javascript(hljs);\n  const IDENT_RE$12 = IDENT_RE;\n  const TYPES2 = [\n    \"any\",\n    \"void\",\n    \"number\",\n    \"boolean\",\n    \"string\",\n    \"object\",\n    \"never\",\n    \"symbol\",\n    \"bigint\",\n    \"unknown\"\n  ];\n  const NAMESPACE = {\n    beginKeywords: \"namespace\",\n    end: /\\{/,\n    excludeEnd: true,\n    contains: [tsLanguage.exports.CLASS_REFERENCE]\n  };\n  const INTERFACE = {\n    beginKeywords: \"interface\",\n    end: /\\{/,\n    excludeEnd: true,\n    keywords: {\n      keyword: \"interface extends\",\n      built_in: TYPES2\n    },\n    contains: [tsLanguage.exports.CLASS_REFERENCE]\n  };\n  const USE_STRICT = {\n    className: \"meta\",\n    relevance: 10,\n    begin: /^\\s*['\"]use strict['\"]/\n  };\n  const TS_SPECIFIC_KEYWORDS = [\n    \"type\",\n    \"namespace\",\n    \"interface\",\n    \"public\",\n    \"private\",\n    \"protected\",\n    \"implements\",\n    \"declare\",\n    \"abstract\",\n    \"readonly\",\n    \"enum\",\n    \"override\"\n  ];\n  const KEYWORDS$12 = {\n    $pattern: IDENT_RE,\n    keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n    literal: LITERALS,\n    built_in: BUILT_INS.concat(TYPES2),\n    \"variable.language\": BUILT_IN_VARIABLES\n  };\n  const DECORATOR = {\n    className: \"meta\",\n    begin: \"@\" + IDENT_RE$12\n  };\n  const swapMode = (mode, label, replacement) => {\n    const indx = mode.contains.findIndex((m) => m.label === label);\n    if (indx === -1) {\n      throw new Error(\"can not find mode to replace\");\n    }\n    mode.contains.splice(indx, 1, replacement);\n  };\n  Object.assign(tsLanguage.keywords, KEYWORDS$12);\n  tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n  tsLanguage.contains = tsLanguage.contains.concat([\n    DECORATOR,\n    NAMESPACE,\n    INTERFACE\n  ]);\n  swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n  swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n  const functionDeclaration = tsLanguage.contains.find((m) => m.label === \"func.def\");\n  functionDeclaration.relevance = 0;\n  Object.assign(tsLanguage, {\n    name: \"TypeScript\",\n    aliases: [\n      \"ts\",\n      \"tsx\"\n    ]\n  });\n  return tsLanguage;\n}\nfunction xml(hljs) {\n  const regex = hljs.regex;\n  const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n  const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n  const XML_ENTITIES = {\n    className: \"symbol\",\n    begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n  };\n  const XML_META_KEYWORDS = {\n    begin: /\\s/,\n    contains: [\n      {\n        className: \"keyword\",\n        begin: /#?[a-z_][a-z1-9_-]+/,\n        illegal: /\\n/\n      }\n    ]\n  };\n  const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n    begin: /\\(/,\n    end: /\\)/\n  });\n  const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: \"string\" });\n  const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: \"string\" });\n  const TAG_INTERNALS = {\n    endsWithParent: true,\n    illegal: /</,\n    relevance: 0,\n    contains: [\n      {\n        className: \"attr\",\n        begin: XML_IDENT_RE,\n        relevance: 0\n      },\n      {\n        begin: /=\\s*/,\n        relevance: 0,\n        contains: [\n          {\n            className: \"string\",\n            endsParent: true,\n            variants: [\n              {\n                begin: /\"/,\n                end: /\"/,\n                contains: [XML_ENTITIES]\n              },\n              {\n                begin: /'/,\n                end: /'/,\n                contains: [XML_ENTITIES]\n              },\n              { begin: /[^\\s\"'=<>`]+/ }\n            ]\n          }\n        ]\n      }\n    ]\n  };\n  return {\n    name: \"HTML, XML\",\n    aliases: [\n      \"html\",\n      \"xhtml\",\n      \"rss\",\n      \"atom\",\n      \"xjb\",\n      \"xsd\",\n      \"xsl\",\n      \"plist\",\n      \"wsf\",\n      \"svg\"\n    ],\n    case_insensitive: true,\n    unicodeRegex: true,\n    contains: [\n      {\n        className: \"meta\",\n        begin: /<![a-z]/,\n        end: />/,\n        relevance: 10,\n        contains: [\n          XML_META_KEYWORDS,\n          QUOTE_META_STRING_MODE,\n          APOS_META_STRING_MODE,\n          XML_META_PAR_KEYWORDS,\n          {\n            begin: /\\[/,\n            end: /\\]/,\n            contains: [\n              {\n                className: \"meta\",\n                begin: /<![a-z]/,\n                end: />/,\n                contains: [\n                  XML_META_KEYWORDS,\n                  XML_META_PAR_KEYWORDS,\n                  QUOTE_META_STRING_MODE,\n                  APOS_META_STRING_MODE\n                ]\n              }\n            ]\n          }\n        ]\n      },\n      hljs.COMMENT(\n        /<!--/,\n        /-->/,\n        { relevance: 10 }\n      ),\n      {\n        begin: /<!\\[CDATA\\[/,\n        end: /\\]\\]>/,\n        relevance: 10\n      },\n      XML_ENTITIES,\n      // xml processing instructions\n      {\n        className: \"meta\",\n        end: /\\?>/,\n        variants: [\n          {\n            begin: /<\\?xml/,\n            relevance: 10,\n            contains: [\n              QUOTE_META_STRING_MODE\n            ]\n          },\n          {\n            begin: /<\\?[a-z][a-z0-9]+/\n          }\n        ]\n      },\n      {\n        className: \"tag\",\n        /*\n        The lookahead pattern (?=...) ensures that 'begin' only matches\n        '<style' as a single word, followed by a whitespace or an\n        ending bracket.\n        */\n        begin: /<style(?=\\s|>)/,\n        end: />/,\n        keywords: { name: \"style\" },\n        contains: [TAG_INTERNALS],\n        starts: {\n          end: /<\\/style>/,\n          returnEnd: true,\n          subLanguage: [\n            \"css\",\n            \"xml\"\n          ]\n        }\n      },\n      {\n        className: \"tag\",\n        // See the comment in the <style tag about the lookahead pattern\n        begin: /<script(?=\\s|>)/,\n        end: />/,\n        keywords: { name: \"script\" },\n        contains: [TAG_INTERNALS],\n        starts: {\n          end: /<\\/script>/,\n          returnEnd: true,\n          subLanguage: [\n            \"javascript\",\n            \"handlebars\",\n            \"xml\"\n          ]\n        }\n      },\n      // we need this for now for jSX\n      {\n        className: \"tag\",\n        begin: /<>|<\\/>/\n      },\n      // open tag\n      {\n        className: \"tag\",\n        begin: regex.concat(\n          /</,\n          regex.lookahead(regex.concat(\n            TAG_NAME_RE,\n            // <tag/>\n            // <tag>\n            // <tag ...\n            regex.either(/\\/>/, />/, /\\s/)\n          ))\n        ),\n        end: /\\/?>/,\n        contains: [\n          {\n            className: \"name\",\n            begin: TAG_NAME_RE,\n            relevance: 0,\n            starts: TAG_INTERNALS\n          }\n        ]\n      },\n      // close tag\n      {\n        className: \"tag\",\n        begin: regex.concat(\n          /<\\//,\n          regex.lookahead(regex.concat(\n            TAG_NAME_RE,\n            />/\n          ))\n        ),\n        contains: [\n          {\n            className: \"name\",\n            begin: TAG_NAME_RE,\n            relevance: 0\n          },\n          {\n            begin: />/,\n            relevance: 0,\n            endsParent: true\n          }\n        ]\n      }\n    ]\n  };\n}\nconst codeLanguages = {\n  javascript: javascript$1,\n  typescript,\n  css,\n  xml,\n  markdown\n};\nconst injectCodeCore = async () => (await import(\"./core-3bcb80f2.js\")).default;\nfunction addCodeLanguage(name, language) {\n  codeLanguages[name] = language;\n}\nconst window$1 = getWindow();\nconst document$1 = getDocument();\nfunction CodeJar(editor, highlight, opt = {}) {\n  const options = {\n    tab: \"\t\",\n    indentOn: /[({\\[]$/,\n    moveToNewLine: /^[)}\\]]/,\n    spellcheck: false,\n    catchTab: true,\n    preserveIdent: true,\n    addClosing: true,\n    history: true,\n    window: window$1,\n    ...opt\n  };\n  const listeners = [];\n  const history = [];\n  let at = -1;\n  let focus = false;\n  let callback;\n  let prev;\n  editor.setAttribute(\"contenteditable\", \"plaintext-only\");\n  editor.setAttribute(\"spellcheck\", options.spellcheck ? \"true\" : \"false\");\n  editor.style.outline = \"none\";\n  editor.style.overflowWrap = \"break-word\";\n  editor.style.overflowY = \"auto\";\n  editor.style.whiteSpace = \"pre-wrap\";\n  let isLegacy = false;\n  highlight(editor);\n  if (editor.contentEditable !== \"plaintext-only\")\n    isLegacy = true;\n  if (isLegacy)\n    editor.setAttribute(\"contenteditable\", \"true\");\n  const debounceHighlight = debounce(() => {\n    const pos = save();\n    highlight(editor, pos);\n    restore(pos);\n  }, 30);\n  let recording = false;\n  const shouldRecord = (event) => {\n    return !isUndo(event) && !isRedo(event) && event.key !== \"Meta\" && event.key !== \"Control\" && event.key !== \"Alt\" && !event.key.startsWith(\"Arrow\");\n  };\n  const debounceRecordHistory = debounce((event) => {\n    if (shouldRecord(event)) {\n      recordHistory();\n      recording = false;\n    }\n  }, 300);\n  const on = (type, fn) => {\n    listeners.push([\n      type,\n      fn\n    ]);\n    editor.addEventListener(type, fn);\n  };\n  on(\"keydown\", (event) => {\n    if (event.defaultPrevented)\n      return;\n    prev = toString5();\n    if (options.preserveIdent)\n      handleNewLine(event);\n    else\n      legacyNewLineFix(event);\n    if (options.catchTab)\n      handleTabCharacters(event);\n    if (options.addClosing)\n      handleSelfClosingCharacters(event);\n    if (options.history) {\n      handleUndoRedo(event);\n      if (shouldRecord(event) && !recording) {\n        recordHistory();\n        recording = true;\n      }\n    }\n    if (isLegacy)\n      restore(save());\n  });\n  on(\"keyup\", (event) => {\n    if (event.defaultPrevented)\n      return;\n    if (event.isComposing)\n      return;\n    if (prev !== toString5())\n      debounceHighlight();\n    debounceRecordHistory(event);\n    if (callback)\n      callback(toString5());\n  });\n  on(\"focus\", (_event) => {\n    focus = true;\n  });\n  on(\"blur\", (_event) => {\n    focus = false;\n  });\n  on(\"paste\", (event) => {\n    recordHistory();\n    handlePaste(event);\n    recordHistory();\n    if (callback)\n      callback(toString5());\n  });\n  function save() {\n    const s = getSelection();\n    const pos = {\n      start: 0,\n      end: 0,\n      dir: void 0\n    };\n    let { anchorNode, anchorOffset, focusNode, focusOffset } = s;\n    if (!anchorNode || !focusNode)\n      throw \"error1\";\n    if (anchorNode.nodeType === Node.ELEMENT_NODE) {\n      const node = document$1.createTextNode(\"\");\n      anchorNode.insertBefore(node, anchorNode.childNodes[anchorOffset]);\n      anchorNode = node;\n      anchorOffset = 0;\n    }\n    if (focusNode.nodeType === Node.ELEMENT_NODE) {\n      const node = document$1.createTextNode(\"\");\n      focusNode.insertBefore(node, focusNode.childNodes[focusOffset]);\n      focusNode = node;\n      focusOffset = 0;\n    }\n    visit(editor, (el) => {\n      if (el === anchorNode && el === focusNode) {\n        pos.start += anchorOffset;\n        pos.end += focusOffset;\n        pos.dir = anchorOffset <= focusOffset ? \"->\" : \"<-\";\n        return \"stop\";\n      }\n      if (el === anchorNode) {\n        pos.start += anchorOffset;\n        if (!pos.dir)\n          pos.dir = \"->\";\n        else\n          return \"stop\";\n      } else if (el === focusNode) {\n        pos.end += focusOffset;\n        if (!pos.dir)\n          pos.dir = \"<-\";\n        else\n          return \"stop\";\n      }\n      if (el.nodeType === Node.TEXT_NODE) {\n        if (pos.dir != \"->\")\n          pos.start += el.nodeValue.length;\n        if (pos.dir != \"<-\")\n          pos.end += el.nodeValue.length;\n      }\n    });\n    editor.normalize();\n    return pos;\n  }\n  function restore(pos) {\n    const s = getSelection();\n    let startNode, startOffset = 0;\n    let endNode, endOffset = 0;\n    if (!pos.dir)\n      pos.dir = \"->\";\n    if (pos.start < 0)\n      pos.start = 0;\n    if (pos.end < 0)\n      pos.end = 0;\n    if (pos.dir == \"<-\") {\n      const { start, end } = pos;\n      pos.start = end;\n      pos.end = start;\n    }\n    let current = 0;\n    visit(editor, (el) => {\n      if (el.nodeType !== Node.TEXT_NODE)\n        return;\n      const len = (el.nodeValue || \"\").length;\n      if (current + len > pos.start) {\n        if (!startNode) {\n          startNode = el;\n          startOffset = pos.start - current;\n        }\n        if (current + len > pos.end) {\n          endNode = el;\n          endOffset = pos.end - current;\n          return \"stop\";\n        }\n      }\n      current += len;\n    });\n    if (!startNode)\n      startNode = editor, startOffset = editor.childNodes.length;\n    if (!endNode)\n      endNode = editor, endOffset = editor.childNodes.length;\n    if (pos.dir == \"<-\")\n      [startNode, startOffset, endNode, endOffset] = [\n        endNode,\n        endOffset,\n        startNode,\n        startOffset\n      ];\n    s.setBaseAndExtent(startNode, startOffset, endNode, endOffset);\n  }\n  function beforeCursor() {\n    const s = getSelection();\n    const r0 = s.getRangeAt(0);\n    const r = document$1.createRange();\n    r.selectNodeContents(editor);\n    r.setEnd(r0.startContainer, r0.startOffset);\n    return r.toString();\n  }\n  function afterCursor() {\n    const s = getSelection();\n    const r0 = s.getRangeAt(0);\n    const r = document$1.createRange();\n    r.selectNodeContents(editor);\n    r.setStart(r0.endContainer, r0.endOffset);\n    return r.toString();\n  }\n  function handleNewLine(event) {\n    if (event.key === \"Enter\") {\n      const before = beforeCursor();\n      const after = afterCursor();\n      const [padding] = findPadding(before);\n      let newLinePadding = padding;\n      if (options.indentOn.test(before))\n        newLinePadding += options.tab;\n      if (newLinePadding.length > 0) {\n        preventDefault(event);\n        event.stopPropagation();\n        insert(\"\\n\" + newLinePadding);\n      } else\n        legacyNewLineFix(event);\n      if (newLinePadding !== padding && options.moveToNewLine.test(after)) {\n        const pos = save();\n        insert(\"\\n\" + padding);\n        restore(pos);\n      }\n    }\n  }\n  function legacyNewLineFix(event) {\n    if (isLegacy && event.key === \"Enter\") {\n      preventDefault(event);\n      event.stopPropagation();\n      if (afterCursor() == \"\") {\n        insert(\"\\n \");\n        const pos = save();\n        pos.start = --pos.end;\n        restore(pos);\n      } else\n        insert(\"\\n\");\n    }\n  }\n  function handleSelfClosingCharacters(event) {\n    const open = `([{'\"`;\n    const close = `)]}'\"`;\n    const codeAfter = afterCursor();\n    const codeBefore = beforeCursor();\n    const escapeCharacter = codeBefore.substr(codeBefore.length - 1) === \"\\\\\";\n    const charAfter = codeAfter.substr(0, 1);\n    if (close.includes(event.key) && !escapeCharacter && charAfter === event.key) {\n      const pos = save();\n      preventDefault(event);\n      pos.start = ++pos.end;\n      restore(pos);\n    } else if (open.includes(event.key) && !escapeCharacter && (`\"'`.includes(event.key) || [\n      \"\",\n      \" \",\n      \"\\n\"\n    ].includes(charAfter))) {\n      preventDefault(event);\n      const pos = save();\n      const wrapText = pos.start == pos.end ? \"\" : getSelection().toString();\n      const text = event.key + wrapText + close[open.indexOf(event.key)];\n      insert(text);\n      pos.start++;\n      pos.end++;\n      restore(pos);\n    }\n  }\n  function handleTabCharacters(event) {\n    if (event.key === \"Tab\") {\n      preventDefault(event);\n      if (event.shiftKey) {\n        const before = beforeCursor();\n        const [padding, start] = findPadding(before);\n        if (padding.length > 0) {\n          const pos = save();\n          const len = Math.min(options.tab.length, padding.length);\n          restore({\n            start,\n            end: start + len\n          });\n          document$1.execCommand(\"delete\");\n          pos.start -= len;\n          pos.end -= len;\n          restore(pos);\n        }\n      } else\n        insert(options.tab);\n    }\n  }\n  function handleUndoRedo(event) {\n    if (isUndo(event)) {\n      preventDefault(event);\n      at--;\n      const record = history[at];\n      if (record) {\n        editor.innerHTML = record.html;\n        restore(record.pos);\n      }\n      if (at < 0)\n        at = 0;\n    }\n    if (isRedo(event)) {\n      preventDefault(event);\n      at++;\n      const record = history[at];\n      if (record) {\n        editor.innerHTML = record.html;\n        restore(record.pos);\n      }\n      if (at >= history.length)\n        at--;\n    }\n  }\n  function recordHistory() {\n    if (!focus)\n      return;\n    const html = editor.innerHTML;\n    const pos = save();\n    const lastRecord = history[at];\n    if (lastRecord) {\n      if (lastRecord.html === html && lastRecord.pos.start === pos.start && lastRecord.pos.end === pos.end)\n        return;\n    }\n    at++;\n    history[at] = {\n      html,\n      pos\n    };\n    history.splice(at + 1);\n    if (at > 300) {\n      at = 300;\n      history.splice(0, 1);\n    }\n  }\n  function handlePaste(event) {\n    preventDefault(event);\n    const text = (event.originalEvent || event).clipboardData.getData(\"text/plain\").replace(/\\r/g, \"\");\n    const pos = save();\n    insert(text);\n    highlight(editor);\n    restore({\n      start: Math.min(pos.start, pos.end) + text.length,\n      end: Math.min(pos.start, pos.end) + text.length,\n      dir: \"<-\"\n    });\n  }\n  function visit(editor2, visitor) {\n    const queue = [];\n    if (editor2.firstChild)\n      queue.push(editor2.firstChild);\n    let el = queue.pop();\n    while (el) {\n      if (visitor(el) === \"stop\")\n        break;\n      if (el.nextSibling)\n        queue.push(el.nextSibling);\n      if (el.firstChild)\n        queue.push(el.firstChild);\n      el = queue.pop();\n    }\n  }\n  function isCtrl(event) {\n    return event.metaKey || event.ctrlKey;\n  }\n  function isUndo(event) {\n    return isCtrl(event) && !event.shiftKey && event.code === \"KeyZ\";\n  }\n  function isRedo(event) {\n    return isCtrl(event) && event.shiftKey && event.code === \"KeyZ\";\n  }\n  function insert(text) {\n    text = text.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&#039;\");\n    document$1.execCommand(\"insertHTML\", false, text);\n  }\n  function debounce(cb, wait2) {\n    let timeout = 0;\n    return (...args) => {\n      clearTimeout(timeout);\n      timeout = window$1.setTimeout(() => cb(...args), wait2);\n    };\n  }\n  function findPadding(text) {\n    let i = text.length - 1;\n    while (i >= 0 && text[i] !== \"\\n\")\n      i--;\n    i++;\n    let j = i;\n    while (j < text.length && /[ \\t]/.test(text[j]))\n      j++;\n    return [\n      text.substring(i, j) || \"\",\n      i,\n      j\n    ];\n  }\n  function toString5() {\n    return editor.textContent || \"\";\n  }\n  function preventDefault(event) {\n    event.preventDefault();\n  }\n  function getSelection() {\n    if (editor.parentNode?.nodeType == Node.DOCUMENT_FRAGMENT_NODE)\n      return editor.parentNode.getSelection();\n    return window$1.getSelection();\n  }\n  return {\n    updateOptions(newOptions) {\n      Object.assign(options, newOptions);\n    },\n    updateCode(code2) {\n      editor.textContent = code2;\n      highlight(editor);\n    },\n    onUpdate(cb) {\n      callback = cb;\n    },\n    toString: toString5,\n    save,\n    restore,\n    recordHistory,\n    destroy() {\n      for (const [type, fn] of listeners)\n        editor.removeEventListener(type, fn);\n    }\n  };\n}\nfunction random(min, max) {\n  return Math.floor(Math.random() * (max - min + 1) + min);\n}\nfunction hue2rgb(p, q, t) {\n  if (t < 0)\n    t += 1;\n  if (t > 1)\n    t -= 1;\n  if (t < 1 / 6)\n    return p + (q - p) * 6 * t;\n  if (t < 0.5)\n    return q;\n  if (t < 2 / 3)\n    return p + (q - p) * (2 / 3 - t) * 6;\n  return p;\n}\nfunction hsl2rgba(rawH, rawS, rawL, alpha = 1) {\n  const h = rawH / 360;\n  const s = rawS / 110;\n  const l = rawL / 85;\n  let r, g, b;\n  if (s === 0)\n    r = g = b = l;\n  else {\n    const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n    const p = 2 * l - q;\n    r = hue2rgb(p, q, h + 1 / 3);\n    g = hue2rgb(p, q, h);\n    b = hue2rgb(p, q, h - 1 / 3);\n  }\n  return `rgba(${Math.round(r * 255)}, ${Math.round(g * 255)}, ${Math.round(b * 255)}, ${alpha})`;\n}\nfunction hashCode(text) {\n  let hash = 0;\n  for (let i = 0; i < text.length; i++)\n    hash = text.charCodeAt(i) + ((hash << 5) - hash);\n  return hash;\n}\nasync function randomColor(text, alpha = 0.5) {\n  const h = hashCode(text) % 360;\n  const s = random(55, 90);\n  const l = random(40, 60);\n  return {\n    foreground: hsl2rgba(h, s, l * 0.75, 1),\n    background: hsl2rgba(h, s, l * 1.1, alpha)\n  };\n}\nlet DebugLevel;\n(function(DebugLevel2) {\n  DebugLevel2[DebugLevel2[\"None\"] = 0] = \"None\";\n  DebugLevel2[DebugLevel2[\"Log\"] = 1] = \"Log\";\n  DebugLevel2[DebugLevel2[\"Breakpoint\"] = 2] = \"Breakpoint\";\n})(DebugLevel || (DebugLevel = {}));\nlet debugLevel = DebugLevel.None;\nconst debugStrategies = {\n  [DebugLevel.None]: () => null,\n  [DebugLevel.Log]: (message) => console.log(message),\n  [DebugLevel.Breakpoint]: (message) => {\n    console.log(message);\n    debugger;\n  }\n};\nfunction setDebugLevel(level) {\n  debugLevel = level;\n}\nfunction debug(message) {\n  debugStrategies[debugLevel](message);\n}\nfunction querySelectorAllObservable(element, selector, callback) {\n  if (!element.querySelectorAll)\n    return;\n  const elements = Array.from(element.querySelectorAll(selector));\n  if (callback)\n    elements.forEach(callback);\n  const observer = new MutationObserver((mutations) => {\n    mutations.forEach((mutation) => {\n      mutation.addedNodes.forEach((element2) => {\n        if (element2.nodeType === Node.ELEMENT_NODE && element2.matches(selector)) {\n          elements.push(element2);\n          callback && callback(element2);\n        }\n      });\n    });\n  });\n  observer.observe(element, {\n    childList: true,\n    subtree: true\n  });\n  return elements;\n}\nconst suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d[\\d.]{0,14}\\s*$/;\nfunction jsonParseTransform(key, value3) {\n  if (key === \"__proto__\") {\n    return;\n  }\n  if (key === \"constructor\" && value3 && typeof value3 === \"object\" && \"prototype\" in value3) {\n    return;\n  }\n  return value3;\n}\nfunction destr(value3, options = {}) {\n  if (typeof value3 !== \"string\") {\n    return value3;\n  }\n  const _lval = value3.toLowerCase().trim();\n  if (_lval === \"true\") {\n    return true;\n  }\n  if (_lval === \"false\") {\n    return false;\n  }\n  if (_lval === \"null\") {\n    return null;\n  }\n  if (_lval === \"nan\") {\n    return Number.NaN;\n  }\n  if (_lval === \"infinity\") {\n    return Number.POSITIVE_INFINITY;\n  }\n  if (_lval === \"undefined\") {\n    return void 0;\n  }\n  if (!JsonSigRx.test(value3)) {\n    if (options.strict) {\n      throw new SyntaxError(\"Invalid JSON\");\n    }\n    return value3;\n  }\n  try {\n    if (suspectProtoRx.test(value3) || suspectConstructorRx.test(value3)) {\n      return JSON.parse(value3, jsonParseTransform);\n    }\n    return JSON.parse(value3);\n  } catch (error) {\n    if (options.strict) {\n      throw error;\n    }\n    return value3;\n  }\n}\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst EQUAL_RE = /=/g;\nconst PLUS_RE = /\\+/g;\nconst ENC_CARET_RE = /%5e/gi;\nconst ENC_BACKTICK_RE = /%60/gi;\nconst ENC_PIPE_RE = /%7c/gi;\nconst ENC_SPACE_RE = /%20/gi;\nfunction encode$1(text) {\n  return encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\");\n}\nfunction encodeQueryValue(input) {\n  return encode$1(typeof input === \"string\" ? input : JSON.stringify(input)).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CARET_RE, \"^\");\n}\nfunction encodeQueryKey(text) {\n  return encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\nfunction decode$1(text = \"\") {\n  try {\n    return decodeURIComponent(\"\" + text);\n  } catch {\n    return \"\" + text;\n  }\n}\nfunction decodeQueryValue(text) {\n  return decode$1(text.replace(PLUS_RE, \" \"));\n}\nfunction parseQuery(parametersString = \"\") {\n  const object = {};\n  if (parametersString[0] === \"?\") {\n    parametersString = parametersString.slice(1);\n  }\n  for (const parameter of parametersString.split(\"&\")) {\n    const s = parameter.match(/([^=]+)=?(.*)/) || [];\n    if (s.length < 2) {\n      continue;\n    }\n    const key = decode$1(s[1]);\n    if (key === \"__proto__\" || key === \"constructor\") {\n      continue;\n    }\n    const value3 = decodeQueryValue(s[2] || \"\");\n    if (typeof object[key] !== \"undefined\") {\n      if (Array.isArray(object[key])) {\n        object[key].push(value3);\n      } else {\n        object[key] = [object[key], value3];\n      }\n    } else {\n      object[key] = value3;\n    }\n  }\n  return object;\n}\nfunction encodeQueryItem(key, value3) {\n  if (typeof value3 === \"number\" || typeof value3 === \"boolean\") {\n    value3 = String(value3);\n  }\n  if (!value3) {\n    return encodeQueryKey(key);\n  }\n  if (Array.isArray(value3)) {\n    return value3.map((_value) => `${encodeQueryKey(key)}=${encodeQueryValue(_value)}`).join(\"&\");\n  }\n  return `${encodeQueryKey(key)}=${encodeQueryValue(value3)}`;\n}\nfunction stringifyQuery(query) {\n  return Object.keys(query).filter((k) => query[k] !== void 0).map((k) => encodeQueryItem(k, query[k])).join(\"&\");\n}\nconst PROTOCOL_STRICT_REGEX = /^\\w{2,}:([/\\\\]{1,2})/;\nconst PROTOCOL_REGEX = /^\\w{2,}:([/\\\\]{2})?/;\nconst PROTOCOL_RELATIVE_REGEX = /^([/\\\\]\\s*){2,}[^/\\\\]/;\nfunction hasProtocol(inputString, opts = {}) {\n  if (typeof opts === \"boolean\") {\n    opts = { acceptRelative: opts };\n  }\n  if (opts.strict) {\n    return PROTOCOL_STRICT_REGEX.test(inputString);\n  }\n  return PROTOCOL_REGEX.test(inputString) || (opts.acceptRelative ? PROTOCOL_RELATIVE_REGEX.test(inputString) : false);\n}\nconst TRAILING_SLASH_RE = /\\/$|\\/\\?/;\nfunction hasTrailingSlash(input = \"\", queryParameters = false) {\n  if (!queryParameters) {\n    return input.endsWith(\"/\");\n  }\n  return TRAILING_SLASH_RE.test(input);\n}\nfunction withoutTrailingSlash(input = \"\", queryParameters = false) {\n  if (!queryParameters) {\n    return (hasTrailingSlash(input) ? input.slice(0, -1) : input) || \"/\";\n  }\n  if (!hasTrailingSlash(input, true)) {\n    return input || \"/\";\n  }\n  const [s0, ...s] = input.split(\"?\");\n  return (s0.slice(0, -1) || \"/\") + (s.length > 0 ? `?${s.join(\"?\")}` : \"\");\n}\nfunction withTrailingSlash(input = \"\", queryParameters = false) {\n  if (!queryParameters) {\n    return input.endsWith(\"/\") ? input : input + \"/\";\n  }\n  if (hasTrailingSlash(input, true)) {\n    return input || \"/\";\n  }\n  const [s0, ...s] = input.split(\"?\");\n  return s0 + \"/\" + (s.length > 0 ? `?${s.join(\"?\")}` : \"\");\n}\nfunction hasLeadingSlash(input = \"\") {\n  return input.startsWith(\"/\");\n}\nfunction withoutLeadingSlash(input = \"\") {\n  return (hasLeadingSlash(input) ? input.slice(1) : input) || \"/\";\n}\nfunction withBase(input, base) {\n  if (isEmptyURL(base) || hasProtocol(input)) {\n    return input;\n  }\n  const _base = withoutTrailingSlash(base);\n  if (input.startsWith(_base)) {\n    return input;\n  }\n  return joinURL(_base, input);\n}\nfunction withQuery(input, query) {\n  const parsed = parseURL(input);\n  const mergedQuery = { ...parseQuery(parsed.search), ...query };\n  parsed.search = stringifyQuery(mergedQuery);\n  return stringifyParsedURL(parsed);\n}\nfunction isEmptyURL(url2) {\n  return !url2 || url2 === \"/\";\n}\nfunction isNonEmptyURL(url2) {\n  return url2 && url2 !== \"/\";\n}\nfunction joinURL(base, ...input) {\n  let url2 = base || \"\";\n  for (const index of input.filter((url22) => isNonEmptyURL(url22))) {\n    url2 = url2 ? withTrailingSlash(url2) + withoutLeadingSlash(index) : index;\n  }\n  return url2;\n}\nfunction parseURL(input = \"\", defaultProto) {\n  if (!hasProtocol(input, { acceptRelative: true })) {\n    return defaultProto ? parseURL(defaultProto + input) : parsePath(input);\n  }\n  const [protocol = \"\", auth, hostAndPath = \"\"] = (input.replace(/\\\\/g, \"/\").match(/([^/:]+:)?\\/\\/([^/@]+@)?(.*)/) || []).splice(1);\n  const [host = \"\", path = \"\"] = (hostAndPath.match(/([^#/?]*)(.*)?/) || []).splice(1);\n  const { pathname, search, hash } = parsePath(\n    path.replace(/\\/(?=[A-Za-z]:)/, \"\")\n  );\n  return {\n    protocol,\n    auth: auth ? auth.slice(0, Math.max(0, auth.length - 1)) : \"\",\n    host,\n    pathname,\n    search,\n    hash\n  };\n}\nfunction parsePath(input = \"\") {\n  const [pathname = \"\", search = \"\", hash = \"\"] = (input.match(/([^#?]*)(\\?[^#]*)?(#.*)?/) || []).splice(1);\n  return {\n    pathname,\n    search,\n    hash\n  };\n}\nfunction stringifyParsedURL(parsed) {\n  const fullpath = parsed.pathname + (parsed.search ? (parsed.search.startsWith(\"?\") ? \"\" : \"?\") + parsed.search : \"\") + parsed.hash;\n  if (!parsed.protocol) {\n    return fullpath;\n  }\n  return parsed.protocol + \"//\" + (parsed.auth ? parsed.auth + \"@\" : \"\") + parsed.host + fullpath;\n}\nclass FetchError extends Error {\n  constructor() {\n    super(...arguments);\n    this.name = \"FetchError\";\n  }\n}\nfunction createFetchError(request, error, response) {\n  let message = \"\";\n  if (error) {\n    message = error.message;\n  }\n  if (request && response) {\n    message = `${message} (${response.status} ${response.statusText} (${request.toString()}))`;\n  } else if (request) {\n    message = `${message} (${request.toString()})`;\n  }\n  const fetchError = new FetchError(message);\n  Object.defineProperty(fetchError, \"request\", {\n    get() {\n      return request;\n    }\n  });\n  Object.defineProperty(fetchError, \"response\", {\n    get() {\n      return response;\n    }\n  });\n  Object.defineProperty(fetchError, \"data\", {\n    get() {\n      return response && response._data;\n    }\n  });\n  Object.defineProperty(fetchError, \"status\", {\n    get() {\n      return response && response.status;\n    }\n  });\n  Object.defineProperty(fetchError, \"statusText\", {\n    get() {\n      return response && response.statusText;\n    }\n  });\n  Object.defineProperty(fetchError, \"statusCode\", {\n    get() {\n      return response && response.status;\n    }\n  });\n  Object.defineProperty(fetchError, \"statusMessage\", {\n    get() {\n      return response && response.statusText;\n    }\n  });\n  return fetchError;\n}\nconst payloadMethods = new Set(\n  Object.freeze([\"PATCH\", \"POST\", \"PUT\", \"DELETE\"])\n);\nfunction isPayloadMethod(method = \"GET\") {\n  return payloadMethods.has(method.toUpperCase());\n}\nfunction isJSONSerializable(value3) {\n  if (value3 === void 0) {\n    return false;\n  }\n  const t = typeof value3;\n  if (t === \"string\" || t === \"number\" || t === \"boolean\" || t === null) {\n    return true;\n  }\n  if (t !== \"object\") {\n    return false;\n  }\n  if (Array.isArray(value3)) {\n    return true;\n  }\n  return value3.constructor && value3.constructor.name === \"Object\" || typeof value3.toJSON === \"function\";\n}\nconst textTypes = /* @__PURE__ */ new Set([\n  \"image/svg\",\n  \"application/xml\",\n  \"application/xhtml\",\n  \"application/html\"\n]);\nconst JSON_RE = /^application\\/(?:[\\w!#$%&*.^`~-]*\\+)?json(;.+)?$/i;\nfunction detectResponseType(_contentType = \"\") {\n  if (!_contentType) {\n    return \"json\";\n  }\n  const contentType = _contentType.split(\";\").shift() || \"\";\n  if (JSON_RE.test(contentType)) {\n    return \"json\";\n  }\n  if (textTypes.has(contentType) || contentType.startsWith(\"text/\")) {\n    return \"text\";\n  }\n  return \"blob\";\n}\nconst retryStatusCodes = /* @__PURE__ */ new Set([\n  408,\n  // Request Timeout\n  409,\n  // Conflict\n  425,\n  // Too Early\n  429,\n  // Too Many Requests\n  500,\n  // Internal Server Error\n  502,\n  // Bad Gateway\n  503,\n  // Service Unavailable\n  504\n  //  Gateway Timeout\n]);\nfunction createFetch(globalOptions) {\n  const { fetch: fetch2, Headers: Headers2 } = globalOptions;\n  function onError(context) {\n    const isAbort = context.error && context.error.name === \"AbortError\" || false;\n    if (context.options.retry !== false && !isAbort) {\n      let retries;\n      if (typeof context.options.retry === \"number\") {\n        retries = context.options.retry;\n      } else {\n        retries = isPayloadMethod(context.options.method) ? 0 : 1;\n      }\n      const responseCode = context.response && context.response.status || 500;\n      if (retries > 0 && retryStatusCodes.has(responseCode)) {\n        return $fetchRaw(context.request, {\n          ...context.options,\n          retry: retries - 1\n        });\n      }\n    }\n    const error = createFetchError(\n      context.request,\n      context.error,\n      context.response\n    );\n    if (Error.captureStackTrace) {\n      Error.captureStackTrace(error, $fetchRaw);\n    }\n    throw error;\n  }\n  const $fetchRaw = async function $fetchRaw2(_request, _options = {}) {\n    const context = {\n      request: _request,\n      options: { ...globalOptions.defaults, ..._options },\n      response: void 0,\n      error: void 0\n    };\n    if (context.options.onRequest) {\n      await context.options.onRequest(context);\n    }\n    if (typeof context.request === \"string\") {\n      if (context.options.baseURL) {\n        context.request = withBase(context.request, context.options.baseURL);\n      }\n      if (context.options.query || context.options.params) {\n        context.request = withQuery(context.request, {\n          ...context.options.params,\n          ...context.options.query\n        });\n      }\n      if (context.options.body && isPayloadMethod(context.options.method) && isJSONSerializable(context.options.body)) {\n        context.options.body = typeof context.options.body === \"string\" ? context.options.body : JSON.stringify(context.options.body);\n        context.options.headers = new Headers2(context.options.headers);\n        if (!context.options.headers.has(\"content-type\")) {\n          context.options.headers.set(\"content-type\", \"application/json\");\n        }\n        if (!context.options.headers.has(\"accept\")) {\n          context.options.headers.set(\"accept\", \"application/json\");\n        }\n      }\n    }\n    context.response = await fetch2(\n      context.request,\n      context.options\n    ).catch(async (error) => {\n      context.error = error;\n      if (context.options.onRequestError) {\n        await context.options.onRequestError(context);\n      }\n      return onError(context);\n    });\n    const responseType = (context.options.parseResponse ? \"json\" : context.options.responseType) || detectResponseType(context.response.headers.get(\"content-type\") || \"\");\n    if (responseType === \"json\") {\n      const data = await context.response.text();\n      const parseFunction = context.options.parseResponse || destr;\n      context.response._data = parseFunction(data);\n    } else if (responseType === \"stream\") {\n      context.response._data = context.response.body;\n    } else {\n      context.response._data = await context.response[responseType]();\n    }\n    if (context.options.onResponse) {\n      await context.options.onResponse(context);\n    }\n    if (context.response.status >= 400 && context.response.status < 600) {\n      if (context.options.onResponseError) {\n        await context.options.onResponseError(context);\n      }\n      return onError(context);\n    }\n    return context.response;\n  };\n  const $fetch = function $fetch2(request, options) {\n    return $fetchRaw(request, options).then((r) => r._data);\n  };\n  $fetch.raw = $fetchRaw;\n  $fetch.native = fetch2;\n  $fetch.create = (defaultOptions = {}) => createFetch({\n    ...globalOptions,\n    defaults: {\n      ...globalOptions.defaults,\n      ...defaultOptions\n    }\n  });\n  return $fetch;\n}\nconst _globalThis = function() {\n  if (typeof globalThis !== \"undefined\") {\n    return globalThis;\n  }\n  if (typeof self !== \"undefined\") {\n    return self;\n  }\n  if (typeof window !== \"undefined\") {\n    return window;\n  }\n  if (typeof global !== \"undefined\") {\n    return global;\n  }\n  throw new Error(\"unable to locate global object\");\n}();\nconst fetch = _globalThis.fetch || (() => Promise.reject(new Error(\"[ofetch] global.fetch is not supported!\")));\nconst Headers = _globalThis.Headers;\nconst ofetch = createFetch({ fetch, Headers });\nconst Itch = {};\nItch.getGameData = async function(opts) {\n  if (opts == null)\n    opts = {};\n  const domain = opts.domain || \"itch.io\";\n  if (!opts.user)\n    throw new Error(\"Missing user\");\n  if (!opts.game)\n    throw new Error(\"Missing game\");\n  let url2 = \"https://\" + opts.user + \".\" + domain + \"/\" + opts.game + \"/data.json\";\n  if (opts.secret)\n    url2 = url2 + \"?secret=\" + opts.secret;\n  const game = await ofetch(url2, {\n    parseResponse: JSON.parse\n  });\n  return typeof opts.onComplete === \"function\" ? opts.onComplete(game) : void 0;\n};\nfunction getObjectValue(object, property) {\n  return object && object[property] ? object[property] : null;\n}\nlet Platform;\n(function(Platform2) {\n  Platform2[\"Default\"] = \"default\";\n  Platform2[\"Angular\"] = \"angular\";\n  Platform2[\"Preact\"] = \"preact\";\n  Platform2[\"Qwik\"] = \"qwik\";\n  Platform2[\"React\"] = \"react\";\n  Platform2[\"Solid\"] = \"solid\";\n  Platform2[\"Svelte\"] = \"svelte\";\n  Platform2[\"Vue\"] = \"vue\";\n  Platform2[\"Webcomponents\"] = \"webcomponents\";\n})(Platform || (Platform = {}));\nlet platform = Platform.Default;\nfunction setPlatform(newPlatform) {\n  debug(`Setting new platform ${newPlatform}`);\n  platform = newPlatform;\n}\nfunction getPlatform() {\n  return platform;\n}\nlet version = \"0.0.0\";\nfunction setVersion(newVersion) {\n  debug(`Setting new platform ${newVersion}`);\n  version = newVersion;\n}\nfunction getVersion() {\n  return version;\n}\nconst variables = \"\";\nconst avatar = \"\";\nclass AvatarService {\n  getClasses(variant, disabled, className) {\n    const base = classesToString([\n      \"pa-avatar\",\n      [\n        variant,\n        `pa-avatar--${variant}`\n      ],\n      [\n        disabled,\n        \"is-disabled\"\n      ],\n      className || \"\"\n    ]);\n    const container2 = classesToString([\n      \"pa-avatar__container\",\n      [\n        variant,\n        `pa-avatar--${variant}`\n      ]\n    ]);\n    debug(`AvatarService getClasses: base: ${base}, container: ${container2}`);\n    return {\n      base,\n      container: container2\n    };\n  }\n  async getStyles(name, variant) {\n    const container2 = await this.getColor(name, variant);\n    debug(`AvatarService getStyles: container: ${JSON.stringify(container2)}`);\n    return {\n      container: container2\n    };\n  }\n  getInitials(name) {\n    const initials3 = name.match(/(^\\S\\S?|\\s\\S)?/g).map((v) => v.trim()).join(\"\").match(/(^\\S|\\S$)?/g).join(\"\").toLocaleUpperCase();\n    debug(`AvatarService getInitials: initials: ${initials3}`);\n    return initials3;\n  }\n  async getColor(name, variant) {\n    if (variant) {\n      debug(`AvatarService getColor: variant exist: ${variant}`);\n      return {};\n    }\n    const color = await randomColor(name);\n    debug(`AvatarService getColor: color: ${JSON.stringify(color)}`);\n    return {\n      \"--pa-avatar-foreground\": color.foreground,\n      \"--pa-avatar-background\": color.background\n    };\n  }\n  getSource(url2, unavatar) {\n    const source3 = unavatar ? `https://unavatar.io/${unavatar}` : url2;\n    debug(`AvatarService getSource: source: ${source3}`);\n    return source3;\n  }\n}\nconst avatarService = new AvatarService();\nconst classes$8 = function classes2(props, state2) {\n  return avatarService.getClasses(props.variant, props.disabled, props.class || props.classList);\n};\nconst initials = function initials2(props, state2) {\n  return avatarService.getInitials(props.name);\n};\nconst source = function source2(props, state2) {\n  return avatarService.getSource(props.url, props.unavatar);\n};\nconst Avatar = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  const state2 = useStore({\n    styles: {\n      container: null\n    }\n  });\n  useTaskQrl(/* @__PURE__ */ inlinedQrl(async () => {\n    const [props2, state22] = useLexicalScope();\n    async function getData() {\n      state22.styles = await avatarService.getStyles(props2.name, props2.variant);\n    }\n    await getData();\n  }, \"Avatar_component_useTask_TblB07KUC1Q\", [\n    props,\n    state2\n  ]));\n  return /* @__PURE__ */ _jsxQ(\"div\", {\n    class: _wrapSignal(classes$8(props), \"base\")\n  }, {\n    title: _fnSignal((p0) => p0.name, [\n      props\n    ], \"p0.name\")\n  }, state2.styles.container ? /* @__PURE__ */ _jsxQ(\"div\", {\n    class: _wrapSignal(classes$8(props), \"container\")\n  }, {\n    style: _fnSignal((p0) => p0.styles.container, [\n      state2\n    ], \"p0.styles.container\")\n  }, [\n    source(props) ? /* @__PURE__ */ _jsxQ(\"img\", {\n      src: source(props)\n    }, {\n      class: \"pa-avatar__image\",\n      alt: _fnSignal((p0) => p0.name, [\n        props\n      ], \"p0.name\")\n    }, null, 3, \"mU_0\") : null,\n    !source(props) ? /* @__PURE__ */ _jsxQ(\"span\", null, null, initials(props), 1, \"mU_1\") : null\n  ], 1, \"mU_2\") : null, 1, \"mU_3\");\n}, \"Avatar_component_UfRUipq04q0\"));\nconst button = \"\";\nclass ButtonService {\n  getClasses(variant, outline, intent, disabled, className) {\n    const base = classesToString([\n      \"pa-button\",\n      [\n        variant,\n        `pa-button--${variant}`\n      ],\n      [\n        outline,\n        \"pa-button--outline\"\n      ],\n      [\n        intent,\n        `is-${intent}`\n      ],\n      [\n        disabled,\n        \"is-disabled\"\n      ],\n      className || \"\"\n    ]);\n    debug(`ButtonService getClasses: base: ${base}`);\n    return {\n      base\n    };\n  }\n}\nconst buttonService = new ButtonService();\nconst classes$7 = function classes22(props, state2) {\n  return buttonService.getClasses(props.variant, props.outline, props.intent, props.disabled, props.class);\n};\nconst Button = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  return /* @__PURE__ */ _jsxQ(\"button\", {\n    class: _wrapSignal(classes$7(props), \"base\")\n  }, null, /* @__PURE__ */ _jsxC(Slot, null, 3, \"d7_0\"), 1, \"d7_1\");\n}, \"Button_component_osIfMcjy41k\"));\nconst code = \"\";\nconst codeThemes = [\n  \"default\",\n  \"dark\",\n  \"atom-one-light\",\n  \"atom-one-dark\",\n  \"github\",\n  \"monokai\"\n];\nclass CodeService {\n  constructor() {\n    this.styles = [];\n    this.jar = null;\n    this.currentThemeIndex = 0;\n    this.hljs = null;\n  }\n  getClasses(language, className) {\n    const base = classesToString([\n      \"pa-code\",\n      className || \"\"\n    ]);\n    const editor = classesToString([\n      \"pa-code__editor\",\n      [\n        language,\n        `language-${language}`\n      ]\n    ]);\n    debug(`CodeService getClasses: base: ${base}, editor: ${editor}`);\n    return {\n      base,\n      editor\n    };\n  }\n  async initialize(codeRef, language, theme) {\n    this.hljs = await injectCodeCore();\n    this.jar = CodeJar(codeRef, (editor) => {\n      if (!editor.innerText)\n        return;\n      this.registerLanguage(language);\n      this.highlightCode(editor);\n    });\n    debug(`CodeService initialize: language: ${language}, theme: ${theme}`);\n    this.hljs.configure({\n      ignoreUnescapedHTML: true\n    });\n    this.registerThemes();\n    this.updateCurrentTheme(theme);\n    debug(`CodeService initialize: hljs and themes registered`);\n  }\n  destroy() {\n    debug(`CodeService destroy: hljs and themes unregistered`);\n    this.jar.destroy();\n  }\n  update(code2) {\n    debug(`CodeService update: code: ${code2}`);\n    this.jar.updateCode(code2);\n  }\n  onUpdate(callback) {\n    debug(`CodeService onUpdate: callback: ${callback}`);\n    this.jar.onUpdate(callback);\n  }\n  async setEditable(codeRef, editable) {\n    await wait();\n    debug(`CodeService setEditable: editable: ${editable}`);\n    codeRef.setAttribute(\"contenteditable\", editable ? \"plaintext-only\" : \"false\");\n  }\n  async copy(code2) {\n    const copy = (await import(\"./index-6a61718d.js\").then((n) => n.i)).default;\n    debug(`CodeService copy: code: ${code2}`);\n    copy(code2);\n  }\n  registerThemes() {\n    if (this.styles?.length > 0)\n      return;\n    this.styles = codeThemes.map((name) => {\n      const link = document.createElement(\"link\");\n      link.href = `https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/${name}.min.css`;\n      link.rel = \"stylesheet\";\n      link.disabled = true;\n      document.head.appendChild(link);\n      debug(`CodeService registerThemes: theme: ${name}`);\n      return link;\n    });\n  }\n  updateCurrentTheme(theme) {\n    this.styles[this.currentThemeIndex].setAttribute(\"disabled\", \"true\");\n    this.currentThemeIndex = this.styles.findIndex((style) => style.href.includes(theme));\n    this.styles[this.currentThemeIndex].removeAttribute(\"disabled\");\n    debug(`CodeService updateCurrentTheme: theme: ${theme}`);\n  }\n  registerLanguage(language) {\n    if (language === \"javascript\" || language === \"typescript\")\n      this.hljs.registerLanguage(\"xml\", codeLanguages[\"xml\"]);\n    this.hljs.registerLanguage(language, codeLanguages[language]);\n    debug(`CodeService registerLanguage: language: ${language}`);\n  }\n  highlightCode(editor) {\n    this.hljs.highlightElement(editor);\n    if (!editor.classList.contains(\"language-css\"))\n      return;\n    debug(`CodeService highlightCode enabled`);\n    editor.querySelectorAll(\".hljs-number\").forEach((element) => {\n      element.setAttribute(\"style\", `--number-color: ${element.textContent}`);\n    });\n  }\n}\nconst value = function value2(props, state2, codeRef, x, y) {\n  return getObjectValue(x, y);\n};\nconst Code = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  const codeRef = useSignal();\n  const state2 = useStore({\n    classes: {\n      base: \"\",\n      editor: \"\"\n    },\n    codeService: null,\n    loaded: false\n  });\n  useTaskQrl(/* @__PURE__ */ inlinedQrl(async ({ track }) => {\n    const [codeRef2, props2, state22] = useLexicalScope();\n    track(() => codeRef2.value);\n    codeRef2.value;\n    if (!codeRef2.value)\n      return;\n    async function getData() {\n      const service = new CodeService();\n      await service.initialize(codeRef2.value, props2.language, props2.theme || \"github\");\n      state22.classes = service.getClasses(props2.language, props2.class || props2.classList);\n      state22.codeService = noSerialize(service);\n      state22.loaded = true;\n    }\n    await getData();\n  }, \"Code_component_useTask_EWvDgUjDQA0\", [\n    codeRef,\n    props,\n    state2\n  ]));\n  useTaskQrl(/* @__PURE__ */ inlinedQrl(async ({ track }) => {\n    const [codeRef2, props2, state22] = useLexicalScope();\n    track(() => state22.loaded);\n    track(() => props2.editable);\n    track(() => codeRef2.value);\n    if (!state22.loaded)\n      return;\n    state22.codeService.update(props2.code);\n    state22.codeService.setEditable(codeRef2.value, props2.editable);\n    state22.codeService.onUpdate((code2) => {\n      props2.onUpdate && props2.onUpdate(code2);\n    });\n  }, \"Code_component_useTask_1_lWFDbpwC4sg\", [\n    codeRef,\n    props,\n    state2\n  ]));\n  return /* @__PURE__ */ _jsxQ(\"div\", null, {\n    class: _fnSignal((p0) => p0.classes.base, [\n      state2\n    ], \"p0.classes.base\")\n  }, [\n    /* @__PURE__ */ _jsxQ(\"pre\", null, null, /* @__PURE__ */ _jsxQ(\"code\", {\n      ref: codeRef\n    }, {\n      class: _fnSignal((p0) => p0.classes.editor, [\n        state2\n      ], \"p0.classes.editor\")\n    }, null, 3, null), 1, null),\n    state2.loaded ? /* @__PURE__ */ _jsxQ(\"div\", null, {\n      class: \"pa-code__actions\"\n    }, [\n      (props.links || []).map(function(link, index) {\n        return /* @__PURE__ */ _jsxQ(\"div\", null, {\n          class: \"pa-code__action\"\n        }, [\n          value(props, state2, codeRef, link, \"url\") ? /* @__PURE__ */ _jsxQ(\"a\", {\n            href: value(props, state2, codeRef, link, \"url\")\n          }, {\n            class: \"pa-code__link\",\n            target: \"_blank\"\n          }, [\n            value(props, state2, codeRef, link, \"icon\") ? /* @__PURE__ */ _jsxQ(\"img\", {\n              src: value(props, state2, codeRef, link, \"icon\"),\n              alt: value(props, state2, codeRef, link, \"label\")\n            }, {\n              class: \"pa-code__icon\"\n            }, null, 3, \"PP_0\") : null,\n            value(props, state2, codeRef, link, \"label\")\n          ], 1, \"PP_1\") : null,\n          !value(props, state2, codeRef, link, \"url\") ? /* @__PURE__ */ _jsxQ(\"span\", null, {\n            class: \"pa-code__link pa-code__link--text\"\n          }, [\n            value(props, state2, codeRef, link, \"icon\") ? /* @__PURE__ */ _jsxQ(\"img\", {\n              src: value(props, state2, codeRef, link, \"icon\"),\n              alt: value(props, state2, codeRef, link, \"label\")\n            }, {\n              class: \"pa-code__icon\"\n            }, null, 3, \"PP_2\") : null,\n            value(props, state2, codeRef, link, \"label\")\n          ], 1, \"PP_3\") : null\n        ], 1, index);\n      }),\n      !props.disableCopy && props.slotCopy ? /* @__PURE__ */ _jsxQ(\"span\", null, {\n        class: \"pa-code__action pa-code__action--copy\",\n        onClick$: /* @__PURE__ */ inlinedQrl((event) => {\n          const [props2, state22] = useLexicalScope();\n          return state22.codeService.copy(props2.code);\n        }, \"Code_component_div_div_span_onClick_QT00ZRwHiZo\", [\n          props,\n          state2\n        ])\n      }, /* @__PURE__ */ _jsxQ(\"span\", null, {\n        class: \"pa-code__link\"\n      }, _fnSignal((p0) => p0.slotCopy, [\n        props\n      ], \"p0.slotCopy\"), 3, null), 3, \"PP_4\") : null\n    ], 1, \"PP_5\") : null\n  ], 1, \"PP_6\");\n}, \"Code_component_kBmsqYtfzfI\"));\nconst pill = \"\";\nclass PillService {\n  getClasses(variant, intent, disabled, className) {\n    const base = classesToString([\n      \"pa-pill\",\n      [\n        variant,\n        `pa-pill--${variant}`\n      ],\n      [\n        intent,\n        `is-${intent}`\n      ],\n      [\n        disabled,\n        \"is-disabled\"\n      ],\n      className || \"\"\n    ]);\n    debug(`PillService getClasses: base: ${base}`);\n    return {\n      base\n    };\n  }\n}\nconst pillService = new PillService();\nconst classes$6 = function classes23(props, state2) {\n  return pillService.getClasses(props.variant, props.intent, props.disabled, props.class || props.classList);\n};\nconst Pill = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  return /* @__PURE__ */ _jsxQ(\"span\", {\n    class: _wrapSignal(classes$6(props), \"base\")\n  }, null, /* @__PURE__ */ _jsxC(Slot, null, 3, \"Go_0\"), 1, \"Go_1\");\n}, \"Pill_component_WWuVsMR73Uo\"));\nconst spinner = \"\";\nclass SpinnerService {\n  getClasses(variant, full, fullscreen, className) {\n    const base = classesToString([\n      \"pa-spinner\",\n      [\n        variant,\n        `pa-spinner--${variant}`\n      ],\n      [\n        full && !fullscreen,\n        \"pa-spinner--full\"\n      ],\n      [\n        fullscreen,\n        \"pa-spinner--fullscreen\"\n      ],\n      className || \"\"\n    ]);\n    debug(`SpinnerService getClasses: base: ${base}`);\n    return {\n      base\n    };\n  }\n}\nconst spinnerService = new SpinnerService();\nconst classes$5 = function classes24(props, state2) {\n  return spinnerService.getClasses(props.variant, props.full, props.fullscreen, props.class || props.classList);\n};\nconst Spinner = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  useStore({\n    loaded: false\n  });\n  return /* @__PURE__ */ _jsxQ(\"div\", {\n    class: _wrapSignal(classes$5(props), \"base\")\n  }, null, /* @__PURE__ */ _jsxQ(\"svg\", null, {\n    class: \"pa-spinner__icon\",\n    viewBox: \"0 0 66 66\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, /* @__PURE__ */ _jsxQ(\"circle\", null, {\n    class: \"pa-spinner__path\",\n    fill: \"none\",\n    cx: \"33\",\n    cy: \"33\",\n    r: \"30\"\n  }, null, 3, null), 3, null), 3, \"Im_0\");\n}, \"Spinner_component_fqHvUteVko4\"));\nconst itchio = \"\";\nclass ItchioService {\n  getClasses(className) {\n    const base = classesToString([\n      \"pa-itchio\",\n      className || \"\"\n    ]);\n    return {\n      base\n    };\n  }\n  async getGameData(user, game, secret) {\n    debug(`ItchioService getGameData: user: ${user}, game: ${game}`);\n    return new Promise((resolve3) => {\n      Itch.getGameData({\n        user,\n        game,\n        secret,\n        onComplete: (data) => {\n          debug(`ItchioService getGameData onComplete: data: ${JSON.stringify(data)}`);\n          resolve3(data);\n        }\n      });\n    });\n  }\n  async processInfo(user, game, secret) {\n    const data = await this.getGameData(user, game, secret);\n    return data;\n  }\n  onClickAction(user, game, width = 800, height = 600) {\n    const window2 = getWindow();\n    const top = (screen.height - height) / 2;\n    const left = (screen.width - width) / 2;\n    debug(`ItchioService onClickAction: user: ${user}, game: ${game}, top: ${top}, left: ${left}`);\n    const openedWindow = window2.open(\"https://\" + user + \".itch.io/\" + game + \"/purchase?popup=1\", \"purchase\", \"scrollbars=1, resizable=no, width=\" + width + \", height=\" + height + \", top=\" + top + \", left=\" + left);\n    if (typeof openedWindow.focus === \"function\")\n      openedWindow.focus();\n  }\n}\nconst itchioService = new ItchioService();\nconst classes$4 = function classes25(props, state2) {\n  return itchioService.getClasses(props.class);\n};\nconst onClickAction = function onClickAction2(props, state2, user, game, width, height) {\n  itchioService.onClickAction(user, game, width, height);\n};\nconst Itchio = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  _jsxBranch();\n  const state2 = useStore({\n    gameInfo: null,\n    loaded: false\n  });\n  useTaskQrl(/* @__PURE__ */ inlinedQrl(async () => {\n    const [props2, state22] = useLexicalScope();\n    async function getData() {\n      const data = await itchioService.processInfo(props2.user, props2.game, props2.secret);\n      state22.gameInfo = data;\n      state22.loaded = true;\n      debug(\"ItchioService callback processed info\");\n      props2.onLoad && props2.onLoad(data);\n    }\n    await getData();\n  }, \"Itchio_component_useTask_AVHHOkEJhdg\", [\n    props,\n    state2\n  ]));\n  return /* @__PURE__ */ _jsxQ(\"div\", {\n    class: _wrapSignal(classes$4(props), \"base\")\n  }, null, /* @__PURE__ */ _jsxQ(\"div\", null, {\n    class: \"pa-itchio__container\"\n  }, [\n    state2.loaded ? /* @__PURE__ */ _jsxQ(\"img\", null, {\n      class: \"pa-itchio__image\",\n      alt: _fnSignal((p0) => p0.gameInfo.title, [\n        state2\n      ], \"p0.gameInfo.title\"),\n      src: _fnSignal((p0) => p0.gameInfo.cover_image, [\n        state2\n      ], \"p0.gameInfo.cover_image\")\n    }, null, 3, \"R7_0\") : null,\n    /* @__PURE__ */ _jsxQ(\"div\", null, {\n      class: \"pa-itchio__info\"\n    }, [\n      state2.loaded ? /* @__PURE__ */ _jsxQ(\"div\", null, {\n        class: \"pa-itchio__texts\"\n      }, [\n        /* @__PURE__ */ _jsxQ(\"span\", null, {\n          class: \"pa-itchio__title\"\n        }, _fnSignal((p0) => p0.gameInfo.title, [\n          state2\n        ], \"p0.gameInfo.title\"), 3, null),\n        /* @__PURE__ */ _jsxQ(\"span\", null, {\n          class: \"pa-itchio__price\"\n        }, _fnSignal((p0) => p0.gameInfo.price, [\n          state2\n        ], \"p0.gameInfo.price\"), 3, null)\n      ], 3, \"R7_1\") : null,\n      /* @__PURE__ */ _jsxQ(\"span\", null, {\n        class: \"pa-itchio__children\",\n        onClick$: /* @__PURE__ */ inlinedQrl((event) => {\n          const [props2, state22] = useLexicalScope();\n          return onClickAction(props2, state22, props2.user, props2.game, props2.width, props2.height);\n        }, \"Itchio_component_div_div_div_span_onClick_9NSpWkK00qM\", [\n          props,\n          state2\n        ])\n      }, [\n        state2.loaded ? /* @__PURE__ */ _jsxQ(\"span\", null, null, /* @__PURE__ */ _jsxC(Slot, null, 3, \"R7_2\"), 1, \"R7_3\") : null,\n        !state2.loaded ? /* @__PURE__ */ _jsxQ(\"span\", null, null, _fnSignal((p0) => p0.slotLoading, [\n          props\n        ], \"p0.slotLoading\"), 3, \"R7_4\") : null\n      ], 1, null)\n    ], 1, null)\n  ], 1, null), 1, \"R7_5\");\n}, \"Itchio_component_AaEjJdHYI5M\"));\nconst tooltip = \"\";\nlet initialized = false;\nlet tooltips = [];\nfunction showTooltip(state2) {\n  state2.tooltipElement.style.transform = `translate(${state2.x}px, ${state2.y}px)`;\n  state2.tooltipElement.style.width = `${state2.width}px`;\n  state2.tooltipElement.innerText = state2.title;\n  debug(`TooltipService showTooltip: state: ${JSON.stringify(state2)}`);\n  setTimeout(() => {\n    state2.tooltipElement.classList.remove(\"is-hidden\");\n  }, state2.time);\n}\nfunction hideTooltip(state2) {\n  state2.tooltipElement.classList.add(\"is-hidden\");\n  debug(`TooltipService hideTooltip: state: ${JSON.stringify(state2)}`);\n  setTimeout(() => {\n    state2.tooltipElement.style.transform = `translate(-100px, -100px)`;\n    state2.tooltipElement.innerText = \"\";\n  }, state2.time);\n}\nfunction manageElementTitle(element) {\n  const title = element.getAttribute(\"title\");\n  const ariaLabel = element.getAttribute(\"aria-label\");\n  element.setAttribute(\"aria-label\", ariaLabel || title);\n  element.removeAttribute(\"title\");\n  debug(`TooltipService manageElementTitle: title: ${title}`);\n  return title;\n}\nfunction onAddElement(rootElement, element) {\n  const window2 = getWindow();\n  const title = manageElementTitle(element);\n  const styles = window2.getComputedStyle(rootElement);\n  const transitionTime = styles.getPropertyValue(`--pa-tooltip-transition-time`).trim();\n  debug(`TooltipService onAddElement: transitionTime: ${transitionTime}`);\n  const state2 = {\n    tooltipElement: null,\n    x: 0,\n    y: 0,\n    height: 0,\n    width: 0,\n    title: \"\",\n    time: Number(transitionTime)\n  };\n  const tooltipElement = createTooltipElement(rootElement);\n  state2.tooltipElement = tooltipElement;\n  tooltips.push(state2);\n  element.addEventListener(\"mouseenter\", () => {\n    const rect = element.getBoundingClientRect();\n    const rootRect = rootElement.getBoundingClientRect();\n    debug(`TooltipService onAddElement: mouseenter`);\n    state2.x = Math.abs(rootRect.x) + rootElement.scrollLeft + rect.x;\n    state2.y = Math.abs(rootRect.y) + rootElement.scrollTop + rect.y;\n    state2.height = rect.height;\n    state2.width = rect.width;\n    state2.title = title;\n    showTooltip(state2);\n  });\n  element.addEventListener(\"mouseleave\", () => {\n    state2.x = 0;\n    state2.y = 0;\n    state2.height = 0;\n    state2.width = 0;\n    state2.title = \"\";\n    debug(`TooltipService onAddElement: mouseleave`);\n    hideTooltip(state2);\n  });\n}\nfunction createTooltipElement(rootElement) {\n  const document2 = getDocument();\n  const element = document2.createElement(\"div\");\n  element.classList.add(\"pa-tooltip\", \"is-hidden\");\n  element.setAttribute(\"aria-hidden\", \"true\");\n  rootElement.prepend(element);\n  debug(`TooltipService createTooltipElement`);\n  return element;\n}\nfunction useTooltipExtension(rootElement) {\n  const document2 = getDocument();\n  const element = rootElement || document2.body;\n  if (initialized) {\n    debug(`TooltipService useTooltipExtension: initialized`);\n    tooltips.forEach((state2) => {\n      hideTooltip(state2);\n      state2.tooltipElement.remove();\n    });\n    tooltips = [];\n  }\n  initialized = true;\n  setTimeout(() => querySelectorAllObservable(element, \"[title]\", (titleElement) => onAddElement(element, titleElement)), 10);\n}\nvar commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nvar url = {};\nvar punycodeExports = {};\nvar punycode$1 = {\n  get exports() {\n    return punycodeExports;\n  },\n  set exports(v) {\n    punycodeExports = v;\n  }\n};\n/*! https://mths.be/punycode v1.3.2 by @mathias */\n(function(module, exports) {\n  (function(root) {\n    var freeExports = exports && !exports.nodeType && exports;\n    var freeModule = module && !module.nodeType && module;\n    var freeGlobal = typeof commonjsGlobal == \"object\" && commonjsGlobal;\n    if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n      root = freeGlobal;\n    }\n    var punycode2, maxInt = 2147483647, base = 36, tMin = 1, tMax = 26, skew = 38, damp = 700, initialBias = 72, initialN = 128, delimiter = \"-\", regexPunycode = /^xn--/, regexNonASCII = /[^\\x20-\\x7E]/, regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, errors = {\n      \"overflow\": \"Overflow: input needs wider integers to process\",\n      \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n      \"invalid-input\": \"Invalid input\"\n    }, baseMinusTMin = base - tMin, floor = Math.floor, stringFromCharCode = String.fromCharCode, key;\n    function error(type) {\n      throw RangeError(errors[type]);\n    }\n    function map(array, fn) {\n      var length = array.length;\n      var result = [];\n      while (length--) {\n        result[length] = fn(array[length]);\n      }\n      return result;\n    }\n    function mapDomain(string, fn) {\n      var parts = string.split(\"@\");\n      var result = \"\";\n      if (parts.length > 1) {\n        result = parts[0] + \"@\";\n        string = parts[1];\n      }\n      string = string.replace(regexSeparators, \".\");\n      var labels = string.split(\".\");\n      var encoded = map(labels, fn).join(\".\");\n      return result + encoded;\n    }\n    function ucs2decode(string) {\n      var output = [], counter = 0, length = string.length, value3, extra;\n      while (counter < length) {\n        value3 = string.charCodeAt(counter++);\n        if (value3 >= 55296 && value3 <= 56319 && counter < length) {\n          extra = string.charCodeAt(counter++);\n          if ((extra & 64512) == 56320) {\n            output.push(((value3 & 1023) << 10) + (extra & 1023) + 65536);\n          } else {\n            output.push(value3);\n            counter--;\n          }\n        } else {\n          output.push(value3);\n        }\n      }\n      return output;\n    }\n    function ucs2encode(array) {\n      return map(array, function(value3) {\n        var output = \"\";\n        if (value3 > 65535) {\n          value3 -= 65536;\n          output += stringFromCharCode(value3 >>> 10 & 1023 | 55296);\n          value3 = 56320 | value3 & 1023;\n        }\n        output += stringFromCharCode(value3);\n        return output;\n      }).join(\"\");\n    }\n    function basicToDigit(codePoint) {\n      if (codePoint - 48 < 10) {\n        return codePoint - 22;\n      }\n      if (codePoint - 65 < 26) {\n        return codePoint - 65;\n      }\n      if (codePoint - 97 < 26) {\n        return codePoint - 97;\n      }\n      return base;\n    }\n    function digitToBasic(digit, flag) {\n      return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n    }\n    function adapt(delta, numPoints, firstTime) {\n      var k = 0;\n      delta = firstTime ? floor(delta / damp) : delta >> 1;\n      delta += floor(delta / numPoints);\n      for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n        delta = floor(delta / baseMinusTMin);\n      }\n      return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n    }\n    function decode2(input) {\n      var output = [], inputLength = input.length, out, i = 0, n = initialN, bias = initialBias, basic, j, index, oldi, w, k, digit, t, baseMinusT;\n      basic = input.lastIndexOf(delimiter);\n      if (basic < 0) {\n        basic = 0;\n      }\n      for (j = 0; j < basic; ++j) {\n        if (input.charCodeAt(j) >= 128) {\n          error(\"not-basic\");\n        }\n        output.push(input.charCodeAt(j));\n      }\n      for (index = basic > 0 ? basic + 1 : 0; index < inputLength; ) {\n        for (oldi = i, w = 1, k = base; ; k += base) {\n          if (index >= inputLength) {\n            error(\"invalid-input\");\n          }\n          digit = basicToDigit(input.charCodeAt(index++));\n          if (digit >= base || digit > floor((maxInt - i) / w)) {\n            error(\"overflow\");\n          }\n          i += digit * w;\n          t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n          if (digit < t) {\n            break;\n          }\n          baseMinusT = base - t;\n          if (w > floor(maxInt / baseMinusT)) {\n            error(\"overflow\");\n          }\n          w *= baseMinusT;\n        }\n        out = output.length + 1;\n        bias = adapt(i - oldi, out, oldi == 0);\n        if (floor(i / out) > maxInt - n) {\n          error(\"overflow\");\n        }\n        n += floor(i / out);\n        i %= out;\n        output.splice(i++, 0, n);\n      }\n      return ucs2encode(output);\n    }\n    function encode2(input) {\n      var n, delta, handledCPCount, basicLength, bias, j, m, q, k, t, currentValue, output = [], inputLength, handledCPCountPlusOne, baseMinusT, qMinusT;\n      input = ucs2decode(input);\n      inputLength = input.length;\n      n = initialN;\n      delta = 0;\n      bias = initialBias;\n      for (j = 0; j < inputLength; ++j) {\n        currentValue = input[j];\n        if (currentValue < 128) {\n          output.push(stringFromCharCode(currentValue));\n        }\n      }\n      handledCPCount = basicLength = output.length;\n      if (basicLength) {\n        output.push(delimiter);\n      }\n      while (handledCPCount < inputLength) {\n        for (m = maxInt, j = 0; j < inputLength; ++j) {\n          currentValue = input[j];\n          if (currentValue >= n && currentValue < m) {\n            m = currentValue;\n          }\n        }\n        handledCPCountPlusOne = handledCPCount + 1;\n        if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n          error(\"overflow\");\n        }\n        delta += (m - n) * handledCPCountPlusOne;\n        n = m;\n        for (j = 0; j < inputLength; ++j) {\n          currentValue = input[j];\n          if (currentValue < n && ++delta > maxInt) {\n            error(\"overflow\");\n          }\n          if (currentValue == n) {\n            for (q = delta, k = base; ; k += base) {\n              t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n              if (q < t) {\n                break;\n              }\n              qMinusT = q - t;\n              baseMinusT = base - t;\n              output.push(\n                stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n              );\n              q = floor(qMinusT / baseMinusT);\n            }\n            output.push(stringFromCharCode(digitToBasic(q, 0)));\n            bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n            delta = 0;\n            ++handledCPCount;\n          }\n        }\n        ++delta;\n        ++n;\n      }\n      return output.join(\"\");\n    }\n    function toUnicode(input) {\n      return mapDomain(input, function(string) {\n        return regexPunycode.test(string) ? decode2(string.slice(4).toLowerCase()) : string;\n      });\n    }\n    function toASCII(input) {\n      return mapDomain(input, function(string) {\n        return regexNonASCII.test(string) ? \"xn--\" + encode2(string) : string;\n      });\n    }\n    punycode2 = {\n      /**\n       * A string representing the current Punycode.js version number.\n       * @memberOf punycode\n       * @type String\n       */\n      \"version\": \"1.3.2\",\n      /**\n       * An object of methods to convert from JavaScript's internal character\n       * representation (UCS-2) to Unicode code points, and back.\n       * @see <https://mathiasbynens.be/notes/javascript-encoding>\n       * @memberOf punycode\n       * @type Object\n       */\n      \"ucs2\": {\n        \"decode\": ucs2decode,\n        \"encode\": ucs2encode\n      },\n      \"decode\": decode2,\n      \"encode\": encode2,\n      \"toASCII\": toASCII,\n      \"toUnicode\": toUnicode\n    };\n    if (freeExports && freeModule) {\n      if (module.exports == freeExports) {\n        freeModule.exports = punycode2;\n      } else {\n        for (key in punycode2) {\n          punycode2.hasOwnProperty(key) && (freeExports[key] = punycode2[key]);\n        }\n      }\n    } else {\n      root.punycode = punycode2;\n    }\n  })(commonjsGlobal);\n})(punycode$1, punycodeExports);\nvar util$1 = {\n  isString: function(arg) {\n    return typeof arg === \"string\";\n  },\n  isObject: function(arg) {\n    return typeof arg === \"object\" && arg !== null;\n  },\n  isNull: function(arg) {\n    return arg === null;\n  },\n  isNullOrUndefined: function(arg) {\n    return arg == null;\n  }\n};\nvar querystring$1 = {};\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\nvar decode = function(qs, sep, eq, options) {\n  sep = sep || \"&\";\n  eq = eq || \"=\";\n  var obj = {};\n  if (typeof qs !== \"string\" || qs.length === 0) {\n    return obj;\n  }\n  var regexp = /\\+/g;\n  qs = qs.split(sep);\n  var maxKeys = 1e3;\n  if (options && typeof options.maxKeys === \"number\") {\n    maxKeys = options.maxKeys;\n  }\n  var len = qs.length;\n  if (maxKeys > 0 && len > maxKeys) {\n    len = maxKeys;\n  }\n  for (var i = 0; i < len; ++i) {\n    var x = qs[i].replace(regexp, \"%20\"), idx = x.indexOf(eq), kstr, vstr, k, v;\n    if (idx >= 0) {\n      kstr = x.substr(0, idx);\n      vstr = x.substr(idx + 1);\n    } else {\n      kstr = x;\n      vstr = \"\";\n    }\n    k = decodeURIComponent(kstr);\n    v = decodeURIComponent(vstr);\n    if (!hasOwnProperty(obj, k)) {\n      obj[k] = v;\n    } else if (Array.isArray(obj[k])) {\n      obj[k].push(v);\n    } else {\n      obj[k] = [obj[k], v];\n    }\n  }\n  return obj;\n};\nvar stringifyPrimitive = function(v) {\n  switch (typeof v) {\n    case \"string\":\n      return v;\n    case \"boolean\":\n      return v ? \"true\" : \"false\";\n    case \"number\":\n      return isFinite(v) ? v : \"\";\n    default:\n      return \"\";\n  }\n};\nvar encode = function(obj, sep, eq, name) {\n  sep = sep || \"&\";\n  eq = eq || \"=\";\n  if (obj === null) {\n    obj = void 0;\n  }\n  if (typeof obj === \"object\") {\n    return Object.keys(obj).map(function(k) {\n      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n      if (Array.isArray(obj[k])) {\n        return obj[k].map(function(v) {\n          return ks + encodeURIComponent(stringifyPrimitive(v));\n        }).join(sep);\n      } else {\n        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n      }\n    }).join(sep);\n  }\n  if (!name)\n    return \"\";\n  return encodeURIComponent(stringifyPrimitive(name)) + eq + encodeURIComponent(stringifyPrimitive(obj));\n};\nquerystring$1.decode = querystring$1.parse = decode;\nquerystring$1.encode = querystring$1.stringify = encode;\nvar punycode = punycodeExports;\nvar util = util$1;\nurl.parse = urlParse;\nurl.resolve = urlResolve;\nurl.resolveObject = urlResolveObject;\nurl.format = urlFormat;\nurl.Url = Url;\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.host = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.query = null;\n  this.pathname = null;\n  this.path = null;\n  this.href = null;\n}\nvar protocolPattern = /^([a-z0-9.+-]+:)/i, portPattern = /:[0-9]*$/, simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/, delims = [\"<\", \">\", '\"', \"`\", \" \", \"\\r\", \"\\n\", \"\t\"], unwise = [\"{\", \"}\", \"|\", \"\\\\\", \"^\", \"`\"].concat(delims), autoEscape = [\"'\"].concat(unwise), nonHostChars = [\"%\", \"/\", \"?\", \";\", \"#\"].concat(autoEscape), hostEndingChars = [\"/\", \"?\", \"#\"], hostnameMaxLen = 255, hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, unsafeProtocol = {\n  \"javascript\": true,\n  \"javascript:\": true\n}, hostlessProtocol = {\n  \"javascript\": true,\n  \"javascript:\": true\n}, slashedProtocol = {\n  \"http\": true,\n  \"https\": true,\n  \"ftp\": true,\n  \"gopher\": true,\n  \"file\": true,\n  \"http:\": true,\n  \"https:\": true,\n  \"ftp:\": true,\n  \"gopher:\": true,\n  \"file:\": true\n}, querystring = querystring$1;\nfunction urlParse(url2, parseQueryString, slashesDenoteHost) {\n  if (url2 && util.isObject(url2) && url2 instanceof Url)\n    return url2;\n  var u = new Url();\n  u.parse(url2, parseQueryString, slashesDenoteHost);\n  return u;\n}\nUrl.prototype.parse = function(url2, parseQueryString, slashesDenoteHost) {\n  if (!util.isString(url2)) {\n    throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url2);\n  }\n  var queryIndex = url2.indexOf(\"?\"), splitter = queryIndex !== -1 && queryIndex < url2.indexOf(\"#\") ? \"?\" : \"#\", uSplit = url2.split(splitter), slashRegex = /\\\\/g;\n  uSplit[0] = uSplit[0].replace(slashRegex, \"/\");\n  url2 = uSplit.join(splitter);\n  var rest = url2;\n  rest = rest.trim();\n  if (!slashesDenoteHost && url2.split(\"#\").length === 1) {\n    var simplePath = simplePathPattern.exec(rest);\n    if (simplePath) {\n      this.path = rest;\n      this.href = rest;\n      this.pathname = simplePath[1];\n      if (simplePath[2]) {\n        this.search = simplePath[2];\n        if (parseQueryString) {\n          this.query = querystring.parse(this.search.substr(1));\n        } else {\n          this.query = this.search.substr(1);\n        }\n      } else if (parseQueryString) {\n        this.search = \"\";\n        this.query = {};\n      }\n      return this;\n    }\n  }\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    var lowerProto = proto.toLowerCase();\n    this.protocol = lowerProto;\n    rest = rest.substr(proto.length);\n  }\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n    var slashes = rest.substr(0, 2) === \"//\";\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n  if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) {\n    var hostEnd = -1;\n    for (var i = 0; i < hostEndingChars.length; i++) {\n      var hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n        hostEnd = hec;\n    }\n    var auth, atSign;\n    if (hostEnd === -1) {\n      atSign = rest.lastIndexOf(\"@\");\n    } else {\n      atSign = rest.lastIndexOf(\"@\", hostEnd);\n    }\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = decodeURIComponent(auth);\n    }\n    hostEnd = -1;\n    for (var i = 0; i < nonHostChars.length; i++) {\n      var hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n        hostEnd = hec;\n    }\n    if (hostEnd === -1)\n      hostEnd = rest.length;\n    this.host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n    this.parseHost();\n    this.hostname = this.hostname || \"\";\n    var ipv6Hostname = this.hostname[0] === \"[\" && this.hostname[this.hostname.length - 1] === \"]\";\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (var i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part)\n          continue;\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = \"\";\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              newpart += \"x\";\n            } else {\n              newpart += part[j];\n            }\n          }\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = \"/\" + notHost.join(\".\") + rest;\n            }\n            this.hostname = validParts.join(\".\");\n            break;\n          }\n        }\n      }\n    }\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = \"\";\n    } else {\n      this.hostname = this.hostname.toLowerCase();\n    }\n    if (!ipv6Hostname) {\n      this.hostname = punycode.toASCII(this.hostname);\n    }\n    var p = this.port ? \":\" + this.port : \"\";\n    var h = this.hostname || \"\";\n    this.host = h + p;\n    this.href += this.host;\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n      if (rest[0] !== \"/\") {\n        rest = \"/\" + rest;\n      }\n    }\n  }\n  if (!unsafeProtocol[lowerProto]) {\n    for (var i = 0, l = autoEscape.length; i < l; i++) {\n      var ae = autoEscape[i];\n      if (rest.indexOf(ae) === -1)\n        continue;\n      var esc = encodeURIComponent(ae);\n      if (esc === ae) {\n        esc = escape(ae);\n      }\n      rest = rest.split(ae).join(esc);\n    }\n  }\n  var hash = rest.indexOf(\"#\");\n  if (hash !== -1) {\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf(\"?\");\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    this.query = rest.substr(qm + 1);\n    if (parseQueryString) {\n      this.query = querystring.parse(this.query);\n    }\n    rest = rest.slice(0, qm);\n  } else if (parseQueryString) {\n    this.search = \"\";\n    this.query = {};\n  }\n  if (rest)\n    this.pathname = rest;\n  if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n    this.pathname = \"/\";\n  }\n  if (this.pathname || this.search) {\n    var p = this.pathname || \"\";\n    var s = this.search || \"\";\n    this.path = p + s;\n  }\n  this.href = this.format();\n  return this;\n};\nfunction urlFormat(obj) {\n  if (util.isString(obj))\n    obj = urlParse(obj);\n  if (!(obj instanceof Url))\n    return Url.prototype.format.call(obj);\n  return obj.format();\n}\nUrl.prototype.format = function() {\n  var auth = this.auth || \"\";\n  if (auth) {\n    auth = encodeURIComponent(auth);\n    auth = auth.replace(/%3A/i, \":\");\n    auth += \"@\";\n  }\n  var protocol = this.protocol || \"\", pathname = this.pathname || \"\", hash = this.hash || \"\", host = false, query = \"\";\n  if (this.host) {\n    host = auth + this.host;\n  } else if (this.hostname) {\n    host = auth + (this.hostname.indexOf(\":\") === -1 ? this.hostname : \"[\" + this.hostname + \"]\");\n    if (this.port) {\n      host += \":\" + this.port;\n    }\n  }\n  if (this.query && util.isObject(this.query) && Object.keys(this.query).length) {\n    query = querystring.stringify(this.query);\n  }\n  var search = this.search || query && \"?\" + query || \"\";\n  if (protocol && protocol.substr(-1) !== \":\")\n    protocol += \":\";\n  if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n    host = \"//\" + (host || \"\");\n    if (pathname && pathname.charAt(0) !== \"/\")\n      pathname = \"/\" + pathname;\n  } else if (!host) {\n    host = \"\";\n  }\n  if (hash && hash.charAt(0) !== \"#\")\n    hash = \"#\" + hash;\n  if (search && search.charAt(0) !== \"?\")\n    search = \"?\" + search;\n  pathname = pathname.replace(/[?#]/g, function(match) {\n    return encodeURIComponent(match);\n  });\n  search = search.replace(\"#\", \"%23\");\n  return protocol + host + pathname + search + hash;\n};\nfunction urlResolve(source3, relative) {\n  return urlParse(source3, false, true).resolve(relative);\n}\nUrl.prototype.resolve = function(relative) {\n  return this.resolveObject(urlParse(relative, false, true)).format();\n};\nfunction urlResolveObject(source3, relative) {\n  if (!source3)\n    return relative;\n  return urlParse(source3, false, true).resolveObject(relative);\n}\nUrl.prototype.resolveObject = function(relative) {\n  if (util.isString(relative)) {\n    var rel = new Url();\n    rel.parse(relative, false, true);\n    relative = rel;\n  }\n  var result = new Url();\n  var tkeys = Object.keys(this);\n  for (var tk = 0; tk < tkeys.length; tk++) {\n    var tkey = tkeys[tk];\n    result[tkey] = this[tkey];\n  }\n  result.hash = relative.hash;\n  if (relative.href === \"\") {\n    result.href = result.format();\n    return result;\n  }\n  if (relative.slashes && !relative.protocol) {\n    var rkeys = Object.keys(relative);\n    for (var rk = 0; rk < rkeys.length; rk++) {\n      var rkey = rkeys[rk];\n      if (rkey !== \"protocol\")\n        result[rkey] = relative[rkey];\n    }\n    if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n      result.path = result.pathname = \"/\";\n    }\n    result.href = result.format();\n    return result;\n  }\n  if (relative.protocol && relative.protocol !== result.protocol) {\n    if (!slashedProtocol[relative.protocol]) {\n      var keys = Object.keys(relative);\n      for (var v = 0; v < keys.length; v++) {\n        var k = keys[v];\n        result[k] = relative[k];\n      }\n      result.href = result.format();\n      return result;\n    }\n    result.protocol = relative.protocol;\n    if (!relative.host && !hostlessProtocol[relative.protocol]) {\n      var relPath = (relative.pathname || \"\").split(\"/\");\n      while (relPath.length && !(relative.host = relPath.shift()))\n        ;\n      if (!relative.host)\n        relative.host = \"\";\n      if (!relative.hostname)\n        relative.hostname = \"\";\n      if (relPath[0] !== \"\")\n        relPath.unshift(\"\");\n      if (relPath.length < 2)\n        relPath.unshift(\"\");\n      result.pathname = relPath.join(\"/\");\n    } else {\n      result.pathname = relative.pathname;\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    result.host = relative.host || \"\";\n    result.auth = relative.auth;\n    result.hostname = relative.hostname || relative.host;\n    result.port = relative.port;\n    if (result.pathname || result.search) {\n      var p = result.pathname || \"\";\n      var s = result.search || \"\";\n      result.path = p + s;\n    }\n    result.slashes = result.slashes || relative.slashes;\n    result.href = result.format();\n    return result;\n  }\n  var isSourceAbs = result.pathname && result.pathname.charAt(0) === \"/\", isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === \"/\", mustEndAbs = isRelAbs || isSourceAbs || result.host && relative.pathname, removeAllDots = mustEndAbs, srcPath = result.pathname && result.pathname.split(\"/\") || [], relPath = relative.pathname && relative.pathname.split(\"/\") || [], psychotic = result.protocol && !slashedProtocol[result.protocol];\n  if (psychotic) {\n    result.hostname = \"\";\n    result.port = null;\n    if (result.host) {\n      if (srcPath[0] === \"\")\n        srcPath[0] = result.host;\n      else\n        srcPath.unshift(result.host);\n    }\n    result.host = \"\";\n    if (relative.protocol) {\n      relative.hostname = null;\n      relative.port = null;\n      if (relative.host) {\n        if (relPath[0] === \"\")\n          relPath[0] = relative.host;\n        else\n          relPath.unshift(relative.host);\n      }\n      relative.host = null;\n    }\n    mustEndAbs = mustEndAbs && (relPath[0] === \"\" || srcPath[0] === \"\");\n  }\n  if (isRelAbs) {\n    result.host = relative.host || relative.host === \"\" ? relative.host : result.host;\n    result.hostname = relative.hostname || relative.hostname === \"\" ? relative.hostname : result.hostname;\n    result.search = relative.search;\n    result.query = relative.query;\n    srcPath = relPath;\n  } else if (relPath.length) {\n    if (!srcPath)\n      srcPath = [];\n    srcPath.pop();\n    srcPath = srcPath.concat(relPath);\n    result.search = relative.search;\n    result.query = relative.query;\n  } else if (!util.isNullOrUndefined(relative.search)) {\n    if (psychotic) {\n      result.hostname = result.host = srcPath.shift();\n      var authInHost = result.host && result.host.indexOf(\"@\") > 0 ? result.host.split(\"@\") : false;\n      if (authInHost) {\n        result.auth = authInHost.shift();\n        result.host = result.hostname = authInHost.shift();\n      }\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n      result.path = (result.pathname ? result.pathname : \"\") + (result.search ? result.search : \"\");\n    }\n    result.href = result.format();\n    return result;\n  }\n  if (!srcPath.length) {\n    result.pathname = null;\n    if (result.search) {\n      result.path = \"/\" + result.search;\n    } else {\n      result.path = null;\n    }\n    result.href = result.format();\n    return result;\n  }\n  var last = srcPath.slice(-1)[0];\n  var hasTrailingSlash2 = (result.host || relative.host || srcPath.length > 1) && (last === \".\" || last === \"..\") || last === \"\";\n  var up = 0;\n  for (var i = srcPath.length; i >= 0; i--) {\n    last = srcPath[i];\n    if (last === \".\") {\n      srcPath.splice(i, 1);\n    } else if (last === \"..\") {\n      srcPath.splice(i, 1);\n      up++;\n    } else if (up) {\n      srcPath.splice(i, 1);\n      up--;\n    }\n  }\n  if (!mustEndAbs && !removeAllDots) {\n    for (; up--; up) {\n      srcPath.unshift(\"..\");\n    }\n  }\n  if (mustEndAbs && srcPath[0] !== \"\" && (!srcPath[0] || srcPath[0].charAt(0) !== \"/\")) {\n    srcPath.unshift(\"\");\n  }\n  if (hasTrailingSlash2 && srcPath.join(\"/\").substr(-1) !== \"/\") {\n    srcPath.push(\"\");\n  }\n  var isAbsolute = srcPath[0] === \"\" || srcPath[0] && srcPath[0].charAt(0) === \"/\";\n  if (psychotic) {\n    result.hostname = result.host = isAbsolute ? \"\" : srcPath.length ? srcPath.shift() : \"\";\n    var authInHost = result.host && result.host.indexOf(\"@\") > 0 ? result.host.split(\"@\") : false;\n    if (authInHost) {\n      result.auth = authInHost.shift();\n      result.host = result.hostname = authInHost.shift();\n    }\n  }\n  mustEndAbs = mustEndAbs || result.host && srcPath.length;\n  if (mustEndAbs && !isAbsolute) {\n    srcPath.unshift(\"\");\n  }\n  if (!srcPath.length) {\n    result.pathname = null;\n    result.path = null;\n  } else {\n    result.pathname = srcPath.join(\"/\");\n  }\n  if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n    result.path = (result.pathname ? result.pathname : \"\") + (result.search ? result.search : \"\");\n  }\n  result.auth = relative.auth || result.auth;\n  result.slashes = result.slashes || relative.slashes;\n  result.href = result.format();\n  return result;\n};\nUrl.prototype.parseHost = function() {\n  var host = this.host;\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== \":\") {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host)\n    this.hostname = host;\n};\nvar helpers$3 = {};\nvar uri = url;\nvar ValidationError$1 = helpers$3.ValidationError = function ValidationError(message, instance, schema, path, name, argument) {\n  if (Array.isArray(path)) {\n    this.path = path;\n    this.property = path.reduce(function(sum, item) {\n      return sum + makeSuffix$1(item);\n    }, \"instance\");\n  } else if (path !== void 0) {\n    this.property = path;\n  }\n  if (message) {\n    this.message = message;\n  }\n  if (schema) {\n    var id = schema.$id || schema.id;\n    this.schema = id || schema;\n  }\n  if (instance !== void 0) {\n    this.instance = instance;\n  }\n  this.name = name;\n  this.argument = argument;\n  this.stack = this.toString();\n};\nValidationError$1.prototype.toString = function toString() {\n  return this.property + \" \" + this.message;\n};\nvar ValidatorResult$3 = helpers$3.ValidatorResult = function ValidatorResult(instance, schema, options, ctx) {\n  this.instance = instance;\n  this.schema = schema;\n  this.options = options;\n  this.path = ctx.path;\n  this.propertyPath = ctx.propertyPath;\n  this.errors = [];\n  this.throwError = options && options.throwError;\n  this.throwFirst = options && options.throwFirst;\n  this.throwAll = options && options.throwAll;\n  this.disableFormat = options && options.disableFormat === true;\n};\nValidatorResult$3.prototype.addError = function addError(detail) {\n  var err;\n  if (typeof detail == \"string\") {\n    err = new ValidationError$1(detail, this.instance, this.schema, this.path);\n  } else {\n    if (!detail)\n      throw new Error(\"Missing error detail\");\n    if (!detail.message)\n      throw new Error(\"Missing error message\");\n    if (!detail.name)\n      throw new Error(\"Missing validator type\");\n    err = new ValidationError$1(detail.message, this.instance, this.schema, this.path, detail.name, detail.argument);\n  }\n  this.errors.push(err);\n  if (this.throwFirst) {\n    throw new ValidatorResultError$2(this);\n  } else if (this.throwError) {\n    throw err;\n  }\n  return err;\n};\nValidatorResult$3.prototype.importErrors = function importErrors(res) {\n  if (typeof res == \"string\" || res && res.validatorType) {\n    this.addError(res);\n  } else if (res && res.errors) {\n    this.errors = this.errors.concat(res.errors);\n  }\n};\nfunction stringizer$1(v, i) {\n  return i + \": \" + v.toString() + \"\\n\";\n}\nValidatorResult$3.prototype.toString = function toString2(res) {\n  return this.errors.map(stringizer$1).join(\"\");\n};\nObject.defineProperty(ValidatorResult$3.prototype, \"valid\", { get: function() {\n  return !this.errors.length;\n} });\nhelpers$3.ValidatorResultError = ValidatorResultError$2;\nfunction ValidatorResultError$2(result) {\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, ValidatorResultError$2);\n  }\n  this.instance = result.instance;\n  this.schema = result.schema;\n  this.options = result.options;\n  this.errors = result.errors;\n}\nValidatorResultError$2.prototype = new Error();\nValidatorResultError$2.prototype.constructor = ValidatorResultError$2;\nValidatorResultError$2.prototype.name = \"Validation Error\";\nvar SchemaError$2 = helpers$3.SchemaError = function SchemaError(msg, schema) {\n  this.message = msg;\n  this.schema = schema;\n  Error.call(this, msg);\n  Error.captureStackTrace(this, SchemaError);\n};\nSchemaError$2.prototype = Object.create(\n  Error.prototype,\n  {\n    constructor: { value: SchemaError$2, enumerable: false },\n    name: { value: \"SchemaError\", enumerable: false }\n  }\n);\nvar SchemaContext$1 = helpers$3.SchemaContext = function SchemaContext(schema, options, path, base, schemas) {\n  this.schema = schema;\n  this.options = options;\n  if (Array.isArray(path)) {\n    this.path = path;\n    this.propertyPath = path.reduce(function(sum, item) {\n      return sum + makeSuffix$1(item);\n    }, \"instance\");\n  } else {\n    this.propertyPath = path;\n  }\n  this.base = base;\n  this.schemas = schemas;\n};\nSchemaContext$1.prototype.resolve = function resolve(target) {\n  return uri.resolve(this.base, target);\n};\nSchemaContext$1.prototype.makeChild = function makeChild(schema, propertyName) {\n  var path = propertyName === void 0 ? this.path : this.path.concat([propertyName]);\n  var id = schema.$id || schema.id;\n  var base = uri.resolve(this.base, id || \"\");\n  var ctx = new SchemaContext$1(schema, this.options, path, base, Object.create(this.schemas));\n  if (id && !ctx.schemas[base]) {\n    ctx.schemas[base] = schema;\n  }\n  return ctx;\n};\nvar FORMAT_REGEXPS = helpers$3.FORMAT_REGEXPS = {\n  // 7.3.1. Dates, Times, and Duration\n  \"date-time\": /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])[tT ](2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])(\\.\\d+)?([zZ]|[+-]([0-5][0-9]):(60|[0-5][0-9]))$/,\n  \"date\": /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-(3[01]|0[1-9]|[12][0-9])$/,\n  \"time\": /^(2[0-4]|[01][0-9]):([0-5][0-9]):(60|[0-5][0-9])$/,\n  \"duration\": /P(T\\d+(H(\\d+M(\\d+S)?)?|M(\\d+S)?|S)|\\d+(D|M(\\d+D)?|Y(\\d+M(\\d+D)?)?)(T\\d+(H(\\d+M(\\d+S)?)?|M(\\d+S)?|S))?|\\d+W)/i,\n  // 7.3.2. Email Addresses\n  // TODO: fix the email production\n  \"email\": /^(?:[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`\\{\\|\\}\\~]+\\.)*[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`\\{\\|\\}\\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\\-](?!\\.)){0,61}[a-zA-Z0-9]?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\\[(?:(?:[01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d{1,2}|2[0-4]\\d|25[0-5])\\]))$/,\n  \"idn-email\": /^(\"(?:[!#-\\[\\]-\\u{10FFFF}]|\\\\[\\t -\\u{10FFFF}])*\"|[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}](?:\\.?[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}])*)@([!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}](?:\\.?[!#-'*+\\-/-9=?A-Z\\^-\\u{10FFFF}])*|\\[[!-Z\\^-\\u{10FFFF}]*\\])$/u,\n  // 7.3.3. Hostnames\n  // 7.3.4. IP Addresses\n  \"ip-address\": /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,\n  // FIXME whitespace is invalid\n  \"ipv6\": /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/,\n  // 7.3.5. Resource Identifiers\n  // TODO: A more accurate regular expression for \"uri\" goes:\n  // [A-Za-z][+\\-.0-9A-Za-z]*:((/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?)?#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])|/?%[0-9A-Fa-f]{2}|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*(#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?|/(/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)?)?\n  \"uri\": /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]*$/,\n  \"uri-reference\": /^(((([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|(([A-Za-z][+\\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~]|[A-Za-z][+\\-.0-9A-Za-z]*[!$&-*,;=@_~])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*)?|([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~])*|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~]+)?|[.0-:A-Fa-f]+)\\])?)?|[A-Za-z][+\\-.0-9A-Za-z]*:?)?$/,\n  \"iri\": /^[a-zA-Z][a-zA-Z0-9+.-]*:[^\\s]*$/,\n  \"iri-reference\": /^(((([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|([A-Za-z][+\\-.0-9A-Za-z]*:?)?)|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|(\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?)?))#(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|(([A-Za-z][+\\-.0-9A-Za-z]*)?%[0-9A-Fa-f]{2}|[!$&-.0-9;=@_~-\\u{10FFFF}]|[A-Za-z][+\\-.0-9A-Za-z]*[!$&-*,;=@_~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-.0-9;=@-Z_a-z~-\\u{10FFFF}])*((([/?](%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*)?#|[/?])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*)?|([A-Za-z][+\\-.0-9A-Za-z]*(:%[0-9A-Fa-f]{2}|:[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}]|[/?])|\\?)(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|([A-Za-z][+\\-.0-9A-Za-z]*:)?\\/((%[0-9A-Fa-f]{2}|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)(:\\d*)?[/?]|[!$&-.0-;=?-Z_a-z~-\\u{10FFFF}])(%[0-9A-Fa-f]{2}|[!$&-;=?-Z_a-z~-\\u{10FFFF}])*|\\/((%[0-9A-Fa-f]{2}|[!$&-.0-9;=A-Z_a-z~-\\u{10FFFF}])+(:\\d*)?|(\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?:\\d*|\\[(([Vv][0-9A-Fa-f]+\\.[!$&-.0-;=A-Z_a-z~-\\u{10FFFF}]+)?|[.0-:A-Fa-f]+)\\])?)?|[A-Za-z][+\\-.0-9A-Za-z]*:?)?$/u,\n  \"uuid\": /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n  // 7.3.6. uri-template\n  \"uri-template\": /(%[0-9a-f]{2}|[!#$&(-;=?@\\[\\]_a-z~]|\\{[!#&+,./;=?@|]?(%[0-9a-f]{2}|[0-9_a-z])(\\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\\d{0,3}|\\*)?(,(%[0-9a-f]{2}|[0-9_a-z])(\\.?(%[0-9a-f]{2}|[0-9_a-z]))*(:[1-9]\\d{0,3}|\\*)?)*\\})*/iu,\n  // 7.3.7. JSON Pointers\n  \"json-pointer\": /^(\\/([\\x00-\\x2e0-@\\[-}\\x7f]|~[01])*)*$/iu,\n  \"relative-json-pointer\": /^\\d+(#|(\\/([\\x00-\\x2e0-@\\[-}\\x7f]|~[01])*)*)$/iu,\n  // hostname regex from: http://stackoverflow.com/a/1420225/5628\n  \"hostname\": /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\\.?$/,\n  \"host-name\": /^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\\.?$/,\n  \"utc-millisec\": function(input) {\n    return typeof input === \"string\" && parseFloat(input) === parseInt(input, 10) && !isNaN(input);\n  },\n  // 7.3.8. regex\n  \"regex\": function(input) {\n    var result = true;\n    try {\n      new RegExp(input);\n    } catch (e) {\n      result = false;\n    }\n    return result;\n  },\n  // Other definitions\n  // \"style\" was removed from JSON Schema in draft-4 and is deprecated\n  \"style\": /[\\r\\n\\t ]*[^\\r\\n\\t ][^:]*:[\\r\\n\\t ]*[^\\r\\n\\t ;]*[\\r\\n\\t ]*;?/,\n  // \"color\" was removed from JSON Schema in draft-4 and is deprecated\n  \"color\": /^(#?([0-9A-Fa-f]{3}){1,2}\\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\\(\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*\\))|(rgb\\(\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*\\)))$/,\n  \"phone\": /^\\+(?:[0-9] ?){6,14}[0-9]$/,\n  \"alpha\": /^[a-zA-Z]+$/,\n  \"alphanumeric\": /^[a-zA-Z0-9]+$/\n};\nFORMAT_REGEXPS.regexp = FORMAT_REGEXPS.regex;\nFORMAT_REGEXPS.pattern = FORMAT_REGEXPS.regex;\nFORMAT_REGEXPS.ipv4 = FORMAT_REGEXPS[\"ip-address\"];\nhelpers$3.isFormat = function isFormat(input, format, validator2) {\n  if (typeof input === \"string\" && FORMAT_REGEXPS[format] !== void 0) {\n    if (FORMAT_REGEXPS[format] instanceof RegExp) {\n      return FORMAT_REGEXPS[format].test(input);\n    }\n    if (typeof FORMAT_REGEXPS[format] === \"function\") {\n      return FORMAT_REGEXPS[format](input);\n    }\n  } else if (validator2 && validator2.customFormats && typeof validator2.customFormats[format] === \"function\") {\n    return validator2.customFormats[format](input);\n  }\n  return true;\n};\nvar makeSuffix$1 = helpers$3.makeSuffix = function makeSuffix(key) {\n  key = key.toString();\n  if (!key.match(/[.\\s\\[\\]]/) && !key.match(/^[\\d]/)) {\n    return \".\" + key;\n  }\n  if (key.match(/^\\d+$/)) {\n    return \"[\" + key + \"]\";\n  }\n  return \"[\" + JSON.stringify(key) + \"]\";\n};\nhelpers$3.deepCompareStrict = function deepCompareStrict(a, b) {\n  if (typeof a !== typeof b) {\n    return false;\n  }\n  if (Array.isArray(a)) {\n    if (!Array.isArray(b)) {\n      return false;\n    }\n    if (a.length !== b.length) {\n      return false;\n    }\n    return a.every(function(v, i) {\n      return deepCompareStrict(a[i], b[i]);\n    });\n  }\n  if (typeof a === \"object\") {\n    if (!a || !b) {\n      return a === b;\n    }\n    var aKeys = Object.keys(a);\n    var bKeys = Object.keys(b);\n    if (aKeys.length !== bKeys.length) {\n      return false;\n    }\n    return aKeys.every(function(v) {\n      return deepCompareStrict(a[v], b[v]);\n    });\n  }\n  return a === b;\n};\nfunction deepMerger(target, dst, e, i) {\n  if (typeof e === \"object\") {\n    dst[i] = deepMerge(target[i], e);\n  } else {\n    if (target.indexOf(e) === -1) {\n      dst.push(e);\n    }\n  }\n}\nfunction copyist(src, dst, key) {\n  dst[key] = src[key];\n}\nfunction copyistWithDeepMerge(target, src, dst, key) {\n  if (typeof src[key] !== \"object\" || !src[key]) {\n    dst[key] = src[key];\n  } else {\n    if (!target[key]) {\n      dst[key] = src[key];\n    } else {\n      dst[key] = deepMerge(target[key], src[key]);\n    }\n  }\n}\nfunction deepMerge(target, src) {\n  var array = Array.isArray(src);\n  var dst = array && [] || {};\n  if (array) {\n    target = target || [];\n    dst = dst.concat(target);\n    src.forEach(deepMerger.bind(null, target, dst));\n  } else {\n    if (target && typeof target === \"object\") {\n      Object.keys(target).forEach(copyist.bind(null, target, dst));\n    }\n    Object.keys(src).forEach(copyistWithDeepMerge.bind(null, target, src, dst));\n  }\n  return dst;\n}\nhelpers$3.deepMerge = deepMerge;\nhelpers$3.objectGetPath = function objectGetPath(o, s) {\n  var parts = s.split(\"/\").slice(1);\n  var k;\n  while (typeof (k = parts.shift()) == \"string\") {\n    var n = decodeURIComponent(k.replace(/~0/, \"~\").replace(/~1/g, \"/\"));\n    if (!(n in o))\n      return;\n    o = o[n];\n  }\n  return o;\n};\nfunction pathEncoder(v) {\n  return \"/\" + encodeURIComponent(v).replace(/~/g, \"%7E\");\n}\nhelpers$3.encodePath = function encodePointer(a) {\n  return a.map(pathEncoder).join(\"\");\n};\nhelpers$3.getDecimalPlaces = function getDecimalPlaces(number) {\n  var decimalPlaces = 0;\n  if (isNaN(number))\n    return decimalPlaces;\n  if (typeof number !== \"number\") {\n    number = Number(number);\n  }\n  var parts = number.toString().split(\"e\");\n  if (parts.length === 2) {\n    if (parts[1][0] !== \"-\") {\n      return decimalPlaces;\n    } else {\n      decimalPlaces = Number(parts[1].slice(1));\n    }\n  }\n  var decimalParts = parts[0].split(\".\");\n  if (decimalParts.length === 2) {\n    decimalPlaces += decimalParts[1].length;\n  }\n  return decimalPlaces;\n};\nhelpers$3.isSchema = function isSchema(val) {\n  return typeof val === \"object\" && val || typeof val === \"boolean\";\n};\nvar helpers$2 = helpers$3;\nvar ValidatorResult$2 = helpers$2.ValidatorResult;\nvar SchemaError$1 = helpers$2.SchemaError;\nvar attribute$1 = {};\nattribute$1.ignoreProperties = {\n  // informative properties\n  \"id\": true,\n  \"default\": true,\n  \"description\": true,\n  \"title\": true,\n  // arguments to other properties\n  \"additionalItems\": true,\n  \"then\": true,\n  \"else\": true,\n  // special-handled properties\n  \"$schema\": true,\n  \"$ref\": true,\n  \"extends\": true\n};\nvar validators = attribute$1.validators = {};\nvalidators.type = function validateType(instance, schema, options, ctx) {\n  if (instance === void 0) {\n    return null;\n  }\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var types2 = Array.isArray(schema.type) ? schema.type : [schema.type];\n  if (!types2.some(this.testType.bind(this, instance, schema, options, ctx))) {\n    var list = types2.map(function(v) {\n      if (!v)\n        return;\n      var id = v.$id || v.id;\n      return id ? \"<\" + id + \">\" : v + \"\";\n    });\n    result.addError({\n      name: \"type\",\n      argument: list,\n      message: \"is not of a type(s) \" + list\n    });\n  }\n  return result;\n};\nfunction testSchemaNoThrow(instance, options, ctx, callback, schema) {\n  var throwError = options.throwError;\n  var throwAll = options.throwAll;\n  options.throwError = false;\n  options.throwAll = false;\n  var res = this.validateSchema(instance, schema, options, ctx);\n  options.throwError = throwError;\n  options.throwAll = throwAll;\n  if (!res.valid && callback instanceof Function) {\n    callback(res);\n  }\n  return res.valid;\n}\nvalidators.anyOf = function validateAnyOf(instance, schema, options, ctx) {\n  if (instance === void 0) {\n    return null;\n  }\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var inner = new ValidatorResult$2(instance, schema, options, ctx);\n  if (!Array.isArray(schema.anyOf)) {\n    throw new SchemaError$1(\"anyOf must be an array\");\n  }\n  if (!schema.anyOf.some(\n    testSchemaNoThrow.bind(\n      this,\n      instance,\n      options,\n      ctx,\n      function(res) {\n        inner.importErrors(res);\n      }\n    )\n  )) {\n    var list = schema.anyOf.map(function(v, i) {\n      var id = v.$id || v.id;\n      if (id)\n        return \"<\" + id + \">\";\n      return v.title && JSON.stringify(v.title) || v[\"$ref\"] && \"<\" + v[\"$ref\"] + \">\" || \"[subschema \" + i + \"]\";\n    });\n    if (options.nestedErrors) {\n      result.importErrors(inner);\n    }\n    result.addError({\n      name: \"anyOf\",\n      argument: list,\n      message: \"is not any of \" + list.join(\",\")\n    });\n  }\n  return result;\n};\nvalidators.allOf = function validateAllOf(instance, schema, options, ctx) {\n  if (instance === void 0) {\n    return null;\n  }\n  if (!Array.isArray(schema.allOf)) {\n    throw new SchemaError$1(\"allOf must be an array\");\n  }\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var self2 = this;\n  schema.allOf.forEach(function(v, i) {\n    var valid = self2.validateSchema(instance, v, options, ctx);\n    if (!valid.valid) {\n      var id = v.$id || v.id;\n      var msg = id || v.title && JSON.stringify(v.title) || v[\"$ref\"] && \"<\" + v[\"$ref\"] + \">\" || \"[subschema \" + i + \"]\";\n      result.addError({\n        name: \"allOf\",\n        argument: { id: msg, length: valid.errors.length, valid },\n        message: \"does not match allOf schema \" + msg + \" with \" + valid.errors.length + \" error[s]:\"\n      });\n      result.importErrors(valid);\n    }\n  });\n  return result;\n};\nvalidators.oneOf = function validateOneOf(instance, schema, options, ctx) {\n  if (instance === void 0) {\n    return null;\n  }\n  if (!Array.isArray(schema.oneOf)) {\n    throw new SchemaError$1(\"oneOf must be an array\");\n  }\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var inner = new ValidatorResult$2(instance, schema, options, ctx);\n  var count = schema.oneOf.filter(\n    testSchemaNoThrow.bind(\n      this,\n      instance,\n      options,\n      ctx,\n      function(res) {\n        inner.importErrors(res);\n      }\n    )\n  ).length;\n  var list = schema.oneOf.map(function(v, i) {\n    var id = v.$id || v.id;\n    return id || v.title && JSON.stringify(v.title) || v[\"$ref\"] && \"<\" + v[\"$ref\"] + \">\" || \"[subschema \" + i + \"]\";\n  });\n  if (count !== 1) {\n    if (options.nestedErrors) {\n      result.importErrors(inner);\n    }\n    result.addError({\n      name: \"oneOf\",\n      argument: list,\n      message: \"is not exactly one from \" + list.join(\",\")\n    });\n  }\n  return result;\n};\nvalidators.if = function validateIf(instance, schema, options, ctx) {\n  if (instance === void 0)\n    return null;\n  if (!helpers$2.isSchema(schema.if))\n    throw new Error('Expected \"if\" keyword to be a schema');\n  var ifValid = testSchemaNoThrow.call(this, instance, options, ctx, null, schema.if);\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var res;\n  if (ifValid) {\n    if (schema.then === void 0)\n      return;\n    if (!helpers$2.isSchema(schema.then))\n      throw new Error('Expected \"then\" keyword to be a schema');\n    res = this.validateSchema(instance, schema.then, options, ctx.makeChild(schema.then));\n    result.importErrors(res);\n  } else {\n    if (schema.else === void 0)\n      return;\n    if (!helpers$2.isSchema(schema.else))\n      throw new Error('Expected \"else\" keyword to be a schema');\n    res = this.validateSchema(instance, schema.else, options, ctx.makeChild(schema.else));\n    result.importErrors(res);\n  }\n  return result;\n};\nfunction getEnumerableProperty(object, key) {\n  if (Object.hasOwnProperty.call(object, key))\n    return object[key];\n  if (!(key in object))\n    return;\n  while (object = Object.getPrototypeOf(object)) {\n    if (Object.propertyIsEnumerable.call(object, key))\n      return object[key];\n  }\n}\nvalidators.propertyNames = function validatePropertyNames(instance, schema, options, ctx) {\n  if (!this.types.object(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var subschema = schema.propertyNames !== void 0 ? schema.propertyNames : {};\n  if (!helpers$2.isSchema(subschema))\n    throw new SchemaError$1('Expected \"propertyNames\" to be a schema (object or boolean)');\n  for (var property in instance) {\n    if (getEnumerableProperty(instance, property) !== void 0) {\n      var res = this.validateSchema(property, subschema, options, ctx.makeChild(subschema));\n      result.importErrors(res);\n    }\n  }\n  return result;\n};\nvalidators.properties = function validateProperties(instance, schema, options, ctx) {\n  if (!this.types.object(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var properties = schema.properties || {};\n  for (var property in properties) {\n    var subschema = properties[property];\n    if (subschema === void 0) {\n      continue;\n    } else if (subschema === null) {\n      throw new SchemaError$1('Unexpected null, expected schema in \"properties\"');\n    }\n    if (typeof options.preValidateProperty == \"function\") {\n      options.preValidateProperty(instance, property, subschema, options, ctx);\n    }\n    var prop = getEnumerableProperty(instance, property);\n    var res = this.validateSchema(prop, subschema, options, ctx.makeChild(subschema, property));\n    if (res.instance !== result.instance[property])\n      result.instance[property] = res.instance;\n    result.importErrors(res);\n  }\n  return result;\n};\nfunction testAdditionalProperty(instance, schema, options, ctx, property, result) {\n  if (!this.types.object(instance))\n    return;\n  if (schema.properties && schema.properties[property] !== void 0) {\n    return;\n  }\n  if (schema.additionalProperties === false) {\n    result.addError({\n      name: \"additionalProperties\",\n      argument: property,\n      message: \"is not allowed to have the additional property \" + JSON.stringify(property)\n    });\n  } else {\n    var additionalProperties = schema.additionalProperties || {};\n    if (typeof options.preValidateProperty == \"function\") {\n      options.preValidateProperty(instance, property, additionalProperties, options, ctx);\n    }\n    var res = this.validateSchema(instance[property], additionalProperties, options, ctx.makeChild(additionalProperties, property));\n    if (res.instance !== result.instance[property])\n      result.instance[property] = res.instance;\n    result.importErrors(res);\n  }\n}\nvalidators.patternProperties = function validatePatternProperties(instance, schema, options, ctx) {\n  if (!this.types.object(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var patternProperties = schema.patternProperties || {};\n  for (var property in instance) {\n    var test = true;\n    for (var pattern in patternProperties) {\n      var subschema = patternProperties[pattern];\n      if (subschema === void 0) {\n        continue;\n      } else if (subschema === null) {\n        throw new SchemaError$1('Unexpected null, expected schema in \"patternProperties\"');\n      }\n      try {\n        var regexp = new RegExp(pattern, \"u\");\n      } catch (_e) {\n        regexp = new RegExp(pattern);\n      }\n      if (!regexp.test(property)) {\n        continue;\n      }\n      test = false;\n      if (typeof options.preValidateProperty == \"function\") {\n        options.preValidateProperty(instance, property, subschema, options, ctx);\n      }\n      var res = this.validateSchema(instance[property], subschema, options, ctx.makeChild(subschema, property));\n      if (res.instance !== result.instance[property])\n        result.instance[property] = res.instance;\n      result.importErrors(res);\n    }\n    if (test) {\n      testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);\n    }\n  }\n  return result;\n};\nvalidators.additionalProperties = function validateAdditionalProperties(instance, schema, options, ctx) {\n  if (!this.types.object(instance))\n    return;\n  if (schema.patternProperties) {\n    return null;\n  }\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  for (var property in instance) {\n    testAdditionalProperty.call(this, instance, schema, options, ctx, property, result);\n  }\n  return result;\n};\nvalidators.minProperties = function validateMinProperties(instance, schema, options, ctx) {\n  if (!this.types.object(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var keys = Object.keys(instance);\n  if (!(keys.length >= schema.minProperties)) {\n    result.addError({\n      name: \"minProperties\",\n      argument: schema.minProperties,\n      message: \"does not meet minimum property length of \" + schema.minProperties\n    });\n  }\n  return result;\n};\nvalidators.maxProperties = function validateMaxProperties(instance, schema, options, ctx) {\n  if (!this.types.object(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var keys = Object.keys(instance);\n  if (!(keys.length <= schema.maxProperties)) {\n    result.addError({\n      name: \"maxProperties\",\n      argument: schema.maxProperties,\n      message: \"does not meet maximum property length of \" + schema.maxProperties\n    });\n  }\n  return result;\n};\nvalidators.items = function validateItems(instance, schema, options, ctx) {\n  var self2 = this;\n  if (!this.types.array(instance))\n    return;\n  if (schema.items === void 0)\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  instance.every(function(value3, i) {\n    if (Array.isArray(schema.items)) {\n      var items = schema.items[i] === void 0 ? schema.additionalItems : schema.items[i];\n    } else {\n      var items = schema.items;\n    }\n    if (items === void 0) {\n      return true;\n    }\n    if (items === false) {\n      result.addError({\n        name: \"items\",\n        message: \"additionalItems not permitted\"\n      });\n      return false;\n    }\n    var res = self2.validateSchema(value3, items, options, ctx.makeChild(items, i));\n    if (res.instance !== result.instance[i])\n      result.instance[i] = res.instance;\n    result.importErrors(res);\n    return true;\n  });\n  return result;\n};\nvalidators.contains = function validateContains(instance, schema, options, ctx) {\n  var self2 = this;\n  if (!this.types.array(instance))\n    return;\n  if (schema.contains === void 0)\n    return;\n  if (!helpers$2.isSchema(schema.contains))\n    throw new Error('Expected \"contains\" keyword to be a schema');\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var count = instance.some(function(value3, i) {\n    var res = self2.validateSchema(value3, schema.contains, options, ctx.makeChild(schema.contains, i));\n    return res.errors.length === 0;\n  });\n  if (count === false) {\n    result.addError({\n      name: \"contains\",\n      argument: schema.contains,\n      message: \"must contain an item matching given schema\"\n    });\n  }\n  return result;\n};\nvalidators.minimum = function validateMinimum(instance, schema, options, ctx) {\n  if (!this.types.number(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  if (schema.exclusiveMinimum && schema.exclusiveMinimum === true) {\n    if (!(instance > schema.minimum)) {\n      result.addError({\n        name: \"minimum\",\n        argument: schema.minimum,\n        message: \"must be greater than \" + schema.minimum\n      });\n    }\n  } else {\n    if (!(instance >= schema.minimum)) {\n      result.addError({\n        name: \"minimum\",\n        argument: schema.minimum,\n        message: \"must be greater than or equal to \" + schema.minimum\n      });\n    }\n  }\n  return result;\n};\nvalidators.maximum = function validateMaximum(instance, schema, options, ctx) {\n  if (!this.types.number(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  if (schema.exclusiveMaximum && schema.exclusiveMaximum === true) {\n    if (!(instance < schema.maximum)) {\n      result.addError({\n        name: \"maximum\",\n        argument: schema.maximum,\n        message: \"must be less than \" + schema.maximum\n      });\n    }\n  } else {\n    if (!(instance <= schema.maximum)) {\n      result.addError({\n        name: \"maximum\",\n        argument: schema.maximum,\n        message: \"must be less than or equal to \" + schema.maximum\n      });\n    }\n  }\n  return result;\n};\nvalidators.exclusiveMinimum = function validateExclusiveMinimum(instance, schema, options, ctx) {\n  if (typeof schema.exclusiveMinimum === \"boolean\")\n    return;\n  if (!this.types.number(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var valid = instance > schema.exclusiveMinimum;\n  if (!valid) {\n    result.addError({\n      name: \"exclusiveMinimum\",\n      argument: schema.exclusiveMinimum,\n      message: \"must be strictly greater than \" + schema.exclusiveMinimum\n    });\n  }\n  return result;\n};\nvalidators.exclusiveMaximum = function validateExclusiveMaximum(instance, schema, options, ctx) {\n  if (typeof schema.exclusiveMaximum === \"boolean\")\n    return;\n  if (!this.types.number(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var valid = instance < schema.exclusiveMaximum;\n  if (!valid) {\n    result.addError({\n      name: \"exclusiveMaximum\",\n      argument: schema.exclusiveMaximum,\n      message: \"must be strictly less than \" + schema.exclusiveMaximum\n    });\n  }\n  return result;\n};\nvar validateMultipleOfOrDivisbleBy = function validateMultipleOfOrDivisbleBy2(instance, schema, options, ctx, validationType, errorMessage) {\n  if (!this.types.number(instance))\n    return;\n  var validationArgument = schema[validationType];\n  if (validationArgument == 0) {\n    throw new SchemaError$1(validationType + \" cannot be zero\");\n  }\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var instanceDecimals = helpers$2.getDecimalPlaces(instance);\n  var divisorDecimals = helpers$2.getDecimalPlaces(validationArgument);\n  var maxDecimals = Math.max(instanceDecimals, divisorDecimals);\n  var multiplier = Math.pow(10, maxDecimals);\n  if (Math.round(instance * multiplier) % Math.round(validationArgument * multiplier) !== 0) {\n    result.addError({\n      name: validationType,\n      argument: validationArgument,\n      message: errorMessage + JSON.stringify(validationArgument)\n    });\n  }\n  return result;\n};\nvalidators.multipleOf = function validateMultipleOf(instance, schema, options, ctx) {\n  return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, \"multipleOf\", \"is not a multiple of (divisible by) \");\n};\nvalidators.divisibleBy = function validateDivisibleBy(instance, schema, options, ctx) {\n  return validateMultipleOfOrDivisbleBy.call(this, instance, schema, options, ctx, \"divisibleBy\", \"is not divisible by (multiple of) \");\n};\nvalidators.required = function validateRequired(instance, schema, options, ctx) {\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  if (instance === void 0 && schema.required === true) {\n    result.addError({\n      name: \"required\",\n      message: \"is required\"\n    });\n  } else if (this.types.object(instance) && Array.isArray(schema.required)) {\n    schema.required.forEach(function(n) {\n      if (getEnumerableProperty(instance, n) === void 0) {\n        result.addError({\n          name: \"required\",\n          argument: n,\n          message: \"requires property \" + JSON.stringify(n)\n        });\n      }\n    });\n  }\n  return result;\n};\nvalidators.pattern = function validatePattern(instance, schema, options, ctx) {\n  if (!this.types.string(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var pattern = schema.pattern;\n  try {\n    var regexp = new RegExp(pattern, \"u\");\n  } catch (_e) {\n    regexp = new RegExp(pattern);\n  }\n  if (!instance.match(regexp)) {\n    result.addError({\n      name: \"pattern\",\n      argument: schema.pattern,\n      message: \"does not match pattern \" + JSON.stringify(schema.pattern.toString())\n    });\n  }\n  return result;\n};\nvalidators.format = function validateFormat(instance, schema, options, ctx) {\n  if (instance === void 0)\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  if (!result.disableFormat && !helpers$2.isFormat(instance, schema.format, this)) {\n    result.addError({\n      name: \"format\",\n      argument: schema.format,\n      message: \"does not conform to the \" + JSON.stringify(schema.format) + \" format\"\n    });\n  }\n  return result;\n};\nvalidators.minLength = function validateMinLength(instance, schema, options, ctx) {\n  if (!this.types.string(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var hsp = instance.match(/[\\uDC00-\\uDFFF]/g);\n  var length = instance.length - (hsp ? hsp.length : 0);\n  if (!(length >= schema.minLength)) {\n    result.addError({\n      name: \"minLength\",\n      argument: schema.minLength,\n      message: \"does not meet minimum length of \" + schema.minLength\n    });\n  }\n  return result;\n};\nvalidators.maxLength = function validateMaxLength(instance, schema, options, ctx) {\n  if (!this.types.string(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var hsp = instance.match(/[\\uDC00-\\uDFFF]/g);\n  var length = instance.length - (hsp ? hsp.length : 0);\n  if (!(length <= schema.maxLength)) {\n    result.addError({\n      name: \"maxLength\",\n      argument: schema.maxLength,\n      message: \"does not meet maximum length of \" + schema.maxLength\n    });\n  }\n  return result;\n};\nvalidators.minItems = function validateMinItems(instance, schema, options, ctx) {\n  if (!this.types.array(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  if (!(instance.length >= schema.minItems)) {\n    result.addError({\n      name: \"minItems\",\n      argument: schema.minItems,\n      message: \"does not meet minimum length of \" + schema.minItems\n    });\n  }\n  return result;\n};\nvalidators.maxItems = function validateMaxItems(instance, schema, options, ctx) {\n  if (!this.types.array(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  if (!(instance.length <= schema.maxItems)) {\n    result.addError({\n      name: \"maxItems\",\n      argument: schema.maxItems,\n      message: \"does not meet maximum length of \" + schema.maxItems\n    });\n  }\n  return result;\n};\nfunction testArrays(v, i, a) {\n  var j, len = a.length;\n  for (j = i + 1, len; j < len; j++) {\n    if (helpers$2.deepCompareStrict(v, a[j])) {\n      return false;\n    }\n  }\n  return true;\n}\nvalidators.uniqueItems = function validateUniqueItems(instance, schema, options, ctx) {\n  if (schema.uniqueItems !== true)\n    return;\n  if (!this.types.array(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  if (!instance.every(testArrays)) {\n    result.addError({\n      name: \"uniqueItems\",\n      message: \"contains duplicate item\"\n    });\n  }\n  return result;\n};\nvalidators.dependencies = function validateDependencies(instance, schema, options, ctx) {\n  if (!this.types.object(instance))\n    return;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  for (var property in schema.dependencies) {\n    if (instance[property] === void 0) {\n      continue;\n    }\n    var dep = schema.dependencies[property];\n    var childContext = ctx.makeChild(dep, property);\n    if (typeof dep == \"string\") {\n      dep = [dep];\n    }\n    if (Array.isArray(dep)) {\n      dep.forEach(function(prop) {\n        if (instance[prop] === void 0) {\n          result.addError({\n            // FIXME there's two different \"dependencies\" errors here with slightly different outputs\n            // Can we make these the same? Or should we create different error types?\n            name: \"dependencies\",\n            argument: childContext.propertyPath,\n            message: \"property \" + prop + \" not found, required by \" + childContext.propertyPath\n          });\n        }\n      });\n    } else {\n      var res = this.validateSchema(instance, dep, options, childContext);\n      if (result.instance !== res.instance)\n        result.instance = res.instance;\n      if (res && res.errors.length) {\n        result.addError({\n          name: \"dependencies\",\n          argument: childContext.propertyPath,\n          message: \"does not meet dependency required by \" + childContext.propertyPath\n        });\n        result.importErrors(res);\n      }\n    }\n  }\n  return result;\n};\nvalidators[\"enum\"] = function validateEnum(instance, schema, options, ctx) {\n  if (instance === void 0) {\n    return null;\n  }\n  if (!Array.isArray(schema[\"enum\"])) {\n    throw new SchemaError$1(\"enum expects an array\", schema);\n  }\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  if (!schema[\"enum\"].some(helpers$2.deepCompareStrict.bind(null, instance))) {\n    result.addError({\n      name: \"enum\",\n      argument: schema[\"enum\"],\n      message: \"is not one of enum values: \" + schema[\"enum\"].map(String).join(\",\")\n    });\n  }\n  return result;\n};\nvalidators[\"const\"] = function validateEnum2(instance, schema, options, ctx) {\n  if (instance === void 0) {\n    return null;\n  }\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  if (!helpers$2.deepCompareStrict(schema[\"const\"], instance)) {\n    result.addError({\n      name: \"const\",\n      argument: schema[\"const\"],\n      message: \"does not exactly match expected constant: \" + schema[\"const\"]\n    });\n  }\n  return result;\n};\nvalidators.not = validators.disallow = function validateNot(instance, schema, options, ctx) {\n  var self2 = this;\n  if (instance === void 0)\n    return null;\n  var result = new ValidatorResult$2(instance, schema, options, ctx);\n  var notTypes = schema.not || schema.disallow;\n  if (!notTypes)\n    return null;\n  if (!Array.isArray(notTypes))\n    notTypes = [notTypes];\n  notTypes.forEach(function(type) {\n    if (self2.testType(instance, schema, options, ctx, type)) {\n      var id = type && (type.$id || type.id);\n      var schemaId = id || type;\n      result.addError({\n        name: \"not\",\n        argument: schemaId,\n        message: \"is of prohibited type \" + schemaId\n      });\n    }\n  });\n  return result;\n};\nvar attribute_1 = attribute$1;\nvar scan = {};\nvar urilib$1 = url;\nvar helpers$1 = helpers$3;\nscan.SchemaScanResult = SchemaScanResult;\nfunction SchemaScanResult(found, ref) {\n  this.id = found;\n  this.ref = ref;\n}\nscan.scan = function scan2(base, schema) {\n  function scanSchema2(baseuri, schema2) {\n    if (!schema2 || typeof schema2 != \"object\")\n      return;\n    if (schema2.$ref) {\n      var resolvedUri = urilib$1.resolve(baseuri, schema2.$ref);\n      ref[resolvedUri] = ref[resolvedUri] ? ref[resolvedUri] + 1 : 0;\n      return;\n    }\n    var id = schema2.$id || schema2.id;\n    var ourBase = id ? urilib$1.resolve(baseuri, id) : baseuri;\n    if (ourBase) {\n      if (ourBase.indexOf(\"#\") < 0)\n        ourBase += \"#\";\n      if (found[ourBase]) {\n        if (!helpers$1.deepCompareStrict(found[ourBase], schema2)) {\n          throw new Error(\"Schema <\" + ourBase + \"> already exists with different definition\");\n        }\n        return found[ourBase];\n      }\n      found[ourBase] = schema2;\n      if (ourBase[ourBase.length - 1] == \"#\") {\n        found[ourBase.substring(0, ourBase.length - 1)] = schema2;\n      }\n    }\n    scanArray(ourBase + \"/items\", Array.isArray(schema2.items) ? schema2.items : [schema2.items]);\n    scanArray(ourBase + \"/extends\", Array.isArray(schema2.extends) ? schema2.extends : [schema2.extends]);\n    scanSchema2(ourBase + \"/additionalItems\", schema2.additionalItems);\n    scanObject(ourBase + \"/properties\", schema2.properties);\n    scanSchema2(ourBase + \"/additionalProperties\", schema2.additionalProperties);\n    scanObject(ourBase + \"/definitions\", schema2.definitions);\n    scanObject(ourBase + \"/patternProperties\", schema2.patternProperties);\n    scanObject(ourBase + \"/dependencies\", schema2.dependencies);\n    scanArray(ourBase + \"/disallow\", schema2.disallow);\n    scanArray(ourBase + \"/allOf\", schema2.allOf);\n    scanArray(ourBase + \"/anyOf\", schema2.anyOf);\n    scanArray(ourBase + \"/oneOf\", schema2.oneOf);\n    scanSchema2(ourBase + \"/not\", schema2.not);\n  }\n  function scanArray(baseuri, schemas) {\n    if (!Array.isArray(schemas))\n      return;\n    for (var i = 0; i < schemas.length; i++) {\n      scanSchema2(baseuri + \"/\" + i, schemas[i]);\n    }\n  }\n  function scanObject(baseuri, schemas) {\n    if (!schemas || typeof schemas != \"object\")\n      return;\n    for (var p in schemas) {\n      scanSchema2(baseuri + \"/\" + p, schemas[p]);\n    }\n  }\n  var found = {};\n  var ref = {};\n  scanSchema2(base, schema);\n  return new SchemaScanResult(found, ref);\n};\nvar urilib = url;\nvar attribute = attribute_1;\nvar helpers = helpers$3;\nvar scanSchema = scan.scan;\nvar ValidatorResult$1 = helpers.ValidatorResult;\nvar ValidatorResultError$1 = helpers.ValidatorResultError;\nvar SchemaError2 = helpers.SchemaError;\nvar SchemaContext2 = helpers.SchemaContext;\nvar anonymousBase = \"/\";\nvar Validator$1 = function Validator() {\n  this.customFormats = Object.create(Validator.prototype.customFormats);\n  this.schemas = {};\n  this.unresolvedRefs = [];\n  this.types = Object.create(types);\n  this.attributes = Object.create(attribute.validators);\n};\nValidator$1.prototype.customFormats = {};\nValidator$1.prototype.schemas = null;\nValidator$1.prototype.types = null;\nValidator$1.prototype.attributes = null;\nValidator$1.prototype.unresolvedRefs = null;\nValidator$1.prototype.addSchema = function addSchema(schema, base) {\n  var self2 = this;\n  if (!schema) {\n    return null;\n  }\n  var scan3 = scanSchema(base || anonymousBase, schema);\n  var ourUri = base || schema.$id || schema.id;\n  for (var uri2 in scan3.id) {\n    this.schemas[uri2] = scan3.id[uri2];\n  }\n  for (var uri2 in scan3.ref) {\n    this.unresolvedRefs.push(uri2);\n  }\n  this.unresolvedRefs = this.unresolvedRefs.filter(function(uri3) {\n    return typeof self2.schemas[uri3] === \"undefined\";\n  });\n  return this.schemas[ourUri];\n};\nValidator$1.prototype.addSubSchemaArray = function addSubSchemaArray(baseuri, schemas) {\n  if (!Array.isArray(schemas))\n    return;\n  for (var i = 0; i < schemas.length; i++) {\n    this.addSubSchema(baseuri, schemas[i]);\n  }\n};\nValidator$1.prototype.addSubSchemaObject = function addSubSchemaArray2(baseuri, schemas) {\n  if (!schemas || typeof schemas != \"object\")\n    return;\n  for (var p in schemas) {\n    this.addSubSchema(baseuri, schemas[p]);\n  }\n};\nValidator$1.prototype.setSchemas = function setSchemas(schemas) {\n  this.schemas = schemas;\n};\nValidator$1.prototype.getSchema = function getSchema(urn) {\n  return this.schemas[urn];\n};\nValidator$1.prototype.validate = function validate(instance, schema, options, ctx) {\n  if (typeof schema !== \"boolean\" && typeof schema !== \"object\" || schema === null) {\n    throw new SchemaError2(\"Expected `schema` to be an object or boolean\");\n  }\n  if (!options) {\n    options = {};\n  }\n  var id = schema.$id || schema.id;\n  var base = urilib.resolve(options.base || anonymousBase, id || \"\");\n  if (!ctx) {\n    ctx = new SchemaContext2(schema, options, [], base, Object.create(this.schemas));\n    if (!ctx.schemas[base]) {\n      ctx.schemas[base] = schema;\n    }\n    var found = scanSchema(base, schema);\n    for (var n in found.id) {\n      var sch = found.id[n];\n      ctx.schemas[n] = sch;\n    }\n  }\n  if (options.required && instance === void 0) {\n    var result = new ValidatorResult$1(instance, schema, options, ctx);\n    result.addError(\"is required, but is undefined\");\n    return result;\n  }\n  var result = this.validateSchema(instance, schema, options, ctx);\n  if (!result) {\n    throw new Error(\"Result undefined\");\n  } else if (options.throwAll && result.errors.length) {\n    throw new ValidatorResultError$1(result);\n  }\n  return result;\n};\nfunction shouldResolve(schema) {\n  var ref = typeof schema === \"string\" ? schema : schema.$ref;\n  if (typeof ref == \"string\")\n    return ref;\n  return false;\n}\nValidator$1.prototype.validateSchema = function validateSchema(instance, schema, options, ctx) {\n  var result = new ValidatorResult$1(instance, schema, options, ctx);\n  if (typeof schema === \"boolean\") {\n    if (schema === true) {\n      schema = {};\n    } else if (schema === false) {\n      schema = { type: [] };\n    }\n  } else if (!schema) {\n    throw new Error(\"schema is undefined\");\n  }\n  if (schema[\"extends\"]) {\n    if (Array.isArray(schema[\"extends\"])) {\n      var schemaobj = { schema, ctx };\n      schema[\"extends\"].forEach(this.schemaTraverser.bind(this, schemaobj));\n      schema = schemaobj.schema;\n      schemaobj.schema = null;\n      schemaobj.ctx = null;\n      schemaobj = null;\n    } else {\n      schema = helpers.deepMerge(schema, this.superResolve(schema[\"extends\"], ctx));\n    }\n  }\n  var switchSchema = shouldResolve(schema);\n  if (switchSchema) {\n    var resolved = this.resolve(schema, switchSchema, ctx);\n    var subctx = new SchemaContext2(resolved.subschema, options, ctx.path, resolved.switchSchema, ctx.schemas);\n    return this.validateSchema(instance, resolved.subschema, options, subctx);\n  }\n  var skipAttributes = options && options.skipAttributes || [];\n  for (var key in schema) {\n    if (!attribute.ignoreProperties[key] && skipAttributes.indexOf(key) < 0) {\n      var validatorErr = null;\n      var validator2 = this.attributes[key];\n      if (validator2) {\n        validatorErr = validator2.call(this, instance, schema, options, ctx);\n      } else if (options.allowUnknownAttributes === false) {\n        throw new SchemaError2(\"Unsupported attribute: \" + key, schema);\n      }\n      if (validatorErr) {\n        result.importErrors(validatorErr);\n      }\n    }\n  }\n  if (typeof options.rewrite == \"function\") {\n    var value3 = options.rewrite.call(this, instance, schema, options, ctx);\n    result.instance = value3;\n  }\n  return result;\n};\nValidator$1.prototype.schemaTraverser = function schemaTraverser(schemaobj, s) {\n  schemaobj.schema = helpers.deepMerge(schemaobj.schema, this.superResolve(s, schemaobj.ctx));\n};\nValidator$1.prototype.superResolve = function superResolve(schema, ctx) {\n  var ref = shouldResolve(schema);\n  if (ref) {\n    return this.resolve(schema, ref, ctx).subschema;\n  }\n  return schema;\n};\nValidator$1.prototype.resolve = function resolve2(schema, switchSchema, ctx) {\n  switchSchema = ctx.resolve(switchSchema);\n  if (ctx.schemas[switchSchema]) {\n    return { subschema: ctx.schemas[switchSchema], switchSchema };\n  }\n  var parsed = urilib.parse(switchSchema);\n  var fragment = parsed && parsed.hash;\n  var document2 = fragment && fragment.length && switchSchema.substr(0, switchSchema.length - fragment.length);\n  if (!document2 || !ctx.schemas[document2]) {\n    throw new SchemaError2(\"no such schema <\" + switchSchema + \">\", schema);\n  }\n  var subschema = helpers.objectGetPath(ctx.schemas[document2], fragment.substr(1));\n  if (subschema === void 0) {\n    throw new SchemaError2(\"no such schema \" + fragment + \" located in <\" + document2 + \">\", schema);\n  }\n  return { subschema, switchSchema };\n};\nValidator$1.prototype.testType = function validateType2(instance, schema, options, ctx, type) {\n  if (type === void 0) {\n    return;\n  } else if (type === null) {\n    throw new SchemaError2('Unexpected null in \"type\" keyword');\n  }\n  if (typeof this.types[type] == \"function\") {\n    return this.types[type].call(this, instance);\n  }\n  if (type && typeof type == \"object\") {\n    var res = this.validateSchema(instance, type, options, ctx);\n    return res === void 0 || !(res && res.errors.length);\n  }\n  return true;\n};\nvar types = Validator$1.prototype.types = {};\ntypes.string = function testString(instance) {\n  return typeof instance == \"string\";\n};\ntypes.number = function testNumber(instance) {\n  return typeof instance == \"number\" && isFinite(instance);\n};\ntypes.integer = function testInteger(instance) {\n  return typeof instance == \"number\" && instance % 1 === 0;\n};\ntypes.boolean = function testBoolean(instance) {\n  return typeof instance == \"boolean\";\n};\ntypes.array = function testArray(instance) {\n  return Array.isArray(instance);\n};\ntypes[\"null\"] = function testNull(instance) {\n  return instance === null;\n};\ntypes.date = function testDate(instance) {\n  return instance instanceof Date;\n};\ntypes.any = function testAny(instance) {\n  return true;\n};\ntypes.object = function testObject(instance) {\n  return instance && typeof instance === \"object\" && !Array.isArray(instance) && !(instance instanceof Date);\n};\nvar validator = Validator$1;\nvar Validator2 = validator;\nhelpers$3.ValidatorResult;\nhelpers$3.ValidatorResultError;\nhelpers$3.ValidationError;\nhelpers$3.SchemaError;\nvar validate2 = function(instance, schema, options) {\n  var v = new Validator2();\n  return v.validate(instance, schema, options);\n};\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {\n    d2.__proto__ = b2;\n  } || function(d2, b2) {\n    for (var p in b2)\n      if (Object.prototype.hasOwnProperty.call(b2, p))\n        d2[p] = b2[p];\n  };\n  return extendStatics(d, b);\n};\nfunction __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n    throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() {\n    this.constructor = d;\n  }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar ValidationError2 = function ValidationError3(message, instance, schema, path, name, argument) {\n  if (Array.isArray(path)) {\n    this.path = path;\n    this.property = path.reduce(function(sum, item) {\n      return sum + makeSuffix2(item);\n    }, \"instance\");\n  } else if (path !== void 0) {\n    this.property = path;\n  }\n  if (message) {\n    this.message = message;\n  }\n  if (schema) {\n    var id = schema.$id || schema.id;\n    this.schema = id || schema;\n  }\n  if (instance !== void 0) {\n    this.instance = instance;\n  }\n  this.name = name;\n  this.argument = argument;\n  this.stack = this.toString();\n};\nValidationError2.prototype.toString = function toString3() {\n  return this.property + \" \" + this.message;\n};\nvar ValidatorResult2 = function ValidatorResult3(instance, schema, options, ctx) {\n  this.instance = instance;\n  this.schema = schema;\n  this.options = options;\n  this.path = ctx.path;\n  this.propertyPath = ctx.propertyPath;\n  this.errors = [];\n  this.throwError = options && options.throwError;\n  this.throwFirst = options && options.throwFirst;\n  this.throwAll = options && options.throwAll;\n  this.disableFormat = options && options.disableFormat === true;\n};\nValidatorResult2.prototype.addError = function addError2(detail) {\n  var err;\n  if (typeof detail == \"string\") {\n    err = new ValidationError2(detail, this.instance, this.schema, this.path);\n  } else {\n    if (!detail)\n      throw new Error(\"Missing error detail\");\n    if (!detail.message)\n      throw new Error(\"Missing error message\");\n    if (!detail.name)\n      throw new Error(\"Missing validator type\");\n    err = new ValidationError2(detail.message, this.instance, this.schema, this.path, detail.name, detail.argument);\n  }\n  this.errors.push(err);\n  if (this.throwFirst) {\n    throw new ValidatorResultError(this);\n  } else if (this.throwError) {\n    throw err;\n  }\n  return err;\n};\nValidatorResult2.prototype.importErrors = function importErrors2(res) {\n  if (typeof res == \"string\" || res && res.validatorType) {\n    this.addError(res);\n  } else if (res && res.errors) {\n    this.errors = this.errors.concat(res.errors);\n  }\n};\nfunction stringizer(v, i) {\n  return i + \": \" + v.toString() + \"\\n\";\n}\nValidatorResult2.prototype.toString = function toString4(res) {\n  return this.errors.map(stringizer).join(\"\");\n};\nObject.defineProperty(ValidatorResult2.prototype, \"valid\", { get: function() {\n  return !this.errors.length;\n} });\nfunction ValidatorResultError(result) {\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, ValidatorResultError);\n  }\n  this.instance = result.instance;\n  this.schema = result.schema;\n  this.options = result.options;\n  this.errors = result.errors;\n}\nValidatorResultError.prototype = new Error();\nValidatorResultError.prototype.constructor = ValidatorResultError;\nValidatorResultError.prototype.name = \"Validation Error\";\nvar makeSuffix2 = function makeSuffix3(key) {\n  key = key.toString();\n  if (!key.match(/[.\\s\\[\\]]/) && !key.match(/^[\\d]/)) {\n    return \".\" + key;\n  }\n  if (key.match(/^\\d+$/)) {\n    return \"[\" + key + \"]\";\n  }\n  return \"[\" + JSON.stringify(key) + \"]\";\n};\nvar deepCompareStrict2 = function deepCompareStrict3(a, b) {\n  if (typeof a !== typeof b) {\n    return false;\n  }\n  if (Array.isArray(a)) {\n    if (!Array.isArray(b)) {\n      return false;\n    }\n    if (a.length !== b.length) {\n      return false;\n    }\n    return a.every(function(v, i) {\n      return deepCompareStrict3(a[i], b[i]);\n    });\n  }\n  if (typeof a === \"object\") {\n    if (!a || !b) {\n      return a === b;\n    }\n    var aKeys = Object.keys(a);\n    var bKeys = Object.keys(b);\n    if (aKeys.length !== bKeys.length) {\n      return false;\n    }\n    return aKeys.every(function(v) {\n      return deepCompareStrict3(a[v], b[v]);\n    });\n  }\n  return a === b;\n};\nvar PayloadMismatchError = (\n  /** @class */\n  function(_super) {\n    __extends(PayloadMismatchError2, _super);\n    function PayloadMismatchError2(channel, schema, payload) {\n      var _this = _super.call(this, \"payload does not match the specified schema for channel [\".concat(channel, \"].\")) || this;\n      _this.channel = channel;\n      _this.schema = schema;\n      _this.payload = payload;\n      if (Error.captureStackTrace) {\n        Error.captureStackTrace(_this, PayloadMismatchError2);\n      }\n      _this.name = \"PayloadMismatchError\";\n      return _this;\n    }\n    return PayloadMismatchError2;\n  }(Error)\n);\nvar SchemaMismatchError = (\n  /** @class */\n  function(_super) {\n    __extends(SchemaMismatchError2, _super);\n    function SchemaMismatchError2(channel, schema, newSchema) {\n      var _this = _super.call(this, \"schema registration for [\".concat(channel, \"] must match already registered schema.\")) || this;\n      _this.channel = channel;\n      _this.schema = schema;\n      _this.newSchema = newSchema;\n      if (Error.captureStackTrace) {\n        Error.captureStackTrace(_this, SchemaMismatchError2);\n      }\n      _this.name = \"SchemaMismatchError\";\n      return _this;\n    }\n    return SchemaMismatchError2;\n  }(Error)\n);\nvar EventBus = (\n  /** @class */\n  function() {\n    function EventBus2() {\n      this._lastId = 0;\n      this._subscriptions = {};\n    }\n    EventBus2.prototype._getNextId = function() {\n      return this._lastId++;\n    };\n    EventBus2.prototype.register = function(channel, schema) {\n      var exists = true;\n      if (!this._subscriptions[channel]) {\n        exists = false;\n        this._subscriptions[channel] = {};\n      }\n      var registered = this._subscriptions[channel].__schema;\n      if (registered && !deepCompareStrict2(registered, schema)) {\n        throw new SchemaMismatchError(channel, registered, schema);\n      }\n      this._subscriptions[channel].__schema = schema;\n      return exists;\n    };\n    EventBus2.prototype.unregister = function(channel) {\n      var subscriptions = this._subscriptions[channel];\n      var exists = false;\n      if (subscriptions && subscriptions.__schema) {\n        exists = true;\n        delete subscriptions.__schema;\n      }\n      return exists;\n    };\n    EventBus2.prototype.subscribe = function(channel, param2, param3) {\n      var id = this._getNextId();\n      var replay = typeof param2 === \"boolean\" ? param2 : false;\n      var callback = typeof param2 === \"function\" ? param2 : param3;\n      if (typeof callback !== \"function\")\n        throw new Error(\"Callback function must be supplied as either the second or third argument.\");\n      var channelObject = this._subscriptions[channel];\n      if (!channelObject)\n        channelObject = this._subscriptions[channel] = {};\n      else if (replay)\n        callback({ channel, payload: channelObject.__replay });\n      channelObject[id] = callback;\n      return {\n        unsubscribe: function() {\n          return delete channelObject[id];\n        }\n      };\n    };\n    EventBus2.prototype.publish = function(channel, payload) {\n      var channelObject = this._subscriptions[channel];\n      if (!channelObject)\n        channelObject = this._subscriptions[channel] = {};\n      var schema = channelObject.__schema;\n      if (typeof payload !== \"undefined\" && schema && !validate2(payload, schema).valid) {\n        throw new PayloadMismatchError(channel, schema, payload);\n      }\n      channelObject.__replay = payload;\n      for (var id in channelObject) {\n        if (id === \"__replay\" || id === \"__schema\")\n          continue;\n        if (typeof channelObject[id] !== \"function\")\n          continue;\n        channelObject[id]({ channel, payload });\n      }\n      channelObject = this._subscriptions[\"*\"];\n      if (channelObject) {\n        for (var id in channelObject) {\n          if (id === \"__replay\" || id === \"__schema\")\n            continue;\n          if (typeof channelObject[id] !== \"function\")\n            continue;\n          channelObject[id]({ channel, payload });\n        }\n      }\n    };\n    EventBus2.prototype.getLatest = function(channel) {\n      if (this._subscriptions[channel])\n        return this._subscriptions[channel].__replay;\n    };\n    EventBus2.prototype.getSchema = function(channel) {\n      if (this._subscriptions[channel])\n        return this._subscriptions[channel].__schema;\n    };\n    return EventBus2;\n  }()\n);\nvar getGlobal = function() {\n  if (typeof self !== \"undefined\") {\n    return self;\n  }\n  if (typeof window !== \"undefined\") {\n    return window;\n  }\n  if (typeof global !== \"undefined\") {\n    return global;\n  }\n  throw new Error(\"unable to locate global object\");\n};\ngetGlobal().eventBus = new EventBus();\nconst bus = new EventBus();\nconst state = [];\nconst subscribe = (callback) => bus.subscribe(\"toast\", callback);\nconst register = (optionsType = {\n  type: Object\n}) => bus.register(\"toast\", optionsType);\nconst publish = (payload) => {\n  state.push(payload);\n  bus.publish(\"toast\", payload);\n};\nconst toastBus = {\n  subscribe,\n  register,\n  publish,\n  state: () => state\n};\nconst toast = \"\";\nconst actions = {};\nfunction actionFactory(name) {\n  return (payload) => {\n    toastBus.publish({\n      id: `${Math.random()}`,\n      ...payload\n    });\n  };\n}\nfunction createTheme(name) {\n  const properties = [\n    \"background\",\n    \"foreground\"\n  ];\n  const theme = {};\n  properties.forEach((property) => theme[property] = `var(--pa-toast-${property}-${name})`);\n  debug(`ToastService createTheme: ${name}: ${JSON.stringify(theme)}`);\n  toastBus.register();\n  actions[name] = actionFactory();\n}\nfunction triggerCustomAction(name, payload) {\n  return actions[name](payload);\n}\nfunction useToastExtension() {\n  createTheme(\"success\");\n  createTheme(\"error\");\n  return {\n    success: actions.success,\n    error: actions.error,\n    createTheme,\n    trigger: triggerCustomAction\n  };\n}\nclass ToastService {\n  constructor() {\n    this.toasts = [];\n  }\n  onChangeToasts(event) {\n    this.toasts = toastBus.state();\n    debug(`ToastService onChangeToasts: toasts: ${this.toasts}`);\n  }\n  getClasses(disabled, className) {\n    const base = classesToString([\n      \"pa-toast\",\n      [\n        disabled,\n        \"is-disabled\"\n      ],\n      className || \"\"\n    ]);\n    debug(`ToastService getClasses: base: ${base}`);\n    return {\n      base\n    };\n  }\n  getToasts() {\n    return this.toasts;\n  }\n  subscribe() {\n    debug(\"ToastService subscribe\");\n    return toastBus.subscribe(this.onChangeToasts);\n  }\n}\nconst toastService = new ToastService();\nconst classes$3 = function classes26(props, state2) {\n  return toastService.getClasses(props.disabled, props.class || props.classList);\n};\nconst toasts = function toasts2(props, state2) {\n  return toastService.getToasts();\n};\nconst Toast = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  const state2 = useStore({\n    toastSubscription: null\n  });\n  useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(() => {\n    const [state22] = useLexicalScope();\n    if (state22.toastSubscription)\n      return;\n    state22.toastSubscription = toastService.subscribe();\n  }, \"Toast_component_useVisibleTask_GnEk8G0Uhw8\", [\n    state2\n  ]));\n  return /* @__PURE__ */ _jsxQ(\"div\", {\n    class: _wrapSignal(classes$3(props), \"base\")\n  }, null, [\n    (toasts() || []).map(function(toast2) {\n      return /* @__PURE__ */ _jsxQ(\"div\", null, null, _wrapSignal(toast2, \"message\"), 3, \"Wr_0\");\n    }),\n    /* @__PURE__ */ _jsxC(Slot, null, 3, \"Wr_1\")\n  ], 1, \"Wr_2\");\n}, \"Toast_component_ZzQ748szUa4\"));\nconst column = \"\";\nclass ColumnService {\n  getClasses(centered, basic, xxs, xs, s, m, l, xl, xxl, className) {\n    const base = classesToString([\n      \"pa-column\",\n      [\n        centered,\n        `pa-column--centered`\n      ],\n      getBreakpointClasses(basic, xxs, xs, s, m, l, xl, xxl, \"pa-column--\"),\n      className || \"\"\n    ]);\n    return {\n      base\n    };\n  }\n}\nconst columnService = new ColumnService();\nconst classes$2 = function classes27(props, state2) {\n  return columnService.getClasses(props.centered || false, props.basic, props.xxs, props.xs, props.s, props.m, props.l, props.xl, props.xxl, props.class);\n};\nconst Column = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  return /* @__PURE__ */ _jsxQ(\"div\", {\n    class: _wrapSignal(classes$2(props), \"base\")\n  }, null, /* @__PURE__ */ _jsxC(Slot, null, 3, \"0G_0\"), 1, \"0G_1\");\n}, \"Column_component_qe0fuDb4lIg\"));\nconst container = \"\";\nclass ContainerService {\n  getClasses(centered, fluid, className) {\n    const base = classesToString([\n      \"pa-container\",\n      [\n        centered,\n        `pa-column--centered`\n      ],\n      [\n        fluid,\n        \"pa-container--fluid\"\n      ],\n      className || \"\"\n    ]);\n    return {\n      base\n    };\n  }\n}\nconst containerService = new ContainerService();\nconst classes$1 = function classes28(props, state2) {\n  return containerService.getClasses(props.centered || false, props.fluid, props.class || props.classList);\n};\nconst Container = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  return /* @__PURE__ */ _jsxQ(\"div\", {\n    class: _wrapSignal(classes$1(props), \"base\")\n  }, null, /* @__PURE__ */ _jsxC(Slot, null, 3, \"66_0\"), 1, \"66_1\");\n}, \"Container_component_iaggqUWm03M\"));\nconst row = \"\";\nclass RowService {\n  getClasses(basic, xxs, xs, s, m, l, xl, xxl, className) {\n    const base = classesToString([\n      \"pa-row\",\n      getBreakpointClasses(basic, xxs, xs, s, m, l, xl, xxl, \"pa-row--\"),\n      className || \"\"\n    ]);\n    return {\n      base\n    };\n  }\n}\nconst rowService = new RowService();\nconst classes = function classes29(props, state2) {\n  return rowService.getClasses(props.basic, props.xxs, props.xs, props.s, props.m, props.l, props.xl, props.xxl, props.class);\n};\nconst Row = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {\n  return /* @__PURE__ */ _jsxQ(\"div\", {\n    class: _wrapSignal(classes(props), \"base\")\n  }, null, /* @__PURE__ */ _jsxC(Slot, null, 3, \"yd_0\"), 1, \"yd_1\");\n}, \"Row_component_Oe0buPDcPXQ\"));\nsetPlatform(Platform.Qwik);\nsetVersion(\"1.1.2\");\ninitBreakpointChecker();\nexport {\n  Avatar,\n  Button,\n  Code,\n  Column,\n  Container,\n  DebugLevel,\n  Itchio,\n  Pill,\n  Row,\n  Spinner,\n  Toast,\n  addCodeLanguage,\n  getPlatform,\n  getVersion,\n  setDebugLevel,\n  useToastExtension,\n  useTooltipExtension\n};\n"]}