nexus-admin 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api-services/preference-service.tsx","../src/interfaces/icon-interfaces.tsx","../src/interfaces/menu-interfaces.tsx","../src/api-services/system-service.tsx","../src/interfaces/layout-interfaces.tsx","../src/interfaces/theme-interfaces.tsx","../src/nexus.environments.tsx","../src/interfaces/browser-interfaces.tsx","../src/helpers/bitwise-helpers.tsx","../src/helpers/utility-helpers.tsx","../src/helpers/browser-helpers.tsx","../src/helpers/element-helpers.tsx","../src/interfaces/button-interfaces.tsx","../src/components/documents/icon-box.tsx","../src/components/documents/button.tsx","../src/components/documents/page-title.tsx","../src/helpers/string-helpers.tsx","../src/helpers/datasource-helpers.tsx","../src/components/layouts/global-dialogbox.tsx","../src/components/documents/tab-button.tsx","../src/interfaces/input-interfaces.tsx","../src/helpers/input-helpers.tsx","../src/components/inputs/input-box.tsx","../src/components/inputs/input-element.tsx","../src/components/inputs/number-input.tsx","../src/components/inputs/radiobox-input.tsx","../src/components/inputs/textarea-input.tsx","../src/components/inputs/textbox-input.tsx","../src/components/inputs/input.tsx","../src/components/inputs/checkbox-input.tsx","../src/components/inputs/input-form.tsx","../src/nexus-client.tsx","../src/interfaces/storage-interfaces.tsx","../src/interfaces/system-interfaces.tsx","../src/services/localstorage-service.tsx","../src/services/theme-service.tsx","../src/components/layouts/layout-helpers.tsx","../src/components/layouts/global-layout.tsx","../src/components/panels/theme-panel.tsx","../src/components/layouts/utility-menu.tsx","../src/interfaces/http-interfaces.tsx","../src/services/loader-service.tsx"],"names":["EIconTypes","EIcons","EMenuTargets","EMenuVisibility","EFontWeights","EAnimations","EAnimationClasses","ESizes","EBadgeTypes","EOpacity","EPositions","ETextPositions","EFlexPositions","EBackgroundColors","EBackgrounds","EKeys","EKeyModifier","ETargets","EButtonTypes","onClicked","jsxs","jsx","React","activeItem","useEffect","EValueChangeTypes","ERegexs","EInputTypes","I","forceChangeDefaultValue","ENexusModules","EPreferenceTargets","theme","EActionMethods"],"mappings":";;;;;;;AAEO,IAAM,sBAAA,GAAyB,OAAO,MAAA,EAA4B,GAAA,EAAa,KAAA,KAAyB;AAE/G;;;ACJO,IAAM,yBAAA,GAA4B;AAClC,IAAM,8BAA8B,CAAA,GAAI;AACxC,IAAK,UAAA,qBAAAA,WAAAA,KAAL;AACL,EAAAA,YAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,YAAA,OAAA,CAAA,GAAQ,QAAA;AACR,EAAAA,YAAA,QAAA,CAAA,GAAS,EAAA;AAHC,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAKL,IAAK,MAAA,qBAAAC,OAAAA,KAAL;AACL,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,QAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,QAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,QAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,QAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,QAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,QAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,QAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,QAAA,OAAA,CAAA,GAAQ,MAAA;AACR,EAAAA,QAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,QAAA,YAAA,CAAA,GAAa,WAAA;AACb,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,QAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,QAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,QAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,QAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,QAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,QAAA,qBAAA,CAAA,GAAsB,qBAAA;AACtB,EAAAA,QAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,QAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,QAAA,kBAAA,CAAA,GAAmB,gBAAA;AACnB,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,QAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,QAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,QAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,QAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,QAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,QAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,QAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,QAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,QAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,QAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,QAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,QAAA,OAAA,CAAA,GAAQ,QAAA;AACR,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,QAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,QAAA,MAAA,CAAA,GAAO,MAAA;AAEP,EAAAA,QAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,QAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,QAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,QAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,QAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,QAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,QAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,QAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,QAAA,cAAA,CAAA,GAAe,cAAA;AArHL,EAAA,OAAAA,OAAAA;AAAA,CAAA,EAAA,MAAA,IAAA,EAAA;;;ACLL,IAAM,uBAAA,GAA0B;AAChC,IAAM,qBAAqB,CAAC,WAAA,KAAwB,CAAA,EAAG,uBAAuB,GAAG,WAAW,CAAA;AAE5F,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,kBAAe,CAAA,CAAA,GAAf,cAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,uBAAoB,CAAA,CAAA,GAApB,mBAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AAHU,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AAKL,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AACL,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,eAAY,CAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,gBAAAA,CAAAA,gBAAAA,CAAA,uBAAoB,CAAA,CAAA,GAApB,mBAAA;AAFU,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;;;ACJL,IAAM,iBAAiB,YAAoC;AAChE,EAAA,OAAO;AAAA,IACL;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,MAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,MAAA;AAAA,MACV,OAAA,EAAS,OAAA;AAAA,MACT,aAAA,EAAe,WAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,WAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAA,QAAA;AAAA,MACA,QAAA,EAAU,UAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,aAAA,EAAe,UAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,UAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAA,QAAA;AAAA,MACA,QAAA,EAAU,UAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,aAAA,EAAe,UAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,UAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,aAAA;AAAA,MACV,QAAA,EAAA,WAAA;AAAA,MACA,QAAA,EAAU,aAAA;AAAA,MACV,OAAA,EAAS,cAAA;AAAA,MACT,aAAA,EAAe,aAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,aAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,aAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,aAAA,EAAe,aAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,aAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,cAAA;AAAA,MACV,OAAA,EAAS,eAAA;AAAA,MACT,aAAA,EAAe,cAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,cAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,MAAA;AAAA,MACV,QAAA,EAAA,WAAA;AAAA,MACA,QAAA,EAAU,MAAA;AAAA,MACV,OAAA,EAAS,OAAA;AAAA,MACT,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,MAAA;AAAA,MACX,eAAA,EAAiB,MAAA;AAAA,MACjB,aAAA,EAAe;AAAA,KACjB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,mBAAA;AAAA,MACV,QAAA,EAAA,QAAA;AAAA,MACA,QAAA,EAAU,mBAAA;AAAA,MACV,OAAA,EAAS,oBAAA;AAAA,MACT,aAAA,EAAe,mBAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,mBAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,aAAA;AAAA,MACV,QAAA,EAAA,QAAA;AAAA,MACA,QAAA,EAAU,aAAA;AAAA,MACV,OAAA,EAAS,cAAA;AAAA,MACT,aAAA,EAAe,aAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,aAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,EAAA;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAA,WAAA;AAAA,MACA,QAAA,EAAU,UAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,aAAA,EAAe,UAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,UAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,EAAA;AAAA,MACJ,QAAA,EAAU,KAAA;AAAA,MACV,QAAA,EAAA,aAAA;AAAA,MACA,QAAA,EAAU,KAAA;AAAA,MACV,OAAA,EAAS,MAAA;AAAA,MACT,aAAA,EAAe,KAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,KAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,EAAA;AAAA,MACJ,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,aAAA;AAAA,MACT,aAAA,EAAe,YAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,YAAA;AAAA,MACX,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,EAAA;AAAA,MACJ,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,aAAA;AAAA,MACT,aAAA,EAAe,YAAA;AAAA,MACf,gBAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,SAAA,EAAW,YAAA;AAAA,MACX,eAAA,EAAiB;AAAA;AACnB,GACF;AACF;AAEO,IAAM,kBAAkB,YAAqC;AAClE,EAAA,OAAO;AAAA,IACL;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,aAAA;AAAA,MACV,QAAA,EAAA,QAAA;AAAA,MACA,QAAA,EAAU,QAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,eAAA;AAAA,MACV,QAAA,EAAA,OAAA;AAAA,MACA,QAAA,EAAU,UAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,WAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,MAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,cAAA;AAAA,MACV,QAAA,EAAA,eAAA;AAAA,MACA,QAAA,EAAU,OAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc;AAAA,KAChB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,WAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,WAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc;AAAA;AAChB,GACF;AACF;AAEO,IAAM,gBAAgB,YAAmC;AAC9D,EAAA,OAAO;AAAA,IACL;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,cAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,UAAA;AAAA,MACV,gBAAA,EAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,mBAAA;AAAA,MACV,QAAA,EAAA,eAAA;AAAA,MACA,QAAA,EAAU,eAAA;AAAA,MACV,gBAAA,EAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,cAAA;AAAA,MACV,QAAA,EAAA,eAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAA,UAAA;AAAA,MACA,QAAA,EAAU,UAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,iBAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,eAAA;AAAA,MACV,QAAA,EAAA,UAAA;AAAA,MACA,QAAA,EAAU,eAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,cAAA;AAAA,MACV,QAAA,EAAA,aAAA;AAAA,MACA,QAAA,EAAU,gBAAA;AAAA,MACV,gBAAA,EAAA,CAAA,2BAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAA,UAAA;AAAA,MACA,QAAA,EAAU,kBAAA;AAAA,MACV,gBAAA,EAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,CAAA;AAAA,MACJ,QAAA,EAAU,eAAA;AAAA,MACV,QAAA,EAAA,QAAA;AAAA,MACA,QAAA,EAAU,eAAA;AAAA,MACV,gBAAA,EAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,EAAA;AAAA,MACJ,QAAA,EAAU,oBAAA;AAAA,MACV,QAAA,EAAA,UAAA;AAAA,MACA,QAAA,EAAU,oBAAA;AAAA,MACV,gBAAA,EAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,EAAA;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAA,MAAA;AAAA,MACA,QAAA,EAAU,UAAA;AAAA,MACV,gBAAA,EAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,EAAA,EAAI,EAAA;AAAA,MACJ,QAAA,EAAU,SAAA;AAAA,MACV,QAAA,EAAA,QAAA;AAAA,MACA,QAAA,EAAU,SAAA;AAAA,MACV,gBAAA,EAAA,CAAA;AAAA,MACA,YAAA,EAAc,CAAA;AAAA,MACd,UAAA,EAAY;AAAA;AACd,GACF;AACF;;;AC/TO,IAAM,oBAAA,GAAuB;AAC7B,IAAM,uBAAuB,CAAC,KAAA,EAAO,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK;AACtE,IAAM,0BAAA,GAA6B;AACnC,IAAM,yBAAA,GAA4B;AAElC,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AAGL,EAAAA,cAAA,OAAA,CAAA,GAAQ,KAAA;AAIR,EAAAA,cAAA,SAAA,CAAA,GAAU,KAAA;AAIV,EAAAA,cAAA,QAAA,CAAA,GAAS,KAAA;AAIT,EAAAA,cAAA,WAAA,CAAA,GAAY,KAAA;AAIZ,EAAAA,cAAA,MAAA,CAAA,GAAO,KAAA;AAIP,EAAAA,cAAA,YAAA,CAAA,GAAa,KAAA;AAvBH,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AAwDL,IAAM,eAAA,GAAkB,CAC7B,oBAAA,EAEA,0BAAA,EAEA,uBAAA,KACkB;AAClB,EAAA,OAAO;AAAA,IACL,oBAAA;AAAA,IAEA,0BAAA;AAAA,IAEA;AAAA,GACF;AACF;AAIO,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACL,EAAAA,aAAA,SAAA,CAAA,GAAU,QAAA;AACV,EAAAA,aAAA,UAAA,CAAA,GAAW,SAAA;AACX,EAAAA,aAAA,aAAA,CAAA,GAAc,WAAA;AAGd,EAAAA,aAAA,QAAA,CAAA,GAAS,QAAA;AAET,EAAAA,aAAA,UAAA,CAAA,GAAW,SAAA;AAEX,EAAAA,aAAA,WAAA,CAAA,GAAY,UAAA;AAEZ,EAAAA,aAAA,cAAA,CAAA,GAAe,YAAA;AAGf,EAAAA,aAAA,MAAA,CAAA,GAAO,MAAA;AAGP,EAAAA,aAAA,WAAA,CAAA,GAAY,UAAA;AAGZ,EAAAA,aAAA,YAAA,CAAA,GAAa,WAAA;AArBH,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AA0BL,IAAK,iBAAA,qBAAAC,kBAAAA,KAAL;AACL,EAAAA,mBAAA,SAAA,CAAA,GAAU,OAAA;AAEV,EAAAA,mBAAA,UAAA,CAAA,GAAW,OAAA;AAEX,EAAAA,mBAAA,aAAA,CAAA,GAAc,QAAA;AAEd,EAAAA,mBAAA,QAAA,CAAA,GAAS,WAAA;AAET,EAAAA,mBAAA,UAAA,CAAA,GAAW,OAAA;AAEX,EAAAA,mBAAA,WAAA,CAAA,GAAY,OAAA;AAEZ,EAAAA,mBAAA,cAAA,CAAA,GAAe,QAAA;AAEf,EAAAA,mBAAA,MAAA,CAAA,GAAO,SAAA;AAEP,EAAAA,mBAAA,WAAA,CAAA,GAAY,SAAA;AAEZ,EAAAA,mBAAA,YAAA,CAAA,GAAa,SAAA;AAnBH,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAsBL,IAAK,MAAA,qBAAAC,OAAAA,KAAL;AACL,EAAAA,QAAA,UAAA,CAAA,GAAW,KAAA;AAEX,EAAAA,QAAA,MAAA,CAAA,GAAO,IAAA;AAEP,EAAAA,QAAA,WAAA,CAAA,GAAY,KAAA;AAEZ,EAAAA,QAAA,OAAA,CAAA,GAAQ,IAAA;AAER,EAAAA,QAAA,QAAA,CAAA,GAAS,IAAA;AAET,EAAAA,QAAA,QAAA,CAAA,GAAS,KAAA;AAET,EAAAA,QAAA,OAAA,CAAA,GAAQ,IAAA;AAER,EAAAA,QAAA,YAAA,CAAA,GAAa,IAAA;AAEb,EAAAA,QAAA,gBAAA,CAAA,GAAiB,KAAA;AAEjB,EAAAA,QAAA,UAAA,CAAA,GAAW,IAAA;AAnBD,EAAA,OAAAA,OAAAA;AAAA,CAAA,EAAA,MAAA,IAAA,EAAA;AAsBL,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACL,EAAAA,aAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,aAAA,OAAA,CAAA,GAAQ,OAAA;AAHE,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AAML,IAAK,QAAA,qBAAAC,SAAAA,KAAL;AACL,EAAAA,UAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,UAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,UAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,UAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,UAAA,KAAA,CAAA,GAAM,KAAA;AAEN,EAAAA,UAAA,MAAA,CAAA,GAAO,IAAA;AAEP,EAAAA,UAAA,MAAA,CAAA,GAAO,IAAA;AAbG,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA;AAeL,IAAK,UAAA,qBAAAC,WAAAA,KAAL;AACL,EAAAA,YAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,YAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,YAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,YAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,YAAA,QAAA,CAAA,GAAS,QAAA;AALC,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAOL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,MAAA,CAAA,GAAO,IAAA;AACP,EAAAA,gBAAA,OAAA,CAAA,GAAQ,IAAA;AACR,EAAAA,gBAAA,QAAA,CAAA,GAAS,IAAA;AAHC,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAKL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,MAAA,CAAA,GAAO,IAAA;AACP,EAAAA,gBAAA,OAAA,CAAA,GAAQ,IAAA;AACR,EAAAA,gBAAA,QAAA,CAAA,GAAS,IAAA;AAHC,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;;;ACxLL,IAAM,kBAAA,GAAqB;AAE3B,IAAK,iBAAA,qBAAAC,kBAAAA,KAAL;AACL,EAAAA,mBAAA,aAAA,CAAA,GAAc,WAAA;AACd,EAAAA,mBAAA,aAAA,CAAA,GAAc,WAAA;AACd,EAAAA,mBAAA,aAAA,CAAA,GAAc,WAAA;AACd,EAAAA,mBAAA,cAAA,CAAA,GAAe,YAAA;AACf,EAAAA,mBAAA,cAAA,CAAA,GAAe,YAAA;AACf,EAAAA,mBAAA,WAAA,CAAA,GAAY,YAAA;AACZ,EAAAA,mBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,mBAAA,cAAA,CAAA,GAAe,YAAA;AACf,EAAAA,mBAAA,aAAA,CAAA,GAAc,YAAA;AACd,EAAAA,mBAAA,gBAAA,CAAA,GAAiB,YAAA;AACjB,EAAAA,mBAAA,sBAAA,CAAA,GAAuB,YAAA;AACvB,EAAAA,mBAAA,2BAAA,CAAA,GAA4B,YAAA;AAC5B,EAAAA,mBAAA,eAAA,CAAA,GAAgB,aAAA;AAChB,EAAAA,mBAAA,eAAA,CAAA,GAAgB,aAAA;AAChB,EAAAA,mBAAA,eAAA,CAAA,GAAgB,aAAA;AAChB,EAAAA,mBAAA,eAAA,CAAA,GAAgB,aAAA;AAChB,EAAAA,mBAAA,eAAA,CAAA,GAAgB,aAAA;AAChB,EAAAA,mBAAA,eAAA,CAAA,GAAgB,aAAA;AAlBN,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAoBL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,cAAA,MAAA,CAAA,GAAO,eAAA;AACP,EAAAA,cAAA,aAAA,CAAA,GAAc,KAAA;AACd,EAAAA,cAAA,aAAA,CAAA,GAAc,KAAA;AACd,EAAAA,cAAA,aAAA,CAAA,GAAc,KAAA;AACd,EAAAA,cAAA,cAAA,CAAA,GAAe,MAAA;AACf,EAAAA,cAAA,cAAA,CAAA,GAAe,MAAA;AACf,EAAAA,cAAA,WAAA,CAAA,GAAY,MAAA;AACZ,EAAAA,cAAA,YAAA,CAAA,GAAa,MAAA;AACb,EAAAA,cAAA,cAAA,CAAA,GAAe,MAAA;AACf,EAAAA,cAAA,aAAA,CAAA,GAAc,MAAA;AACd,EAAAA,cAAA,gBAAA,CAAA,GAAiB,MAAA;AACjB,EAAAA,cAAA,sBAAA,CAAA,GAAuB,MAAA;AACvB,EAAAA,cAAA,2BAAA,CAAA,GAA4B,MAAA;AAC5B,EAAAA,cAAA,eAAA,CAAA,GAAgB,OAAA;AAChB,EAAAA,cAAA,eAAA,CAAA,GAAgB,OAAA;AAChB,EAAAA,cAAA,eAAA,CAAA,GAAgB,OAAA;AAChB,EAAAA,cAAA,eAAA,CAAA,GAAgB,OAAA;AAChB,EAAAA,cAAA,eAAA,CAAA,GAAgB,OAAA;AAChB,EAAAA,cAAA,eAAA,CAAA,GAAgB,OAAA;AAnBN,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AA2EL,IAAM,0BAAA,GAAkD;AAAA,EAC7D;AAAA,IACE,WAAA,EAAa,OAAA;AAAA,IACb,UAAA,EAAY,kBAAA;AAAA,IACZ,YAAA,EAAc,CAAA;AAAA,IACd,IAAA,EAAA,OAAA;AAAA,IACA,WAAA,EAAa;AAAA,MACX,EAAA,EAAI,uEAAA;AAAA,MACJ,EAAA,EAAI,uEAAA;AAAA,MACJ,EAAA,EAAI,uEAAA;AAAA,MACJ,GAAA,EAAK,sEAAA;AAAA,MACL,GAAA,EAAK,0EAAA;AAAA,MACL,GAAA,EAAK,2EAAA;AAAA,MACL,GAAA,EAAK,yEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,2EAAA;AAAA,MACL,GAAA,EAAK,oEAAA;AAAA,MACL,IAAA,EAAM,uEAAA;AAAA,MACN,IAAA,EAAM,uEAAA;AAAA,MACN,IAAA,EAAM,wEAAA;AAAA,MACN,IAAA,EAAM,sEAAA;AAAA,MACN,IAAA,EAAM,oEAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,aAAA,EAAe;AAAA,GACjB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,MAAA;AAAA,IACb,YAAA,EAAc,CAAA;AAAA,IACd,IAAA,EAAA,MAAA;AAAA,IACA,UAAA,EAAY,MAAA;AAAA,IACZ,WAAA,EAAa;AAAA,MACX,EAAA,EAAI,oEAAA;AAAA,MACJ,EAAA,EAAI,oEAAA;AAAA,MACJ,EAAA,EAAI,oEAAA;AAAA,MACJ,GAAA,EAAK,sEAAA;AAAA,MACL,GAAA,EAAK,0EAAA;AAAA,MACL,GAAA,EAAK,2EAAA;AAAA,MACL,GAAA,EAAK,yEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,2EAAA;AAAA,MACL,GAAA,EAAK,oEAAA;AAAA,MACL,IAAA,EAAM,uEAAA;AAAA,MACN,IAAA,EAAM,uEAAA;AAAA,MACN,IAAA,EAAM,wEAAA;AAAA,MACN,IAAA,EAAM,sEAAA;AAAA,MACN,IAAA,EAAM,oEAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,aAAA,EAAe;AAAA,GACjB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,QAAA;AAAA,IACb,UAAA,EAAY,QAAA;AAAA,IACZ,YAAA,EAAc,CAAA;AAAA,IACd,IAAA,EAAA,OAAA;AAAA,IACA,WAAA,EAAa;AAAA,MACX,EAAA,EAAI,uEAAA;AAAA,MACJ,EAAA,EAAI,uEAAA;AAAA,MACJ,EAAA,EAAI,uEAAA;AAAA,MACJ,GAAA,EAAK,sEAAA;AAAA,MACL,GAAA,EAAK,0EAAA;AAAA,MACL,GAAA,EAAK,2EAAA;AAAA,MACL,GAAA,EAAK,yEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,2EAAA;AAAA,MACL,GAAA,EAAK,oEAAA;AAAA,MACL,IAAA,EAAM,uEAAA;AAAA,MACN,IAAA,EAAM,uEAAA;AAAA,MACN,IAAA,EAAM,wEAAA;AAAA,MACN,IAAA,EAAM,sEAAA;AAAA,MACN,IAAA,EAAM,oEAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,aAAA,EAAe;AAAA,GACjB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,OAAA;AAAA,IACb,YAAA,EAAc,CAAA;AAAA,IACd,IAAA,EAAA,MAAA;AAAA,IACA,UAAA,EAAY,OAAA;AAAA,IACZ,WAAA,EAAa;AAAA,MACX,EAAA,EAAI,oEAAA;AAAA,MACJ,EAAA,EAAI,oEAAA;AAAA,MACJ,EAAA,EAAI,oEAAA;AAAA,MACJ,GAAA,EAAK,sEAAA;AAAA,MACL,GAAA,EAAK,0EAAA;AAAA,MACL,GAAA,EAAK,2EAAA;AAAA,MACL,GAAA,EAAK,yEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,uEAAA;AAAA,MACL,GAAA,EAAK,2EAAA;AAAA,MACL,GAAA,EAAK,oEAAA;AAAA,MACL,IAAA,EAAM,uEAAA;AAAA,MACN,IAAA,EAAM,uEAAA;AAAA,MACN,IAAA,EAAM,wEAAA;AAAA,MACN,IAAA,EAAM,sEAAA;AAAA,MACN,IAAA,EAAM,oEAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,IACA,aAAA,EAAe;AAAA;AAEnB;;;AC7MO,IAAM,IAAA,GAAO;AAAA,EAClB,KAAA,EAAO;AACT;AAEO,IAAM,KAAA,GAAQ;AAAA,EACnB,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,mCAAA;AAAA,IACN,IAAA,EAAM,mCAAA;AAAA,IACN,SAAA,EAAW;AAAA;AAEf;AACO,IAAM,UAAA,GAAa;AAAA,EACxB,cAAA,EAAgB,QAAQ,GAAA,CAAI,cAAA,KAAmB,SAAa,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA,GAAsB,MAAA;AAAA,EACrH,mBAAA,EAAqB,QAAQ,GAAA,CAAI,mBAAA;AAAA,EACjC,yBAAA,EAA2B,QAAQ,GAAA,CAAI,yBAAA;AAAA,EACvC,aAAA,EAAe,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA;AAAA,EACxC,2BAAA,EAA6B,iBAAA;AAAA,EAC7B,0BAAA,EAA4B,2BAAA;AAAA,EAC5B,gBAAA,EAAkB,QAAQ,GAAA,CAAI,gBAAA;AAAA,EAC9B,yBAAA,EAA2B,QAAQ,GAAA,CAAI,yBAAA;AAAA,EACvC,wBAAA,EAA0B;AAC5B;AACO,IAAM,YAAA,GAAe;AAAA;AAAA,EAE1B,uBAAA,EAAyB,UAAA,CAAW,aAAA,GAAgB,EAAA,GAAK,EAAA,GAAK,CAAA;AAAA;AAAA,EAG9D,4BAAA,EAA8B,UAAA,CAAW,aAAA,GAAgB,GAAA,GAAQ,GAAA;AAAA,EAEjE,kBAAA,EAAA,KAAA;AACF;;;ACjCO,IAAK,KAAA,qBAAAC,MAAAA,KAAL;AACL,EAAAA,OAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,OAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,OAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,OAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,OAAA,OAAA,CAAA,GAAQ,GAAA;AACR,EAAAA,OAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,OAAA,UAAA,CAAA,GAAW,SAAA;AACX,EAAAA,OAAA,YAAA,CAAA,GAAa,WAAA;AACb,EAAAA,OAAA,YAAA,CAAA,GAAa,WAAA;AACb,EAAAA,OAAA,aAAA,CAAA,GAAc,YAAA;AACd,EAAAA,OAAA,GAAA,CAAA,GAAI,GAAA;AACJ,EAAAA,OAAA,GAAA,CAAA,GAAI,GAAA;AACJ,EAAAA,OAAA,GAAA,CAAA,GAAI,GAAA;AACJ,EAAAA,OAAA,GAAA,CAAA,GAAI,GAAA;AACJ,EAAAA,OAAA,KAAA,CAAA,GAAM,GAAA;AAfI,EAAA,OAAAA,MAAAA;AAAA,CAAA,EAAA,KAAA,IAAA,EAAA;AAiBL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,UAAO,CAAA,CAAA,GAAP,MAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,WAAQ,CAAA,CAAA,GAAR,OAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,UAAO,CAAA,CAAA,GAAP,MAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,SAAM,CAAA,CAAA,GAAN,KAAA;AAJU,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;;;ACjBL,SAAS,OAAA,CAAQ,OAAe,IAAA,EAAuB;AAC5D,EAAA,OAAA,CAAQ,QAAQ,IAAA,MAAU,IAAA;AAC5B;AACO,SAAS,aAAA,CAAiB,UAAe,YAAA,EAA2B;AACzE,EAAA,OAAO,OAAO,MAAA,CAAO,QAAQ,EAC1B,MAAA,CAAO,CAAC,MAAM,OAAO,CAAA,KAAM,QAAQ,CAAA,CACnC,OAAO,CAAC,CAAA,KAAA,CAAe,eAAe,CAAA,MAAO,CAAA,IAAK,MAAM,CAAC,CAAA;AAC9D;AACO,SAAS,cAAc,MAAA,EAA0B;AACtD,EAAA,OAAO,OAAO,MAAA,CAAO,CAAC,KAAK,IAAA,KAAS,GAAA,GAAM,MAAM,CAAC,CAAA;AACnD;;;ACVA,IAAM,aAAA,GAAgB,GAAA;AAOf,SAAS,QAAA,CAA6C,MAAS,KAAA,EAAsC;AAC1G,EAAA,IAAI,KAAA;AACJ,EAAA,IAAI,QAAA;AACJ,EAAA,IAAI,SAAA,GAAY,KAAA;AAEhB,EAAA,MAAM,SAAA,GAAY,IAAI,IAAA,KAAwB;AAC5C,IAAA,QAAA,GAAW,IAAA;AACX,IAAA,SAAA,GAAY,IAAA;AACZ,IAAA,YAAA,CAAa,KAAK,CAAA;AAClB,IAAA,KAAA,GAAQ,WAAW,MAAM;AACvB,MAAA,KAAA,GAAQ,MAAA;AACR,MAAA,SAAA,GAAY,KAAA;AACZ,MAAA,QAAA,GAAW,MAAA;AACX,MAAA,IAAA,CAAK,GAAG,IAAI,CAAA;AAAA,IACd,CAAA,EAAG,SAAS,aAAa,CAAA;AAAA,EAC3B,CAAA;AAGA,EAAA,SAAA,CAAU,SAAS,MAAM;AACvB,IAAA,YAAA,CAAa,KAAK,CAAA;AAClB,IAAA,KAAA,GAAQ,MAAA;AACR,IAAA,SAAA,GAAY,KAAA;AACZ,IAAA,QAAA,GAAW,MAAA;AAAA,EACb,CAAA;AAGA,EAAA,SAAA,CAAU,kBAAA,GAAqB,IAAI,IAAA,KAAwB;AACzD,IAAA,YAAA,CAAa,KAAK,CAAA;AAClB,IAAA,KAAA,GAAQ,MAAA;AACR,IAAA,MAAM,aAAa,IAAA,CAAK,MAAA,GAAS,CAAA,GAAI,IAAA,GAAO,YAAY,QAAA,GAAW,MAAA;AACnE,IAAA,SAAA,GAAY,KAAA;AACZ,IAAA,QAAA,GAAW,MAAA;AACX,IAAA,IAAI,UAAA,KAAe,MAAA,EAAW,IAAA,CAAK,GAAG,UAAU,CAAA;AAAA,EAClD,CAAA;AAEA,EAAA,OAAO,SAAA;AACT;;;ACnCO,IAAM,YAAY,MAAe,OAAO,MAAA,KAAW,WAAA,IAAe,OAAO,QAAA,KAAa;AAEtF,IAAM,aAAA,GAAgB,OAAO,eAAA,EAAuC,OAAA,EAAkB,SAAA,KAAoD;AAC/I,EAAA,OAAO,IAAI,OAAA,CAAQ,OAAO,OAAA,KAAY;AACpC,IAAA,IAAI,CAAC,SAAA,EAAU,IAAK,CAAC,eAAA,EAAiB,OAAO,QAAQ,KAAK,CAAA;AAAA,SAAA,IACjD,OAAO,oBAAoB,QAAA,EAAU;AAC5C,MAAA,MAAM,OAAA,GAAU,QAAA,CAAS,cAAA,CAAe,eAAe,CAAA;AACvD,MAAA,IAAI,OAAA,EAAS,OAAO,MAAM,aAAA,CAAc,SAAS,OAAO,CAAA;AAAA,IAC1D,CAAA,MAAA,IAAW,eAAA,YAA2B,WAAA,IAAgB,eAAA,EAAiC;AACrF,MAAA,MAAM,iBAAA,GAAoB,WAAW,MAAM;AACzC,QAAC,gBAAgC,MAAA,EAAO;AACxC,QAAA,YAAA,CAAa,iBAAiB,CAAA;AAC9B,QAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,QAAA,OAAO,QAAQ,IAAI,CAAA;AAAA,MACrB,CAAA,EAAG,WAAW,CAAC,CAAA;AACf,MAAA,eAAA,CAAgB,SAAA,CAAU,IAAI,SAAA,IAAA,OAAA,gBAAuC;AACrE,MAAA,OAAO,QAAQ,IAAI,CAAA;AAAA,IACrB,CAAA,MAAO,OAAO,OAAA,CAAQ,KAAK,CAAA;AAAA,EAC7B,CAAC,CAAA;AACH;AAEA,IAAM,gBAAA,GAAmB,CAAC,KAAA,KAAmB,SAAA,EAAU,KAAM,QAAA,CAAS,KAAA,GAAQ,CAAA,QAAA,EAAW,KAAA,IAAS,UAAA,CAAW,yBAAA,IAA6B,WAAW,CAAA,CAAA,CAAA;AAC9I,IAAM,wBAAA,GAA2B,QAAA,CAAS,gBAAA,EAAkB,GAAG;AAE/D,IAAM,kBAAA,GAAqB,CAAC,GAAA,KAAwB;AACzD,EAAA,MAAM,WAAW,UAAA,CAAW,gBAAA,CAAiB,SAAS,eAAe,CAAA,CAAE,QAAQ,CAAA,IAAK,EAAA;AACpF,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAA,GAAM,QAAA,GAAW,GAAI,CAAA,GAAI,GAAA;AAC7C;AAEO,IAAM,kBAAA,GAAqB,CAAC,EAAA,KAAuB;AACxD,EAAA,MAAM,WAAW,UAAA,CAAW,gBAAA,CAAiB,SAAS,eAAe,CAAA,CAAE,QAAQ,CAAA,IAAK,EAAA;AACpF,EAAA,OAAO,IAAA,CAAK,KAAA,CAAO,EAAA,GAAK,QAAA,GAAY,GAAI,CAAA,GAAI,GAAA;AAC9C;AACO,IAAM,YAAA,GAAe,CAAC,KAAA,EAAY,GAAA,EAAqB,QAAA,KAAqC;AACjG,EAAA,MAAM,SAAA,GAAA,CAAa,KAAA,EAAO,GAAA,IAAO,KAAA,EAAO,aAAa,IAAA,MAAU,GAAA;AAC/D,EAAA,IAAI,CAAC,WAAW,OAAO,SAAA;AAEvB,EAAA,IAAI,CAAC,UAAU,OAAO,SAAA;AAEtB,EAAA,IAAI,QAAQ,QAAA,EAAA,CAAA,aAA4B,IAAK,CAAC,KAAA,CAAM,UAAU,OAAO,KAAA;AACrE,EAAA,IAAI,QAAQ,QAAA,EAAA,CAAA,YAA2B,IAAK,CAAC,KAAA,CAAM,SAAS,OAAO,KAAA;AACnE,EAAA,IAAI,QAAQ,QAAA,EAAA,CAAA,WAA0B,IAAK,CAAC,KAAA,CAAM,QAAQ,OAAO,KAAA;AAEjE,EAAA,OAAO,SAAA;AACT;AACO,IAAM,UAAA,GAAa,CAAC,GAAA,KAAwB,GAAA,KAAQ,MAAA,IAAa,QAAQ,IAAA,IAAQ,GAAA,KAAQ,GAAA,IAAO,GAAA,CAAI,MAAA,GAAS;AAE7G,IAAM,gBAAA,GAAmB,CAAC,MAAA,EAAqB,aAAA,EAAuB,wBAAiC,KAAA,KAAU;AACtH,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,aAAA,EAAe,OAAO,IAAA;AACtC,EAAA,IAAI,qBAAA,EAAuB;AACzB,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,gBAAA,CAAiB,aAAa,CAAA;AACtD,IAAA,OAAO,QAAA,CAAS,MAAA,GAAS,CAAA,GAAI,QAAA,CAAS,CAAC,CAAA,GAAI,IAAA;AAAA,EAC7C,CAAA,MAAO,OAAO,MAAA,CAAO,aAAA,CAAc,aAAa,CAAA;AAClD;AAEO,IAAM,iBAAA,GAAoB,CAAC,MAAA,EAAqB,aAAA,EAAuB,wBAAiC,KAAA,KAAU;AACvH,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,aAAA,SAAsB,EAAC;AACvC,EAAA,IAAI,qBAAA,EAAuB;AACzB,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,gBAAA,CAAiB,aAAa,CAAA;AACtD,IAAA,OAAO,QAAA,CAAS,MAAA,GAAS,CAAA,GAAI,QAAA,GAAW,EAAC;AAAA,EAC3C,CAAA,MAAO;AACL,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,gBAAA,CAAiB,aAAa,CAAA;AACtD,IAAA,OAAO,QAAA,CAAS,SAAS,CAAA,GAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAC;AAAA,EAChD;AACF;;;ACtEO,SAAS,cAAA,CAAkB,eAAA,EAA8B,WAAA,EAA4B,YAAA,EAA2B,UAAA,EAAoB,YAAA,EAAmB,WAAA,EAAkB,UAAA,EAAsC,mBAAA,EAAyE,MAAA,EAAiB,mBAAA,EAA8B,aAAA,EAAuB,gBAAA,EAA0B;AAC7X,EAAA,IAAI,CAAC,MAAA,EAAQ;AAEX,IAAA,KAAA,MAAW,OAAA,IAAW,WAAA,EAAa,mBAAA,CAAoB,OAAA,EAAS,UAAU,CAAA;AAC1E,IAAA,IAAI,uBAAuB,UAAA,EAAY;AAErC,MAAA,MAAM,aAAA,GAAgB,WAAW,UAAU,CAAA;AAC3C,MAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAE1D,MAAA,IAAI,eAAA,EAAiB;AACnB,QAAA,eAAA,CAAgB,YAAY,aAAa,CAAA;AACzC,QAAA,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA,CAAE,MAAA,EAAO;AAC3C,QAAA,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA,GAAI,aAAA;AAAA,MACxC;AAAA,IACF,CAAA,MAAO;AAEL,MAAA,MAAM,WAAA,GAAc,YAAA,CAAa,YAAA,CAAa,MAAA,GAAS,CAAC,CAAA;AACxD,MAAA,MAAM,WAAA,GAAc,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAEtD,MAAA,MAAM,eAAA,GAAkB,WAAA,EAAa,YAAA,CAAa,gBAAgB,CAAA;AAClE,MAAA,IAAI,WAAA,IAAe,WAAA,IAAe,eAAA,KAAqB,WAAA,CAAoB,aAAa,CAAA,EAAG;AACzF,QAAA,MAAM,aAAA,GAAgB,WAAW,WAAW,CAAA;AAC5C,QAAA,WAAA,CAAY,YAAY,aAAa,CAAA;AACrC,QAAA,WAAA,CAAY,MAAA,EAAO;AACnB,QAAA,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA,GAAI,aAAA;AAAA,MACxC;AAAA,IACF;AACA,IAAA;AAAA,EACF;AAGA,EAAA,WAAA,CAAY,MAAA,GAAS,CAAA;AACrB,EAAA,eAAA,CAAgB,SAAA,GAAY,EAAA;AAE5B,EAAA,KAAA,MAAW,QAAQ,YAAA,EAAc;AAC/B,IAAA,MAAM,QAAA,GAAW,WAAW,IAAI,CAAA;AAChC,IAAA,eAAA,CAAgB,YAAY,QAAQ,CAAA;AACpC,IAAA,WAAA,CAAY,KAAK,QAAQ,CAAA;AAAA,EAC3B;AAGA,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,eAAA,CAAgB,YAAY,YAAY,CAAA;AAAA,EAC1C;AACF;AACO,IAAM,gBAAA,GAAmB,CAAC,OAAA,EAAsB,MAAA,KAAqC;AAC1F,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,MAAA,EAAQ;AACzB,EAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,IAAA,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACnC,MAAA,MAAM,KAAA,GAAQ,OAAO,GAA0B,CAAA;AAC/C,MAAA,IAAI,UAAU,MAAA,EAAW;AACzB,MAAA,OAAA,CAAQ,KAAA,CAAM,YAAY,GAAA,EAAK,KAAA,KAAU,OAAO,IAAA,GAAO,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,IACtE,CAAC,CAAA;AAAA,EACH,CAAA,MAAO,OAAA,CAAQ,KAAA,CAAM,WAAA,CAAY,QAAkB,MAAgB,CAAA;AACrE;;;ACnDO,IAAM,uBAAuB,CAAC,MAAA,EAAsB,SAAuB,UAAA,EAA0B,UAAA,EAAgC,cAA4B,cAAA,KAAkC;AACxM,EAAA,MAAM,GAAA,GAAM,CAAA,yBAAA,EAA4B,OAAA,IAAW,CAAC,CAAA,CAAA,EAAI,UAAA,IAAA,KAAA,mBAAsC,OAAA,EAAU,UAAA,GAAa,IAAA,GAAO,UAAA,GAAa,EAAE,CAAA,CAAA,EAAI,gBAAgB,EAAE,CAAA,CAAA;AACjK,EAAA,IAAI,cAAA,KAAmB,OAAO,OAAO,CAAA,EAAG,GAAG,CAAA,WAAA,EAAc,CAAA,IAAA,EAAO,MAAA,IAAU,EAAE,CAAA,CAAE,CAAA,CAAA;AAC9E,EAAA,OAAO,GAAA;AACT;AAEO,IAAM,yBAAA,GAAiD;AAAA,EAC5D,KAAA,EAAO,YAAA;AAAA,EACP,YAAA,EAAc,8BAAA;AAAA,EACd,KAAA,EAAO;AACT;AAEO,IAAK,QAAA,qBAAAC,SAAAA,KAAL;AACL,EAAAA,UAAA,OAAA,CAAA,GAAQ,QAAA;AACR,EAAAA,UAAA,MAAA,CAAA,GAAO,OAAA;AACP,EAAAA,UAAA,QAAA,CAAA,GAAS,SAAA;AACT,EAAAA,UAAA,KAAA,CAAA,GAAM,MAAA;AAJI,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA;AAML,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,cAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,cAAA,QAAA,CAAA,GAAS,QAAA;AAFC,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AAsBL,IAAM,SAAA,GAAY,CAAC,KAAA,EAAsD,EAAA,EAAkB,KAAmB,IAAA,EAAoB,OAAA,EAA6B,IAAA,EAAyB,UAAA,EAAgC,cAA4B,YAAA,EAA4B,QAAA,EAA4B,QAAA,EAAwB,UAAA,EAA0B,YAA0B,MAAA,KAAoC;AACja,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AACF;ACzBA,IAAM,aAAA,GAAgB,CAAC,IAAA,EAAoB,YAAA,EAA4B,OAAA,KAA4B,CAAA,KAAA,EAAQ,IAAA,IAAA,IAAA,cAAqB,CAAA,EAAI,YAAA,IAAgB,EAAE,CAAA,CAAA,EAAI,OAAA,IAAA,KAAA,WAAuB,CAAA;AAE1K,IAAM,IAAA,GAAO,CAAC,EAAE,IAAA,EAAM,MAAM,IAAA,EAAM,KAAA,EAAO,YAAA,EAAc,OAAA,EAAQ,KAA+B;AACnG,EAAA,MAAM,CAAA,GAAI,aAAA,CAAc,IAAA,EAAM,YAAA,EAAc,OAAA,IAAA,KAAA,WAAuB;AACnE,EAAA,OAAO,KAAA,CAAM,cAAc,yBAAA,EAA2B;AAAA,IACpD,IAAA,EAAM,CAAA,EAAG,IAAA,IAAA,MAAA,YAAmB,EAAG,IAAA,IAAA,UAAA,gBAA2B,CAAA;AAAA,IAC1D,OAAO,KAAA,IAAS,MAAA;AAAA,IAChB,SAAA,EAAW;AAAA,GACZ,CAAA;AACH;AACO,IAAM,UAAA,GAAa,CAAC,IAAA,EAAc,MAAA,EAA2B,MAAwB,IAAA,EAAoB,YAAA,EAA4B,SAAyB,KAAA,KAAqC;AACxM,EAAA,MAAM,WAAA,GAAc,QAAA,CAAS,aAAA,CAAc,yBAAyB,CAAA;AACpE,EAAC,WAAA,CAAoB,IAAA,GAAO,CAAA,EAAG,IAAA,IAAA,MAAA,cAAsB,IAAA,IAAA,UAAA,gBAA2B,CAAA;AAChF,EAAA,gBAAA,CAAiB,aAAa,KAAK,CAAA;AACnC,EAAC,WAAA,CAAoB,SAAA,GAAY,aAAA,CAAc,IAAA,EAAM,cAAc,OAAO,CAAA;AAC1E,EAAA,IAAI,MAAA,EAAQ,MAAA,CAAO,WAAA,CAAY,WAAW,CAAA;AAC1C,EAAA,OAAO,WAAA;AACT;AAEA,IAAM,YAAA,GAAe,CAAC,UAAA,EAAgC,SAAA,EAA0B,cAA4B,OAAA,EAAuB,WAAA,KAA+B,CAAA,GAAA,EAAM,UAAU,CAAA,CAAA,EAAI,SAAA,KAAc,QAAQ,GAAA,GAAM,EAAE,WAAW,YAAA,IAAgB,EAAE,IAAI,OAAA,IAAA,IAAA,cAAwB,CAAA,EAAI,WAAA,GAAc,GAAA,GAAM,EAAE,CAAA,CAAA;AAEhS,IAAM,OAAA,GAAU,CAAC,EAAE,QAAA,EAAU,IAAI,IAAA,EAAM,QAAA,EAAU,QAAA,EAAU,OAAA,EAAS,UAAA,EAAY,YAAA,EAAc,kBAAkB,SAAA,EAAW,UAAA,EAAY,WAAA,EAAa,KAAA,EAAO,QAAA,EAAU,SAAA,EAAW,UAAU,SAAA,EAAAC,UAAAA,EAAW,YAAA,EAAc,mBAAA,EAAoB,KAA4C;AACxR,EAAA,UAAA,GAAa,UAAA,IAAA,KAAA;AACb,EAAA,MAAM,cAAc,mBAAA,KAAwB,KAAA;AAC5C,EAAA,MAAM,IAAI,YAAA,CAAa,UAAA,EAAY,SAAA,EAAW,YAAA,EAAc,SAAS,WAAW,CAAA;AAChF,EAAA,MAAM,cAAA,GAAA,CAAkB,QAAA,IAAY,EAAC,EAAG,MAAA,CAAO,CAAC,GAAA,EAAK,EAAE,GAAA,EAAK,GAAA,EAAI,KAAM;AACpE,IAAC,GAAA,CAAY,CAAA,KAAA,EAAQ,GAAG,CAAA,CAAE,CAAA,GAAI,GAAA;AAC9B,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,4BACG,KAAA,EAAA,EAAK,GAAG,cAAA,EAAgB,EAAA,EAAI,MAAM,MAAA,EAAW,KAAA,EAAO,QAAA,IAAY,MAAA,EAAW,WAAW,CAAA,EAAG,OAAA,EAASA,cAAa,MAAA,EAAW,YAAA,EAAc,gBAAgB,MAAA,EACtJ,QAAA,EAAA;AAAA,IAAA,KAAA,oBAAS,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBAC5C,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAY,OAAA,EAAS,WAAA,EAAa,MAAM,QAAA,EAAU,IAAA,EAAM,QAAA,EAAU,YAAA,EAAc,gBAAA,EAAkB,CAAA;AAAA,IACvG;AAAA,GAAA,EACH,CAAA;AAEJ;AACO,IAAM,aAAA,GAAgB,CAAC,IAAA,EAAc,MAAA,EAA2B,UAA6B,EAAA,EAAkB,QAAA,EAA4B,YAAgC,OAAA,EAAuB,QAAA,EAAwB,cAA4B,gBAAA,EAAgC,SAAA,EAA8B,YAA0B,WAAA,EAA6B,KAAA,EAAqB,UAAgD,SAAA,EAA0B,QAAA,EAAqCA,UAAAA,EAA+B,YAAA,EAAkC,mBAAA,KAAoD;AACzmB,EAAA,UAAA,GAAa,UAAA,IAAA,KAAA;AACb,EAAA,MAAM,cAAc,mBAAA,KAAwB,KAAA;AAC5C,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC5C,EAAA,OAAA,CAAQ,YAAY,YAAA,CAAa,UAAA,EAAY,SAAA,EAAW,YAAA,EAAc,SAAS,WAAW,CAAA;AAC1F,EAAA,gBAAA,CAAiB,SAAS,QAAQ,CAAA;AAElC,EAAA,IAAIA,UAAAA,UAAmB,OAAA,GAAUA,UAAAA;AACjC,EAAA,IAAI,YAAA,UAAsB,YAAA,GAAe,YAAA;AACzC,EAAA,IAAI,MAAA,EAAQ,MAAA,CAAO,WAAA,CAAY,OAAO,CAAA;AAEtC,EAAA,UAAA,CAAW,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,QAAA,EAAU,kBAAkB,WAAW,CAAA;AAC3E,EAAA,IAAI,QAAA,EAAU,OAAA,CAAQ,WAAA,CAAY,QAAuB,CAAA;AACzD,EAAA,OAAO,OAAA;AACT;AAEO,IAAM,kBAAA,GAAqB,CAAC,aAAA,EAAoC,QAAA,EAA6B,IAAa,OAAA,EAAyB,QAAA,EAA0B,OAAA,EAAyB,QAAA,EAA8B,aAAA,KAAiC,aAAA,CAAA,qBAAA,4BAA0C,eAAe,QAAA,EAAU,EAAA,EAAI,UAAU,aAAA,EAAe,OAAA,EAAS,UAAU,CAAA,EAAA,EAAK,aAAA,IAAiB,KAAK,CAAA,IAAA,CAAA,EAAQ,KAAK;AC/EhZ,IAAM,uBAAA,GAA0B,CAAC,QAAA,EAAmB,OAAA,EAAsB,eAA0C,cAAA,KAA4B;AACrJ,EAAA,IAAI,CAAC,OAAA,EAAS;AAEd,EAAA,IAAI,aAAA,EAAe,OAAA,CAAQ,KAAA,CAAM,WAAA,CAAY,yBAAyB,aAAa,CAAA;AAEnF,EAAA,IAAI,QAAA,EAAU,OAAA,CAAQ,SAAA,CAAU,GAAA,CAAI,kBAAkB,QAAQ,CAAA;AAAA,OACzD,OAAA,CAAQ,SAAA,CAAU,MAAA,CAAO,cAAA,IAAkB,QAAQ,CAAA;AAC1D;AAEO,IAAM,SAAS,CAAC,EAAE,QAAQ,UAAA,EAAY,MAAA,EAAQ,gBAAe,KAAwH;AAC1L,EAAA,OAAO,WAAW,MAAA,CAAO,GAAG,oBAC1BC,IAAAA,CAAC,QAAK,IAAA,EAAM,MAAA,CAAO,GAAA,IAAO,GAAA,EAAK,OAAO,MAAA,IAAU,MAAA,EAAW,WAAW,oBAAA,CAAqB,MAAA,CAAO,YAAY,MAAA,EAAW,MAAA,CAAO,UAAA,EAAY,MAAA,CAAO,YAAY,MAAA,CAAO,YAAA,EAAc,cAAc,CAAA,EAAkC,IAAA,EAAM,qCAAmC,OAAA,EAAS,CAAC,UAA2D,MAAA,CAAO,OAAA,GAAU,OAAO,KAAA,CAAM,aAAA,EAA8B,OAAO,IAAA,EAAM,MAAA,CAAO,YAAY,CAAA,EAC3a,QAAA,EAAA;AAAA,IAAA,MAAA,CAAO,IAAA,oBAAQC,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAM,MAAA,CAAO,IAAA,EAAM,IAAA,EAAM,MAAA,CAAO,QAAA,IAAA,EAAA,eAA+B,OAAA,EAAA,KAAA,YAAuB,IAAA,EAAA,IAAA,cAAoB,cAAa,KAAA,EAAM,CAAA;AAAA,oBACnJA,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,MAAA,CAAO,KAAA,YAAiB,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,IAAI,CAAA,GAAI,MAAA,CAAO,KAAA,EAAM;AAAA,GAAA,EAAA,EAFqH,OAAO,YAAA,IAAgB,CAGjO,CAAA,mBAEAD,KAAC,QAAA,EAAA,EAAO,KAAA,EAAO,MAAA,IAAU,MAAA,EAAW,WAAW,oBAAA,CAAqB,MAAA,CAAO,UAAA,EAAY,MAAA,EAAW,OAAO,UAAA,EAAY,MAAA,CAAO,UAAA,EAAY,MAAA,CAAO,cAAc,cAAc,CAAA,EAA6B,IAAA,EAAM,UAAA,IAAA,QAAA,eAAmC,SAAS,CAAC,KAAA,KAA2D,MAAA,CAAO,OAAA,GAAU,OAAO,KAAA,CAAM,aAAA,EAA8B,OAAO,IAAA,EAAM,MAAA,CAAO,YAAY,CAAA,EAC/Y,QAAA,EAAA;AAAA,IAAA,MAAA,CAAO,IAAA,oBAAQC,GAAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAM,MAAA,CAAO,IAAA,EAAM,IAAA,EAAM,MAAA,CAAO,QAAA,IAAA,EAAA,eAA+B,OAAA,EAAA,KAAA,YAAuB,IAAA,EAAA,IAAA,cAAoB,cAAa,KAAA,EAAM,CAAA;AAAA,oBACnJA,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,MAAA,CAAO,KAAA,YAAiB,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,IAAI,CAAA,GAAI,MAAA,CAAO,KAAA,EAAM;AAAA,GAAA,EAAA,EAF8F,OAAO,YAG1L,CAAA;AAEJ;AACO,IAAM,YAAA,GAAe,CAAC,KAAA,EAAgB,MAAA,EAA2B,QAAmC,cAAA,KAAkC;AAC3I,EAAA,MAAM,SAAS,QAAA,CAAS,aAAA,CAAc,KAAA,CAAM,GAAA,GAAM,MAAM,QAAQ,CAAA;AAChE,EAAA,MAAA,CAAO,aAAa,yBAAA,EAAA,CAA4B,KAAA,CAAM,UAAA,IAAc,EAAA,EAAI,UAAU,CAAA;AAClF,EAAA,IAAI,MAAM,IAAA,EAAM;AACd,IAAA,MAAM,IAAA,GAAO,UAAA,CAAW,KAAA,CAAM,IAAA,EAAM,MAAA,EAAQ,MAAM,QAAA,EAAU,KAAA,CAAM,QAAA,IAAA,IAAA,cAA0B,IAAA,EAAM,IAAI,CAAA;AACtG,IAAA,IAAA,CAAK,SAAA,CAAU,IAAI,KAAK,CAAA;AAAA,EAC1B;AAEA,EAAA,gBAAA,CAAiB,QAAQ,MAAM,CAAA;AAE/B,EAAA,MAAA,CAAO,SAAA,GAAY,oBAAA,CAAqB,KAAA,CAAM,UAAA,EAAY,MAAA,EAAW,KAAA,CAAM,UAAA,EAAY,KAAA,CAAM,UAAA,IAAc,YAAA,CAAa,kBAAA,EAAoB,MAAA,EAAW,cAAc,CAAA;AACrK,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC1C,EAAA,IAAA,CAAK,WAAA,GAAc,KAAA,CAAM,KAAA,YAAiB,QAAA,GAAY,KAAA,CAAM,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA,IAAK,IAAA,GAAS,KAAA,CAAM,KAAA,IAAS,IAAA;AACzG,EAAA,MAAA,CAAO,YAAY,IAAI,CAAA;AACvB,EAAA,MAAA,CAAO,OAAA,GAAU,CAAC,CAAA,KAAM,KAAA,CAAM,OAAA,GAAU,GAAG,MAAA,EAAQ,KAAA,CAAM,IAAA,EAAM,KAAA,CAAM,YAAY,CAAA;AACjF,EAAA,IAAI,MAAM,GAAA,EAAK;AACb,IAAC,MAAA,CAA6B,OAAO,KAAA,CAAM,GAAA;AAC3C,IAAC,MAAA,CAA6B,SAAS,KAAA,CAAM,MAAA,IAAA,QAAA;AAAA,EAC/C;AACA,EAAA,IAAI,MAAA,EAAQ,MAAA,CAAO,WAAA,CAAY,MAAM,CAAA;AACrC,EAAA,OAAO,MAAA;AACT;AACO,IAAM,OAAA,GAAU,CAAC,EAAE,OAAA,EAAS,YAAA,EAAc,OAAA,EAAS,MAAA,EAAQ,SAAA,EAAW,eAAA,EAAiB,cAAA,EAAgB,EAAA,EAAG,KAA+L;AAC9S,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,IAAA,EAAO,YAAY,IAAA,GAAO,EAAE,CAAA,CAAA,EAAI,eAAA,IAAmB,EAAE,CAAA,OAAA,EAAU,OAAA,IAAW,CAAC,CAAA,EAAA,EAAK,MAAA,IAAU,CAAC,CAAA,CAAA,EAAI,EAAA,KAAO,MAAA,GAAY,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,GAAK,EAAE,IAC7I,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,qBACZA,GAAAA,CAAC,MAAA,EAAA,EAAuB,QAAgB,cAAA,EAAgC,MAAA,EAAQ,gBAAnE,MAAA,CAAO,EAA0E,CAC/F,CAAA,EACH,CAAA;AAEJ;AACO,IAAM,aAAA,GAAgB,CAAC,OAAA,EAAoB,MAAA,EAA2B,YAAA,EAAyC,SAAuB,OAAA,EAAuB,MAAA,EAAsB,SAAA,EAAyB,eAAA,EAA+B,cAAA,KAAkC;AAClR,EAAA,IAAI,CAAC,OAAA,IAAW,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG;AACtC,EAAA,SAAA,KAAA,SAAA,GAAc,EAAA,CAAA;AACd,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAA,CAAO,CAAA,CAAE,YAAA,IAAgB,CAAA,KAAM,CAAA,CAAE,YAAA,IAAgB,CAAA,CAAE,CAAA;AACxF,EAAA,MAAM,SAAA,GAAY,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC9C,EAAA,IAAI,SAAA,EAAW,SAAA,CAAU,KAAA,CAAM,SAAA,GAAY,GAAG,SAAS,CAAA,GAAA,CAAA;AAEvD,EAAA,SAAA,CAAU,SAAA,GAAY,CAAA,IAAA,EAAO,SAAA,GAAY,IAAA,GAAO,EAAE,CAAA,CAAA,EAAI,eAAA,IAAmB,EAAE,CAAA,OAAA,EAAU,OAAA,IAAW,CAAC,CAAA,EAAA,EAAK,UAAU,CAAC,CAAA,CAAA;AACjH,EAAA,KAAA,MAAW,UAAU,WAAA,EAAa;AAEhC,IAAA,IAAI,OAAA,IAAW,CAAC,MAAA,CAAO,UAAA,SAAmB,UAAA,GAAa,OAAA;AAEvD,IAAA,YAAA,CAAa,MAAA,EAAQ,SAAA,EAAW,YAAA,EAAc,cAAc,CAAA;AAAA,EAC9D;AACA,EAAA,IAAI,MAAA,EAAQ,MAAA,CAAO,WAAA,CAAY,SAAS,CAAA;AACxC,EAAA,OAAO,SAAA;AACT;AAcA,IAAM,iBAAA,GAAoB,CAAC,YAAA,EAA4B,QAAA,KAAmC,GAAG,YAAA,IAAgB,EAAE,OAAO,QAAA,IAAA,IAAA,cAAiC,CAAA;AACvJ,IAAM,oBAAA,GAAuB,CAAC,gBAAA,EAAgC,UAAA,KAAmC,GAAG,UAAA,IAAA,KAAA,mBAAsC,CAAA,EAAI,oBAAoB,SAAS,CAAA,UAAA,CAAA;AAC3K,IAAM,uBAAuB,CAAC,YAAA,KAAiC,eAAe,yBAAA,GAA4B,EAAE,OAAO,aAAA,EAAc;AAE1H,IAAM,UAAA,GAAa,CAAC,EAAE,GAAA,EAAK,KAAA,EAAO,YAAA,EAAc,gBAAA,EAAkB,SAAA,EAAAF,UAAAA,EAAW,YAAA,EAAc,UAAA,EAAY,MAAA,EAAQ,UAAS,KAAkC;AAC/J,EAAA,uBACEE,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,iBAAA,CAAkB,YAAA,EAAc,QAAQ,CAAA,EACpD,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAO,oBAAA,CAAqB,YAAY,CAAA,EAAG,OAAA,EAASF,UAAAA,IAAa,MAAA,EAAW,MAAA,EAAQ,MAAA,IAAU,MAAA,EAAW,SAAA,EAAW,oBAAA,CAAqB,gBAAA,EAAkB,UAAU,CAAA,EAAG,IAAA,EAAM,GAAA,EACjL,iBACH,CAAA,EACF,CAAA;AAEJ;AAEO,IAAM,gBAAA,GAAmB,CAC9B,MAAA,EAEA,GAAA,EACA,KAAA,EACAA,UAAAA,EACA,YAAA,EACA,gBAAA,EACA,YAAA,EACA,UAAA,EACA,MAAA,EACA,QAAA,KACG;AACH,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,aAAA,CAAc,GAAG,CAAA;AACpC,EAAA,CAAA,CAAE,SAAA,GAAY,iBAAA,CAAkB,YAAA,EAAc,QAAQ,CAAA;AACtD,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,aAAA,CAAc,GAAG,CAAA;AACvC,EAAA,IAAA,CAAK,IAAA,GAAO,GAAA;AACZ,EAAA,IAAA,CAAK,SAAA,GAAY,oBAAA,CAAqB,gBAAA,EAAkB,UAAU,CAAA;AAClE,EAAA,IAAA,CAAK,UAAUA,UAAAA,IAAa,IAAA;AAC5B,EAAA,IAAA,CAAK,SAAA,GAAY,KAAA;AAEjB,EAAA,IAAI,MAAA,EAAQ,MAAA,CAAO,WAAA,CAAY,CAAC,CAAA;AAChC,EAAA,CAAA,CAAE,YAAY,IAAI,CAAA;AAElB,EAAA,IAAI,MAAA,OAAa,MAAA,GAAS,MAAA;AAC1B,EAAA,OAAO,CAAA;AACT;ACrIO,IAAM,0BAA0B,CAAC,YAAA,EAAuB,YAAA,EAAuB,YAAA,EAAuB,kBAA2B,CAAA,gBAAA,EAAmB,YAAA,IAAgB,EAAE,CAAA,GAAA,EAAM,gBAAgB,CAAC,CAAA,GAAA,EAAM,gBAAgB,CAAC,CAAA,GAAA,EAAM,iBAAiB,CAAC,CAAA;AAE5O,IAAM,YAAY,CAAC,EAAE,OAAO,YAAA,EAAc,YAAA,EAAc,cAAa,KAA8F;AACxK,EAAA,uBAAOE,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,uBAAA,CAAwB,YAAA,EAAc,YAAA,EAAc,YAAA,EAAc,YAAA,GAAe,CAAA,GAAI,CAAC,CAAA,EAAI,QAAA,EAAA,KAAA,EAAM,CAAA;AACxH;;;ACJO,IAAM,aAAA,GAAgB,CAAC,IAAA,KAAsB,IAAA,EAAM,QAAA,EAAS,CAAE,WAAA,EAAY,CAAE,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAA,IAAK;AAEpG,IAAM,aAAA,GAAgB,CAAC,KAAA,KAA0B,EAAE,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,IAAa,KAAA,CAAM,QAAA,EAAS,CAAE,IAAA,GAAO,MAAA,GAAS,CAAA;AAC7H,SAAS,yBAAyB,GAAA,EAAc;AACrD,EAAA,IAAI,CAAC,KAAK,OAAO,GAAA;AACjB,EAAA,OAAO,GAAA,CAAI,OAAO,CAAC,CAAA,CAAE,aAAY,GAAI,GAAA,CAAI,MAAM,CAAC,CAAA;AAClD;AACO,IAAM,eAAA,GAAkB,CAAC,GAAA,GAAM,CAAA,EAAG,MAAM,GAAA,KAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,MAAA,EAAO,IAAK,GAAA,GAAM,GAAA,GAAM,EAAE,CAAA,GAAI;AAC9F,IAAM,kBAAkB,CAAC,MAAA,GAAiB,IAAI,cAAA,GAA0B,IAAA,EAAM,sBAA+B,KAAA,KAAkB;AACpI,EAAA,MAAM,aAAa,sDAAA,IAA0D,cAAA,GAAiB,YAAA,GAAe,EAAA,CAAA,IAAO,sBAAsB,6BAAA,GAAgC,EAAA,CAAA;AAC1K,EAAA,IAAI,MAAA,GAAS,EAAA;AAEb,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,MAAA,EAAQ,CAAA,EAAA,EAAK;AAC/B,IAAA,MAAM,cAAc,IAAA,CAAK,KAAA,CAAM,KAAK,MAAA,EAAO,GAAI,WAAW,MAAM,CAAA;AAChE,IAAA,MAAA,IAAU,WAAW,WAAW,CAAA;AAAA,EAClC;AAEA,EAAA,OAAO,MAAA;AACT;AACO,SAAS,QAAA,CAAS,KAAA,EAA2C,YAAA,EAAsB,SAAA,GAAoB,GAAA,EAAa;AACzH,EAAA,IAAI,KAAA,IAAS,IAAA,IAAQ,KAAA,KAAU,MAAA,EAAW,OAAO,EAAA;AAEjD,EAAA,MAAM,GAAA,GAAM,OAAO,QAAA,EAAS;AAC5B,EAAA,IAAI,GAAA,CAAI,MAAA,IAAU,YAAA,EAAc,OAAO,GAAA;AACvC,EAAA,OAAO,SAAA,CAAU,MAAA,CAAO,YAAA,GAAe,GAAA,CAAI,MAAM,CAAA,GAAI,GAAA;AACvD;;;ACxBO,SAAS,wBAAA,CAA4B,QAAA,EAAe,UAAA,EAAiB,SAAA,EAAgB,YAA2B,eAAA,EAAkE;AACvL,EAAA,IAAI,eAAoB,EAAC;AACzB,EAAA,IAAI,cAAmB,EAAC;AACxB,EAAA,UAAA,CAAW,MAAA,GAAS,CAAA;AACpB,EAAA,SAAA,CAAU,MAAA,GAAS,CAAA;AAEnB,EAAA,IAAI,QAAA,CAAS,UAAU,eAAA,EAAiB;AACtC,IAAA,MAAM,CAAA,GAAI;AAAA,MACR,YAAA,EAAc,QAAA;AAAA,MACd,aAAa;AAAC,KAChB;AACA,IAAA,UAAA,CAAW,IAAA,CAAK,GAAG,CAAA,CAAE,YAAY,CAAA;AACjC,IAAA,SAAA,CAAU,IAAA,CAAK,GAAG,CAAA,CAAE,WAAW,CAAA;AAC/B,IAAA,OAAO,CAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,UAAA,IAAc,CAAC,QAAA,CAAS,QAAA,CAAS,UAAU,CAAA,EAAG;AACjD,IAAA,YAAA,GAAe,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,eAAe,CAAA;AAChD,IAAA,WAAA,GAAc,QAAA,CAAS,MAAM,eAAe,CAAA;AAAA,EAC9C,CAAA,MAAO;AACL,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,UAAU,CAAA;AAEzC,IAAA,MAAM,YAAA,GAAe,SAAS,KAAK,CAAA;AAEnC,IAAA,YAAA,GAAe,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,eAAA,GAAkB,CAAC,CAAA;AACpD,IAAA,YAAA,CAAa,KAAK,YAAY,CAAA;AAC9B,IAAA,WAAA,GAAc,QAAA,CAAS,KAAA,CAAM,eAAA,GAAkB,CAAC,CAAA;AAEhD,IAAA,WAAA,GAAc,WAAA,CAAY,MAAA,CAAO,CAAC,IAAA,KAAS,SAAS,YAAY,CAAA;AAChE,IAAA,IAAI,KAAA,GAAQ,kBAAkB,CAAA,EAAG,CACjC,MAAO;AACL,MAAA,YAAA,GAAe,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,eAAe,CAAA;AAChD,MAAA,WAAA,GAAc,QAAA,CAAS,MAAM,eAAe,CAAA;AAAA,IAC9C;AAAA,EACF;AACA,EAAA,UAAA,CAAW,IAAA,CAAK,GAAG,YAAY,CAAA;AAC/B,EAAA,SAAA,CAAU,IAAA,CAAK,GAAG,WAAW,CAAA;AAC7B,EAAA,OAAO,EAAE,cAAc,WAAA,EAAY;AACrC;AACO,SAAS,cAAA,CAAkB,IAAA,EAAW,GAAA,EAAc,KAAA,EAAgB;AACzE,EAAA,OAAO,CAAC,GAAG,IAAI,EAAE,IAAA,CAAK,CAAC,GAAG,CAAA,KAAM;AAC9B,IAAA,MAAM,MAAA,GAAS,EAAE,GAAG,CAAA;AACpB,IAAA,MAAM,MAAA,GAAS,EAAE,GAAG,CAAA;AACpB,IAAA,IAAI,MAAA,GAAS,CAAA;AAGb,IAAA,IAAI,MAAA,IAAU,IAAA,IAAQ,MAAA,IAAU,IAAA,EAAM,OAAO,CAAA;AAC7C,IAAA,IAAI,MAAA,IAAU,IAAA,EAAM,OAAO,KAAA,GAAQ,EAAA,GAAK,CAAA;AACxC,IAAA,IAAI,MAAA,IAAU,IAAA,EAAM,OAAO,KAAA,GAAQ,CAAA,GAAI,EAAA;AAGvC,IAAA,IAAI,OAAO,MAAA,KAAW,QAAA,IAAY,OAAO,MAAA,KAAW,QAAA,WAAmB,MAAA,GAAS,MAAA;AAAA,SAAA,IAEvE,OAAO,WAAW,QAAA,IAAY,OAAO,WAAW,QAAA,EAAU,MAAA,GAAS,MAAA,CAAO,aAAA,CAAc,MAAM,CAAA;AAAA,SAAA,IAE9F,MAAA,YAAkB,QAAQ,MAAA,YAAkB,IAAA,WAAe,MAAA,CAAO,OAAA,EAAQ,GAAI,MAAA,CAAO,OAAA,EAAQ;AAAA,SAAA,IAE7F,OAAO,MAAA,KAAW,QAAA,IAAY,OAAO,WAAW,QAAA,EAAU,MAAA,GAAS,IAAA,CAAK,SAAA,CAAU,MAAM,CAAA,CAAE,aAAA,CAAc,IAAA,CAAK,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,kBAEzH,MAAA,CAAO,MAAM,EAAE,aAAA,CAAc,MAAA,CAAO,MAAM,CAAC,CAAA;AAEzD,IAAA,OAAO,KAAA,GAAQ,SAAS,CAAC,MAAA;AAAA,EAC3B,CAAC,CAAA;AACH;AACO,SAAS,WAAA,CAAe,IAAA,EAAe,KAAA,EAAgB,MAAA,EAAqB;AAEjF,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AAEvB,IAAA,IAAI,WAAA,GAAc,KAAK,GAAA,CAAI,CAAC,UAAU,EAAE,GAAG,MAAK,CAAE,CAAA;AAGlD,IAAA,IAAI,KAAA,KAAU,MAAA,IAAa,MAAA,KAAW,MAAA,EAAW;AAE/C,MAAA,WAAA,CAAY,OAAO,KAAA,EAAO,CAAA,EAAG,EAAE,GAAG,QAAQ,CAAA;AAAA,IAC5C;AACA,IAAA,OAAO,WAAA;AAAA,EACT,CAAA,MAAA,IAAW,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,KAAS,IAAA;AAE9C,IAAA,OAAO,EAAE,GAAG,IAAA,EAAK;AAAA,OACd,MAAM,IAAI,KAAA,CAAM,gDAAgD,CAAA;AACvE;AACO,IAAM,4BAAA,GAA+B,CAAC,UAAA,EAAmB,UAAA,EAA2B,OAAA,KAAuB;AAChH,EAAA,IAAI,CAAC,UAAA,IAAc,CAAC,MAAM,OAAA,CAAQ,UAAU,KAAK,UAAA,CAAW,MAAA,KAAW,CAAA,IAAK,CAAC,WAAW,OAAA,CAAQ,MAAA,KAAW,KAAK,aAAA,CAAc,UAAU,GAAG,OAAO,UAAA;AAClJ,EAAA,MAAM,oBAAoB,OAAA,CAAQ,MAAA,CAAO,CAAC,MAAA,KAAW,OAAO,YAAY,CAAA;AACxE,EAAA,IAAI,iBAAA,CAAkB,MAAA,KAAW,CAAA,EAAG,OAAO,UAAA;AAC3C,EAAA,MAAM,WAAA,GAAc,UAAA,EAAY,WAAA,EAAY,CAAE,IAAA,EAAK;AACnD,EAAA,OAAO,UAAA,CAAW,MAAA,CAAO,CAAC,IAAA,KAAS;AACjC,IAAA,OAAO,iBAAA,CAAkB,IAAA,CAAK,CAAC,MAAA,KAAW;AACxC,MAAA,IAAI,OAAO,UAAA,EAAY;AACrB,QAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,MAAA,CAAO,UAAU,CAAA;AACpC,QAAA,OAAO,SAAS,KAAA,CAAM,QAAA,GAAW,WAAA,EAAY,CAAE,SAAS,WAAW,CAAA;AAAA,MACrE;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACH;ACxFA,IAAM,WAAA,GAAc,CAAC,cAAA,KAA2B,CAAA,OAAA,EAAU,cAAc,CAAA,CAAA;AACxE,IAAM,cAAA,GAAiB,wBAAA;AAChB,IAAM,oCAAA,GAAuC;AAUpD,IAAM,cAAA,uBAAqB,GAAA,EAAuC;AAElE,IAAM,WAAA,uBAAkB,GAAA,EAAiB;AAEzC,IAAI,2BAAA,GAA8B,KAAA;AAClC,IAAI,0BAAA;AAEJ,IAAM,oBAAA,GAAuB,CAAC,KAAA,EAA6B,IAAA,EAAqB,MAAA,KAAwB;AACtG,EAAA,IAAI,KAAA,CAAM,iBAAA,KAAsB,KAAA,EAAO,OAAO,WAAW,KAAA,CAAM,cAAA;AAE/D,EAAA,OACE,KAAK,QAAA,CAAS,KAAA,CAAM,cAAc,CAAA,IAClC,IAAA,CAAK,SAAS,KAAA,CAAM,eAAe,CAAA,IACnC,6BAAA,CAA8B,MAAM,cAAA,EAAgB,IAAI,KACxD,KAAA,CAAM,cAAA,CAAe,SAAS,MAAM,CAAA;AAExC,CAAA;AAEA,IAAM,6BAAA,GAAgC,CAAC,aAAA,EAA4B,IAAA,KAAwB;AACzF,EAAA,KAAA,MAAW,WAAW,WAAA,EAAa;AACjC,IAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,IAAA,MAAM,MAAA,GAAS,cAAA,CAAe,GAAA,CAAI,OAAO,CAAA;AACzC,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,cAAc,QAAA,CAAS,MAAA,CAAO,cAAc,CAAA,EAAG;AAC/D,IAAA,IAAI,IAAA,CAAK,QAAA,CAAS,MAAA,CAAO,cAAc,CAAA,IAAK,KAAK,QAAA,CAAS,MAAA,CAAO,eAAe,CAAA,EAAG,OAAO,IAAA;AAAA,EAC5F;AACA,EAAA,OAAO,KAAA;AACT,CAAA;AAEA,IAAM,qBAAA,GAAwB,CAAC,CAAA,KAAkB;AAC/C,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAE5B,EAAA,MAAM,IAAA,GAAO,EAAE,YAAA,EAAa;AAC5B,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AAEjB,EAAA,KAAA,MAAW,OAAA,IAAW,CAAC,GAAG,WAAW,CAAA,EAAG;AACtC,IAAA,MAAM,KAAA,GAAQ,cAAA,CAAe,GAAA,CAAI,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,KAAA,IAAS,oBAAA,CAAqB,KAAA,EAAO,IAAA,EAAM,MAAM,CAAA,EAAG;AACzD,IAAA,KAAA,CAAM,MAAM,KAAK,CAAA;AAAA,EACnB;AACF,CAAA;AAEA,IAAM,8BAA8B,MAAM;AACxC,EAAA,YAAA,CAAa,0BAA0B,CAAA;AACvC,EAAA,0BAAA,GAA6B,WAAW,MAAM;AAC5C,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC5B,IAAA,IAAI,CAAC,2BAAA,EAA6B;AAChC,MAAA,QAAA,CAAS,gBAAA,CAAiB,SAAS,qBAAqB,CAAA;AACxD,MAAA,2BAAA,GAA8B,IAAA;AAAA,IAChC;AAAA,EACF,GAAG,CAAC,CAAA;AACN,CAAA;AAEA,IAAM,8BAA8B,MAAM;AACxC,EAAA,IAAI,WAAA,CAAY,OAAO,CAAA,EAAG;AAC1B,EAAA,YAAA,CAAa,0BAA0B,CAAA;AACvC,EAAA,QAAA,CAAS,mBAAA,CAAoB,SAAS,qBAAqB,CAAA;AAC3D,EAAA,2BAAA,GAA8B,KAAA;AAChC,CAAA;AAGA,IAAM,iBAAA,GAAoB,CAAC,cAAA,EAA6B,SAAA,KAAuB;AAC7E,EAAA,KAAA,MAAW,WAAW,WAAA,EAAa;AACjC,IAAA,IAAI,YAAY,cAAA,EAAgB;AAChC,IAAA,MAAM,KAAA,GAAQ,cAAA,CAAe,GAAA,CAAI,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,IAAI,KAAA,CAAM,cAAA,CAAe,QAAA,CAAS,cAAc,CAAA,EAAG;AACnD,IAAA,KAAA,CAAM,MAAM,SAAS,CAAA;AAAA,EACvB;AACF,CAAA;AAEA,IAAM,kBAAA,GAAqB,CAAC,aAAA,EAA4B,SAAA,KAAuB;AAC7E,EAAA,KAAA,MAAW,WAAW,WAAA,EAAa;AACjC,IAAA,IAAI,YAAY,aAAA,EAAe;AAC/B,IAAA,MAAM,KAAA,GAAQ,cAAA,CAAe,GAAA,CAAI,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,cAAc,QAAA,CAAS,KAAA,CAAM,cAAc,CAAA,EAAG;AAC7D,IAAA,KAAA,CAAM,MAAM,SAAS,CAAA;AAAA,EACvB;AACF,CAAA;AAEA,IAAM,cAAA,GAAiB,CAAC,KAAA,KAAgC;AACtD,EAAA,cAAA,CAAe,GAAA,CAAI,KAAA,CAAM,cAAA,EAAgB,KAAK,CAAA;AAChD,CAAA;AAEA,IAAM,gBAAA,GAAmB,CAAC,cAAA,KAAgC;AACxD,EAAA,WAAA,CAAY,OAAO,cAAc,CAAA;AACjC,EAAA,cAAA,CAAe,OAAO,cAAc,CAAA;AACpC,EAAA,2BAAA,EAA4B;AAC9B,CAAA;AAgCO,IAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAU,kBAAkB,QAAA,EAAU,cAAA,EAAgB,UAAA,EAAY,YAAA,EAAc,cAAA,EAAgB,iBAAA,EAAmB,aAAA,EAAe,YAAA,EAAc,0BAAyB,KAAiC;AAC1O,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIC,KAAAA,CAAM,SAAkB,KAAK,CAAA;AAE/D,EAAA,MAAM,mBAAA,GAAsB,CAAC,OAAA,KAAqB;AAChD,IAAA,YAAA,CAAa,OAAO,CAAA;AAAA,EACtB,CAAA;AACA,EAAA,MAAM,aAAa,MAAM;AAAA,EAAC,CAAA;AAE1B,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,aAAA,GAA0C,IAAA;AAC9C,IAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,MAAA,YAAA,CAAa,OAAO,CAAA;AACpB,MAAA,MAAM,MAAA,GAAS,QAAA,CAAS,cAAA,CAAe,cAAc,CAAA;AACrD,MAAA,MAAM,MAAA,GAAS,QAAA,CAAS,cAAA,CAAe,WAAA,CAAY,cAAc,CAAC,CAAA;AAClE,MAAA,IAAI,CAAC,MAAA,IAAU,CAAC,MAAA,EAAQ;AAExB,MAAA,MAAM,aAAA,GAAgB,gBAAgB,MAAA,GAAS,MAAA;AAC/C,MAAA,aAAA,GAAgB,mBAAA,CAAoB,MAAA,EAAQ,MAAA,EAAQ,gBAAA,EAAkB,eAAe,cAAA,EAAgB,YAAA,EAAc,UAAA,EAAY,mBAAA,EAAqB,UAAA,EAAY,iBAAA,EAAmB,QAAA,EAAU,YAAA,EAAc,0BAA0B,IAAI,CAAA;AAAA,IAC3O,GAAG,CAAC,CAAA;AACJ,IAAA,OAAO,MAAM;AACX,MAAA,aAAA,EAAe,OAAA,EAAQ;AACvB,MAAA,YAAA,CAAa,OAAO,CAAA;AAAA,IACtB,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBAAOD,IAAC,IAAA,EAAA,EAAG,EAAA,EAAI,YAAY,cAAc,CAAA,EAAI,uBAAa,QAAA,EAAS,CAAA;AACrE;AAEO,IAAM,sBAAsB,CAAC,cAAA,EAA6B,eAAA,EAA8B,gBAAA,EAAqC,eAAwB,cAAA,EAAyB,YAAA,EAAuB,UAAA,EAA2B,mBAAA,EAAoD,YAAyB,iBAAA,EAA6B,QAAA,EAAuB,YAAA,EAAuB,wBAAA,EAAoC,aAA2D,0BAAA,KAAmE;AAC/hB,EAAA,IAAI,CAAC,cAAA,IAAkB,CAAC,eAAA,EAAiB,OAAO,IAAA;AAEhD,EAAA,cAAA,GAAiB,cAAA,IAAkB,CAAA;AACnC,EAAA,YAAA,GAAe,YAAA,IAAgB,EAAA;AAE/B,EAAA,MAAM,gBAAA,GAA4B,cAAc,IAAA,GAAO,KAAA;AAEvD,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAkB;AACrC,IAAA,IAAI,UAAU,CAAA,EAAG;AACf,MAAA,eAAA,CAAgB,SAAA,CAAU,MAAA,CAAO,MAAA,EAAQ,IAAI,CAAA;AAAA,IAC/C,CAAA,MAAA,IAAW,UAAU,CAAA,EAAG;AACtB,MAAA,eAAA,CAAgB,SAAA,CAAU,IAAI,IAAI,CAAA;AAClC,MAAA,eAAA,CAAgB,SAAA,CAAU,OAAO,MAAM,CAAA;AAAA,IACzC;AAAA,EACF,CAAA;AACA,EAAA,MAAM,oBAAA,GAAuB,QAAA,CAAS,WAAA,EAAa,GAAG,CAAA;AACtD,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,MAAM,MAAA,GAAS,eAAA;AACf,IAAA,MAAM,aAAA,GAAgB,cAAA;AAEtB,IAAA,IAAI,CAAC,aAAA,EAAe;AAEpB,IAAA,MAAM,QAAA,GAAW,cAAc,qBAAA,EAAsB;AACrD,IAAA,MAAM,MAAA,GAAS,OAAO,qBAAA,EAAsB;AAC5C,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,gBAAA,CAAiB,aAAa,CAAA;AACnD,IAAA,MAAM,WAAA,GAAc,SAAS,MAAA,GAAS,UAAA,CAAW,MAAM,iBAAiB,CAAA,GAAI,UAAA,CAAW,KAAA,CAAM,cAAc,CAAA;AAC3G,IAAA,MAAM,GAAA,GAAM,SAAS,GAAA,GAAM,WAAA;AAC3B,IAAA,MAAM,eAAe,MAAA,CAAO,WAAA;AAC5B,IAAA,MAAM,cAAA,GAAiB,MAAM,MAAA,CAAO,MAAA;AACpC,IAAA,MAAA,CAAO,SAAA,CAAU,OAAO,GAAG,CAAA;AAE3B,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,GAAA,GAAM,MAAA,CAAO,MAAA;AACvC,IAAA,MAAM,WAAA,GAAc,YAAA,IAAgB,QAAA,CAAS,GAAA,GAAM,cAAc,MAAA,CAAO,MAAA,CAAA;AAExE,IAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,MAAA,IAAI,wBAAA,IAA4B,QAAA,GAAW,CAAA,IAAK,WAAA,GAAc,CAAA,EAAG;AAE/D,QAAA,MAAA,CAAO,SAAA,CAAU,IAAI,GAAG,CAAA;AACxB,QAAA,MAAA,CAAO,MAAM,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,GAAc,OAAO,MAAM,CAAA,EAAA,CAAA;AAAA,MACzD,CAAA,MAAA,IAAW,iBAAiB,YAAA,EAAc;AAExC,QAAA,IAAI,GAAA,GAAM,WAAA,GAAc,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AACzC,UAAA,MAAA,CAAO,SAAA,CAAU,IAAI,GAAG,CAAA;AACxB,UAAA,MAAA,CAAO,MAAM,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,GAAc,OAAO,MAAM,CAAA,EAAA,CAAA;AAAA,QACzD,CAAA,MAAO;AAEL,UAAA,MAAA,CAAO,KAAA,CAAM,GAAA,GAAM,CAAA,EAAG,YAAA,GAAe,OAAO,MAAM,CAAA,EAAA,CAAA;AAAA,QACpD;AAAA,MACF,CAAA,MAAO;AAEL,QAAA,MAAA,CAAO,KAAA,CAAM,GAAA,GAAM,CAAA,EAAG,GAAG,CAAA,EAAA,CAAA;AAAA,MAC3B;AAAA,IACF;AAIA,IAAA,MAAM,eAAA,GAAkB,mBAAmB,CAAC,CAAA;AAE5C,IAAA,IAAI,QAAA,KAAA,OAAA,qBAAsC,KAAA,CAAM,IAAA,GAAO,GAAG,QAAA,CAAS,KAAA,GAAQ,OAAO,KAAK,CAAA,EAAA,CAAA;AAAA,SAAA,IAC9E,gCAA8B,MAAA,CAAO,KAAA,CAAM,IAAA,GAAO,CAAA,EAAG,SAAS,IAAI,CAAA,EAAA,CAAA;AAAA,SAAA,IAClE,QAAA,KAAA,QAAA,eAAgC,MAAA,CAAO,KAAA,CAAM,IAAA,GAAO,CAAA,EAAG,QAAA,CAAS,IAAA,GAAO,QAAA,CAAS,KAAA,GAAQ,CAAA,GAAI,MAAA,CAAO,KAAA,GAAQ,CAAC,CAAA,EAAA,CAAA;AAGrH,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,IAAI,QAAA,CAAS,IAAA,GAAO,MAAA,CAAO,KAAA,GAAQ,OAAO,UAAA,EAAY,MAAA,CAAO,KAAA,CAAM,IAAA,GAAO,CAAA,EAAG,MAAA,CAAO,UAAA,GAAa,MAAA,CAAO,QAAQ,eAAe,CAAA,EAAA,CAAA;AAAA,WAC1H,MAAA,CAAO,KAAA,CAAM,IAAA,GAAO,CAAA,EAAG,SAAS,IAAI,CAAA,EAAA,CAAA;AAAA,IAC3C,CAAA,MAAO;AAEL,MAAA,MAAM,WAAA,GAAc,UAAA,CAAW,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA;AAChD,MAAA,IAAI,CAAC,MAAM,WAAW,CAAA,IAAK,cAAc,MAAA,CAAO,KAAA,GAAQ,OAAO,UAAA,EAAY;AACzE,QAAA,MAAA,CAAO,MAAM,IAAA,GAAO,CAAA,EAAG,OAAO,UAAA,GAAa,MAAA,CAAO,QAAQ,eAAe,CAAA,EAAA,CAAA;AAAA,MAC3E;AAAA,IACF;AAEA,IAAA,IAAI,UAAA,CAAW,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA,GAAI,iBAAiB,MAAA,CAAO,KAAA,CAAM,IAAA,GAAO,CAAA,EAAG,eAAe,CAAA,EAAA,CAAA;AAG3F,IAAA,MAAM,UAAA,GAAa,OAAO,qBAAA,EAAsB;AAChD,IAAA,MAAM,YAAA,GAAe,QAAA,CAAS,IAAA,GAAO,QAAA,CAAS,KAAA,GAAQ,CAAA;AAGtD,IAAA,IAAI,SAAA,GAAY,YAAA,GAAe,UAAA,CAAW,IAAA,GAAO,mBAAmB,IAAI,CAAA;AAGxE,IAAA,MAAM,YAAA,GAAe,mBAAmB,CAAC,CAAA;AACzC,IAAA,SAAA,GAAY,IAAA,CAAK,IAAI,YAAA,EAAc,IAAA,CAAK,IAAI,SAAA,EAAW,MAAA,CAAO,KAAA,GAAQ,YAAY,CAAC,CAAA;AAEnF,IAAA,MAAA,CAAO,KAAA,CAAM,WAAA,CAAY,cAAA,EAAgB,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI,CAAA;AAEzD,IAAA,MAAM,UAAU,QAAA,CAAS,KAAA;AACzB,IAAA,MAAM,aAAA,GAAgB,mBAAmB,YAAY,CAAA;AACrD,IAAA,MAAA,CAAO,MAAM,KAAA,GAAQ,CAAA,EAAG,KAAK,GAAA,CAAI,OAAA,EAAS,aAAa,CAAC,CAAA,EAAA,CAAA;AAAA,EAC1D,CAAA;AACA,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAAkB;AACvC,IAAA,IAAI,CAAC,cAAA,CAAe,OAAA,CAAQ,QAAQ,CAAA,EAAG;AACvC,IAAA,IAAI,CAAA,CAAE,WAAW,cAAA,EAAgB;AAEjC,IAAA,MAAM,SAAA,GAAY,cAAA,CAAe,YAAA,CAAa,cAAc,CAAA,KAAM,MAAA;AAClE,IAAA,IAAI,CAAC,SAAA,EAAW,UAAA,CAAW,IAAA,EAAM,KAAK,CAAA;AAAA,EACxC,CAAA;AACA,EAAA,IAAI,sBAAA,GAAyB,KAAA;AAC7B,EAAA,IAAI,qBAAA,GAAwE,IAAA;AAC5E,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,IAAI,CAAC,qBAAA,EAAuB;AAC1B,MAAA,qBAAA,GAAwB,SAAS,aAAA,EAAA,CAAgB,gBAAA,KAAqB,IAAA,GAAO,oCAAA,GAAwC,qBAAgC,oCAAoC,CAAA;AAAA,IAC3L;AACA,IAAA,OAAO,qBAAA;AAAA,EACT,CAAA;AACA,EAAA,MAAM,0BAA0B,MAAM;AACpC,IAAA,qBAAA,EAAuB,MAAA,EAAO;AAAA,EAChC,CAAA;AACA,EAAA,MAAM,uBAAuB,MAAM;AACjC,IAAA,IAAI,CAAC,oBAAoB,sBAAA,EAAwB;AACjD,IAAA,cAAA,CAAe,gBAAA,CAAiB,YAAA,EAAc,gBAAA,EAAkB,CAAA;AAChE,IAAA,cAAA,CAAe,gBAAA,CAAiB,cAAc,uBAAuB,CAAA;AACrE,IAAA,sBAAA,GAAyB,IAAA;AAAA,EAC3B,CAAA;AACA,EAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAAkB;AACtC,IAAA,oBAAA,EAAqB;AACrB,IAAA,cAAA,CAAe,mBAAA,CAAoB,cAAc,YAAY,CAAA;AAC7D,IAAA,gBAAA,GAAmB,CAAC,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,cAAA,CAAe,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAChD,IAAA,IAAI,gBAAA,EAAkB,cAAA,CAAe,gBAAA,CAAiB,YAAA,EAAc,YAAY,CAAA;AAChF,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,cAAA,CAAe,gBAAA,CAAiB,WAAW,OAAO,CAAA;AAClD,MAAA,cAAA,CAAe,gBAAA,CAAiB,YAAY,UAAU,CAAA;AACtD,MAAA,QAAA,CAAS,gBAAA,CAAiB,SAAA,EAAW,SAAA,EAAW,IAAI,CAAA;AAAA,IACtD;AAEA,IAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,MAAA,YAAA,CAAa,OAAO,CAAA;AACpB,MAAA,aAAA,EAAc;AACd,MAAA,0BAAA,GAA6B,0BAAA,IAA8B,IAAA;AAC3D,MAAA,UAAA,CAAW,CAAC,4BAA4B,IAAI,CAAA;AAAA,IAC9C,GAAG,CAAC,CAAA;AAAA,EACN,CAAA;AACA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,cAAA,CAAe,YAAA,CAAa,gBAAgB,OAAO,CAAA;AACnD,IAAA,cAAA,CAAe,mBAAA,CAAoB,SAAS,OAAO,CAAA;AACnD,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,cAAA,CAAe,mBAAA,CAAoB,cAAc,YAAY,CAAA;AAC7D,MAAA,IAAI,sBAAA,EAAwB;AAC1B,QAAA,cAAA,CAAe,mBAAA,CAAoB,YAAA,EAAc,gBAAA,EAAkB,CAAA;AACnE,QAAA,cAAA,CAAe,mBAAA,CAAoB,cAAc,uBAAuB,CAAA;AACxE,QAAA,qBAAA,EAAuB,MAAA,EAAO;AAAA,MAChC;AAAA,IACF;AACA,IAAA,YAAA,CAAa,iBAAiB,CAAA;AAC9B,IAAA,2BAAA,EAA4B;AAC5B,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,cAAA,CAAe,mBAAA,CAAoB,WAAW,OAAO,CAAA;AACrD,MAAA,cAAA,CAAe,mBAAA,CAAoB,YAAY,UAAU,CAAA;AACzD,MAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,SAAS,CAAA;AACjD,MAAA,QAAA,CAAS,mBAAA,CAAoB,UAAU,gBAAgB,CAAA;AAAA,IACzD;AACA,IAAA,gBAAA,CAAiB,cAAc,CAAA;AAC/B,IAAA,UAAA,IAAa;AAAA,EACf,CAAA;AACA,EAAA,IAAI,iBAAA;AACJ,EAAA,MAAM,UAAA,GAAa,CAAC,OAAA,EAAkB,SAAA,KAAuB;AAC3D,IAAA,MAAM,SAAA,GAAY,OAAA;AAClB,IAAA,IAAI,CAAC,cAAA,EAAgB;AACrB,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,IAAI,CAAC,SAAA,EAAW,iBAAA,CAAkB,cAAA,EAAgB,KAAK,CAAA;AAEvD,MAAA,WAAA,CAAY,IAAI,cAAc,CAAA;AAC9B,MAAA,2BAAA,EAA4B;AAE5B,MAAA,YAAA,CAAa,iBAAiB,CAAA;AAC9B,MAAA,oBAAA,CAAqB,MAAA,EAAO;AAC5B,MAAA,qBAAA,EAAuB,MAAA,EAAO;AAE9B,MAAA,mBAAA,GAAsB,SAAS,CAAA;AAC/B,MAAA,aAAA,EAAc;AACd,MAAA,MAAM,QAAA,GAAW,WAAW,MAAM;AAChC,QAAA,YAAA,CAAa,QAAQ,CAAA;AACrB,QAAA,aAAA,EAAc;AAAA,MAChB,GAAG,CAAC,CAAA;AAEJ,MAAA,eAAA,CAAgB,SAAA,CAAU,OAAO,IAAI,CAAA;AACrC,MAAA,eAAA,CAAgB,MAAM,aAAA,GAAgB,EAAA;AACtC,MAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,QAAA,YAAA,CAAa,OAAO,CAAA;AACpB,QAAA,eAAA,CAAgB,SAAA,CAAU,OAAO,IAAI,CAAA;AACrC,QAAA,eAAA,CAAgB,SAAA,CAAU,IAAI,MAAM,CAAA;AACpC,QAAA,cAAA,CAAe,YAAA,CAAa,gBAAgB,MAAM,CAAA;AAAA,MACpD,GAAG,EAAE,CAAA;AACL,MAAA,oBAAA,CAAqB,CAAC,CAAA;AAEtB,MAAA,IAAI,gBAAA,EAAkB,QAAA,CAAS,gBAAA,CAAiB,QAAA,EAAU,gBAAgB,CAAA;AAAA,IAC5E,CAAA,MAAO;AACL,MAAA,IAAI,CAAC,SAAA,EAAW,kBAAA,CAAmB,cAAA,EAAgB,KAAK,CAAA;AAExD,MAAA,WAAA,CAAY,OAAO,cAAc,CAAA;AACjC,MAAA,2BAAA,EAA4B;AAE5B,MAAA,IAAI,gBAAA,EAAkB,QAAA,CAAS,mBAAA,CAAoB,QAAA,EAAU,gBAAgB,CAAA;AAE7E,MAAA,eAAA,CAAgB,SAAA,CAAU,GAAA,CAAI,IAAA,EAAM,MAAM,CAAA;AAC1C,MAAA,eAAA,CAAgB,MAAM,aAAA,GAAgB,MAAA;AACtC,MAAA,IAAI,SAAA,cAAuB,CAAC,CAAA;AAC5B,MAAA,oBAAA,CAAqB,CAAC,CAAA;AACtB,MAAA,iBAAA,GAAoB,WAAW,MAAM;AACnC,QAAA,IAAI,CAAC,SAAA,EAAW,mBAAA,GAAsB,KAAK,CAAA;AAC3C,QAAA,YAAA,CAAa,iBAAiB,CAAA;AAC9B,QAAA,cAAA,CAAe,YAAA,CAAa,gBAAgB,OAAO,CAAA;AAAA,MACrD,GAAG,0BAA0B,CAAA;AAAA,IAC/B;AAAA,EACF,CAAA;AACA,EAAA,MAAM,SAAA,GAAY,CAAC,CAAA,KAAqB;AACtC,IAAA,IAAI,aAAa,CAAA,EAAA,KAAA,WAAY,EAAA;AAAG,MAAA,IAAI,QAAA,CAAS,aAAA,KAAkB,cAAA,EAAgB,UAAA,CAAW,OAAO,KAAK,CAAA;AAAA,IAAA;AAAA,EACxG,CAAA;AACA,EAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAkB;AACjC,IAAA,MAAM,MAAA,GAAS,cAAA,CAAe,YAAA,CAAa,cAAc,CAAA,KAAM,MAAA;AAC/D,IAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,IAAA,IAAI,UAAU,MAAA,CAAO,EAAA,KAAO,cAAA,CAAe,EAAA,IAAM,WAAW,cAAA,EAAgB;AAE5E,IAAA,IAAI,UAAU,gBAAA,EAAkB;AAEhC,IAAA,UAAA,CAAW,CAAC,QAAQ,KAAK,CAAA;AACzB,IAAA,CAAA,CAAE,eAAA,EAAgB;AAAA,EACpB,CAAA;AACA,EAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAkB;AACjC,IAAA,IAAI,gBAAA,EAAkB,UAAA,CAAW,IAAA,EAAM,KAAK,CAAA;AAAA,EAC9C,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,CAAC,CAAA,KAAkB;AACpC,IAAA,IAAI,CAAC,gBAAA,EAAkB;AAEvB,IAAA,IAAI,CAAC,cAAA,EAAgB;AACrB,IAAA,IAAI,CAAC,CAAA,CAAE,aAAA,IAAiB,eAAe,QAAA,CAAS,CAAA,CAAE,aAA4B,CAAA,EAAG;AAEjF,IAAA,UAAA,CAAW,OAAO,KAAK,CAAA;AAAA,EACzB,CAAA;AACA,EAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAAa;AAAA,EAAC,CAAA;AAExC,EAAA,cAAA,CAAe;AAAA,IACb,cAAA;AAAA,IACA,eAAA;AAAA,IACA,iBAAA;AAAA,IACA,KAAA,EAAO,CAAC,SAAA,KAAc,UAAA,CAAW,OAAO,SAAS;AAAA,GAClD,CAAA;AAED,EAAA,IAAI,CAAC,eAAA,CAAgB,SAAA,CAAU,QAAA,CAAS,QAAQ,CAAA,EAAG;AACjD,IAAA,eAAA,CAAgB,YAAY,YAAA,IAAgB,QAAA;AAC5C,IAAA,eAAA,CAAgB,SAAA,CAAU,GAAA,CAAI,IAAA,EAAM,GAAA,EAAK,OAAO,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,EAAI,UAAA,IAAc,YAAA,CAAa,oBAAoB,QAAA,IAAA,MAAA,YAA2B;AACnK,IAAA,WAAA,EAAY;AACZ,IAAA,eAAA,CAAgB,KAAA,CAAM,QAAA,GAAW,CAAA,aAAA,EAAgB,kBAAA,CAAmB,CAAC,CAAC,CAAA,GAAA,CAAA;AACtE,IAAA,eAAA,CAAgB,MAAM,SAAA,GAAY,CAAA,UAAA,CAAA;AAAA,EACpC;AAGA,EAAA,IAAI,gBAAA,IAAoB,CAAC,eAAA,CAAgB,SAAA,CAAU,QAAA,CAAS,cAAc,CAAA,EAAG,eAAA,CAAgB,SAAA,CAAU,GAAA,CAAI,cAAc,CAAA;AAEzH,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,aAAA;AAAA,IACT,UAAA;AAAA,IACA,OAAA,EAAS,MAAM,CAAC,CAAC,eAAA,EAAiB;AAAA,GACpC;AACF;ACpaO,IAAM,wBAAA,GAA2B;AAExC,IAAM,oBAAA,GAAuB,CAAC,WAAA,KAAyB,WAAA,GAAc,OAAO,CAAA,GAAI,WAAA,GAAc,OAAO,CAAA,GAAI,WAAA,GAAc,MAAO,CAAA,GAAI,WAAA,GAAc,MAAM,CAAA,GAAI,WAAA,GAAc,MAAM,CAAA,GAAI,WAAA,GAAc,MAAM,CAAA,GAAI,CAAA;AAEnM,SAAS,gBAAA,CAAoB,OAAA,EAAoB,MAAA,EAA4B,YAAA,EAA+BF,UAAAA,EAA8C;AAC/J,EAAA,IAAI,CAAC,OAAA,IAAW,OAAA,CAAQ,MAAA,KAAW,GAAG,OAAO,IAAA;AAC7C,EAAA,MAAM,cAA6B,EAAC;AACpC,EAAA,MAAM,eAAe,kBAAA,EAAmB;AACxC,EAAA,MAAM,cAAA,GAAiB,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACnD,EAAA,MAAM,eAA0B,EAAC;AACjC,EAAA,MAAM,cAAyB,EAAC;AAChC,EAAA,MAAM,OAAA,GAAU,MAAA;AAChB,EAAA,MAAM,gBAAA,GAAmB,gBAAA;AACzB,EAAA,IAAI,eAAA,GAA4C,IAAA;AAChD,EAAA,IAAI,UAAA,GAAa,CAAA;AACjB,EAAA,IAAI,UAAA,GAAa,YAAA,IAAgB,OAAA,CAAQ,CAAC,CAAA;AAC1C,EAAA,IAAI,WAAA,GAAuC,MAAA;AAE3C,EAAA,YAAA,CAAa,YAAY,cAAc,CAAA;AAEvC,EAAA,MAAM,eAAA,GAAkB,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACpD,EAAA,eAAA,CAAgB,SAAA,GAAY,YAAA;AAC5B,EAAA,IAAI,MAAA,EAAQ,MAAA,CAAO,WAAA,CAAY,eAAe,CAAA;AAE9C,EAAA,MAAM,eAAA,GAAgC,CAAC,KAAA,EAAO,OAAA,EAAS,QAAQ,KAAA,KAAU;AACvE,IAAA,IAAI,WAAW,UAAA,EAAY;AAC3B,IAAA,UAAA,GAAa,MAAA;AACb,IAAA,IAAIA,YAAWA,UAAAA,CAAU,KAAA,EAAO,OAAA,EAAS,QAAQ,KAAK,CAAA;AAEtD,IAAA,MAAM,sBAAsB,WAAA,CAAY,IAAA,CAAK,CAAC,IAAA,KAAS,SAAS,MAAM,CAAA;AACtE,IAAA,wBAAA,CAAyB,OAAA,EAAS,YAAA,EAAc,WAAA,EAAa,UAAA,EAAY,UAAU,CAAA;AACnF,IAAA,cAAA,CAAe,eAAA,EAAiB,WAAA,EAAa,YAAA,EAAc,UAAA,EAAY,YAAA,EAAc,WAAA,EAAa,YAAA,EAAc,mBAAA,EAAqB,KAAA,EAAO,mBAAA,EAAqB,OAAA,EAAS,gBAAgB,CAAA;AAAA,EAC5L,CAAA;AACA,EAAA,KAAA,MAAW,MAAA,IAAU,OAAA,EAAS,MAAA,CAAO,OAAA,GAAU,CAAC,KAAA,EAAO,OAAA,EAAS,IAAA,EAAM,KAAA,KAAU,eAAA,CAAgB,KAAA,EAAgB,OAAA,EAAS,MAAM,CAAA;AAE/H,EAAA,MAAM,YAAA,GAAe,CAAC,MAAA,KAAoB;AACxC,IAAA,MAAM,GAAA,GAAM,YAAA,CAAa,MAAA,EAAQ,eAAA,EAAiB,MAAM,KAAK,CAAA;AAC7D,IAAA,IAAI,OAAO,EAAA,EAAI;AACb,MAAA,GAAA,CAAI,YAAA,CAAa,gBAAA,EAAkB,CAAA,SAAA,EAAY,MAAA,CAAO,EAAE,CAAA,CAAE,CAAA;AAC1D,MAAA,GAAA,CAAI,KAAK,MAAA,CAAO,EAAA;AAAA,IAClB;AAEA,IAAA,GAAA,CAAI,SAAA,CAAU,IAAI,IAAI,CAAA;AACtB,IAAA,GAAA,CAAI,MAAM,MAAA,GAAS,WAAA;AAEnB,IAAA,mBAAA,CAAoB,KAAK,UAAU,CAAA;AACnC,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,CAAC,OAAA,EAAsBI,WAAAA,KAA6B;AAC9E,IAAA,MAAM,QAAA,GAAW,OAAA,EAAS,YAAA,CAAa,gBAAgB,CAAA;AACvD,IAAA,MAAM,WAAWA,WAAAA,EAAY,EAAA,IAAM,CAAA,SAAA,EAAYA,WAAAA,EAAY,EAAE,CAAA,CAAA,KAAO,QAAA;AACpE,IAAA,uBAAA,CAAwB,UAAqB,OAAO,CAAA;AACpD,IAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,aAAA,CAAc,yBAAyB,CAAA;AAC5D,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,OAAA,CAAQ,SAAA,CAAU,IAAI,QAAQ,CAAA;AAC9B,MAAA,IAAI,QAAA,CAAS,aAAA,EAAgB,QAAA,CAAS,cAA8B,IAAA,EAAK;AACzE,MAAA,IAAI,MAAM,IAAA,CAAK,YAAA,CAAa,MAAA,EAAQA,WAAAA,CAAW,QAAQ,EAAE,CAAA;AAAA,IAC3D,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,SAAA,CAAU,OAAO,QAAQ,CAAA;AACjC,MAAA,IAAIA,WAAAA,EAAAA;AACF,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,IAAI,QAAA,GAAW,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AACvC,UAAA,IAAI,YAAY,CAAC,QAAA,CAAS,QAAA,CAAS,UAAU,GAAG,QAAA,IAAY,UAAA;AAC5D,UAAA,IAAA,CAAK,YAAA,CAAa,MAAA,EAAQ,QAAA,IAAY,EAAE,CAAA;AAAA,QAC1C;AAAA,MAAA;AAAA,IACJ;AAAA,EACF,CAAA;AACA,EAAA,MAAM,YAAA,GAAe,CAAC,SAAA,KAAuB;AAC3C,IAAA,IAAI,WAAA,cAAyB,MAAA,EAAO;AACpC,IAAA,WAAA,GAAc,aAAA,CAAc,WAAA,EAAa,cAAA,EAAgB,IAAA,EAAM,GAAG,CAAC,CAAA;AAAA,EACrE,CAAA;AACA,EAAA,MAAM,WAAA,GAAc,QAAQ,qBAAA,EAAsB;AAClD,EAAA,MAAM,WAAA,GAAc,WAAA,GAAc,WAAA,CAAY,KAAA,GAAQ,GAAA;AACtD,EAAA,UAAA,GAAa,qBAAqB,WAAW,CAAA;AAC7C,EAAA,wBAAA,CAAyB,OAAA,EAAS,YAAA,EAAc,WAAA,EAAa,UAAA,EAAY,UAAU,CAAA;AACnF,EAAA,cAAA,CAAe,eAAA,EAAiB,WAAA,EAAa,YAAA,EAAc,UAAA,EAAY,YAAA,EAAc,WAAA,EAAa,YAAA,EAAc,mBAAA,EAAqB,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,gBAAgB,CAAA;AAE3K,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,WAAA,GAAc,aAAA,CAAc,WAAA,EAAa,cAAA,EAAgB,IAAA,EAAM,GAAG,CAAC,CAAA;AACnE,IAAA,eAAA,GAAkB,mBAAA,CAAoB,YAAA,EAAc,cAAA,EAAgB,IAAA,EAAM,QAAW,MAAA,EAAW,EAAA,EAAI,MAAA,EAAW,YAAA,EAAc,MAAA,EAAW,KAAA,EAAA,OAAA,cAAyB,MAAA,EAAW,MAAA,EAAW,QAAW,IAAI,CAAA;AACtM,IAAA,eAAA,EAAiB,UAAA,CAAW,OAAO,IAAI,CAAA;AAAA,EACzC;AAEA,EAAA,OAAO,eAAA;AACT;AACO,IAAM,aAAa,CAAC,EAAE,SAAS,YAAA,EAAc,SAAA,EAAAJ,YAAU,KAAiG;AAC7J,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,QAAA,CAAe,EAAE,cAAA,EAAgB,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,CAAA;AAChG,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAwB,IAAI,CAAA;AAChE,EAAA,MAAM,eAAA,GAAkBG,KAAAA,CAAM,MAAA,CAAuB,IAAI,CAAA;AAEzD,EAAAE,UAAU,MAAM;AACd,IAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,MAAA,YAAA,CAAa,OAAO,CAAA;AAEpB,MAAA,MAAM,eAAe,eAAA,CAAgB,OAAA;AACrC,MAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,OAAA,IAAW,OAAA,CAAQ,WAAW,CAAA,EAAG;AAEvD,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAwB,OAAA,EAAS,cAAA,EAAgB,IAAI,CAAA;AAC5E,MAAA,MAAM,UAAA,GAAa,YAAY,cAAc,CAAA;AAC7C,MAAA,MAAM,WAAA,GAAc,aAAa,qBAAA,EAAsB;AACvD,MAAA,MAAM,cAAc,WAAA,CAAY,KAAA;AAChC,MAAA,MAAM,UAAA,GAAa,qBAAqB,WAAW,CAAA;AACnD,MAAA,MAAM,eAA0B,EAAC;AACjC,MAAA,MAAM,cAAyB,EAAC;AAChC,MAAA,MAAM,MAAA,GAAS,OAAO,YAAA,KAAiB,UAAA,GAAc,UAAA,CAAW,IAAA,CAAK,CAAC,GAAA,KAAQ,GAAA,CAAI,EAAA,KAAO,YAAA,EAAc,CAAA,IAAK,WAAW,CAAC,CAAA,GAAM,UAAA,CAAW,IAAA,CAAK,CAAC,GAAA,KAAQ,GAAA,CAAI,EAAA,MAAQ,UAAA,IAAc,YAAA,CAAa,CAAA,IAAK,UAAA,CAAW,CAAC,CAAA;AAC/M,MAAA,wBAAA,CAAyB,UAAA,EAAY,YAAA,EAAc,WAAA,EAAa,MAAA,EAAQ,UAAU,CAAA;AAElF,MAAA,KAAA,MAAW,OAAO,YAAA,EAAc;AAC9B,QAAA,IAAI,UAAU,MAAA,CAAO,EAAA,IAAM,GAAA,CAAI,EAAA,KAAO,OAAO,EAAA,EAAI;AAC/C,UAAA,GAAA,CAAI,QAAA,GAAA,EAAA;AACJ,UAAA,GAAA,CAAI,YAAA,GAAe,iBAAA;AAAA,QACrB,CAAA,UAAW,YAAA,GAAe,UAAA;AAAA,MAC5B;AAEA,MAAA,KAAA,MAAW,GAAA,IAAO,WAAA,EAAa,GAAA,CAAI,YAAA,GAAe,KAAA;AAElD,MAAA,KAAA,MAAW,OAAO,UAAA,EAAY;AAC5B,QAAA,GAAA,CAAI,OAAA,GAAU,CAAC,KAAA,EAAO,OAAA,EAAS,MAAM,KAAA,KAAU;AAC7C,UAAA,IAAI,GAAA,CAAI,OAAO,UAAA,EAAY;AAC3B,UAAA,IAAIL,YAAWA,UAAAA,CAAU,KAAA,EAAO,OAAA,EAAS,KAAK,KAAK,CAAA;AACnD,UAAA,aAAA,CAAc,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA,QAC9B,CAAA;AAAA,MACF;AAEA,MAAA,aAAA,CAAc,EAAE,gBAAgB,YAAA,EAAc,aAAA,EAAe,YAAY,MAAA,GAAS,CAAA,GAAI,WAAA,GAAc,IAAA,EAAM,CAAA;AAAA,IAC5G,GAAG,CAAC,CAAA;AACJ,IAAA,OAAO,MAAM,aAAa,OAAO,CAAA;AAAA,EACnC,CAAA,EAAG,CAAC,OAAA,EAAS,UAAA,EAAYA,UAAS,CAAC,CAAA;AAGnC,EAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,eAAA,EAAiB,WAAU,YAAA,EAClC,QAAA,EAAA;AAAA,IAAA,UAAA,CAAW,cAAA,EAAgB,GAAA,CAAI,CAAC,GAAA,qBAC/BC,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ;AAAA,SACV;AAAA,QAEA,MAAA,EAAQ;AAAA,OAAA;AAAA,MADH,GAAA,CAAI;AAAA,KAGZ,CAAA;AAAA,IAEA,UAAA,CAAW,aAAA,oBACVA,GAAAA,CAAC,OAAA,EAAA,EAAQ,YAAA,EAAa,KAAA,EAAM,IAAA,EAAA,qBAAA,4BAAkC,QAAA,EAAA,EAAA,eAA6B,gBAAA,EAAiB,KAAA,EAAM,EAAA,EAAI,0BACpH,QAAA,kBAAAA,GAAAA,CAAC,eAAA,EAAA,EAAgB,cAAA,EAAgB,CAAA,EAAG,iBAAA,EAAmB,KAAA,EAAO,cAAA,EAAgB,wBAAA,EAA0B,QAAA,EAAA,OAAA,cACtG,QAAA,kBAAAA,GAAAA,CAAC,OAAA,EAAA,EAAQ,OAAA,EAAS,UAAA,CAAW,aAAA,EAAe,GAC9C,CAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;;;ACtJO,IAAM,wBAAA,GAAA,KAAA;AACN,IAAM,cAAA,GAAiB;AACvB,IAAM,yBAAA,GAA4B;AAClC,IAAM,qBAAA,GAAwB;AAE9B,IAAM,cAAA,GAAiB;AAEvB,IAAK,iBAAA,qBAAAI,kBAAAA,KAAL;AACL,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,aAAU,CAAA,CAAA,GAAV,SAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,kBAAe,CAAA,CAAA,GAAf,cAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,eAAY,CAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,kBAAAA,CAAAA,kBAAAA,CAAA,cAAW,CAAA,CAAA,GAAX,UAAA;AALU,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAOL,IAAK,OAAA,qBAAAC,QAAAA,KAAL;AACL,EAAAA,SAAA,UAAA,CAAA,GAAW,kCAAA;AACX,EAAAA,SAAA,UAAA,CAAA,GAAW,qBAAA;AACX,EAAAA,SAAA,eAAA,CAAA,GAAgB,aAAA;AAEhB,EAAAA,SAAA,oBAAA,CAAA,GAAqB,gBAAA;AACrB,EAAAA,SAAA,OAAA,CAAA,GAAQ,mDAAA;AAER,EAAAA,SAAA,YAAA,CAAA,GAAa,oDAAA;AACb,EAAAA,SAAA,eAAA,CAAA,GAAgB,iFAAA;AAChB,EAAAA,SAAA,UAAA,CAAA,GAAW,2EAAA;AACX,EAAAA,SAAA,sBAAA,CAAA,GAAuB,4FAAA;AACvB,EAAAA,SAAA,aAAA,CAAA,GAAc,kBAAA;AACd,EAAAA,SAAA,cAAA,CAAA,GAAe,iEAAA;AAbL,EAAA,OAAAA,QAAAA;AAAA,CAAA,EAAA,OAAA,IAAA,EAAA;AAeL,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACL,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,aAAU,CAAA,CAAA,GAAV,SAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,cAAW,CAAA,CAAA,GAAX,UAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,gBAAa,EAAA,CAAA,GAAb,YAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,gBAAa,EAAA,CAAA,GAAb,YAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,gBAAa,EAAA,CAAA,GAAb,YAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,oBAAiB,EAAA,CAAA,GAAjB,gBAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,qBAAkB,EAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,yBAAsB,EAAA,CAAA,GAAtB,qBAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,qBAAkB,EAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,oBAAiB,EAAA,CAAA,GAAjB,gBAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,cAAW,EAAA,CAAA,GAAX,UAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,cAAW,EAAA,CAAA,GAAX,UAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,gBAAa,EAAA,CAAA,GAAb,YAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,YAAS,EAAA,CAAA,GAAT,QAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,iBAAc,EAAA,CAAA,GAAd,aAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,eAAY,EAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,WAAQ,EAAA,CAAA,GAAR,OAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,YAAS,EAAA,CAAA,GAAT,QAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,gBAAa,GAAA,CAAA,GAAb,YAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,iBAAc,GAAA,CAAA,GAAd,aAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,eAAY,GAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,kBAAe,GAAA,CAAA,GAAf,cAAA;AAtBU,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AAiJL,IAAM,QAAA,GAAW;AAAA,EACtB,MAAM,CAAC,MAAA,EAAqC,kBAA6C,SAAA,EAAgC,YAAA,EAAoB,OAAgB,aAAA,MAAoC,EAAE,MAAA,EAAQ,SAAA,EAAW,OAAO,KAAA,IAAS,CAAA,EAAG,eAAe,aAAA,IAAiB,KAAA,EAAO,kBAAkB,YAAA,EAAa;AACjT;AACO,IAAM,SAAA,GAAY;AAAA,EACvB,IAAA,EAAM,CAAC,IAAA,EAAc,QAAA,EAAwB,SAAuB,OAAA,EAAyB,IAAA,EAAwB,UAAA,EAAgCR,UAAAA,EAA+B,YAAA,MAAkD;AAAA,IACpO,IAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA,EAAWA,UAAAA;AAAA,IACX;AAAA,GACF,CAAA;AAAA,EACA,OAAA,EAAS,CAAC,EAAA,EAAY,UAAA,EAAoB,cAAsB,KAAA,EAAqB,WAAA,EAA2B,cAA4B,SAAA,EAAyB,SAAA,EAAyB,UAAyB,UAAA,EAA2B,UAAA,EAA2B,gBAA+B,YAAA,EAA4B,UAAA,EAAgC,YAA0B,SAAA,EAAyB,IAAA,EAAwB,cAA4B,SAAA,MAAoE;AAAA,IACjhB,EAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAY,UAAA,IAAc,yBAAA;AAAA,IAC1B,SAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAa,SAAA,KAAc,MAAA,IAAa,SAAA,KAAc,IAAA,IAAQ,YAAY,CAAA,KAAM,KAAA;AAAA,IAChF,SAAA,EAAW,CAAA;AAAA,IACX,YAAA,EAAc,cAAA,KAAmB,KAAA,GAAQ,MAAA,GAAY;AAAA,GACvD,CAAA;AAAA,EACA,QAAA,EAAU,CAAC,EAAA,EAAY,UAAA,EAAoB,cAAsB,KAAA,EAAqB,WAAA,EAA2B,cAA4B,SAAA,EAAyB,SAAA,EAAyB,MAAoB,aAAA,EAA8B,YAAA,EAA4B,UAAyB,UAAA,EAA2B,cAAA,EAA+B,YAAgC,UAAA,EAA0B,SAAA,EAAyB,IAAA,EAAwB,YAAA,EAA4B,SAAA,MAAqE;AAAA,IAC1iB,EAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAA;AAAA,IACA,MAAM,IAAA,IAAQ,qBAAA;AAAA,IACd,QAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAY,UAAA,IAAc,yBAAA;AAAA,IAC1B,SAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAa,SAAA,KAAc,MAAA,IAAa,SAAA,KAAc,IAAA,IAAQ,YAAY,CAAA,KAAM,KAAA;AAAA,IAChF,SAAA,EAAW,CAAA;AAAA,IACX,YAAA,EAAc,cAAA,KAAmB,KAAA,GAAQ,MAAA,GAAY;AAAA,GACvD,CAAA;AAAA,EACA,MAAA,EAAQ,CAAC,EAAA,EAAY,UAAA,EAAoB,cAAsB,KAAA,EAAqB,WAAA,EAA2B,cAA4B,aAAA,EAA6B,YAAA,EAA6B,MAA6B,SAAA,EAAyB,SAAA,EAAyB,cAA4B,cAAA,EAA+B,UAAA,EAAgC,YAA0B,SAAA,EAAyB,IAAA,EAAwB,UAAA,EAA2B,YAAA,EAA4B,SAAA,MAAmE;AAAA,IACljB,EAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAY,UAAA,IAAc,yBAAA;AAAA,IAC1B,SAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAa,SAAA,KAAc,MAAA,IAAa,SAAA,KAAc,IAAA,IAAQ,YAAY,CAAA,KAAM,KAAA;AAAA,IAChF,SAAA,EAAW,EAAA;AAAA,IACX,YAAA,EAAc,cAAA,KAAmB,KAAA,GAAQ,MAAA,GAAY;AAAA,GACvD,CAAA;AAAA,EAEA,UAAU,CAAC,EAAA,EAAY,UAAA,EAAoB,YAAA,EAAsB,OAAqB,YAAA,EAA6B,OAAA,EAAuB,YAAA,EAAyB,cAAA,EAA+B,YAAgC,UAAA,EAA0B,SAAA,EAAyB,MAAwB,UAAA,EAA2B,UAAA,EAA2B,cAA4B,SAAA,MAA4E;AAAA,IACzc,EAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAY,UAAA,IAAc,CAAA;AAAA,IAC1B,SAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAY,UAAA,IAAc,KAAA;AAAA,IAC1B,SAAA,EAAW,EAAA;AAAA,IACX,YAAA,EAAc,cAAA,KAAmB,KAAA,GAAQ,MAAA,GAAY;AAAA,GACvD,CAAA;AAAA,EACA,UAAU,CAAC,EAAA,EAAY,UAAA,EAAoB,YAAA,EAAsB,OAAqB,YAAA,EAA6B,OAAA,EAAuB,YAAA,EAAyB,cAAA,EAA+B,YAAgC,UAAA,EAA0B,SAAA,EAAyB,MAAwB,UAAA,EAA2B,UAAA,EAA2B,cAA4B,SAAA,MAA4E;AAAA,IACzc,EAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAY,UAAA,IAAc,CAAA;AAAA,IAC1B,SAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAY,UAAA,IAAc,KAAA;AAAA,IAC1B,SAAA,EAAW,EAAA;AAAA,IACX,YAAA,EAAc,cAAA,KAAmB,KAAA,GAAQ,MAAA,GAAY;AAAA,GACvD,CAAA;AAAA,EACA,YAAY,CAAC,EAAA,EAAY,UAAA,EAAoB,YAAA,EAAsB,MAAc,KAAA,EAAqBA,UAAAA,EAA+B,MAAA,EAA6B,YAAA,EAA6B,SAAyB,QAAA,EAAgC,MAAA,EAAwB,UAAA,EAAgC,UAAA,EAA0B,WAAyB,YAAA,MAA6C;AAAA,IAC9Y,EAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA,EAAWA,UAAAA;AAAA,IACX,MAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAY,UAAA,IAAc,CAAA;AAAA,IAC1B,SAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA,EAAW,GAAA;AAAA,GACb,CAAA;AAAA,EACA,MAAA,EAAQ,CAEN,EAAA,EACA,UAAA,EACA,YAAA,EACA,KAAA,EACAA,UAAAA,EACA,IAAA,EACA,MAAA,EACA,UAAA,EACA,UAAA,EACA,SAAA,EACA,cACA,IAAA,MACmB;AAAA,IACnB,EAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA,EAAWA,UAAAA;AAAA,IACX,MAAA;AAAA,IACA,UAAA,EAAY,UAAA,IAAA,MAAA;AAAA,IACZ,YAAY,UAAA,IAAc,yBAAA;AAAA,IAC1B,SAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA,EAAW,GAAA;AAAA,IACX;AAAA,GACF;AACF;;;ACnWO,IAAM,YAAA,GAAe,CAAC,SAAA,KAA8B;AACzD,EAAA,IAAI,WAAW,OAAO,SAAA,CAAU,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AAC5C,EAAA,OAAO,MAAA;AACT;AACO,IAAM,UAAA,GAAa,CAAC,KAAA,KAAqC,KAAA,CAAM,GAAG,KAAA,CAAM,GAAG,EAAE,CAAC;AAC9E,IAAM,eAAA,GAAkB,CAAC,IAAA,EAAoB,GAAA,KAAsB,aAAa,IAAA,IAAQ,EAAE,CAAA,CAAA,EAAI,GAAA,IAAO,EAAE,CAAA;AACvG,IAAM,iBAAA,GAAoB,CAAC,KAAA,EAAoB,WAAA,KAAyB;AAC7E,EAAA,IAAI,CAAC,KAAA,EAAO;AACZ,EAAA,KAAA,CAAM,SAAA,CAAU,MAAA,CAAO,MAAA,EAAQ,WAAW,CAAA;AAC5C;AACO,IAAM,iBAAiB,CAAC,MAAA,EAAoC,IAAA,EAAqB,KAAA,EAAmB,SAAuB,eAAA,KAAmC;AACnK,EAAA,IAAI,CAAC,MAAA,IAAU,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG;AACpC,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ,IAAI,CAAC,IAAA,IAAQ,IAAA,CAAK,WAAW,CAAA,IAAK,IAAA,CAAK,SAAS,UAAA,CAAW,KAAA,CAAM,KAAK,CAAC,CAAA,gBAAiB,KAAA,EAAO,KAAA,EAAO,SAAS,eAAe,CAAA;AAC5J;AACO,IAAM,aAAA,GAAgB,CAAC,KAAA,EAAoC,KAAA,EAAoB,SAAuB,eAAA,KAAmC;AAC9I,EAAA,MAAM,YAAA,GAAe,WAAW,MAAM;AACpC,IAAA,KAAA,EAAO,uBAAA,IAA2B,KAAA,CAAM,uBAAA,CAAwB,KAAA,EAAA,CAAA,qBAAuC,eAAe,CAAA;AACtH,IAAA,YAAA,CAAa,YAAY,CAAA;AAAA,EAC3B,CAAA,EAAG,WAAW,CAAC,CAAA;AACjB;;;ACnBO,IAAM,cAAA,GAAiB,CAAC,KAAA,EAAkC,KAAA,EAA2B,QAA4B,SAAA,KAAuB;AAC7I,EAAA,MAAM,EAAA,GAAK,MAAM,UAAA,IAAc,KAAA;AAE/B,EAAA,MAAM,WAAA,GAAc,MAAM,UAAA,IAAc,yBAAA;AAExC,EAAA,MAAM,MAAA,GAAS,WAAA,GAAc,CAAA,GAAI,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,GAAK,MAAA;AACrD,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACxC,EAAA,GAAA,CAAI,SAAA,GAAY,UAAU,KAAA,CAAM,SAAA,IAAa,EAAE,CAAA,YAAA,EAAe,MAAM,SAAS,EAAE,CAAA,CAAA;AAC/E,EAAA,IAAI,KAAA,EAAO,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA;AAEhC,EAAA,IAAI,KAAA,CAAM,KAAA,IAAS,CAAC,SAAA,EAAW;AAC7B,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,IAAA,KAAA,CAAM,SAAA,GAAY,kCAAA;AAClB,IAAA,KAAA,CAAM,YAAY,KAAA,CAAM,KAAA,IAAU,MAAc,UAAA,GAAa,CAAA,6BAAA,EAAgC,cAAc,CAAA,OAAA,CAAA,GAAY,EAAA,CAAA;AACvH,IAAA,KAAA,CAAM,UAAU,KAAA,CAAM,EAAA;AACtB,IAAA,GAAA,CAAI,YAAY,KAAK,CAAA;AAAA,EACvB;AAEA,EAAA,IAAI,MAAM,IAAA,EAAM;AACd,IAAA,GAAA,CAAI,SAAA,CAAU,GAAA,CAAI,IAAA,EAAM,IAAI,CAAA;AAC5B,IAAA,MAAMS,KAAI,KAAA,CAAM,IAAA;AAChB,IAAA,aAAA,CAAcA,EAAAA,CAAE,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,MAAMA,EAAAA,CAAE,IAAA,EAAMA,EAAAA,CAAE,UAAA,IAAc,KAAA,CAAM,UAAA,IAAA,eAAA,aAAiCA,EAAAA,CAAE,OAAA,EAASA,GAAE,QAAA,EAAU,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAMA,EAAAA,CAAE,OAAA,EAAS,IAAA,EAAM,MAAM,IAAA,EAAM,IAAA,EAAMA,EAAAA,CAAE,SAAA,EAAWA,GAAE,YAAA,EAAA,CAAeA,EAAAA,CAAE,SAAA,IAAaA,EAAAA,CAAE,kBAAkB,MAAS,CAAA;AAAA,EACpQ;AAEA,EAAA,IAAI,MAAA,EAAQ,MAAA,CAAO,WAAA,CAAY,GAAG,CAAA;AAClC,EAAA,OAAO,GAAA;AACT;AACO,IAAM,kBAAA,GAAqB,CAAC,KAAA,EAAkC,KAAA,EAA2B,MAAA,KAA+B;AAC7H,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACxC,EAAA,MAAM,EAAA,GAAK,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACvC,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACxC,EAAA,GAAA,CAAI,SAAA,GAAY,CAAC,KAAA,CAAM,UAAA,IAAc,KAAA,CAAM,eAAe,EAAA,GAAK,QAAA,GAAW,CAAA,IAAA,EAAO,KAAA,CAAM,UAAU,CAAA,CAAA;AACjG,EAAA,IAAI,MAAM,gBAAA,KAAqB,KAAA,EAAO,GAAA,CAAI,SAAA,CAAU,IAAI,WAAW,CAAA;AACnE,EAAA,EAAA,CAAG,SAAA,GAAY,QAAA;AACf,EAAA,GAAA,CAAI,SAAA,GAAY,KAAA;AAChB,EAAA,IAAI,KAAA,EAAO,EAAA,CAAG,WAAA,CAAY,KAAK,CAAA;AAC/B,EAAA,EAAA,CAAG,YAAY,GAAG,CAAA;AAClB,EAAA,GAAA,CAAI,YAAY,EAAE,CAAA;AAClB,EAAA,IAAI,MAAA,EAAQ,MAAA,CAAO,WAAA,CAAY,GAAG,CAAA;AAClC,EAAA,OAAO,EAAA;AACT;;;ACnCO,IAAM,aAAA,GAAgB,CAAC,KAAA,EAAiB,aAAA,EAAmC,SAAA,KAA4C;AAC5H,EAAA,MAAM,UAAA,GAAa,WAAW,KAAK,CAAA;AACnC,EAAA,MAAM,GAAA,GAAM,cAAA,CAAe,KAAA,EAAO,IAAA,EAAM,MAAM,SAAS,CAAA;AACvD,EAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,aAAA,CAAc,OAAO,CAAA;AACvC,EAAA,IAAI,KAAA,QAAa,MAAA,EAAO;AACxB,EAAA,MAAM,UAAU,SAAA,GAAY,GAAA,GAAM,kBAAA,CAAmB,KAAA,EAAO,KAAK,aAAa,CAAA;AAE9E,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,YAAA,EAAc,GAAA;AAAA,IACd,WAAA,EAAa,OAAA;AAAA,IACb,uBAAA,EAAyB,IAAA;AAAA,IACzB,OAAA,EAAS,SAAU,eAAA,EAA2B;AAC5C,MAAA,IAAI,eAAA,KAAoB,KAAA,EAAO,KAAA,CAAM,MAAA,GAAS,IAAA,EAAM,MAAM,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,UAAA,EAAY,CAAC,CAAA;AAC3F,MAAA,GAAA,CAAI,MAAA,EAAO;AACX,MAAA,OAAA,CAAQ,MAAA,EAAO;AAAA,IACjB;AAAA,GACF;AACF;AAEO,IAAM,eAAA,GAAkB,CAAC,KAAA,EAAoB,aAAA,EAAmC,SAAA,KAA4C;AACjI,EAAA,MAAM,aAAA,GAAgB,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,SAAS,CAAA;AACnE,EAAA,MAAM,MAAM,aAAA,CAAc,YAAA;AAC1B,EAAA,GAAA,CAAI,SAAA,CAAU,GAAA,CAAI,MAAA,EAAQ,IAAA,EAAM,MAAM,SAAS,CAAA;AAC/C,EAAA,GAAA,CAAI,SAAA,CAAU,OAAO,QAAQ,CAAA;AAC7B,EAAA,MAAM,IAAA,GAAO,iBAAiB,GAAA,EAAK,KAAA,CAAM,MAAM,KAAA,CAAM,KAAA,IAAS,cAAc,KAAA,CAAM,SAAA,EAAW,MAAM,YAAA,EAAc,IAAA,EAAM,MAAM,YAAA,EAAc,KAAA,CAAM,YAAY,KAAA,CAAM,MAAA,EAAQ,MAAM,QAAQ,CAAA;AAEzL,EAAA,IAAA,CAAK,SAAA,CAAU,IAAI,MAAM,CAAA;AAEzB,EAAA,GAAA,CAAI,YAAY,IAAI,CAAA;AACpB,EAAA,OAAO,aAAA;AACT;AACO,IAAM,iBAAA,GAAoB,CAAC,KAAA,EAAsB,aAAA,EAAmC,SAAA,KAA4C;AACrI,EAAA,MAAM,YAAY,KAAA,CAAM,IAAA;AACxB,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,EAAA,KAAA,CAAM,IAAA,GAAO,MAAA;AACb,EAAA,MAAM,aAAA,GAAgB,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,SAAS,CAAA;AACnE,EAAA,MAAM,MAAM,aAAA,CAAc,YAAA;AAC1B,EAAA,GAAA,CAAI,YAAY,MAAM,CAAA;AACtB,EAAA,GAAA,CAAI,SAAA,CAAU,IAAI,GAAG,CAAA;AACrB,EAAA,MAAA,CAAO,OAAO,KAAA,CAAM,IAAA,IAAA,QAAA;AAEpB,EAAA,MAAA,CAAO,SAAA,CAAU,GAAA,CAAI,GAAA,EAAK,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,GAAA,EAAK,KAAA,CAAM,UAAA,IAAA,MAAA,oBAAuC;AAC3H,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,WAAA,IAAe,KAAA,CAAM,KAAA,IAAS,QAAA;AAElD,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,MAAM,IAAA,GAAO,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC1C,IAAA,IAAA,CAAK,WAAA,GAAc,KAAA;AACnB,IAAA,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,IAAA,EAAM,KAAA,EAAO,SAAS,QAAQ,CAAA;AACjD,IAAA,MAAM,IAAA,GAAO,aAAA,CAAc,SAAA,CAAU,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,SAAA,CAAU,IAAA,IAAA,EAAA,eAA2B,SAAA,CAAU,UAAA,IAAc,KAAA,CAAM,0CAAiC,SAAA,CAAU,OAAA,EAAS,SAAA,CAAU,QAAA,EAAU,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,CAAU,OAAA,EAAS,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,SAAA,CAAU,SAAA,EAAW,UAAU,YAAY,CAAA;AACxT,IAAA,IAAA,CAAK,SAAA,CAAU,IAAI,KAAK,CAAA;AACxB,IAAA,MAAA,CAAO,YAAY,IAAI,CAAA;AAAA,EACzB,CAAA,aAAc,SAAA,GAAY,KAAA;AAE1B,EAAA,OAAO,aAAA;AACT;;;AC1DA,SAAS,iBAAiB,KAAA,EAAwB;AAChD,EAAA,MAAM,KAAK,KAAA,CAAM,aAAA;AACjB,EAAA,IAAI,OAAO,MAAA,IAAa,EAAA,KAAO,IAAA,IAAQ,EAAA,GAAK,GAAG,OAAO,CAAA;AACtD,EAAA,OAAO,IAAA,CAAK,MAAM,EAAE,CAAA;AACtB;AAEA,SAAS,oBAAA,CAAqB,OAAe,aAAA,EAA+B;AAC1E,EAAA,IAAI,aAAA,IAAiB,CAAA,EAAG,OAAO,IAAA,CAAK,MAAM,KAAK,CAAA;AAC/C,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,aAAa,CAAA;AACzC,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,MAAM,CAAA,GAAI,MAAA;AACtC;AAEA,SAAS,YAAY,GAAA,EAA4B;AAC/C,EAAA,MAAM,OAAA,GAAU,IAAI,IAAA,EAAK;AACzB,EAAA,IAAI,OAAA,KAAY,IAAI,OAAO,IAAA;AAC3B,EAAA,MAAM,MAAA,GAAS,OAAO,OAAO,CAAA;AAC7B,EAAA,OAAO,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,GAAI,MAAA,GAAS,IAAA;AAC5C;AAEA,SAAS,YAAY,KAAA,EAAe,GAAA,EAAa,KAAA,EAAgB,aAAA,EAAuB,aAAa,KAAA,EAAe;AAClH,EAAA,IAAI,MAAA,GAAS,oBAAA,CAAqB,KAAA,EAAO,aAAa,CAAA;AACtD,EAAA,IAAI,CAAC,KAAA,CAAM,YAAA,EAAc,OAAO,MAAA;AAEhC,EAAA,MAAM,WAAA,GAAc,GAAA,CAAI,IAAA,EAAK,CAAE,MAAA;AAE/B,EAAA,IAAI,KAAA,CAAM,SAAA,KAAc,MAAA,IAAa,KAAA,CAAM,cAAc,IAAA,EAAM;AAC7D,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA,CAAE,MAAA;AAC1C,IAAA,IAAA,CAAK,cAAc,WAAA,IAAe,SAAA,KAAc,SAAS,KAAA,CAAM,SAAA,WAAoB,KAAA,CAAM,SAAA;AAAA,EAC3F;AACA,EAAA,IAAI,KAAA,CAAM,SAAA,KAAc,MAAA,IAAa,KAAA,CAAM,cAAc,IAAA,EAAM;AAC7D,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA,CAAE,MAAA;AAC1C,IAAA,IAAA,CAAK,cAAc,WAAA,IAAe,SAAA,KAAc,SAAS,KAAA,CAAM,SAAA,WAAoB,KAAA,CAAM,SAAA;AAAA,EAC3F;AACA,EAAA,OAAO,MAAA;AACT;AAEO,IAAM,YAAA,GAAe,CAAC,KAAA,EAAgB,aAAA,EAAmC,YAAqB,KAAA,KAAU;AAC7G,EAAA,MAAM,UAAA,GAAa,WAAW,KAAK,CAAA;AACnC,EAAA,MAAM,cAAA,GAAiB,CAAC,aAAA,CAAc,KAAA,CAAM,WAAW,CAAA;AACvD,EAAA,MAAM,aAAA,GAAgB,iBAAiB,KAAK,CAAA;AAE5C,EAAA,MAAM,KAAA,GAAQ,YAAY,KAAK,CAAA;AAC/B,EAAA,MAAM,GAAA,GAAM,cAAA,CAAe,KAAA,EAAO,KAAA,EAAO,MAAM,SAAS,CAAA;AACxD,EAAA,MAAM,UAAU,SAAA,GAAY,GAAA,GAAM,kBAAA,CAAmB,KAAA,EAAO,KAAK,aAAa,CAAA;AAE9E,EAAA,SAAS,aAAA,CAAc,GAAA,EAAgC,MAAA,EAAiB,QAAA,EAAmB,UAAA,EAAqB;AAC9G,IAAA,KAAA,CAAM,YAAY,GAAA,IAAO,IAAA,EAAM,QAAQ,QAAA,EAAU,UAAA,EAAY,YAAY,MAAS,CAAA;AAClF,IAAA,iBAAA,CAAkB,KAAA,EAAQ,GAAA,KAAQ,MAAA,IAAa,GAAA,KAAQ,QAAS,cAAc,CAAA;AAAA,EAChF;AAEA,EAAA,SAASC,yBAAwB,YAAA,EAAsC;AACrE,IAAA,IAAI,YAAA,KAAiB,IAAA,IAAQ,YAAA,KAAiB,MAAA,EAAW;AACvD,MAAA,KAAA,CAAM,KAAA,GAAQ,EAAA;AACd,MAAA,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,KAAK,CAAA;AACtC,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,MAAM,QAAA,GAAW,YAAY,YAAA,EAAc,YAAA,CAAa,UAAS,EAAG,KAAA,EAAO,eAAe,IAAI,CAAA;AAC9F,IAAA,KAAA,CAAM,KAAA,GAAQ,SAAS,QAAA,EAAS;AAChC,IAAA,aAAA,CAAc,QAAA,EAAU,KAAA,EAAO,IAAA,EAAM,KAAK,CAAA;AAC1C,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,SAAS,cAAA,GAAiB;AACxB,IAAA,IAAI,MAAM,YAAA,EAAc;AACxB,IAAA,MAAM,MAAA,GAAS,WAAA,CAAY,KAAA,CAAM,KAAK,CAAA;AACtC,IAAA,aAAA,CAAc,MAAA,EAAQ,KAAA,EAAO,KAAA,EAAO,KAAK,CAAA;AAAA,EAC3C;AAEA,EAAA,SAAS,MAAA,GAAS;AAChB,IAAA,IAAI,CAAC,MAAM,YAAA,EAAc;AACzB,IAAA,MAAM,MAAM,KAAA,CAAM,KAAA;AAClB,IAAA,MAAM,MAAA,GAAS,YAAY,GAAG,CAAA;AAC9B,IAAA,IAAI,WAAW,IAAA,EAAM;AACnB,MAAA,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,KAAK,CAAA;AACvC,MAAA;AAAA,IACF;AACA,IAAA,MAAM,WAAW,WAAA,CAAY,MAAA,EAAQ,GAAA,EAAK,KAAA,EAAO,eAAe,IAAI,CAAA;AACpE,IAAA,KAAA,CAAM,KAAA,GAAQ,SAAS,QAAA,EAAS;AAChC,IAAA,aAAA,CAAc,QAAA,EAAU,KAAA,EAAO,KAAA,EAAO,KAAK,CAAA;AAAA,EAC7C;AAEA,EAAA,IAAI,CAAC,KAAA,CAAM,YAAA,EAAc,KAAA,CAAM,gBAAA,CAAiB,SAAS,cAAc,CAAA;AACvE,EAAA,IAAI,KAAA,CAAM,YAAA,EAAc,KAAA,CAAM,gBAAA,CAAiB,QAAQ,MAAM,CAAA;AAG7D,EAAA,aAAA,CAAc,KAAA,CAAM,YAAA,IAAgB,IAAA,EAAM,IAAA,EAAM,OAAO,KAAK,CAAA;AAE5D,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,YAAA,EAAc,KAAA;AAAA,IACd,WAAA,EAAa,OAAA;AAAA,IACb,uBAAA,EAAyBA,wBAAAA;AAAA,IACzB,OAAA,EAAS,SAAU,eAAA,EAA2B;AAC5C,MAAA,IAAI,oBAAoB,KAAA,EAAO,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,MAAM,IAAI,CAAA;AACpE,MAAA,KAAA,CAAM,mBAAA,CAAoB,SAAS,cAAc,CAAA;AACjD,MAAA,KAAA,CAAM,mBAAA,CAAoB,QAAQ,MAAM,CAAA;AACxC,MAAA,KAAA,CAAM,MAAA,EAAO;AACb,MAAA,GAAA,CAAI,MAAA,EAAO;AACX,MAAA,OAAA,CAAQ,MAAA,EAAO;AAAA,IACjB;AAAA,GACF;AACF;;;ACtGO,IAAM,iBAAiB,CAAC,KAAA,EAAkB,aAAA,EAAmC,SAAA,EAAoB,aAAsB,KAAA,KAAU;AACtI,EAAA,MAAM,KAAA,GAAQ,YAAY,KAAK,CAAA;AAC/B,EAAA,MAAM,UAAA,GAAa,WAAW,KAAK,CAAA;AAEnC,EAAA,KAAA,CAAM,SAAA,CAAU,IAAI,IAAI,CAAA;AACxB,EAAA,KAAA,CAAM,SAAA,CAAU,OAAO,KAAK,CAAA;AAC5B,EAAA,KAAA,CAAM,cAAA,GAAiB,MAAM,YAAA,IAAgB,KAAA;AAC7C,EAAA,KAAA,CAAM,IAAA,GAAO,OAAA;AACb,EAAA,IAAI,UAAA,EAAY,KAAA,CAAM,SAAA,CAAU,GAAA,CAAI,UAAU,CAAA;AAE9C,EAAA,MAAM,GAAA,GAAM,cAAA,CAAe,KAAA,EAAO,KAAA,EAAO,MAAM,SAAS,CAAA;AACxD,EAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,aAAA,CAAc,OAAO,CAAA;AACvC,EAAA,IAAI,KAAA,QAAa,SAAA,GAAY,eAAA;AAC7B,EAAA,MAAM,UAAU,SAAA,GAAY,GAAA,GAAM,kBAAA,CAAmB,KAAA,EAAO,KAAK,aAAa,CAAA;AAE9E,EAAA,GAAA,CAAI,SAAA,CAAU,GAAA,CAAI,IAAA,EAAM,IAAA,EAAM,OAAO,SAAS,CAAA;AAC9C,EAAA,GAAA,CAAI,SAAA,CAAU,OAAO,QAAQ,CAAA;AAE7B,EAAA,SAAS,aAAA,CAAc,GAAA,EAAc,MAAA,EAAiB,QAAA,EAAmB,UAAA,EAAqB;AAC5F,IAAA,IAAI,CAAC,GAAA,EAAK;AAEV,IAAA,KAAA,CAAM,YAAY,KAAA,CAAM,YAAA,EAAc,QAAQ,QAAA,EAAU,UAAA,EAAY,YAAY,MAAS,CAAA;AAAA,EAC3F;AACA,EAAA,SAASA,yBAAwB,YAAA,EAAgC;AAC/D,IAAA,KAAA,CAAM,KAAA,GAAQ,aAAa,QAAA,EAAS;AACpC,IAAA,aAAA,CAAc,YAAA,EAAc,KAAA,EAAO,IAAA,EAAM,KAAK,CAAA;AAC9C,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,SAAS,eAAe,CAAA,EAAU;AAChC,IAAA,aAAA,CAAc,KAAA,CAAM,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,KAAK,CAAA;AAAA,EAClD;AACA,EAAA,KAAA,CAAM,gBAAA,CAAiB,SAAS,cAAc,CAAA;AAC9C,EAAA,iBAAA,CAAkB,OAAO,IAAI,CAAA;AAC7B,EAAA,aAAA,CAAc,KAAA,CAAM,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO,KAAK,CAAA;AAC/C,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,YAAA,EAAc,KAAA;AAAA,IACd,WAAA,EAAa,OAAA;AAAA,IACb,uBAAA,EAAyBA,wBAAAA;AAAA,IACzB,OAAA,EAAS,SAAU,eAAA,EAA2B;AAC5C,MAAA,IAAI,eAAA,KAAoB,OAAO,aAAA,CAAc,KAAA,CAAM,gBAAgB,KAAA,EAAO,KAAA,EAAO,MAAM,IAAI,CAAA;AAC3F,MAAA,KAAA,CAAM,mBAAA,CAAoB,SAAS,cAAc,CAAA;AACjD,MAAA,KAAA,CAAM,MAAA,EAAO;AACb,MAAA,GAAA,CAAI,MAAA,EAAO;AACX,MAAA,OAAA,CAAQ,MAAA,EAAO;AAAA,IACjB;AAAA,GACF;AACF;;;AC9CO,IAAM,cAAA,GAAiB,CAAC,KAAA,EAAkB,aAAA,EAAmC,YAAqB,KAAA,KAAU;AACjH,EAAA,MAAM,UAAA,GAAa,WAAW,KAAK,CAAA;AACnC,EAAA,MAAM,cAAA,GAAiB,CAAC,aAAA,CAAc,KAAA,CAAM,WAAW,CAAA;AAEvD,EAAA,MAAM,KAAA,GAAQ,YAAY,KAAK,CAAA;AAC/B,EAAA,MAAM,GAAA,GAAM,cAAA,CAAe,KAAA,EAAO,KAAA,EAAO,MAAM,SAAS,CAAA;AACxD,EAAA,MAAM,UAAU,SAAA,GAAY,GAAA,GAAM,kBAAA,CAAmB,KAAA,EAAO,KAAK,aAAa,CAAA;AAE9E,EAAA,GAAA,CAAI,SAAA,CAAU,IAAI,cAAc,CAAA;AAEhC,EAAA,SAAS,aAAA,CAAc,GAAA,EAAgC,MAAA,EAAiB,QAAA,EAAmB,UAAA,EAAqB;AAC9G,IAAA,MAAM,KAAA,GAAQ,GAAA,EAAK,IAAA,EAAK,IAAK,IAAA;AAC7B,IAAA,MAAM,aAAA,GAAgB,cAAc,KAAK,CAAA;AACzC,IAAA,KAAA,CAAM,SAAA,GAAY,gBAAgB,IAAA,GAAO,KAAA,EAAO,QAAQ,QAAA,EAAU,UAAA,EAAY,YAAY,MAAS,CAAA;AACnG,IAAA,iBAAA,CAAkB,KAAA,EAAO,CAAC,aAAA,IAAiB,cAAc,CAAA;AAAA,EAC3D;AAEA,EAAA,SAASA,yBAAwB,YAAA,EAAsC;AACrE,IAAA,KAAA,CAAM,QAAQ,YAAA,IAAgB,EAAA;AAC9B,IAAA,aAAA,CAAc,YAAA,EAAc,KAAA,EAAO,IAAA,EAAM,KAAK,CAAA;AAC9C,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,SAAS,eAAe,CAAA,EAAU;AAChC,IAAA,aAAA,CAAe,CAAA,CAAE,aAAA,CAAmC,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AAAA,EAChF;AACA,EAAA,KAAA,CAAM,gBAAA,CAAiB,SAAS,cAAc,CAAA;AAC9C,EAAA,aAAA,CAAc,KAAA,CAAM,YAAA,EAAc,IAAA,EAAM,KAAA,EAAO,KAAK,CAAA;AACpD,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,YAAA,EAAc,KAAA;AAAA,IACd,WAAA,EAAa,OAAA;AAAA,IACb,uBAAA,EAAyBA,wBAAAA;AAAA,IACzB,OAAA,EAAS,SAAU,eAAA,EAA2B;AAC5C,MAAA,IAAI,oBAAoB,KAAA,EAAO,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,MAAM,IAAI,CAAA;AACpE,MAAA,KAAA,CAAM,mBAAA,CAAoB,SAAS,cAAc,CAAA;AACjD,MAAA,KAAA,CAAM,MAAA,EAAO;AACb,MAAA,GAAA,CAAI,MAAA,EAAO;AACX,MAAA,OAAA,CAAQ,MAAA,EAAO;AAAA,IACjB;AAAA,GACF;AACF;;;ACxCO,IAAM,aAAA,GAAgB,CAAC,KAAA,EAAiB,aAAA,EAAmC,YAAqB,KAAA,KAAU;AAC/G,EAAA,MAAM,UAAA,GAAa,WAAW,KAAK,CAAA;AACnC,EAAA,MAAM,cAAA,GAAiB,CAAC,aAAA,CAAc,KAAA,CAAM,WAAW,CAAA;AAEvD,EAAA,MAAM,KAAA,GAAQ,YAAY,KAAK,CAAA;AAC/B,EAAA,MAAM,GAAA,GAAM,cAAA,CAAe,KAAA,EAAO,KAAA,EAAO,MAAM,SAAS,CAAA;AACxD,EAAA,MAAM,UAAU,SAAA,GAAY,GAAA,GAAM,kBAAA,CAAmB,KAAA,EAAO,KAAK,aAAa,CAAA;AAE9E,EAAA,SAAS,aAAA,CAAc,GAAA,EAAgC,MAAA,EAAiB,QAAA,EAAmB,UAAA,EAAqB;AAC9G,IAAA,MAAM,KAAA,GAAQ,GAAA,EAAK,IAAA,EAAK,IAAK,IAAA;AAC7B,IAAA,MAAM,aAAA,GAAgB,cAAc,KAAK,CAAA;AACzC,IAAA,KAAA,CAAM,SAAA,GAAY,gBAAgB,IAAA,GAAO,KAAA,EAAO,QAAQ,QAAA,EAAU,UAAA,EAAY,YAAY,MAAS,CAAA;AACnG,IAAA,iBAAA,CAAkB,KAAA,EAAO,CAAC,aAAA,IAAiB,cAAc,CAAA;AAAA,EAC3D;AAEA,EAAA,SAASA,yBAAwB,YAAA,EAAsC;AACrE,IAAA,KAAA,CAAM,QAAQ,YAAA,IAAgB,EAAA;AAC9B,IAAA,aAAA,CAAc,YAAA,EAAc,KAAA,EAAO,IAAA,EAAM,KAAK,CAAA;AAC9C,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,SAAS,eAAe,CAAA,EAAU;AAChC,IAAA,aAAA,CAAe,CAAA,CAAE,aAAA,CAAmC,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AAAA,EAChF;AACA,EAAA,KAAA,CAAM,gBAAA,CAAiB,SAAS,cAAc,CAAA;AAC9C,EAAA,aAAA,CAAc,KAAA,CAAM,YAAA,EAAc,IAAA,EAAM,KAAA,EAAO,KAAK,CAAA;AACpD,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,YAAA,EAAc,KAAA;AAAA,IACd,WAAA,EAAa,OAAA;AAAA,IACb,uBAAA,EAAyBA,wBAAAA;AAAA,IACzB,OAAA,EAAS,SAAU,eAAA,EAA2B;AAC5C,MAAA,IAAI,oBAAoB,KAAA,EAAO,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,MAAM,IAAI,CAAA;AACpE,MAAA,KAAA,CAAM,mBAAA,CAAoB,SAAS,cAAc,CAAA;AACjD,MAAA,KAAA,CAAM,MAAA,EAAO;AACb,MAAA,GAAA,CAAI,MAAA,EAAO;AACX,MAAA,OAAA,CAAQ,MAAA,EAAO;AAAA,IACjB;AAAA,GACF;AACF;;;AC/BA,IAAM,aAAA,GAAgB,CAAC,SAAA,KAA2B;AAChD,EAAA,QAAQ,SAAA;AAAW,IACjB,KAAA,EAAA;AACE,MAAA,OAAO,UAAA;AAAA,IACT,KAAA,CAAA;AACE,MAAA,OAAO,UAAA;AAAA,IACT,KAAA,EAAA;AACE,MAAA,OAAO,QAAA;AAAA,IACT,KAAA,EAAA;AAAA,IACA,KAAA,EAAA;AACE,MAAA,OAAO,OAAA;AAAA,IACT;AACE,MAAA,OAAO,MAAA;AAAA;AAEb,CAAA;AAEO,SAAS,YAAY,KAAA,EAA6D;AACvF,EAAA,MAAM,aAAa,KAAA,CAAM,SAAA,KAAA,CAAA;AACzB,EAAA,MAAM,WAAW,KAAA,CAAM,SAAA,KAAA,EAAA;AACvB,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,SAAA,KAAA,EAAA,iBAAoC,KAAA,CAAM,SAAA,KAAA,EAAA;AACjE,EAAA,MAAM,aAAa,KAAA,CAAM,SAAA,KAAA,EAAA;AACzB,EAAA,MAAM,aAAa,KAAA,CAAM,SAAA,KAAA,EAAA;AAEzB,EAAA,MAAM,SAAA,GAAY,aAAA,CAAc,KAAA,CAAM,SAAS,CAAA;AAC/C,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,UAAA,GAAa,aAAa,OAAO,CAAA;AACtE,EAAA,IAAI,CAAC,UAAA,EAAa,KAAA,CAA2B,IAAA,GAAO,SAAA;AACpD,EAAA,IAAI,cAAc,UAAA,EAAY;AAC5B,IAAA,IAAK,KAAA,CAAoB,OAAA,EAAU,KAAA,CAA2B,OAAQ,KAAA,CAAoB,OAAA;AAAA,SAAA,IACjF,UAAA,EAAa,KAAA,CAA2B,IAAA,GAAO,WAAW,KAAkB,CAAA;AAAA,EAGvF,WAAW,UAAA,EAAa,KAAA,CAA8B,IAAA,GAAQ,MAAoB,IAAA,IAAQ,qBAAA;AAAA,OAAA,IACjF,QAAA,EAAU;AACjB,IAAA,MAAM,WAAA,GAAc,KAAA;AACpB,IAAA,MAAM,WAAA,GAAc,KAAA;AACpB,IAAA,MAAM,aAAA,GAAgB,YAAY,aAAA,IAAiB,CAAA;AACnD,IAAA,WAAA,CAAY,IAAA,GAAO,QAAA;AAEnB,IAAA,IAAI,YAAY,IAAA,EAAM,WAAA,CAAY,IAAA,GAAO,WAAA,CAAY,KAAK,QAAA,EAAS;AAAA,SAC9D,WAAA,CAAY,IAAA,GAAO,aAAA,GAAgB,CAAA,GAAA,CAAK,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,aAAa,CAAA,EAAG,QAAA,EAAS,GAAI,GAAA;AAE3F,IAAA,IAAI,WAAA,CAAY,SAAA,KAAc,MAAA,IAAa,WAAA,CAAY,SAAA,KAAc,MAAM,WAAA,CAAY,GAAA,GAAM,WAAA,CAAY,SAAA,CAAU,QAAA,EAAS;AAC5H,IAAA,IAAI,WAAA,CAAY,SAAA,KAAc,MAAA,IAAa,WAAA,CAAY,SAAA,KAAc,MAAM,WAAA,CAAY,GAAA,GAAM,WAAA,CAAY,SAAA,CAAU,QAAA,EAAS;AAAA,EAC9H,WAAW,QAAA,EAAU;AACnB,IAAC,MAA2B,IAAA,GAAO,OAAA;AACnC,IAAC,KAAA,CAA2B,IAAA,GAAQ,KAAA,CAAkB,IAAA,EAAM,UAAS,IAAK,GAAA;AAC1E,IAAC,KAAA,CAA2B,GAAA,GAAO,KAAA,CAAkB,SAAA,EAAW,UAAS,IAAK,GAAA;AAC9E,IAAC,KAAA,CAA2B,GAAA,GAAO,KAAA,CAAkB,SAAA,EAAW,UAAS,IAAK,KAAA;AAAA,EAChF,OAAQ,KAAA,CAA2B,IAAA,GAAQ,KAAA,CAAmB,aAAa,UAAA,GAAa,MAAA;AACxF,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,QAAA,EAAU;AAC1B,IAAA,IAAK,MAAmB,SAAA,EAAY,KAAA,CAA2B,SAAA,GAAa,MAAmB,SAAA,IAAa,CAAA;AAC5G,IAAA,IAAK,MAAmB,SAAA,EAAY,KAAA,CAA2B,SAAA,GAAa,MAAmB,SAAA,IAAa,CAAA;AAAA,EAC9G;AAEA,EAAA,KAAA,CAAM,SAAA,GAAY,CAAA,EAAG,eAAA,CAAgB,KAAA,CAAM,SAAA,EAAW,KAAA,CAAM,YAAY,CAAC,CAAA,EAAG,UAAA,GAAa,KAAA,GAAQ,EAAE,CAAA,CAAA;AACnG,EAAA,KAAA,CAAM,YAAA,GAAe,MAAM,YAAA,IAAgB,IAAA;AAC3C,EAAA,KAAA,CAAM,QAAA,GAAW,CAAC,CAAC,KAAA,CAAM,UAAA;AACzB,EAAA,KAAA,CAAM,QAAA,GAAW,CAAC,CAAC,KAAA,CAAM,UAAA;AACzB,EAAA,KAAA,CAAM,QAAA,GAAW,CAAC,CAAC,KAAA,CAAM,UAAA;AACzB,EAAA,KAAA,CAAM,KAAK,KAAA,CAAM,EAAA;AACjB,EAAA,KAAA,CAAM,WAAA,GAAc,MAAM,WAAA,IAAe,EAAA;AACzC,EAAA,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,YAAA,EAAc,QAAA,EAAS,IAAK,EAAA;AAEhD,EAAA,OAAO,KAAA;AACT;AACO,IAAM,eAAe,CAAC,MAAA,EAAqC,WAAgC,KAAA,EAAe,aAAA,EAAwB,eAAmC,YAAA,KAA8C;AACxN,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,CAAA,IAAK,CAAC,SAAA,EAAW;AAErC,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,MAAM,cAAmB,EAAC;AAC1B,EAAA,MAAM,kBAAA,GAAqB,QAAA,CAAS,SAAA,EAAW,EAAE,CAAA;AAEjD,EAAA,MAAM,UAAiC,EAAC;AACxC,EAAA,MAAM,UAAA,GAAa,CAAC,MAAA,KAAgC,OAAA,CAAQ,KAAK,MAAM,CAAA;AACvE,EAAA,MAAM,oBAAoB,CAAC,YAAA,EAAmB,eAAwB,eAAA,EAA0B,UAAA,EAAqB,YAAoB,UAAA,KAAuB;AAC9J,IAAA,IAAI,YAAY,UAAU,CAAA,KAAM,gBAAgB,CAAC,eAAA,IAAmB,CAAC,UAAA,EAAY;AAEjF,IAAA,WAAA,CAAY,UAAU,CAAA,GAAI,YAAA;AAC1B,IAAA,CAAC,aAAA,IAAiB,CAAC,aAAA,GAAgB,kBAAA,GAAqB,SAAA,EAAW,WAAA,EAAa,aAAA,EAAe,eAAA,EAAiB,UAAA,EAAY,UAAA,EAAY,KAAA,EAAO,MAAA,EAAW,UAAU,CAAA;AACpK,IAAA,MAAM,MAAA,GAAS,QAAQ,IAAA,CAAK,CAAC,MAAM,UAAA,CAAW,CAAA,CAAE,KAAK,CAAA,KAAM,UAAU,CAAA;AACrE,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,QAAA,YAAA,CAAa,OAAO,CAAA;AACpB,QAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM,aAAa,CAAA,CAAE,KAAA,CAAM,SAAS,CAAA,KAAM,UAAU,CAAA;AACrF,QAAA,KAAA,MAAW,SAAS,QAAA,EAAU;AAC5B,UAAA,KAAA,CAAM,KAAA,CAAM,YAAA,GAAe,WAAA,CAAY,KAAA,CAAM,MAAM,EAAE,CAAA;AACrD,UAAA,KAAA,CAAM,eAAA,GAAkB,cAAc,aAAA,EAAe,eAAA,EAAiB,YAAY,UAAA,EAAY,KAAA,EAAO,QAAW,UAAU,CAAA;AAAA,QAC5H;AAAA,MACF,GAAG,CAAC,CAAA;AAAA,IACN;AAAA,EACF,CAAA;AACA,EAAA,MAAM,aAAA,GAAiB,WAAA,CAAY,MAAM,CAAA,CAAkC,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,YAAA,GAAe,CAAA,CAAE,YAAY,CAAA;AACzH,EAAA,KAAA,MAAW,OAAO,aAAA,EAAe;AAC/B,IAAA,MAAM,UAAA,GAAa,WAAW,GAAG,CAAA;AACjC,IAAA,GAAA,CAAI,YAAA,GAAe,YAAA,GAAe,UAAU,CAAA,IAAK,GAAA,CAAI,YAAA;AACrD,IAAA,IAAI,GAAA,CAAI,YAAY,cAAA,EAAgB;AAClC,MAAA,GAAA,CAAI,SAAA,GAAY,CAAC,YAAA,EAAmB,aAAA,EAAwB,iBAA0B,UAAA,EAAqB,UAAA,EAAoB,UAAA,KAA6B,iBAAA,CAAkB,YAAA,EAAc,aAAA,EAAe,eAAA,EAAiB,UAAA,EAAY,YAAY,UAAU,CAAA;AAC9P,MAAA,IAAK,GAAA,CAAY,UAAA,IAAc,CAAC,aAAA,CAAc,GAAA,CAAI,WAAW,CAAA,EAAG,GAAA,CAAI,WAAA,IAAe,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA;AAAA,IACvG;AAEA,IAAA,QAAQ,IAAI,SAAA;AAAW,MACrB,KAAA,CAAA,gBAA0B;AACxB,QAAA,UAAA,CAAW,aAAA,CAAc,GAAA,EAAiB,aAAA,EAAe,aAAa,CAAC,CAAA;AACvE,QAAA;AAAA,MACF;AAAA,MACA,KAAA,EAAA,eAAyB;AACvB,QAAA,UAAA,CAAW,YAAA,CAAa,GAAA,EAAgB,aAAA,EAAe,aAAa,CAAC,CAAA;AACrE,QAAA;AAAA,MACF;AAAA,MACA,KAAA,CAAA,iBAA2B;AACzB,QAAA,UAAA,CAAW,cAAA,CAAe,GAAA,EAAkB,aAAA,EAAe,aAAa,CAAC,CAAA;AACzE,QAAA;AAAA,MACF;AAAA,MACA,KAAA,EAAA,iBAA2B;AACzB,QAAA,UAAA,CAAW,cAAA,CAAe,GAAA,EAAkB,aAAA,EAAe,aAAa,CAAC,CAAA;AACzE,QAAA;AAAA,MACF;AAAA,MACA,KAAA,EAAA,iBAA2B;AACzB,QAAA,UAAA,CAAW,cAAA,CAAe,GAAA,EAAkB,aAAA,EAAe,aAAa,CAAC,CAAA;AACzE,QAAA;AAAA,MACF;AAAA,MACA,KAAA,GAAA,mBAA6B;AAC3B,QAAA,UAAA,CAAW,eAAA,CAAgB,GAAA,EAAoB,aAAA,EAAe,aAAa,CAAC,CAAA;AAC5E,QAAA;AAAA,MACF;AAAA,MACA,KAAA,GAAA,oBAA8B;AAC5B,QAAA,UAAA,CAAW,aAAA,CAAc,GAAA,EAAiB,aAAA,EAAe,aAAa,CAAC,CAAA;AACvE,QAAA;AAAA,MACF;AAAA,MACA,KAAA,GAAA,qBAA+B;AAC7B,QAAA,UAAA,CAAW,iBAAA,CAAkB,GAAA,EAAsB,aAAA,EAAe,aAAa,CAAC,CAAA;AAChF,QAAA;AAAA,MACF;AA0BE;AACJ,EACF;AACA,EAAA,OAAO,OAAA;AACT;AACO,IAAM,aAAA,GAAgB,CAAC,MAAA,EAAoC,eAAA,KAA8B;AAC9F,EAAA,IAAI,CAAC,MAAA,IAAU,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG;AACpC,EAAA,KAAA,MAAW,KAAA,IAAS,MAAA,EAAQ,KAAA,CAAM,OAAA,CAAQ,eAAe,CAAA;AAC3D;;;AC9KO,IAAM,cAAA,GAAiB,CAAC,KAAA,EAAkB,aAAA,EAAmC,SAAA,KAAuB;AACzG,EAAA,IAAI,MAAM,OAAA,EAAS,OAAO,eAAe,KAAA,EAAO,aAAA,EAAe,WAAW,IAAI,CAAA;AAE9E,EAAA,MAAM,KAAA,GAAQ,YAAY,KAAK,CAAA;AAC/B,EAAA,MAAM,UAAA,GAAa,WAAW,KAAK,CAAA;AAEnC,EAAA,KAAA,CAAM,SAAA,CAAU,IAAI,IAAI,CAAA;AACxB,EAAA,KAAA,CAAM,SAAA,CAAU,OAAO,KAAK,CAAA;AAC5B,EAAA,KAAA,CAAM,cAAA,GAAiB,MAAM,YAAA,IAAgB,KAAA;AAE7C,EAAA,MAAM,GAAA,GAAM,cAAA,CAAe,KAAA,EAAO,KAAA,EAAO,MAAM,SAAS,CAAA;AACxD,EAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,aAAA,CAAc,OAAO,CAAA;AACvC,EAAA,IAAI,KAAA,QAAa,SAAA,GAAY,eAAA;AAC7B,EAAA,MAAM,UAAU,SAAA,GAAY,GAAA,GAAM,kBAAA,CAAmB,KAAA,EAAO,KAAK,aAAa,CAAA;AAE9E,EAAA,GAAA,CAAI,SAAA,CAAU,GAAA,CAAI,IAAA,EAAM,IAAA,EAAM,OAAO,SAAS,CAAA;AAC9C,EAAA,GAAA,CAAI,SAAA,CAAU,OAAO,QAAQ,CAAA;AAE7B,EAAA,SAAS,aAAA,CAAc,GAAA,EAAc,MAAA,EAAiB,QAAA,EAAmB,UAAA,EAAqB;AAC5F,IAAA,IAAI,CAAC,KAAA,CAAM,YAAA,EAAc,KAAA,CAAM,SAAA,GAAY,KAAK,MAAA,EAAQ,QAAA,EAAU,UAAA,EAAY,UAAA,EAAY,MAAS,CAAA;AAAA,SAC9F,KAAA,CAAM,SAAA,GAAY,GAAA,GAAM,KAAA,CAAM,YAAA,GAAe,MAAM,MAAA,EAAQ,QAAA,EAAU,UAAA,EAAY,UAAA,EAAY,MAAS,CAAA;AAAA,EAC7G;AAEA,EAAA,SAAS,cAAc,GAAA,EAAc,MAAA,EAAiB,QAAA,EAAmB,UAAA,EAAqB,MAA0B,eAAA,EAA2B;AACjJ,IAAA,iBAAA,CAAkB,OAAO,GAAG,CAAA;AAC5B,IAAA,IAAI,oBAAoB,KAAA,EAAO;AAE/B,IAAA,IAAI,MAAA,IAAU,KAAA,CAAM,OAAA,IAAW,CAAC,GAAA,EAAK;AACrC,IAAA,aAAA,CAAc,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,UAAU,CAAA;AAAA,EACjD;AAEA,EAAA,SAASA,wBAAAA,CAAwB,YAAA,EAAuB,IAAA,EAA0B,eAAA,EAAoC;AACpH,IAAA,KAAA,CAAM,OAAA,GAAU,YAAA;AAChB,IAAA,aAAA,CAAc,YAAA,EAAc,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,MAAM,eAAe,CAAA;AACrE,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,SAAS,cAAA,GAAiB;AACxB,IAAA,aAAA,CAAc,KAAA,CAAM,OAAA,EAAS,KAAA,EAAO,KAAA,EAAO,KAAK,CAAA;AAAA,EAClD;AAEA,EAAA,KAAA,CAAM,gBAAA,CAAiB,SAAS,cAAc,CAAA;AAE9C,EAAA,KAAA,CAAM,OAAA,GAAU,MAAM,YAAA,IAAgB,KAAA;AACtC,EAAA,aAAA,CAAc,KAAA,CAAM,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO,KAAK,CAAA;AAE/C,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,YAAA,EAAc,KAAA;AAAA,IACd,WAAA,EAAa,OAAA;AAAA,IACb,uBAAA,EAAyBA,wBAAAA;AAAA,IACzB,OAAA,EAAS,SAAU,eAAA,EAA2B;AAC5C,MAAA,IAAI,eAAA,KAAoB,OAAO,aAAA,CAAc,KAAA,CAAM,gBAAgB,KAAA,EAAO,KAAA,EAAO,MAAM,IAAI,CAAA;AAC3F,MAAA,KAAA,CAAM,mBAAA,CAAoB,SAAS,cAAc,CAAA;AACjD,MAAA,KAAA,CAAM,MAAA,EAAO;AACb,MAAA,GAAA,CAAI,MAAA,EAAO;AACX,MAAA,OAAA,CAAQ,MAAA,EAAO;AAAA,IACjB;AAAA,GACF;AACF;AC5DA,IAAM,uBAAA,GAA0B,CAAC,YAAA,EAAqC,eAAA,KAAkC;AACtG,EAAA,IAAI,SAAA,GAAY,IAAA;AAChB,EAAA,KAAA,MAAW,eAAe,YAAA,EAAc;AACtC,IAAA,IAAI,YAAY,uBAAA,EAAyB;AACvC,MAAA,MAAM,KAAA,GAAQ,kBAAmB,eAAA,CAAgB,UAAA,CAAW,YAAY,KAAK,CAAC,KAAK,IAAA,GAAQ,MAAA;AAC3F,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,uBAAA,CAAwB,KAAK,CAAA;AACzD,MAAA,IAAI,WAAW,SAAA,GAAY,OAAA;AAAA,IAC7B;AAAA,EACF;AACA,EAAA,OAAO,SAAA;AACT,CAAA;AACO,IAAM,UAAA,GAAa,CAAC,KAAA,EAAc,MAAA,KAA+C;AACtF,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAW,KAAA,EAAO,aAAA,EAAe,kBAAiB,GAAI,KAAA;AACtE,EAAA,MAAM,gBAAgB,OAAO,gBAAA,KAAqB,WAAW,QAAA,CAAS,cAAA,CAAe,gBAAgB,CAAA,GAAI,gBAAA;AAEzG,EAAA,IAAI,CAAC,aAAA,IAAiB,MAAA,CAAO,MAAA,KAAW,CAAA,IAAK,CAAC,SAAA,EAAW;AAEvD,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC3C,EAAA,MAAA,CAAO,SAAA,GAAY,CAAA,KAAA,EAAQ,MAAA,IAAU,CAAC,CAAA,MAAA,CAAA;AACtC,EAAA,MAAA,CAAO,MAAM,UAAA,GAAa,YAAA;AAC1B,EAAA,IAAI,aAAA,EAAe,aAAA,CAAc,WAAA,CAAY,MAAM,CAAA;AAEnD,EAAA,MAAM,YAAA,GAAe,aAAa,MAAA,EAAQ,SAAA,EAAW,OAAO,aAAA,EAAe,MAAA,EAAQ,MAAM,YAAY,CAAA;AAErG,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,WAAA,EAAa,MAAA;AAAA,IACb,OAAA,EAAS,CAAC,eAAA,KAA8B;AACtC,MAAA,aAAA,CAAc,cAAc,eAAe,CAAA;AAC3C,MAAA,MAAA,CAAO,MAAA,EAAO;AAAA,IAChB,CAAA;AAAA,IACA,uBAAA,EAAyB,CAAC,eAAA,KAAyB,uBAAA,CAAwB,cAAc,eAAe;AAAA,GAC1G;AACF;AAEO,IAAM,IAAA,GAAO,CAAC,EAAE,KAAA,EAAO,QAAO,KAA0D;AAC7F,EAAAL,UAAU,MAAM;AACd,IAAA,MAAM,WAAA,GAAc,UAAA,CAAW,KAAA,EAAO,MAAM,CAAA;AAC5C,IAAA,OAAO,MAAM,aAAa,OAAA,EAAQ;AAAA,EACpC,CAAA,EAAG,CAAC,KAAA,EAAO,MAAM,CAAC,CAAA;AAClB,EAAA,uBAAOH,GAAAA,CAACC,KAAAA,CAAM,QAAA,EAAN,EAAe,CAAA;AACzB;;;ACvCA,IAAM,aAAA,GAA+B;AAAA,EACnC,YAAA,EAAc;AAChB,CAAA;AACO,IAAM,YAAA,GAAe,CAAC,YAAA,EAAmC,MAAA,EAA0B,aAAA,KAA4B;AACpH,EAAA,IAAI,CAAC,aAAA,CAAc,YAAA,IAAgB,YAAA,EAAc;AAC/C,IAAA,aAAA,CAAc,aAAA,GAAgB,UAAU,EAAC;AACzC,IAAA,aAAA,CAAc,YAAA,GAAe,YAAA;AAC7B,IAAA,aAAA,CAAc,aAAA,GAAgB,aAAA;AAAA,EAChC;AACA,EAAA,OAAO,aAAA;AACT;AAEO,IAAM,CAAA,GAAI;;;ACtBV,IAAM,kBAAA,GAAqB;AAAA,EAChC,YAAA,EAAc;AAChB;;;ACFO,IAAK,aAAA,qBAAAQ,cAAAA,KAAL;AACL,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,UAAO,CAAA,CAAA,GAAP,MAAA;AAEA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,gBAAa,CAAA,CAAA,GAAb,YAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,mBAAgB,CAAA,CAAA,GAAhB,eAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,cAAW,CAAA,CAAA,GAAX,UAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,gBAAa,CAAA,CAAA,GAAb,YAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,WAAQ,EAAA,CAAA,GAAR,OAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,aAAU,EAAA,CAAA,GAAV,SAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,gBAAa,EAAA,CAAA,GAAb,YAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,YAAS,GAAA,CAAA,GAAT,QAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,eAAY,GAAA,CAAA,GAAZ,WAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,kBAAe,GAAA,CAAA,GAAf,cAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,iBAAc,IAAA,CAAA,GAAd,aAAA;AAbU,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAeL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,mBAAAA,CAAAA,mBAAAA,CAAA,aAAU,CAAA,CAAA,GAAV,SAAA;AACA,EAAAA,mBAAAA,CAAAA,mBAAAA,CAAA,YAAS,CAAA,CAAA,GAAT,QAAA;AACA,EAAAA,mBAAAA,CAAAA,mBAAAA,CAAA,UAAO,CAAA,CAAA,GAAP,MAAA;AACA,EAAAA,mBAAAA,CAAAA,mBAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,mBAAAA,CAAAA,mBAAAA,CAAA,cAAW,EAAA,CAAA,GAAX,UAAA;AALU,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;;;ACLZ,IAAM,+BAAA,GAAkC,QAAA,CAAS,sBAAA,EAAwB,GAAI,CAAA;AAE7E,IAAM,oBAAA,GAAuB,OAAO,GAAA,EAAa,KAAA,EAAsB,kBAA4B,MAAA,KAAgC;AACjI,EAAA,IAAI,CAAC,SAAA,EAAU,IAAK,CAAC,gBAAA,IAAoB,CAAC,MAAA,EAAQ;AAElD,EAAA,MAAM,+BAAA,CAAgC,MAAA,EAAQ,GAAA,EAAK,KAAK,CAAA;AAC1D,CAAA;AAEO,IAAM,eAAA,GAAkB,CAAC,GAAA,EAAa,KAAA,EAAe,kBAA4B,MAAA,KAAgC;AACtH,EAAA,IAAI,CAAC,WAAU,EAAG;AAElB,EAAA,oBAAA,CAAqB,GAAA,EAAK,KAAA,EAAO,gBAAA,EAAkB,MAAM,CAAA;AACzD,EAAA,YAAA,CAAa,OAAA,CAAQ,KAAK,KAAK,CAAA;AACjC;AACO,IAAM,kBAAA,GAAqB,CAAC,GAAA,EAAa,gBAAA,EAA4B,MAAA,KAAgC;AAC1G,EAAA,oBAAA,CAAqB,GAAA,EAAK,IAAA,EAAM,gBAAA,EAAkB,MAAM,CAAA;AACxD,EAAA,YAAA,CAAa,WAAW,GAAG,CAAA;AAC7B;AAEO,SAAS,gBAAgB,GAAA,EAA4B;AAC1D,EAAA,IAAI,CAAC,SAAA,EAAU,EAAG,OAAO,IAAA;AACzB,EAAA,MAAM,IAAA,GAAO,YAAA,CAAa,OAAA,CAAQ,GAAG,CAAA;AACrC,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,kBAAkB,CAAC,SAAA,KAAsB,gBAAgB,kBAAA,CAAmB,YAAA,EAAc,WAAW,IAAA,EAAA,CAAA;AAC3G,IAAM,kBAAkB,MAAyB;AACtD,EAAA,MAAM,oBAAoB,CAAA,CAAE,YAAA;AAC5B,EAAA,IAAI,CAAC,qBAAqB,iBAAA,CAAkB,MAAA,KAAW,GAAG,MAAM,IAAI,MAAM,4BAA4B,CAAA;AACtG,EAAA,MAAM,WAAA,GAAc,eAAA,CAAgB,kBAAA,CAAmB,YAAY,CAAA;AACnE,EAAA,IAAI,CAAC,WAAA,EAAa,OAAO,iBAAA,CAAkB,CAAC,CAAA;AAC5C,EAAA,OAAO,iBAAA,CAAkB,KAAK,CAAC,KAAA,KAAU,MAAM,UAAA,KAAe,WAAW,CAAA,IAAK,iBAAA,CAAkB,CAAC,CAAA;AACnG;AACO,IAAM,mBAAA,GAAsB,MAAc,eAAA,EAAgB,CAAE;;;ACpCnE,IAAM,CAAA,GAAI,aAAA;AAEV,IAAM,YAAA,GAAe,CAAC,GAAA,EAAa,KAAA,KAAyB;AAC1D,EAAA,IAAI,OAAO,QAAA,CAAS,eAAA,CAAgB,KAAA,CAAM,WAAA,CAAY,KAAK,KAAK,CAAA;AAClE,CAAA;AAEA,IAAM,iBAAA,GAAoB,CAAC,iBAAA,KAAoD;AAC7E,EAAA,IAAI,CAAC,iBAAA,IAAqB,iBAAA,CAAkB,MAAA,KAAW,GAAG,OAAO,KAAA;AAEjE,EAAA,MAAM,cAAc,eAAA,EAAgB;AACpC,EAAA,OAAO,iBAAiB,WAAY,CAAA;AACtC,CAAA;AACA,IAAM,QAAA,GAAW,CAAC,KAAA,EAAsB,CAAA,EAAW,MAAc,KAAA,CAAM,UAAA,CAAW,CAAA,EAAG,CAAC,CAAA,GAAA,EAAM,CAAC,CAAA,EAAA,CAAA,EAAM,KAAA,CAAM,SAAS,MAAM,CAAA;AACxH,IAAM,kBAAA,GAAqB,CAAC,KAAA,EAAsB,CAAA,EAAW,GAAA,EAAa,GAAA,EAAa,CAAA,EAAW,CAAA,KAAe,KAAA,CAAM,UAAA,CAAW,CAAA,mBAAA,EAAsB,GAAG,SAAS,CAAA,KAAM,MAAA,GAAY,CAAA,EAAA,EAAK,CAAC,CAAA,GAAA,CAAA,GAAQ,EAAE,CAAA,KAAA,EAAQ,GAAG,CAAA,CAAA,EAAI,CAAC,CAAA,UAAA,EAAa,CAAC,CAAA,EAAG,CAAC,CAAA,IAAA,CAAA,EAAQ,KAAA,CAAM,SAAS,MAAM,CAAA;AACrQ,IAAM,gBAAA,GAAmB,CAAC,KAAA,KAAsC;AAC9D,EAAA,IAAI,CAAC,OAAO,OAAO,KAAA;AACnB,EAAA,eAAA,CAAgB,MAAM,UAAU,CAAA;AAEhC,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,WAAW,CAAA;AAChD,EAAA,KAAA,MAAW,OAAO,UAAA,EAAY;AAC5B,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,WAAA,CAAY,GAAyB,CAAA;AACzD,IAAA,MAAM,CAAC,YAAY,KAAA,EAAO,KAAA,EAAO,IAAI,CAAA,GAAI,KAAA,CAAM,MAAM,GAAG,CAAA;AAExD,IAAA,IAAI,CAAC,UAAA,EAAY;AACjB,IAAA,MAAM,SAAA,GAAY,GAAA,CAAI,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA;AAErC,IAAA,IAAI,eAAe,MAAA,EAAQ,YAAA,CAAa,CAAA,GAAA,EAAM,SAAS,IAAI,UAAU,CAAA;AACrE,IAAA,IAAI,UAAU,MAAA,EAAQ,YAAA,CAAa,CAAA,GAAA,EAAM,SAAS,IAAI,KAAK,CAAA;AAC3D,IAAA,IAAI,UAAU,MAAA,EAAQ,YAAA,CAAa,CAAA,GAAA,EAAM,SAAS,IAAI,KAAK,CAAA;AAC3D,IAAA,IAAI,SAAS,MAAA,EAAQ,YAAA,CAAa,CAAA,GAAA,EAAM,SAAS,IAAI,IAAI,CAAA;AAAA,EAC3D;AAEA,EAAA,OAAO,IAAA;AACT,CAAA;AACO,IAAM,mBAAmB,MAAM;AACpC,EAAA,MAAM,EAAA,GAAK,QAAA,CAAS,cAAA,CAAe,cAAc,CAAA;AACjD,EAAA,IAAI,CAAC,EAAA,IAAM,CAAC,EAAA,CAAG,SAAA,CAAU,QAAA,CAAS,cAAc,CAAA,EAAG,EAAA,CAAG,SAAA,CAAU,GAAA,CAAI,cAAc,CAAA;AAClF,EAAA,MAAM,QAAQ,EAAA,CAAG,KAAA;AACjB,EAAA,MAAM,oBAAoB,CAAA,CAAE,YAAA;AAC5B,EAAA,IAAI,CAAC,iBAAA,IAAqB,iBAAA,CAAkB,MAAA,KAAW,CAAA,EAAG;AAC1D,EAAA,iBAAA,CAAkB,iBAAiB,CAAA;AAEnC,EAAA,MAAM,YAAA,GAAe,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAI;AAC/E,EAAA,MAAM,WAAW,CAAC,EAAA,EAAI,MAAA,EAAQ,QAAA,EAAU,WAAW,OAAO,CAAA;AAC1D,EAAA,MAAM,aAAa,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG,CAAA;AAE1C,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,EAAA,EAAG,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAM;AACzD,IAAA,MAAM,CAAA,GAAI,CAAA,EAAI,CAAA,GAAI,EAAA,GAAM,GAAG,CAAA,CAAA,CAAA;AAC3B,IAAA,QAAA,CAAS,OAAO,CAAA,KAAA,EAAQ,CAAC,CAAA,CAAA,EAAI,CAAA,4CAAA,EAA+C,CAAC,CAAA,CAAA,CAAG,CAAA;AAChF,IAAA,MAAA,CAAO,IAAA,CAAK,YAAY,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAM,kBAAA,CAAmB,KAAA,EAAO,CAAA,EAAG,YAAA,CAAa,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,EAC9F,CAAC,CAAA;AAED,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,EAAA,EAAG,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAM;AACzD,IAAA,MAAM,CAAA,GAAI,MAAM,CAAA,EACd,CAAA,GAAI,sBAAsB,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,CAAA,IAAA,CAAA;AACxC,IAAA,QAAA,CAAS,OAAO,CAAA,EAAA,EAAK,CAAC,CAAA,CAAA,EAAI,CAAA,WAAA,EAAc,CAAC,CAAA,IAAA,CAAM,CAAA;AAC/C,IAAA,QAAA,CAAS,OAAO,CAAA,EAAA,EAAK,CAAC,CAAA,kBAAA,CAAA,EAAsB,CAAA,UAAA,EAAa,CAAC,CAAA,yCAAA,CAA2C,CAAA;AACrG,IAAA,QAAA,CAAS,OAAO,CAAA,EAAA,EAAK,CAAC,CAAA,UAAA,CAAA,EAAc,CAAA,OAAA,EAAU,CAAC,CAAA,sCAAA,CAAwC,CAAA;AACvF,IAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,EAAA,EAAG,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAM;AACzD,MAAA,MAAM,EAAA,GAAK,CAAA,mBAAA,EAAsB,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,CAAA,IAAA,CAAA;AAC7C,MAAA,QAAA,CAAS,KAAA,EAAO,KAAK,CAAC,CAAA,QAAA,EAAW,CAAC,CAAA,CAAA,EAAI,CAAA,OAAA,EAAU,EAAE,CAAA,sCAAA,CAAwC,CAAA;AAC1F,MAAA,MAAA,CAAO,IAAA,CAAK,YAAY,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAM,kBAAA,CAAmB,KAAA,EAAO,CAAA,EAAG,aAAa,CAAC,CAAA,EAAG,CAAA,EAAG,EAAA,EAAI,CAAC,CAAC,CAAA;AAAA,IAClG,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACD,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,IAAG,EAAG,CAAC,GAAG,CAAA,KAAM;AACnC,IAAA,MAAM,CAAA,GAAI,OAAO,EAAA,GAAK,CAAA,CAAA;AACtB,IAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAA,EAAG,GAAA,KAAQ;AAC7B,MAAA,MAAM,GAAA,GAAM,IAAI,CAAA,GAAI,GAAA;AACpB,MAAA,QAAA,CAAS,KAAA,EAAO,CAAA,EAAA,EAAK,CAAC,CAAA,EAAG,KAAK,CAAC,CAAA,CAAA,EAAI,CAAA,MAAA,EAAS,QAAA,CAAS,GAAG,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,GAAA,EAAM,GAAG,CAAA,CAAE,CAAA;AAC1E,MAAA,QAAA,CAAS,KAAA,EAAO,CAAA,EAAA,EAAK,CAAC,CAAA,EAAG,KAAK,CAAC,CAAA,CAAA,EAAI,CAAA,OAAA,EAAU,QAAA,CAAS,GAAG,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,GAAA,EAAM,GAAG,CAAA,CAAE,CAAA;AAAA,IAC7E,CAAC,CAAA;AACD,IAAA,QAAA,CAAS,OAAO,CAAA,EAAA,EAAK,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,KAAA,EAAQ,CAAC,CAAA,IAAA,CAAM,CAAA;AAC9C,IAAA,QAAA,CAAS,OAAO,CAAA,GAAA,EAAM,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,YAAA,EAAe,CAAC,CAAA,IAAA,CAAM,CAAA;AACtD,IAAA,QAAA,CAAS,OAAO,CAAA,GAAA,EAAM,EAAA,GAAK,CAAC,CAAA,CAAA,EAAI,CAAA,SAAA,EAAY,CAAC,CAAA,IAAA,CAAM,CAAA;AACnD,IAAA,IAAI,IAAI,CAAA,IAAK,CAAA,IAAK,CAAA,EAAG,QAAA,CAAS,OAAO,CAAA,EAAA,EAAK,CAAC,CAAA,GAAA,EAAM,CAAC,IAAI,CAAA,WAAA,EAAA,CAAe,CAAA,GAAI,CAAA,IAAK,GAAA,GAAM,CAAC,CAAA,qBAAA,CAAuB,CAAA;AAAA,EAC9G,CAAC,CAAA;AACD,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,EAAA,IAAM,CAAC,CAAA,EAAG,CAAA,KAAM,GAAA,GAAM,GAAA,GAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAM,QAAA,CAAS,KAAA,EAAO,CAAA,IAAA,EAAO,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAQ,GAAA,EAAK,EAAE,CAAC,CAAA,CAAA,EAAI,cAAc,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAC5J,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,CAAA,IAAK,CAAC,CAAA,EAAG,CAAA,KAAM,GAAA,GAAM,GAAA,GAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAM,QAAA,CAAS,KAAA,EAAO,CAAA,EAAA,EAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAQ,GAAA,EAAK,EAAE,CAAC,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;AACpJ,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,GAAE,EAAG,CAAC,GAAG,CAAA,KAAM;AAClC,IAAA,QAAA,CAAS,OAAO,CAAA,GAAA,EAAM,CAAC,CAAA,CAAA,EAAI,CAAA,mHAAA,EAAsH,CAAC,CAAA,CAAA,CAAG,CAAA;AACrJ,IAAA,IAAI,CAAA,IAAK,GAAG,QAAA,CAAS,KAAA,EAAO,MAAM,CAAC,CAAA,CAAA,EAAI,CAAA,oBAAA,EAAuB,CAAC,CAAA,EAAA,CAAI,CAAA;AAAA,EACrE,CAAC,CAAA;AAED,EAAA,oBAAA,CAAqB,OAAA,CAAQ,CAAC,MAAA,KAAW,QAAA,CAAS,KAAA,EAAO,CAAA,GAAA,EAAM,MAAM,CAAA,CAAA,EAAI,CAAA,aAAA,EAAgB,MAAM,CAAA,CAAA,CAAG,CAAC,CAAA;AAEnG,EAAA,CAAC,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA,CAAE,QAAQ,CAAC,CAAA,KAAM,QAAA,CAAS,KAAA,EAAO,KAAK,CAAC,CAAA,CAAA,EAAI,CAAA,kBAAA,EAAqB,CAAC,OAAO,CAAC,CAAA;AACtF,EAAA,CAAC,GAAG,CAAA,EAAG,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,KAAM;AACvB,IAAA,MAAM,CAAA,GAAI,YAAY,CAAC,CAAA,kBAAA,CAAA;AACvB,IAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,KAAM,QAAA,CAAS,OAAO,CAAA,EAAA,EAAK,CAAC,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,CAAA,MAAA,EAAS,SAAS,CAAC,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,EAAG,CAAA,GAAI,IAAI,CAAC,CAAA,CAAA,GAAK,EAAE,CAAA,CAAE,CAAC,CAAA;AAC3G,IAAA,QAAA,CAAS,OAAO,CAAA,IAAA,EAAO,CAAC,CAAA,CAAA,EAAI,CAAA,iBAAA,EAAoB,CAAC,CAAA,mBAAA,CAAqB,CAAA;AAAA,EACxE,CAAC,CAAA;AAED,EAAA,MAAM,aAAa,MAAA,CAAO,IAAA,CAAK,iBAAA,CAAkB,CAAC,EAAE,WAAW,CAAA;AAC/D,EAAA,KAAA,MAAW,OAAO,UAAA,EAAY;AAC5B,IAAA,MAAM,SAAA,GAAY,GAAA,CAAI,OAAA,CAAQ,GAAA,EAAK,EAAE,CAAA;AACrC,IAAA,QAAA,CAAS,KAAA,EAAO,CAAA,GAAA,EAAM,SAAS,CAAA,CAAA,EAAI,CAAA,yBAAA,EAA4B,SAAS,CAAA,EAAA,EAAK,CAAC,CAAA,gBAAA,EAAmB,SAAS,CAAA,EAAA,CAAI,CAAA;AAC9G,IAAA,QAAA,CAAS,KAAA,EAAO,QAAQ,SAAS,CAAA,MAAA,CAAA,EAAU,4BAA4B,SAAS,CAAA,EAAA,EAAK,CAAC,CAAA,CAAE,CAAA;AACxF,IAAA,QAAA,CAAS,KAAA,EAAO,QAAQ,SAAS,CAAA,MAAA,CAAA,EAAU,4BAA4B,SAAS,CAAA,EAAA,EAAK,CAAC,CAAA,CAAE,CAAA;AACxF,IAAA,QAAA,CAAS,KAAA,EAAO,MAAM,SAAS,CAAA,CAAA,EAAI,iBAAiB,SAAS,CAAA,EAAA,EAAK,CAAC,CAAA,CAAE,CAAA;AAAA,EACvE;AAEA,EAAA,MAAM,UAAA,GAAa;AAAA,IACjB,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI,CAAA;AAAA,IACJ,GAAA,EAAK,IAAA;AAAA,IACL,EAAA,EAAI,GAAA;AAAA,IACJ,EAAA,EAAI,IAAA;AAAA,IACJ,GAAA,EAAK,IAAA;AAAA,IACL,EAAA,EAAI,IAAA;AAAA,IACJ,EAAA,EAAI,GAAA;AAAA,IACJ,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI;AAAA,GACN;AAEA,EAAA,MAAM,eAAA,GAAkB;AAAA,IACtB,KAAK,CAAA,GAAI,GAAA;AAAA,IACT,IAAI,CAAA,GAAI,GAAA;AAAA,IACR,EAAA,EAAI,2BAAA;AAAA,IACJ,KAAK,CAAA,GAAI,IAAA;AAAA,IACT,EAAA,EAAI,IAAA;AAAA,IACJ,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI,GAAA;AAAA,IACJ,GAAA,EAAK;AAAA,GACP;AACA,EAAA,MAAA,CAAO,QAAQ,UAAU,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM,QAAA,CAAS,OAAO,CAAA,MAAA,EAAS,CAAC,IAAI,CAAA,WAAA,EAAc,CAAC,MAAM,CAAC,CAAA;AAEnG,EAAA,MAAA,CAAO,OAAA,CAAQ,eAAe,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM;AAClD,IAAA,MAAM,IAAA,GAAO,oBAAoB,CAAC,CAAA,CAAA,CAAA;AAClC,IAAA,MAAM,MAAM,CAAA,WAAA,EAAc,IAAI,CAAA,CAAA,EAAI,CAAC,iBAAiB,IAAI,CAAA,CAAA,EAAI,CAAC,CAAA,aAAA,EAAgB,IAAI,CAAA,CAAA,EAAI,CAAC,CAAA,cAAA,EAAiB,IAAI,IAAI,CAAC,CAAA,CAAA,CAAA;AAChH,IAAA,QAAA,CAAS,KAAA,EAAO,CAAA,IAAA,EAAO,CAAC,CAAA,CAAA,EAAI,GAAG,CAAA;AAAA,EACjC,CAAC,CAAA;AACH;AACO,IAAM,WAAA,GAAc,CAAC,SAAA,KAA+B;AACzD,EAAA,MAAM,oBAAoB,CAAA,CAAE,YAAA;AAC5B,EAAA,IAAI,CAAC,iBAAA,IAAqB,iBAAA,CAAkB,MAAA,KAAW,GAAG,OAAO,KAAA;AAEjE,EAAA,MAAM,QAAQ,iBAAA,CAAkB,IAAA,CAAK,CAACC,MAAAA,KAAUA,MAAAA,CAAM,eAAe,SAAS,CAAA;AAC9E,EAAA,IAAI,CAAC,OAAO,OAAO,KAAA;AACnB,EAAA,eAAA,CAAgB,MAAM,UAAU,CAAA;AAChC,EAAA,OAAO,iBAAiB,KAAK,CAAA;AAC/B;AC3IO,IAAM,aAAA,GAAgB,CAAC,EAAE,YAAA,EAAa,KAAiD;AAC5F,EAAAR,UAAU,MAAM;AACd,IAAA,YAAA,CAAa,YAAA,GAAe,0BAAA;AAC5B,IAAA,CAAA,CAAE,YAAA,GAAe,0BAAA;AAEjB,IAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,MAAA,YAAA,CAAa,OAAO,CAAA;AACpB,MAAA,aAAA,CAAc,sBAAsB,GAAG,CAAA;AACvC,MAAA,gBAAA,EAAiB;AAAA,IACnB,GAAG,EAAE,CAAA;AAAA,EACP,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBAAOH,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EAAwB,CAAA;AAChD;ACLA,IAAM,QAAQ,KAAA,CAAM,EAAE,MAAA,EAAQ,CAAC,OAAO,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAK,CAAA,EAAG,OAAA,EAAS,CAAC,OAAO,GAAG,CAAA;AAEvF,IAAM,YAAA,GAAe,OAAO,EAAE,QAAA,EAAU,cAAa,KAA4E;AACtI,EAAA,uBACED,IAAAA,CAAC,MAAA,EAAA,EAAK,IAAA,EAAK,IAAA,EACT,QAAA,EAAA;AAAA,oBAAAA,KAAC,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,OAAA,EAAA,EAAO,QAAA,EAAA,YAAA,CAAa,oBAAA,EAAqB,CAAA;AAAA,sBAC1CA,GAAAA,CAAC,MAAA,EAAA,EAAK,MAAK,aAAA,EAAc,OAAA,EAAS,aAAa,0BAAA,EAA4B,CAAA;AAAA,sBAC3EA,GAAAA,CAAC,MAAA,EAAA,EAAK,IAAA,EAAK,UAAA,EAAW,SAAS,YAAA,CAAa,uBAAA,CAAwB,IAAA,CAAK,IAAI,CAAA,EAAG,CAAA;AAAA,sBAChFA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAA,EAAI,MAAA,EAAO,MAAK,cAAA,EAAe,CAAA;AAAA,sBACrCA,GAAAA,CAAC,MAAA,EAAA,EAAK,IAAA,EAAK,UAAA,EAAW,SAAQ,uCAAA,EAAwC,CAAA;AAAA,sBACtEA,GAAAA,CAAC,OAAA,EAAA,EAAM,EAAA,EAAG,cAAA,EAAe;AAAA,KAAA,EAC3B,CAAA;AAAA,oBACAD,IAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAM,SAAA,EACrB,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,iBAAc,YAAA,EAA4B,CAAA;AAAA,sBAC3CA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO;AAAA,YACL,MAAA,EAAQ,MAAA;AAAA,YACR,KAAA,EAAO,OAAA;AAAA,YACP,MAAA,EAAQ,OAAA;AAAA,YACR,QAAA,EAAU,OAAA;AAAA,YACV,OAAA,EAAS,MAAA;AAAA,YACT,cAAA,EAAgB,QAAA;AAAA,YAChB,UAAA,EAAY,QAAA;AAAA,YACZ,eAAA,EAAiB;AAAA,WACnB;AAAA,UACA,EAAA,EAAI,oBAAA;AAAA,UAEJ,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAK,KAAA,CAAM,IAAA,CAAK,MAAM,GAAA,EAAK,MAAA,EAAQ,OAAO,EAAE,SAAA,EAAW,QAAQ,QAAA,EAAU,MAAA,EAAQ,OAAO,MAAA,EAAQ,MAAA,EAAQ,QAAO,EAAG;AAAA;AAAA,OACzH;AAAA,MACC,QAAA;AAAA,sBACDA,IAAC,MAAA,EAAA,EAAO,IAAA,EAAK,UAAS,GAAA,EAAI,2EAAA,EAA4E,UAAS,YAAA,EAAa,CAAA;AAAA,sBAC5HA,IAAC,MAAA,EAAA,EAAO,QAAA,EAAQ,MAAC,GAAA,EAAI,uEAAA,EAAwE,UAAS,YAAA,EAAa;AAAA,KAAA,EACrH;AAAA,GAAA,EACF,CAAA;AAEJ;AC5CA,IAAM,SAAA,GAA0B,CAAC,KAAA,EAAO,OAAA,EAAS,MAAA,KAAoB;AACnE,EAAA,IAAI,MAAA,CAAO,EAAA,KAAO,mBAAA,EAAoB,EAAG;AACzC,EAAA,MAAM,YAAY,MAAA,CAAO,EAAA;AACzB,EAAA,IAAI,CAAC,SAAA,EAAW;AAChB,EAAA,WAAA,CAAY,SAAS,CAAA;AACrB,EAAA,eAAA,CAAgB,SAAS,CAAA;AAC3B,CAAA;AACA,IAAM,iBAAA,GAAoB,CAAC,WAAA,KAA6B;AACtD,EAAA,IAAI,CAAC,WAAA,IAAe,WAAA,CAAY,SAAA,CAAU,QAAA,CAAS,MAAM,CAAA,EAAG;AAC5D,EAAA,WAAA,CAAY,SAAA,CAAU,IAAI,MAAM,CAAA;AAEhC,EAAA,MAAM,eAAe,mBAAA,EAAoB;AACzC,EAAA,MAAM,SAAS,CAAA,CAAE,YAAA;AAEjB,EAAA,IAAI,CAAC,MAAA,IAAU,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG;AAClC,IAAA,MAAM,CAAA,GAAI,QAAA,CAAS,aAAA,CAAc,GAAG,CAAA;AACpC,IAAA,CAAA,CAAE,WAAA,GAAc,qBAAA;AAChB,IAAA,CAAA,CAAE,SAAA,GAAY,eAAA;AACd,IAAA,WAAA,CAAY,YAAY,CAAC,CAAA;AACzB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,YAAA,GAA0B,OAAO,GAAA,CAAI,CAAC,OAAO,KAAA,KAAU,SAAA,CAAU,MAAM,WAAA,EAAa,KAAA,CAAM,YAAY,IAAA,EAAM,KAAA,CAAM,MAAM,SAAA,EAAW,KAAA,EAAO,MAAM,IAAA,EAAM,KAAA,CAAM,YAAA,EAAA,EAAA,eAAiC,IAAI,CAAC,CAAA;AACxM,EAAA,MAAM,eAAe,YAAA,CAAa,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,OAAO,YAAY,CAAA;AAC7E,EAAA,gBAAA,CAAiB,YAAA,EAAc,WAAA,EAAa,YAAA,EAAc,SAAS,CAAA;AAEnE,EAAA,OAAO,gBAAA;AACT,CAAA;AAEO,IAAM,aAAa,MAAM;AAC9B,EAAA,MAAM,YAAA,GAAeC,KAAAA,CAAM,MAAA,CAAuB,IAAI,CAAA;AACtD,EAAAE,UAAU,MAAM;AACd,IAAA,IAAI,YAAA,CAAa,OAAA,EAAS,iBAAA,CAAkB,YAAA,CAAa,OAAO,CAAA;AAAA,EAClE,CAAA,EAAG,CAAC,YAAA,CAAa,OAAO,CAAC,CAAA;AACzB,EAAA,uBAAOH,GAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,YAAA,EAAc,CAAA;AACjC;AC/BO,IAAM,eAAA,GAAkB,CAAC,YAAA,KAA0B;AACxD,EAAA,MAAM,CAAA,GAAI,eAAe,uBAAA,GAA0B,EAAA;AACnD,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,GAAG,CAAC,CAAA,OAAA,CAAA;AAAA,IACjB,UAAA,EAAY,GAAG,CAAC,CAAA,WAAA,CAAA;AAAA,IAChB,YAAA,EAAc,GAAG,CAAC,CAAA,aAAA,CAAA;AAAA,IAClB,QAAA,EAAU,GAAG,CAAC,CAAA,SAAA,CAAA;AAAA,IACd,SAAA,EAAW,GAAG,CAAC,CAAA,YAAA,CAAA;AAAA,IACf,QAAA,EAAU,GAAG,CAAC,CAAA,SAAA,CAAA;AAAA,IACd,cAAA,EAAgB,GAAG,CAAC,CAAA,OAAA,CAAA;AAAA,IACpB,eAAA,EAAiB,GAAG,CAAC,CAAA,QAAA;AAAA,GACvB;AACF;AACO,IAAM,WAAA,GAAc,CAAC,EAAE,YAAA,EAAc,YAAY,MAAA,EAAQ,YAAA,EAAc,YAAA,EAAc,iBAAA,EAAkB,KAAkL;AAC9R,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,YAAA,EAAc,YAAA,IAAgB,CAAA,EAAG,MAAA,EAAQ,GAAE,EAAG,SAAA,EAAW,CAAA,gCAAA,EAAmC,MAAA,IAAU,EAAE,CAAA,CAAA,EACnH,QAAA,EAAA;AAAA,IAAA,YAAA,CAAa,GAAA,CAAI,CAAC,WAAA,EAAa,KAAA,qBAC9BC,GAAAA,CAAC,WAAA,EAAA,EAAwB,WAAA,EAA0B,aAAA,EAAe,iBAAA,EAAmB,YAAA,EAAA,EAAnE,KAA+F,CAClH,CAAA;AAAA,oBACDA,GAAAA,CAAC,YAAA,EAAA,EAAa,YAAA,EAA4B,aAAA,EAAe,mBAAmB,UAAA,EAAwB;AAAA,GAAA,EACtG,CAAA;AAEJ;AAEA,IAAM,cAAc,CAAC,EAAE,WAAA,EAAa,YAAA,EAAc,eAAc,KAA0G;AACxK,EAAA,uBACEA,IAAC,OAAA,EAAA,EAAQ,EAAA,EAAI,mBAAmB,WAAA,CAAY,QAAQ,CAAA,EAAG,IAAA,EAAM,WAAA,CAAY,QAAA,EAAU,2BAA6B,QAAA,EAAA,IAAA,cAAwB,OAAA,EAAA,IAAA,cAAuB,UAAA,EAAY,aAAA,EAAe,YAAA,EAAa,KAAA,EACrM,0BAAAA,GAAAA,CAAC,gBAAA,EAAA,EAAiB,WAAA,EAA0B,YAAA,EAA4B,CAAA,EAC1E,CAAA;AAEJ,CAAA;AAEO,IAAM,eAAe,CAAC,EAAE,YAAA,EAAc,UAAA,EAAY,eAAc,KAAsH;AAC3L,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,GAAA,EAAA,IAAA,aAAkB,IAAA,EAAO,aAAa,CAAA,OAAA,CAAA,EACpD,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EAAG,QAAA,EAAA,IAAA,EAAE,CAAA,EACR,CAAA;AAEJ;AAEA,IAAM,gBAAA,GAAmB,CAAC,EAAE,WAAA,EAAa,cAAa,KAA4E;AAChI,EAAA,uBACEA,GAAAA,CAAC,eAAA,EAAA,EAAgB,gBAAA,EAAkB,IAAA,EAAM,gBAAgB,CAAA,EAAG,QAAA,EAAA,MAAA,aAA2B,cAAA,EAAgB,kBAAA,CAAmB,YAAY,QAAQ,CAAA,EAAG,cAAc,EAAA,EAC7J,QAAA,kBAAAD,KAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,aAAU,YAAA,EAAc,CAAA,EAAG,cAAc,CAAA,EAAG,KAAA,EAAO,YAAY,QAAA,EAAU,CAAA;AAAA,oBAC1EA,GAAAA,CAAC,YAAA,EAAA,EAAa,WAAA,EAA0B,YAAA,EAA4B;AAAA,GAAA,EACtE,CAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAM,YAAA,GAAe,CAAC,EAAE,WAAA,EAAa,cAAa,KAA4E;AAC5H,EAAA,QAAQ,YAAY,QAAA;AAAU,IAC5B,KAAK,eAAA,CAAgB,KAAK,CAAA,CAAE,SAAA;AAC1B,MAAA,uBAAOA,IAAC,UAAA,EAAA,EAAW,CAAA;AAAA,IACrB;AACE,MAAA,uBAAOD,KAAC,KAAA,EAAA,EAAI,QAAA,EAAA;AAAA,QAAA,iBAAA;AAAA,QAAgB,WAAA,CAAY;AAAA,OAAA,EAAS,CAAA;AAAA;AAEvD,CAAA;;;ACtEO,IAAK,cAAA,qBAAAa,eAAAA,KAAL;AACL,EAAAA,eAAAA,CAAAA,eAAAA,CAAA,SAAM,CAAA,CAAA,GAAN,KAAA;AACA,EAAAA,eAAAA,CAAAA,eAAAA,CAAA,UAAO,CAAA,CAAA,GAAP,MAAA;AACA,EAAAA,eAAAA,CAAAA,eAAAA,CAAA,SAAM,CAAA,CAAA,GAAN,KAAA;AACA,EAAAA,eAAAA,CAAAA,eAAAA,CAAA,YAAS,CAAA,CAAA,GAAT,QAAA;AAJU,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;;;ACMZ,IAAM,mBAAA,GAAA,SAAA;AACN,IAAM,mBAAA,GAAA,KAAA;AACN,IAAM,oBAAA,GAAuB,CAAA;AAC7B,IAAM,eAAA,GAAkB,cAAA;AACxB,IAAM,2BAAA,GAA8B,YAAA;AACpC,IAAM,0BAAA,GAA6B,WAAA;AACnC,IAAM,0BAAA,GAA6B,WAAA;AACnC,IAAM,qCAAA,GAAwC,sBAAA;AAC9C,IAAM,qBAAA,GAAwB,UAAA;AAC9B,IAAM,yBAAA,GAAA,MAAA;AAWN,IAAM,kBAAA,GAAqB,CAAC,MAAA,KAAmD;AAC7E,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,IAAI,OAAO,WAAW,QAAA,EAAU,OAAO,SAAS,cAAA,CAAe,MAAM,KAAK,QAAA,CAAS,IAAA;AAAA,SAAA,IAC1E,MAAA,YAAkB,WAAA,EAAa,OAAO,MAAA,IAAU,QAAA,CAAS,IAAA;AAAA,EACpE;AAEA,EAAA,OAAO,QAAA,CAAS,IAAA;AAClB,CAAA;AACA,IAAM,mBAAA,GAAsB,CAAC,MAAA,KAA4C;AACvE,EAAA,MAAM,aAAA,GAAgB,gBAAA,CAAiB,MAAA,EAAQ,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAA;AACpE,EAAA,OAAO,aAAA;AACT,CAAA;AACA,IAAM,uBAAA,GAA0B,CAAC,aAAA,EAA4B,IAAA,EAAyB,IAAA,KAAiB;AACrG,EAAA,IAAI,IAAA,KAAA,SAAA,aAAiC;AACnC,IAAA,IAAI,IAAA,KAAA,KAAA,iBAA0B;AAC5B,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,iBAAA,EAAmB,QAAQ,CAAA;AAC3D,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,wBAAA,EAA0B,SAAS,CAAA;AAAA,IACrE,WAAW,IAAA,KAAA,IAAA,aAAsB;AAC/B,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,iBAAA,EAAmB,QAAQ,CAAA;AAC3D,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,wBAAA,EAA0B,SAAS,CAAA;AAAA,IACrE,WAAW,IAAA,KAAA,KAAA,kBAA2B;AACpC,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,iBAAA,EAAmB,MAAM,CAAA;AACzD,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,wBAAA,EAA0B,SAAS,CAAA;AAAA,IACrE,WAAW,IAAA,KAAA,IAAA,cAAuB;AAChC,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,iBAAA,EAAmB,QAAQ,CAAA;AAC3D,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,wBAAA,EAA0B,SAAS,CAAA;AAAA,IACrE,WAAW,IAAA,KAAA,KAAA,eAAwB;AACjC,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,iBAAA,EAAmB,MAAM,CAAA;AACzD,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,wBAAA,EAA0B,QAAQ,CAAA;AAAA,IACpE,WAAW,IAAA,KAAA,IAAA,cAAuB;AAChC,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,iBAAA,EAAmB,QAAQ,CAAA;AAC3D,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,wBAAA,EAA0B,SAAS,CAAA;AAAA,IACrE,WAAW,IAAA,KAAA,IAAA,mBAA4B;AACrC,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,iBAAA,EAAmB,QAAQ,CAAA;AAC3D,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,wBAAA,EAA0B,QAAQ,CAAA;AAAA,IACpE,WAAW,IAAA,KAAA,KAAA,uBAAgC;AACzC,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,iBAAA,EAAmB,QAAQ,CAAA;AAC3D,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,wBAAA,EAA0B,QAAQ,CAAA;AAAA,IACpE,WAAW,IAAA,KAAA,IAAA,iBAA0B;AACnC,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,iBAAA,EAAmB,MAAM,CAAA;AACzD,MAAA,aAAA,CAAc,KAAA,CAAM,WAAA,CAAY,wBAAA,EAA0B,QAAQ,CAAA;AAAA,IACpE;AAAA,EACF;AACF,CAAA;AACA,IAAM,0BAA0B,CAAC,aAAA,EAA4B,IAAA,EAAyB,IAAA,EAAc,gBAAyB,KAAA,KAAkB;AAC7I,EAAA,aAAA,CAAc,YAAA,CAAa,2BAAA,EAA6B,KAAA,CAAM,QAAA,EAAU,CAAA;AACxE,EAAA,aAAA,CAAc,YAAA,CAAa,4BAA4B,IAAI,CAAA;AAC3D,EAAA,aAAA,CAAc,YAAA,CAAa,4BAA4B,IAAI,CAAA;AAC3D,EAAA,aAAA,CAAc,YAAA,CAAa,qCAAA,EAAuC,cAAA,GAAiB,MAAA,GAAS,OAAO,CAAA;AACrG,CAAA;AACA,IAAM,uBAAuB,CAAC,MAAA,EAAqB,MAAyB,IAAA,EAAc,QAAA,EAAmB,gBAAyB,UAAA,KAAiD;AACrL,EAAA,MAAM,aAAA,GAAgB,oBAAoB,MAAM,CAAA;AAChD,EAAA,IAAI,iBAAiB,CAAC,aAAA,CAAc,SAAA,CAAU,QAAA,CAAS,qBAAqB,CAAA,EAAG;AAC7E,IAAA,MAAM,QAAQ,QAAA,CAAS,aAAA,CAAc,aAAa,2BAA2B,CAAA,IAAK,GAAG,CAAA,GAAI,CAAA;AACzF,IAAA,uBAAA,CAAwB,aAAA,EAAe,IAAA,EAAM,IAAA,EAAM,cAAA,EAAgB,KAAK,CAAA;AACxE,IAAA,uBAAA,CAAwB,aAAA,EAAe,MAAM,IAAI,CAAA;AACjD,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,MAAM,gBAAA,GAAmB,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACrD,EAAA,gBAAA,CAAiB,EAAA,GAAK,eAAA;AACtB,EAAA,gBAAA,CAAiB,SAAA,CAAU,GAAA,CAAI,iBAAA,EAAmB,IAAA,EAAA,OAAA,gBAAiC,UAAU,CAAA;AAC7F,EAAA,uBAAA,CAAwB,gBAAA,EAAkB,IAAA,EAAM,IAAA,EAAM,cAAA,EAAgB,CAAC,CAAA;AAEvE,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC3C,EAAA,gBAAA,CAAiB,YAAY,MAAM,CAAA;AACnC,EAAA,MAAA,CAAO,SAAA,CAAU,GAAA,CAAI,IAAA,EAAM,IAAI,CAAA;AAE/B,EAAA,MAAM,YAAA,GAAA,CAAgB,IAAA,KAAA,WAAA,iBAAqC,IAAA,KAAA,QAAA,sBAA0C,IAAA,KAAA,QAAA,wBAA4C,WAAW,QAAA,CAAS,IAAA;AACrK,EAAA,IAAI,YAAA,IAAgB,CAAC,QAAA,EAAU;AAC7B,IAAA,MAAA,CAAO,SAAA,GAAY,YAAA;AACnB,IAAA,MAAA,CAAO,SAAA,CAAU,IAAI,MAAM,CAAA;AAC3B,IAAA,MAAA,CAAO,MAAM,QAAA,GAAW,QAAA;AAAA,EAC1B,WAAW,QAAA,EAAU;AACnB,IAAA,uBAAA,CAAwB,gBAAA,EAAkB,MAAM,IAAI,CAAA;AAEpD,IAAA,MAAM,WAAA,GAAc,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAChD,IAAA,WAAA,CAAY,GAAA,GAAM,MAAM,IAAA,CAAK,IAAA;AAC7B,IAAA,WAAA,CAAY,GAAA,GAAM,MAAA;AAClB,IAAA,WAAA,CAAY,SAAA,GAAY,SAAA;AACxB,IAAA,WAAA,CAAY,MAAM,KAAA,GAAQ,0DAAA;AAC1B,IAAA,WAAA,CAAY,MAAM,MAAA,GAAS,0DAAA;AAC3B,IAAA,WAAA,CAAY,MAAM,MAAA,GAAS,IAAA;AAE3B,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,WAAA,CAAY,MAAM,OAAA,GAAU,CAAA,2BAAA,CAAA;AAC5B,MAAA,WAAA,CAAY,SAAA,CAAU,GAAA,CAAI,OAAA,EAAS,IAAI,CAAA;AACvC,MAAA,MAAA,CAAO,YAAY,WAAW,CAAA;AAAA,IAChC,CAAA,MAAO;AACL,MAAA,WAAA,CAAY,MAAM,OAAA,GAAU,CAAA,uCAAA,CAAA;AAC5B,MAAA,WAAA,CAAY,MAAM,YAAA,GAAe,CAAA,GAAA,CAAA;AACjC,MAAA,gBAAA,CAAiB,YAAY,WAAW,CAAA;AAAA,IAC1C;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,YAAY,gBAAgB,CAAA;AACnC,EAAA,OAAO,gBAAA;AACT,CAAA;AAEO,IAAM,UAAA,GAAa,OAAO,MAAA,EAAoC,IAAA,EAA+B,gBAA+B,IAAA,EAAoB,KAAA,EAAqB,UAAyB,UAAA,KAAgE;AACnQ,EAAA,IAAI,CAAC,SAAA,EAAU,EAAG,OAAO,OAAA,CAAQ,QAAQ,IAAI,CAAA;AAC7C,EAAA,IAAA,GAAO,IAAA,IAAQ,mBAAA;AACf,EAAA,IAAA,GAAO,IAAA,IAAQ,mBAAA;AACf,EAAA,UAAA,GAAa,UAAA,IAAc,yBAAA;AAE3B,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC9B,IAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,MAAA,YAAA,CAAa,OAAO,CAAA;AACpB,MAAA,MAAM,aAAA,GAAgB,mBAAmB,MAAM,CAAA;AAC/C,MAAA,MAAM,aAAA,GAAgB,qBAAqB,aAAA,EAAe,IAAA,EAAM,MAAM,QAAA,IAAY,IAAA,EAAM,cAAA,IAAkB,KAAA,EAAO,UAAU,CAAA;AAC3H,MAAA,OAAA,CAAQ,aAAa,CAAA;AAAA,IACvB,CAAA,EAAG,SAAS,oBAAoB,CAAA;AAAA,EAClC,CAAC,CAAA;AACH;AASO,IAAM,UAAA,GAAa,CAAC,MAAA,EAAoC,KAAA,EAAsB,KAAA,KAA0C;AAC7H,EAAA,IAAI,CAAC,SAAA,EAAU,EAAG,OAAO,OAAA,CAAQ,QAAQ,KAAK,CAAA;AAC9C,EAAA,MAAM,aAAA,GAAgB,mBAAmB,MAAM,CAAA;AAE/C,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC9B,IAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,MAAA,YAAA,CAAa,OAAO,CAAA;AAEpB,MAAA,MAAM,aAAA,GAAgB,oBAAoB,aAAa,CAAA;AACvD,MAAA,IAAI,CAAC,aAAA,EAAe,OAAO,OAAA,CAAQ,KAAK,CAAA;AAExC,MAAA,MAAM,QAAQ,QAAA,CAAS,aAAA,CAAc,YAAA,CAAa,2BAA2B,KAAK,GAAG,CAAA;AAErF,MAAA,IAAI,KAAA,IAAS,SAAS,CAAA,EAAG;AACvB,QAAA,aAAA,CAAc,eAAe,GAAG,CAAA;AAAA,MAClC,OAAO,aAAA,CAAc,YAAA,CAAa,8BAA8B,KAAA,GAAQ,CAAA,EAAG,UAAU,CAAA;AACrF,MAAA,OAAO,QAAQ,IAAI,CAAA;AAAA,IACrB,CAAA,EAAG,SAAS,oBAAoB,CAAA;AAAA,EAClC,CAAC,CAAA;AACH","file":"index.js","sourcesContent":["import { EPreferenceTargets } from \"../interfaces/system-interfaces\";\r\n\r\nexport const CreateUpdatePreference = async (target: EPreferenceTargets, key: string, value: string | null) => {\r\n // TODO: Implement CreateUpdatePreference\r\n};\r\n","export const DEFAULT_ICON_ELEMENT_NAME = \"ion-icon\";\nexport const DEFAULT_SMALL_ICON_BOX_SIZE = 1 / 1.25;\nexport enum EIconTypes {\n OUTLINED = \"-outline\",\n SHARP = \"-sharp\",\n FILLED = \"\",\n}\nexport enum EIcons {\n COPYRIGHT = \"copyright\",\n WOMAN = \"woman\",\n MAN = \"man\",\n AT = \"at\",\n BRIEFCASE = \"briefcase\",\n LOCK_CLOSED = \"lock-closed\",\n BOOKMARK = \"bookmark\",\n CODE_WORKING = \"code-working\",\n BOOKMARKS = \"bookmarks\",\n READER = \"reader\",\n SHARE_SOCIAL = \"share-social\",\n ALERT_CIRCLE = \"alert-circle\",\n SEND = \"send\",\n FOOTBALL = \"football\",\n BALLOON = \"balloon\",\n SCHOOL = \"school\",\n WALK = \"walk\",\n GAME_CONTROLLER = \"game-controller\",\n WATER = \"water\",\n NOTIFICATIONS = \"notifications\",\n LANGUAGE = \"language\",\n CUBE = \"cube\",\n FLAME = \"flame\",\n BED = \"bed\",\n DOCUMENT = \"document\",\n START = \"star\",\n CALENDAR = \"calendar\",\n START_HALF = \"star-half\",\n PEOPLE = \"people\",\n MEGAPHONE = \"megaphone\",\n SETTINGS = \"settings\",\n PERSON_ADD = \"person-add\",\n ANALYTICS = \"analytics\",\n HOURGLASS = \"hourglass\",\n STATS_CHART = \"stats-chart\",\n GRID = \"grid\",\n HEART = \"heart\",\n CART = \"cart\",\n REPEAT = \"repeat\",\n HOME = \"home\",\n WALLET = \"wallet\",\n RELOAD = \"reload\",\n CASH = \"cash\",\n IMAGES = \"images\",\n IMAGE = \"image\",\n LOCK_OPEN = \"lock-open\",\n CHATBOT_ELLIPSES = \"chatbox-ellipses\",\n LOCATION = \"location\",\n BUSINESS = \"business\",\n CONSTRUCT = \"construct\",\n CALENDER_NUMBER = \"calendar-number\",\n HEART_CIRCLE = \"heart-circle\",\n PERSON = \"person\",\n CALL = \"call\",\n FLAG = \"flag\",\n TRANSGENDER = \"transgender\",\n CARD = \"card\",\n ID_CARD = \"id-card\",\n MAIL = \"mail\",\n MAIL_UNREAD = \"mail-unread\",\n KEY = \"key\",\n CREATE = \"create\",\n MENU = \"menu\",\n ARCHIVE = \"archive\",\n ELLIPSIS_HORIZONTAL = \"ellipsis-horizontal\",\n CHEVRON_DOWN = \"chevron-down\",\n ARROW_FORWARD = \"arrow-forward\",\n CHECKMARK_DOUBLE = \"checkmark-done\",\n CLOSE = \"close\",\n WARNING = \"warning\",\n INFORMATION = \"information\",\n HELP = \"help\",\n HELP_CIRCLE = \"help-circle\",\n TRASH_BIN = \"trash-bin\",\n CLOUD_DOWNLOAD = \"cloud-download\",\n CLOUD_UPLOAD = \"cloud-upload\",\n EXIT = \"exit\",\n CAMERA = \"camera\",\n SUNNY = \"sunny\",\n MOON = \"moon\",\n COLOR_PALETTE = \"color-palette\",\n RESIZE = \"resize\",\n EXPAND = \"expand\",\n REMOVE = \"remove\",\n EYE = \"eye\",\n OPTIONS = \"options\",\n SEARCH = \"search\",\n LIST = \"list\",\n TRASH = \"trash\",\n ADD = \"add\",\n ADD_CIRCLE = \"add-circle\",\n CARET_DOWN = \"caret-down\",\n CARET_UP = \"caret-up\",\n FUNNEL = \"funnel\",\n BARBELL = \"barbell\",\n DESKTOP = \"desktop\",\n BUILD = \"build\",\n BULB = \"bulb\",\n NEWSPAPER = \"newspaper\",\n CODE_SLASH = \"code-slash\",\n GLOBE = \"globe\",\n LEAF = \"leaf\",\n REFRESH = \"refresh\",\n LOGIN = \"log-in\",\n SAVE = \"save\",\n STOREFRONT = \"storefront\",\n TEXT = \"text\",\n\n LOGO_GOOGLE = \"logo-google\",\n LOGO_FACEBOOK = \"logo-facebook\",\n LOGO_INSTAGRAM = \"logo-instagram\",\n LOGO_TIKTOK = \"logo-tiktok\",\n LOGO_LINKEDIN = \"logo-linkedin\",\n LOGO_GITHUB = \"logo-github\",\n LOGO_TWITTER = \"logo-twitter\",\n LOGO_WHATSAPP = \"logo-whatsapp\",\n LOGO_YOUTUBE = \"logo-youtube\",\n}\n","import { EIcons } from \"./icon-interfaces\";\n\nexport const UTILITIES_BUTTON_PREFIX = \"btn-utility-\";\nexport const GetUtilityMenuCode = (utilityCode: string) => `${UTILITIES_BUTTON_PREFIX}${utilityCode}`;\n\nexport enum EMenuTargets {\n ClientModule = 1 << 0, // 1\n PublicAdminModule = 1 << 1, // 2\n AdminModule = 1 << 2, // 4\n}\nexport enum EMenuVisibility {\n GuestOnly = 1 << 0, // 1\n AuthenticatedOnly = 1 << 1, // 2\n}\nexport interface IMenuBase {\n id?: string | number;\n menuVisibilities: EMenuVisibility;\n menuName: string;\n menuCode: string;\n menuIcon: EIcons;\n menuTooltip?: string;\n displayOrder: number;\n}\n\nexport type IUtilityMenu = IMenuBase;\nexport interface IPanelMenu extends IMenuBase {\n groupOrder: number;\n menuUrl?: string;\n defaultValue?: string;\n}\nexport interface IClientMenu extends IMenuBase {\n menuUrl: string;\n documentTitle: string;\n pageTitle: string;\n breadcrumbTitle?: string;\n}\n","\"use server\";\n\nimport { EIcons } from \"../interfaces/icon-interfaces\";\nimport { EMenuTargets, EMenuVisibility, IClientMenu, IPanelMenu, IUtilityMenu } from \"../interfaces/menu-interfaces\";\nimport { ENexusModules } from \"../interfaces/system-interfaces\";\n\nexport const GetClientMenus = async (): Promise<IClientMenu[]> => {\n return [\n {\n id: 1,\n menuCode: \"home\",\n menuIcon: EIcons.HOME,\n menuName: \"Home\",\n menuUrl: \"/home\",\n documentTitle: \"Home Page\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 1,\n pageTitle: \"Home Page\",\n breadcrumbTitle: \"Home\",\n },\n {\n id: 2,\n menuCode: \"about-me\",\n menuIcon: EIcons.PERSON,\n menuName: \"About Me\",\n menuUrl: \"/about-me\",\n documentTitle: \"About Me\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 2,\n pageTitle: \"About Me\",\n breadcrumbTitle: \"About Me\",\n },\n {\n id: 3,\n menuCode: \"about-us\",\n menuIcon: EIcons.PERSON,\n menuName: \"About Us\",\n menuUrl: \"/about-us\",\n documentTitle: \"About Us\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 2,\n pageTitle: \"About Us\",\n breadcrumbTitle: \"About Us\",\n },\n {\n id: 4,\n menuCode: \"my-projects\",\n menuIcon: EIcons.BRIEFCASE,\n menuName: \"My Projects\",\n menuUrl: \"/my-projects\",\n documentTitle: \"My Projects\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 3,\n pageTitle: \"My Projects\",\n breadcrumbTitle: \"My Projects\",\n },\n {\n id: 5,\n menuCode: \"products\",\n menuIcon: EIcons.CUBE,\n menuName: \"My Products\",\n menuUrl: \"/products\",\n documentTitle: \"My Products\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 4,\n pageTitle: \"My Products\",\n breadcrumbTitle: \"My Products\",\n },\n {\n id: 6,\n menuCode: \"products\",\n menuIcon: EIcons.CUBE,\n menuName: \"Our Products\",\n menuUrl: \"/our-products\",\n documentTitle: \"Our Products\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 4,\n pageTitle: \"Our Products\",\n breadcrumbTitle: \"Our Products\",\n },\n {\n id: 7,\n menuCode: \"blog\",\n menuIcon: EIcons.NEWSPAPER,\n menuName: \"Blog\",\n menuUrl: \"/blog\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 5,\n pageTitle: \"Blog\",\n breadcrumbTitle: \"Blog\",\n documentTitle: \"Blog\",\n },\n {\n id: 8,\n menuCode: \"portfolio-gallery\",\n menuIcon: EIcons.IMAGES,\n menuName: \"Portfolio Gallery\",\n menuUrl: \"/portfolio-gallery\",\n documentTitle: \"Portfolio Gallery\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 6,\n pageTitle: \"Portfolio Gallery\",\n breadcrumbTitle: \"Portfolio Gallery\",\n },\n {\n id: 9,\n menuCode: \"our-gallery\",\n menuIcon: EIcons.IMAGES,\n menuName: \"Our Gallery\",\n menuUrl: \"/our-gallery\",\n documentTitle: \"Our Gallery\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 6,\n pageTitle: \"Our Gallery\",\n breadcrumbTitle: \"Our Gallery\",\n },\n {\n id: 10,\n menuCode: \"services\",\n menuIcon: EIcons.CONSTRUCT,\n menuName: \"Services\",\n menuUrl: \"/services\",\n documentTitle: \"Services\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 7,\n pageTitle: \"Services\",\n breadcrumbTitle: \"Services\",\n },\n {\n id: 11,\n menuCode: \"faq\",\n menuIcon: EIcons.HELP_CIRCLE,\n menuName: \"FAQ\",\n menuUrl: \"/faq\",\n documentTitle: \"FAQ\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 8,\n pageTitle: \"FAQ\",\n breadcrumbTitle: \"FAQ\",\n },\n {\n id: 12,\n menuCode: \"contact-me\",\n menuIcon: EIcons.CALL,\n menuName: \"Contact Me\",\n menuUrl: \"/contact-me\",\n documentTitle: \"Contact Me\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 9,\n pageTitle: \"Contact Me\",\n breadcrumbTitle: \"Contact Me\",\n },\n {\n id: 13,\n menuCode: \"contact-us\",\n menuIcon: EIcons.CALL,\n menuName: \"Contact Us\",\n menuUrl: \"/contact-us\",\n documentTitle: \"Contact Us\",\n menuVisibilities: EMenuVisibility.GuestOnly | EMenuVisibility.AuthenticatedOnly,\n displayOrder: 9,\n pageTitle: \"Contact Us\",\n breadcrumbTitle: \"Contact Us\",\n },\n ];\n};\n\nexport const GetUtilityMenus = async (): Promise<IUtilityMenu[]> => {\n return [\n {\n id: 1,\n menuCode: \"root-search\",\n menuIcon: EIcons.SEARCH,\n menuName: \"Search\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 1,\n },\n {\n id: 2,\n menuCode: \"favorite-menu\",\n menuIcon: EIcons.HEART,\n menuName: \"Favorite\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 2,\n },\n {\n id: 3,\n menuCode: \"cart-menu\",\n menuIcon: EIcons.CART,\n menuName: \"Cart\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 3,\n },\n {\n id: 4,\n menuCode: \"switch-theme\",\n menuIcon: EIcons.COLOR_PALETTE,\n menuName: \"Theme\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 4,\n },\n {\n id: 5,\n menuCode: \"mega-menu\",\n menuIcon: EIcons.GRID,\n menuName: \"Mega Menu\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 5,\n },\n ];\n};\n\nexport const GetUserPanels = async (): Promise<IPanelMenu[]> => {\n return [\n {\n id: 1,\n menuCode: \"message-menu\",\n menuIcon: EIcons.MAIL,\n menuName: \"Messages\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly,\n displayOrder: 1,\n groupOrder: 1,\n },\n {\n id: 2,\n menuCode: \"notification-menu\",\n menuIcon: EIcons.NOTIFICATIONS,\n menuName: \"Notifications\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly,\n displayOrder: 2,\n groupOrder: 1,\n },\n {\n id: 3,\n menuCode: \"switch-theme\",\n menuIcon: EIcons.COLOR_PALETTE,\n menuName: \"Theme Mode\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 2,\n groupOrder: 2,\n },\n {\n id: 4,\n menuCode: \"language\",\n menuIcon: EIcons.LANGUAGE,\n menuName: \"Language\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 2,\n groupOrder: 2,\n },\n {\n id: 5,\n menuCode: \"currency\",\n menuIcon: EIcons.CASH,\n menuName: \"Currency Format\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 2,\n groupOrder: 2,\n },\n {\n id: 6,\n menuCode: \"calendar-date\",\n menuIcon: EIcons.CALENDAR,\n menuName: \"Calendar Date\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 2,\n groupOrder: 2,\n },\n {\n id: 7,\n menuCode: \"help-support\",\n menuIcon: EIcons.HELP_CIRCLE,\n menuName: \"Help & Support\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly | EMenuVisibility.GuestOnly,\n displayOrder: 2,\n groupOrder: 2,\n },\n {\n id: 8,\n menuCode: \"settings\",\n menuIcon: EIcons.SETTINGS,\n menuName: \"Account Settings\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly,\n displayOrder: 3,\n groupOrder: 3,\n },\n {\n id: 9,\n menuCode: \"switch-branch\",\n menuIcon: EIcons.REPEAT,\n menuName: \"Switch Branch\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly,\n displayOrder: 3,\n groupOrder: 3,\n },\n {\n id: 10,\n menuCode: \"switch-fiscal-year\",\n menuIcon: EIcons.CALENDAR,\n menuName: \"Switch Fiscal Year\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly,\n displayOrder: 3,\n groupOrder: 3,\n },\n {\n id: 11,\n menuCode: \"sign-out\",\n menuIcon: EIcons.EXIT,\n menuName: \"Sign Out\",\n menuVisibilities: EMenuVisibility.AuthenticatedOnly,\n displayOrder: 3,\n groupOrder: 3,\n },\n {\n id: 12,\n menuCode: \"sign-in\",\n menuIcon: EIcons.LOGIN,\n menuName: \"Sign In\",\n menuVisibilities: EMenuVisibility.GuestOnly,\n displayOrder: 3,\n groupOrder: 3,\n },\n ];\n};\n","import { IAccessAction } from \"./permission-interfaces\";\n\nimport { IThemeInformation } from \"./theme-interfaces\";\n\nexport const ROOT_LOADER_IDENTITY = \"root-loader\";\nexport const DEFAULT_FONT_WEIGHTS = [\"300\", \"400\", \"500\", \"600\", \"700\", \"800\"];\nexport const DEFAULT_ANIMATION_DURATION = 300;\nexport const COLUMN_SIZE_ATTRIBUTE_KEY = \"data-column-size\";\n\nexport enum EFontWeights {\n /** Light:300 */\n\n LIGHT = \"300\",\n\n /** Regular:400 */\n\n REGULAR = \"400\",\n\n /** Medium:500 */\n\n MEDIUM = \"500\",\n\n /** Semi Bold:600 */\n\n SEMI_BOLD = \"600\",\n\n /** Bold:700 */\n\n BOLD = \"700\",\n\n /** Extra Bold:800 */\n\n EXTRA_BOLD = \"800\",\n}\n\nexport interface IGlobalLayout {\n /** Document Title */\n\n defaultDocumentTitle: string;\n\n /** Document Description */\n\n defaultDocumentDescription: string;\n\n /** Document Keywords LIKE: \"nexus, solutions, software, development\" */\n\n defaultDocumentKeywords: string[];\n\n /** Is admin or client layout? */\n\n isAdminLayout: boolean;\n\n /** Access actions */\n\n accessActions?: IAccessAction[];\n\n /** System themes */\n\n systemThemes: IThemeInformation[];\n\n /** Should menu be dark? */\n\n shouldMenuDark: boolean;\n}\n\nexport const GetGlobalLayout = (\n defaultDocumentTitle: string,\n\n defaultDocumentDescription: string,\n\n defaultDocumentKeywords: string[],\n): IGlobalLayout => {\n return {\n defaultDocumentTitle: defaultDocumentTitle,\n\n defaultDocumentDescription: defaultDocumentDescription,\n\n defaultDocumentKeywords: defaultDocumentKeywords,\n } as IGlobalLayout;\n};\n\n/** Keyframe / class string names for CSS `animation-name` or matching utility classes. */\n\nexport enum EAnimations {\n FADE_IN = \"fadeIn\",\n FADE_OUT = \"fadeOut\",\n FADE_IN_OUT = \"fadeInOut\",\n\n /** Vertical motion loop only (no enter/exit variant). */\n BOUNCE = \"bounce\",\n\n PULSE_IN = \"pulseIn\",\n\n PULSE_OUT = \"pulseOut\",\n\n PULSE_IN_OUT = \"pulseInOut\",\n\n /** Circular border loop; theme border-top tint cycles like a loader. */\n SPIN = \"spin\",\n\n /** Indeterminate track: segment sweeps left → right (e.g. form submitting). */\n SLIDE_BAR = \"slideBar\",\n\n /** Segment starts at 0, travels to the far wall, reverses back (two-wall bounce). */\n BOUNCE_BAR = \"bounceBar\",\n}\n\n/** Short utility classes applied with `className`. */\n\nexport enum EAnimationClasses {\n FADE_IN = \"an-fa\",\n\n FADE_OUT = \"an-fo\",\n\n FADE_IN_OUT = \"an-fio\",\n\n BOUNCE = \"an-bounce\",\n\n PULSE_IN = \"an-pi\",\n\n PULSE_OUT = \"an-po\",\n\n PULSE_IN_OUT = \"an-pio\",\n\n SPIN = \"an-spin\",\n\n SLIDE_BAR = \"an-sbar\",\n\n BOUNCE_BAR = \"an-bbar\",\n}\n\nexport enum ESizes {\n VeryTiny = \"xxs\",\n\n Tiny = \"xs\",\n\n VerySmall = \"ssm\",\n\n Small = \"sm\",\n\n Normal = \"nr\",\n\n Medium = \"med\",\n\n Large = \"lg\",\n\n ExtraLarge = \"xl\",\n\n VeryExtraLarge = \"xxl\",\n\n FullSize = \"fs\",\n}\n\nexport enum EBadgeTypes {\n Dot = \"dot\",\n\n Count = \"count\",\n}\n\nexport enum EOpacity {\n O05 = \"o05\",\n\n O06 = \"o06\",\n\n O07 = \"o07\",\n\n O08 = \"o08\",\n\n O09 = \"o09\",\n\n FULL = \"o1\",\n\n NONE = \"o0\",\n}\nexport enum EPositions {\n Left = \"left\",\n Right = \"right\",\n Top = \"top\",\n Bottom = \"bottom\",\n Center = \"center\",\n}\nexport enum ETextPositions {\n Left = \"tl\",\n Right = \"tr\",\n Center = \"tc\",\n}\nexport enum EFlexPositions {\n Left = \"jl\",\n Right = \"jr\",\n Center = \"jc\",\n}\n","import { EIcons } from \"./icon-interfaces\";\n\nexport const DEFAULT_THEME_NAME = \"light\";\n\nexport enum EBackgroundColors {\n Background1 = \"var(--B1)\",\n Background2 = \"var(--B2)\",\n Background3 = \"var(--B3)\",\n SuccessColor = \"var(--B10)\",\n WarningColor = \"var(--B11)\",\n InfoColor = \"var(--B12)\",\n ErrorColor = \"var(--B13)\",\n PrimaryColor = \"var(--B20)\",\n BorderColor = \"var(--B30)\",\n BoxShadowColor = \"var(--B41)\",\n PopupBackgroundColor = \"var(--B51)\",\n AlwaysDarkBackgroundColor = \"var(--B52)\",\n ThemeColor100 = \"var(--B100)\",\n ThemeColor200 = \"var(--B200)\",\n ThemeColor400 = \"var(--B400)\",\n ThemeColor600 = \"var(--B600)\",\n ThemeColor800 = \"var(--B800)\",\n ThemeColor950 = \"var(--B950)\",\n}\nexport enum EBackgrounds {\n None = \"no-background\",\n Background1 = \"bg1\",\n Background2 = \"bg2\",\n Background3 = \"bg3\",\n SuccessColor = \"bg10\",\n WarningColor = \"bg11\",\n InfoColor = \"bg12\",\n ErrorColor = \"bg13\",\n PrimaryColor = \"bg20\",\n BorderColor = \"bg30\",\n BoxShadowColor = \"bg41\",\n PopupBackgroundColor = \"bg51\",\n AlwaysDarkBackgroundColor = \"bg52\",\n ThemeColor100 = \"bg100\",\n ThemeColor200 = \"bg200\",\n ThemeColor400 = \"bg400\",\n ThemeColor600 = \"bg600\",\n ThemeColor800 = \"bg800\",\n ThemeColor950 = \"bg950\",\n}\n/** Color divided into 4 parts: background, hover, focus, text */\nexport interface IThemeColors {\n /* Background Color 1 */\n C1: string;\n /* Background Color 2 */\n C2: string;\n /* Background Color 3 */\n C3: string;\n\n /* Success Color */\n C10: string;\n /* Warning/Reset/Clear Color */\n C11: string;\n /* Info Color */\n C12: string;\n /* Error/Delete/Remove Color */\n C13: string;\n\n /* Primary/Submit/Link Button Color */\n C20: string;\n\n /** Border Color 1 */\n C30: string;\n\n /** Box Shadow Color 1 */\n C41: string;\n\n /** Popup/Model Background Color 1 */\n C51: string;\n /** Always Dark Background Color 1 */\n C52: string;\n\n /** Theme Color 100 */\n C100: string;\n /** Theme Color 200 */\n C200: string;\n /** Theme Color 400 */\n C400: string;\n /** Theme Color 600 */\n C600: string;\n /** Theme Color 800 */\n C800: string;\n /** Theme Color 950 */\n C950: string;\n}\nexport interface IThemeInformation {\n displayName: string;\n systemName: string;\n displayOrder: number;\n icon: EIcons;\n themeColors: IThemeColors;\n isSystemTheme: boolean;\n}\n\nexport const DEFAULT_THEME_INFORMATIONS: IThemeInformation[] = [\n {\n displayName: \"Light\",\n systemName: DEFAULT_THEME_NAME,\n displayOrder: 0,\n icon: EIcons.SUNNY,\n themeColors: {\n C1: \"rgb(255, 255, 255)|rgb(240, 240, 240)|rgb(225, 225, 225)|rgb(0, 0, 0)\",\n C2: \"rgb(245, 245, 245)|rgb(230, 230, 230)|rgb(215, 215, 215)|rgb(0, 0, 0)\",\n C3: \"rgb(230, 230, 230)|rgb(200, 200, 200)|rgb(185, 185, 185)|rgb(0, 0, 0)\",\n C10: \"rgb(34, 187, 51)|rgb(0, 150, 80)|rgb(20, 120, 40)|rgb(255, 255, 255)\",\n C11: \"rgb(240, 173, 78)|rgb(210, 140, 50)|rgb(180, 110, 20)|rgb(255, 255, 255)\",\n C12: \"rgb(76, 185, 255)|rgb(100, 180, 255)|rgb(80, 160, 220)|rgb(255, 255, 255)\",\n C13: \"rgb(255, 102, 102)|rgb(220, 80, 80)|rgb(190, 60, 60)|rgb(255, 255, 255)\",\n C20: \"rgb(47, 81, 255)|rgb(30, 60, 220)|rgb(20, 40, 180)|rgb(255, 255, 255)\",\n C30: \"rgb(200, 200, 200)|rgb(180, 180, 180)|rgb(160, 160, 160)|rgb(0, 0, 0)\",\n C41: \"rgba(0, 0, 0, 0.4)|rgb(150, 150, 150)|rgb(120, 120, 120)|rgb(0, 0, 0)\",\n C51: \"rgba(0, 0, 0, 0.6)|rgb(0, 0, 0, 0.8)|rgb(0, 0, 0, 0.9)|rgb(255, 255, 255)\",\n C52: \"rgb(60, 60, 60)|rgb(85, 85, 85)|rgb(35, 35, 35)|rgb(255, 255, 255)\",\n C100: \"rgb(213, 228, 255)|rgb(200, 210, 255)|rgb(185, 200, 220)|rgb(0, 0, 0)\",\n C200: \"rgb(179, 205, 255)|rgb(160, 180, 255)|rgb(140, 160, 220)|rgb(0, 0, 0)\",\n C400: \"rgb(86, 126, 255)|rgb(60, 90, 220)|rgb(40, 60, 180)|rgb(255, 255, 255)\",\n C600: \"rgb(12, 33, 255)|rgb(10, 20, 220)|rgb(8, 15, 180)|rgb(255, 255, 255)\",\n C800: \"rgb(6, 22, 205)|rgb(4, 15, 180)|rgb(2, 10, 120)|rgb(255, 255, 255)\",\n C950: \"rgb(10, 17, 92)|rgb(8, 12, 70)|rgb(6, 9, 40)|rgb(255, 255, 255)\",\n },\n isSystemTheme: true,\n },\n {\n displayName: \"Dark\",\n displayOrder: 1,\n icon: EIcons.MOON,\n systemName: \"dark\",\n themeColors: {\n C1: \"rgb(50, 50, 50)|rgb(40, 40, 40)|rgb(30, 30, 30)|rgb(220, 220, 220)\",\n C2: \"rgb(65, 65, 65)|rgb(55, 55, 55)|rgb(45, 45, 45)|rgb(220, 220, 220)\",\n C3: \"rgb(70, 70, 70)|rgb(60, 60, 60)|rgb(50, 50, 50)|rgb(220, 220, 220)\",\n C10: \"rgb(34, 187, 51)|rgb(0, 150, 80)|rgb(20, 120, 40)|rgb(255, 255, 255)\",\n C11: \"rgb(240, 173, 78)|rgb(210, 140, 50)|rgb(180, 110, 20)|rgb(255, 255, 255)\",\n C12: \"rgb(76, 185, 255)|rgb(100, 180, 255)|rgb(80, 160, 220)|rgb(255, 255, 255)\",\n C13: \"rgb(255, 102, 102)|rgb(220, 80, 80)|rgb(190, 60, 60)|rgb(255, 255, 255)\",\n C20: \"rgb(47, 81, 255)|rgb(30, 60, 220)|rgb(20, 40, 180)|rgb(255, 255, 255)\",\n C30: \"rgb(100, 100, 100)|rgb(90, 90, 90)|rgb(80, 80, 80)|rgb(220, 220, 220)\",\n C41: \"rgb(100, 100, 100)|rgb(255, 255, 255)|rgb(120, 120, 120)|rgb(0, 0, 0)\",\n C51: \"rgba(0, 0, 0, 0.6)|rgb(0, 0, 0, 0.8)|rgb(0, 0, 0, 0.9)|rgb(255, 255, 255)\",\n C52: \"rgb(60, 60, 60)|rgb(85, 85, 85)|rgb(35, 35, 35)|rgb(255, 255, 255)\",\n C100: \"rgb(213, 228, 255)|rgb(200, 210, 255)|rgb(185, 200, 220)|rgb(0, 0, 0)\",\n C200: \"rgb(179, 205, 255)|rgb(160, 180, 255)|rgb(140, 160, 220)|rgb(0, 0, 0)\",\n C400: \"rgb(86, 126, 255)|rgb(60, 90, 220)|rgb(40, 60, 180)|rgb(255, 255, 255)\",\n C600: \"rgb(12, 33, 255)|rgb(10, 20, 220)|rgb(8, 15, 180)|rgb(255, 255, 255)\",\n C800: \"rgb(6, 22, 205)|rgb(4, 15, 180)|rgb(2, 10, 120)|rgb(255, 255, 255)\",\n C950: \"rgb(10, 17, 92)|rgb(8, 12, 70)|rgb(6, 9, 40)|rgb(255, 255, 255)\",\n },\n isSystemTheme: true,\n },\n {\n displayName: \"Light2\",\n systemName: \"light2\",\n displayOrder: 0,\n icon: EIcons.SUNNY,\n themeColors: {\n C1: \"rgb(255, 255, 255)|rgb(240, 240, 240)|rgb(225, 225, 225)|rgb(0, 0, 0)\",\n C2: \"rgb(245, 245, 245)|rgb(230, 230, 230)|rgb(215, 215, 215)|rgb(0, 0, 0)\",\n C3: \"rgb(230, 230, 230)|rgb(200, 200, 200)|rgb(185, 185, 185)|rgb(0, 0, 0)\",\n C10: \"rgb(34, 187, 51)|rgb(0, 150, 80)|rgb(20, 120, 40)|rgb(255, 255, 255)\",\n C11: \"rgb(240, 173, 78)|rgb(210, 140, 50)|rgb(180, 110, 20)|rgb(255, 255, 255)\",\n C12: \"rgb(76, 185, 255)|rgb(100, 180, 255)|rgb(80, 160, 220)|rgb(255, 255, 255)\",\n C13: \"rgb(255, 102, 102)|rgb(220, 80, 80)|rgb(190, 60, 60)|rgb(255, 255, 255)\",\n C20: \"rgb(47, 81, 255)|rgb(30, 60, 220)|rgb(20, 40, 180)|rgb(255, 255, 255)\",\n C30: \"rgb(200, 200, 200)|rgb(180, 180, 180)|rgb(160, 160, 160)|rgb(0, 0, 0)\",\n C41: \"rgba(0, 0, 0, 0.4)|rgb(150, 150, 150)|rgb(120, 120, 120)|rgb(0, 0, 0)\",\n C51: \"rgba(0, 0, 0, 0.6)|rgb(0, 0, 0, 0.8)|rgb(0, 0, 0, 0.9)|rgb(255, 255, 255)\",\n C52: \"rgb(60, 60, 60)|rgb(85, 85, 85)|rgb(35, 35, 35)|rgb(255, 255, 255)\",\n C100: \"rgb(213, 228, 255)|rgb(200, 210, 255)|rgb(185, 200, 220)|rgb(0, 0, 0)\",\n C200: \"rgb(179, 205, 255)|rgb(160, 180, 255)|rgb(140, 160, 220)|rgb(0, 0, 0)\",\n C400: \"rgb(86, 126, 255)|rgb(60, 90, 220)|rgb(40, 60, 180)|rgb(255, 255, 255)\",\n C600: \"rgb(12, 33, 255)|rgb(10, 20, 220)|rgb(8, 15, 180)|rgb(255, 255, 255)\",\n C800: \"rgb(6, 22, 205)|rgb(4, 15, 180)|rgb(2, 10, 120)|rgb(255, 255, 255)\",\n C950: \"rgb(10, 17, 92)|rgb(8, 12, 70)|rgb(6, 9, 40)|rgb(255, 255, 255)\",\n },\n isSystemTheme: true,\n },\n {\n displayName: \"Dark2\",\n displayOrder: 1,\n icon: EIcons.MOON,\n systemName: \"dark2\",\n themeColors: {\n C1: \"rgb(50, 50, 50)|rgb(40, 40, 40)|rgb(30, 30, 30)|rgb(220, 220, 220)\",\n C2: \"rgb(65, 65, 65)|rgb(55, 55, 55)|rgb(45, 45, 45)|rgb(220, 220, 220)\",\n C3: \"rgb(70, 70, 70)|rgb(60, 60, 60)|rgb(50, 50, 50)|rgb(220, 220, 220)\",\n C10: \"rgb(34, 187, 51)|rgb(0, 150, 80)|rgb(20, 120, 40)|rgb(255, 255, 255)\",\n C11: \"rgb(240, 173, 78)|rgb(210, 140, 50)|rgb(180, 110, 20)|rgb(255, 255, 255)\",\n C12: \"rgb(76, 185, 255)|rgb(100, 180, 255)|rgb(80, 160, 220)|rgb(255, 255, 255)\",\n C13: \"rgb(255, 102, 102)|rgb(220, 80, 80)|rgb(190, 60, 60)|rgb(255, 255, 255)\",\n C20: \"rgb(47, 81, 255)|rgb(30, 60, 220)|rgb(20, 40, 180)|rgb(255, 255, 255)\",\n C30: \"rgb(100, 100, 100)|rgb(90, 90, 90)|rgb(80, 80, 80)|rgb(220, 220, 220)\",\n C41: \"rgb(100, 100, 100)|rgb(255, 255, 255)|rgb(120, 120, 120)|rgb(0, 0, 0)\",\n C51: \"rgba(0, 0, 0, 0.6)|rgb(0, 0, 0, 0.8)|rgb(0, 0, 0, 0.9)|rgb(255, 255, 255)\",\n C52: \"rgb(60, 60, 60)|rgb(85, 85, 85)|rgb(35, 35, 35)|rgb(255, 255, 255)\",\n C100: \"rgb(213, 228, 255)|rgb(200, 210, 255)|rgb(185, 200, 220)|rgb(0, 0, 0)\",\n C200: \"rgb(179, 205, 255)|rgb(160, 180, 255)|rgb(140, 160, 220)|rgb(0, 0, 0)\",\n C400: \"rgb(86, 126, 255)|rgb(60, 90, 220)|rgb(40, 60, 180)|rgb(255, 255, 255)\",\n C600: \"rgb(12, 33, 255)|rgb(10, 20, 220)|rgb(8, 15, 180)|rgb(255, 255, 255)\",\n C800: \"rgb(6, 22, 205)|rgb(4, 15, 180)|rgb(2, 10, 120)|rgb(255, 255, 255)\",\n C950: \"rgb(10, 17, 92)|rgb(8, 12, 70)|rgb(6, 9, 40)|rgb(255, 255, 255)\",\n },\n isSystemTheme: true,\n },\n];\n","import { ENexusModules } from \"./interfaces/system-interfaces\";\nimport { EBackgrounds } from \"./interfaces/theme-interfaces\";\n\nexport const APIS = {\n DRIVE: \"\",\n};\nconst FILE = (filePath: string, fileExtension: string, fileName: string) => `${APIS.DRIVE}/static-files/${encodeURIComponent(filePath)}/${encodeURIComponent(fileExtension)}/${encodeURIComponent(fileName)}`;\nexport const FILES = {\n LOGO: {\n ICON: \"/static-files/logos/icon-logo.png\",\n FULL: \"/static-files/logos/full-logo.png\",\n FULL_TEXT: \"/static-files/logos/full-text-logo.png\",\n },\n};\nexport const NEXUS_INFO = {\n CURRENT_MODULE: process.env.CURRENT_MODULE !== undefined ? (parseInt(process.env.CURRENT_MODULE) as ENexusModules) : undefined,\n CURRENT_MODULE_NAME: process.env.CURRENT_MODULE_NAME,\n CURRENT_MODULE_SHORT_NAME: process.env.CURRENT_MODULE_SHORT_NAME,\n IS_PRODUCTION: process.env.NODE_ENV === \"production\",\n SOFTWARE_COMPANY_SHORT_NAME: \"Nexus Solutions\",\n SOFTWARE_COMPANY_FULL_NAME: \"Nexus Solutions Pvt. Ltd.\",\n SOFTWARE_VERSION: process.env.SOFTWARE_VERSION,\n SOFTWARE_LAST_UPDATE_DATE: process.env.SOFTWARE_LAST_UPDATE_DATE,\n SOFTWARE_COMPANY_WEBSITE: \"https://www.bjadhikari.com.np\",\n};\nexport const NEXUS_CONFIG = {\n /** Default revalidate time for static generation (in minutes) */\n DEFAULT_REVALIDATE_TIME: NEXUS_INFO.IS_PRODUCTION ? 60 * 24 : 0,\n\n /** Default timeout for HTTP requests (in milliseconds) */\n DEFAULT_HTTP_REQUEST_TIMEOUT: NEXUS_INFO.IS_PRODUCTION ? 60000 : 1000000,\n\n DEFAULT_BACKGROUND: EBackgrounds.Background1,\n};\n","export enum EKeys {\r\n TAB = \"Tab\",\r\n DELETE = \"Delete\",\r\n ENTER = \"Enter\",\r\n ESCAPE = \"Escape\",\r\n SPACE = \" \",\r\n BACKSPACE = \"Backspace\",\r\n ARROW_UP = \"ArrowUp\",\r\n ARROW_DOWN = \"ArrowDown\",\r\n ARROW_LEFT = \"ArrowLeft\",\r\n ARROW_RIGHT = \"ArrowRight\",\r\n A = \"a\",\r\n B = \"b\",\r\n C = \"c\",\r\n D = \"d\",\r\n DOT = \".\",\r\n}\r\nexport enum EKeyModifier {\r\n None = 0,\r\n Shift = 1 << 0, // 1\r\n Ctrl = 1 << 1, // 2\r\n Alt = 1 << 2, // 4\r\n}\r\n","export function HasFlag(state: number, flag: number): boolean {\r\n return (state & flag) === flag;\r\n}\r\nexport function BitwiseToList<T>(enumType: any, bitwiseValue: number): T[] {\r\n return Object.values(enumType)\r\n .filter((v) => typeof v === \"number\")\r\n .filter((v: number) => (bitwiseValue & v) === v && v !== 0) as T[];\r\n}\r\nexport function ListToBitwise(values: number[]): number {\r\n return values.reduce((acc, curr) => acc | curr, 0);\r\n}\r\n","const DEFAULT_DELAY = 500;\r\n\r\nexport type DebouncedFunction<T extends (...args: any[]) => void> = ((...args: Parameters<T>) => void) & {\r\n cancel: () => void;\r\n executeImmediately: (...args: Parameters<T>) => void;\r\n};\r\n\r\nexport function Debounce<T extends (...args: any[]) => void>(func: T, delay?: number): DebouncedFunction<T> {\r\n let timer: ReturnType<typeof setTimeout> | undefined;\r\n let lastArgs: Parameters<T> | undefined;\r\n let isPending = false;\r\n\r\n const debounced = (...args: Parameters<T>) => {\r\n lastArgs = args;\r\n isPending = true;\r\n clearTimeout(timer);\r\n timer = setTimeout(() => {\r\n timer = undefined;\r\n isPending = false;\r\n lastArgs = undefined;\r\n func(...args);\r\n }, delay ?? DEFAULT_DELAY);\r\n };\r\n\r\n /** Cancel the debounced function */\r\n debounced.cancel = () => {\r\n clearTimeout(timer);\r\n timer = undefined;\r\n isPending = false;\r\n lastArgs = undefined;\r\n };\r\n\r\n /** Execute the debounced function immediately */\r\n debounced.executeImmediately = (...args: Parameters<T>) => {\r\n clearTimeout(timer);\r\n timer = undefined;\r\n const invokeArgs = args.length > 0 ? args : isPending ? lastArgs : undefined;\r\n isPending = false;\r\n lastArgs = undefined;\r\n if (invokeArgs !== undefined) func(...invokeArgs);\r\n };\r\n\r\n return debounced;\r\n}\r\n","\"use client\";\n\nimport { EAnimationClasses } from \"../interfaces/layout-interfaces\";\nimport { NEXUS_INFO } from \"../nexus.environments\";\nimport { EKeyModifier, EKeys } from \"./../interfaces/browser-interfaces\";\nimport { HasFlag } from \"./bitwise-helpers\";\nimport { Debounce } from \"./utility-helpers\";\n\nexport const IsBrowser = (): boolean => typeof window !== \"undefined\" && typeof document !== \"undefined\";\n\nexport const RemoveElement = async (elementIdentity: string | HTMLElement, timeout?: number, animation?: EAnimationClasses): Promise<boolean> => {\n return new Promise(async (resolve) => {\n if (!IsBrowser() || !elementIdentity) return resolve(false);\n else if (typeof elementIdentity === \"string\") {\n const element = document.getElementById(elementIdentity);\n if (element) return await RemoveElement(element, timeout);\n } else if (elementIdentity instanceof HTMLElement || (elementIdentity as HTMLElement)) {\n const timeoutIdentifier = setTimeout(() => {\n (elementIdentity as HTMLElement).remove();\n clearTimeout(timeoutIdentifier);\n elementIdentity.remove();\n return resolve(true);\n }, timeout ?? 0);\n elementIdentity.classList.add(animation ?? EAnimationClasses.FADE_OUT);\n return resolve(true);\n } else return resolve(false);\n });\n};\n\nconst setDocumentTitle = (title?: string) => IsBrowser() && (document.title = `Nexus - ${title ?? NEXUS_INFO.CURRENT_MODULE_SHORT_NAME ?? \"Solutions\"}`);\nexport const SetDocumentTitleDebounce = Debounce(setDocumentTitle, 100);\n\nexport const ConvertRemToPixels = (rem: number): number => {\n const fontSize = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;\n return Math.round(rem * fontSize * 1000) / 1000;\n};\n\nexport const ConvertPixelsToRem = (px: number): number => {\n const fontSize = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;\n return Math.round((px / fontSize) * 1000) / 1000;\n};\nexport const IsKeyPressed = (event: any, key: EKeys | string, modifier?: EKeyModifier): boolean => {\n const isPressed = (event?.key ?? event?.nativeEvent?.data) === key;\n if (!isPressed) return isPressed;\n\n if (!modifier) return isPressed;\n\n if (HasFlag(modifier, EKeyModifier.Shift) && !event.shiftKey) return false;\n if (HasFlag(modifier, EKeyModifier.Ctrl) && !event.ctrlKey) return false;\n if (HasFlag(modifier, EKeyModifier.Alt) && !event.altKey) return false;\n\n return isPressed;\n};\nexport const IsValidURL = (url?: string | null) => url !== undefined && url !== null && url !== \"#\" && url.length > 0;\n\nexport const FindChildElement = (parent: HTMLElement, childSelector: string, shouldScanAllChildren: boolean = false) => {\n if (!parent || !childSelector) return null;\n if (shouldScanAllChildren) {\n const children = parent.querySelectorAll(childSelector);\n return children.length > 0 ? children[0] : null;\n } else return parent.querySelector(childSelector);\n};\n\nexport const FindChildElements = (parent: HTMLElement, childSelector: string, shouldScanAllChildren: boolean = false) => {\n if (!parent || !childSelector) return [];\n if (shouldScanAllChildren) {\n const children = parent.querySelectorAll(childSelector);\n return children.length > 0 ? children : [];\n } else {\n const children = parent.querySelectorAll(childSelector);\n return children.length > 0 ? [children[0]] : [];\n }\n};\n","import { UN } from \"../interfaces/type-interfaces\";\r\n\r\nexport function RenderChildren<T>(parentContainer: HTMLElement, elementList: HTMLElement[], toggleButton: HTMLElement, activeItem: T | UN, visibleItems: T[], hiddenItems: T[], createItem: (item: T) => HTMLElement, refreshElementClass: (element: HTMLElement, activeItem: T | UN) => void, isInit: boolean, isHiddenItemClicked: boolean, dataUniqueKey: string, dataAttributeKey: string) {\r\n if (!isInit) {\r\n // Update classes for all item links based on activeItem\r\n for (const element of elementList) refreshElementClass(element, activeItem);\r\n if (isHiddenItemClicked && activeItem) {\r\n // A hidden item was clicked: replace last visible item in DOM with the active one\r\n const newActiveItem = createItem(activeItem);\r\n const lastItemElement = elementList[elementList.length - 1];\r\n\r\n if (lastItemElement) {\r\n lastItemElement.replaceWith(newActiveItem);\r\n elementList[elementList.length - 1].remove();\r\n elementList[elementList.length - 1] = newActiveItem;\r\n }\r\n } else {\r\n // Ensure last visible DOM element matches last item in visibleItems\r\n const lastVisible = visibleItems[visibleItems.length - 1];\r\n const lastDomItem = elementList[elementList.length - 1];\r\n\r\n const currentItemCode = lastDomItem?.getAttribute(dataAttributeKey);\r\n if (lastVisible && lastDomItem && currentItemCode !== (lastVisible as any)[dataUniqueKey]) {\r\n const correctedItem = createItem(lastVisible);\r\n lastDomItem.replaceWith(correctedItem);\r\n lastDomItem.remove();\r\n elementList[elementList.length - 1] = correctedItem;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n // Initial render: clear and create full visible item\r\n elementList.length = 0;\r\n parentContainer.innerHTML = \"\";\r\n\r\n for (const item of visibleItems) {\r\n const itemItem = createItem(item);\r\n parentContainer.appendChild(itemItem);\r\n elementList.push(itemItem);\r\n }\r\n\r\n // Append toggle icon if hidden items exist\r\n if (hiddenItems.length > 0) {\r\n parentContainer.appendChild(toggleButton);\r\n }\r\n}\r\nexport const SetElementStyles = (element: HTMLElement, styles: React.CSSProperties | UN) => {\r\n if (!element || !styles) return;\r\n if (typeof styles === \"object\") {\r\n Object.keys(styles).forEach((key) => {\r\n const value = styles[key as keyof typeof styles];\r\n if (value === undefined) return;\r\n element.style.setProperty(key, value === null ? null : String(value));\r\n });\r\n } else element.style.setProperty(styles as string, styles as string);\r\n};\r\n","import { EIcons, EIconTypes } from \"./icon-interfaces\";\r\nimport { ESizes } from \"./layout-interfaces\";\r\nimport { EBackgrounds } from \"./theme-interfaces\";\r\nimport { ClickHandler, StringCallbackHandler, UN } from \"./type-interfaces\";\r\n\r\nexport const DEFAULT_BUTTON_CLASS = (column?: number | UN, padding?: number | UN, borderSize?: number | UN, background?: EBackgrounds | UN, defaultClass?: string | UN, needColumnSize?: boolean | UN) => {\r\n const col = `btn pr h w100 sn db toh p${padding ?? 3} ${background ?? EBackgrounds.Background1} df ac ${borderSize ? \"bb\" + borderSize : \"\"} ${defaultClass ?? \"\"}`;\r\n if (needColumnSize !== false) return `${col} col-sm-12 ${`col-${column ?? 12}`}`;\r\n return col;\r\n};\r\n\r\nexport const DEFAULT_LINK_BUTTON_STYLE: React.CSSProperties = {\r\n color: \"var(--B20)\",\r\n borderBottom: \"var(--BRD1) solid var(--B20)\",\r\n width: \"fit-content\",\r\n};\r\n\r\nexport enum ETargets {\r\n Blank = \"_blank\",\r\n Self = \"_self\",\r\n Parent = \"_parent\",\r\n Top = \"_top\",\r\n}\r\nexport enum EButtonTypes {\r\n BUTTON = \"button\",\r\n SUBMIT = \"submit\",\r\n}\r\n\r\nexport interface IButton {\r\n label?: string | StringCallbackHandler | string | UN;\r\n id?: string | UN;\r\n icon?: EIcons | UN;\r\n onClick?: ClickHandler | UN;\r\n url?: string | UN;\r\n background?: EBackgrounds | UN;\r\n defaultClass?: string | UN;\r\n displayOrder?: number | UN;\r\n data?: any | Event | UN;\r\n iconType?: EIconTypes | UN;\r\n iconSize?: ESizes | UN;\r\n columnSize?: number | UN;\r\n borderSize?: number | UN;\r\n target?: ETargets | UN;\r\n}\r\n\r\nexport const GetButton = (label?: string | StringCallbackHandler | string | UN, id?: string | UN, url?: string | UN, icon?: EIcons | UN, onClick?: ClickHandler | UN, data?: any | Event | UN, background?: EBackgrounds | UN, defaultClass?: string | UN, displayOrder?: number | UN, iconType?: EIconTypes | UN, iconSize?: ESizes | UN, columnSize?: number | UN, borderSize?: number | UN, target?: ETargets | UN): IButton => {\r\n return {\r\n label: label,\r\n id: id,\r\n icon: icon,\r\n onClick: onClick,\r\n url: url,\r\n background: background,\r\n defaultClass: defaultClass,\r\n displayOrder: displayOrder,\r\n data: data,\r\n iconType: iconType,\r\n iconSize: iconSize,\r\n columnSize: columnSize,\r\n borderSize: borderSize,\r\n target: target,\r\n };\r\n};\r\n","import React, { JSX } from \"react\";\nimport { SetElementStyles } from \"../../helpers/element-helpers\";\nimport { DEFAULT_ICON_ELEMENT_NAME, EIcons, EIconTypes } from \"../../interfaces/icon-interfaces\";\nimport { EBadgeTypes, EOpacity, ESizes } from \"../../interfaces/layout-interfaces\";\nimport { EBackgrounds } from \"../../interfaces/theme-interfaces\";\nimport { ClickHandler, UN } from \"../../interfaces/type-interfaces\";\n\ninterface IIconBoxProps {\n icon: EIcons;\n children?: React.ReactNode | UN;\n id?: string | UN;\n iconType?: EIconTypes | UN;\n iconSize?: ESizes | UN;\n boxSize?: ESizes | UN;\n background?: EBackgrounds | UN;\n defaultClass?: string | UN;\n iconDefaultClass?: string | UN;\n badgeType?: EBadgeTypes | UN;\n badgeCount?: number | UN;\n iconOpacity?: EOpacity;\n title?: string | UN;\n dataKeys?: { key: string; val: string }[] | UN;\n makeRound?: boolean | UN;\n boxStyle?: React.CSSProperties | UN;\n onClicked?: ClickHandler | UN;\n onMouseEnter?: ClickHandler | UN;\n disabledHoverEffect?: boolean | UN;\n}\ninterface IIconProps {\n icon: EIcons;\n type?: EIconTypes | UN;\n size?: ESizes | UN;\n defaultClass?: string | UN;\n opacity?: EOpacity | UN;\n style?: React.CSSProperties | UN;\n}\n\nconst _getIconClass = (size?: ESizes | UN, defaultClass?: string | UN, opacity?: EOpacity | UN) => `icon ${size ?? ESizes.Normal} ${defaultClass ?? \"\"} ${opacity ?? EOpacity.O08}`;\n\nexport const Icon = ({ icon, type, size, style, defaultClass, opacity }: IIconProps): JSX.Element => {\n const c = _getIconClass(size, defaultClass, opacity ?? EOpacity.O06);\n return React.createElement(DEFAULT_ICON_ELEMENT_NAME, {\n name: `${icon ?? EIcons.HOME}${type ?? EIconTypes.OUTLINED}`,\n style: style ?? undefined,\n className: c,\n });\n};\nexport const CreateIcon = (icon: EIcons, parent?: HTMLElement | UN, type?: EIconTypes | UN, size?: ESizes | UN, defaultClass?: string | UN, opacity?: EOpacity | UN, style?: React.CSSProperties | UN) => {\n const iconElement = document.createElement(DEFAULT_ICON_ELEMENT_NAME);\n (iconElement as any).name = `${icon ?? EIcons.HOME}${type ?? EIconTypes.OUTLINED}` as string;\n SetElementStyles(iconElement, style);\n (iconElement as any).className = _getIconClass(size, defaultClass, opacity) as string;\n if (parent) parent.appendChild(iconElement);\n return iconElement;\n};\n\nconst _getBoxClass = (background?: EBackgrounds | UN, makeRound?: boolean | UN, defaultClass?: string | UN, boxSize?: ESizes | UN, isNeedHover?: boolean | UN) => `ib ${background} ${makeRound !== false ? \"r\" : \"\"} r item ${defaultClass ?? \"\"} ${boxSize ?? ESizes.Normal} ${isNeedHover ? \"h\" : \"\"}`;\n\nexport const Iconbox = ({ children, id, icon, iconType, iconSize, boxSize, background, defaultClass, iconDefaultClass, badgeType, badgeCount, iconOpacity, title, dataKeys, makeRound, boxStyle, onClicked, onMouseEnter, disabledHoverEffect }: Readonly<IIconBoxProps>): JSX.Element => {\n background = background ?? EBackgrounds.Background1;\n const isNeedHover = disabledHoverEffect !== false;\n const c = _getBoxClass(background, makeRound, defaultClass, boxSize, isNeedHover);\n const dataAttributes = (dataKeys ?? []).reduce((acc, { key, val }) => {\n (acc as any)[`data-${key}`] = val;\n return acc;\n }, {});\n\n return (\n <div {...dataAttributes} id={id ?? undefined} style={boxStyle ?? undefined} className={c} onClick={onClicked ?? undefined} onMouseEnter={onMouseEnter ?? undefined}>\n {title && <span className=\"title nw\">{title}</span>}\n <Icon icon={icon} opacity={iconOpacity} type={iconType} size={iconSize} defaultClass={iconDefaultClass} />\n {children}\n </div>\n );\n};\nexport const CreateIconBox = (icon: EIcons, parent?: HTMLElement | UN, children?: HTMLElement | UN, id?: string | UN, iconType?: EIconTypes | UN, background?: EBackgrounds | UN, boxSize?: ESizes | UN, iconSize?: ESizes | UN, defaultClass?: string | UN, iconDefaultClass?: string | UN, badgeType?: EBadgeTypes | UN, badgeCount?: number | UN, iconOpacity?: EOpacity | UN, title?: string | UN, dataKeys?: { key: string; val: string }[] | UN, makeRound?: boolean | UN, boxStyle?: React.CSSProperties | UN, onClicked?: ClickHandler | UN, onMouseEnter?: ClickHandler | UN, disabledHoverEffect?: boolean | UN): HTMLElement => {\n background = background ?? EBackgrounds.Background1;\n const isNeedHover = disabledHoverEffect !== false;\n const iconBox = document.createElement(\"div\");\n iconBox.className = _getBoxClass(background, makeRound, defaultClass, boxSize, isNeedHover);\n SetElementStyles(iconBox, boxStyle);\n\n if (onClicked) iconBox.onclick = onClicked;\n if (onMouseEnter) iconBox.onmouseenter = onMouseEnter;\n if (parent) parent.appendChild(iconBox);\n\n CreateIcon(icon, iconBox, iconType, iconSize, iconDefaultClass, iconOpacity);\n if (children) iconBox.appendChild(children as HTMLElement);\n return iconBox;\n};\n\nexport const CreateToggleButton = (parentElement?: HTMLElement | null, children?: HTMLElement | UN, id?: string, boxSize?: ESizes | null, iconSize?: ESizes | null, opacity?: EOpacity | UN, iconType?: EIconTypes | null, boxBackground?: EBackgrounds) => CreateIconBox(EIcons.ELLIPSIS_HORIZONTAL, parentElement, children, id, iconType, boxBackground, boxSize, iconSize, `h ${boxBackground ?? \"bg1\"} ml5`, \"r90\");\n","import Link from \"next/link\";\r\nimport React from \"react\";\r\nimport { IsValidURL } from \"../../helpers/browser-helpers\";\r\nimport { SetElementStyles } from \"../../helpers/element-helpers\";\r\nimport { DEFAULT_BUTTON_CLASS, DEFAULT_LINK_BUTTON_STYLE, EButtonTypes, ETargets, IButton } from \"../../interfaces/button-interfaces\";\r\nimport { EIconTypes } from \"../../interfaces/icon-interfaces\";\r\nimport { COLUMN_SIZE_ATTRIBUTE_KEY, EFlexPositions, EOpacity, ESizes } from \"../../interfaces/layout-interfaces\";\r\nimport { EBackgroundColors, EBackgrounds } from \"../../interfaces/theme-interfaces\";\r\nimport { ClickHandler, UN } from \"../../interfaces/type-interfaces\";\r\nimport { NEXUS_CONFIG } from \"../../nexus.environments\";\r\nimport { CreateIcon, Icon } from \"./icon-box\";\r\n\r\nexport const SET_BUTTON_ACTIVE_CLASS = (isActive: boolean, element: HTMLElement, overrideColor?: EBackgroundColors | null, overrideActive?: string) => {\r\n if (!element) return;\r\n\r\n if (overrideColor) element.style.setProperty(\"--ACTIVE_BORDER_COLOR\", overrideColor);\r\n\r\n if (isActive) element.classList.add(overrideActive ?? \"active\");\r\n else element.classList.remove(overrideActive ?? \"active\");\r\n};\r\n\r\nexport const Button = ({ button, buttonType, styles, needColumnSize }: { button: IButton; buttonType?: EButtonTypes; styles?: React.CSSProperties | UN; needColumnSize?: boolean | UN }) => {\r\n return IsValidURL(button.url) ? (\r\n <Link href={button.url ?? \"#\"} style={styles ?? undefined} className={DEFAULT_BUTTON_CLASS(button.columnSize, undefined, button.borderSize, button.background, button.defaultClass, needColumnSize)} key={button.displayOrder ?? 0} type={buttonType ?? EButtonTypes.BUTTON} onClick={(event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => button.onClick?.(event, event.currentTarget as HTMLElement, button.data, button.displayOrder)}>\r\n {button.icon && <Icon icon={button.icon} type={button.iconType ?? EIconTypes.FILLED} opacity={EOpacity.O08} size={ESizes.Small} defaultClass=\"mr4\" />}\r\n <span>{button.label instanceof Function ? button.label(button.data) : button.label}</span>\r\n </Link>\r\n ) : (\r\n <button style={styles ?? undefined} className={DEFAULT_BUTTON_CLASS(button.columnSize, undefined, button.borderSize, button.background, button.defaultClass, needColumnSize)} key={button.displayOrder} type={buttonType ?? EButtonTypes.BUTTON} onClick={(event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => button.onClick?.(event, event.currentTarget as HTMLElement, button.data, button.displayOrder)}>\r\n {button.icon && <Icon icon={button.icon} type={button.iconType ?? EIconTypes.FILLED} opacity={EOpacity.O08} size={ESizes.Small} defaultClass=\"mr4\" />}\r\n <span>{button.label instanceof Function ? button.label(button.data) : button.label}</span>\r\n </button>\r\n );\r\n};\r\nexport const CreateButton = (param: IButton, parent?: HTMLElement | UN, styles?: React.CSSProperties | UN, needColumnSize?: boolean | UN) => {\r\n const button = document.createElement(param.url ? \"a\" : \"button\");\r\n button.setAttribute(COLUMN_SIZE_ATTRIBUTE_KEY, (param.columnSize ?? 12).toString());\r\n if (param.icon) {\r\n const icon = CreateIcon(param.icon, button, param.iconType, param.iconSize ?? ESizes.Small, null, null);\r\n icon.classList.add(\"mr4\");\r\n }\r\n\r\n SetElementStyles(button, styles);\r\n\r\n button.className = DEFAULT_BUTTON_CLASS(param.columnSize, undefined, param.borderSize, param.background ?? NEXUS_CONFIG.DEFAULT_BACKGROUND, undefined, needColumnSize);\r\n const span = document.createElement(\"span\");\r\n span.textContent = param.label instanceof Function ? (param.label(param.data) ?? null) : (param.label ?? null);\r\n button.appendChild(span);\r\n button.onclick = (e) => param.onClick?.(e, button, param.data, param.displayOrder);\r\n if (param.url) {\r\n (button as HTMLAnchorElement).href = param.url;\r\n (button as HTMLAnchorElement).target = param.target ?? ETargets.Blank;\r\n }\r\n if (parent) parent.appendChild(button);\r\n return button;\r\n};\r\nexport const Buttons = ({ buttons, buttonStyles, padding, border, maxHeight, boxDefaultClass, needColumnSize, pt }: { buttons: IButton[]; padding?: number; buttonStyles?: React.CSSProperties | UN; border?: number; maxHeight?: number; boxDefaultClass?: string; needColumnSize?: boolean; pt?: number }) => {\r\n return (\r\n <div className={`row ${maxHeight ? \"sb\" : \"\"} ${boxDefaultClass ?? \"\"} r sm p${padding ?? 5} b${border ?? 0} ${pt !== undefined ? `pt${pt}` : \"\"}`}>\r\n {buttons.map((button) => (\r\n <Button key={button.id} button={button} needColumnSize={needColumnSize} styles={buttonStyles} />\r\n ))}\r\n </div>\r\n );\r\n};\r\nexport const CreateButtons = (buttons: IButton[], parent?: HTMLElement | UN, buttonStyles?: React.CSSProperties | UN, columns?: number | UN, padding?: number | UN, border?: number | UN, maxHeight?: number | UN, boxDefaultClass?: string | UN, needColumnSize?: boolean | UN) => {\r\n if (!buttons || buttons.length === 0) return;\r\n maxHeight ??= 25;\r\n const sortButtons = buttons.sort((a, b) => (a.displayOrder ?? 0) - (b.displayOrder ?? 0));\r\n const buttonBox = document.createElement(\"div\");\r\n if (maxHeight) buttonBox.style.maxHeight = `${maxHeight}rem`;\r\n\r\n buttonBox.className = `row ${maxHeight ? \"sb\" : \"\"} ${boxDefaultClass ?? \"\"} r sm p${padding ?? 5} b${border ?? 0}`;\r\n for (const button of sortButtons) {\r\n // Set column size if valid columns provided\r\n if (columns && !button.columnSize) button.columnSize = columns;\r\n\r\n CreateButton(button, buttonBox, buttonStyles, needColumnSize);\r\n }\r\n if (parent) parent.appendChild(buttonBox);\r\n return buttonBox;\r\n};\r\n\r\ninterface ILinkButtonProps {\r\n url: string;\r\n label: string;\r\n defaultClass?: string | UN;\r\n linkDefaultClass?: string | UN;\r\n onClicked?: ClickHandler | UN;\r\n borderBottom?: boolean | UN;\r\n background?: EBackgrounds | UN;\r\n target?: ETargets | UN;\r\n position?: EFlexPositions | UN;\r\n}\r\n\r\nconst _getPDefaultClass = (defaultClass?: string | UN, position?: EFlexPositions | UN) => `${defaultClass ?? \"\"} df ${position ?? EFlexPositions.Center}`;\r\nconst _getLinkDefaultClass = (linkDefaultClass?: string | UN, background?: EBackgrounds | UN) => `${background ?? EBackgrounds.Background1} ${linkDefaultClass ?? \"o08 ho1\"} db h p2 r`;\r\nconst _getLinkDefaultStyle = (borderBottom?: boolean | UN) => (borderBottom ? DEFAULT_LINK_BUTTON_STYLE : { width: \"fit-content\" });\r\n\r\nexport const LinkButton = ({ url, label, defaultClass, linkDefaultClass, onClicked, borderBottom, background, target, position }: Readonly<ILinkButtonProps>) => {\r\n return (\r\n <p className={_getPDefaultClass(defaultClass, position)}>\r\n <Link style={_getLinkDefaultStyle(borderBottom)} onClick={onClicked ?? undefined} target={target ?? undefined} className={_getLinkDefaultClass(linkDefaultClass, background)} href={url}>\r\n {label}\r\n </Link>\r\n </p>\r\n );\r\n};\r\n\r\nexport const CreateLinkButton = (\r\n parent: HTMLElement | UN,\r\n //\r\n url: string,\r\n label: string,\r\n onClicked?: ClickHandler | UN,\r\n defaultClass?: string | UN,\r\n linkDefaultClass?: string | UN,\r\n borderBottom?: boolean | UN,\r\n background?: EBackgrounds | UN,\r\n target?: ETargets | UN,\r\n position?: EFlexPositions | UN,\r\n) => {\r\n const p = document.createElement(\"p\");\r\n p.className = _getPDefaultClass(defaultClass, position);\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.className = _getLinkDefaultClass(linkDefaultClass, background);\r\n link.onclick = onClicked ?? null;\r\n link.innerText = label;\r\n\r\n if (parent) parent.appendChild(p);\r\n p.appendChild(link);\r\n\r\n if (target) link.target = target;\r\n return p;\r\n};\r\n","import React from \"react\";\r\n\r\nexport const GLOBAL_PAGE_TITLE_CLASS = (defaultClass?: string, borderBottom?: number, marginBottom?: number, paddingBottom?: number) => `fs-12 o09 fw600 ${defaultClass ?? \"\"} bb${borderBottom ?? 0} mb${marginBottom ?? 0} pb${paddingBottom ?? 0}`;\r\n\r\nexport const PageTitle = ({ title, defaultClass, borderBottom, marginBottom }: { title: string; defaultClass?: string; borderBottom?: number; marginBottom?: number }) => {\r\n return <h6 className={GLOBAL_PAGE_TITLE_CLASS(defaultClass, borderBottom, marginBottom, borderBottom ? 2 : 0)}>{title}</h6>;\r\n};\r\n","import { UN } from \"../interfaces/type-interfaces\";\r\n\r\nexport const ConvertToCode = (text: string | UN) => text?.toString().toLowerCase().replace(/\\s+/g, \"-\") ?? null;\r\n\r\nexport const IsNullOrEmpty = (value?: string | null) => !(value !== null && value !== undefined && value.toString().trim().length > 0);\r\nexport function MakeFirstLetterUpperCase(str?: string) {\r\n if (!str) return str;\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n}\r\nexport const GetRandomNumber = (min = 0, max = 100) => Math.floor(Math.random() * (max - min + 1)) + min;\r\nexport const GetRandomString = (length: number = 10, includeNumbers: boolean = true, includeSpecialChars: boolean = false): string => {\r\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\" + (includeNumbers ? \"0123456789\" : \"\") + (includeSpecialChars ? \"!@#$%^&*()_+-=[]{}|;:,.<>?/\" : \"\");\r\n let result = \"\";\r\n\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n result += characters[randomIndex];\r\n }\r\n\r\n return result;\r\n};\r\nexport function PadStart(value: string | number | null | undefined, targetLength: number, padString: string = \"0\"): string {\r\n if (value == null || value === undefined) return \"\";\r\n\r\n const str = value?.toString();\r\n if (str.length >= targetLength) return str;\r\n return padString.repeat(targetLength - str.length) + str;\r\n}\r\n","import { IColumn } from \"../interfaces/datatable-interfaces\";\r\nimport { IsNullOrEmpty } from \"./string-helpers\";\r\n\r\nexport function GetVisibleAndHiddenItems<T>(allItems: T[], visibleRef: T[], hiddenRef: T[], activeItem: T | undefined, maxVisibleCount: number): { visibleItems: T[]; hiddenItems: T[] } {\r\n let visibleItems: T[] = [];\r\n let hiddenItems: T[] = [];\r\n visibleRef.length = 0;\r\n hiddenRef.length = 0;\r\n\r\n if (allItems.length <= maxVisibleCount) {\r\n const _ = {\r\n visibleItems: allItems,\r\n hiddenItems: [],\r\n };\r\n visibleRef.push(..._.visibleItems);\r\n hiddenRef.push(..._.hiddenItems);\r\n return _;\r\n }\r\n\r\n if (!activeItem || !allItems.includes(activeItem)) {\r\n visibleItems = allItems.slice(0, maxVisibleCount);\r\n hiddenItems = allItems.slice(maxVisibleCount);\r\n } else {\r\n const index = allItems.indexOf(activeItem);\r\n // It means the active item is within the visible range\r\n const selectedItem = allItems[index];\r\n // 0 to maxVisibleCount - 1\r\n visibleItems = allItems.slice(0, maxVisibleCount - 1);\r\n visibleItems.push(selectedItem);\r\n hiddenItems = allItems.slice(maxVisibleCount - 1);\r\n // remove the hidden but active item from the hidden items\r\n hiddenItems = hiddenItems.filter((item) => item !== selectedItem);\r\n if (index > maxVisibleCount - 1) {\r\n } else {\r\n visibleItems = allItems.slice(0, maxVisibleCount);\r\n hiddenItems = allItems.slice(maxVisibleCount);\r\n }\r\n }\r\n visibleRef.push(...visibleItems);\r\n hiddenRef.push(...hiddenItems);\r\n return { visibleItems, hiddenItems };\r\n}\r\nexport function DynamicSorting<T>(data: T[], key: keyof T, isAsc: boolean) {\r\n return [...data].sort((a, b) => {\r\n const aValue = a[key];\r\n const bValue = b[key];\r\n let result = 0;\r\n\r\n // **Handle null & undefined values**\r\n if (aValue == null && bValue == null) return 0;\r\n if (aValue == null) return isAsc ? -1 : 1;\r\n if (bValue == null) return isAsc ? 1 : -1;\r\n\r\n // **Handle numbers**\r\n if (typeof aValue === \"number\" && typeof bValue === \"number\") result = aValue - bValue;\r\n // **Handle strings**\r\n else if (typeof aValue === \"string\" && typeof bValue === \"string\") result = aValue.localeCompare(bValue);\r\n // **Handle dates**\r\n else if (aValue instanceof Date && bValue instanceof Date) result = aValue.getTime() - bValue.getTime();\r\n // **Handle objects (fallback)**\r\n else if (typeof aValue === \"object\" && typeof bValue === \"object\") result = JSON.stringify(aValue).localeCompare(JSON.stringify(bValue));\r\n // **Handle mixed types (fallback)**\r\n else result = String(aValue).localeCompare(String(bValue));\r\n\r\n return isAsc ? result : -result;\r\n });\r\n}\r\nexport function CreateClone<T>(data: T | T[], index?: number, object?: T): T | T[] {\r\n // Check if the input is an array\r\n if (Array.isArray(data)) {\r\n // Clone each element in the array\r\n let clonedArray = data.map((item) => ({ ...item }));\r\n\r\n // If both index and object are provided, add the object at the specified index\r\n if (index !== undefined && object !== undefined) {\r\n // Insert object at the specified index\r\n clonedArray.splice(index, 0, { ...object });\r\n }\r\n return clonedArray;\r\n } else if (typeof data === \"object\" && data !== null)\r\n // Clone a single object\r\n return { ...data };\r\n else throw new Error(\"Input must be an object or an array of objects\");\r\n}\r\nexport const SearchDatasourceUsingColumns = (dataSource: any[], searchText: string | null, columns: IColumn[]) => {\r\n if (!dataSource || !Array.isArray(dataSource) || dataSource.length === 0 || !columns || columns.length === 0 || IsNullOrEmpty(searchText)) return dataSource;\r\n const searchableColumns = columns.filter((column) => column.isSearchable);\r\n if (searchableColumns.length === 0) return dataSource;\r\n const searchLower = searchText?.toLowerCase().trim();\r\n return dataSource.filter((data) => {\r\n return searchableColumns.some((column) => {\r\n if (column.systemName) {\r\n const value = data[column.systemName];\r\n return value && value.toString().toLowerCase().includes(searchLower);\r\n }\r\n return false;\r\n });\r\n });\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport { ConvertRemToPixels, IsKeyPressed } from \"../../helpers/browser-helpers\";\r\nimport { Debounce, DebouncedFunction } from \"../../helpers/utility-helpers\";\r\nimport { EKeys } from \"../../interfaces/browser-interfaces\";\r\nimport { IDialogboxResults } from \"../../interfaces/dialogbox-interfaces\";\r\nimport { DEFAULT_ANIMATION_DURATION, EPositions } from \"../../interfaces/layout-interfaces\";\r\nimport { EBackgrounds } from \"../../interfaces/theme-interfaces\";\r\nimport { UN } from \"../../interfaces/type-interfaces\";\r\nimport { NEXUS_CONFIG } from \"../../nexus.environments\";\r\n\r\nconst GetDialogId = (buttonIdentity: string) => `dialog-${buttonIdentity}`;\r\nconst VISIBILITY_KEY = \"data-dialog-visibility\";\r\nexport const DEFAULT_DIALOGBOX_HOVER_EFFECT_DELAY = 500;\r\n\r\ninterface IDialogRegistryEntry {\r\n triggerElement: HTMLElement;\r\n affectedElement: HTMLElement;\r\n iggnoreChildClick?: boolean;\r\n close: (isInitial: boolean) => void;\r\n}\r\n\r\n/** All initialized dialogs — O(1) lookup by trigger. */\r\nconst dialogRegistry = new Map<HTMLElement, IDialogRegistryEntry>();\r\n/** Only open dialogs — hot paths iterate this (usually 1–2), not all 100+ instances. */\r\nconst openDialogs = new Set<HTMLElement>();\r\n\r\nlet globalDocumentClickAttached = false;\r\nlet globalDocumentClickTimeout: ReturnType<typeof setTimeout>;\r\n\r\nconst shouldKeepDialogOpen = (entry: IDialogRegistryEntry, path: EventTarget[], target: HTMLElement) => {\r\n if (entry.iggnoreChildClick === false) return target === entry.triggerElement;\r\n\r\n return (\r\n path.includes(entry.triggerElement) ||\r\n path.includes(entry.affectedElement) ||\r\n isClickInsideOpenNestedDialog(entry.triggerElement, path) ||\r\n entry.triggerElement.contains(target)\r\n );\r\n};\r\n\r\nconst isClickInsideOpenNestedDialog = (parentTrigger: HTMLElement, path: EventTarget[]) => {\r\n for (const trigger of openDialogs) {\r\n if (trigger === parentTrigger) continue;\r\n const nested = dialogRegistry.get(trigger);\r\n if (!nested || !parentTrigger.contains(nested.triggerElement)) continue;\r\n if (path.includes(nested.triggerElement) || path.includes(nested.affectedElement)) return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst onGlobalDocumentClick = (e: MouseEvent) => {\r\n if (openDialogs.size === 0) return;\r\n\r\n const path = e.composedPath();\r\n const target = e.target as HTMLElement;\r\n\r\n for (const trigger of [...openDialogs]) {\r\n const entry = dialogRegistry.get(trigger);\r\n if (!entry || shouldKeepDialogOpen(entry, path, target)) continue;\r\n entry.close(false);\r\n }\r\n};\r\n\r\nconst scheduleGlobalDocumentClick = () => {\r\n clearTimeout(globalDocumentClickTimeout);\r\n globalDocumentClickTimeout = setTimeout(() => {\r\n if (openDialogs.size === 0) return;\r\n if (!globalDocumentClickAttached) {\r\n document.addEventListener(\"click\", onGlobalDocumentClick);\r\n globalDocumentClickAttached = true;\r\n }\r\n }, 0);\r\n};\r\n\r\nconst teardownGlobalDocumentClick = () => {\r\n if (openDialogs.size > 0) return;\r\n clearTimeout(globalDocumentClickTimeout);\r\n document.removeEventListener(\"click\", onGlobalDocumentClick);\r\n globalDocumentClickAttached = false;\r\n};\r\n\r\n/** Keep parent panels open when opening a nested dialog (e.g. theme overflow ellipsis inside utility menu). */\r\nconst closeOtherDialogs = (currentTrigger: HTMLElement, isInitial: boolean) => {\r\n for (const trigger of openDialogs) {\r\n if (trigger === currentTrigger) continue;\r\n const entry = dialogRegistry.get(trigger);\r\n if (!entry) continue;\r\n if (entry.triggerElement.contains(currentTrigger)) continue;\r\n entry.close(isInitial);\r\n }\r\n};\r\n\r\nconst closeNestedDialogs = (parentTrigger: HTMLElement, isInitial: boolean) => {\r\n for (const trigger of openDialogs) {\r\n if (trigger === parentTrigger) continue;\r\n const entry = dialogRegistry.get(trigger);\r\n if (!entry || !parentTrigger.contains(entry.triggerElement)) continue;\r\n entry.close(isInitial);\r\n }\r\n};\r\n\r\nconst registerDialog = (entry: IDialogRegistryEntry) => {\r\n dialogRegistry.set(entry.triggerElement, entry);\r\n};\r\n\r\nconst unregisterDialog = (triggerElement: HTMLElement) => {\r\n openDialogs.delete(triggerElement);\r\n dialogRegistry.delete(triggerElement);\r\n teardownGlobalDocumentClick();\r\n};\r\n\r\n/**\r\n *\r\n * @param children\r\n * @param position\r\n * @param buttonIdentity\r\n * @param background\r\n * @param defaultWidth The default width of the dialog box (in REM units).\r\n * @param defaultPadding\r\n * @param iggnoreChildClick\r\n * @param isFixedHeight\r\n * @param defaultClass\r\n * @param preferTopWhenEnoughSpace\r\n *\r\n * @returns\r\n */\r\ninterface IDialogboxProps {\r\n children: React.ReactNode;\r\n hoverEffectDelay?: number | boolean;\r\n position?: EPositions;\r\n buttonIdentity: string;\r\n background?: EBackgrounds;\r\n defaultWidth?: number;\r\n defaultPadding?: number;\r\n autoAdjuctPosition?: boolean;\r\n iggnoreChildClick?: boolean;\r\n isFixedHeight?: boolean;\r\n preferTopWhenEnoughSpace?: boolean;\r\n defaultClass?: string;\r\n}\r\n\r\nexport const GlobalDialogbox = ({ children, hoverEffectDelay, position, buttonIdentity, background, defaultWidth, defaultPadding, iggnoreChildClick, isFixedHeight, defaultClass, preferTopWhenEnoughSpace }: Readonly<IDialogboxProps>) => {\r\n const [isVisible, setIsVisible] = React.useState<boolean>(false);\r\n\r\n const onVisibilityChanged = (visible: boolean) => {\r\n setIsVisible(visible);\r\n };\r\n const onDisposed = () => {};\r\n\r\n useEffect(() => {\r\n let dialogResults: IDialogboxResults | null = null;\r\n const timeout = setTimeout(() => {\r\n clearTimeout(timeout);\r\n const button = document.getElementById(buttonIdentity);\r\n const dialog = document.getElementById(GetDialogId(buttonIdentity));\r\n if (!button || !dialog) return;\r\n\r\n const defaultHeight = isFixedHeight ? \"80vh\" : undefined;\r\n dialogResults = InitializeDialogbox(button, dialog, hoverEffectDelay, defaultHeight, defaultPadding, defaultWidth, background, onVisibilityChanged, onDisposed, iggnoreChildClick, position, defaultClass, preferTopWhenEnoughSpace, null);\r\n }, 0);\r\n return () => {\r\n dialogResults?.destroy();\r\n clearTimeout(timeout);\r\n };\r\n }, []);\r\n\r\n return <ul id={GetDialogId(buttonIdentity)}>{isVisible && children}</ul>;\r\n};\r\n\r\nexport const InitializeDialogbox = (triggerElement: HTMLElement, affectedElement: HTMLElement, hoverEffectDelay?: number | boolean, defaultHeight?: string, defaultPadding?: number, defaultWidth?: number, background?: EBackgrounds, onVisibilityChanged?: (isVisible: boolean) => void, onDisposed?: () => void, iggnoreChildClick?: boolean, position?: EPositions, defaultClass?: string, preferTopWhenEnoughSpace?: boolean, targetInput?: HTMLTextAreaElement | HTMLInputElement | UN, isAutoHideInInitialization?: boolean): IDialogboxResults | null => {\r\n if (!triggerElement || !affectedElement) return null;\r\n defaultHeight = defaultHeight ?? \"auto\";\r\n defaultPadding = defaultPadding ?? 5;\r\n defaultWidth = defaultWidth ?? 34;\r\n\r\n const isTargetForInput: boolean = targetInput ? true : false;\r\n\r\n const forceUpdate = (index: number) => {\r\n if (index === 0) {\r\n affectedElement.classList.remove(\"anim\", \"dn\");\r\n } else if (index === 1) {\r\n affectedElement.classList.add(\"dn\");\r\n affectedElement.classList.remove(\"anim\");\r\n }\r\n };\r\n const forceUpdateDebounced = Debounce(forceUpdate, 300);\r\n const refreshDialog = () => {\r\n const dialog = affectedElement;\r\n const parentElement = triggerElement;\r\n\r\n if (!parentElement) return;\r\n\r\n const inputRec = parentElement.getBoundingClientRect();\r\n const boxRec = dialog.getBoundingClientRect();\r\n const style = window.getComputedStyle(parentElement);\r\n const inputHeight = inputRec.height + parseFloat(style.borderBottomWidth) + parseFloat(style.borderTopWidth);\r\n const top = inputRec.top + inputHeight;\r\n const windowHeight = window.innerHeight;\r\n const bottomOverflow = top + boxRec.height;\r\n dialog.classList.remove(\"T\");\r\n\r\n const topSpace = inputRec.top - boxRec.height;\r\n const bottomSpace = windowHeight - (inputRec.top + inputHeight + boxRec.height);\r\n\r\n if (!isTargetForInput) {\r\n if (preferTopWhenEnoughSpace && topSpace > 0 && bottomSpace > 0) {\r\n // Both sides have space, prefer top\r\n dialog.classList.add(\"T\");\r\n dialog.style.top = `${top - inputHeight - boxRec.height}px`;\r\n } else if (bottomOverflow > windowHeight) {\r\n // Bottom overflow\r\n if (top - inputHeight - boxRec.height > 0) {\r\n dialog.classList.add(\"T\");\r\n dialog.style.top = `${top - inputHeight - boxRec.height}px`;\r\n } else {\r\n // If no space on top either, push to bottom of screen\r\n dialog.style.top = `${windowHeight - boxRec.height}px`;\r\n }\r\n } else {\r\n // Default to bottom\r\n dialog.style.top = `${top}px`;\r\n }\r\n }\r\n\r\n // REM to PX conversion\r\n\r\n const DEFAULT_PADDING = ConvertRemToPixels(1);\r\n\r\n if (position === EPositions.Right) dialog.style.left = `${inputRec.right - boxRec.width}px`;\r\n else if (position === EPositions.Left) dialog.style.left = `${inputRec.left}px`;\r\n else if (position === EPositions.Center) dialog.style.left = `${inputRec.left + inputRec.width / 2 - boxRec.width / 2}px`;\r\n\r\n // Handle viewport overflow for dialogs without explicit position\r\n if (!position) {\r\n if (inputRec.left + boxRec.width > window.innerWidth) dialog.style.left = `${window.innerWidth - boxRec.width - DEFAULT_PADDING}px`;\r\n else dialog.style.left = `${inputRec.left}px`;\r\n } else {\r\n // For positioned dialogs, just check if they overflow and adjust if needed\r\n const currentLeft = parseFloat(dialog.style.left);\r\n if (!isNaN(currentLeft) && currentLeft + boxRec.width > window.innerWidth) {\r\n dialog.style.left = `${window.innerWidth - boxRec.width - DEFAULT_PADDING}px`;\r\n }\r\n }\r\n\r\n if (parseFloat(dialog.style.left) < DEFAULT_PADDING) dialog.style.left = `${DEFAULT_PADDING}px`;\r\n\r\n // ----- Arrow positioning (works for Left / Center / Right) -----\r\n const dialogRect = dialog.getBoundingClientRect();\r\n const inputCenterX = inputRec.left + inputRec.width / 2;\r\n\r\n // Arrow position relative to dialog\r\n let arrowLeft = inputCenterX - dialogRect.left + ConvertRemToPixels(0.15);\r\n\r\n // Clamp arrow to dialog bounds (optional but recommended)\r\n const ARROW_MARGIN = ConvertRemToPixels(1);\r\n arrowLeft = Math.max(ARROW_MARGIN, Math.min(arrowLeft, boxRec.width - ARROW_MARGIN));\r\n\r\n dialog.style.setProperty(\"--arrow-left\", `${arrowLeft}px`);\r\n\r\n const pxWidth = inputRec.width;\r\n const DEFAULT_WIDTH = ConvertRemToPixels(defaultWidth);\r\n dialog.style.width = `${Math.max(pxWidth, DEFAULT_WIDTH)}px`;\r\n };\r\n const _onMouseEnter = (e: MouseEvent) => {\r\n if (!triggerElement.matches(\":hover\")) return;\r\n if (e.target !== triggerElement) return;\r\n\r\n const isVisible = triggerElement.getAttribute(VISIBILITY_KEY) === \"true\";\r\n if (!isVisible) visibility(true, false);\r\n };\r\n let hoverListenersAttached = false;\r\n let onMouseEnterDebounced: DebouncedFunction<typeof _onMouseEnter> | null = null;\r\n const getHoverDebounce = () => {\r\n if (!onMouseEnterDebounced) {\r\n onMouseEnterDebounced = Debounce(_onMouseEnter, (hoverEffectDelay === true ? DEFAULT_DIALOGBOX_HOVER_EFFECT_DELAY : (hoverEffectDelay as number)) ?? DEFAULT_DIALOGBOX_HOVER_EFFECT_DELAY);\r\n }\r\n return onMouseEnterDebounced;\r\n };\r\n const onMouseLeaveCancelHover = () => {\r\n onMouseEnterDebounced?.cancel();\r\n };\r\n const attachHoverListeners = () => {\r\n if (!hoverEffectDelay || hoverListenersAttached) return;\r\n triggerElement.addEventListener(\"mouseenter\", getHoverDebounce());\r\n triggerElement.addEventListener(\"mouseleave\", onMouseLeaveCancelHover);\r\n hoverListenersAttached = true;\r\n };\r\n const onHoverProxy = (e: MouseEvent) => {\r\n attachHoverListeners();\r\n triggerElement.removeEventListener(\"mouseenter\", onHoverProxy);\r\n getHoverDebounce()(e);\r\n };\r\n\r\n const setupDialog = () => {\r\n triggerElement.addEventListener(\"click\", onClick);\r\n if (hoverEffectDelay) triggerElement.addEventListener(\"mouseenter\", onHoverProxy);\r\n if (isTargetForInput) {\r\n triggerElement.addEventListener(\"focusin\", onFocus);\r\n triggerElement.addEventListener(\"focusout\", onFocusOut);\r\n document.addEventListener(\"keydown\", onKeyDown, true);\r\n }\r\n\r\n const timeout = setTimeout(() => {\r\n clearTimeout(timeout);\r\n refreshDialog();\r\n isAutoHideInInitialization = isAutoHideInInitialization ?? true;\r\n visibility(!isAutoHideInInitialization, true);\r\n }, 0);\r\n };\r\n const cleanupDialog = () => {\r\n triggerElement.setAttribute(VISIBILITY_KEY, \"false\");\r\n triggerElement.removeEventListener(\"click\", onClick);\r\n if (hoverEffectDelay) {\r\n triggerElement.removeEventListener(\"mouseenter\", onHoverProxy);\r\n if (hoverListenersAttached) {\r\n triggerElement.removeEventListener(\"mouseenter\", getHoverDebounce());\r\n triggerElement.removeEventListener(\"mouseleave\", onMouseLeaveCancelHover);\r\n onMouseEnterDebounced?.cancel();\r\n }\r\n }\r\n clearTimeout(visibilityTimeout);\r\n teardownGlobalDocumentClick();\r\n if (isTargetForInput) {\r\n triggerElement.removeEventListener(\"focusin\", onFocus);\r\n triggerElement.removeEventListener(\"focusout\", onFocusOut);\r\n document.removeEventListener(\"keydown\", onKeyDown);\r\n document.removeEventListener(\"scroll\", onDocumentScroll);\r\n }\r\n unregisterDialog(triggerElement);\r\n onDisposed?.();\r\n };\r\n let visibilityTimeout: NodeJS.Timeout;\r\n const visibility = (visible: boolean, isInitial: boolean) => {\r\n const isVisible = visible;\r\n if (!triggerElement) return;\r\n if (isVisible) {\r\n if (!isInitial) closeOtherDialogs(triggerElement, false);\r\n\r\n openDialogs.add(triggerElement);\r\n scheduleGlobalDocumentClick();\r\n\r\n clearTimeout(visibilityTimeout);\r\n forceUpdateDebounced.cancel();\r\n onMouseEnterDebounced?.cancel();\r\n\r\n onVisibilityChanged?.(isVisible);\r\n refreshDialog();\r\n const timeout2 = setTimeout(() => {\r\n clearTimeout(timeout2);\r\n refreshDialog();\r\n }, 0);\r\n\r\n affectedElement.classList.remove(\"dn\");\r\n affectedElement.style.pointerEvents = \"\";\r\n const timeout = setTimeout(() => {\r\n clearTimeout(timeout);\r\n affectedElement.classList.remove(\"o0\");\r\n affectedElement.classList.add(\"anim\");\r\n triggerElement.setAttribute(VISIBILITY_KEY, \"true\");\r\n }, 10);\r\n forceUpdateDebounced(0);\r\n\r\n if (isTargetForInput) document.addEventListener(\"scroll\", onDocumentScroll);\r\n } else {\r\n if (!isInitial) closeNestedDialogs(triggerElement, false);\r\n\r\n openDialogs.delete(triggerElement);\r\n teardownGlobalDocumentClick();\r\n\r\n if (isTargetForInput) document.removeEventListener(\"scroll\", onDocumentScroll);\r\n\r\n affectedElement.classList.add(\"o0\", \"anim\");\r\n affectedElement.style.pointerEvents = \"none\";\r\n if (isInitial) forceUpdate(1);\r\n forceUpdateDebounced(1);\r\n visibilityTimeout = setTimeout(() => {\r\n if (!isInitial) onVisibilityChanged?.(false);\r\n clearTimeout(visibilityTimeout);\r\n triggerElement.setAttribute(VISIBILITY_KEY, \"false\");\r\n }, DEFAULT_ANIMATION_DURATION);\r\n }\r\n };\r\n const onKeyDown = (e: KeyboardEvent) => {\r\n if (IsKeyPressed(e, EKeys.TAB)) if (document.activeElement !== triggerElement) visibility(false, false);\r\n };\r\n const onClick = (e: MouseEvent) => {\r\n const isOpen = triggerElement.getAttribute(VISIBILITY_KEY) === \"true\";\r\n const target = e.target as HTMLElement;\r\n if (isOpen && target.id !== triggerElement.id && target !== triggerElement) return;\r\n\r\n if (isOpen && isTargetForInput) return;\r\n\r\n visibility(!isOpen, false);\r\n e.stopPropagation();\r\n };\r\n const onFocus = (e: FocusEvent) => {\r\n if (isTargetForInput) visibility(true, false);\r\n };\r\n\r\n const onFocusOut = (e: FocusEvent) => {\r\n if (!isTargetForInput) return;\r\n\r\n if (!triggerElement) return;\r\n if (!e.relatedTarget || triggerElement.contains(e.relatedTarget as Node | null)) return;\r\n\r\n visibility(false, false);\r\n };\r\n const onDocumentScroll = (e: Event) => {};\r\n\r\n registerDialog({\r\n triggerElement,\r\n affectedElement,\r\n iggnoreChildClick,\r\n close: (isInitial) => visibility(false, isInitial),\r\n });\r\n\r\n if (!affectedElement.classList.contains(\"dialog\")) {\r\n affectedElement.className = defaultClass ?? \"dialog\";\r\n affectedElement.classList.add(\"pf\", \"r\", \"bs2\", \"b1\", \"df\", \"ddc\", `p${defaultPadding}`, background ?? NEXUS_CONFIG.DEFAULT_BACKGROUND, position ?? EPositions.Left);\r\n setupDialog();\r\n affectedElement.style.maxWidth = `calc(100vw - ${ConvertRemToPixels(2)}px)`;\r\n affectedElement.style.maxHeight = `calc(80vh)`;\r\n }\r\n\r\n // Add input-dialog class if it's a target for input to handle specific styling\r\n if (isTargetForInput && !affectedElement.classList.contains(\"input-dialog\")) affectedElement.classList.add(\"input-dialog\");\r\n\r\n return {\r\n destroy: cleanupDialog,\r\n visibility: visibility,\r\n isValid: () => !!affectedElement?.parentElement,\r\n } as IDialogboxResults;\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { CreateClone, DynamicSorting, GetVisibleAndHiddenItems } from \"../../helpers/datasource-helpers\";\r\nimport { RenderChildren } from \"../../helpers/element-helpers\";\r\nimport { IButton } from \"../../interfaces/button-interfaces\";\r\nimport { IDialogboxResults } from \"../../interfaces/dialogbox-interfaces\";\r\nimport { DEFAULT_ICON_ELEMENT_NAME, EIcons, EIconTypes } from \"../../interfaces/icon-interfaces\";\r\nimport { EPositions } from \"../../interfaces/layout-interfaces\";\r\nimport { ClickHandler, UN } from \"../../interfaces/type-interfaces\";\r\nimport { GlobalDialogbox, InitializeDialogbox } from \"./../layouts/global-dialogbox\";\r\nimport { Button, Buttons, CreateButton, CreateButtons, SET_BUTTON_ACTIVE_CLASS } from \"./button\";\r\nimport { CreateToggleButton, Iconbox } from \"./icon-box\";\r\n\r\nexport const THEME_MENU_ELIPSE_BTN_ID = \"theme-menu-ellipse-btn\";\r\n\r\nconst GetMaxVisibleButtons = (parentWidth: number) => (parentWidth > 1400 ? 8 : parentWidth > 1200 ? 7 : parentWidth > 1000 ? 6 : parentWidth > 950 ? 5 : parentWidth > 750 ? 4 : parentWidth > 600 ? 3 : 2);\r\n\r\nexport function CreateTabButtons<T>(buttons: IButton[], parent: HTMLElement | null, activeButton?: IButton | null, onClicked?: ClickHandler): HTMLElement | null {\r\n if (!buttons || buttons.length === 0) return null;\r\n const elementList: HTMLElement[] = [];\r\n const toggleButton = CreateToggleButton();\r\n const themeContainer = document.createElement(\"div\");\r\n const visibleItems: IButton[] = [];\r\n const hiddenItems: IButton[] = [];\r\n const dataKey = \"code\";\r\n const dataAttributeKey = \"data-menu-code\";\r\n let dialogBoxObject: IDialogboxResults | null = null;\r\n let maxVisible = 6;\r\n let activeItem = activeButton ?? buttons[0];\r\n let linkButtons: HTMLElement | undefined = undefined;\r\n\r\n toggleButton.appendChild(themeContainer);\r\n\r\n const buttonContainer = document.createElement(\"div\");\r\n buttonContainer.className = \"df ac jc r\";\r\n if (parent) parent.appendChild(buttonContainer);\r\n\r\n const onButtonClicked: ClickHandler = (event, element, button, index) => {\r\n if (button === activeItem) return;\r\n activeItem = button;\r\n if (onClicked) onClicked(event, element, button, index);\r\n\r\n const isHiddenItemClicked = hiddenItems.some((item) => item === button);\r\n GetVisibleAndHiddenItems(buttons, visibleItems, hiddenItems, activeItem, maxVisible);\r\n RenderChildren(buttonContainer, elementList, toggleButton, activeItem, visibleItems, hiddenItems, createButton, refreshElementClass, false, isHiddenItemClicked, dataKey, dataAttributeKey);\r\n };\r\n for (const button of buttons) button.onClick = (event, element, data, index) => onButtonClicked(event as Event, element, button);\r\n\r\n const createButton = (button: IButton) => {\r\n const btn = CreateButton(button, buttonContainer, null, false);\r\n if (button.id) {\r\n btn.setAttribute(dataAttributeKey, `btn-code-${button.id}`);\r\n btn.id = button.id;\r\n }\r\n\r\n btn.classList.add(\"jc\");\r\n btn.style.height = \"var(--IW)\";\r\n\r\n refreshElementClass(btn, activeItem);\r\n return btn;\r\n };\r\n\r\n const refreshElementClass = (element: HTMLElement, activeItem: IButton | UN) => {\r\n const menuCode = element?.getAttribute(dataAttributeKey);\r\n const isActive = activeItem?.id && `btn-code-${activeItem?.id}` === menuCode;\r\n SET_BUTTON_ACTIVE_CLASS(isActive as boolean, element);\r\n const icon = element.querySelector(DEFAULT_ICON_ELEMENT_NAME);\r\n if (isActive) {\r\n element.classList.add(\"active\");\r\n if (document.activeElement) (document.activeElement as HTMLElement).blur();\r\n if (icon) icon.setAttribute(\"name\", activeItem.icon ?? \"\");\r\n } else {\r\n element.classList.remove(\"active\");\r\n if (activeItem)\r\n if (icon) {\r\n let iconName = icon.getAttribute(\"name\");\r\n if (iconName && !iconName.endsWith(\"-outline\")) iconName += \"-outline\";\r\n icon.setAttribute(\"name\", iconName ?? \"\");\r\n }\r\n }\r\n };\r\n const onVisibility = (isVisible: boolean) => {\r\n if (linkButtons) linkButtons.remove();\r\n linkButtons = CreateButtons(hiddenItems, themeContainer, null, 6, 0);\r\n };\r\n const parentBound = parent?.getBoundingClientRect();\r\n const parentWidth = parentBound ? parentBound.width : 1000;\r\n maxVisible = GetMaxVisibleButtons(parentWidth);\r\n GetVisibleAndHiddenItems(buttons, visibleItems, hiddenItems, activeItem, maxVisible);\r\n RenderChildren(buttonContainer, elementList, toggleButton, activeItem, visibleItems, hiddenItems, createButton, refreshElementClass, true, false, dataKey, dataAttributeKey);\r\n\r\n if (hiddenItems.length > 0) {\r\n linkButtons = CreateButtons(hiddenItems, themeContainer, null, 6, 0);\r\n dialogBoxObject = InitializeDialogbox(toggleButton, themeContainer, true, undefined, undefined, 40, undefined, onVisibility, undefined, false, EPositions.Right, undefined, undefined, undefined, true);\r\n dialogBoxObject?.visibility(false, true);\r\n }\r\n\r\n return buttonContainer;\r\n}\r\nexport const TabButtons = ({ buttons, activeButton, onClicked }: { buttons: IButton[]; activeButton?: string | null | Function; onClicked?: ClickHandler }) => {\r\n const [tabButtons, setTabButtons] = useState<ITab>({ visibleButtons: null, hiddenButtons: null });\r\n const [activeItem, setActiveItem] = useState<string | null>(null);\r\n const tabContainerRef = React.useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const timeout = setTimeout(() => {\r\n clearTimeout(timeout);\r\n\r\n const tabContainer = tabContainerRef.current;\r\n if (!tabContainer || !buttons || buttons.length === 0) return;\r\n\r\n const sortingButtons = DynamicSorting<IButton>(buttons, \"displayOrder\", true);\r\n const newButtons = CreateClone(sortingButtons) as IButton[];\r\n const parentBound = tabContainer.getBoundingClientRect();\r\n const parentWidth = parentBound.width;\r\n const maxVisible = GetMaxVisibleButtons(parentWidth);\r\n const visibleItems: IButton[] = [];\r\n const hiddenItems: IButton[] = [];\r\n const active = typeof activeButton === \"function\" ? (newButtons.find((btn) => btn.id === activeButton()) ?? newButtons[0]) : (newButtons.find((btn) => btn.id === (activeItem ?? activeButton)) ?? newButtons[0]);\r\n GetVisibleAndHiddenItems(newButtons, visibleItems, hiddenItems, active, maxVisible);\r\n\r\n for (const btn of visibleItems) {\r\n if (active && active.id && btn.id === active.id) {\r\n btn.iconType = EIconTypes.FILLED;\r\n btn.defaultClass = \"btn active jc r\";\r\n } else btn.defaultClass = \"bg1 jc r\";\r\n }\r\n\r\n for (const btn of hiddenItems) btn.defaultClass = \"bg1\";\r\n\r\n for (const btn of newButtons) {\r\n btn.onClick = (event, element, data, index) => {\r\n if (btn.id === activeItem) return;\r\n if (onClicked) onClicked(event, element, btn, index);\r\n setActiveItem(btn.id ?? null);\r\n };\r\n }\r\n\r\n setTabButtons({ visibleButtons: visibleItems, hiddenButtons: hiddenItems.length > 0 ? hiddenItems : null });\r\n }, 0);\r\n return () => clearTimeout(timeout);\r\n }, [buttons, activeItem, onClicked]);\r\n\r\n /* ---------------- render ---------------- */\r\n return (\r\n <div ref={tabContainerRef} className=\"df ac jc r\">\r\n {tabButtons.visibleButtons?.map((btn) => (\r\n <Button\r\n styles={{\r\n height: \"var(--IW)\",\r\n }}\r\n key={btn.id}\r\n button={btn}\r\n />\r\n ))}\r\n\r\n {tabButtons.hiddenButtons && (\r\n <Iconbox defaultClass=\"ml5\" icon={EIcons.ELLIPSIS_HORIZONTAL} iconType={EIconTypes.FILLED} iconDefaultClass=\"r90\" id={THEME_MENU_ELIPSE_BTN_ID}>\r\n <GlobalDialogbox defaultPadding={0} iggnoreChildClick={false} buttonIdentity={THEME_MENU_ELIPSE_BTN_ID} position={EPositions.Right}>\r\n <Buttons buttons={tabButtons.hiddenButtons} />\r\n </GlobalDialogbox>\r\n </Iconbox>\r\n )}\r\n </div>\r\n );\r\n};\r\ninterface ITab {\r\n visibleButtons: IButton[] | null;\r\n hiddenButtons: IButton[] | null;\r\n}\r\n","import { EButtonTypes, ETargets } from \"./button-interfaces\";\r\nimport { DatasourceTypes } from \"./datasource-interfaces\";\r\nimport { IColumn } from \"./datatable-interfaces\";\r\nimport { EIcons, EIconTypes } from \"./icon-interfaces\";\r\nimport { EFlexPositions, EOpacity, ESizes } from \"./layout-interfaces\";\r\nimport { EBackgrounds } from \"./theme-interfaces\";\r\nimport { ClickHandler, IInterface, UN } from \"./type-interfaces\";\r\n\r\nexport type OnInputChangeHandler<T> = (currentValue: T, isInitilizing: boolean, isForcedChanged: boolean, isDisposed: boolean, inputKey: string, dataSource?: any | any[]) => void;\r\nexport type OnElementLoad = (inputBox: HTMLElement | null, inputWrapper: HTMLElement | null, isInitilizing: boolean, isForcedChanged: boolean, isDisposed: boolean, currentKey: string, index: number) => void;\r\nexport type AutoCompletes = \"on\" | \"off\";\r\nexport type ForceChangeDefaultValue<T> = (defaultValue: T, type?: EValueChangeTypes, invokeOnChanged?: boolean | UN) => boolean;\r\nexport type OnFormChangeHandler = (currentValue: any, isInitilizing: boolean, isForcedChanged: boolean, isDisposed: boolean, currentKey: string, index: number, type?: EValueChangeTypes, dataSource?: any | any[]) => void;\r\n\r\nexport const DEFAULT_INPUT_BACKGROUND = EBackgrounds.Background1;\r\nexport const MAX_INPUT_TYPE = 1900;\r\nexport const DEFAULT_INPUT_BORDER_SIZE = 1;\r\nexport const DEFAULT_TEXTAREA_ROWS = 3;\r\n\r\nexport const REQUIRED_TEXT1 = \"✲\";\r\n\r\nexport enum EValueChangeTypes {\r\n Default = 0,\r\n ForceChanged = 1,\r\n FormCleared = 2,\r\n FormReset = 3,\r\n Disposed = 4,\r\n}\r\nexport enum ERegexs {\r\n Fullname = \"^[A-Za-z]+(?: [A-Za-z]+)*[0-9]?$\",\r\n Username = \"^[A-Za-z0-9]{7,30}$\",\r\n ContactNumber = \"^[0-9]{10}$\",\r\n /** Allow Null */\r\n ContactNumber_NULL = \"^$|^[0-9]{10}$\",\r\n Email = \"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$\",\r\n /** Allow Null */\r\n Email_NULL = \"^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$\",\r\n EmailUsername = \"^(?=.*[a-zA-Z0-9])[a-zA-Z0-9]+@[a-zA-Z0-9]+\\\\.[a-zA-Z]{2,}$|[a-zA-Z0-9]{8,100}$\",\r\n Password = \"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()_+{}|:,.<>?/~]).{8,30}$\",\r\n EmailUsernameContact = \"^(?:[A-Za-z]+[A-Za-z0-9]{2,30}|[0-9]{10}|[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,})$\",\r\n Hexadecimal = \"^[0-9A-Fa-f]{8}$\",\r\n ContactEmail = \"^(?:[0-9]{10}|[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,})$\",\r\n}\r\nexport enum EInputTypes {\r\n Textbox = 1,\r\n Textarea = 5,\r\n Texteditor = 10,\r\n Timepicker = 15,\r\n Datepicker = 20,\r\n Datetimepicker = 25,\r\n DateRangepicker = 30,\r\n DatetimeRangepicker = 35,\r\n SingleSelection = 40,\r\n MultiSelection = 45,\r\n Checkbox = 50,\r\n Radiobox = 55,\r\n Radiogroup = 60,\r\n Number = 65,\r\n TabularForm = 70,\r\n InputForm = 75,\r\n Range = 80,\r\n Slider = 85,\r\n LinkButton = 2000,\r\n HtmlElement = 3000,\r\n FormTitle = 4000,\r\n SubmitButton = 5000,\r\n}\r\nexport interface IInputIcon {\r\n icon: EIcons;\r\n iconSize?: ESizes | UN;\r\n boxSize?: ESizes | UN;\r\n opacity?: EOpacity | UN;\r\n type?: EIconTypes | UN;\r\n background?: EBackgrounds | UN;\r\n onClicked?: ClickHandler | UN;\r\n onMouseEnter?: ClickHandler | UN;\r\n}\r\nexport interface IInputRootParameters<T> extends IInterface {\r\n id: string;\r\n inputType: EInputTypes;\r\n columnSize: number;\r\n displayOrder: number;\r\n borderSize: number;\r\n background?: EBackgrounds | UN;\r\n inputSize?: ESizes | UN;\r\n defaultClass?: string | UN;\r\n autoAdjustColumn?: boolean | UN;\r\n icon?: IInputIcon | UN;\r\n parentKey?: string;\r\n defaultValue?: T | UN;\r\n onChanged?: OnInputChangeHandler<T> | UN;\r\n placeholder?: string | UN;\r\n label?: string | UN;\r\n}\r\nexport interface IInputBaseParameters<T> extends IInputRootParameters<T> {\r\n validatorKey?: string | UN;\r\n isRequired: boolean;\r\n autoComplete?: AutoCompletes | UN;\r\n isReadonly?: boolean | UN;\r\n}\r\nexport interface IElement extends IInputRootParameters<void> {\r\n onLoad?: OnElementLoad | UN;\r\n}\r\nexport interface IInputParameters<T> extends IInputBaseParameters<T> {\r\n minLength?: number | UN;\r\n maxLength?: number | UN;\r\n}\r\nexport interface ILinkbutton extends IElement {\r\n href: string;\r\n onClicked?: ClickHandler | UN;\r\n borderBottom?: boolean | UN;\r\n opacity?: EOpacity | UN;\r\n position?: EFlexPositions | UN;\r\n target?: ETargets | UN;\r\n}\r\nexport interface ISubmitbutton extends IElement {\r\n onClicked?: ClickHandler | UN;\r\n type?: EButtonTypes | UN;\r\n}\r\nexport interface ITextbox extends IInputParameters<string | null> {\r\n isPassword?: boolean | UN;\r\n regexKey?: ERegexs | UN;\r\n}\r\nexport interface ISlider extends IInputParameters<number | null> {\r\n step?: number | UN;\r\n showTitleOnTop?: boolean | UN;\r\n}\r\nexport interface ICheckbox extends IInputBaseParameters<boolean | any> {\r\n checkedValue?: any | UN;\r\n groupId?: string | UN;\r\n}\r\nexport interface IRadiobox extends ICheckbox {}\r\nexport interface ITextarea extends IInputParameters<string | null> {\r\n isShowPreview?: boolean | UN;\r\n rows?: number | UN;\r\n regexKey?: ERegexs | UN;\r\n}\r\nexport interface INumber extends IInputParameters<number | null> {\r\n floatingPoint?: number | UN;\r\n isAutoAdjust?: boolean | UN;\r\n step?: number | string | UN;\r\n}\r\nexport interface IDate extends IInputBaseParameters<string | Date | null> {\r\n minDate?: Date | string | UN;\r\n maxDate?: Date | string | UN;\r\n}\r\nexport interface ISelection extends IInputBaseParameters<any | any[] | null> {\r\n isSearchable: boolean | UN;\r\n valueKey: string | UN;\r\n labelKey: string | UN;\r\n selectedLabel?: string | UN;\r\n columnName?: string | UN;\r\n dataSource: DatasourceTypes | UN;\r\n onSelectionChanged?: OnInputChangeHandler<any | any[] | null> | UN;\r\n columns?: IColumn[] | UN;\r\n minDialogWidth?: number | UN;\r\n bitwiseEnum?: any | UN;\r\n}\r\nexport interface ITablularForm extends IInputParameters<any[]> {\r\n inputs: IInputRootParameters<any>[];\r\n disabledAdd?: boolean | UN;\r\n disabledRemove?: boolean | UN;\r\n}\r\nexport interface IInputCreateResults {\r\n input: IInputRootParameters<any>;\r\n /** This is input element like: textbox, textarea, checkbox */\r\n inputElement: HTMLElement;\r\n /** input element base parent like: formGroup/formWrapper */\r\n rootElement: HTMLElement;\r\n forceChangeDefaultValue: ForceChangeDefaultValue<any> | null;\r\n dispose: (invokeOnChanged?: boolean | UN) => void;\r\n onParentChanged?: OnFormChangeHandler | UN;\r\n}\r\nexport interface IForm {\r\n inputs: IInputRootParameters<any>[];\r\n onChanged: OnFormChangeHandler;\r\n index: number;\r\n isTabularForm: boolean;\r\n parentIdentifier: HTMLElement | UN | string;\r\n defaultValue?: any | UN;\r\n}\r\nexport interface IFormCreateResults {\r\n inputResults: IInputCreateResults[];\r\n formElement: HTMLElement;\r\n dispose: (invokeOnChanged?: boolean) => void;\r\n forceChangeDefaultValue: ForceChangeDefaultValue<any> | null;\r\n}\r\n\r\nexport const GetForms = {\r\n FORM: (inputs: IInputRootParameters<any>[], parentIdentifier: HTMLElement | string | UN, onChanged: OnFormChangeHandler, defaultValue?: any, index?: number, isTabularForm?: boolean): IForm => ({ inputs, onChanged, index: index ?? 0, isTabularForm: isTabularForm ?? false, parentIdentifier, defaultValue }),\r\n};\r\nexport const GetInputs = {\r\n ICON: (icon: EIcons, iconSize?: ESizes | UN, boxSize?: ESizes | UN, opacity?: EOpacity | UN, type?: EIconTypes | UN, background?: EBackgrounds | UN, onClicked?: ClickHandler | UN, onMouseEnter?: ClickHandler | UN): IInputIcon => ({\r\n icon: icon,\r\n iconSize: iconSize,\r\n boxSize: boxSize,\r\n opacity: opacity,\r\n type: type,\r\n background: background,\r\n onClicked: onClicked,\r\n onMouseEnter: onMouseEnter,\r\n }),\r\n TEXTBOX: (id: string, columnSize: number, displayOrder: number, label?: string | UN, placeholder?: string | UN, validatorKey?: string | UN, minLength?: number | UN, maxLength?: number | UN, regexKey?: ERegexs | UN, isPassword?: boolean | UN, isReadonly?: boolean | UN, isAutoComplete?: boolean | UN, defaultValue?: string | UN, background?: EBackgrounds | UN, borderSize?: number | UN, inputSize?: ESizes | UN, icon?: IInputIcon | UN, defaultClass?: string | UN, onChanged?: OnInputChangeHandler<string | null> | UN): ITextbox => ({\r\n id: id,\r\n columnSize: columnSize,\r\n displayOrder: displayOrder,\r\n label: label,\r\n placeholder: placeholder,\r\n validatorKey: validatorKey,\r\n minLength: minLength,\r\n maxLength: maxLength,\r\n regexKey: regexKey,\r\n defaultValue: defaultValue,\r\n background: background,\r\n borderSize: borderSize ?? DEFAULT_INPUT_BORDER_SIZE,\r\n inputSize: inputSize,\r\n isPassword: isPassword,\r\n icon: icon,\r\n isReadonly: isReadonly,\r\n defaultClass: defaultClass,\r\n onChanged: onChanged,\r\n isRequired: (minLength !== undefined && minLength !== null && minLength > 0) ?? false,\r\n inputType: EInputTypes.Textbox,\r\n autoComplete: isAutoComplete !== false ? undefined : \"off\",\r\n }),\r\n TEXTAREA: (id: string, columnSize: number, displayOrder: number, label?: string | UN, placeholder?: string | UN, validatorKey?: string | UN, minLength?: number | UN, maxLength?: number | UN, rows?: number | UN, isShowPreview?: boolean | UN, defaultValue?: string | UN, regexKey?: ERegexs | UN, isReadonly?: boolean | UN, isAutoComplete?: boolean | UN, background?: EBackgrounds | UN, borderSize?: number | UN, inputSize?: ESizes | UN, icon?: IInputIcon | UN, defaultClass?: string | UN, onChanged?: OnInputChangeHandler<string | null> | UN): ITextarea => ({\r\n id: id,\r\n columnSize: columnSize,\r\n displayOrder: displayOrder,\r\n label: label,\r\n placeholder: placeholder,\r\n validatorKey: validatorKey,\r\n minLength: minLength,\r\n maxLength: maxLength,\r\n isShowPreview: isShowPreview,\r\n rows: rows ?? DEFAULT_TEXTAREA_ROWS,\r\n regexKey: regexKey,\r\n defaultValue: defaultValue,\r\n background: background,\r\n borderSize: borderSize ?? DEFAULT_INPUT_BORDER_SIZE,\r\n inputSize: inputSize,\r\n icon: icon,\r\n isReadonly: isReadonly,\r\n defaultClass: defaultClass,\r\n onChanged: onChanged,\r\n isRequired: (minLength !== undefined && minLength !== null && minLength > 0) ?? false,\r\n inputType: EInputTypes.Textarea,\r\n autoComplete: isAutoComplete !== false ? undefined : \"off\",\r\n }),\r\n NUMBER: (id: string, columnSize: number, displayOrder: number, label?: string | UN, placeholder?: string | UN, validatorKey?: string | UN, floatingPoint?: number | UN, isAutoAdjust?: boolean | UN, step?: number | string | UN, minLength?: number | UN, maxLength?: number | UN, defaultValue?: number | UN, isAutoComplete?: boolean | UN, background?: EBackgrounds | UN, borderSize?: number | UN, inputSize?: ESizes | UN, icon?: IInputIcon | UN, isReadonly?: boolean | UN, defaultClass?: string | UN, onChanged?: OnInputChangeHandler<number | null> | UN): INumber => ({\r\n id: id,\r\n columnSize: columnSize,\r\n displayOrder: displayOrder,\r\n label: label,\r\n placeholder: placeholder,\r\n validatorKey: validatorKey,\r\n minLength: minLength,\r\n maxLength: maxLength,\r\n floatingPoint: floatingPoint,\r\n isAutoAdjust: isAutoAdjust,\r\n step: step,\r\n defaultValue: defaultValue,\r\n background: background,\r\n borderSize: borderSize ?? DEFAULT_INPUT_BORDER_SIZE,\r\n inputSize: inputSize,\r\n icon: icon,\r\n isReadonly: isReadonly,\r\n defaultClass: defaultClass,\r\n onChanged: onChanged,\r\n isRequired: (minLength !== undefined && minLength !== null && minLength > 0) ?? false,\r\n inputType: EInputTypes.Number,\r\n autoComplete: isAutoComplete !== false ? undefined : \"off\",\r\n }),\r\n\r\n CHECKBOX: (id: string, columnSize: number, displayOrder: number, label?: string | UN, defaultValue?: boolean | UN, groupId?: string | UN, checkedValue?: any | UN, isAutoComplete?: boolean | UN, background?: EBackgrounds | UN, borderSize?: number | UN, inputSize?: ESizes | UN, icon?: IInputIcon | UN, isRequired?: boolean | UN, isReadonly?: boolean | UN, defaultClass?: string | UN, onChanged?: OnInputChangeHandler<boolean | any | null> | UN): ICheckbox => ({\r\n id: id,\r\n columnSize: columnSize,\r\n displayOrder: displayOrder,\r\n label: label,\r\n defaultValue: defaultValue,\r\n groupId: groupId,\r\n checkedValue: checkedValue,\r\n background: background,\r\n borderSize: borderSize ?? 0,\r\n inputSize: inputSize,\r\n icon: icon,\r\n isReadonly: isReadonly,\r\n defaultClass: defaultClass,\r\n onChanged: onChanged,\r\n isRequired: isRequired ?? false,\r\n inputType: EInputTypes.Checkbox,\r\n autoComplete: isAutoComplete !== false ? undefined : \"off\",\r\n }),\r\n RADIOBOX: (id: string, columnSize: number, displayOrder: number, label?: string | UN, defaultValue?: boolean | UN, groupId?: string | UN, checkedValue?: any | UN, isAutoComplete?: boolean | UN, background?: EBackgrounds | UN, borderSize?: number | UN, inputSize?: ESizes | UN, icon?: IInputIcon | UN, isRequired?: boolean | UN, isReadonly?: boolean | UN, defaultClass?: string | UN, onChanged?: OnInputChangeHandler<boolean | any | null> | UN): ICheckbox => ({\r\n id: id,\r\n columnSize: columnSize,\r\n displayOrder: displayOrder,\r\n label: label,\r\n groupId: groupId,\r\n checkedValue: checkedValue,\r\n defaultValue: defaultValue,\r\n background: background,\r\n borderSize: borderSize ?? 0,\r\n inputSize: inputSize,\r\n icon: icon,\r\n isReadonly: isReadonly,\r\n defaultClass: defaultClass,\r\n onChanged: onChanged,\r\n isRequired: isRequired ?? false,\r\n inputType: EInputTypes.Radiobox,\r\n autoComplete: isAutoComplete !== false ? undefined : \"off\",\r\n }),\r\n LINKBUTTON: (id: string, columnSize: number, displayOrder: number, href: string, label?: string | UN, onClicked?: ClickHandler | UN, onLoad?: OnElementLoad | UN, borderBottom?: boolean | UN, opacity?: EOpacity | UN, position?: EFlexPositions | UN, target?: ETargets | UN, background?: EBackgrounds | UN, borderSize?: number | UN, inputSize?: ESizes | UN, defaultClass?: string | UN): ILinkbutton => ({\r\n id: id,\r\n columnSize: columnSize,\r\n displayOrder: displayOrder,\r\n href: href,\r\n label: label,\r\n onClicked: onClicked,\r\n onLoad: onLoad,\r\n borderBottom: borderBottom,\r\n opacity: opacity,\r\n position: position,\r\n target: target,\r\n background: background,\r\n borderSize: borderSize ?? 0,\r\n inputSize: inputSize,\r\n defaultClass: defaultClass,\r\n inputType: EInputTypes.LinkButton,\r\n }),\r\n BUTTON: (\r\n //\r\n id: string,\r\n columnSize: number,\r\n displayOrder: number,\r\n label?: string | UN,\r\n onClicked?: ClickHandler | UN,\r\n type?: EButtonTypes | UN,\r\n onLoad?: OnElementLoad | UN,\r\n background?: EBackgrounds | UN,\r\n borderSize?: number | UN,\r\n inputSize?: ESizes | UN,\r\n defaultClass?: string | UN,\r\n icon?: IInputIcon | UN,\r\n ): ISubmitbutton => ({\r\n id: id,\r\n columnSize: columnSize,\r\n displayOrder: displayOrder,\r\n label: label,\r\n type: type,\r\n onClicked: onClicked,\r\n onLoad: onLoad,\r\n background: background ?? EBackgrounds.PrimaryColor,\r\n borderSize: borderSize ?? DEFAULT_INPUT_BORDER_SIZE,\r\n inputSize: inputSize,\r\n defaultClass: defaultClass,\r\n inputType: EInputTypes.SubmitButton,\r\n icon: icon,\r\n }),\r\n};\r\n","import { EValueChangeTypes, IInputCreateResults, IInputRootParameters } from \"../interfaces/input-interfaces\";\r\nimport { ESizes } from \"../interfaces/layout-interfaces\";\r\nimport { UN } from \"../interfaces/type-interfaces\";\r\n\r\nexport const GetParentKey = (parentKey?: string | null) => {\r\n if (parentKey) return parentKey.split(\"|\")[0];\r\n return undefined;\r\n};\r\nexport const GetInputId = (param: IInputRootParameters<any>) => param.id.split(\"-\")[0];\r\nexport const GetInputClasses = (size?: ESizes | UN, cls?: string | UN) => `ipt pr sn ${size ?? \"\"} ${cls ?? \"\"}`;\r\nexport const SetHaveValueClass = (input: HTMLElement, isHaveValue: boolean) => {\r\n if (!input) return;\r\n input.classList.toggle(\"txhv\", isHaveValue);\r\n};\r\nexport const ForceSetValues = (inputs: IInputCreateResults[] | UN, keys: string[] | UN, value: any | null, timeout?: number | UN, invokeOnChanged?: boolean | UN) => {\r\n if (!inputs || inputs.length === 0) return;\r\n for (const input of inputs) if (!keys || keys.length === 0 || keys.includes(GetInputId(input.input))) ForceSetValue(input, value, timeout, invokeOnChanged);\r\n};\r\nexport const ForceSetValue = (input?: IInputCreateResults | null, value?: any | null, timeout?: number | UN, invokeOnChanged?: boolean | UN) => {\r\n const timeoutValue = setTimeout(() => {\r\n input?.forceChangeDefaultValue && input.forceChangeDefaultValue(value, EValueChangeTypes.ForceChanged, invokeOnChanged);\r\n clearTimeout(timeoutValue);\r\n }, timeout ?? 0);\r\n};\r\n","import { DEFAULT_INPUT_BORDER_SIZE, IInputRootParameters, REQUIRED_TEXT1 } from \"../../interfaces/input-interfaces\";\r\nimport { EBackgrounds } from \"../../interfaces/theme-interfaces\";\r\nimport { CreateIconBox } from \"../documents/icon-box\";\r\n\r\nexport const CreateInputBox = (param: IInputRootParameters<any>, child: HTMLElement | null, parent: HTMLElement | null, isTabular: boolean) => {\r\n const bg = param.background ?? \"bg1\";\r\n\r\n const BORDER_SIZE = param.borderSize ?? DEFAULT_INPUT_BORDER_SIZE;\r\n\r\n const border = BORDER_SIZE > 0 ? `b${BORDER_SIZE}` : \"bat1\";\r\n const box = document.createElement(\"div\");\r\n box.className = `ipt-bx ${param.inputSize ?? \"\"} db bb anim ${border} pr r ${bg}`;\r\n if (child) box.appendChild(child);\r\n\r\n if (param.label && !isTabular) {\r\n const label = document.createElement(\"label\");\r\n label.className = \"pa t50 ty50 left ilb en anim ml2\";\r\n label.innerHTML = param.label + ((param as any).isRequired ? `<span class=\"tx21 fs-08 ml1\">${REQUIRED_TEXT1}</span>` : \"\");\r\n label.htmlFor = param.id;\r\n box.appendChild(label);\r\n }\r\n\r\n if (param.icon) {\r\n box.classList.add(\"df\", \"ac\");\r\n const I = param.icon;\r\n CreateIconBox(I.icon, box, null, null, I.type, I.background ?? param.background ?? EBackgrounds.None, I.boxSize, I.iconSize, null, null, null, null, I.opacity, null, null, null, null, I.onClicked, I.onMouseEnter, (I.onClicked || I.onMouseEnter) !== undefined);\r\n }\r\n\r\n if (parent) parent.appendChild(box);\r\n return box;\r\n};\r\nexport const CreateInputWrapper = (param: IInputRootParameters<any>, child: HTMLElement | null, parent: HTMLElement | null) => {\r\n const col = document.createElement(\"div\");\r\n const wp = document.createElement(\"div\");\r\n const smb = document.createElement(\"div\");\r\n col.className = !param.columnSize || param.columnSize === 12 ? \"col-12\" : `col-${param.columnSize}`;\r\n if (param.autoAdjustColumn !== false) col.classList.add(\"col-sm-12\");\r\n wp.className = \"ipt-wp\";\r\n smb.className = \"smb\";\r\n if (child) wp.appendChild(child);\r\n wp.appendChild(smb);\r\n col.appendChild(wp);\r\n if (parent) parent.appendChild(col);\r\n return wp;\r\n};\r\n","import { GetInputId } from \"../../helpers/input-helpers\";\r\nimport { EButtonTypes } from \"../../interfaces/button-interfaces\";\r\nimport { EIconTypes } from \"../../interfaces/icon-interfaces\";\r\nimport { IElement, IInputCreateResults, ILinkbutton, ISubmitbutton } from \"../../interfaces/input-interfaces\";\r\nimport { EBackgrounds } from \"../../interfaces/theme-interfaces\";\r\nimport { CreateLinkButton } from \"../documents/button\";\r\nimport { CreateIconBox } from \"../documents/icon-box\";\r\nimport { CreateInputBox, CreateInputWrapper } from \"./input-box\";\r\n\r\nexport const CreateElement = (param: IElement, parentElement: HTMLElement | null, isTabular: boolean): IInputCreateResults => {\r\n const ELEMENT_ID = GetInputId(param);\r\n const box = CreateInputBox(param, null, null, isTabular);\r\n const label = box.querySelector(\"label\") as HTMLLabelElement;\r\n if (label) label.remove();\r\n const wrapper = isTabular ? box : CreateInputWrapper(param, box, parentElement);\r\n\r\n return {\r\n input: param,\r\n inputElement: box as HTMLInputElement,\r\n rootElement: wrapper,\r\n forceChangeDefaultValue: null,\r\n dispose: function (invokeOnChanged?: boolean) {\r\n if (invokeOnChanged !== false) param.onLoad?.(null, null, false, false, true, ELEMENT_ID, 0);\r\n box.remove();\r\n wrapper.remove();\r\n },\r\n } as IInputCreateResults;\r\n};\r\n\r\nexport const CreateInputLink = (param: ILinkbutton, parentElement: HTMLElement | null, isTabular: boolean): IInputCreateResults => {\r\n const elementObject = CreateElement(param, parentElement, isTabular);\r\n const box = elementObject.inputElement as HTMLDivElement;\r\n box.classList.add(\"bat1\", \"df\", \"ac\", \"ipt-bxh\");\r\n box.classList.remove(\"ipt-bx\");\r\n const link = CreateLinkButton(box, param.href, param.label ?? \"Nexus Link\", param.onClicked, param.defaultClass, null, param.borderBottom, param.background, param.target, param.position);\r\n\r\n link.classList.add(\"w100\");\r\n\r\n box.appendChild(link);\r\n return elementObject;\r\n};\r\nexport const CreateInputButton = (param: ISubmitbutton, parentElement: HTMLElement | null, isTabular: boolean): IInputCreateResults => {\r\n const iconParam = param.icon;\r\n const button = document.createElement(\"button\");\r\n param.icon = undefined;\r\n const elementObject = CreateElement(param, parentElement, isTabular);\r\n const box = elementObject.inputElement as HTMLDivElement;\r\n box.appendChild(button);\r\n box.classList.add(\"h\");\r\n button.type = param.type ?? EButtonTypes.SUBMIT;\r\n\r\n button.classList.add(\"h\", \"df\", \"ac\", \"jc\", \"ipt\", \"h100\", \"sn\", \"w100\", \"r\", param.background ?? EBackgrounds.PrimaryColor);\r\n const value = param.placeholder ?? param.label ?? \"Submit\";\r\n\r\n if (iconParam) {\r\n const span = document.createElement(\"span\");\r\n span.textContent = value;\r\n span.classList.add(\"nw\", \"toh\", \"fs-10\", \"fw-600\");\r\n const icon = CreateIconBox(iconParam.icon, button, null, null, iconParam.type ?? EIconTypes.FILLED, iconParam.background ?? param.background ?? EBackgrounds.None, iconParam.boxSize, iconParam.iconSize, null, null, null, null, iconParam.opacity, null, null, null, null, iconParam.onClicked, iconParam.onMouseEnter);\r\n icon.classList.add(\"mr3\");\r\n button.appendChild(span);\r\n } else button.innerText = value;\r\n\r\n return elementObject;\r\n};\r\n","import { GetInputId, SetHaveValueClass } from \"../../helpers/input-helpers\";\r\nimport { IsNullOrEmpty } from \"../../helpers/string-helpers\";\r\nimport { IInputCreateResults, INumber } from \"../../interfaces/input-interfaces\";\r\nimport { CreateInput } from \"./input\";\r\nimport { CreateInputBox, CreateInputWrapper } from \"./input-box\";\r\n\r\nfunction getDecimalPlaces(param: INumber): number {\r\n const fp = param.floatingPoint;\r\n if (fp === undefined || fp === null || fp < 0) return 0;\r\n return Math.floor(fp);\r\n}\r\n\r\nfunction roundToDecimalPlaces(value: number, decimalPlaces: number): number {\r\n if (decimalPlaces <= 0) return Math.round(value);\r\n const factor = Math.pow(10, decimalPlaces);\r\n return Math.round(value * factor) / factor;\r\n}\r\n\r\nfunction parseNumber(raw: string): number | null {\r\n const trimmed = raw.trim();\r\n if (trimmed === \"\") return null;\r\n const parsed = Number(trimmed);\r\n return Number.isFinite(parsed) ? parsed : null;\r\n}\r\n\r\nfunction adjustValue(value: number, raw: string, param: INumber, decimalPlaces: number, forceClamp = false): number {\r\n let result = roundToDecimalPlaces(value, decimalPlaces);\r\n if (!param.isAutoAdjust) return result;\r\n\r\n const inputLength = raw.trim().length;\r\n\r\n if (param.minLength !== undefined && param.minLength !== null) {\r\n const minLength = String(param.minLength).length;\r\n if ((forceClamp || inputLength >= minLength) && result < param.minLength) result = param.minLength;\r\n }\r\n if (param.maxLength !== undefined && param.maxLength !== null) {\r\n const maxLength = String(param.maxLength).length;\r\n if ((forceClamp || inputLength >= maxLength) && result > param.maxLength) result = param.maxLength;\r\n }\r\n return result;\r\n}\r\n\r\nexport const CreateNumber = (param: INumber, parentElement: HTMLElement | null, isTabular: boolean = false) => {\r\n const ELEMENT_ID = GetInputId(param);\r\n const hasPlaceholder = !IsNullOrEmpty(param.placeholder);\r\n const decimalPlaces = getDecimalPlaces(param);\r\n\r\n const input = CreateInput(param) as HTMLInputElement;\r\n const box = CreateInputBox(param, input, null, isTabular);\r\n const wrapper = isTabular ? box : CreateInputWrapper(param, box, parentElement);\r\n\r\n function handleChanged(val: number | undefined | null, isInit: boolean, isForced: boolean, isDisposed: boolean) {\r\n param.onChanged?.(val ?? null, isInit, isForced, isDisposed, ELEMENT_ID, undefined);\r\n SetHaveValueClass(input, (val !== undefined && val !== null) || hasPlaceholder);\r\n }\r\n\r\n function forceChangeDefaultValue(defaultValue: number | null): boolean {\r\n if (defaultValue === null || defaultValue === undefined) {\r\n input.value = \"\";\r\n handleChanged(null, false, true, false);\r\n return true;\r\n }\r\n const adjusted = adjustValue(defaultValue, defaultValue.toString(), param, decimalPlaces, true);\r\n input.value = adjusted.toString();\r\n handleChanged(adjusted, false, true, false);\r\n return true;\r\n }\r\n\r\n function onInputChanged() {\r\n if (param.isAutoAdjust) return;\r\n const parsed = parseNumber(input.value);\r\n handleChanged(parsed, false, false, false);\r\n }\r\n\r\n function onBlur() {\r\n if (!param.isAutoAdjust) return;\r\n const raw = input.value;\r\n const parsed = parseNumber(raw);\r\n if (parsed === null) {\r\n handleChanged(null, false, false, false);\r\n return;\r\n }\r\n const adjusted = adjustValue(parsed, raw, param, decimalPlaces, true);\r\n input.value = adjusted.toString();\r\n handleChanged(adjusted, false, false, false);\r\n }\r\n\r\n if (!param.isAutoAdjust) input.addEventListener(\"input\", onInputChanged);\r\n if (param.isAutoAdjust) input.addEventListener(\"blur\", onBlur);\r\n\r\n // Keep initial display as loaded from DB/default — do not round or clamp on init.\r\n handleChanged(param.defaultValue ?? null, true, false, false);\r\n\r\n return {\r\n input: param,\r\n inputElement: input,\r\n rootElement: wrapper,\r\n forceChangeDefaultValue: forceChangeDefaultValue,\r\n dispose: function (invokeOnChanged?: boolean) {\r\n if (invokeOnChanged !== false) handleChanged(null, false, true, true);\r\n input.removeEventListener(\"input\", onInputChanged);\r\n input.removeEventListener(\"blur\", onBlur);\r\n input.remove();\r\n box.remove();\r\n wrapper.remove();\r\n },\r\n } as IInputCreateResults;\r\n};\r\n","import { GetInputId, SetHaveValueClass } from \"../../helpers/input-helpers\";\r\nimport { IInputCreateResults, IRadiobox } from \"../../interfaces/input-interfaces\";\r\nimport { CreateInput } from \"./input\";\r\nimport { CreateInputBox, CreateInputWrapper } from \"./input-box\";\r\n\r\nexport const CreateRadiobox = (param: IRadiobox, parentElement: HTMLElement | null, isTabular: boolean, isCheckbox: boolean = false) => {\r\n const input = CreateInput(param) as HTMLInputElement;\r\n const ELEMENT_ID = GetInputId(param);\r\n\r\n input.classList.add(\"pr\");\r\n input.classList.remove(\"ipt\");\r\n input.defaultChecked = param.defaultValue ?? false;\r\n input.type = \"radio\";\r\n if (isCheckbox) input.classList.add(\"checkbox\");\r\n\r\n const box = CreateInputBox(param, input, null, isTabular);\r\n const label = box.querySelector(\"label\") as HTMLLabelElement;\r\n if (label) label.className = \"p2 ilb hc o08\";\r\n const wrapper = isTabular ? box : CreateInputWrapper(param, box, parentElement);\r\n\r\n box.classList.add(\"df\", \"ac\", \"pl3\", \"ipt-bxh\");\r\n box.classList.remove(\"ipt-bx\");\r\n\r\n function handleChanged(val: boolean, isInit: boolean, isForced: boolean, isDisposed: boolean) {\r\n if (!val) return;\r\n\r\n param.onChanged?.(param.checkedValue, isInit, isForced, isDisposed, ELEMENT_ID, undefined);\r\n }\r\n function forceChangeDefaultValue(defaultValue: boolean): boolean {\r\n input.value = defaultValue.toString();\r\n handleChanged(defaultValue, false, true, false);\r\n return true;\r\n }\r\n function onInputChanged(e: Event) {\r\n handleChanged(input.checked, false, false, false);\r\n }\r\n input.addEventListener(\"input\", onInputChanged);\r\n SetHaveValueClass(input, true);\r\n handleChanged(input.checked, true, false, false);\r\n return {\r\n input: param,\r\n inputElement: input,\r\n rootElement: wrapper,\r\n forceChangeDefaultValue: forceChangeDefaultValue,\r\n dispose: function (invokeOnChanged?: boolean) {\r\n if (invokeOnChanged !== false) handleChanged(param.defaultValue ?? false, false, true, true);\r\n input.removeEventListener(\"input\", onInputChanged);\r\n input.remove();\r\n box.remove();\r\n wrapper.remove();\r\n },\r\n } as IInputCreateResults;\r\n};\r\n","import { GetInputId, SetHaveValueClass } from \"../../helpers/input-helpers\";\r\nimport { IsNullOrEmpty } from \"../../helpers/string-helpers\";\r\nimport { IInputCreateResults, ITextarea } from \"../../interfaces/input-interfaces\";\r\nimport { CreateInput } from \"./input\";\r\nimport { CreateInputBox, CreateInputWrapper } from \"./input-box\";\r\n\r\nexport const CreateTextarea = (param: ITextarea, parentElement: HTMLElement | null, isTabular: boolean = false) => {\r\n const ELEMENT_ID = GetInputId(param);\r\n const hasPlaceholder = !IsNullOrEmpty(param.placeholder);\r\n\r\n const input = CreateInput(param) as HTMLTextAreaElement;\r\n const box = CreateInputBox(param, input, null, isTabular);\r\n const wrapper = isTabular ? box : CreateInputWrapper(param, box, parentElement);\r\n\r\n box.classList.add(\"textarea-box\");\r\n\r\n function handleChanged(val: string | undefined | null, isInit: boolean, isForced: boolean, isDisposed: boolean) {\r\n const value = val?.trim() ?? null;\r\n const isNullorEmpty = IsNullOrEmpty(value);\r\n param.onChanged?.(isNullorEmpty ? null : value, isInit, isForced, isDisposed, ELEMENT_ID, undefined);\r\n SetHaveValueClass(input, !isNullorEmpty || hasPlaceholder);\r\n }\r\n\r\n function forceChangeDefaultValue(defaultValue: string | null): boolean {\r\n input.value = defaultValue ?? \"\";\r\n handleChanged(defaultValue, false, true, false);\r\n return true;\r\n }\r\n function onInputChanged(e: Event) {\r\n handleChanged((e.currentTarget as HTMLInputElement).value, false, false, false);\r\n }\r\n input.addEventListener(\"input\", onInputChanged);\r\n handleChanged(param.defaultValue, true, false, false);\r\n return {\r\n input: param,\r\n inputElement: input,\r\n rootElement: wrapper,\r\n forceChangeDefaultValue: forceChangeDefaultValue,\r\n dispose: function (invokeOnChanged?: boolean) {\r\n if (invokeOnChanged !== false) handleChanged(null, false, true, true);\r\n input.removeEventListener(\"input\", onInputChanged);\r\n input.remove();\r\n box.remove();\r\n wrapper.remove();\r\n },\r\n } as IInputCreateResults;\r\n};\r\n","import { GetInputId, SetHaveValueClass } from \"../../helpers/input-helpers\";\r\nimport { IsNullOrEmpty } from \"../../helpers/string-helpers\";\r\nimport { IInputCreateResults, ITextbox } from \"../../interfaces/input-interfaces\";\r\nimport { CreateInput } from \"./input\";\r\nimport { CreateInputBox, CreateInputWrapper } from \"./input-box\";\r\n\r\nexport const CreateTextbox = (param: ITextbox, parentElement: HTMLElement | null, isTabular: boolean = false) => {\r\n const ELEMENT_ID = GetInputId(param);\r\n const hasPlaceholder = !IsNullOrEmpty(param.placeholder);\r\n\r\n const input = CreateInput(param);\r\n const box = CreateInputBox(param, input, null, isTabular);\r\n const wrapper = isTabular ? box : CreateInputWrapper(param, box, parentElement);\r\n\r\n function handleChanged(val: string | undefined | null, isInit: boolean, isForced: boolean, isDisposed: boolean) {\r\n const value = val?.trim() ?? null;\r\n const isNullorEmpty = IsNullOrEmpty(value);\r\n param.onChanged?.(isNullorEmpty ? null : value, isInit, isForced, isDisposed, ELEMENT_ID, undefined);\r\n SetHaveValueClass(input, !isNullorEmpty || hasPlaceholder);\r\n }\r\n\r\n function forceChangeDefaultValue(defaultValue: string | null): boolean {\r\n input.value = defaultValue ?? \"\";\r\n handleChanged(defaultValue, false, true, false);\r\n return true;\r\n }\r\n function onInputChanged(e: Event) {\r\n handleChanged((e.currentTarget as HTMLInputElement).value, false, false, false);\r\n }\r\n input.addEventListener(\"input\", onInputChanged);\r\n handleChanged(param.defaultValue, true, false, false);\r\n return {\r\n input: param,\r\n inputElement: input,\r\n rootElement: wrapper,\r\n forceChangeDefaultValue: forceChangeDefaultValue,\r\n dispose: function (invokeOnChanged?: boolean) {\r\n if (invokeOnChanged !== false) handleChanged(null, false, true, true);\r\n input.removeEventListener(\"input\", onInputChanged);\r\n input.remove();\r\n box.remove();\r\n wrapper.remove();\r\n },\r\n } as IInputCreateResults;\r\n};\r\n","import { CreateClone } from \"../../helpers/datasource-helpers\";\r\nimport { GetInputClasses, GetInputId, GetParentKey } from \"../../helpers/input-helpers\";\r\nimport { IsNullOrEmpty } from \"../../helpers/string-helpers\";\r\nimport { Debounce } from \"../../helpers/utility-helpers\";\r\nimport { DEFAULT_TEXTAREA_ROWS, EInputTypes, ICheckbox, IElement, IInputCreateResults, IInputRootParameters, ILinkbutton, INumber, IRadiobox, ISlider, ISubmitbutton, ITextarea, ITextbox, MAX_INPUT_TYPE, OnFormChangeHandler, REQUIRED_TEXT1 } from \"../../interfaces/input-interfaces\";\r\nimport { UN } from \"../../interfaces/type-interfaces\";\r\nimport { CreateCheckbox } from \"./checkbox-input\";\r\nimport { CreateElement, CreateInputButton, CreateInputLink } from \"./input-element\";\r\nimport { CreateNumber } from \"./number-input\";\r\nimport { CreateRadiobox } from \"./radiobox-input\";\r\nimport { CreateTextarea } from \"./textarea-input\";\r\nimport { CreateTextbox } from \"./textbox-input\";\r\n\r\nconst _getInputType = (inputType: EInputTypes) => {\r\n switch (inputType) {\r\n case EInputTypes.Checkbox:\r\n return \"checkbox\";\r\n case EInputTypes.Textarea:\r\n return \"textarea\";\r\n case EInputTypes.Number:\r\n return \"number\";\r\n case EInputTypes.Slider:\r\n case EInputTypes.Range:\r\n return \"range\";\r\n default:\r\n return \"text\";\r\n }\r\n};\r\n\r\nexport function CreateInput(param: ITextbox | ISlider | ICheckbox | ITextarea | INumber) {\r\n const isTextarea = param.inputType === EInputTypes.Textarea;\r\n const isNumber = param.inputType === EInputTypes.Number;\r\n const isSlider = param.inputType === EInputTypes.Slider || param.inputType === EInputTypes.Range;\r\n const isCheckbox = param.inputType === EInputTypes.Checkbox;\r\n const isRadiobox = param.inputType === EInputTypes.Radiobox;\r\n\r\n const inputType = _getInputType(param.inputType);\r\n const input = document.createElement(isTextarea ? \"textarea\" : \"input\");\r\n if (!isTextarea) (input as HTMLInputElement).type = inputType;\r\n if (isCheckbox || isRadiobox) {\r\n if ((param as ICheckbox).groupId) (input as HTMLInputElement).name = (param as ICheckbox).groupId!;\r\n else if (isRadiobox) (input as HTMLInputElement).name = GetInputId(param as IRadiobox);\r\n\r\n // No need to set type\r\n } else if (isTextarea) (input as HTMLTextAreaElement).rows = (param as ITextarea).rows ?? DEFAULT_TEXTAREA_ROWS;\r\n else if (isNumber) {\r\n const numberParam = param as INumber;\r\n const numberInput = input as HTMLInputElement;\r\n const decimalPlaces = numberParam.floatingPoint ?? 0;\r\n numberInput.type = \"number\";\r\n\r\n if (numberParam.step) numberInput.step = numberParam.step.toString();\r\n else numberInput.step = decimalPlaces > 0 ? (1 / Math.pow(10, decimalPlaces)).toString() : \"1\";\r\n\r\n if (numberParam.minLength !== undefined && numberParam.minLength !== null) numberInput.min = numberParam.minLength.toString();\r\n if (numberParam.maxLength !== undefined && numberParam.maxLength !== null) numberInput.max = numberParam.maxLength.toString();\r\n } else if (isSlider) {\r\n (input as HTMLInputElement).type = \"range\";\r\n (input as HTMLInputElement).step = (param as ISlider).step?.toString() ?? \"1\";\r\n (input as HTMLInputElement).min = (param as ISlider).minLength?.toString() ?? \"0\";\r\n (input as HTMLInputElement).max = (param as ISlider).maxLength?.toString() ?? \"100\";\r\n } else (input as HTMLInputElement).type = (param as ITextbox).isPassword ? \"password\" : \"text\";\r\n if (!isSlider && !isNumber) {\r\n if ((param as ITextbox).minLength) (input as HTMLInputElement).minLength = (param as ITextbox).minLength ?? 0;\r\n if ((param as ITextbox).maxLength) (input as HTMLInputElement).maxLength = (param as ITextbox).maxLength ?? 0;\r\n }\r\n\r\n input.className = `${GetInputClasses(param.inputSize, param.defaultClass)}${isTextarea ? \" sb\" : \"\"}`;\r\n input.autocomplete = param.autoComplete ?? \"on\";\r\n input.required = !!param.isRequired;\r\n input.readOnly = !!param.isReadonly;\r\n input.disabled = !!param.isReadonly;\r\n input.id = param.id;\r\n input.placeholder = param.placeholder ?? \"\";\r\n input.value = param.defaultValue?.toString() ?? \"\";\r\n\r\n return input;\r\n}\r\nexport const CreateInputs = (inputs: IInputRootParameters<any>[], onChanged: OnFormChangeHandler, index: number, isTabularForm: boolean, parentElement: HTMLElement | null, defaultValue?: any): IInputCreateResults[] => {\r\n if (inputs.length === 0 || !onChanged) {\r\n //TODO: WarningMessage(\"Invalid Inputs\", \"Please provide valid inputs, onChanged function and parent element.\");\r\n return [];\r\n }\r\n const inputValues: any = {};\r\n const onChangedDebounced = Debounce(onChanged, 10);\r\n\r\n const results: IInputCreateResults[] = [];\r\n const pushResult = (result: IInputCreateResults) => results.push(result);\r\n const handleInputChange = (currentValue: any, isInitilizing: boolean, isForcedChanged: boolean, isDisposed: boolean, currentKey: string, dataSource?: any[]) => {\r\n if (inputValues[currentKey] === currentValue && !isForcedChanged && !isDisposed) return;\r\n\r\n inputValues[currentKey] = currentValue;\r\n (isInitilizing && !isTabularForm ? onChangedDebounced : onChanged)(inputValues, isInitilizing, isForcedChanged, isDisposed, currentKey, index, undefined, dataSource);\r\n const result = results.find((x) => GetInputId(x.input) === currentKey);\r\n if (result) {\r\n const timeout = setTimeout(() => {\r\n clearTimeout(timeout);\r\n const children = results.filter((x) => GetParentKey(x.input.parentKey) === currentKey);\r\n for (const child of children) {\r\n child.input.defaultValue = inputValues[child.input.id];\r\n child.onParentChanged?.(currentValue, isInitilizing, isForcedChanged, isDisposed, currentKey, index, undefined, dataSource);\r\n }\r\n }, 1);\r\n }\r\n };\r\n const udpatedInputs = (CreateClone(inputs) as IInputRootParameters<any>[]).sort((a, b) => a.displayOrder - b.displayOrder);\r\n for (const ipt of udpatedInputs) {\r\n const ELEMENT_ID = GetInputId(ipt);\r\n ipt.defaultValue = defaultValue?.[ELEMENT_ID] ?? ipt.defaultValue;\r\n if (ipt.inputType < MAX_INPUT_TYPE) {\r\n ipt.onChanged = (currentValue: any, isInitilizing: boolean, isForcedChanged: boolean, isDisposed: boolean, currentKey: string, dataSource?: any | any[]) => handleInputChange(currentValue, isInitilizing, isForcedChanged, isDisposed, currentKey, dataSource);\r\n if ((ipt as any).isRequired && !IsNullOrEmpty(ipt.placeholder)) ipt.placeholder += ` ${REQUIRED_TEXT1}`;\r\n }\r\n\r\n switch (ipt.inputType) {\r\n case EInputTypes.Textbox: {\r\n pushResult(CreateTextbox(ipt as ITextbox, parentElement, isTabularForm));\r\n break;\r\n }\r\n case EInputTypes.Number: {\r\n pushResult(CreateNumber(ipt as INumber, parentElement, isTabularForm));\r\n break;\r\n }\r\n case EInputTypes.Textarea: {\r\n pushResult(CreateTextarea(ipt as ITextarea, parentElement, isTabularForm));\r\n break;\r\n }\r\n case EInputTypes.Checkbox: {\r\n pushResult(CreateCheckbox(ipt as ICheckbox, parentElement, isTabularForm));\r\n break;\r\n }\r\n case EInputTypes.Radiobox: {\r\n pushResult(CreateRadiobox(ipt as IRadiobox, parentElement, isTabularForm));\r\n break;\r\n }\r\n case EInputTypes.LinkButton: {\r\n pushResult(CreateInputLink(ipt as ILinkbutton, parentElement, isTabularForm));\r\n break;\r\n }\r\n case EInputTypes.HtmlElement: {\r\n pushResult(CreateElement(ipt as IElement, parentElement, isTabularForm));\r\n break;\r\n }\r\n case EInputTypes.SubmitButton: {\r\n pushResult(CreateInputButton(ipt as ISubmitbutton, parentElement, isTabularForm));\r\n break;\r\n }\r\n /*\r\n case EInputTypes.MultiSelection:\r\n case EInputTypes.SingleSelection: {\r\n pushResult(CreateSelection(ipt as ISelection, parentElement, isTabularForm));\r\n break;\r\n }\r\n\r\n case EInputTypes.TabularForm: {\r\n pushResult(CreateTabular(ipt as ITablularForm, parentElement));\r\n break;\r\n }\r\n\r\n case EInputTypes.Datepicker: {\r\n pushResult(CreateDatepicker(ipt as IDate, parentElement, isTabularForm));\r\n break;\r\n }\r\n case EInputTypes.Slider:\r\n case EInputTypes.Range: {\r\n pushResult(CreateSlider(ipt as ISlider, parentElement, isTabularForm));\r\n break;\r\n }\r\n \r\n\r\n */\r\n default:\r\n break;\r\n }\r\n }\r\n return results;\r\n};\r\nexport const DisposeInputs = (inputs: IInputCreateResults[] | UN, invokeOnChanged?: boolean) => {\r\n if (!inputs || inputs.length === 0) return;\r\n for (const input of inputs) input.dispose(invokeOnChanged);\r\n};\r\n","import { GetInputId, SetHaveValueClass } from \"../../helpers/input-helpers\";\r\nimport { EValueChangeTypes, ICheckbox, IInputCreateResults } from \"../../interfaces/input-interfaces\";\r\nimport { CreateInput } from \"./input\";\r\nimport { CreateInputBox, CreateInputWrapper } from \"./input-box\";\r\nimport { CreateRadiobox } from \"./radiobox-input\";\r\n\r\nexport const CreateCheckbox = (param: ICheckbox, parentElement: HTMLElement | null, isTabular: boolean) => {\r\n if (param.groupId) return CreateRadiobox(param, parentElement, isTabular, true);\r\n\r\n const input = CreateInput(param) as HTMLInputElement;\r\n const ELEMENT_ID = GetInputId(param);\r\n\r\n input.classList.add(\"pr\");\r\n input.classList.remove(\"ipt\");\r\n input.defaultChecked = param.defaultValue ?? false;\r\n\r\n const box = CreateInputBox(param, input, null, isTabular);\r\n const label = box.querySelector(\"label\") as HTMLLabelElement;\r\n if (label) label.className = \"p2 ilb hc o08\";\r\n const wrapper = isTabular ? box : CreateInputWrapper(param, box, parentElement);\r\n\r\n box.classList.add(\"df\", \"ac\", \"pl3\", \"ipt-bxh\");\r\n box.classList.remove(\"ipt-bx\");\r\n\r\n function notifyChanged(val: boolean, isInit: boolean, isForced: boolean, isDisposed: boolean) {\r\n if (!param.checkedValue) param.onChanged?.(val, isInit, isForced, isDisposed, ELEMENT_ID, undefined);\r\n else param.onChanged?.(val ? param.checkedValue : null, isInit, isForced, isDisposed, ELEMENT_ID, undefined);\r\n }\r\n\r\n function handleChanged(val: boolean, isInit: boolean, isForced: boolean, isDisposed: boolean, type?: EValueChangeTypes, invokeOnChanged?: boolean) {\r\n SetHaveValueClass(input, val);\r\n if (invokeOnChanged === false) return;\r\n // Group members share one form key; only the checked member should report on init.\r\n if (isInit && param.groupId && !val) return;\r\n notifyChanged(val, isInit, isForced, isDisposed);\r\n }\r\n\r\n function forceChangeDefaultValue(defaultValue: boolean, type?: EValueChangeTypes, invokeOnChanged?: boolean): boolean {\r\n input.checked = defaultValue;\r\n handleChanged(defaultValue, false, true, false, type, invokeOnChanged);\r\n return true;\r\n }\r\n\r\n function onInputChanged() {\r\n handleChanged(input.checked, false, false, false);\r\n }\r\n\r\n input.addEventListener(\"input\", onInputChanged);\r\n\r\n input.checked = param.defaultValue ?? false;\r\n handleChanged(input.checked, true, false, false);\r\n\r\n return {\r\n input: param,\r\n inputElement: input,\r\n rootElement: wrapper,\r\n forceChangeDefaultValue: forceChangeDefaultValue,\r\n dispose: function (invokeOnChanged?: boolean) {\r\n if (invokeOnChanged !== false) handleChanged(param.defaultValue ?? false, false, true, true);\r\n input.removeEventListener(\"input\", onInputChanged);\r\n input.remove();\r\n box.remove();\r\n wrapper.remove();\r\n },\r\n } as IInputCreateResults;\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport { GetInputId } from \"../../helpers/input-helpers\";\r\nimport { IForm, IFormCreateResults, IInputCreateResults } from \"../../interfaces/input-interfaces\";\r\nimport { CreateInputs, DisposeInputs } from \"./input\";\r\n\r\nconst forceChangeDefaultValue = (inputResults: IInputCreateResults[], newDefaultValue: any): boolean => {\r\n let isChanged = true;\r\n for (const inputResult of inputResults) {\r\n if (inputResult.forceChangeDefaultValue) {\r\n const value = newDefaultValue ? (newDefaultValue[GetInputId(inputResult.input)] ?? null) : undefined;\r\n const success = inputResult.forceChangeDefaultValue(value);\r\n if (isChanged) isChanged = success;\r\n }\r\n }\r\n return isChanged;\r\n};\r\nexport const CreateForm = (param: IForm, rowGap?: number): IFormCreateResults | null => {\r\n const { inputs, onChanged, index, isTabularForm, parentIdentifier } = param;\r\n const parentElement = typeof parentIdentifier === \"string\" ? document.getElementById(parentIdentifier) : parentIdentifier;\r\n\r\n if (!parentElement || inputs.length === 0 || !onChanged) {\r\n //TODO: WarningMessage(\"Invalid Inputs\", \"Please provide valid inputs, onChanged function and parent element.\");\r\n return null;\r\n }\r\n\r\n const parent = document.createElement(\"div\");\r\n parent.className = `row g${rowGap ?? 3} sb fg`;\r\n parent.style.paddingTop = \"var(--IEM)\";\r\n if (parentElement) parentElement.appendChild(parent);\r\n\r\n const inputResults = CreateInputs(inputs, onChanged, index, isTabularForm, parent, param.defaultValue);\r\n\r\n return {\r\n inputResults: inputResults,\r\n formElement: parent,\r\n dispose: (invokeOnChanged?: boolean) => {\r\n DisposeInputs(inputResults, invokeOnChanged);\r\n parent.remove();\r\n },\r\n forceChangeDefaultValue: (newDefaultValue: any) => forceChangeDefaultValue(inputResults, newDefaultValue),\r\n } as IFormCreateResults;\r\n};\r\n\r\nexport const Form = ({ param, rowGap }: { param: IForm; rowGap?: number }): React.ReactNode => {\r\n useEffect(() => {\r\n const formResults = CreateForm(param, rowGap);\r\n return () => formResults?.dispose();\r\n }, [param, rowGap]);\r\n return <React.Fragment></React.Fragment>;\r\n};\r\n","\"use client\";\n\nimport { IAccessAction } from \"./interfaces/permission-interfaces\";\nimport { IThemeInformation } from \"./interfaces/theme-interfaces\";\n\nexport interface IGlobalObject {\n systemThemes?: IThemeInformation[];\n accessActions?: IAccessAction[];\n isAdminModule?: boolean;\n}\nconst _globalObject: IGlobalObject = {\n systemThemes: undefined,\n};\nexport const NEXUS_OBJECT = (systemThemes: IThemeInformation[], access?: IAccessAction[], isAdminModule?: boolean) => {\n if (!_globalObject.systemThemes && systemThemes) {\n _globalObject.accessActions = access ?? [];\n _globalObject.systemThemes = systemThemes;\n _globalObject.isAdminModule = isAdminModule;\n }\n return _globalObject;\n};\n\nexport const O = _globalObject;\n","export const LOCAL_STORAGE_KEYS = {\n ACTIVE_THEME: \"nexus-themes\",\n};\n","export enum ENexusModules {\n None = 0,\n\n Migrations = 1 << 0, // 1 | 1\n Configuration = 1 << 1, // 2 | 2\n Identity = 1 << 2, // 3 | 4\n Enterprise = 1 << 3, // 4 | 8\n Drive = 1 << 4, // 5 | 16\n Message = 1 << 5, // 6 | 32\n Accounting = 1 << 6, // 7 | 64\n Report = 1 << 7, // 8 | 128\n Portfolio = 1 << 8, // 9 | 256\n Subscription = 1 << 9, // 10 | 512\n Reservation = 1 << 10, // 11 | 1024\n}\nexport enum EPreferenceTargets {\n Company = 1 << 0, // 1\n Branch = 1 << 1, // 2\n User = 1 << 2, // 4\n Application = 1 << 3, // 8\n Compiler = 1 << 4, // 16\n}\n","\"use client\";\n\nimport { CreateUpdatePreference } from \"../api-services/preference-service\";\nimport { IsBrowser } from \"../helpers/browser-helpers\";\nimport { Debounce } from \"../helpers/utility-helpers\";\nimport { LOCAL_STORAGE_KEYS } from \"../interfaces/storage-interfaces\";\nimport { EPreferenceTargets } from \"../interfaces/system-interfaces\";\nimport { IThemeInformation } from \"../interfaces/theme-interfaces\";\nimport { O } from \"../nexus-client\";\n\nconst _createUpdatePreferenceDebounce = Debounce(CreateUpdatePreference, 1000);\n\nconst _syncStorageToServer = async (key: string, value: string | null, isSyncWithServer?: boolean, target?: EPreferenceTargets) => {\n if (!IsBrowser() || !isSyncWithServer || !target) return;\n\n await _createUpdatePreferenceDebounce(target, key, value);\n};\n\nexport const SetLocalStorage = (key: string, value: string, isSyncWithServer?: boolean, target?: EPreferenceTargets) => {\n if (!IsBrowser()) return;\n\n _syncStorageToServer(key, value, isSyncWithServer, target);\n localStorage.setItem(key, value);\n};\nexport const RemoveLocalStorage = (key: string, isSyncWithServer?: boolean, target?: EPreferenceTargets) => {\n _syncStorageToServer(key, null, isSyncWithServer, target);\n localStorage.removeItem(key);\n};\n\nexport function GetLocalStorage(key: string): string | null {\n if (!IsBrowser()) return null;\n const data = localStorage.getItem(key);\n if (!data) return null;\n return data;\n}\n\nexport const SetCurrentTheme = (themeCode: string) => SetLocalStorage(LOCAL_STORAGE_KEYS.ACTIVE_THEME, themeCode, true, EPreferenceTargets.User);\nexport const GetCurrentTheme = (): IThemeInformation => {\n const themeInformations = O.systemThemes;\n if (!themeInformations || themeInformations.length === 0) throw new Error(\"No theme information found\");\n const activeTheme = GetLocalStorage(LOCAL_STORAGE_KEYS.ACTIVE_THEME);\n if (!activeTheme) return themeInformations[0];\n return themeInformations.find((theme) => theme.systemName === activeTheme) || themeInformations[0];\n};\nexport const GetCurrentThemeName = (): string => GetCurrentTheme().systemName;\n","\"use client\";\n\nimport { DEFAULT_SMALL_ICON_BOX_SIZE } from \"../interfaces/icon-interfaces\";\nimport { DEFAULT_FONT_WEIGHTS } from \"../interfaces/layout-interfaces\";\nimport { O } from \"../nexus-client\";\nimport { IThemeColors, IThemeInformation } from \"./../interfaces/theme-interfaces\";\nimport { GetCurrentTheme, SetCurrentTheme } from \"./localstorage-service\";\n\nconst I = \"!important;\";\n\nconst _setVariable = (key: string, value: string | null) => {\n if (value) document.documentElement.style.setProperty(key, value);\n};\n\nconst _initializeThemes = (themeInformations: IThemeInformation[]): boolean => {\n if (!themeInformations || themeInformations.length === 0) return false;\n\n const activeTheme = GetCurrentTheme();\n return _initializeTheme(activeTheme!);\n};\nconst _setRule = (sheet: CSSStyleSheet, s: string, r: string) => sheet.insertRule(`${s} { ${r} }`, sheet.cssRules.length);\nconst _setResponsiveRule = (sheet: CSSStyleSheet, i: number, max: number, pre: string, w: string, g?: number) => sheet.insertRule(`@media (max-width: ${max}px) { ${g !== undefined ? `.g${g} > ` : \"\"}.col-${pre}-${i} { width: ${w}${I} } }`, sheet.cssRules.length);\nconst _initializeTheme = (theme: IThemeInformation): boolean => {\n if (!theme) return false;\n SetCurrentTheme(theme.systemName);\n\n const THEME_KEYS = Object.keys(theme.themeColors);\n for (const key of THEME_KEYS) {\n const color = theme.themeColors[key as keyof IThemeColors];\n const [background, hover, focus, text] = color.split(\"|\");\n\n if (!background) continue;\n const keyNumber = key.replace(\"C\", \"\");\n\n if (background !== \"NULL\") _setVariable(`--B${keyNumber}`, background);\n if (hover !== \"NULL\") _setVariable(`--H${keyNumber}`, hover);\n if (focus !== \"NULL\") _setVariable(`--F${keyNumber}`, focus);\n if (text !== \"NULL\") _setVariable(`--T${keyNumber}`, text);\n }\n\n return true;\n};\nexport const InitializeStyles = () => {\n const el = document.getElementById(\"nexus-styles\") as HTMLStyleElement;\n if (!el || !el.classList.contains(\"nexus-styles\")) el.classList.add(\"nexus-styles\");\n const sheet = el.sheet as CSSStyleSheet;\n const themeInformations = O.systemThemes;\n if (!themeInformations || themeInformations.length === 0) return;\n _initializeThemes(themeInformations);\n\n const BREAK_POINTS = { xl: 1200, lg: 1050, med: 900, nr: 800, sm: 700, xs: 600 } as any;\n const SUFFIXES = [\"\", \"-top\", \"-right\", \"-bottom\", \"-left\"];\n const DIRECTIONS = [\"\", \"t\", \"r\", \"b\", \"l\"];\n\n Array.from({ length: 12 }, (_, i) => i + 1).forEach((i) => {\n const w = `${(i / 12) * 100}%`;\n _setRule(sheet, `.col-${i}`, `float: left; box-sizing: border-box; width: ${w};`);\n Object.keys(BREAK_POINTS).forEach((b) => _setResponsiveRule(sheet, i, BREAK_POINTS[b], b, w));\n });\n\n Array.from({ length: 10 }, (_, i) => i + 1).forEach((i) => {\n const m = 0.2 * i,\n w = `calc((100% / 12) * ${i} - ${m * 2}rem)`;\n _setRule(sheet, `.g${i}`, `padding: 0 ${m}rem;`);\n _setRule(sheet, `.g${i} > [class*='col-']`, `margin: 0 ${m}rem; float: left; box-sizing: border-box;`);\n _setRule(sheet, `.g${i} > .col-12`, `width: ${w}; float: left; box-sizing: border-box;`);\n Array.from({ length: 12 }, (_, j) => j + 1).forEach((j) => {\n const wj = `calc((100% / 12) * ${j} - ${m * 2}rem)`;\n _setRule(sheet, `.g${i} > .col-${j}`, `width: ${wj}; float: left; box-sizing: border-box;`);\n Object.keys(BREAK_POINTS).forEach((b) => _setResponsiveRule(sheet, j, BREAK_POINTS[b], b, wj, i));\n });\n });\n Array.from({ length: 11 }, (_, i) => {\n const v = 0.2 * (10 - i);\n DIRECTIONS.forEach((d, idx) => {\n const imp = d ? I : \";\";\n _setRule(sheet, `.m${d}${10 - i}`, `margin${SUFFIXES[idx]}: ${v}rem${imp}`);\n _setRule(sheet, `.p${d}${10 - i}`, `padding${SUFFIXES[idx]}: ${v}rem${imp}`);\n });\n _setRule(sheet, `.g${10 - i}`, `gap: ${v}rem;`);\n _setRule(sheet, `.cg${10 - i}`, `column-gap: ${v}rem;`);\n _setRule(sheet, `.rg${10 - i}`, `row-gap: ${v}rem;`);\n if (i > 0 && i <= 6) _setRule(sheet, `.h${i}, h${i}`, `font-size: ${(6 - i) * 0.3 + 1}rem;font-weight: 600;`);\n });\n Array.from({ length: 13 }, (_, i) => 0.6 + 0.1 * i).forEach((v) => _setRule(sheet, `.fs-${v.toFixed(1).replace(\".\", \"\")}`, `font-size: ${v.toFixed(1)}rem;`));\n Array.from({ length: 4 }, (_, i) => 0.5 + 0.1 * i).forEach((v) => _setRule(sheet, `.o${v.toFixed(1).replace(\".\", \"\")}`, `opacity: ${v.toFixed(1)};`));\n Array.from({ length: 9 }, (_, i) => {\n _setRule(sheet, `.tl${i}`, `display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: ${i};`);\n if (i <= 8) _setRule(sheet, `.bs${i}`, `box-shadow: var(--BS${i});`);\n });\n\n DEFAULT_FONT_WEIGHTS.forEach((weight) => _setRule(sheet, `.fw${weight}`, `font-weight: ${weight};`));\n\n [90, 180, 270].forEach((r) => _setRule(sheet, `.r${r}`, `transform: rotate(${r}deg);`));\n [1, 2, 3].forEach((s) => {\n const b = `var(--BRD${s}) solid var(--B30)`;\n DIRECTIONS.forEach((d, i) => _setRule(sheet, `.b${d}${s}`, `border${SUFFIXES[i]}: ${b}${d ? ` ${I}` : \"\"}`));\n _setRule(sheet, `.bat${s}`, `border: var(--BRD${s}) solid transparent`);\n });\n\n const THEME_KEYS = Object.keys(themeInformations[0].themeColors);\n for (const key of THEME_KEYS) {\n const keyNumber = key.replace(\"C\", \"\");\n _setRule(sheet, `.bg${keyNumber}`, `background-color: var(--B${keyNumber}) ${I}; color: var(--T${keyNumber});`);\n _setRule(sheet, `.h.bg${keyNumber}:hover`, `background-color: var(--H${keyNumber}) ${I}`);\n _setRule(sheet, `.h.bg${keyNumber}:focus`, `background-color: var(--F${keyNumber}) ${I}`);\n _setRule(sheet, `.tx${keyNumber}`, `color: var(--T${keyNumber}) ${I}`);\n }\n\n const ICON_SIZES = {\n xxs: 0.8,\n xs: 1,\n ssm: 1.25,\n sm: 1.4,\n nr: 1.55,\n med: 1.75,\n lg: 1.95,\n xl: 2.2,\n xxl: 2.5,\n fs: 2.85,\n };\n\n const ICON_BOX_SCALES = {\n xxs: 1 / 1.7,\n xs: 1 / 1.5,\n sm: DEFAULT_SMALL_ICON_BOX_SIZE,\n ssm: 1 / 1.35,\n lg: 1.25,\n med: 1.1,\n xl: 1.5,\n xxl: 1.8,\n };\n Object.entries(ICON_SIZES).forEach(([k, v]) => _setRule(sheet, `.icon.${k}`, `font-size: ${v}rem;`));\n\n Object.entries(ICON_BOX_SCALES).forEach(([k, s]) => {\n const size = `calc(var(--IH) * ${s})`;\n const css = `min-width: ${size} ${I}; min-height: ${size} ${I}; max-width: ${size} ${I}; max-height: ${size} ${I};`;\n _setRule(sheet, `.ib.${k}`, css);\n });\n};\nexport const SwitchTheme = (themeCode: string): boolean => {\n const themeInformations = O.systemThemes;\n if (!themeInformations || themeInformations.length === 0) return false;\n\n const theme = themeInformations.find((theme) => theme.systemName === themeCode);\n if (!theme) return false;\n SetCurrentTheme(theme.systemName);\n return _initializeTheme(theme);\n};\n","\"use client\";\n\nimport { useEffect } from \"react\";\nimport { RemoveElement } from \"../../helpers/browser-helpers\";\nimport { IGlobalLayout, ROOT_LOADER_IDENTITY } from \"../../interfaces/layout-interfaces\";\nimport { DEFAULT_THEME_INFORMATIONS } from \"../../interfaces/theme-interfaces\";\nimport { O } from \"../../nexus-client\";\nimport { InitializeStyles } from \"../../services/theme-service\";\n\nexport const LayoutHelpers = ({ globalLayout }: Readonly<{ globalLayout: IGlobalLayout }>) => {\n useEffect(() => {\n globalLayout.systemThemes = DEFAULT_THEME_INFORMATIONS;\n O.systemThemes = DEFAULT_THEME_INFORMATIONS;\n\n const timeout = setTimeout(() => {\n clearTimeout(timeout);\n RemoveElement(ROOT_LOADER_IDENTITY, 500);\n InitializeStyles();\n }, 50);\n }, []);\n\n return <div className=\"nexus-popup-container\"></div>;\n};\n","\"use server\";\nimport { Inter } from \"next/font/google\";\nimport Script from \"next/script\";\nimport React from \"react\";\nimport { IGlobalLayout, ROOT_LOADER_IDENTITY } from \"../../interfaces/layout-interfaces\";\nimport { FILES } from \"../../nexus.environments\";\nimport { LayoutHelpers } from \"./layout-helpers\";\n\nimport \"./../../styles/nexus.animation.css\";\nimport \"./../../styles/nexus.core.css\";\nimport \"./../../styles/nexus.dialog.css\";\nimport \"./../../styles/nexus.icon.css\";\nimport \"./../../styles/nexus.input.css\";\nimport \"./../../styles/nexus.loader.css\";\nimport \"./../../styles/nexus.logic.css\";\nimport \"./../../styles/nexus.utility.css\";\n\nconst inter = Inter({ weight: [\"300\", \"400\", \"500\", \"600\", \"700\", \"800\"], subsets: [\"latin\"] });\n\nexport const GlobalLayout = async ({ children, globalLayout }: Readonly<{ children: React.ReactNode; globalLayout: IGlobalLayout }>) => {\n return (\n <html lang=\"en\">\n <head>\n <title>{globalLayout.defaultDocumentTitle}</title>\n <meta name=\"description\" content={globalLayout.defaultDocumentDescription} />\n <meta name=\"keywords\" content={globalLayout.defaultDocumentKeywords.join(\", \")} />\n <link rel=\"icon\" href=\"/favicon.ico\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <style id=\"nexus-styles\"></style>\n </head>\n <body className={inter.className}>\n <LayoutHelpers globalLayout={globalLayout} />\n <div\n style={{\n zIndex: \"1000\",\n width: \"100vw\",\n height: \"100vh\",\n position: \"fixed\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: \"rgb(40, 40, 40)\",\n }}\n id={ROOT_LOADER_IDENTITY}\n >\n <img src={FILES.LOGO.ICON} alt={\"logo\"} style={{ minHeight: \"3rem\", minWidth: \"3rem\", width: \"3rem\", height: \"3rem\" }} />\n </div>\n {children}\n <Script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/ionicons@5.5.2/dist/ionicons/ionicons.esm.js\" strategy=\"lazyOnload\"></Script>\n <Script noModule src=\"https://cdn.jsdelivr.net/npm/ionicons@5.5.2/dist/ionicons/ionicons.js\" strategy=\"lazyOnload\"></Script>\n </body>\n </html>\n );\n};\n","import React, { useEffect } from \"react\";\r\nimport { GetButton, IButton } from \"../../interfaces/button-interfaces\";\r\nimport { EIconTypes } from \"../../interfaces/icon-interfaces\";\r\nimport { ClickHandler } from \"../../interfaces/type-interfaces\";\r\nimport { O } from \"../../nexus-client\";\r\nimport { GetCurrentThemeName, SetCurrentTheme } from \"../../services/localstorage-service\";\r\nimport { SwitchTheme } from \"../../services/theme-service\";\r\nimport { CreateTabButtons } from \"../documents/tab-button\";\r\n\r\nconst onClicked: ClickHandler = (event, element, button: IButton) => {\r\n if (button.id === GetCurrentThemeName()) return;\r\n const themeCode = button.id;\r\n if (!themeCode) return;\r\n SwitchTheme(themeCode);\r\n SetCurrentTheme(themeCode);\r\n};\r\nconst RenderSwitchTheme = (baseElement: HTMLElement) => {\r\n if (!baseElement || baseElement.classList.contains(\"ddcc\")) return;\r\n baseElement.classList.add(\"ddcc\");\r\n\r\n const currentTheme = GetCurrentThemeName();\r\n const themes = O.systemThemes;\r\n\r\n if (!themes || themes.length === 0) {\r\n const p = document.createElement(\"p\");\r\n p.textContent = \"No theme available!\";\r\n p.className = \"o08 p5 bg3 tc\";\r\n baseElement.appendChild(p);\r\n return;\r\n }\r\n const themeButtons: IButton[] = themes.map((theme, index) => GetButton(theme.displayName, theme.systemName, null, theme.icon, onClicked, theme, null, null, theme.displayOrder, EIconTypes.FILLED, null));\r\n const activeButton = themeButtons.find((button) => button.id === currentTheme);\r\n CreateTabButtons(themeButtons, baseElement, activeButton, onClicked);\r\n\r\n return \"Theme Settings\";\r\n};\r\n\r\nexport const ThemePanel = () => {\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n if (containerRef.current) RenderSwitchTheme(containerRef.current);\r\n }, [containerRef.current]);\r\n return <div ref={containerRef}></div>;\r\n};\r\n","\"use client\";\n\nimport React, { JSX } from \"react\";\nimport { EIconTypes } from \"../../interfaces/icon-interfaces\";\nimport { EPositions, ESizes, IGlobalLayout } from \"../../interfaces/layout-interfaces\";\nimport { GetUtilityMenuCode, IPanelMenu, IUtilityMenu, UTILITIES_BUTTON_PREFIX } from \"../../interfaces/menu-interfaces\";\nimport { EBackgrounds } from \"../../interfaces/theme-interfaces\";\nimport { Iconbox } from \"../documents/icon-box\";\nimport { PageTitle } from \"../documents/page-title\";\nimport { ThemePanel } from \"../panels/theme-panel\";\nimport { GlobalDialogbox } from \"./global-dialogbox\";\n\nexport const BUTTON_IDENTITY = (isneedPrefix: boolean) => {\n const _ = isneedPrefix ? UTILITIES_BUTTON_PREFIX : \"\";\n return {\n PROFILE_BOX: `${_}profile`,\n SEARCH_BOX: `${_}root-search`,\n FAVORITE_BOX: `${_}favorite-menu`,\n CARD_BOX: `${_}cart-menu`,\n THEME_BOX: `${_}switch-theme`,\n MEGA_BOX: `${_}mega-menu`,\n SIGN_IN_BUTTON: `${_}sign-in`,\n SIGN_OUT_BUTTON: `${_}sign-out`,\n };\n};\nexport const UtilityMenu = ({ utilityMenus, userPanels, column, paddingRight, globalLayout, iconBoxBackground }: Readonly<{ utilityMenus: IUtilityMenu[]; userPanels: IPanelMenu[]; column?: number; paddingRight?: number; globalLayout: IGlobalLayout; iconBoxBackground: EBackgrounds }>) => {\n return (\n <div style={{ paddingRight: paddingRight ?? 0, zIndex: 3 }} className={`utilities df fr ac jr h100p col-${column ?? 12}`}>\n {utilityMenus.map((utilityMenu, index) => (\n <UtilityIcon key={index} utilityMenu={utilityMenu} boxBackground={iconBoxBackground} globalLayout={globalLayout} />\n ))}\n <ProfilePanel globalLayout={globalLayout} boxBackground={iconBoxBackground} userPanels={userPanels} />\n </div>\n );\n};\n\nconst UtilityIcon = ({ utilityMenu, globalLayout, boxBackground }: Readonly<{ utilityMenu: IUtilityMenu; globalLayout: IGlobalLayout; boxBackground?: EBackgrounds }>) => {\n return (\n <Iconbox id={GetUtilityMenuCode(utilityMenu.menuCode)} icon={utilityMenu.menuIcon} iconType={EIconTypes.FILLED} iconSize={ESizes.Small} boxSize={ESizes.Small} background={boxBackground} defaultClass=\"mr2\">\n <UtilityDialogBox utilityMenu={utilityMenu} globalLayout={globalLayout} />\n </Iconbox>\n );\n};\n\nexport const ProfilePanel = ({ globalLayout, userPanels, boxBackground }: Readonly<{ globalLayout: IGlobalLayout; userPanels: IPanelMenu[]; boxBackground?: EBackgrounds }>): JSX.Element => {\n return (\n <div className={`pr ${ESizes.Small} ib ${boxBackground} h p2 r`}>\n <h6>BA</h6>\n </div>\n );\n};\n\nconst UtilityDialogBox = ({ utilityMenu, globalLayout }: Readonly<{ utilityMenu: IUtilityMenu; globalLayout: IGlobalLayout }>) => {\n return (\n <GlobalDialogbox hoverEffectDelay={true} defaultPadding={5} position={EPositions.Left} buttonIdentity={GetUtilityMenuCode(utilityMenu.menuCode)} defaultWidth={30}>\n <div>\n <PageTitle marginBottom={5} borderBottom={1} title={utilityMenu.menuName} />\n <UtilityPanel utilityMenu={utilityMenu} globalLayout={globalLayout} />\n </div>\n </GlobalDialogbox>\n );\n};\n\nconst UtilityPanel = ({ utilityMenu, globalLayout }: Readonly<{ utilityMenu: IUtilityMenu; globalLayout: IGlobalLayout }>) => {\n switch (utilityMenu.menuCode) {\n case BUTTON_IDENTITY(false).THEME_BOX:\n return <ThemePanel />;\n default:\n return <div>Unknown Panel: {utilityMenu.menuName}</div>;\n }\n};\n","export enum EActionMethods {\n Get = 1,\n Post = 2,\n Put = 3,\n Delete = 4,\n}\nexport interface IApiInformations {\n api: string;\n method: EActionMethods;\n}\nexport interface IGetApiInformations extends IApiInformations {\n cacheCode?: string;\n /** In Minutes */\n cacheLifetime?: number;\n}\n","import { FindChildElement, IsBrowser, RemoveElement } from \"../helpers/browser-helpers\";\r\nimport { EAnimationClasses, ESizes } from \"../interfaces/layout-interfaces\";\r\nimport { EBackgrounds } from \"../interfaces/theme-interfaces\";\r\nimport { UN } from \"../interfaces/type-interfaces\";\r\nimport { FILES } from \"../nexus.environments\";\r\n\r\nconst DEFAULT_LOADER_TYPE = EAnimationClasses.SPIN;\r\nconst DEFAULT_LOADER_SIZE = ESizes.Medium;\r\nconst DEFAULT_LOADER_DELAY = 0;\r\nconst LOADER_IDENTITY = \"nexus-loader\";\r\nconst LOADER_DATA_COUNT_ATTRIBUTE = \"data-count\";\r\nconst LOADER_DATA_TYPE_ATTRIBUTE = \"data-type\";\r\nconst LOADER_DATA_SIZE_ATTRIBUTE = \"data-size\";\r\nconst LOADER_DATA_DISABLED_INPUTS_ATTRIBUTE = \"data-disabled-inputs\";\r\nconst DISPOSED_LOADER_CLASS = \"disposed\";\r\nconst DEFAULT_LOADER_BACKGROUND = EBackgrounds.PopupBackgroundColor;\r\n/**\r\n *\r\n * @param parent - Parent element to show loader on\r\n * @param type - Animation type to use for showing loader\r\n * @param disabledInputs - If true, all inputs will be disabled\r\n * @param size - Size of the loader\r\n * @param delay - Delay in milliseconds\r\n * @returns - Returns the loader element\r\n */\r\n\r\nconst _findParentElement = (parent: String | HTMLElement | UN): HTMLElement => {\r\n if (parent) {\r\n if (typeof parent === \"string\") return document.getElementById(parent) ?? document.body;\r\n else if (parent instanceof HTMLElement) return parent ?? document.body;\r\n }\r\n\r\n return document.body;\r\n};\r\nconst _findExistingLoader = (parent: HTMLElement): HTMLElement | null => {\r\n const loaderElement = FindChildElement(parent, `#${LOADER_IDENTITY}`);\r\n return loaderElement as HTMLElement | null;\r\n};\r\nconst _updateLoaderProperties = (loaderElement: HTMLElement, type: EAnimationClasses, size: ESizes) => {\r\n if (type === EAnimationClasses.SPIN) {\r\n if (size === ESizes.VeryTiny) {\r\n loaderElement.style.setProperty(\"--SPIN_BOX_SIZE\", \"2.5rem\");\r\n loaderElement.style.setProperty(\"--SPIN_BOX_BORDER_SIZE\", \"0.34rem\");\r\n } else if (size === ESizes.Tiny) {\r\n loaderElement.style.setProperty(\"--SPIN_BOX_SIZE\", \"2.8rem\");\r\n loaderElement.style.setProperty(\"--SPIN_BOX_BORDER_SIZE\", \"0.36rem\");\r\n } else if (size === ESizes.VerySmall) {\r\n loaderElement.style.setProperty(\"--SPIN_BOX_SIZE\", \"3rem\");\r\n loaderElement.style.setProperty(\"--SPIN_BOX_BORDER_SIZE\", \"0.38rem\");\r\n } else if (size === ESizes.Small) {\r\n loaderElement.style.setProperty(\"--SPIN_BOX_SIZE\", \"3.5rem\");\r\n loaderElement.style.setProperty(\"--SPIN_BOX_BORDER_SIZE\", \"0.45rem\");\r\n } else if (size === ESizes.Medium) {\r\n loaderElement.style.setProperty(\"--SPIN_BOX_SIZE\", \"4rem\");\r\n loaderElement.style.setProperty(\"--SPIN_BOX_BORDER_SIZE\", \"0.5rem\");\r\n } else if (size === ESizes.Large) {\r\n loaderElement.style.setProperty(\"--SPIN_BOX_SIZE\", \"4.8rem\");\r\n loaderElement.style.setProperty(\"--SPIN_BOX_BORDER_SIZE\", \"0.55rem\");\r\n } else if (size === ESizes.ExtraLarge) {\r\n loaderElement.style.setProperty(\"--SPIN_BOX_SIZE\", \"5.5rem\");\r\n loaderElement.style.setProperty(\"--SPIN_BOX_BORDER_SIZE\", \"0.6rem\");\r\n } else if (size === ESizes.VeryExtraLarge) {\r\n loaderElement.style.setProperty(\"--SPIN_BOX_SIZE\", \"6.5rem\");\r\n loaderElement.style.setProperty(\"--SPIN_BOX_BORDER_SIZE\", \"0.7rem\");\r\n } else if (size === ESizes.FullSize) {\r\n loaderElement.style.setProperty(\"--SPIN_BOX_SIZE\", \"8rem\");\r\n loaderElement.style.setProperty(\"--SPIN_BOX_BORDER_SIZE\", \"0.8rem\");\r\n }\r\n }\r\n};\r\nconst _updateLoaderAttributes = (loaderElement: HTMLElement, type: EAnimationClasses, size: ESizes, disabledInputs: boolean, count: number) => {\r\n loaderElement.setAttribute(LOADER_DATA_COUNT_ATTRIBUTE, count.toString());\r\n loaderElement.setAttribute(LOADER_DATA_TYPE_ATTRIBUTE, type);\r\n loaderElement.setAttribute(LOADER_DATA_SIZE_ATTRIBUTE, size);\r\n loaderElement.setAttribute(LOADER_DATA_DISABLED_INPUTS_ATTRIBUTE, disabledInputs ? \"true\" : \"false\");\r\n};\r\nconst _createLoaderElement = (parent: HTMLElement, type: EAnimationClasses, size: ESizes, showLogo: boolean, disabledInputs: boolean, background: EBackgrounds): HTMLElement | null => {\r\n const loaderElement = _findExistingLoader(parent);\r\n if (loaderElement && !loaderElement.classList.contains(DISPOSED_LOADER_CLASS)) {\r\n const count = parseInt(loaderElement.getAttribute(LOADER_DATA_COUNT_ATTRIBUTE) ?? \"0\") + 1;\r\n _updateLoaderAttributes(loaderElement, type, size, disabledInputs, count);\r\n _updateLoaderProperties(loaderElement, type, size);\r\n return loaderElement as HTMLElement;\r\n }\r\n\r\n const newLoaderElement = document.createElement(\"div\");\r\n newLoaderElement.id = LOADER_IDENTITY;\r\n newLoaderElement.classList.add(\"nexus-container\", \"o0\", EAnimationClasses.FADE_IN, background);\r\n _updateLoaderAttributes(newLoaderElement, type, size, disabledInputs, 1);\r\n\r\n const loader = document.createElement(\"div\");\r\n newLoaderElement.appendChild(loader);\r\n loader.classList.add(size, type);\r\n\r\n const isTextLoader = (type === EAnimationClasses.BOUNCE || type === EAnimationClasses.FADE_IN_OUT || type === EAnimationClasses.PULSE_IN_OUT) && parent === document.body;\r\n if (isTextLoader && !showLogo) {\r\n loader.innerText = \"Loading...\";\r\n loader.classList.add(\"tx52\");\r\n loader.style.fontSize = \"1.5rem\";\r\n } else if (showLogo) {\r\n _updateLoaderProperties(newLoaderElement, type, size);\r\n\r\n const logoElement = document.createElement(\"img\");\r\n logoElement.src = FILES.LOGO.ICON;\r\n logoElement.alt = \"Logo\";\r\n logoElement.className = \"pa bg52\";\r\n logoElement.style.width = \"calc(var(--SPIN_BOX_SIZE) - var(--SPIN_BOX_BORDER_SIZE))\";\r\n logoElement.style.height = \"calc(var(--SPIN_BOX_SIZE) - var(--SPIN_BOX_BORDER_SIZE))\";\r\n logoElement.style.zIndex = \"-1\";\r\n\r\n if (isTextLoader) {\r\n logoElement.style.padding = `var(--SPIN_BOX_BORDER_SIZE)`;\r\n logoElement.classList.add(\"txy50\", \"r2\");\r\n loader.appendChild(logoElement);\r\n } else {\r\n logoElement.style.padding = `calc(var(--SPIN_BOX_BORDER_SIZE) * 1.3)`;\r\n logoElement.style.borderRadius = `35%`;\r\n newLoaderElement.appendChild(logoElement);\r\n }\r\n }\r\n\r\n parent.appendChild(newLoaderElement);\r\n return newLoaderElement;\r\n};\r\n\r\nexport const ShowLoader = async (parent?: String | HTMLElement | UN, type?: EAnimationClasses | UN, disabledInputs?: boolean | UN, size?: ESizes | UN, delay?: number | UN, showLogo?: boolean | UN, background?: EBackgrounds | UN): Promise<HTMLElement | null> => {\r\n if (!IsBrowser()) return Promise.resolve(null);\r\n type = type ?? DEFAULT_LOADER_TYPE;\r\n size = size ?? DEFAULT_LOADER_SIZE;\r\n background = background ?? DEFAULT_LOADER_BACKGROUND;\r\n\r\n return new Promise((resolve) => {\r\n const timeout = setTimeout(() => {\r\n clearTimeout(timeout);\r\n const parentElement = _findParentElement(parent);\r\n const loaderElement = _createLoaderElement(parentElement, type, size, showLogo ?? true, disabledInputs ?? false, background);\r\n resolve(loaderElement);\r\n }, delay ?? DEFAULT_LOADER_DELAY);\r\n });\r\n};\r\n\r\n/**\r\n * Hide loader if it is visible\r\n * @param parent - Parent element to hide loader from\r\n * @param type - Animation type to use for hiding loader\r\n * @param force - This will dispose all loader elements\r\n * @param delay - Delay in milliseconds\r\n */\r\nexport const HideLoader = (parent?: String | HTMLElement | UN, force?: boolean | UN, delay?: number | UN): Promise<boolean> => {\r\n if (!IsBrowser()) return Promise.resolve(false);\r\n const parentElement = _findParentElement(parent);\r\n\r\n return new Promise((resolve) => {\r\n const timeout = setTimeout(() => {\r\n clearTimeout(timeout);\r\n\r\n const loaderElement = _findExistingLoader(parentElement);\r\n if (!loaderElement) return resolve(false);\r\n\r\n const count = parseInt(loaderElement.getAttribute(LOADER_DATA_COUNT_ATTRIBUTE) ?? \"0\");\r\n\r\n if (force || count <= 1) {\r\n RemoveElement(loaderElement, 300);\r\n } else loaderElement.setAttribute(LOADER_DATA_COUNT_ATTRIBUTE, (count - 1).toString());\r\n return resolve(true);\r\n }, delay ?? DEFAULT_LOADER_DELAY);\r\n });\r\n};\r\n"]}