{"version":3,"sources":["../src/lib/utils.ts","../src/components/customIntegration/ui/table.tsx","../src/components/customIntegration/ui/skeleton.tsx","../src/components/customIntegration/ui/customHooks/use-mobile.tsx","../src/theme/theme.tsx","../src/components/common/Button/style.tsx","../src/components/common/Button/Button.tsx","../src/components/common/CheckBox/CheckBox.tsx","../src/components/common/Typography/EHeading.tsx","../src/components/common/Typography/EParagraph.tsx","../src/components/common/Typography/EText.tsx","../src/components/common/Divider/Divider.tsx","../src/components/common/Tooltip/Tooltip.tsx","../src/components/common/Popover/Popover.tsx","../src/components/common/Tab/style.tsx","../src/components/common/Tab/Tab.tsx","../src/components/common/DatePicker/DatePicker.tsx","../src/components/common/Icon/Icon.tsx","../src/assets/index.tsx","../src/components/common/NoData/NoData.tsx","../src/constants.ts","../src/components/common/CustomInputFields/Fields.tsx","../src/components/common/CustomInputFields/ProFields.tsx","../src/components/common/Loader/Loader.tsx","../src/components/customIntegration/Tanstack/tableInput.tsx","../src/components/customIntegration/Tanstack/useTanstackTable.tsx","../src/components/customIntegration/Tanstack/tableUtils.tsx","../src/components/customIntegration/Tanstack/tableConstant.tsx","../src/components/customIntegration/Tanstack/tableComponents.tsx","../src/components/customIntegration/Tanstack/InternalTable.tsx","../src/components/customIntegration/Tanstack/TanstackTable.tsx","../src/components/customIntegration/Tanstack/style.tsx"],"names":["React","React3","_","buttonVariant","size","useState","Typography","useStyles","createStyles","Flex","Image","amountFormatter","ProFormDigit","IconCurrencyRupee","dayjs","ProFormText","isArray","useSafeState","_a","value","Popover","Space","_b","useEffect","forwardRef","useMemo","useRef","Skeleton","Fragment","useCallback","useImperativeHandle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,MAAM,MAAsB,EAAA;AAC1C,EAAO,OAAA,OAAA,CAAQ,IAAK,CAAA,MAAM,CAAC,CAAA;AAC7B;AAEA,IAAM,SAAY,GAAA,IAAI,IAAK,CAAA,YAAA,CAAa,OAAS,EAAA;AAAA,EAC/C,KAAO,EAAA,SAAA;AAAA,EACP,qBAAuB,EAAA,CAAA;AAAA,EACvB,qBAAuB,EAAA;AACzB,CAAC,CAAA;AAEM,IAAM,eAAA,GAAkB,CAAC,KAAuC,KAAA;AACrE,EAAI,IAAA,KAAA,IAAS,UAAU,CAAG,EAAA;AACxB,IAAO,OAAA,SAAA,CAAU,OAAO,KAAe,CAAA;AAAA;AAEzC,EAAO,OAAA,EAAA;AACT,CAAA;AAEO,IAAM,aAAA,GAAgB,CAAC,GAAuB,KAAA;AACnD,EAAI,IAAA,GAAA,YAAe,MAAa,OAAA,GAAA;AAChC,EAAA,OAAc,iBAAU,GAAG,CAAA;AAC7B,CAAA;AAEO,IAAM,cAAA,GAAiB,CAAC,QAA4B,KAAA;AACzD,EAAA,OAAO,IAAI,IAAA,CAAK,QAAQ,CAAA,CAAE,mBAAmB,OAAS,EAAA;AAAA,IACpD,KAAO,EAAA,OAAA;AAAA,IACP,GAAK,EAAA,SAAA;AAAA,IACL,IAAM,EAAA,SAAA;AAAA,IACN,IAAM,EAAA,SAAA;AAAA,IACN,MAAQ,EAAA,SAAA;AAAA,IACR,MAAQ,EAAA;AAAA,GACT,CAAA;AACH,CAAA;;;AChCA,IAAM,WAAoB,GAAAA,OAAA,CAAA,UAAA,CAGxB,CAAC,EAAE,SAAW,EAAA,GAAG,KAAM,EAAA,EAAG,GAC1B,qBAAAA,OAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,GAAA,EAAU,WAAU,+CACvB,EAAA,kBAAAA,OAAA,CAAA,aAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAW,EAAG,CAAA,gCAAA,EAAkC,SAAS,CAAA;AAAA,IACxD,GAAG;AAAA;AACN,CACF,CACD;AACD,WAAA,CAAY,WAAc,GAAA,OAAA;AAEpB,IAAA,iBAAA,GAA0BA,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAA,OAAA,CAAA,aAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAA,EAAA;AAAA,MACT,iEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAc,GAAA,aAAA;AAE1B,IAAA,eAAA,GAAwBA,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAA,OAAA,CAAA,aAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAG,CAAA,4BAAA,EAA8B,SAAS,CAAA;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,WAAc,GAAA,WAAA;AAExB,IAAA,iBAAA,GAA0BA,mBAG9B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAA,OAAA,CAAA,aAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAA,EAAA;AAAA,MACT,kGAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,iBAAA,CAAkB,WAAc,GAAA,aAAA;AAE1B,IAAA,cAAA,GAAuBA,mBAG3B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAA,OAAA,CAAA,aAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAA,EAAA;AAAA,MACT,oFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,cAAA,CAAe,WAAc,GAAA,UAAA;AAEvB,IAAA,eAAA,GAAwBA,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAA,OAAA,CAAA,aAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAA,EAAA;AAAA,MACT,8IAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,WAAc,GAAA,WAAA;AAExB,IAAA,eAAA,GAAwBA,mBAG5B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAA,OAAA,CAAA,aAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAG,CAAA,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG;AAAA;AACN,CACD;AACD,eAAA,CAAgB,WAAc,GAAA,WAAA;AAExB,IAAA,kBAAA,GAA2BA,mBAG/B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAC1B,qBAAAA,OAAA,CAAA,aAAA;AAAA,EAAC,SAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAG,CAAA,oCAAA,EAAsC,SAAS,CAAA;AAAA,IAC5D,GAAG;AAAA;AACN,CACD;AACD,kBAAA,CAAmB,WAAc,GAAA,cAAA;AC3GjC,SAAS,QAAS,CAAA;AAAA,EAChB,SAAA;AAAA,EACA,GAAG;AACL,CAAyC,EAAA;AACvC,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAG,CAAA,mCAAA,EAAqC,SAAS,CAAA;AAAA,MAC3D,GAAG;AAAA;AAAA,GACN;AAEJ;ACXA,IAAM,iBAAoB,GAAA,GAAA;AAEnB,SAAS,WAAc,GAAA;AAC5B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAUC,iBAA8B,MAAS,CAAA;AAE7E,EAAMA,kBAAU,MAAM;AACpB,IAAA,MAAM,MAAM,MAAO,CAAA,UAAA,CAAW,CAAe,YAAA,EAAA,iBAAA,GAAoB,CAAC,CAAK,GAAA,CAAA,CAAA;AACvE,IAAA,MAAM,WAAW,MAAM;AACrB,MAAY,WAAA,CAAA,MAAA,CAAO,aAAa,iBAAiB,CAAA;AAAA,KACnD;AACA,IAAI,GAAA,CAAA,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACvC,IAAY,WAAA,CAAA,MAAA,CAAO,aAAa,iBAAiB,CAAA;AACjD,IAAA,OAAO,MAAM,GAAA,CAAI,mBAAoB,CAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,GACzD,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,CAAC,CAAC,QAAA;AACX;ACdA,IAAM,EAAE,gBAAA,EAAkB,aAAe,EAAA,QAAA,EAAa,GAAA,KAAA;AAoV/C,IAAM,cAAc,MAAM;AAC/B,EAAM,MAAA,EAAE,KAAM,EAAA,GAAI,QAAS,EAAA;AAC3B,EAAO,OAAA,KAAA;AACT,CAAA;;;AChVO,IAAM,SAAY,GAAA,CAAC,EAAE,aAAA,EAAe,MAAiB,KAAA;AAC1D,EAAA,MAAM,QAAQ,WAAY,EAAA;AAE1B,EAAA,MAAM,eAAkB,GAAA;AAAA,IACtB,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,WAAa,EAAA,aAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,OAAO,KAAM,CAAA,MAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,IAAM,EAAA;AAAA,GACR;AACA,EAAA,MAAM,oBAAuB,GAAA;AAAA,IAC3B,IAAM,EAAA,SAAA;AAAA,IACN,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,WAAa,EAAA,aAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,OAAO,KAAM,CAAA,MAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,MAAM,KAAM,CAAA;AAAA,GACd;AAEA,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,aAAa,KAAM,CAAA,QAAA;AAAA,IACnB,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,OAAO,KAAM,CAAA,MAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,IAAM,EAAA,OAAA;AAAA,IACN,MAAM,KAAM,CAAA;AAAA,GACd;AAEA,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,aAAa,KAAM,CAAA,QAAA;AAAA,IACnB,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,OAAO,KAAM,CAAA,MAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,IAAM,EAAA;AAAA,GACR;AACA,EAAA,MAAM,QAAW,GAAA;AAAA,IACf,KAAO,EAAA,iBAAA;AAAA,IACP,MAAQ,EAAA,iBAAA;AAAA,IACR,KAAO,EAAA,iBAAA;AAAA,IACP,UAAY,EAAA;AAAA,GACd;AAEA,EAAO,OAAA,YAAA,CAAa,CAACC,EAAG,EAAA,EAAE,eAAAC,cAAe,EAAA,IAAA,EAAAC,OAAkB,MAAA;AAAA,IACzD,MAAQ,EAAA;AAAA,MACN,eAAiB,EAAA,CAAA,EAAG,eAAgBD,CAAAA,cAAa,CAAC,CAAA,WAAA,CAAA;AAAA,MAClD,KAAO,EAAA,CAAA,EAAG,KAAMA,CAAAA,cAAa,CAAC,CAAA,WAAA,CAAA;AAAA,MAC9B,OAAS,EAAA,MAAA;AAAA,MACT,UAAY,EAAA,QAAA;AAAA,MACZ,cAAgB,EAAA,QAAA;AAAA,MAChB,KAAA,EAAO,QAASC,CAAAA,KAAAA,IAAQ,OAAO,CAAA;AAAA,MAC/B,QAAA,EAAU,QAASA,CAAAA,KAAAA,IAAQ,OAAO,CAAA;AAAA,MAClC,MAAA,EAAQ,QAASA,CAAAA,KAAAA,IAAQ,OAAO,CAAA;AAAA,MAChC,QAAU,EAAA;AAAA,QACR,MAAQ,EAAA,CAAA,UAAA,EAAa,UAAWD,CAAAA,cAAa,CAAC,CAAA,WAAA,CAAA;AAAA,QAC9C,eAAiB,EAAA,CAAA,EAAG,oBAAqBA,CAAAA,cAAa,CAAC,CAAA,WAAA;AAAA;AACzD;AACF,GACA,CAAA,CAAA,CAAE,EAAE,aAAA,EAAe,MAAM,CAAA;AAC7B,CAAA;AAEO,IAAM,uBAAuB,CAAC;AAAA,EACnC,aAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAY,KAAA;AACV,EAAA,MAAM,QAAQ,WAAY,EAAA;AAE1B,EAAA,MAAM,eAAkB,GAAA;AAAA,IACtB,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,WAAa,EAAA,aAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,OAAO,KAAM,CAAA,MAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,IAAM,EAAA;AAAA,GACR;AACA,EAAA,MAAM,oBAAuB,GAAA;AAAA,IAC3B,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,WAAa,EAAA,aAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,OAAO,KAAM,CAAA,MAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,IAAM,EAAA;AAAA,GACR;AAEA,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,aAAa,KAAM,CAAA,QAAA;AAAA,IACnB,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,OAAO,KAAM,CAAA,MAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,IAAM,EAAA;AAAA,GACR;AAEA,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,aAAa,KAAM,CAAA,QAAA;AAAA,IACnB,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,OAAO,KAAM,CAAA,MAAA;AAAA,IACb,SAAS,KAAM,CAAA,QAAA;AAAA,IACf,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,IAAM,EAAA;AAAA,GACR;AAEA,EAAA,OAAO,aAAa,CAACD,EAAAA,EAAG,EAAE,aAAA,EAAAC,gBAA2B,MAAA;AAAA,IACnD,MAAQ,EAAA;AAAA,MACN,eAAiB,EAAA,CAAA,EAAG,eAAgBA,CAAAA,cAAa,CAAC,CAAA,WAAA,CAAA;AAAA,MAClD,KAAO,EAAA,CAAA,EAAG,KAAMA,CAAAA,cAAa,CAAC,CAAA,WAAA,CAAA;AAAA,MAC9B,OAAS,EAAA,MAAA;AAAA,MACT,UAAY,EAAA,QAAA;AAAA,MACZ,cAAgB,EAAA,QAAA;AAAA,MAChB,QAAU,EAAA;AAAA,QACR,QAAQ,eACJ,GAAA,CAAA,UAAA,EAAa,UAAWA,CAAAA,cAAa,CAAC,CACtC,WAAA,CAAA,GAAA,iBAAA;AAAA,QACJ,iBAAiB,eACb,GAAA,CAAA,EAAG,oBAAqBA,CAAAA,cAAa,CAAC,CACtC,WAAA,CAAA,GAAA;AAAA;AACN;AACF,GACA,CAAA,CAAA,CAAE,EAAE,aAAA,EAAe,MAAM,CAAA;AAC7B,CAAA;AAEO,IAAM,uBAAuB,MAAM;AACxC,EAAA,MAAM,QAAQ,WAAY,EAAA;AAE1B,EAAA,OAAO,aAAa,OAAO;AAAA,IACzB,MAAQ,EAAA;AAAA,MACN,UAAY,EAAA,KAAA;AAAA,MACZ,mBAAqB,EAAA;AAAA,QACnB,OAAO,KAAM,CAAA,QAAA;AAAA,QACb,iBAAiB,KAAM,CAAA;AAAA;AACzB;AACF,IACA,CAAE,EAAA;AACN,CAAA;ACpJO,IAAM,UAAkC,CAAC,EAAE,GAAK,EAAA,GAAG,OAAY,KAAA;AACpE,EAAA;AAAA;AAAA,oBAEEH,gBAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,KAAO,EAAA;AAAA,UACL,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA,QAAA;AAAA,UAChB,GAAG,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA;AAAA;AACZ;AAAA;AACF;AAEJ;AAoBO,IAAM,kBAA8C,CAAC;AAAA,EAC1D,kBAAqB,GAAA,SAAA;AAAA,EACrB,KAAQ,GAAA,OAAA;AAAA,EACR,IAAO,GAAA,OAAA;AAAA,EACP,GAAG;AACL,CAAM,KAAA;AACJ,EAAM,MAAA,EAAE,QAAW,GAAA,SAAA,CAAU,EAAE,aAAe,EAAA,kBAAA,EAAoB,MAAM,CAAA;AACxE,EACE,uBAAAA,gBAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,IAAA,EAAY,OAAc,SAAW,EAAA,MAAA,CAAO,MAAS,EAAA,GAAG,KAAO,EAAA,CAAA;AAE5E;AAOO,IAAM,cAA0C,CAAC;AAAA,EACtD,aAAgB,GAAA,SAAA;AAAA,EAChB,KAAQ,GAAA,SAAA;AAAA,EACR,IAAO,GAAA,OAAA;AAAA,EACP,eAAkB,GAAA,KAAA;AAAA,EAClB,GAAG;AACL,CAAM,KAAA;AACJ,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,oBAAqB,CAAA;AAAA,IACtC,aAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAO,uBAAAA,iBAAA,aAAC,CAAA,OAAA,EAAA,EAAQ,OAAc,SAAW,EAAA,MAAA,CAAO,MAAS,EAAA,GAAG,KAAO,EAAA,CAAA;AACrE;AAeO,IAAM,eAA4C,CAAC;AAAA,EACxD,OAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAW,MAAM,IAAA;AAAA,EACjB,IAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AAlGN,EAAA,IAAA,EAAA;AAoGE,EAAM,MAAA,CAAC,UAAU,WAAW,CAAA,GAAIK,SAAS,KAAS,KAAA,CAAA,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAU,CAAV,CAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAc,KAAK,CAAA,CAAA;AAGrE,EAAA,MAAM,EAAE,MAAA,EAAQ,EAAG,EAAA,GAAI,oBAAqB,EAAA;AAE5C,EAAA;AAAA;AAAA,oBAEEL,gBAAAA,CAAA,aAAC,CAAA,KAAA,CAAM,OAAN,EAAA,IAAA,EAEE,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,GACnB,qBAAAA,gBAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACE,GAAG,IAAA;AAAA,QACJ,SAAW,EAAA,EAAA,CAAG,IAAK,CAAA,SAAA,EAAW,OAAO,MAAM,CAAA;AAAA,QAC3C,GAAA;AAAA,QACA,IAAM,EAAA,QAAA,MAAa,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,KAAA,CAAA,GAAQ,SAAY,GAAA,SAAA;AAAA,QAC7C,OAAO,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,KAAA;AAAA,QACb,SAAS,MAAM;AAEb,UAAA,WAAA,CAAY,6BAAM,KAAK,CAAA;AACvB,UAAA,QAAA,CAAS,6BAAM,KAAK,CAAA;AAAA;AACtB,OAAA;AAAA,MAEC,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA;AAAA,KAGb,CAAA;AAAA;AAEJ;AAOO,IAAM,cAA0C,CAAC;AAAA,EACtD,IAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACEA,gBAAA,CAAA,aAAA,CAAC,WAAS,GAAI,IAAA,EAAA,kBACZA,gBAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,QAAU,EAAA,EAAA;AAAA,MACV,KAAA,EAAO,EAAE,WAAA,EAAa,KAAM,EAAA;AAAA,MAC5B;AAAA;AAAA,KAED,KACH,CAAA;AAEJ;AAEO,IAAM,qBAA6C,CAAC;AAAA,EACzD,GAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA;AAAA;AAAA,oBAEEA,gBAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA,QAAA;AAAA,UAChB,eAAiB,EAAA,MAAA;AAAA,UACjB,MAAA,EAAQ,CAAa,UAAA,EAAA,KAAA,CAAM,wBAAwB,CAAA,CAAA;AAAA,UACnD,GAAG,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA;AAAA,SACZ;AAAA,QACC,GAAG;AAAA;AAAA;AACN;AAEJ;AAMO,IAAM,oBAAsD,CAAC;AAAA,EAClE,SAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EACE,uBAAAA,gBAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,IAAA,EAAK,SAAU,EAAA,MAAA,EAAM,IAAC,EAAA,IAAA,EAAK,QAAU,EAAA,GAAG,IAC/C,EAAA,kBAAAA,iBAAA,aAAC,CAAA,KAAA,EAAA,EAAM,IAAM,EAAA,oBAAA,EAAsB,KAAO,EAAA,EAAE,WAAa,EAAA,CAAA,EAAK,EAAA,CAAA,EAAE,UACvD,EAAA,SAAA,EAAU,GACrB,CAAA;AAEJ;AAEO,IAAM,mBAAqD,CAAC;AAAA,EACjE,SAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,MAAA;AAAA,MACL,OAAO,EAAE,UAAA,EAAY,OAAO,OAAS,EAAA,MAAA,EAAQ,YAAY,QAAS,EAAA;AAAA,MACjE,GAAG;AAAA,KAAA;AAAA,IACL,QAAA;AAAA,IACQ,SAAA;AAAA,IAAU;AAAA,GACnB;AAEJ;AAEO,IAAM,8BAAqD,CAAC;AAAA,EACjE,QAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,KAAO,EAAA,MAAA;AAAA,QACP,OAAO,KAAM,CAAA,QAAA;AAAA,QACb,UAAY,EAAA,KAAA;AAAA,QACZ,YAAc,EAAA;AAAA,OAChB;AAAA,MACC,GAAG;AAAA,KAAA;AAAA,IAEH;AAAA,GACH;AAEJ;AAGA,IAAM,qBAAkD,GAAA,CAEtD,IACA,EAAA,EAAE,WACC,KAAA;AACH,EAAA,IAAI,cAAc,QAAU,EAAA;AAC1B,IAAA;AAAA;AAGF,EAAA,MAAM,MAAM,CAAC,CAAA,EAAG,KAAK,EAAI,EAAA,EAAA,EAAI,GAAG,CAAC,CAAA;AACjC,EAAA,MAAM,GAAM,GAAA,EAAA;AAEZ,EAAA,IAAI,KAAQ,GAAA,CAAA;AAEZ,EAAA,SAAS,IAAO,GAAA;AACd,IAAA,oBAAA,CAAqB,KAAK,aAAa,CAAA;AAEvC,IAAK,IAAA,CAAA,aAAA,GAAgB,sBAAsB,MAAM;AAC/C,MAAA,MAAM,WAAc,GAAA,IAAA,CAAK,KAAM,CAAA,KAAA,GAAQ,GAAG,CAAA;AAC1C,MAAM,MAAA,OAAA,GAAU,IAAI,WAAW,CAAA;AAC/B,MAAM,MAAA,IAAA,GAAO,GAAI,CAAA,WAAA,GAAc,CAAC,CAAA;AAEhC,MAAA,IAAI,CAAC,IAAM,EAAA;AACT,QAAA,IAAA,CAAK,MAAM,SAAY,GAAA,EAAA;AACvB,QAAA,IAAA,CAAK,MAAM,UAAa,GAAA,EAAA;AACxB,QAAA;AAAA;AAGF,MAAA,MAAM,KAAQ,GAAA,OAAA,GAAA,CAAY,IAAO,GAAA,OAAA,IAAW,OAAQ,KAAQ,GAAA,GAAA,CAAA;AAE5D,MAAK,IAAA,CAAA,KAAA,CAAM,SAAY,GAAA,CAAA,OAAA,EAAU,KAAK,CAAA,IAAA,CAAA;AACtC,MAAA,IAAA,CAAK,MAAM,UAAa,GAAA,MAAA;AAExB,MAAS,KAAA,IAAA,CAAA;AACT,MAAK,IAAA,EAAA;AAAA,KACN,CAAA;AAAA;AAGH,EAAK,IAAA,EAAA;AACP,CAAA;AAEO,IAAM,qBAAqB,CAAC;AAAA,EACjC,eAAkB,GAAA,IAAA;AAAA,EAClB,UAAa,GAAA,qBAAA;AAAA,EACb,QAAA;AAAA,EACA,GAAG;AACL,CAAwB,KAAA;AACtB,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,IAAM,EAAA;AAAA,QACJ,UAAA,EAAY,kBAAkB,UAAa,GAAA,MAAA;AAAA,QAC3C,GAAG;AAAA;AACL,KAAA;AAAA,IAEC;AAAA,GACH;AAEJ;AAOO,IAAM,cAAc,CAAC;AAAA,EAC1B,eAAkB,GAAA,IAAA;AAAA,EAClB,UAAa,GAAA,qBAAA;AAAA,EACb,QAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAG;AACL,CAAwB,KAAA;AACtB,EAAA,uBACEA,gBAAA,CAAA,aAAA,CAAC,kBAAmB,EAAA,EAAA,eAAA,EAAmC,GAAG,IACxD,EAAA,kBAAAA,gBAAA,CAAA,aAAA,CAAC,WAAQ,IAAK,EAAA,SAAA,EAAW,GAAG,WAAA,EAAA,EACzB,QACH,CACF,CAAA;AAEJ;ACnSO,IAAM,YAAsC,CAAC;AAAA,EAClD,KAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBAAOA,gBAAA,CAAA,aAAA,CAAC,eAAiB,EAAA,EAAA,GAAG,QAAO,KAAM,CAAA;AAC3C;ACGO,IAAM,WAA2C,CAAC;AAAA,EACvD,QAAA;AAAA,EACA,UAAa,GAAA,KAAA;AAAA,EACb,SAAY,GAAA,MAAA;AAAA,EACZ,KAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,MAAC,UAAW,CAAA,KAAA;AAAA,MAAX;AAAA,QACE,GAAG,IAAA;AAAA,QACJ,OAAO,EAAE,KAAA,EAAO,YAAY,SAAW,EAAA,GAAG,KAAK,KAAM;AAAA,OAAA;AAAA,MAEpD;AAAA,KACH;AAAA,GAEJ;AAEA,EAAA,uBAAOA,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,EAAG,kBAAmB,CAAA;AAC/B;ACpBO,IAAM,aAAiD,CAAC;AAAA,EAC7D,QAAA;AAAA,EACA,UAAa,GAAA,KAAA;AAAA,EACb,SAAY,GAAA,MAAA;AAAA,EACZ,KAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,MAACM,UAAW,CAAA,SAAA;AAAA,MAAX;AAAA,QACE,GAAG,IAAA;AAAA,QACJ,OAAO,EAAE,KAAA,EAAO,YAAY,SAAW,EAAA,GAAG,KAAK,KAAM;AAAA,OAAA;AAAA,MAEpD;AAAA,KACH;AAAA,GAEJ;AAEA,EAAA,uBAAON,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,EAAG,kBAAmB,CAAA;AAC/B;ACdO,IAAM,QAAuC,CAAC;AAAA,EACnD,QAAA;AAAA,EACA,UAAa,GAAA,KAAA;AAAA,EACb,SAAY,GAAA,MAAA;AAAA,EACZ,QAAW,GAAA,MAAA;AAAA,EACX,KAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,MAACM,UAAW,CAAA,IAAA;AAAA,MAAX;AAAA,QACE,GAAG,IAAA;AAAA,QACJ,KAAO,EAAA;AAAA,UACL,KAAA;AAAA,UACA,UAAA;AAAA,UACA,SAAA;AAAA,UACA,QAAA;AAAA,UACA,GAAG,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA;AAAA;AACX,OAAA;AAAA,MAEC;AAAA,KACH;AAAA,GAEJ;AAEA,EAAA,uBAAON,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,EAAG,kBAAmB,CAAA;AAC/B;AAEO,IAAM,+BAA8D,CAAC;AAAA,EAC1E,QAAA;AAAA,EACA,UAAa,GAAA,KAAA;AAAA,EACb,SAAA;AAAA,EACA,QAAW,GAAA,MAAA;AAAA,EACX,KAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,MAACM,UAAW,CAAA,IAAA;AAAA,MAAX;AAAA,QACC,KAAO,EAAA;AAAA,UACL,OAAO,KAAM,CAAA,QAAA;AAAA,UACb,UAAA;AAAA,UACA,SAAA;AAAA,UACA,QAAA;AAAA,UACA,GAAG,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA;AAAA,SACX;AAAA,QACC,GAAG;AAAA,OAAA;AAAA,MAEH;AAAA,KACH;AAAA,GAEJ;AAEA,EAAA,uBAAON,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,EAAG,kBAAmB,CAAA;AAC/B;AAoBO,IAAM,4BAET,CAAC;AAAA,EACH,QAAA;AAAA,EACA,UAAa,GAAA,KAAA;AAAA,EACb,QAAW,GAAA,MAAA;AAAA,EACX,KAAA;AAAA,EACA,UAAa,GAAA,KAAA;AAAA,EACb,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,MAACM,UAAW,CAAA,IAAA;AAAA,MAAX;AAAA,QACC,KAAO,EAAA;AAAA,UACL,OAAO,KAAM,CAAA,QAAA;AAAA,UACb,UAAA;AAAA,UACA,QAAA;AAAA,UACA,UAAA;AAAA,UACA,GAAG,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA;AAAA,SACX;AAAA,QACC,GAAG;AAAA,OAAA;AAAA,MAEH;AAAA,KACH;AAAA,GAEJ;AAEA,EAAA,uBAAON,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,EAAG,kBAAmB,CAAA;AAC/B;AAOO,IAAM,eASR,CAAC;AAAA,EACJ,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAW,GAAA,IAAA;AAAA,EACX,OAAU,GAAA,IAAA;AAAA,EACV,KAAQ,GAAA,KAAA;AAAA,EACR,KAAQ,GAAA,QAAA;AAAA,EACR,MAAA;AAAA,EACA;AACF,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAM,MAAA,SAAA,GAAY,QAAQ,GAAM,GAAA,MAAA;AAChC,EAAA,uBACEA,gBAAAA,CAAA,aAAC,CAAA,IAAA,EAAA,IAAA,kBACCA,gBAAA,CAAA,aAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MACA,GAAA,EAAK,WAAW,CAAI,GAAA,EAAA;AAAA,MACpB,OAAA,EAAS,WAAW,QAAW,GAAA,YAAA;AAAA,MAC/B,KAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA,CAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL,SAAW,EAAA;AAAA;AACb,KAAA;AAAA,oBAEAA,gBAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,OAAO,KAAM,CAAA,QAAA;AAAA,QACb,QAAS,EAAA,MAAA;AAAA,QACT,OAAO,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,OAAA;AAAA,QACd,GAAG;AAAA,OAAA;AAAA,MAEH,OAAA;AAAA,MAAQ,GAAA;AAAA,MAAE;AAAA,KACb;AAAA,IACC,OAAO,IAAA,KAAS,QACf,mBAAAA,gBAAA,CAAA,aAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,QAAU,EAAA;AAAA,UACR,IAAM,EAAA,CAAA;AAAA,UACN,OAAS,EAAA;AAAA,SACX;AAAA,QACA,KAAO,EAAA;AAAA,UACL,QAAU,EAAA,MAAA;AAAA,UACV,UAAY,EAAA,KAAA;AAAA,UACZ,GAAG,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA;AAAA,SACb;AAAA,QACA,OAAO,KAAM,CAAA;AAAA,OAAA;AAAA,MAEZ;AAAA,KAGH,GAAA;AAAA,GAEJ,EACC,OACC,oBAAAA,gBAAA,CAAA,aAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,UAAA;AAAA,MACL,WAAY,EAAA,OAAA;AAAA,MACZ,KAAO,EAAA;AAAA,QACL,MAAQ,EAAA,MAAA;AAAA,QACR,UAAY,EAAA,GAAA;AAAA,QACZ,GAAG,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA;AAAA;AACb;AAAA,GAGN,CAAA;AAEJ;AAKO,IAAM,eAQR,CAAC;AAAA,EACJ,GAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAe,GAAA,CAAA;AAAA,EACf,YAAe,GAAA,GAAA;AAAA,EACf,MAAA;AAAA,EACA;AACF,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EACE,uBAAAA,iBAAA,aAAC,CAAA,IAAA,EAAA,EAAK,KAAK,CAAG,EAAA,KAAA,EAAM,UAAS,OAAQ,EAAA,YAAA,EAAA,kBACnCA,gBAAA,CAAA,aAAA,CAAC,YAAS,KAAO,EAAA,QAAA,EAAA,EACd,OAAO,GAAQ,KAAA,QAAA,mBACdA,gBAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAS,EAAA,KAAA;AAAA,MACT,GAAK,EAAA,GAAA;AAAA,MACL,YAAc,EAAA;AAAA,QACZ,GAAG,QAAU,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAA,YAAA;AAAA,QAEb,OAAS,EAAA;AAAA,OACX;AAAA,MACA,OAAO,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,GAAA;AAAA,MACf,MAAQ,EAAA,EAAA;AAAA,MACP,GAAG,QAAA;AAAA,MACJ,OAAQ,EAAA;AAAA;AAAA,MAGV,GAEJ,CAAA,EACC,OAAO,IAAS,KAAA,QAAA,mBACfA,gBAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,MAAQ,EAAA,MAAA;AAAA,QACR,YAAc,EAAA,CAAA;AAAA,QACd,QAAU,EAAA,YAAA;AAAA,QACV,QAAU,EAAA,EAAA;AAAA,QACV,OAAO,KAAM,CAAA,QAAA;AAAA,QACb,UAAY,EAAA;AAAA,OACd;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,YAAA;AAAA,QACN,OAAS,EAAA;AAAA;AACX,KAAA;AAAA,IAEC;AAAA,MAGH,IAEJ,CAAA;AAEJ;AAOO,IAAM,SAAoC,CAAC;AAAA,EAChD,OAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EACE,uBAAAA,iBAAA,aAAC,CAAA,IAAA,EAAA,EAAK,SAAQ,eACZ,EAAA,kBAAAA,gBAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,QAAA,EAAQ,MAAC,GAAK,EAAA,CAAA,EAAA,kBAClBA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,EAAM,YAAW,KAAO,EAAA,EAAA,OAAQ,CACjC,kBAAAA,gBAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,QAAU,EAAA;AAAA,QACR,IAAM,EAAA;AAAA,OACR;AAAA,MACA,UAAW,EAAA,KAAA;AAAA,MACX,OAAO,KAAM,CAAA;AAAA,KAAA;AAAA,IAEZ;AAAA,GAEL,CAEC,EAAA,KAAA,IAAS,KACZ,CAAA;AAEJ;ACtSO,IAAM,WAAoC,CAAC;AAAA,EAChD,SAAY,GAAA,EAAA;AAAA,EACZ,YAAe,GAAA,EAAA;AAAA,EACf,QAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACEA,gBAAAA,CAAA,aAAC,CAAA,OAAA,EAAA,EAAQ,OAAO,EAAE,SAAA,EAAW,YAAc,EAAA,GAAG,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,KAAA,EAAU,EAAA,GAAG,QAC9D,QACH,CAAA;AAEJ;AAEO,IAAM,eAAwC,CAAC;AAAA,EACpD,QAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACEA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,IAAA,kBACCA,gBAAA,CAAA,aAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,KAAO,EAAA;AAAA,QACL,YAAc,EAAA,OAAA;AAAA,QACd,SAAW,EAAA,GAAA;AAAA,QACX,KAAO,EAAA;AAAA;AACT,KAAA;AAAA,IAEC;AAAA,GAEL,CAAA;AAEJ;AAEO,IAAM,sBAA+C,CAAC;AAAA,EAC3D,SAAY,GAAA,CAAA;AAAA,EACZ,YAAe,GAAA,CAAA;AAAA,EACf,QAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACEA,gBAAAA,CAAA,aAAC,CAAA,OAAA,EAAA,EAAQ,OAAO,EAAE,SAAA,EAAW,YAAc,EAAA,GAAG,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,KAAA,EAAU,EAAA,GAAG,QAC9D,QACH,CAAA;AAEJ;AAeO,IAAM,mBAAmD,CAAC;AAAA,EAC/D,YAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAQ,GAAA,KAAA;AAAA,EACR;AACF,CAAM,KAAA;AA/EN,EAAA,IAAA,EAAA;AAgFE,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAY,EAAA,MAAA;AAAA,MACZ,KAAO,EAAA;AAAA,QACL,aAAa,KAAM,CAAA,QAAA;AAAA,QACnB,UAAY,EAAA,KAAA;AAAA,QACZ,MAAQ,EAAA,KAAA,GAAQ,CAAI,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,kBAAR,IAAuB,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA;AAAA,QAC3C,GAAG,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA;AAAA,OACb;AAAA,MACC,GAAG;AAAA,KAAA;AAAA,IAEH,QAAA,oBACCA,gBAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,UAAW,EAAA,KAAA;AAAA,QACX,OAAO,KAAM,CAAA,QAAA;AAAA,QACb,KAAO,EAAA;AAAA,UACL,GAAG,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA;AAAA,SACb;AAAA,QACC,GAAG;AAAA,OAAA;AAAA,MAEH;AAAA;AACH,GAEJ;AAEJ;ACpGO,IAAM,QAAoC,GAAA,CAAC,EAAE,GAAG,MAAW,KAAA;AAChE,EACE,uBAAAA,gBAAA,CAAA,aAAA,CAAC,KACC,EAAA,IAAA,kBAAAA,iBAAA,aAAC,CAAA,OAAA,EAAA,EAAS,GAAG,IAAA,EAAM,CACrB,CAAA;AAEJ;ACPO,IAAM,QAAoC,GAAA,CAAC,EAAE,GAAG,MAAW,KAAA;AAChE,EACE,uBAAAA,gBAAA,CAAA,aAAA,CAAC,KACC,EAAA,IAAA,kBAAAA,iBAAA,aAAC,CAAA,OAAA,EAAA,EAAS,GAAG,IAAA,EAAM,CACrB,CAAA;AAEJ;ACTO,IAAMO,aAAY,MAAM;AAC7B,EAAOC,OAAAA,YAAAA,CAAa,CAACN,EAAO,MAAA;AAAA,IAC1B,UAAY,EAAA;AAAA,MACV,qBAAuB,EAAA;AAAA,QACrB,UAAY,EAAA;AAAA;AACd;AACF,IACA,CAAE,EAAA;AACN,CAAA;;;ACFO,IAAM,IAA4B,GAAA,CAAC,EAAE,GAAG,MAAW,KAAA;AACxD,EAAM,MAAA,EAAE,MAAO,EAAA,GAAIK,UAAU,EAAA;AAC7B,EAAA,uBACEP,gBAAAA,CAAA,aAAAA,CAAAA,gBAAAA,CAAA,gCACEA,gBAAAA,CAAA,aAAC,CAAA,IAAA,EAAA,EAAK,SAAW,EAAA,MAAA,CAAO,UAAa,EAAA,GAAG,MAAM,CAChD,CAAA;AAEJ;ACHO,IAAM,WAA0C,GAAA,CAAC,EAAE,GAAG,MAAW,KAAA;AACtE,EACE,uBAAAA,gBAAA,CAAA,aAAA,CAAC,KAEC,EAAA,IAAA,kBAAAA,iBAAA,aAAC,CAAA,UAAA,EAAA,EAAY,GAAG,IAAA,EAAM,CACxB,CAAA;AAEJ;ACbO,IAAM,KAA8B,GAAA,CAAC,EAAE,GAAG,MAAW,KAAA;AAC1D,EAAA,uBAAOA,gBAAAA,CAAA,aAAC,CAAA,IAAA,EAAA,EAAM,GAAG,IAAM,EAAA,CAAA;AACzB;AAOO,IAAM,eAA4C,CAAC;AAAA,EACxD,KAAQ,GAAA,KAAA;AAAA,EACR,QAAW,GAAA,KAAA;AAAA,EACX,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,QAAA,GAAW,KAAM,CAAA,QAAA,GAAW,KAAM,CAAA,QAAA;AAAA,MACzC,QAAU,EAAA,EAAA;AAAA,MACT,GAAG,IAAA;AAAA,MACJ,KAAO,EAAA,EAAE,GAAG,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAM;AAAA;AAAA,GAC1B;AAEJ;;;;;;ACTO,IAAM,MAAS,GAAA;AAAA,EAUpB,SAAA,EAAA,iBAUF,CAAA;;;AC1BO,IAAM,SAAgC,CAAC;AAAA,EAC5C,KAAQ,GAAA,MAAA;AAAA,EACR,MAAS,GAAA,MAAA;AAAA,EACT;AACF,CAAM,KAAA;AAEJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAG1B,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAACS,IAAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,QAAA;AAAA,MACR,KAAM,EAAA,QAAA;AAAA,MACN,GAAK,EAAA,EAAA;AAAA,MACL,QAAQ,EAAA,IAAA;AAAA,MACR,OAAO,EAAE,SAAA,EAAW,KAAK,KAAO,EAAA,MAAA,EAAQ,GAAG,KAAM;AAAA,KAAA;AAAA,oBAGjDT,gBAAA,CAAA,aAAA;AAAA,MAACU,KAAAA;AAAA,MAAA;AAAA,QACC,KAAK,MAAO,CAAA,SAAA;AAAA,QACZ,OAAS,EAAA,KAAA;AAAA,QACT,KAAO,EAAA,EAAE,KAAO,EAAA,GAAA,EAAK,QAAQ,GAAI;AAAA;AAAA,KACnC;AAAA,oBAGAV,gBAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA,CAAA;AAAA,QACP,UAAW,EAAA,KAAA;AAAA,QACX,OAAO,KAAM,CAAA,QAAA;AAAA,QACb,KAAA,EAAO,EAAE,UAAA,EAAY,EAAG;AAAA,OAAA;AAAA,MACzB;AAAA;AAED,GACF;AAEJ;;;ACzBO,IAAM,QACX,GAAA,wDAAA;AACK,IAAM,QAAW,GAAA,0CAAA;AAMjB,IAAM,UACX,GAAA,yJAAA;AAwWK,IAAM,sBAAyB,GAAA,WAAA;AAC/B,IAAM,qBAAwB,GAAA,gBAAA;;;AC9W9B,IAAM,UAAuC,CAAC;AAAA,EACnD,UAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAMW,MAAAA,gBAAAA,GAAkB,CAAC,KAAuC,KAAA;AAC9D,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,OAAO,KAAM,CAAA,QAAA,EAAW,CAAA,OAAA,CAAQ,yBAAyB,GAAG,CAAA;AAAA;AAE9D,IAAO,OAAA,EAAA;AAAA,GACT;AAEA,EAAA,uBACEX,gBAAA,CAAA,aAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA;AAAA,QACV,MAAA,kBAAQA,gBAAA,CAAA,aAAA,CAAC,qBAAkB,KAAO,EAAA,KAAA,CAAM,QAAU,EAAA,IAAA,EAAM,EAAI,EAAA,CAAA;AAAA,QAC5D,QAAU,EAAA,KAAA;AAAA,QACV,SAAWW,EAAAA,gBAAAA;AAAA,QACX,GAAG;AAAA,OACL;AAAA,MACC,GAAG,IAAA;AAAA,MACJ,OAAO,EAAE,KAAA,EAAO,MAAQ,EAAA,GAAG,6BAAM,KAAM;AAAA;AAAA,GACzC;AAEJ;AAIO,IAAM,SAAsC,CAAC;AAAA,EAClD,UAAA;AAAA,EACA,QAAW,GAAA,KAAA;AAAA,EACX,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,uBACEX,gBAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,WAAY,EAAA,qBAAA;AAAA,MACZ,UAAY,EAAA;AAAA,QACV,MAAA,kBAAQA,gBAAA,CAAA,aAAA,CAAC,YAAS,KAAO,EAAA,KAAA,CAAM,QAAU,EAAA,IAAA,EAAM,EAAI,EAAA,CAAA;AAAA,QACnD,GAAG;AAAA,OACL;AAAA,MACA,QAAQ,EAAA,IAAA;AAAA,MACP,GAAG,IAAA;AAAA,MACJ,KAAO,EAAA,EAAE,GAAG,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAM,EAAA;AAAA,MACxB,KAAO,EAAA;AAAA,QACL;AAAA,UACE,SAAA,CAAUE,EAAG,EAAA,KAAA,EAAO,QAAU,EAAA;AAC5B,YAAA,IAAI,CAAC,KAAO,EAAA;AACV,cAAA,IAAI,QAAU,EAAA;AACZ,gBAAA,QAAA,CAAS,sBAAsB,CAAA;AAC/B,gBAAA;AAAA;AAEF,cAAA,OAAO,QAAS,EAAA;AAAA;AAElB,YAAA,IAAI,CAAC,UAAA,CAAW,IAAK,CAAA,KAAK,CAAG,EAAA;AAC3B,cAAA,QAAA,CAAS,qBAAqB,CAAA;AAAA,aACzB,MAAA;AACL,cAAS,QAAA,EAAA;AAAA;AACX;AACF;AACF;AACF;AAAA,GACF;AAEJ;AAIO,IAAM,OAAoC,CAAC;AAAA,EAChD,UAAA;AAAA,EACA,QAAW,GAAA,IAAA;AAAA,EACX,KAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAM,MAAA,cAAA,GAAiB,CAAC,CAAW,KAAA;AAtGrC,IAAA,IAAA,EAAA,EAAA,EAAA;AAuGI,IAAA,CAAA,CAAE,OAAO,KAAQ,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,MAAH,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAW,UAAX,IAAkB,GAAA,MAAA,GAAA,EAAA,CAAA,WAAA,EAAA;AAAA,GACrC;AACA,EAAA,uBACEF,gBAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,WAAY,EAAA,kBAAA;AAAA,MACZ,QAAQ,EAAA,IAAA;AAAA,MACR,UAAY,EAAA;AAAA,QACV,OAAS,EAAA,cAAA;AAAA,QACT,SAAW,EAAA,EAAA;AAAA,QACX,GAAG;AAAA,OACL;AAAA,MACC,GAAG,IAAA;AAAA,MACJ,KAAO,EAAA,EAAE,GAAG,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAM,EAAA;AAAA,MACxB,KAAO,EAAA;AAAA,QACL;AAAA,UACE,SAAA,CAAUE,EAAG,EAAA,KAAA,EAAO,QAAU,EAAA;AAC5B,YAAA,IAAI,CAAC,KAAO,EAAA;AACV,cAAA,IAAI,QAAU,EAAA;AACZ,gBAAA,QAAA,CAAS,sBAAsB,CAAA;AAC/B,gBAAA;AAAA;AAEF,cAAA,OAAO,QAAS,EAAA;AAAA;AAElB,YAAA,IAAI,CAAC,QAAA,CAAS,IAAK,CAAA,KAAK,CAAG,EAAA;AACzB,cAAA,QAAA,CAAS,qBAAqB,CAAA;AAAA,aACzB,MAAA;AACL,cAAS,QAAA,EAAA;AAAA;AACX;AACF;AACF;AACF;AAAA,GACF;AAEJ;AAIO,IAAM,SAAsC,CAAC;AAAA,EAClD,UAAA;AAAA,EACA,QAAW,GAAA,IAAA;AAAA,EACX,GAAG;AACL,CAAM,KAAA;AACJ,EAAM,MAAA,cAAA,GAAiB,CAAC,CAAW,KAAA;AAjJrC,IAAA,IAAA,EAAA,EAAA,EAAA;AAkJI,IAAA,CAAA,CAAE,OAAO,KAAQ,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,MAAH,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAW,UAAX,IAAkB,GAAA,MAAA,GAAA,EAAA,CAAA,WAAA,EAAA;AAAA,GACrC;AACA,EAAA,uBACEF,gBAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,WAAY,EAAA,kBAAA;AAAA,MACZ,UAAY,EAAA;AAAA,QACV,OAAS,EAAA,cAAA;AAAA,QACT,SAAW,EAAA,EAAA;AAAA,QACX,GAAG;AAAA,OACL;AAAA,MACA,QAAQ,EAAA,IAAA;AAAA,MACP,GAAG,IAAA;AAAA,MACJ,KAAO,EAAA,EAAE,GAAG,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,KAAM,EAAA;AAAA,MACxB,KAAO,EAAA;AAAA,QACL;AAAA,UACE,SAAA,CAAUE,EAAG,EAAA,KAAA,EAAO,QAAU,EAAA;AAC5B,YAAA,IAAI,CAAC,KAAO,EAAA;AACV,cAAA,IAAI,QAAU,EAAA;AACZ,gBAAA,QAAA,CAAS,sBAAsB,CAAA;AAC/B,gBAAA;AAAA;AAEF,cAAA,OAAO,QAAS,EAAA;AAAA;AAElB,YAAA,IAAI,CAAC,QAAA,CAAS,IAAK,CAAA,KAAK,CAAG,EAAA;AACzB,cAAA,QAAA,CAAS,qBAAqB,CAAA;AAAA,aACzB,MAAA;AACL,cAAS,QAAA,EAAA;AAAA;AACX;AACF;AACF;AACF;AAAA,GACF;AAEJ;AAIO,IAAM,WAAwC,CAAC;AAAA,EACpD,UAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,uBACEF,gBAAA,CAAA,aAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA;AAAA,QACV,MAAA,kBAAQA,gBAAA,CAAA,aAAA,CAAC,kBAAe,KAAO,EAAA,KAAA,CAAM,QAAU,EAAA,IAAA,EAAM,EAAI,EAAA,CAAA;AAAA,QACzD,SAAW,EAAA,CAAA;AAAA,QACX,QAAU,EAAA,KAAA;AAAA,QACV,UAAU,KAAO,EAAA;AACf,UAAA,IAAI,KAAO,EAAA;AACT,YAAA,OAAO,KAAM,CAAA,QAAA,EAAW,CAAA,OAAA,CAAQ,KAAK,EAAE,CAAA;AAAA;AAEzC,UAAO,OAAA,EAAA;AAAA,SACT;AAAA,QACA,GAAG;AAAA,OACL;AAAA,MACC,GAAG,IAAA;AAAA,MACJ,OAAO,EAAE,KAAA,EAAO,MAAQ,EAAA,GAAG,6BAAM,KAAM;AAAA;AAAA,GACzC;AAEJ;AAOO,IAAM,YAAkD,CAAC;AAAA,EAC9D,UAAA;AAAA,EACA,IAAO,GAAA,UAAA;AAAA,EACP,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA;AAAA,QACV,SAAW,EAAA,CAAA;AAAA,QACX,SAAW,EAAA,EAAA;AAAA,QACX,QAAU,EAAA,KAAA;AAAA,QACV,MAAA,EACE,SAAS,UACP,mBAAAA,iBAAA,aAAC,CAAA,iBAAA,EAAA,EAAkB,OAAO,KAAM,CAAA,QAAA,EAAU,MAAM,EAAI,EAAA,CAAA,mBAEpDA,gBAAA,CAAA,aAAA,CAAC,sBAAmB,KAAO,EAAA,KAAA,CAAM,QAAU,EAAA,IAAA,EAAM,EAAI,EAAA,CAAA;AAAA,QAEzD,GAAG;AAAA,OACL;AAAA,MACA,WAAa,EAAA,IAAA;AAAA,MACZ,GAAG,IAAA;AAAA,MACJ,OAAO,EAAE,KAAA,EAAO,MAAQ,EAAA,GAAG,6BAAM,KAAM;AAAA;AAAA,GACzC;AAEJ;AC9MO,IAAM,iBAA8C,CAAC;AAAA,EAC1D,UAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAACY,YAAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA;AAAA,QACV,SAAW,EAAA,CAAA;AAAA,QACX,SAAA,EAAW,CAAC,KAAU,KAAA,CAAA,EAAG,KAAK,CAAG,CAAA,CAAA,OAAA,CAAQ,MAAM,EAAE,CAAA;AAAA,QACjD,GAAG;AAAA,OACL;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAQO,IAAM,kBAAiD,CAAC;AAAA,EAC7D,UAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,uBACEZ,gBAAA,CAAA,aAAA;AAAA,IAACY,YAAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA;AAAA,QACV,SAAW,EAAA,CAAA;AAAA,QACX,GAAG;AAAA,OACL;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAIO,IAAM,YAAyC,CAAC;AAAA,EACrD,UAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAE1B,EAAMD,MAAAA,gBAAAA,GAAkB,CAAC,KAAuC,KAAA;AAC9D,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,OAAO,KAAM,CAAA,QAAA,EAAW,CAAA,OAAA,CAAQ,yBAAyB,GAAG,CAAA;AAAA;AAE9D,IAAO,OAAA,EAAA;AAAA,GACT;AAEA,EAAA,uBACEX,gBAAA,CAAA,aAAA;AAAA,IAACY,YAAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA;AAAA,QACV,SAAW,EAAA,CAAA;AAAA,QACX,MAAA,kBAAQZ,gBAAAA,CAAA,aAACa,CAAAA,iBAAAA,EAAA,EAAkB,KAAO,EAAA,KAAA,CAAM,QAAU,EAAA,IAAA,EAAM,EAAI,EAAA,CAAA;AAAA,QAC5D,QAAU,EAAA,KAAA;AAAA,QACV,SAAWF,EAAAA,gBAAAA;AAAA,QACX,GAAG;AAAA,OACL;AAAA,MACC,GAAG,IAAA;AAAA,MACJ,OAAO,EAAE,KAAA,EAAO,MAAQ,EAAA,GAAG,6BAAM,KAAM;AAAA;AAAA,GACzC;AAEJ;AAcO,IAAM,iBAAgD,CAAC;AAAA,EAC5D,MAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAM,KAAA;AACJ,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,SAAA,GAAY,aAAa,KAAM,CAAA,QAAA;AAC/B,EACE,uBAAAX,gBAAA,CAAA,aAAA,CAACS,IAAA,EAAA,EAAK,KAAM,EAAA,QAAA,EAAS,GAAK,EAAA,CAAA,EAAA,kBACxBT,gBAAAA,CAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,IAAM,EAAA,CAAA,EAAG,KAAM,EAAA,QAAA,EAAA,kBACnBT,gBAAAA,CAAA,aAACa,CAAAA,iBAAAA,EAAA,EAAkB,IAAA,EAAM,EAAI,EAAA,KAAA,EAAO,SAAW,EAAA,CAAA,kBAC/Cb,gBAAA,CAAA,aAAA,CAAC,KAAO,EAAA,EAAA,GAAG,SAAY,EAAA,EAAA,eAAA,CAAgB,MAAM,CAAE,CAC9C,EAAA,OAAO,MAAW,KAAA,QAAA,mBACjBA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,EAAO,GAAG,SAAA,EAAW,KAAO,EAAA,KAAA,CAAM,QAAU,EAAA,EAAA,MAAA,EAE1C,MACH,CAAA,GAEA,MAEJ,CAAA,EACC,IACC,oBAAAA,gBAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,SAAA;AAAA,MACP,SAAS,EAAA,IAAA;AAAA,MACT,OAAS,EAAA,IAAA;AAAA,MACT,OAAA,EAAS,CAAC,OAAO,CAAA;AAAA,MAChB,GAAG;AAAA,KAAA;AAAA,oBAEJA,gBAAA,CAAA,aAAA,CAAC,kBAAmB,EAAA,EAAA,KAAA,EAAO,MAAM,QAAU,EAAA;AAAA,GAGjD,CAAA;AAEJ;AAMO,IAAM,gBAA8C,CAAC;AAAA,EAC1D,IAAA;AAAA,EACA,KAAQ,GAAA,eAAA;AAAA,EACR,UAAA;AAAA,EACA,GAAG;AACL,CAAM,KAAA;AACJ,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,aAAiC,MAAS,CAAA;AAElE,EAAM,MAAA,iBAAA,GAAoB,CAAC,CAA2C,KAAA;AAnKxE,IAAA,IAAA,EAAA;AAoKI,IAAM,MAAA,KAAA,GAAA,CAAQ,EAAG,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAA,MAAA,KAAH,IAAW,GAAA,MAAA,GAAA,EAAA,CAAA,KAAA;AACzB,IAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,GACf;AAEA,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAY,EAAA;AAAA,QACV,GAAG,UAAA;AAAA,QACH,MAAQ,EAAA,mBAAA;AAAA,QACR,MAAQ,EAAA,MAAA;AAAA,QACR,KAAO,EAAA,IAAA;AAAA,QACP,QAAU,EAAA,iBAAA;AAAA,QACV,MAAA,EAAQ,CAAC,CAAW,KAAA;AAElB,UAAA,IAAI,CAAE,CAAA,MAAA,CAAO,KAAM,CAAA,MAAA,GAAS,CAAG,EAAA;AAC7B,YAAA,MAAM,cAAiB,GAAA,aAAA,CAAc,CAAE,CAAA,MAAA,CAAO,KAAK,CAAA;AACnD,YAAA,IAAI,cAAgB,EAAA;AAClB,cAAE,CAAA,CAAA,MAAA,CAAO,KAAQ,GAAA,cAAA,CAAe,cAAc,CAAA;AAC9C,cAAQ,OAAA,CAAA,cAAA,CAAe,cAAc,CAAC,CAAA;AAAA;AACxC;AACF;AACF,OACF;AAAA,MACA,WAAW,MAAM;AACf,QAAA,IAAI,IAAM,EAAA;AACR,UAAA,MAAM,cAAcc,MAAM,CAAA,IAAA,EAAM,mBAAqB,EAAA,IAAI,EAAE,OAAQ,EAAA;AACnE,UAAA,MAAM,cAAc,WAChB,GAAA,IAAA,GACAA,OAAM,IAAI,CAAA,CAAE,OAAO,mBAAmB,CAAA;AAC1C,UAAO,OAAA;AAAA,YACL,CAAC,IAAc,GAAGA,MAAM,CAAA,WAAA,EAAa,mBAAmB,CAAE,CAAA,MAAA;AAAA,cACxD;AAAA;AACF,WACF;AAAA,SACK,MAAA;AACL,UAAO,OAAA,EAAA;AAAA;AACT,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;ACrMO,IAAM,UAAkC,CAAC;AAAA,EAC9C,KAAQ,GAAA,MAAA;AAAA,EACR,MAAS,GAAA,MAAA;AAAA,EACT,GAAG;AACL,CAAM,KAAA;AAGJ,EAAA;AAAA;AAAA,oBAEEd,gBAAA,CAAA,aAAA;AAAA,MAACS,IAAAA;AAAA,MAAA;AAAA,QACC,OAAQ,EAAA,QAAA;AAAA,QACR,KAAM,EAAA,QAAA;AAAA,QACN,QAAQ,EAAA,IAAA;AAAA,QACR,IAAM,EAAA,CAAA;AAAA,QACN,KAAA,EAAO,EAAE,KAAA,EAAO,MAAO;AAAA,OAAA;AAAA,sBAGvBT,gBAAA,CAAA,aAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,OAAA;AAAA,UACL,GAAK,EAAA,IAAA;AAAA,UACL,QAAU,EAAA,IAAA;AAAA,UACT,GAAG,IAAA;AAAA,UACJ,OAAO,EAAE,MAAA,EAAQ,GAAM,EAAA,GAAG,6BAAM,KAAM;AAAA;AAAA;AACxC;AACF;AAEJ;AAEO,IAAM,aAAa,MAAM;AAC9B,EAAA,uBACEA,gBAAAA,CAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,OAAA,EAAQ,QAAS,EAAA,KAAA,EAAM,QAAS,EAAA,IAAA,EAAM,CAAG,EAAA,KAAA,EAAO,EAAE,MAAQ,EAAA,OAAA,EAC9D,EAAA,kBAAAT,gBAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,IAAA,EAAK,SAAQ,GAAK,EAAA,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,KAAO,EAAA,EAAE,MAAQ,EAAA,GAAA,IAAQ,CACzE,CAAA;AAEJ;AAEO,IAAM,aAAa,MAAM;AAC9B,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAACS,IAAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,MAAQ,EAAA;AAAA,OACV;AAAA,MACA,OAAQ,EAAA,QAAA;AAAA,MACR,KAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA;AAAA,KAAA;AAAA,oBAENT,gBAAA,CAAA,aAAA,CAAC,IAAK,EAAA,IAAA;AAAA,GACR;AAEJ;AChCO,IAAM,aAAwC,CAAC;AAAA,EACpD,IAAO,GAAA,MAAA;AAAA,EACP,GAAG;AACL,CAAM,KAAA;AAEJ,EAAA,QAAQ,IAAM;AAAA,IACZ,KAAK,OAAA;AACH,MAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,QAACY,YAAAA;AAAA,QAAA;AAAA,UACE,GAAI,IAAA;AAAA,UACL,KAAA,EAAO,EAAE,KAAA,EAAO,MAAO;AAAA;AAAA,OACzB;AAAA,IAGJ,KAAK,QAAA;AACH,MAAA,uBAAOZ,gBAAA,CAAA,aAAA,CAAC,aAAW,GAAI,IAAA,EAA4B,SAAS,KAAO,EAAA,CAAA;AAAA,IAErE;AACE,MAAA;AAAA;AAAA,wBAEEA,gBAAA,CAAA,aAAA,CAACe,WAAA,EAAA,EAAa,GAAI,IAA2B,EAAA;AAAA;AAAA;AAGrD;ACvCO,IAAM,mBAAmB,MAAU;AACxC,EAAA,MAAM,eAAe,kBAAsB,EAAA;AAE3C,EAAM,MAAA,kBAAA,GAAqB,aAAa,OAAQ,CAAA;AAAA,IAC9C,EAAI,EAAA,cAAA;AAAA,IACJ,aAAe,EAAA,KAAA;AAAA,IACf,YAAc,EAAA,KAAA;AAAA,IAEd,MAAQ,EAAA,CAAC,EAAE,KAAA,EAAiB,KAAA;AAnBhC,MAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAoBM,MAAA,MAAMC,WAAU,KAAM,CAAA,OAAA;AAAA,QAAA,CACpB,uBAAM,OAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,IAAf,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,iBAArB,IAAmC,GAAA,MAAA,GAAA,EAAA,CAAA;AAAA,OACrC;AACA,MAAA,OAAA,CAAA,CAAO,uBAAM,OAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,SAAf,IAAqB,GAAA,MAAA,GAAA,EAAA,CAAA,YAAA,KAArB,mBAAmC,aAAkB,MAAA,OAAA,mBAC1DhB,gBAAA,CAAA,aAAA,CAACS,MAAA,EAAK,OAAA,EAAQ,cAAa,KAAM,EAAA,QAAA,EAAA,kBAC/BT,gBAAA,CAAA,aAAA;AAAA,QAAC,qBAAA;AAAA,QAAA;AAAA,UACE,GAAG;AAAA,YACF,OAAA,EAAS,MAAM,wBAAyB,EAAA;AAAA,YACxC,aAAA,EAAe,MAAM,yBAA0B,EAAA;AAAA,YAC/C,QAAA,EAAU,MAAM,mCAAoC;AAAA;AACtD;AAAA,OACF,EAECgB,QAAW,KAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,OAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,IAAf,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,YAArB,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAmC,UAC7C,CAAA,mBAAAhB,gBAAA,CAAA,aAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,MAAA;AAAA,UACL,sBAAMA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,EAAM,MAAM,8BAAgC,EAAA;AAAA;AAAA,OACrD,GACE,MACN,CACE,GAAA,MAAA;AAAA,KACN;AAAA,IACA,IAAM,EAAA,CAAC,EAAE,GAAA,EAAK,UAAe,KAAA;AAC3B,MAAO,OAAA,GAAA,CAAI,iBAAkB,EAAA,mBAC3BA,gBAAAA,CAAA,cAAC,KAAI,EAAA,EAAA,SAAA,EAAU,YACb,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,QAAC,qBAAA;AAAA,QAAA;AAAA,UACE,GAAG;AAAA,YACF,OAAA,EAAS,IAAI,aAAc,EAAA;AAAA,YAC3B,QAAA,EAAU,CAAC,GAAA,CAAI,YAAa,EAAA;AAAA,YAC5B,aAAA,EAAe,IAAI,iBAAkB,EAAA;AAAA,YACrC,QAAA,EAAU,IAAI,wBAAyB;AAAA;AACzC;AAAA,OACF,EACC,QAAkB,EACrB,CAEA,mBAAAA,gBAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,cACb,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAO,EAAA;AAAA,YACL,eAAiB,EAAA;AAAA,WACnB;AAAA,UACA,OAAA,EAAS,IAAI,aAAc,EAAA;AAAA,UAC3B,QAAA,EAAU,CAAC,GAAA,CAAI,YAAa,EAAA;AAAA,UAC5B,QAAA,EAAU,IAAI,wBAAyB,EAAA;AAAA,UACvC,OAAS,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,eAAgB;AAAA;AAAA,OAEtC,CAAA;AAAA,KAEJ;AAAA,IACA,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAM,MAAA,gBAAA,GAAmB,aAAa,OAAQ,CAAA;AAAA,IAC5C,EAAI,EAAA,YAAA;AAAA,IACJ,aAAe,EAAA,KAAA;AAAA,IACf,YAAc,EAAA,KAAA;AAAA,IACd,MAAQ,EAAA,EAAA;AAAA,IACR,IAAM,EAAA,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,EAAE,GAAA,OACP,GAAI,CAAA,YAAA,EACF,mBAAAA,gBAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAU,EAAA,MAAA;AAAA,QACT,GAAG;AAAA,UACF,OAAA,EAAS,IAAI,wBAAyB,EAAA;AAAA,UACtC,KAAA,EAAO,EAAE,MAAA,EAAQ,SAAU;AAAA;AAC7B,OAAA;AAAA,MAEC,GAAA,CAAI,aAAc,EAAA,GAAI,WAAO,GAAA;AAAA,KAGhC,GAAA;AAAA,GAEL,CAAA;AAED,EAAM,MAAA,WAAA,GAAc,aAAa,OAAQ,CAAA;AAAA,IACvC,EAAI,EAAA,OAAA;AAAA,IACJ,aAAe,EAAA,KAAA;AAAA,IACf,YAAc,EAAA,KAAA;AAAA,IAEd,MAAQ,EAAA,EAAA;AAAA,IACR,IAAM,EAAA,EAAA;AAAA,IAEN,IAAM,EAAA,CAAC,EAAE,KAAA,EAAO,KAAU,KAAA;AACxB,MAAM,MAAA,OAAA,GAAU,KAAM,CAAA,mBAAA,EAAsB,CAAA,IAAA;AAC5C,MAAM,MAAA,WAAA,GAAc,QAAQ,SAAU,CAAA,CAAC,MAAM,CAAE,CAAA,EAAA,KAAO,GAAI,CAAA,EAAE,CAAI,GAAA,CAAA;AAChE,MAAA,uBAAOA,gBAAA,CAAA,aAAA,CAAC,WAAY,EAAA,EAAA,MAAA,EAAM,QAAE,WAAY,CAAA;AAAA;AAC1C,GACD,CAAA;AAED,EAAA,MAAM,QAAQ,WAAY,EAAA;AAE1B,EAAM,MAAA,eAAA,GAAkB,CAAC,QAAgC,KAAA;AACvD,IAAA,OAAO,aAAa,OAAQ,CAAA;AAAA,MAC1B,EAAI,EAAA,QAAA;AAAA,MACJ,IAAM,EAAA,EAAA;AAAA,MACN,MAAQ,EAAA,EAAA;AAAA,MACR,IAAA,EAAM,CAAC,IACL,qBAAAA,iBAAA,aAAC,CAAA,GAAA,EAAA,EAAE,OAAS,EAAA,CAAC,KAAU,KAAA,KAAA,CAAM,iBAC3B,EAAA,kBAAAA,iBAAA,aAAC,CAAA,KAAA,EAAA,EAAM,MAAM,wBAA0B,EAAA,KAAA,EAAO,KAAM,CAAA,QAAA,EAAU,CAChE;AAAA,KAEH,CAAA;AAAA,GACH;AAEA,EAAM,MAAA,CAAC,iBAAmB,EAAA,oBAAoB,CAAIK,GAAAA,QAAAA;AAAA,IAChD;AAAC,GACH;AACA,EAAA,MAAM,CAAC,eAAiB,EAAA,kBAAkB,CAAIA,GAAAA,QAAAA,CAAsB,EAAE,CAAA;AAEtE,EAAO,OAAA;AAAA,IACL,iBAAA;AAAA,IACA,oBAAA;AAAA,IACA,YAAA;AAAA,IACA,kBAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,GACF;AACF;;;ACtIa,IAAA,gBAAA,GAAmB,CAAC,OAAmB,KAAA;AAElD,EAAA,MAAM,aAAgB,GAAA,OAAA,CAAQ,MAAO,CAAA,CAAC,KAAK,MAAW,KAAA;AARxD,IAAA,IAAA,EAAA;AASI,IAAO,OAAA;AAAA,MACL,GAAG,GAAA;AAAA,MACH,CAAC,OAAO,EAAM,IAAA,MAAA,CAAO,WAAW,GAAG,EAAA,CAAC,EAAQ,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,IAAA,KAAR,IAAc,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA;AAAA,KACpD;AAAA,GACF,EAAG,EAAE,CAAA;AACL,EAAO,OAAA,aAAA;AACT;AACa,IAAA,SAAA,GAAY,CAAK,KAAiB,KAAA;AAhB/C,EAAA,IAAA,EAAA;AAiBE,EAAE,OAAA,CAAA,CAAA,IAAA,CAAK,EAAE,MAAO,CAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,eAAP,IAAmB,GAAA,MAAA,GAAA,EAAA,CAAA,YAAA,EAAc,CAAE,CAAA,QAAQ,CAAC,CAAA;AAAA;AAEjD,IAAA,mBAAA,GAAsB,CAAK,KAAiB,KAAA;AAnBzD,EAAA,IAAA,EAAA,EAAA,EAAA;AAoBE,EAAA,OAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,0BAAP,IAA8B,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,KAA9B,mBAAwC,GAAI,CAAA,CAAC,QAAQ,GAAI,CAAA,QAAA,CAAA;AAAA;AAE9C,IAAA,WAAA,GAAc,CAAC,IAAuB,KAAA;AACjD,EAAA,QAAQ,IAAM;AAAA,IACZ,KAAK,OAAA;AACH,MAAO,OAAA,MAAA;AAAA,IACT,KAAK,QAAA;AACH,MAAO,OAAA,MAAA;AAAA,IACT,KAAK,OAAA;AACH,MAAO,OAAA,MAAA;AAAA,IACT;AACE,MAAO,OAAA,MAAA;AAAA;AAEb;AAEa,IAAA,WAAA,GAAc,CAAC,QAAsB,KAAA;AAChD,EAAA,OAAO,WAAW,QAAW,GAAA,EAAA;AAC/B;AAEO,IAAM,eAAkB,GAAA,CAC7B,QACA,EAAA,OAAA,EACA,KACG,KAAA;AA3CL,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA4CE,EAAM,MAAA,aAAA,GAAgB,KAAM,CAAA,QAAA,EAAW,CAAA,aAAA;AACvC,EAAM,MAAA,SAAA,GAAY,EAAE,GAAG,aAAc,EAAA;AAErC,EAAA,IAAI,YAAY,OAAS,EAAA;AAEvB,IAAU,SAAA,CAAA,IAAA,GAAA,CAAA,CAAO,eAAU,IAAV,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAgB,OAAO,CAAC,EAAA,KAAO,EAAO,KAAA,QAAA,CAAA,KAAa,EAAC;AACrE,IAAU,SAAA,CAAA,KAAA,GAAA,CAAA,CAAQ,eAAU,KAAV,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAiB,OAAO,CAAC,EAAA,KAAO,EAAO,KAAA,QAAA,CAAA,KAAa,EAAC;AAGvE,IAAA,MAAM,cAAc,SAAU,CAAA,KAAA,CAAM,UAAU,CAAC,EAAA,KAAO,OAAO,QAAQ,CAAA;AACrE,IAAA,IAAI,gBAAgB,EAAI,EAAA;AACtB,MAAA,SAAA,CAAU,KAAM,CAAA,MAAA,CAAO,WAAa,EAAA,CAAA,EAAG,QAAQ,CAAA;AAAA,KAC1C,MAAA;AACL,MAAU,SAAA,CAAA,KAAA,CAAM,KAAK,QAAQ,CAAA;AAAA;AAC/B,GACF,MAAA,IAAW,YAAY,MAAQ,EAAA;AAE7B,IAAU,SAAA,CAAA,KAAA,GAAA,CAAA,CAAQ,eAAU,KAAV,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAiB,OAAO,CAAC,EAAA,KAAO,EAAO,KAAA,QAAA,CAAA,KAAa,EAAC;AACvE,IAAA,SAAA,CAAU,OAAO,CAAC,GAAI,UAAU,IAAQ,IAAA,IAAK,QAAQ,CAAA;AAAA;AAGvD,EAAA,KAAA,CAAM,iBAAiB,SAAS,CAAA;AAClC;AAEO,IAAM,kBAAkB,CAAK;AAAA,EAClC,YAAA;AAAA,EACA;AACF,CAGM,KAAA;AAEJ,EAAA,MAAM,EAAE,kBAAA,EAAoB,gBAAiB,EAAA,GAAI,gBAAoB,EAAA;AAErE,EAAA,MAAM,eAAkB,GAAA;AAAA,IACtB,YAAc,EAAA,kBAAA;AAAA,IACd,aAAe,EAAA;AAAA,GACjB;AACA,EAAA,OAAO,MAAO,CAAA,MAAA;AAAA,IACZ,CAAE,CAAA,MAAA,CAAO,eAAiB,EAAA,CAACH,IAAG,GAAQ,KAAA;AACpC,MAAA,OACG,YAAgB,IAAA,GAAA,KAAQ,cACxB,IAAA,aAAA,IAAiB,GAAQ,KAAA,eAAA;AAAA,KAE7B;AAAA,GACH;AACF;AAEa,IAAA,eAAA,GAAkB,CAAC,QAAA,EAAoB,UAAyB,KAAA;AAC3E,EAAO,OAAA,CAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,UAAS,CACtB,GAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,KAAK,CAAC,IAAA,KAAS,UAAY,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAA,QAAA,CAAS,IAC9C,CAAA,CAAA,GAAA,KAAA;AACN;AAEa,IAAA,UAAA,GAAa,CAAC,QAAoB,EAAA,UAAA,KAAA,CAC7C,qCAAU,MAAW,OAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAY,MAAU,CAAA,IAAA,CAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAY,MAAS,IAAA;AACrD,IAAA,oBAAA,GAAuB,CAAK,IAAA,EAAW,QAAqB,KAAA;AACvE,EAAM,MAAA,MAAA,GAAS,IACZ,CAAA,GAAA,CAAI,CAAC,GAAA,KAAQ,IAAI,QAA4B,CAAC,CAC9C,CAAA,MAAA,CAAO,OAAO,CAAA;AAEjB,EAAO,OAAA;AAAA,IACL,GAAA,EAAK,MAAO,CAAA,MAAA,CAAO,CAAC,CAAA,EAAG,CAAM,KAAA,CAAA,IAAK,MAAO,CAAA,CAAC,CAAK,IAAA,CAAA,CAAA,EAAI,CAAC,CAAA;AAAA,IACpD,KAAK,MAAO,CAAA,MAAA,GACR,MAAO,CAAA,MAAA,CAAO,CAAC,CAAG,EAAA,CAAA,KAAM,CAAK,IAAA,MAAA,CAAO,CAAC,CAAK,IAAA,CAAA,CAAA,EAAI,CAAC,CAAA,GAAI,OAAO,MAC1D,GAAA,CAAA;AAAA,IACJ,GAAK,EAAA,IAAA,CAAK,GAAI,CAAA,GAAG,MAAO,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,MAAO,CAAA,CAAC,CAAK,IAAA,CAAC,CAAC,CAAA;AAAA,IAClD,GAAK,EAAA,IAAA,CAAK,GAAI,CAAA,GAAG,MAAO,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,MAAO,CAAA,CAAC,CAAK,IAAA,CAAC,CAAC,CAAA;AAAA,IAClD,OAAO,MAAO,CAAA;AAAA,GAChB;AACF;;;AClHO,IAAM,4BAA+B,GAAA;AAAA,EAC1C,EAAE,KAAA,EAAO,IAAM,EAAA,KAAA,EAAO,WAAY,EAAA;AAAA,EAClC,EAAE,KAAA,EAAO,IAAM,EAAA,KAAA,EAAO,WAAY,EAAA;AAAA,EAClC,EAAE,KAAA,EAAO,IAAM,EAAA,KAAA,EAAO,WAAY,EAAA;AAAA,EAClC,EAAE,KAAA,EAAO,KAAO,EAAA,KAAA,EAAO,YAAa;AACtC;ACkEO,IAAM,cAAiB,GAAA,CAAC,EAAE,MAAA,EAAsC,KAAA;AAvEvE,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwEE,EAAM,MAAA,EAAE,gBAAgB,QAAU,EAAA,SAAA,MAAe,EAAO,GAAA,MAAA,CAAA,SAAA,CAAU,IAAjB,KAAA,IAAA,GAAA,EAAA,GAC/C,EAAC;AAEH,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIe,aAAkB,MAAS,CAAA;AACrD,EAAM,MAAA,cAAA,GAAiB,OAAiB,IAAI,CAAA;AAC5C,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIZ,SAAS,KAAK,CAAA;AAEhE,EAAA,MAAM,kBAAqB,GAAA,OAAA;AAAA,IACzB,MACE,aAAkB,KAAA,OAAA,GACd,EAAC;AAAA;AAAA,MAED,MAAM,IAAK,CAAA,MAAA,CAAO,sBAAuB,EAAA,CAAE,MAAM,CAAA,CAC9C,IAAK,EAAA,CACL,MAAM,CAAG,EAAA,GAAI,EACb,MAAO,CAAA,CAAC,SAAS,IAAI;AAAA,KAAA;AAAA,IAC9B,CAAC,MAAA,CAAO,sBAAuB,EAAA,EAAG,eAAe,iBAAiB;AAAA,GACpE;AAEA,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ;AAAA,MACE,GAAK,EAAA,QAAA;AAAA,MAEL,KAAA,kBACEL,gBAAA,CAAA,aAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAK,EAAA,cAAA;AAAA,UACL,KAAO,EAAA,IAAA;AAAA,UACP,IAAK,EAAA,MAAA;AAAA,UACL,cAAA,EAAgB,CAAC,CAAM,KAAA;AArGjC,YAAAkB,IAAAA,GAAAA;AAsGY,YAAI,IAAA,CAAA,CAAE,OAAO,KAAO,EAAA;AAClB,cAAA,CAAAA,GAAA,GAAA,cAAA,CAAe,OAAf,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAwB,CAAA,MAAA,EAAA;AAAA;AAC1B,WACF;AAAA,UACA,KAAA;AAAA,UACA,QAAA,EAAU,CAAC,CAAM,KAAA;AA3G3B,YAAAA,IAAAA,GAAAA;AA4GY,YAAA,QAAA,CAAA,CAASA,GAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,MAAH,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAW,KAAK,CAAA;AACzB,YAAAhB,CAAAA,CAAE,SAAS,MAAM,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,eAAe,CAAE,CAAA,MAAA,CAAO,KAAQ,CAAA,EAAA,GAAG,CAAE,EAAA;AAAA,WAChE;AAAA,UACA,WAAa,EAAA,CAAA,SAAA,CAAA;AAAA,UACb,OAAS,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,eAAgB;AAAA;AAAA,OACpC;AAAA,MAEF,UAAU,aAAkB,KAAA;AAAA,KAC9B;AAAA,IACA;AAAA,MACE,GAAK,EAAA,MAAA;AAAA,MACL,KAAA,kBACEF,gBAAA,CAAA,aAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,GAAK,EAAA,cAAA;AAAA,UACL,KAAO,EAAA,IAAA;AAAA,UACP,UAAY,EAAA;AAAA,YACV,IAAM,EAAA,iBAAA;AAAA,YACN,IAAM,EAAA,QAAA;AAAA,YACN,KAAA;AAAA,YACA,OAAS,EAAA,CAAC,CAAW,KAAA,CAAA,CAAE,eAAgB,EAAA;AAAA,YACvC,QAAA,EAAU,CAAC,CAAW,KAAA;AACpB,cAAA,IAAI,CAAG,EAAA;AACL,gBAAA,QAAA,CAAS,CAAC,CAAA;AACV,gBAAQ,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,cAAA;AAAA,kBACNc,MAAAA,CAAMA,OAAM,CAAC,CAAA,CAAE,aAAa,CAAA,CAAE,OAAO,YAAY;AAAA,iBAAA;AAAA,eAE9C,MAAA;AACL,gBAAA,QAAA,CAAS,MAAS,CAAA;AAClB,gBAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,cAAe,CAAA,MAAA,CAAA;AAAA;AACzB,aACF;AAAA,YAEA,WAAa,EAAA;AAAA;AACf;AAAA,OACF;AAAA,MAEF,UAAU,aAAkB,KAAA;AAAA,KAC9B;AAAA,IACA;AAAA,MACE,GAAK,EAAA,YAAA;AAAA,MACL,KAAA,kBACEd,gBAAA,CAAA,aAAA;AAAA,QAAC,sBAAA;AAAA,QAAA;AAAA,UACC,UAAY,EAAA;AAAA,YACV,OAAS,EAAA,IAAA;AAAA,YACT,KAAA;AAAA,YACA,OAAA,EAAS,CAAC,CAAM,KAAA;AACd,cAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,cAAA,oBAAA,CAAqB,IAAI,CAAA;AAAA,aAC3B;AAAA,YACA,QAAA,EAAU,CAAC,CAAM,KAAA;AACf,cAAA,IAAI,CAAG,EAAA;AACL,gBAAA,QAAA,CAAS,CAAC,CAAA;AACV,gBAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,cAAe,CAAA;AAAA,kBACrBc,MAAAA,CAAMA,MAAM,CAAA,CAAA,CAAE,CAAC,CAAC,EAAE,WAAY,EAAC,CAAE,CAAA,MAAA,CAAO,YAAY,CAAA;AAAA,kBACpDA,MAAAA,CAAMA,MAAM,CAAA,CAAA,CAAE,CAAC,CAAC,EAAE,WAAY,EAAC,CAAE,CAAA,MAAA,CAAO,YAAY;AAAA,iBACtD,CAAA;AACA,gBAAA,oBAAA,CAAqB,KAAK,CAAA;AAAA,eACrB,MAAA;AACL,gBAAA,QAAA,CAAS,MAAS,CAAA;AAClB,gBAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,cAAe,CAAA,MAAA,CAAA;AACvB,gBAAA,oBAAA,CAAqB,KAAK,CAAA;AAAA;AAC5B;AACF;AACF;AAAA,OACF;AAAA,MAEF,UAAU,aAAkB,KAAA;AAAA,KAC9B;AAAA,IACA;AAAA,MACE,GAAK,EAAA,cAAA;AAAA,MACL,cAAc,MAAM;AAlL1B,QAAAI,IAAAA,GAAAA;AAmLQ,QAAA,CAAAA,GAAA,GAAA,cAAA,CAAe,OAAf,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA;AAAA,OAC1B;AAAA,MACA,KAAA,kBACElB,gBAAA,CAAA,aAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,CAAC,CAAM,KAAA;AACd,YAAA,CAAA,CAAE,eAAgB,EAAA;AAAA,WACpB;AAAA,UACA,KAAO,EAAA,EAAE,KAAO,EAAA,MAAA,EAAQ,SAAS,KAAM;AAAA,SAAA;AAAA,wBAEvCA,gBAAA,CAAA,aAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAU,EAAA,MAAA;AAAA,YACV,aACE,EAAA,OAAA,CAAQ,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,cAAA,EAAgB,CAC5B,GAAA,eAAA;AAAA,cACE,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,cAAA,EAAA;AAAA,cACR;AAAA,iBAEF,CAAC,UAAA;AAAA,cACC,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,cAAA,EAAA;AAAA,cACR;AAAA,aAEF,GAAA,KAAA;AAAA,YAEN,OAAS,EAAA,UAAA;AAAA,cACP,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,cAAA,EAAA;AAAA,cACR;AAAA,aACF;AAAA,YACA,QAAA,EAAU,CAAC,CAAM,KAAA;AACf,cAAI,IAAA,CAAA,CAAE,OAAO,OAAS,EAAA;AACpB,gBAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,cAAe,CAAA,kBAAA,CAAA;AAAA,eAClB,MAAA;AACL,gBAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,cAAe,CAAA,MAAA,CAAA;AAAA;AACzB;AACF,WAAA;AAAA,UACD;AAAA,SAED;AAAA,wBACAA,iBAAA,aAAC,CAAA,KAAA,EAAA,EAAI,WAAU,MACZ,EAAA,EAAA,kBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,kBAAA,CAAoB,GAAI,CAAA,CAAC,IAAS,KAAA;AAzN/C,UAAAkB,IAAAA,GAAAA;AA0Nc,UACE,uBAAAlB,iBAAA,aAAC,CAAA,KAAA,EAAA,EAAI,WAAU,MAAO,EAAA,GAAA,EAAK,IACzB,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,SAAU,EAAA,0CAAA;AAAA,cACV,KAAO,EAAA;AAAA,gBACL,OAAO,KAAM,CAAA;AAAA,eACf;AAAA,cACA,IAAM,EAAA,IAAA;AAAA,cACN,OAAUkB,EAAAA,CAAAA,GAAAA,GAAA,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,cAAA,EAAA,KAAR,gBAAAA,GAAuC,CAAA,QAAA;AAAA,gBAC/C;AAAA,eAAA;AAAA,cAEF,QAAA,EAAU,CAAC,CAAM,KAAA;AACf,gBAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,gBAAQ,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,cAAA,CAAe,CAAC,IAAc,KAAA;AACpC,kBAAI,IAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,SAAS,IAAO,CAAA,EAAA;AACxB,oBAAA,OAAO,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,MAAA,CAAO,CAAC,CAAA,KAAW,CAAM,KAAA,IAAA,CAAA;AAAA,mBACjC,MAAA;AACL,oBAAA,OAAO,CAAC,GAAI,IAAQ,IAAA,IAAA,GAAA,IAAA,GAAA,IAAK,IAAI,CAAA;AAAA;AAC/B,iBACF,CAAA;AAAA;AACF,aAAA;AAAA,YAEC;AAAA,WAEL,CAAA;AAAA,SAGN,CAAA,CAAA;AAAA,wBACAlB,gBAAA,CAAA,aAAA;AAAA,UAAC,mBAAA;AAAA,UAAA;AAAA,YACC,KAAO,EAAA;AAAA,cACL,YAAc,EAAA,OAAA;AAAA,cACd,SAAW,EAAA,GAAA;AAAA,cACX,YAAc,EAAA,CAAA;AAAA,cACd,KAAO,EAAA;AAAA;AACT;AAAA,SACF;AAAA,wBACAA,gBAAA,CAAA,aAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,QAAA,EACE,OAAQ,CAAA,MAAA,CAAO,cAAe,EAAC,CAC1B,GAAA,CAAA,CAAA,EAAA,GAAA,MAAA,CAAO,cAAe,EAAA,KAAtB,IAAsC,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,MAAW,CAClD,GAAA,IAAA;AAAA,YAEN,OAAA,EAAS,CAAC,CAAM,KAAA;AACd,cAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,cAAA,MAAA,CAAO,eAAe,MAAS,CAAA;AAAA;AACjC,WAAA;AAAA,UACD;AAAA;AAED,OACF;AAAA,MAGF,OAAS,EAAA,CAAC,CAAW,KAAA,CAAA,CAAE,eAAgB,EAAA;AAAA,MACvC,UAAU,aAAkB,KAAA;AAAA,KAC9B;AAAA,IACA;AAAA,MACE,GAAK,EAAA,QAAA;AAAA,MACL,cAAc,MAAM;AAnR1B,QAAAkB,IAAAA,GAAAA;AAoRQ,QAAA,CAAAA,GAAA,GAAA,cAAA,CAAe,OAAf,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA;AAAA,OAC1B;AAAA,MAEA,KAAA,kBACElB,gBAAA,CAAA,aAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,KAAO,EAAA;AAAA,YACL,KAAO,EAAA,MAAA;AAAA,YACP,OAAS,EAAA;AAAA,WACX;AAAA,UACA,QAAA,EAAU,CAAC,CAAM,KAAA;AACf,YAAO,MAAA,CAAA,cAAA,CAAe,CAAE,CAAA,MAAA,CAAO,KAAK,CAAA;AACpC,YAAS,QAAA,CAAA,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,WACzB;AAAA,UACA,KAAO,EAAA,CAAA,EAAA,GAAA,MAAA,CAAO,cAAe,EAAA,KAAtB,IAAyB,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,EAAA;AAAA,UAChC,OAAS,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,eAAgB;AAAA,SAAA;AAAA,wBAElCA,gBAAA,CAAA,aAAA,CAAC,QAAO,EAAA,EAAA,KAAA,EAAM,MAAG,KAAG,CAAA;AAAA,QACnB,kBAAA,CAAmB,GAAI,CAAA,CAACmB,MAAO,KAAA;AArS1C,UAAAD,IAAAA,GAAAA;AAuSY,UAAA;AAAA;AAAA,4BAAAlB,gBAAA,CAAA,aAAA,CAAC,QAAO,EAAA,EAAA,KAAA,EAAOmB,QAAO,GAAKA,EAAAA,MAAAA,EAAAA,EACxB,SAAYD,GAAAA,CAAAA,GAAAA,GAAA,SAAYC,IAAAA,IAAAA,GAAAA,MAAAA,GAAAA,SAAAA,CAAAA,MAAAA,CAAAA,KAAZ,IAAAD,GAAAA,MAAAA,GAAAA,GAAAA,CAAoB,OAAOC,MAC1C;AAAA;AAAA,SACD;AAAA,OACH;AAAA,MAEF,UAAU,aAAkB,KAAA;AAAA;AAC9B,IACA,MAAO,CAAA,CAAC,IAAS,KAAA,CAAC,KAAK,QAAQ,CAAA;AAEjC,EAAA,uBACEnB,gBAAA,CAAA,aAAA,CAACoB,SAAA,EAAQ,OAAA,EAAA,CAAS,WAAM,CAAC,CAAA,KAAP,mBAAU,KAAO,EAAA,KAAA,EAAO,QAAW,OAAQ,EAAA,OAAA,EAAA,EAC1D,kBAAkB,QACjB,GAAA,KAAA,mBACEpB,gBAAA,CAAA,aAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,IAAM,EAAA,EAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL,OAAO,KAAM,CAAA;AAAA;AACf;AAAA,GACF,mBAEAA,gBAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,CAAC,CAAM,KAAA;AA7T5B,QAAAkB,IAAAA,GAAAA;AA8Tc,QAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,QAAA,CAAAA,GAAA,GAAA,cAAA,CAAe,OAAf,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA;AAAA,OAC1B;AAAA,MACA,KAAO,EAAA;AAAA,QACL,WAAa,EAAA,CAAA;AAAA,QACb,UAAY,EAAA,EAAA;AAAA,QACZ,KAAA,EAAO,QAAQ,CAAG,EAAA,KAAA,CAAM,WAAW,CAAK,CAAA,GAAA,CAAA,EAAG,MAAM,QAAQ,CAAA;AAAA;AAC3D;AAAA,GACF,mBAGFlB,gBAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,CAAC,CAAM,KAAA;AA1U1B,QAAAkB,IAAAA,GAAAA;AA2UY,QAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,QAAA,CAAAA,GAAA,GAAA,cAAA,CAAe,OAAf,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA;AAAA,OAC1B;AAAA,MACA,KAAO,EAAA;AAAA,QACL,WAAa,EAAA,CAAA;AAAA,QACb,UAAY,EAAA,EAAA;AAAA,QACZ,UAAY,EAAA,GAAA;AAAA,QACZ,KAAA,EACE,KAAS,IAAA,MAAA,CAAO,cAAe,EAAA,GAC3B,CAAG,EAAA,KAAA,CAAM,KAAK,CAAA,CAAA,GACd,CAAG,EAAA,KAAA,CAAM,QAAQ,CAAA;AAAA;AACzB;AAAA,GAGN,CAAA;AAEJ;AAMa,IAAA,cAAA,GAAiB,CAAK,KAAkC,KAAA;AAjWrE,EAAA,IAAA,EAAA,EAAA,EAAA;AAkWE,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAM,MAAA,oBAAA,GAAuB,CAAC,cAAA,EAAgB,QAAQ,CAAA;AACtD,EAAM,MAAA,4BAAA,GAA+B,CACnC,QAAA,EACA,SACG,KAAA;AACH,IAAM,KAAA,CAAA,MAAA,CAAO,mBAAoB,CAAA,CAAC,IAAU,MAAA;AAAA,MAC1C,GAAG,IAAA;AAAA,MACH,CAAC,QAAQ,GAAG;AAAA,KACZ,CAAA,CAAA;AAAA,GACJ;AAEA,EAAA,MAAM,UAAa,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,MAAP,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CACf,iBADe,EAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAEf,MAAO,CAAA,CAAC,MAAW,KAAA,CAAC,oBAAqB,CAAA,QAAA,CAAS,OAAO,EAAE,CAAA,CAAA;AAE/D,EAAM,MAAA,WAAA,GAAc,QAAQ,MAAM;AAChC,IAAA,OAAO,yCAAY,MAAO,CAAA,CAAC,MAAW,KAAA,MAAA,CAAO,aAAkB,KAAA,MAAA,CAAA;AAAA,GACjE,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAM,MAAA,YAAA,GAAe,QAAQ,MAAM;AACjC,IAAA,OAAO,yCAAY,MAAO,CAAA,CAAC,MAAW,KAAA,MAAA,CAAO,aAAkB,KAAA,OAAA,CAAA;AAAA,GACjE,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAM,MAAA,eAAA,GAAkB,QAAQ,MAAM;AACpC,IAAA,OAAO,UAAY,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAA,MAAA;AAAA,MACjB,CAAC,MAAW,KAAA,CAAC,MAAO,CAAA,WAAA,OAAiB,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,SAAA,EAAA;AAAA,KAAA;AAAA,GAEjD,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,uBACElB,gBAAAA,CAAA,aAAAA,CAAAA,gBAAAA,CAAA,QAEG,EAAA,IAAA,EAAA,WAAA,CAAY,MAAS,GAAA,CAAA,oBACpBA,gBAAAA,CAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,QAAA,EAAQ,IAAC,EAAA,GAAA,EAAK,CAAG,EAAA,IAAA,EAAM,CAC3B,EAAA,kBAAAT,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,IAAA,EAAA,eAAa,CAEnB,EAAA,WAAA,CAAY,GAAI,CAAA,CAAC,MAAgB,KAAA;AAChC,MAAA,uBACEA,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,kBACEA,gBAAA,CAAA,aAAA,CAACS,IAAA,EAAA,EAAK,KAAK,MAAO,CAAA,EAAA,EAAI,GAAK,EAAA,CAAA,EAAA,kBAEzBT,gBAAA,CAAA,aAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,OAAO,YAAa,EAAA;AAAA,UAC7B,QAAA,EAAU,CAAC,MAAA,CAAO,UAAW,EAAA;AAAA,UAC7B,QAAA,EAAU,OAAO,0BAA2B;AAAA;AAAA,SAC3C,GAEH,kBAAAA,iBAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,IAAM,EAAA,CAAA,EAAG,OAAQ,EAAA,eAAA,EAAA,kBACrBT,gBAAA,CAAA,aAAA,CAAC,aAAO,MAAO,CAAA,SAAA,CAAU,MAAO,CAChC,kBAAAA,gBAAA,CAAA,aAAA,CAACqB,MAAM,OAAN,EAAA,IAAA,EACE,OAAO,WAAY,EAAA,KAAM,yBACxBrB,gBAAAA,CAAA,cAACS,IAAA,EAAA,IAAA,kBACCT,gBAAA,CAAA,aAAA,CAAC,YAAS,KAAM,EAAA,OAAA,EAAA,kBACdA,gBAAA,CAAA,aAAA;AAAA,QAAC,2BAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,KAAA,CAAA;AAAA,WACd;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,mBACAA,gBAAAA,CAAA,cAAC,QAAS,EAAA,EAAA,KAAA,EAAM,WACd,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,QAAC,2BAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,OAAA,CAAA;AACZ,YAAA,eAAA;AAAA,cACE,MAAO,CAAA,EAAA;AAAA,cACP,OAAA;AAAA,cACA,KAAM,CAAA;AAAA,aACR;AAAA,WACF;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,CACF,CAEA,mBAAAA,iBAAA,aAACS,CAAAA,IAAAA,EAAA,IACC,kBAAAT,iBAAA,aAAC,CAAA,QAAA,EAAA,EAAS,KAAM,EAAA,UAAA,EAAA,kBACdA,gBAAA,CAAA,aAAA;AAAA,QAAC,wBAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,MAAA,CAAA;AAAA,WACd;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,mBACAA,gBAAAA,CAAA,cAAC,QAAS,EAAA,EAAA,KAAA,EAAM,OACd,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,QAAC,2BAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,KAAA,CAAA;AAAA,WACd;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,CACF,CAEJ,CACF,CACF,CACF,CAAA;AAAA,KAEH,CACH,CAAA,EAAA,CAID,eAAiB,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAA,MAAA,IAAS,CACzB,oBAAAA,gBAAA,CAAA,aAAA,CAACS,IAAA,EAAA,EAAK,QAAQ,EAAA,IAAA,EAAC,KAAK,CAAG,EAAA,IAAA,EAAM,CAC3B,EAAA,kBAAAT,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,IAAA,EAAA,UAAQ,CAEd,EAAA,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAiB,GAAI,CAAA,CAAC,MAAgB,KAAA;AACrC,MACE,uBAAAA,gBAAA,CAAA,aAAA,CAACS,IAAA,EAAA,EAAK,GAAK,EAAA,MAAA,CAAO,EAAI,EAAA,GAAA,EAAK,CAEzB,EAAA,kBAAAT,gBAAA,CAAA,aAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,OAAO,YAAa,EAAA;AAAA,UAC7B,QAAA,EAAU,CAAC,MAAA,CAAO,UAAW,EAAA;AAAA,UAC7B,QAAA,EAAU,CAAC,CACT,KAAA,4BAAA,CAA6B,OAAO,EAAI,EAAA,CAAA,CAAE,OAAO,OAAO;AAAA;AAAA,OAEzD,EAAA,GAAA,kBAEHA,gBAAAA,CAAA,cAACS,IAAA,EAAA,EAAK,IAAM,EAAA,CAAA,EAAG,OAAQ,EAAA,eAAA,EAAA,kBACrBT,gBAAAA,CAAA,cAAC,KAAO,EAAA,IAAA,EAAA,MAAA,CAAO,SAAU,CAAA,MAAO,CAChC,kBAAAA,gBAAA,CAAA,aAAA,CAACqB,MAAM,OAAN,EAAA,IAAA,kBACCrB,gBAAAA,CAAA,aAAC,CAAA,QAAA,EAAA,EAAS,KAAM,EAAA,UAAA,EAAA,kBACdA,gBAAA,CAAA,aAAA;AAAA,QAAC,wBAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,MAAA,CAAA;AAAA,WACd;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,mBACAA,gBAAAA,CAAA,cAAC,QAAS,EAAA,EAAA,KAAA,EAAM,WACd,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,QAAC,2BAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,OAAA,CAAA;AACZ,YAAA,eAAA;AAAA,cACE,MAAO,CAAA,EAAA;AAAA,cACP,OAAA;AAAA,cACA,KAAM,CAAA;AAAA,aACR;AAAA,WACF;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,CACF,CACF,CACF,CAAA;AAAA,KAEJ,CACF,CAID,EAAA,YAAA,CAAa,MAAS,GAAA,CAAA,oBACrBA,gBAAA,CAAA,aAAA,CAACS,IAAA,EAAA,EAAK,QAAQ,EAAA,IAAA,EAAC,KAAK,CAAG,EAAA,IAAA,EAAM,CAC3B,EAAA,kBAAAT,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,IAAA,EAAA,gBAAc,CAEpB,EAAA,YAAA,CAAa,GAAI,CAAA,CAAC,MAAgB,KAAA;AACjC,MAAA,uBACEA,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,kBACEA,gBAAA,CAAA,aAAA,CAACS,IAAA,EAAA,EAAK,KAAK,MAAO,CAAA,EAAA,EAAI,GAAK,EAAA,CAAA,EAAA,kBAEzBT,gBAAA,CAAA,aAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,OAAO,YAAa,EAAA;AAAA,UAC7B,QAAA,EAAU,CAAC,MAAA,CAAO,UAAW,EAAA;AAAA,UAC7B,QAAA,EAAU,OAAO,0BAA2B;AAAA;AAAA,SAC3C,GAEH,kBAAAA,iBAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,IAAM,EAAA,CAAA,EAAG,OAAQ,EAAA,eAAA,EAAA,kBACrBT,gBAAA,CAAA,aAAA,CAAC,aAAO,MAAO,CAAA,SAAA,CAAU,MAAO,CAChC,kBAAAA,gBAAA,CAAA,aAAA,CAACqB,MAAM,OAAN,EAAA,IAAA,EACE,OAAO,WAAY,EAAA,KAAM,yBACxBrB,gBAAAA,CAAA,cAACS,IAAA,EAAA,IAAA,kBACCT,gBAAA,CAAA,aAAA,CAAC,YAAS,KAAM,EAAA,WAAA,EAAA,kBACdA,gBAAA,CAAA,aAAA;AAAA,QAAC,2BAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,OAAA,CAAA;AAAA,WACd;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,mBACAA,gBAAAA,CAAA,cAAC,QAAS,EAAA,EAAA,KAAA,EAAM,OACd,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,QAAC,2BAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,KAAA,CAAA;AAAA,WACd;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,CACF,CAEA,mBAAAA,iBAAA,aAACS,CAAAA,IAAAA,EAAA,IACC,kBAAAT,iBAAA,aAAC,CAAA,QAAA,EAAA,EAAS,KAAM,EAAA,OAAA,EAAA,kBACdA,gBAAA,CAAA,aAAA;AAAA,QAAC,2BAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,KAAA,CAAA;AAAA,WACd;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,mBACAA,gBAAAA,CAAA,cAAC,QAAS,EAAA,EAAA,KAAA,EAAM,UACd,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,QAAC,wBAAA;AAAA,QAAA;AAAA,UACC,SAAS,MAAM;AACb,YAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,GAAI,CAAA,MAAA,CAAA;AAAA,WACd;AAAA,UACA,SAAU,EAAA;AAAA;AAAA,OAEd,CACF,CAEJ,CACF,CACF,CACF,CAAA;AAAA,KAEH,CACH,CAEJ,CAAA;AAAA,GAEJ;AAEA,EAAA,MAAM,QAAQ,MAAM;AAlkBtB,IAAA,IAAAkB,GAAAI,EAAAA,GAAAA;AAmkBI,IACE,uBAAAtB,iBAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,GAAK,EAAA,CAAA,EAAA,kBACTT,gBAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,OAASkB,EAAAA,CAAAA,GAAAA,GAAA,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,MAAA,KAAP,gBAAAA,GAAe,CAAA,sBAAA,EAAA;AAAA,QACxB,QAAUI,EAAAA,CAAAA,GAAAA,GAAA,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,MAAA,KAAP,gBAAAA,GAAe,CAAA,oCAAA;AAAA;AAAA,uBAG3BtB,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,IAAA,EAAM,iBAAe,CACxB,CAAA;AAAA,GAEJ;AACA,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAU,EAAA,aAAA;AAAA,MACV,OAAS,kBAAAA,gBAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,IAAA,CAAA;AAAA,MAClB,KAAO,kBAAAA,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,IAAA,CAAA;AAAA,MACd,OAAQ,EAAA,OAAA;AAAA,MACR,KAAO,EAAA;AAAA,KAAA;AAAA,oBAEPA,gBAAA,CAAA,aAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,SAAU,EAAA,wBAAA;AAAA,QACV,KAAO,EAAA;AAAA,UACL,OAAO,KAAM,CAAA;AAAA;AACf;AAAA;AACF,GACF;AAEJ;AAEO,IAAM,cAER,GAAA,CAAC,EAAE,MAAA,EAAa,KAAA;AACnB,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAM,MAAA,EAAE,QAAW,GAAA,MAAA;AAEnB,EAAM,MAAA,YAAA,GAAe,CAAC,SACpB,KAAA,MAAA,CAAO,aAAkB,KAAA,SAAA,GAAY,KAAM,CAAA,QAAA,GAAW,KAAM,CAAA,QAAA;AAE9D,EAAA,MAAM,YACJ,mBAAAA,gBAAA,CAAA,aAAA,CAACS,IAAA,EAAA,EAAK,SAAU,EAAA,gBAAA,EAAiB,QAAQ,EAAA,IAAA,EAAC,GAAK,EAAA,CAAA,EAAA,kBAC7CT,gBAAA,CAAA,aAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,KAAA,EAAO,aAAa,KAAK,CAAA;AAAA,QACzB,QAAU,EAAA,MAAA;AAAA,QACV,MAAQ,EAAA;AAAA;AACV;AAAA,GACF,kBACAA,gBAAA,CAAA,aAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,KAAA,EAAO,aAAa,MAAM,CAAA;AAAA,QAC1B,QAAU,EAAA,MAAA;AAAA,QACV,MAAQ,EAAA;AAAA;AACV;AAAA,GAEJ,CAAA;AAGF,EAAA,uBAAOA,gBAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,eAAa,YAAa,CAAA;AAClD;AAGO,IAAM,eAAiD,CAAC;AAAA,EAC7D,SAAY,GAAA,MAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAA,EAAK,EAAE,KAAM,EAAA;AAAA,EACb,MAAA,EAAQ,EAAE,EAAG,EAAA;AAAA,EACb,KAAA;AAAA,EACA,iBAAiB,EAAC;AAAA,EAClB;AACF,CAAM,KAAA;AAxoBN,EAAA,IAAA,EAAA;AAyoBE,EAAA,MAAM,YAAe,GAAA,CAAA,EAAA,GAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,YAAhB,KAAA,IAAA,GAAA,EAAA,GAAgC,QAAS,EAAA;AAC9D,EAAM,MAAA,cAAA,GAAiB,OAAY,IAAI,CAAA;AACvC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIiB,aAAa,YAAY,CAAA;AAGnD,EAAA,MAAM,SAAS,MAAM;AA9oBvB,IAAAC,IAAAA,GAAAA;AA+oBI,IAAAA,CAAAA,GAAAA,GAAA,MAAM,OAAQ,CAAA,IAAA,KAAd,gBAAAA,GAAoB,CAAA,UAAA,CAAW,OAAO,EAAI,EAAA,KAAA,CAAA;AAAA,GAC5C;AAEA,EAAM,MAAA,aAAA,GAAgB,WAAY,CAAA,CAAC,CAAW,KAAA;AAlpBhD,IAAAA,IAAAA,GAAAA;AAmpBI,IAAA,IAAI,EAAE,GAAI,CAAA,MAAA,KAAW,CAAK,IAAA,CAAA,CAAE,QAAQ,OAAS,EAAA;AAC3C,MAAA,CAAAA,GAAA,GAAA,cAAA,CAAe,OAAf,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAwB,CAAA,KAAA,EAAA;AAAA;AAC1B,GACF,EAAG,EAAE,CAAA;AAGL,EAAAK,UAAU,MAAM;AACd,IAAA,QAAA,CAAS,YAAY,CAAA;AAAA,GACvB,EAAG,CAAC,YAAc,EAAA,IAAA,CAAK,cAAc,EAAE,CAAA,CAAE,CAAC,CAAC,CAAC,CAAA;AAE5C,EAAA,uBACEvB,gBAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,IAAA,CAAK,aAAc,CAAA,EAAE,EAAE,CAAC,CAAA;AAAA,MAC/B,OAAS,EAAA,CAAC,OAAS,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,MACnC,WAAW,EAAA,IAAA;AAAA,MACX,kBAAkB,EAAA,IAAA;AAAA,MAClB,SAAU,EAAA;AAAA,KAAA;AAAA,oBAEVA,gBAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,GAAA,EAAK,EAAI,EAAA,QAAA,EAAU,CAAG,EAAA,SAAA,EAAW,aACpC,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAS,EAAA,IAAA,CAAK,aAAc,CAAA,EAAE,EAAE,CAAC,CAAA;AAAA,QACjC,IAAM,EAAA,EAAA;AAAA,QACL,GAAG,cAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,IAAK,EAAA,QAAA;AAAA,QACL,YAAc,EAAA,KAAA;AAAA,QACd,WAAW,EAAA,IAAA;AAAA,QACX,UAAY,EAAA;AAAA,UACV,GAAK,EAAA,cAAA;AAAA,UACL,GAAG,cAAe,CAAA,UAAA;AAAA,UAClB,IAAM,EAAA,QAAA;AAAA,UACN,KAAA;AAAA,UACA,QAAA,EAAU,CAAC,CAAW,KAAA;AAnrBlC,YAAAkB,IAAAA,GAAAA;AAorBc,YAAI,IAAA,OAAO,MAAM,QAAU,EAAA;AACzB,cAAA,QAAA,CAAA,CAASA,GAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,MAAH,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAW,KAAK,CAAA;AAAA,aACpB,MAAA;AACL,cAAA,QAAA,CAAS,CAAC,CAAA;AAAA;AACZ,WACF;AAAA,UACA,MAAA;AAAA,UACA,SAAA,EAAW,CAAC,CAAM,KAAA;AAChB,YAAI,IAAA,CAAA,CAAE,QAAQ,OAAS,EAAA;AACrB,cAAO,MAAA,EAAA;AAAA;AACT,WACF;AAAA,UACA,cAAA,EAAgB,CAAC,CAAM,KAAA;AAhsBnC,YAAAA,IAAAA,GAAAA;AAisBc,YAAI,IAAA,CAAA,CAAE,OAAO,KAAO,EAAA;AAClB,cAAA,CAAAA,GAAA,GAAA,cAAA,CAAe,OAAf,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAwB,CAAA,MAAA,EAAA;AAAA;AAC1B;AACF,SACF;AAAA,QACA,OAAO,cAAgB,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAA;AAAA;AAAA,KAE3B;AAAA,GACF;AAEJ;AAEO,IAAM,eAGR,GAAA,CAAC,EAAE,QAAA,EAAU,IAAS,KAAA;AACzB,EAAM,MAAA,EAAE,UAAY,EAAA,SAAA,EAAW,UAAY,EAAA,SAAA,EAAW,YACpD,GAAA,WAAA,CAAY,EAAE,EAAA,EAAI,CAAA;AAEpB,EAAA,uBACElB,gBAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA,UAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACL,SAAA,EAAW,CAAc,WAAA,EAAA,SAAA,IAAA,IAAA,GAAA,MAAA,GAAA,SAAA,CAAW,CAAC,CAAA,GAAA,CAAA;AAAA,QACrC,UAAA;AAAA,QACA,GAAG;AAAA,OACL;AAAA,MACC,GAAG;AAAA,KAAA;AAAA,IAEH;AAAA,GACH;AAEJ;AAQO,IAAM,wBAAiD,CAAC;AAAA,EAC7D,aAAA;AAAA,EACA,SAAY,GAAA,EAAA;AAAA,EACZ,GAAG;AACL,CAAM,KAAA;AACJ,EAAM,MAAA,GAAA,GAAM,OAAyB,IAAK,CAAA;AAE1C,EAAAuB,UAAU,MAAM;AACd,IAAI,IAAA,OAAO,kBAAkB,SAAW,EAAA;AACtC,MAAA,GAAA,CAAI,OAAQ,CAAA,aAAA,GAAgB,CAAC,IAAA,CAAK,OAAW,IAAA,aAAA;AAAA;AAC/C,GACC,EAAA,CAAC,GAAK,EAAA,aAAa,CAAC,CAAA;AAEvB,EAAA,uBACEvB,gBAAA,CAAA,aAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,UAAA;AAAA,MACL,GAAA;AAAA,MACA,IAAM,EAAA,GAAA;AAAA,MACN,WAAW,SAAY,GAAA,iBAAA;AAAA,MACtB,GAAG;AAAA;AAAA,GACN;AAEJ;AAEO,IAAM,0BAA0B,CAAK;AAAA,EAC1C,aAAA;AAAA,EACA;AACF,CAGM,KAAA;AACJ,EAAA,MAAM,EAAE,QAAA,EAAU,SAAU,EAAA,GAAI,aAAc,CAAA,UAAA;AAC9C,EAAM,MAAA,QAAA,GAAW,YAAY,QAAW,GAAA,CAAA;AACxC,EAAA,MAAM,SAAS,IAAK,CAAA,GAAA,CAAA,CAAK,YAAY,CAAK,IAAA,QAAA,EAAU,+BAAO,WAAa,EAAA,CAAA;AAExE,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAACS,IAAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,eAAA;AAAA,MACR,KAAM,EAAA,QAAA;AAAA,MACN,GAAK,EAAA,CAAA;AAAA,MACL,KAAA,EAAO,EAAE,YAAA,EAAc,EAAG,EAAA;AAAA,MAC1B,IAAK,EAAA;AAAA,KAAA;AAAA,oBAELT,gBAAA,CAAA,aAAA,CAAC,SAAI,SAAU,EAAA,kDAAA,EAAA,kBACbA,gBAAA,CAAA,aAAA;AAAA,MAACS,IAAAA;AAAA,MAAA;AAAA,QACC,KAAM,EAAA,QAAA;AAAA,QACN,OAAQ,EAAA,QAAA;AAAA,QACR,GAAK,EAAA,CAAA;AAAA,QACL,IAAK,EAAA,MAAA;AAAA,QACL,KAAO,EAAA,EAAE,KAAO,EAAA,aAAA,EAAe,aAAa,EAAG;AAAA,OAAA;AAAA,sBAE/CT,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,QAAA,EAAS,MAAO,EAAA,KAAA,EAAO,KAAM,CAAA,QAAA,EAAU,UAAW,EAAA,KAAA,EAAA,EAAM,YAE/D,CAAA;AAAA,sBAGAA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,EAAM,UAAW,EAAA,KAAA,EAAA,EACf,QAAS,CAAA,cAAA,EAAiB,EAAA,KAAA,EAAI,MAAO,CAAA,cAAA,EACxC,CAAA;AAAA,sBACAA,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,QAAA,EAAS,MAAO,EAAA,KAAA,EAAO,KAAM,CAAA,QAAA,EAAU,UAAW,EAAA,KAAA,EAAA,EAAM,QAE/D,CAAA;AAAA,sBACAA,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,UAAA,EAAW,KACf,EAAA,EAAA,KAAA,CAAM,WAAY,EAAA,CAAE,cAAe,EAAA,EAAG,GACzC;AAAA,KAEF,kBAAAA,gBAAA,CAAA,aAAA,CAAC,MAAK,EAAA,EAAA,SAAA,EAAU,yBACd,EAAA,kBAAAA,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,QAAA,EAAS,MAAO,EAAA,KAAA,EAAO,KAAM,CAAA,QAAA,EAAA,EAAU,MAE9C,CAAA,kBACAA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,IAAA,kBACCA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,EAAM,UAAW,EAAA,KAAA,EAAA,EACf,MAAM,QAAS,EAAA,CAAE,UAAW,CAAA,SAAA,GAAY,CAAG,EAAA,GAC9C,CACA,kBAAAA,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,QAAA,EAAS,MAAO,EAAA,KAAA,EAAO,KAAM,CAAA,QAAA,EAAA,EAAU,OACxC,EACN,CAAA,kBACAA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,EAAM,UAAW,EAAA,KAAA,EAAA,EACf,KAAM,CAAA,YAAA,EAAe,CAAA,cAAA,EACxB,CACF,CACF,CAAA,kBAEAA,gBAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAO,KAAM,CAAA,QAAA,EAAW,CAAA,UAAA,CAAW,SAAS,QAAS,EAAA;AAAA,QACrD,QAAA,EAAU,CAAC,CAAM,KAAA;AACf,UAAM,KAAA,CAAA,WAAA,CAAY,MAAO,CAAA,CAAC,CAAC,CAAA;AAAA,SAC7B;AAAA,QACA,KAAA,EAAO,EAAE,KAAA,EAAO,GAAI,EAAA;AAAA,QACpB,IAAK,EAAA,OAAA;AAAA,QACL,OAAS,EAAA;AAAA;AAAA,KAEb,CAAA;AAAA,oBAEAA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,qCAAA,EAAA,kBACbA,gBAAAA,CAAA,aAAC,CAAA,QAAA,EAAA,EAAS,KAAO,EAAA,kBAAA,EAAA,kBACfA,gBAAA,CAAA,aAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,OAAA;AAAA,QACL,KAAA,EAAO,EAAE,UAAA,EAAY,GAAI,EAAA;AAAA,QACzB,SAAU,EAAA,mCAAA;AAAA,QACV,OAAA,EAAS,MAAM,KAAA,CAAM,SAAU,EAAA;AAAA,QAC/B,QAAA,EAAU,CAAC,KAAA,CAAM,kBAAmB,EAAA;AAAA,QACpC,IAAK,EAAA;AAAA,OAAA;AAAA,MAEJ;AAAA,KAEL,CACA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,OAAA;AAAA,QACL,KAAO,EAAA,EAAE,UAAY,EAAA,GAAA,EAAK,UAAU,EAAG,EAAA;AAAA,QACvC,SAAU,EAAA,mCAAA;AAAA,QACV,OAAA,EAAS,MAAM,KAAA,CAAM,YAAa,EAAA;AAAA,QAClC,QAAA,EAAU,CAAC,KAAA,CAAM,kBAAmB;AAAA,OAAA;AAAA,MACrC;AAAA,KAED,kBACAA,gBAAA,CAAA,aAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,OAAA;AAAA,QACL,KAAO,EAAA,EAAE,UAAY,EAAA,GAAA,EAAK,UAAU,EAAG,EAAA;AAAA,QACvC,SAAU,EAAA,mCAAA;AAAA,QACV,OAAA,EAAS,MAAM,KAAA,CAAM,QAAS,EAAA;AAAA,QAC9B,QAAA,EAAU,CAAC,KAAA,CAAM,cAAe;AAAA,OAAA;AAAA,MACjC;AAAA,KAED,kBACAA,gBAAA,CAAA,aAAA,CAAC,YAAS,KAAO,EAAA,iBAAA,EAAA,kBACfA,gBAAA,CAAA,aAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,OAAA;AAAA,QACL,KAAA,EAAO,EAAE,UAAA,EAAY,GAAI,EAAA;AAAA,QACzB,SAAU,EAAA,mCAAA;AAAA,QACV,OAAA,EAAS,MAAM,KAAA,CAAM,QAAS,EAAA;AAAA,QAC9B,QAAA,EAAU,CAAC,KAAA,CAAM,cAAe,EAAA;AAAA,QAChC,IAAK,EAAA;AAAA,OAAA;AAAA,MAEJ;AAAA,KAEL,mBAEAA,gBAAAA,CAAA,cAAC,MAAK,EAAA,EAAA,SAAA,EAAU,6CACdA,gBAAAA,CAAA,cAAC,KAAM,EAAA,EAAA,QAAA,EAAS,QAAO,KAAO,EAAA,KAAA,CAAM,YAAU,eAE9C,CAAA,kBAEAA,gBAAA,CAAA,aAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,MAAM,YAAa,EAAA;AAAA,QACxB,GAAK,EAAA,CAAA;AAAA,QACL,YAAc,EAAA,KAAA,CAAM,QAAS,EAAA,CAAE,WAAW,SAAY,GAAA,CAAA;AAAA,QACtD,QAAA,EAAU,CAAC,CAAM,KAAA;AACf,UAAA,MAAM,IAAO,GAAA,CAAA,GAAI,MAAO,CAAA,CAAC,IAAI,CAAI,GAAA,CAAA;AACjC,UAAA,KAAA,CAAM,aAAa,IAAI,CAAA;AAAA,SACzB;AAAA,QACA,IAAK,EAAA;AAAA;AAAA,KAET,CACF;AAAA,GACF;AAEJ;AAEO,IAAM,qBAAqB,MAAM;AACtC,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,IAACS,IAAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,QAAA;AAAA,MACR,KAAM,EAAA,QAAA;AAAA,MACN,GAAK,EAAA,EAAA;AAAA,MACL,QAAQ,EAAA,IAAA;AAAA,MACR,KAAA,EAAO,EAAE,SAAA,EAAW,EAAG;AAAA,KAAA;AAAA,oBAGvBT,gBAAA,CAAA,aAAA;AAAA,MAACU,KAAAA;AAAA,MAAA;AAAA,QACC,KAAK,MAAO,CAAA,SAAA;AAAA,QACZ,OAAS,EAAA,KAAA;AAAA,QACT,KAAO,EAAA,EAAE,KAAO,EAAA,GAAA,EAAK,QAAQ,GAAI;AAAA;AAAA,KACnC;AAAA,oBAGAV,gBAAA,CAAA,aAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA,CAAA;AAAA,QACP,UAAW,EAAA,KAAA;AAAA,QACX,OAAO,KAAM,CAAA,QAAA;AAAA,QACb,KAAA,EAAO,EAAE,UAAA,EAAY,EAAG;AAAA,OAAA;AAAA,MACzB;AAAA;AAED,GACF;AAEJ;AAEO,IAAM,eAAkBwB,GAAAA,UAAAA;AAAA,EAC7B,CAAC,OAA6B,GAA4C,KAAA;AAx6B5E,IAAA,IAAA,EAAA;AAy6BI,IAAA,MAAM,EAAE,OAAS,EAAA,IAAA,EAAM,SAAS,QAAU,EAAA,KAAA,EAAO,OAAU,GAAA,KAAA;AAC3D,IAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,IAAM,MAAA,WAAA,GACJ,MAAO,CAAA,IAAA,CAAK,IAAQ,IAAA,EAAE,CAAE,CAAA,MAAA,KAAW,CAAK,IAAA,CAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,WAAgB,MAAA,MAAA;AAEhE,IAAA,uBACExB,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,kBACEA,gBAAA,CAAA,aAAA;AAAA,MAACS,IAAAA;AAAA,MAAA;AAAA,QACC,OAAQ,EAAA,eAAA;AAAA,QACR,IAAM,EAAA,CAAA;AAAA,QACN,GAAK,EAAA,CAAA;AAAA,QACL,IAAK,EAAA,MAAA;AAAA,QACL,KAAO,EAAA;AAAA,UACL,WAAa,EAAA,EAAA;AAAA,UACb,OAAS,EAAA,EAAA;AAAA,UACT,iBAAiB,KAAM,CAAA,aAAA;AAAA,UACvB,YAAc,EAAA;AAAA;AAChB,OAAA;AAAA,sBAEAT,gBAAAA,CAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,OAAA,EAAQ,YAAa,EAAA,GAAA,EAAK,CAAG,EAAA,KAAA,EAAM,QAAS,EAAA,IAAA,EAAK,MACpD,EAAA,EAAA,WAAA,KAAgB,KAAS,IAAA,QAAA,CAAA,mBACxBT,gBAAAA,CAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,QAAA,EAAQ,IAAC,EAAA,GAAA,EAAK,CACjB,EAAA,EAAA,OAAO,KAAU,KAAA,QAAA,mBAChBT,gBAAA,CAAA,aAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,KAAO,EAAA;AAAA,YACL,YAAc,EAAA;AAAA,WAChB;AAAA,UACA,KAAO,EAAA,CAAA;AAAA,UACP,UAAW,EAAA,KAAA;AAAA,UACX,OAAO,KAAM,CAAA;AAAA,SAAA;AAAA,QAEZ;AAAA,OACH,GAEA,KAED,EAAA,OAAO,QAAa,KAAA,QAAA,mBACnBA,gBAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,KAAA,EAAO,KAAM,CAAA,QAAA,EAAA,EAAW,QAAS,CAExC,GAAA,QAEJ,CAEA,mBAAAA,gBAAA,CAAA,aAAA,CAAC,KAAI,EAAA,IAAA,CAAA,EAEN,WAAe,KAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,MACvB,CAAA,mBAAAA,gBAAA,CAAA,aAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,KAAA;AAAA,UACA,SAAS,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA;AAAA;AAAA,OACpB,mBAEAA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,IAAI,IAGN,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,IAAA,MAAS,KACd,oBAAAA,gBAAA,CAAA,aAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,MAAA;AAAA,UACL,IAAK,EAAA,OAAA;AAAA,UACL,WAAa,EAAA;AAAA,YACX,YAAc,EAAA;AAAA,WAChB;AAAA,UACA,OAAO,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,KAAA;AAAA,UACb,WAAW,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,SAAA;AAAA,UACjB,kBAAkB,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,gBAAA;AAAA,UACxB,UAAU,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA;AAAA;AAAA,OAGnB,EAAA,CAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,IAAS,MAAA,UAAA,oBACdA,gBAAA,CAAA,aAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,UACE,EAAM,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,KAAA,KAAN,IAAa,GAAA,MAAA,GAAA,EAAA,CAAA,GAAA,CAAI,CAAC,IAAU,MAAA;AAAA,YAC1B,OAAO,IAAK,CAAA,KAAA;AAAA,YACZ,OAAO,IAAK,CAAA;AAAA,WACd,CAAA,CAAA;AAAA,UAEF,OAAO,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,SAAA;AAAA,UACb,UAAY,EAAA,KAAA;AAAA,UACZ,cAAc,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,gBAAA;AAAA,UACpB,UAAU,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,QAAA;AAAA,UAChB,KAAA,EAAO,EAAE,KAAA,EAAO,GAAI;AAAA;AAAA,OAG1B,CAAA;AAAA,sBAEAA,gBAAA,CAAA,aAAA,CAACS,MAAA,EAAK,OAAA,EAAQ,YAAW,KAAM,EAAA,QAAA,EAAS,GAAK,EAAA,CAAA,EAAG,MAAK,MAClD,EAAA,EAAA,CAAC,gBAAe,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA,MAAA,CAAA,mBACxBT,gBAAA,CAAA,aAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,KAAA;AAAA,UACA,SAAS,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA;AAAA;AAAA,OAElB,GAAA,MAAA,EACH,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA,GAAA,CAAI,CAAC,MAAQ,EAAA,KAAA,qBACrBA,gBAAAA,CAAA,aAAC,CAAA,QAAA,EAAA,EAAS,GAAK,EAAA,KAAA,EAAA,EAAQ,MAAO,CAElC,CAAA;AAAA,KAEJ,CAAA;AAAA;AAGN;AAEO,IAAM,yBAGR,GAAA,CAAC,EAAE,KAAA,EAAO,QAAa,KAAA;AAlhC5B,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmhCE,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,MAAM,YACJ,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,IAAA,CAAA,CAAK,WAAM,QAAS,EAAA,KAAf,mBAAkB,YAAc,CAAA,CAAA,MAAA;AAAA,IAC3C,CAAC,GAAK,KAAA;AAthCZ,MAAAkB,IAAAA,GAAAA;AAshCe,MAAA,OAAA,CAAAA,MAAA,KAAM,CAAA,QAAA,EAAN,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAkB,YAAa,CAAA,GAAA,CAAA;AAAA;AAAA,GAAA,CACxC,MAAW,MAAA,KAAA,CAAM,WAAY,EAAA,CAAE,IAAK,CAAA,MAAA,IAAA,CACtC,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,IAAA,CAAA,CAAK,EAAM,GAAA,KAAA,CAAA,QAAA,EAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,YAAc,CAAA,CAAA,MAAA;AAAA,IAC3C,CAAC,GAAK,KAAA;AAzhCZ,MAAAA,IAAAA,GAAAA;AAyhCe,MAAA,OAAA,CAAAA,MAAA,KAAM,CAAA,QAAA,EAAN,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAkB,YAAa,CAAA,GAAA,CAAA;AAAA;AAAA,GACxC,CAAA,MAAA,MAAW,MAAM,WAAY,EAAA;AACjC,EAAA,MAAM,oBAAmB,EAAQ,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,MAAA;AAAA,IAC/B,CAAA,EAAA,GAAA,KAAA,CAAM,QAAS,EAAA,KAAf,IAAkB,GAAA,MAAA,GAAA,EAAA,CAAA;AAAA,GAAA,CAClB,MAAO,CAAA,CAAC,IAAS,KAAA,IAAA,CAAA,KAFM,IAEC,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA;AAE1B,EAAA,uBACElB,gBAAA,CAAA,aAAA;AAAA,IAACS,IAAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,eAAA;AAAA,MACR,IAAM,EAAA,CAAA;AAAA,MACN,IAAK,EAAA,MAAA;AAAA,MACL,GAAK,EAAA,CAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACL,WAAa,EAAA,EAAA;AAAA,QACb,OAAS,EAAA,EAAA;AAAA,QACT,iBAAiB,KAAM,CAAA,aAAA;AAAA,QACvB,YAAc,EAAA;AAAA;AAChB,KAAA;AAAA,oBAEAT,gBAAAA,CAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,OAAQ,EAAA,YAAA,EAAa,GAAK,EAAA,CAAA,EAAG,KAAM,EAAA,QAAA,EAAS,IAAK,EAAA,MAAA,EAAA,EAEpD,2BACCT,gBAAAA,CAAA,aAAAA,CAAAA,gBAAAA,CAAA,QACE,EAAA,IAAA,kBAAAA,gBAAA,CAAA,aAAA,CAAC,SAAM,UAAW,EAAA,KAAA,EAAM,KAAO,EAAA,KAAA,CAAM,YAAU,MACxC,EAAA,gBAAA,EAAiB,mCACxB,CAAA,kBACAA,gBAAA,CAAA,aAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,MAAA;AAAA,QACL,SAAS,MAAM;AACb,UAAA,KAAA,CAAM,qBAAsB,EAAA;AAAA;AAC9B,OAAA;AAAA,MACD,iBAAA;AAAA,MACmB,KAAA,CAAM,sBAAuB,EAAA,CAAE,IAAK,CAAA,MAAA;AAAA,MAAO;AAAA,KAGjE,CAAA,mBAEAA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,EAAM,UAAW,EAAA,KAAA,EAAM,KAAO,EAAA,KAAA,CAAM,QAClC,EAAA,EAAA,gBAAA,EAAiB,iBACpB,CAEJ,CAAA;AAAA;AAAA,IAKE,MACE,mBAAAA,gBAAA,CAAA,aAAA,CAACS,MAAA,EAAK,OAAA,EAAQ,UAAY,EAAA,EAAA,MAAO,CAEjC,mBAAAT,gBAAA,CAAA,aAAA,CAACS,MAAA,EAAK,OAAA,EAAQ,UAAW,EAAA,KAAA,EAAM,QAAS,EAAA,GAAA,EAAK,CAAG,EAAA,IAAA,EAAK,0BACnDT,gBAAAA,CAAA,aAACqB,CAAAA,KAAAA,EAAA,EAAM,IAAA,EAAM,OACV,EAAA,EAAA,MAAA,kBACDrB,gBAAA,CAAA,aAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,SAAS,MAAM;AACb,UAAA,KAAA,CAAM,iBAAkB,EAAA;AAAA,SAC1B;AAAA,QACA,SAAA,EAAW,OAAO,IAAK,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,UAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,YAAY,CAAE,CAAA;AAAA;AAAA,KAE3D,CACF;AAAA,GAGN;AAEJ;AAOO,IAAM,uBAAuBwB,UAGlC,CAAA,CAAC,EAAE,KAAO,EAAA,OAAA,IAAgB,GAAQ,KAAA;AAClC,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAInB,SAAS,EAAE,CAAA;AAC/C,EAAM,MAAA,cAAA,GAAiB,OAAiB,IAAI,CAAA;AAE5C,EAAW,UAAA,CAAA,QAAA,EAAU,CAAC,CAAM,KAAA;AAxmC9B,IAAA,IAAA,EAAA;AAymCI,IAAA,CAAA,EAAA,GAAA,cAAA,CAAe,YAAf,IAAwB,GAAA,MAAA,GAAA,EAAA,CAAA,KAAA,EAAA;AACxB,IAAA,CAAA,CAAE,cAAe,EAAA;AAAA,GAClB,CAAA;AAED,EAAM,MAAA,EAAE,WAAa,EAAA,SAAA,EAAc,GAAA,OAAA;AAGnC,EAAA,mBAAA,CAAoB,KAAK,OAAO;AAAA,IAC9B,QAAQ,MAAM;AAjnClB,MAAA,IAAA,EAAA;AAknCM,MAAO,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,OAAA,CAAQ,SAAf,IAAqB,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,EAAA;AAAA,KACvB;AAAA,IACA,OAAO,MAAM;AApnCjB,MAAA,IAAA,EAAA;AAqnCM,MAAA,CAAA,EAAA,GAAA,cAAA,CAAe,YAAf,IAAwB,GAAA,MAAA,GAAA,EAAA,CAAA,KAAA,EAAA;AAAA,KAC1B;AAAA,IACA,MAAM,MAAM;AAvnChB,MAAA,IAAA,EAAA;AAwnCM,MAAA,CAAA,EAAA,GAAA,cAAA,CAAe,YAAf,IAAwB,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,EAAA;AAAA;AAC1B,GACA,CAAA,CAAA;AAEF,EAAA,uBACEL,gBAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAW,SAAa,IAAA,IAAA,GAAA,SAAA,GAAA,IAAA;AAAA,MACxB,GAAK,EAAA,cAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACL,KAAO,EAAA,GAAA;AAAA,QACP,YAAc,EAAA,CAAA;AAAA,QACd,aAAa,KAAM,CAAA,QAAA;AAAA,QACnB,OAAO,KAAM,CAAA;AAAA,OACf;AAAA,MACA,cAAA,EAAgB,CAAC,CAAM,KAAA;AAtoC7B,QAAA,IAAA,EAAA;AAuoCQ,QAAI,IAAA,CAAA,CAAE,OAAO,KAAO,EAAA;AAClB,UAAA,CAAA,EAAA,GAAA,cAAA,CAAe,YAAf,IAAwB,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,EAAA;AAAA;AAC1B,OACF;AAAA,MACA,QAAQ,MAAM;AA3oCpB,QAAA,IAAA,EAAA;AA4oCQ,QAAA,CAAA,EAAA,GAAA,cAAA,CAAe,YAAf,IAAwB,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,EAAA;AAAA,OAC1B;AAAA,MACA,KAAO,EAAA,UAAA;AAAA,MACP,QAAA,EAAU,CAAC,CAAM,KAAA;AACf,QAAc,aAAA,CAAA,CAAA,CAAE,OAAO,KAAK,CAAA;AAC5B,QAAAE,CAAAA,CAAE,QAAS,CAAA,MAAM,KAAM,CAAA,eAAA,CAAgB,EAAE,MAAO,CAAA,KAAK,CAAG,EAAA,GAAG,CAAE,EAAA;AAAA,OAC/D;AAAA,MACA,aAAa,WAAe,IAAA,WAAA;AAAA,MAC5B,MAAA,kBACEF,gBAAA,CAAA,aAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,KAAO,EAAA;AAAA,YACL,OAAO,KAAM,CAAA,QAAA;AAAA,YACb,QAAU,EAAA;AAAA;AACZ;AAAA;AACF;AAAA,GAEJ;AAEJ,CAAC;AAGD,oBAAA,CAAqB,WAAc,GAAA,sBAAA;AACnC,eAAA,CAAgB,WAAc,GAAA,iBAAA;AC3mC9B,IAAM,sBAAA,GAAyB,CAC7B,MAAA,EACA,KACkB,KAAA;AA1DpB,EAAA,IAAA,EAAA,EAAA,EAAA;AA6DE,EAAM,MAAA,QAAA,GAAW,OAAO,WAAY,EAAA;AAEpC,EAAA,MAAM,sBACJ,GAAA,QAAA,KAAa,MAAU,IAAA,MAAA,CAAO,gBAAgB,MAAM,CAAA;AACtD,EAAA,MAAM,wBACJ,GAAA,QAAA,KAAa,OAAW,IAAA,MAAA,CAAO,iBAAiB,OAAO,CAAA;AAEzD,EAAA,MAAM,YACJ,MAAO,CAAA,OAAA,CAAQ,SAAS,CACpB,GAAA,CAAA,EAAA,CAAG,YAAO,OAAQ,CAAA,CAAC,CAAhB,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAmB,SAAS,MAAO,CAAA,CAAA,EAAA,CAAA,GACtC,GAAG,MAAO,CAAA,QAAA,CAAS,MAAM,CAAC,CAAA,EAAA,CAAA;AAChC,EAAM,MAAA,UAAA,GACJ,OAAO,OAAQ,CAAA,MAAA,GAAS,IACpB,CAAG,EAAA,CAAA,EAAA,GAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,OAAA,CAAQ,SAAS,CAAC,CAAA,KAAxC,mBAA2C,QAAS,CAAA,OAAA,CAAQ,OAC/D,CAAG,EAAA,MAAA,CAAO,QAAS,CAAA,OAAO,CAAC,CAAA,EAAA,CAAA;AAEjC,EAAO,OAAA;AAAA,IACL,SAAW,EAAA,sBAAA,GACP,4BACA,GAAA,wBAAA,GACA,2BACA,GAAA,MAAA;AAAA,IACJ,IAAA,EAAM,QAAa,KAAA,MAAA,GAAS,SAAY,GAAA,MAAA;AAAA,IACxC,KAAA,EAAO,QAAa,KAAA,OAAA,GAAU,UAAa,GAAA,MAAA;AAAA;AAAA;AAAA,IAI3C,OAAS,EAAA,CAAA;AAAA,IACT,QAAA,EAAU,WAAW,QAAW,GAAA,UAAA;AAAA,IAChC,KAAA,EAAO,OAAO,OAAQ,EAAA;AAAA,IACtB,eAAiB,EAAA,QAAA,GAAY,KAAQ,GAAA,OAAA,GAAU,SAAa,GAAA,MAAA;AAAA,IAC5D,MAAA,EAAQ,WAAW,CAAI,GAAA;AAAA,GACzB;AACF,CAAA;AAIO,IAAM,gBAAgB,CAAK;AAAA,EAChC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,oBAAuB,GAAA,EAAA;AAAA,EACvB,QAAW,GAAA,KAAA;AAAA,EACX;AACF,CAA6B,KAAA;AAxG7B,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAyGE,EAAM,MAAA,cAAA,GAAiByB,QAAQ,MAAM;AACnC,IAAM,MAAA,OAAA,GAAU,MAAM,cAAe,EAAA;AACrC,IAAA,MAAM,WAAmC,EAAC;AAC1C,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,OAAA,CAAQ,QAAQ,CAAK,EAAA,EAAA;AAEvC,MAAM,MAAA,MAAA,GAAS,QAAQ,CAAC,CAAA;AACxB,MAAA,QAAA,CAAS,YAAY,MAAO,CAAA,EAAE,CAAO,KAAA,CAAA,CAAA,GAAI,OAAO,OAAQ,EAAA;AACxD,MAAS,QAAA,CAAA,CAAA,MAAA,EAAS,OAAO,MAAO,CAAA,EAAE,OAAO,CAAI,GAAA,MAAA,CAAO,OAAO,OAAQ,EAAA;AAAA;AAErE,IAAO,OAAA,QAAA;AAAA,GACT,EAAG,CAAC,KAAA,CAAM,QAAS,EAAA,CAAE,kBAAkB,KAAM,CAAA,QAAA,EAAW,CAAA,YAAY,CAAC,CAAA;AAErE,EAAM,MAAA,SAAA,GAAYC,OAAyB,IAAI,CAAA;AAc/C,EAAA,uBACE1B,gBAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,SAAU,EAAA,mBAAA;AAAA,MACV,KAAO,EAAA;AAAA,QACL,GAAG,cAAA;AAAA,QACH,QAAA,EAAU,MAAM,YAAa;AAAA,OAC/B;AAAA,MACA,GAAK,EAAA;AAAA,KAAA;AAAA,oBAILA,iBAAA,aAAC,CAAA,iBAAA,EAAA,IAAA,EAAA,CACE,oCAAO,eAAP,EAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAA0B,GAAI,CAAA,CAAC,WAAgB,KAAA;AA/IxD,MAAAkB,IAAAA,GAAAA;AAgJU,MAAA,uBACElB,gBAAAA,CAAA,aAAC,CAAA,cAAA,EAAA,EAAe,KAAK,WAAY,CAAA,EAAA,EAAA,EAAA,CAC9BkB,GAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,OAAb,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAsB,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACrC,QAAA,uBACElB,gBAAA,CAAA,aAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,SAAS,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,OAAA;AAAA,YACjB,KAAK,MAAO,CAAA,EAAA;AAAA,YACZ,KAAO,EAAA;AAAA,cACL,GAAG,sBAAA,CAAuB,MAAO,CAAA,MAAA,EAAQ,KAAK,CAAA;AAAA,cAC9C,KAAA,EAAO,CAAqB,kBAAA,EAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,EAAE,CAAA,aAAA;AAAA,aACxC;AAAA,YACA,OAAA,EACE,OAAO,MAAO,CAAA,UAAA,KACV,MAAO,CAAA,MAAA,CAAO,yBACd,GAAA;AAAA,WAAA;AAAA,UAGL,CAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,aAAgB,IAAA,IAAA,mBACvBA,gBAAAA,CAAA,cAAC,KAAI,EAAA,EAAA,SAAA,EAAU,oDACb,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,YAACS,IAAAA;AAAA,YAAA;AAAA,cACC,GAAK,EAAA,EAAA;AAAA,cACL,IAAM,EAAA,CAAA;AAAA,cACN,KAAM,EAAA,QAAA;AAAA,cACN,OACE,EAAA,MAAA,CAAO,UAAW,CAAA,MAAA,GAAS,IACvB,QACA,GAAA;AAAA,aAAA;AAAA,4BAGNT,gBAAA,CAAA,aAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,UAAW,EAAA,KAAA;AAAA,gBACX,QAAS,EAAA,MAAA;AAAA,gBACT,SAAU,EAAA;AAAA,eAAA;AAAA,cAET,UAAA;AAAA,gBACC,MAAA,CAAO,OAAO,SAAU,CAAA,MAAA;AAAA,gBACxB,OAAO,UAAW;AAAA;AACpB,aACF;AAAA,4BAEAA,gBAAAA,CAAA,aAACS,CAAAA,IAAAA,EAAA,EAAK,GAAA,EAAK,CACR,EAAA,EAAA,MAAA,CAAO,MAAO,CAAA,UAAA,EACb,oBAAAT,gBAAA,CAAA,aAAA;AAAA,cAAC,cAAA;AAAA,cAAA;AAAA,gBACC;AAAA;AAAA,eAIH,MAAO,CAAA,MAAA,CAAO,YAAa,EAAA,mBAC1BA,gBAAA,CAAA,aAAA;AAAA,cAAC,cAAA;AAAA,cAAA;AAAA,gBACC,GAAI,EAAA,QAAA;AAAA,gBACJ,QACE,MAAO,CAAA;AAAA;AAAA,gBAGT,IACN;AAAA,aAED,MAAO,CAAA,MAAA,CAAO,YAAa,EAAA,oBAC1BA,gBAAA,CAAA,aAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAU,EAAA,qCAAA;AAAA,cACV,OAAS,EAAA,CAAC,CAAM,KAAA,CAAA,CAAE,eAAgB;AAAA,aAAA;AAAA,4BAElCA,gBAAAA,CAAA,aAAC,CAAA,YAAA,EAAA,EAAa,MAAgB,EAAA;AAAA,WAGpC;AAAA,SAEJ;AAAA,OAGN,CAAA,CAAA;AAAA,KAGN,CAAA,CAAA;AAAA,IAIC,KAAM,CAAA,QAAA,EAAW,CAAA,gBAAA,CAAiB,gBACjC,mBAAAA,gBAAA,CAAA,aAAA,CAAC,iBAAkB,EAAA,EAAA,KAAA,EAAc,CAEjC,mBAAAA,gBAAA,CAAA,aAAA,CAAC,eAAgB,EAAA,EAAA,SAAA,EAAW,CAAO,IAAA,EAAA,WAAA,CAAY,QAAQ,CAAC,CACrD,CAAA,EAAA,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,WAAP,EAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAsB,IAAtB,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAA4B,GAAI,CAAA,CAAC,GAAkB,KAAA;AAClD,MAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACC,OAAO,GAAI,CAAA,EAAA;AAAA,UACX,KAAK,GAAI,CAAA,EAAA;AAAA,UACT,GAAA;AAAA,UACA,KAAA;AAAA,UACA,KAAA;AAAA,UACA;AAAA;AAAA,OACF;AAAA,KAGN,CAAA,CAAA;AAAA,IAAA,CAAA,CAID,WACE,cAAe,EAAA,KADjB,IAEG,GAAA,MAAA,GAAA,EAAA,CAAA,OAAA,CAAQ,CAAC,MAAQ,KAAA;AAnP3B,MAAA,IAAAkB,GAAAI,EAAAA,GAAAA;AAmP8B,MAAAA,OAAAA,CAAAA,GAAAA,GAAAA,CAAAJ,MAAA,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,MAAA,KAAR,gBAAAA,GAAgB,CAAA,SAAA,KAAhB,gBAAAI,GAA2B,CAAA,MAAA;AAAA,KAAA,CAAA,CAChD,MAAO,CAAA,OAAA,CAAA,CAAS,MAAS,IAAA,CAAA,oBAC1BtB,gBAAAA,CAAA,aAAC,CAAA,iBAAA,EAAA,IAAA,EACE,KAAM,CAAA,eAAA,EAAkB,CAAA,GAAA,CAAI,CAAC,WAAgB,KAAA;AAtPxD,MAAAkB,IAAAA,GAAAA;AAuPY,MAAA,uBACElB,gBAAAA,CAAA,aAAC,CAAA,cAAA,EAAA,EAAe,KAAK,WAAY,CAAA,EAAA,EAAA,EAAA,CAC9BkB,GAAA,GAAA,WAAA,CAAY,OAAZ,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAqB,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AAzPtD,QAAA,IAAAA,GAAAI,EAAAA,GAAAA;AA0PkB,QACE,uBAAAtB,iBAAA,aAAC,CAAA,eAAA,EAAA,EAAgB,KAAK,MAAO,CAAA,EAAA,EAAA,EAAA,CAC1B,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,aAAA,IACL,IACA,GAAA,UAAA;AAAA,UACEsB,CAAAA,GAAAA,GAAAA,CAAAJ,MAAA,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,MAAA,KAAR,gBAAAA,GAAgB,CAAA,SAAA,KAAhB,gBAAAI,GAA2B,CAAA,MAAA;AAAA,UAC3B,MAAQ,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,UAAA;AAAA,SAEhB,CAAA;AAAA,OAGN,CAAA,CAAA;AAAA,KAEH,CACH,CAAA;AAAA,IAID,OAAA,KAAA,CACC,EAAC,GAAA,CAAA,GAAG,KAAM,CAAA,oBAAoB,CAAC,CAC5B,CAAA,GAAA,CAAI,CAACpB,EAAAA,EAAG,KAAW,MAAA;AAAA,MAClB,GAAA,EAAK,MAAM,KAAK,CAAA;AAAA,KAChB,CAAA,CAAA,KAHJ,IAII,GAAA,MAAA,GAAA,EAAA,CAAA,GAAA,CAAI,CAAC,IAAS,KAAA;AAjR1B,MAAAgB,IAAAA,GAAAA;AAkRY,MAAA,uBACElB,gBAAAA,CAAA,aAAC,CAAA,cAAA,EAAA,EAAe,KAAK,IAAK,CAAA,GAAA,EAAA,EAAA,CACvBkB,GAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,aAAP,EAAA,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAwB,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACvC,QACE,uBAAAlB,iBAAA,aAAC,CAAA,eAAA,EAAA,EAAgB,WAAU,KAAM,EAAA,GAAA,EAAK,OAAO,EAC3C,EAAA,kBAAAA,iBAAA,aAAC2B,CAAAA,UAAAA,EAAA,EAAS,MAAM,EAAA,IAAA,EAAC,OAAK,IAAC,EAAA,SAAA,EAAW,OAAO,CAC3C,CAAA;AAAA,OAGN,CAAA,CAAA;AAAA,KAEJ,CAAA,CAAA;AAAA,IAGH,CAAC,OAAW,IAAA,CAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,WAAkB,EAAA,MAAA,CAAA,oBACpC3B,gBAAA,CAAA,aAAA,CAAC,cACC,EAAA,IAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,OAAS,EAAA,EAAA;AAAA,QACT,SAAU,EAAA;AAAA,OAAA;AAAA,sBAEVA,gBAAA,CAAA,aAAA,CAAC,kBAAmB,EAAA,IAAA;AAAA,KAExB;AAAA,GAEJ;AAEJ;AAQO,IAAM,YAAY,CAAK;AAAA,EAC5B,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAyB,KAAA;AACvB,EAAA,MAAM,QAAQ,WAAY,EAAA;AAE1B,EAAA,uBACEA,gBAAAA,CAAA,aAAC,CAAA,eAAA,EAAA,EAAgB,SAAW,EAAA,CAAA,IAAA,EAAO,QAAQ,CAAA,CAAA,EAAA,EACxC,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,WAAA,EAAA,CAAc,IAAK,CAAA,GAAA,CAAI,CAAC,GAA6B,KAAA;AAC3D,IAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,KAAK,GAAI,CAAA,EAAA;AAAA,QACT,KAAO,EAAA;AAAA,UACL,KAAO,EAAA,MAAA;AAAA,UACP,eAAiB,EAAA,GAAA,CAAI,aAAc,EAAA,GAAI,MAAM,QAAW,GAAA,MAAA;AAAA,UACxD,YAAA,EAAc,CAAa,UAAA,EAAA,KAAA,CAAM,QAAQ,CAAA;AAAA;AAC3C,OAAA;AAAA,MAEC,GACE,CAAA,eAAA,EACA,CAAA,GAAA,CAAI,CAAC,IAA0C,KAAA;AAzU9D,QAAA,IAAA,EAAA,EAAA,EAAA;AA0UgB,QACE,uBAAAA,gBAAA,CAAA,aAAA,CAAC4B,QAAA,EAAA,EAAS,GAAK,EAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,GAAN,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAW,EACxB,EAAA,kBAAA5B,gBAAA,CAAA,aAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAA,CAAO,EAAM,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,GAAA,KAAN,IAAW,GAAA,MAAA,GAAA,EAAA,CAAA,EAAA;AAAA,YAClB,KAAK,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,GAAA;AAAA,YACX,KAAA;AAAA,YACA,KAAA;AAAA,YACA;AAAA;AAAA,WA4CD,GAAI,CAAA,aAAA,sBACHA,gBAAAA,CAAA,cAAC,cACC,EAAA,IAAA,kBAAAA,iBAAA,aAAC,CAAA,eAAA,EAAA,EAAgB,SAAS,GAAI,CAAA,WAAA,GAAc,MAAQ,EAAA,EAAA,4JAIpD,CACF,CAEJ,CAAA;AAAA,OAqBH;AAAA,KACL;AAAA,GAGN,CAAA,CAAA;AAEJ;AACO,IAAM,mBAAmB,CAAK;AAAA,EACnC,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAY,GAAA,CAAA;AAAA,EACZ;AACF,CAAyB,KAAA;AAxazB,EAAA,IAAA,EAAA;AAyaE,EAAM,MAAA,UAAA,GAAa,SAAQ,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,MAAA,IAAS,IAAI,IAAK,CAAA,CAAC,CAAE,CAAA,KAAA,IAAS,CAAI,GAAA,CAAA;AACnE,EAAM,MAAA,aAAA,GACJ,IAAQ,IAAA,CAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,MAAS,IAAA,CAAA,GAAI,SAAa,IAAA,CAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,EAAG,CAAA,EAAA,CAAA,KAAT,IAAc,GAAA,MAAA,GAAA,EAAA,CAAA,GAAA,KAAO,CAAK,CAAA,GAAA,CAAA;AACpE,EAAA,MAAM,CAAC,UAAY,EAAA,aAAa,CAAIK,GAAAA,QAAAA,CAAmB,EAAE,CAAA;AAEzD,EAAM,MAAA,gBAAA,GAAmBwB,YAAY,MAAM;AACzC,IAAA,MAAM,UAAU,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,GAAA,CAAI,CAAC,EAAE,OAAY,KAAA;AACvC,MAAA,MAAM,GAAM,GAAA,KAAA,CAAM,WAAY,EAAA,CAAE,KAAK,KAAK,CAAA;AAC1C,MAAA,MAAM,aAAa,QAAS,CAAA,cAAA,CAAe,CAAO,IAAA,EAAA,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,EAAE,CAAE,CAAA,CAAA;AAC3D,MAAA,OAAO,UAAa,GAAA,UAAA,CAAW,qBAAsB,EAAA,CAAE,MAAS,GAAA,EAAA;AAAA,KAClE,CAAA;AACA,IAAA,aAAA,CAAc,OAAmB,CAAA;AAAA,GAChC,EAAA,CAAC,KAAO,EAAA,IAAI,CAAC,CAAA;AAEhB,EAAAN,UAAU,MAAM;AACd,IAAiB,gBAAA,EAAA;AAAA,GAChB,EAAA,CAAC,IAAM,EAAA,gBAAgB,CAAC,CAAA;AAE3B,EAAA,OAAA,CAAQ,MAAM,MAAM,CAAA;AAEpB,EAAA,uBACEvB,gBAAA,CAAA,aAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,MAAQ,EAAA,OAAA;AAAA,QACR,KAAO,EAAA,MAAA;AAAA,QACP,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,SAAA,EAAW,OAAO,QAAQ,CAAA;AAAA,KAAA;AAAA,IAEzB,UAAA,mBACCA,gBAAA,CAAA,aAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,MAAQ,EAAA;AAAA;AACV,OAAA;AAAA,sBAEAA,iBAAA,aAAC,CAAA,eAAA,EAAA,EAAgB,SAAS,KAAM,CAAA,cAAA,GAAiB,MAAQ,EAAA;AAAA,KAEzD,GAAA,MAAA;AAAA,IAEH,6BAAM,GAAI,CAAA,CAAC,EAAE,KAAO,EAAA,GAAG,MAAmC,KAAA;AACzD,MAAA,MAAM,GAAM,GAAA,KAAA,CAAM,WAAY,EAAA,CAAE,KAAK,KAAK,CAAA;AAE1C,MACE,uBAAAA,iBAAA,aAAC4B,CAAAA,QAAAA,EAAA,EAAS,GAAK,EAAA,KAAA,EAAA,kBACb5B,gBAAA,CAAA,aAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACC,IAAA;AAAA,UACA,KAAA;AAAA,UACA,GAAA;AAAA,UACA,KAAA;AAAA,UACA,KAAA;AAAA,UACA,QAAA;AAAA,UACA,KAAK,IAAK,CAAA,cAAA;AAAA,UACV,MAAA,EAAQ,WAAW,KAAK;AAAA;AAAA,SA4CzB,GAAI,CAAA,aAAA,sBACHA,gBAAAA,CAAA,cAAC,cACC,EAAA,IAAA,kBAAAA,iBAAA,aAAC,CAAA,eAAA,EAAA,EAAgB,SAAS,GAAI,CAAA,WAAA,GAAc,MAAQ,EAAA,EAAA,4JAIpD,CACF,CAEJ,CAAA;AAAA,KAEJ,CAAA;AAAA,IAEC,aAAA,mBACCA,gBAAA,CAAA,aAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,MAAQ,EAAA;AAAA;AACV,OAAA;AAAA,sBAEAA,iBAAA,aAAC,CAAA,eAAA,EAAA,EAAgB,SAAS,KAAM,CAAA,cAAA,GAAiB,MAAQ,EAAA;AAAA,KAEzD,GAAA;AAAA,GACN;AAEJ;AAEa,IAAA,iBAAA,GAAoB,KAAK,SAAS;AAExC,IAAM,YAKR,GAAA,IAAA;AAAA,EACH,CAAC,EAAE,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,UAAe,KAAA;AA3iBxC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA6iBI,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIK,SAAS,KAAK,CAAA;AAChD,IAAA,MAAM,CAAC,UAAY,EAAA,aAAa,IAAIA,QAAS,CAAA,IAAA,CAAK,UAAU,CAAA;AAE5D,IAAAkB,UAAU,MAAM;AACd,MAAA,IAAI,CAAC,SAAW,EAAA;AACd,QAAc,aAAA,CAAA,IAAA,CAAK,UAAU,CAAA;AAAA;AAC/B,OACC,CAAC,IAAA,CAAK,QAAS,EAAA,EAAG,SAAS,CAAC,CAAA;AAE/B,IAAM,MAAA,aAAA,GAAgBM,WAAY,CAAA,CAAC,CAAW,KAAA;AAtjBlD,MAAA,IAAAX,GAAAI,EAAAA,GAAAA;AAujBM,MAAM,MAAA,QAAA,GAAA,CAAWA,OAAAJ,GAAA,GAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,WAAH,IAAAA,GAAAA,MAAAA,GAAAA,GAAAA,CAAW,KAAX,KAAA,IAAA,GAAAI,GAAoB,GAAA,CAAA;AACrC,MAAA,aAAA,CAAc,QAAQ,CAAA;AAAA,KACxB,EAAG,EAAE,CAAA;AAEL,IAAM,MAAA,MAAA,GAASO,YAAY,MAAM;AA3jBrC,MAAA,IAAAX,GAAAI,EAAAA,GAAAA;AA4jBM,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAAA,CAAAA,GAAAA,GAAAA,CAAAJ,MAAA,KAAM,CAAA,OAAA,CAAQ,SAAd,IAAAA,GAAAA,MAAAA,GAAAA,GAAAA,CAAoB,UAApB,KAAA,IAAA,GAAA,MAAA,GAAAI,GAAA,CAAA,IAAA;AAAA,QAAAJ,GAAAA;AAAA,QACE,KAAK,GAAI,CAAA,KAAA;AAAA,QACT,KAAK,MAAO,CAAA,EAAA;AAAA,QACZ;AAAA,OAAA;AAAA,KAED,EAAA,CAAC,IAAK,CAAA,MAAA,CAAO,EAAI,EAAA,IAAA,CAAK,GAAI,CAAA,KAAA,EAAO,UAAY,EAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAC,CAAA;AAEnE,IAAA,IAAI,GAAC,EAAK,GAAA,CAAA,EAAA,GAAA,IAAA,CAAA,MAAA,CAAO,cAAZ,IAAuB,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,KAAvB,mBAA6B,QAAU,CAAA,EAAA;AAC1C,MAAA,uBACElB,gBAAA,CAAA,aAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,KAAO,EAAA;AAAA,YACL,GAAG,sBAAA,CAAuB,IAAK,CAAA,MAAA,EAAQ,IAAI,CAAA;AAAA,YAC3C,KAAA,EAAO,IAAK,CAAA,MAAA,CAAO,OAAQ,EAAA;AAAA,YAC3B,UAAY,EAAA,GAAA;AAAA,YACZ,OAAO,KAAM,CAAA;AAAA,WACf;AAAA,UACA,SAAA,EAAW,CAAG,EAAA,WAAA,CAAA,CAAY,EAAM,GAAA,KAAA,CAAA,QAAA,OAAN,IAAkB,GAAA,MAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA;AAAA,UAChE,KAAK,IAAK,CAAA;AAAA,SAAA;AAAA,QAET,WAAW,IAAK,CAAA,MAAA,CAAO,UAAU,IAAM,EAAA,IAAA,CAAK,YAAY;AAAA,OAC3D;AAAA;AAIJ,IAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA;AAAA,UACL,GAAG,sBAAA,CAAuB,IAAK,CAAA,MAAA,EAAQ,IAAI,CAAA;AAAA,UAC3C,KAAA,EAAO,IAAK,CAAA,MAAA,CAAO,OAAQ,EAAA;AAAA,UAC3B,UAAY,EAAA,GAAA;AAAA,UACZ,OAAO,KAAM,CAAA;AAAA,SACf;AAAA,QACA,SAAA,EAAW,CAAG,EAAA,WAAA,CAAA,CAAY,EAAM,GAAA,KAAA,CAAA,QAAA,OAAN,IAAkB,GAAA,MAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA;AAAA,QAChE,KAAK,IAAK,CAAA;AAAA,OAAA;AAAA,sBAEVA,gBAAA,CAAA,aAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,KAAO,EAAA,UAAA;AAAA,UACP,QAAU,EAAA,aAAA;AAAA,UACV,MAAA;AAAA,UACA,OAAA,EAAS,MAAM,YAAA,CAAa,IAAI,CAAA;AAAA,UAChC,OAAM,EAAK,GAAA,CAAA,EAAA,GAAA,IAAA,CAAA,MAAA,CAAO,SAAZ,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAuB,SAAvB,IAA6B,GAAA,MAAA,GAAA,EAAA,CAAA,SAAA;AAAA,UAClC,GAAA,CAAG,EAAK,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAA,MAAA,CAAO,SAAZ,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAuB,IAAvB,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAA6B,cAA7B,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,CAA8C,EAAK,GAAA,IAAA,CAAA,GAAA,KAAL,IAAU,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA;AAAA;AAAA;AAC9D,KACF;AAAA,GAEJ;AAAA,EACA,CAAC,MAAM,IAAS,KAAA;AACd,IAAA,OACE,IAAK,CAAA,IAAA,CAAK,QAAS,EAAA,KAAM,KAAK,IAAK,CAAA,QAAA,EACnC,IAAA,IAAA,CAAK,IAAK,CAAA,GAAA,CAAI,KAAU,KAAA,IAAA,CAAK,KAAK,GAAI,CAAA,KAAA;AAAA;AAG5C;AACA,YAAA,CAAa,WAAc,GAAA,cAAA;AAGpB,IAAM,WASR,GAAA,IAAA;AAAA,EACH,CAAC,EAAE,KAAA,EAAO,KAAK,KAAO,EAAA,KAAA,EAAO,UAAe,KAAA;AAC1C,IAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,IAAM,MAAA,CAAC,IAAI,CAAA,GAAI,OAAQ,EAAA;AAGvB,IAAA,MAAM,WAAcyB,GAAAA,OAAAA;AAAA,MAClB,OAAO;AAAA,QACL,GAAG,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAQ,GAAI,CAAA,QAAA,EAAU,GAAK,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAA,EAAA;AAAA,OAChC,CAAA;AAAA,MACA,CAAC,GAAA,CAAI,EAAI,EAAA,GAAA,CAAI,UAAU,KAAK;AAAA,KAC9B;AAEA,IAAA,uBACEzB,gBAAAA,CAAA,aAAC,CAAA,OAAA,EAAA,EAAQ,GAAK,EAAA,KAAA,EAAO,SAAW,EAAA,KAAA,EAAO,IAAY,EAAA,SAAA,EAAW,KAC5D,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACE,GAAG,WAAA;AAAA,QACJ,YAAY,EAAA,KAAA;AAAA,QAEZ,KAAK,GAAK,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAA,EAAA;AAAA,QACV,EAAA,EAAI,CAAO,IAAA,EAAA,GAAA,CAAI,EAAE,CAAA,CAAA;AAAA,QACjB,KAAO,EAAA;AAAA,UACL,KAAO,EAAA,MAAA;AAAA,UACP,eAAiB,EAAA,CAAA,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,aAAkB,EAAA,IAAA,KAAA,CAAM,QAAW,GAAA,MAAA;AAAA,UACzD,YAAA,EAAc,CAAa,UAAA,EAAA,KAAA,CAAM,QAAQ,CAAA;AAAA;AAC3C,OAAA;AAAA,MAEC,GAAK,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAA,eAAA,EAAA,CAAkB,GAAI,CAAA,CAAC,IAAc,KAAA;AACzC,QAAA,uBACEA,gBAAA,CAAA,aAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,KAAK,IAAK,CAAA,EAAA;AAAA,YACV,IAAA;AAAA,YACA,KAAA;AAAA,YACA,KAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,OAEJ,CAAA;AAAA,MAAI;AAAA,KAER,CAAA;AAAA,GAEJ;AAAA,EACA,CAAC,MAAM,IAAS,KAAA;AAEd,IACE,OAAA,IAAA,CAAK,IAAI,EAAO,KAAA,IAAA,CAAK,IAAI,EACzB,IAAA,IAAA,CAAK,IAAI,aAAc,EAAA,KAAM,KAAK,GAAI,CAAA,aAAA,MACtC,IAAK,CAAA,KAAA,CAAM,QAAQ,IAAS,KAAA,IAAA,CAAK,MAAM,OAAQ,CAAA,IAAA;AAAA;AAGrD;AACA,WAAA,CAAY,WAAc,GAAA,aAAA;AAG1B,IAAM,eAAe,IAAK,CAAA,CAAC,EAAE,MAAO,EAAA,qBAClCA,gBAAA,CAAA,aAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,WAAW,CAAW,QAAA,EAAA,MAAA,CAAO,OAAO,aAAc,EAAA,GAAI,eAAe,EAAE,CAAA,CAAA;AAAA,IACvE,WAAA,EAAa,CAAC,CAAM,KAAA;AAClB,MAAA,CAAA,CAAE,cAAe,EAAA;AACjB,MAAA,CAAA,CAAE,eAAgB,EAAA;AAClB,MAAM,MAAA,OAAA,GAAU,OAAO,gBAAiB,EAAA;AACxC,MAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,KACX;AAAA,IACA,KAAO,EAAA;AAAA,MACL,SAAW,EAAA,MAAA,CAAO,MAAO,CAAA,aAAA,KACrB,CACE,WAAA,EAAA,MAAA,CAAO,iBAAkB,EAAA,IAAK,OAAO,MAAO,CAAA,YAAA,EAAiB,GAAA,CAAA,GAAI,EACnE,CACA,GAAA,CAAA,GAAA;AAAA;AACN;AACF,CACD,CAAA;AAED,YAAA,CAAa,WAAc,GAAA,cAAA;ACjpB3Bc,MAAAA,CAAM,OAAO,SAAS,CAAA;AAEtB,IAAM,iBAAoBU,GAAAA,UAAAA;AAAA;AAAA,EAExB,CACE,OACA,GACG,KAAA;AA7DP,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA+DI,IAAM,MAAA;AAAA,MACJ,OAAA;AAAA,MACA,KAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAa,GAAA,MAAA;AAAA,MACb,OAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAU,GAAA,OAAA;AAAA,MACV,QAAW,GAAA,KAAA;AAAA,MACX,oBAAA;AAAA,MACA,cAAiB,GAAA,YAAA;AAAA,MACjB,UAAa,GAAA;AAAA,QACX,SAAW,EAAA,CAAA;AAAA,QACX,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,OAAU,GAAA;AAAA,QACR,MAAQ,EAAA,IAAA;AAAA,QACR,MAAQ,EAAA;AAAA,UACN,SAAW,EAAA,IAAA;AAAA,UACX,WAAa,EAAA;AAAA;AACf,OACF;AAAA,MACA;AAAA,KACE,GAAA,KAAA;AAEJ,IAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,IAAA,MAAM,CAAC,OAAS,EAAA,UAAU,IAAInB,QAAc,CAAA,UAAA,IAAA,IAAA,GAAA,UAAA,GAAc,EAAE,CAAA;AAE5D,IAAM,MAAA,EAAE,OAAS,EAAA,OAAA,EAAY,GAAA,UAAA;AAAA,MAC3B,OAAY,IAAA,IAAA,GAAA,OAAA,GAAA,MAAM,OAAQ,CAAA,OAAA,CAAQ,EAAE,IAAA,EAAM,EAAC,EAAG,KAAO,EAAA,CAAA,EAAG,OAAS,EAAA,IAAA,EAAM,CAAA;AAAA,MACvE;AAAA,QACE,SAAA,EAAW,CAAC,QAAiC,KAAA;AAC3C,UAAA,IAAI,UAAY,EAAA;AACd,YAAA,UAAA,CAAW,MAAM,UAAU,CAAA;AAAA,WACtB,MAAA;AACL,YAAW,UAAA,CAAA,MAAM,SAAS,IAAI,CAAA;AAAA;AAChC,SACF;AAAA,QACA,aAAe,EAAA;AAAA,UACb;AAAA,YACE,QAAU,EAAA,EAAA;AAAA,YACV,OAAS,EAAA;AAAA;AACX,SACF;AAAA,QACA,QAAW,GAAA;AACT,UAAI,IAAA,CAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,YAAW,CAAG,EAAA;AACzB,YAAO,OAAA,IAAA;AAAA,WACF,MAAA;AACL,YAAA,UAAA,CAAW,EAAE,CAAA;AAAA;AACf,SACF;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIA,QAA0B,CAAA;AAAA,MACxE,GAAG,gBAAA,CAAiB,OAAW,IAAA,IAAA,GAAA,OAAA,GAAA,EAAE;AAAA,KAClC,CAAA;AAED,IAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,QAA0B,CAAA;AAAA,MACtE,GAAG;AAAA,KACJ,CAAA;AAED,IAAM,MAAA,EAAE,WAAY,EAAA,GAAI,gBAAoB,EAAA;AAE5C,IAAA,MAAM,YAAe,GAAA,eAAA,CAAmB,EAAE,YAAA,EAAc,eAAe,CAAA;AACvE,IAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAC5CY,YAAgC,CAAA;AAAA,MAC9B,GAAA,CAAG,EAAY,GAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAA,YAAA,KAAZ,IAA0B,GAAA,MAAA,GAAA,EAAA,CAAA;AAAA,KAC9B,CAAA;AACH,IAAA,MAAM,CAAC,QAAU,EAAA,WAAW,CAAIZ,GAAAA,QAAAA,CAAwB,EAAE,CAAA;AAE1D,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,SAAS,CAAC,CAAA;AAElD,IAAM,MAAA,cAAA,GAAiBoB,QAAQ,MAAM;AACnC,MAAA,OAAO,CAAC,GAAG,YAAA,EAAc,aAAa,GAAI,OAAA,IAAA,IAAA,GAAA,OAAA,GAAW,EAAG,CAAA;AAAA,KACvD,EAAA,CAAC,OAAS,EAAA,iBAAiB,CAAC,CAAA;AAE/B,IAAA,MAAM,QAAQ,aAAc,CAAA;AAAA,MAC1B,IAAM,EAAA,UAAA,IAAA,CAAc,UAAY,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAA,MAAA,IAAS,IAAI,UAAa,GAAA,OAAA;AAAA,MAC1D,aAAe,EAAA;AAAA,QACb,OAAS,EAAA,EAAA;AAAA,QACT,IAAM,EAAA,GAAA;AAAA,QACN,OAAS,EAAA;AAAA,OACX;AAAA,MACA,OAAS,EAAA,cAAA;AAAA,MACT,gBAAkB,EAAA,OAAA;AAAA,MAClB,oBAAsB,EAAA,IAAA;AAAA,MACtB,kBAAoB,EAAA,IAAA;AAAA,MAEpB,iBAAiB,eAAgB,EAAA;AAAA,MACjC,yBAAyB,MAAQ,EAAA;AAC/B,QAAA,OAAO,OAAO,YAAa,EAAA;AAAA,OAC7B;AAAA,MACA,GAAG,UAAA;AAAA,MACH,YAAc,EAAA;AAAA,QACZ,GAAG,UAAY,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAA,YAAA;AAAA,QACf,aAAe,EAAA;AAAA,UACb,IAAM,EAAA;AAAA,YACJ,cAAA;AAAA,YACA,OAAA;AAAA,YACA,GAAA,CAAI,0DAAY,YAAZ,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAA0B,kBAA1B,IAAyC,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,KAAzC,YAAiD;AAAC,WACxD;AAAA,UACA,KAAO,EAAA;AAAA,YACL,QAAA;AAAA,YACA,GAAA,CAAI,0DAAY,YAAZ,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAA0B,kBAA1B,IAAyC,GAAA,MAAA,GAAA,EAAA,CAAA,KAAA,KAAzC,YAAkD;AAAC;AACzD;AACF,OACF;AAAA,MACA,KAAO,EAAA;AAAA,QACL,GAAG,UAAY,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,CAAA,KAAA;AAAA,QACf,UAAY,EAAA,eAAA;AAAA,QACZ,gBAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAc,EAAA;AAAA,OAChB;AAAA,MACA,uBACE,EAAA,CAAA,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAc,aAAiB,KAAA,YAAA,CAAa,aAAkB,KAAA,OAAA;AAAA,MAChE,oBAAsB,EAAA,KAAA;AAAA,MACtB,gBAAkB,EAAA,WAAA;AAAA,MAClB,oBAAA,EAAsB,CAAC,YAAiB,KAAA;AA7L9C,QAAAP,IAAAA,GAAAA;AA8LQ,QAAA,oBAAA,CAAqB,YAAY,CAAA;AACjC,QAAgB,eAAA,CAAA,CAAC,IAAS,KAAA,IAAA,GAAO,CAAC,CAAA;AAClC,QAAA,CAAAA,GAAA,GAAA,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAc,QAAd,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAA,CAAA,IAAA;AAAA,UAAA,YAAA;AAAA,UACE,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,MAAA;AAAA,YACxB,CAAC,GAAQ,KAAA,YAAA,CAAa,GAAgC;AAAA,WACxD;AAAA,UACA,oBAAoB,KAAK;AAAA,SAAA;AAAA,OAE7B;AAAA,MACA,SAAW,EAAA;AAAA,QACT,aAAe,EAAA,CAAC,KAAO,EAAA,GAAA,EAAK,GAAQ,KAAA;AAxM5C,UAAAA,IAAAA,GAAAA;AA0MU,UAAA,MAAM,SAAYA,GAAAA,CAAAA,GAAAA,GAAA,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,QAAA,KAAP,gBAAAA,GAAkB,CAAA,GAAA,CAAA;AAGpC,UAAI,IAAA,CAAC,WAAkB,OAAA,KAAA;AAEvB,UAAI,IAAA;AAEF,YAAM,MAAA,OAAA,GAAUJ,OAAM,SAAS,CAAA;AAG/B,YAAA,IAAI,CAAC,OAAA,CAAQ,OAAQ,EAAA,EAAU,OAAA,KAAA;AAG/B,YAAIE,IAAAA,OAAAA,CAAQ,GAAG,CAAG,EAAA;AAChB,cAAM,MAAA,CAAC,SAAW,EAAA,OAAO,CAAI,GAAA,GAAA;AAG7B,cAAA,IAAI,CAAC,SAAA,IAAa,CAAC,OAAA,EAAgB,OAAA,KAAA;AAGnC,cAAA,OAAO,OAAQ,CAAA,SAAA,CAAU,SAAW,EAAA,OAAA,EAAS,OAAO,IAAI,CAAA;AAAA;AAI1D,YAAA,IAAI,GAAK,EAAA;AACP,cAAM,MAAA,UAAA,GAAaF,OAAM,GAAG,CAAA;AAG5B,cAAA,IAAI,CAAC,UAAA,CAAW,OAAQ,EAAA,EAAU,OAAA,KAAA;AAGlC,cAAA,OACE,QAAQ,MAAO,CAAA,YAAY,CAAM,KAAA,UAAA,CAAW,OAAO,YAAY,CAAA;AAAA;AAInE,YAAO,OAAA,KAAA;AAAA,mBACA,KAAO,EAAA;AACd,YAAQ,OAAA,CAAA,KAAA,CAAM,2BAA2B,KAAK,CAAA;AAC9C,YAAO,OAAA,KAAA;AAAA;AACT,SACF;AAAA,QACA,SAAW,EAAA,CAAC,GAAK,EAAA,KAAA,EAAO,GAAQ,KAAA;AApPxC,UAAAI,IAAAA,GAAAA;AAqPU,UAAA,MAAM,aAAa,GAAQ,KAAA,OAAA;AAC3B,UAAA,OAAA,CAAA,CAAOA,GAAA,GAAA,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,QAAL,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAgB,KAAW,CAAA,MAAA,UAAA;AAAA;AACpC,OACF;AAAA,MAEA,iBAAiB,MAAM,IAAA;AAAA,MACvB,wBAA0B,EAAA,mBAAA;AAAA,MAC1B,IAAM,EAAA;AAAA,QACJ,MAAQ,EAAA,OAAA;AAAA,QACR,UAAY,EAAA,CAAC,QAAU,EAAA,QAAA,EAAU,KAAU,KAAA;AACzC,UAAA,MAAM,OAAO,UAAc,IAAA,IAAA,GAAA,UAAA,GAAA,OAAA;AAE3B,UAAM,MAAA,SAAA,GAAY,EAAE,GAAG,IAAA,CAAK,QAAQ,CAAG,EAAA,CAAC,QAAQ,GAAG,KAAM,EAAA;AACzD,UAAA,MAAM,UAAa,GAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,GAAI,CAAA,CAAC,KAAK,KAAU,KAAA;AAC3C,YAAA,IAAI,UAAU,QAAU,EAAA;AACtB,cAAO,OAAA;AAAA;AAAA,gBAEL,GAAG,KAAK,QAAQ,CAAA;AAAA,gBAChB,CAAC,QAAQ,GAAG;AAAA,eACd;AAAA;AAEF,YAAO,OAAA,GAAA;AAAA,WACT,CAAA;AACA,UAAA,MAAM,GAAM,GAAA,EAAE,MAAQ,EAAA,SAAA,EAAW,YAAY,UAAW,EAAA;AACxD,UAAA,UAAA,CAAW,UAAU,CAAA;AACrB,UAAA,OAAO,qCAAU,kBAAmB,CAAA,GAAA,CAAA;AAAA,SACtC;AAAA,QACA,YAAA;AAAA,QAEA;AAAA,OACF;AAAA,MACA,qBACE,EAAA,cAAA,KAAmB,YAAe,GAAA,qBAAA,EAA0B,GAAA,MAAA;AAAA;AAAA;AAAA;AAAA,MAK9D,kBAAoB,EAAA,kBAAA;AAAA,MACpB,qBAAqB,mBAAoB,EAAA;AAAA,MACzC,mBAAmB,iBAAkB,EAAA;AAAA,MACrC,oBAAoB,kBAAmB,EAAA;AAAA,MACvC,qBAAqB,mBAAoB,EAAA;AAAA,MACzC,oBAAoB,kBAAmB,EAAA;AAAA,MACvC,wBAAwB,sBAAuB,EAAA;AAAA,MAC/C,wBAAwB,sBAAuB;AAAA,KAChD,CAAA;AAID,IAAA,eAAA,CAAgB,MAAM;AAtS1B,MAAAA,IAAAA,GAAAA;AAuSM,MAAA,IAAA,CAAIA,GAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,QAAP,EAAA,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAmB,YAAc,EAAA;AACnC,QAAA,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAc,QAAS,CAAA,SAAA,CAAU,KAAK,CAAA,EAAG,oBAAoB,KAAK,CAAA,CAAA;AAAA;AACpE,OACC,CAAC,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,QAAP,EAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAmB,YAAY,CAAC,CAAA;AAGpC,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,mBAAA,CAAoB,gBAAiB,CAAA,OAAA,IAAA,IAAA,GAAA,OAAA,GAAW,EAAE,CAAC,CAAA;AAAA,OAClD,CAAC,CAAA,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,IAAT,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,SAAS,CAAC,CAAA;AAG7B,IAAAY,mBAAAA;AAAA,MACE,GAAA;AAAA,MACA,OAAO;AAAA,QACL,QAAQ,MAAM;AACZ,UAAQ,OAAA,EAAA;AACR,UAAO,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,iBAAA,EAAA;AAAA;AACT,OACF,CAAA;AAAA,MACA,CAAC,OAAO;AAAA,KACV;AAEA,IAAA,MAAM,kBAAqB,GAAA;AAAA,MACzB,QAAA;AAAA,MACA,oBAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,uBACE9B,gBAAAA,CAAA,aAAAA,CAAAA,gBAAAA,CAAA,QACE,EAAA,IAAA,kBAAAA,gBAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,GAAA,EAAK,YAER,EAAA,kBAAAA,gBAAA,CAAA,aAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACC,GAAG,OAAA;AAAA,QACJ,OAAS,EAAA;AAAA,UACP,GAAI,CAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,OAAW,KAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,OAAO,CAAA,GACjD,CAAC,GAAG,OAAQ,CAAA,OAAO,IACnB,EAAC;AAAA,UACL,CAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,MACP,qBAAAA,gBAAA,CAAA,aAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAU,EAAA,wBAAA;AAAA,cACV,OAAA,EAAS,MAAM,OAAQ;AAAA,aAAA;AAAA,YAAA,CAEtB,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA,UAAA,IACR,OAAQ,CAAA,UAAA,mBAERA,gBAAA,CAAA,aAAA;AAAA,cAAC,cAAA;AAAA,cAAA;AAAA,gBACC,KAAO,EAAA;AAAA,kBACL,OAAO,KAAM,CAAA;AAAA,iBACf;AAAA,gBACA,GAAI,EAAA;AAAA;AAAA;AACN,WAEJ;AAAA,0BAEFA,gBAAA,CAAA,aAAA,CAAC,kBAAe,MAAQ,EAAA,KAAA,EAAO,KAAI,SAAU,EAAA;AAAA,SAC/C;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,GAAG,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA;AAAA;AACd;AAAA,KAID,EAAA,MAAA,CAAO,IAAK,CAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAO,eAAP,IAAmB,GAAA,MAAA,GAAA,EAAA,CAAA,YAAY,CAAE,CAAA,MAAA,GAAS,CACrD,IAAA,CAAA,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAc,aAAkB,MAAA,OAAA,oBAC9BA,gBAAA,CAAA,aAAA;AAAA,MAAC,yBAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,MAAQ,EAAA,sBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,sBAAA;AAAA,UACN,UAAU,KAAK,CAAA;AAAA,UACf,oBAAoB,KAAK,CAAA;AAAA,UACzB,MAAM;AACJ,YAAA,KAAA,CAAM,iBAAkB,EAAA;AAAA;AAC1B;AAAA;AAAA,KAMP,EAAA,cAAA,KAAmB,YAClB,oBAAAA,gBAAA,CAAA,aAAA;AAAA,MAAC,uBAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,eAAe,KAAO,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,QAAA;AAAA;AAAA,uBAI1BA,gBAAAA,CAAA,aAAC,CAAA,KAAA,EAAA,IAAA,kBAECA,gBAAA,CAAA,aAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,SAAS,OAAW,IAAA,YAAA;AAAA,QACpB,KAAA;AAAA,QACC,GAAG;AAAA;AAAA,KAER,CACF,CACF,CAAA;AAAA;AAGN;ACxYO,IAAM,iBAAiB,MAAM;AAClC,EAAA,MAAM,QAAQ,WAAY,EAAA;AAC1B,EAAOQ,OAAAA,YAAAA,CAAa,CAACN,EAAO,MAAA;AAAA,IAC1B,IAAM,EAAA;AAAA,MACJ,gBAAkB,EAAA;AAAA,QAChB,YAAc,EAAA;AAAA;AAChB,KACF;AAAA,IACA,QAAU,EAAA;AAAA,MACR,oBAAsB,EAAA;AAAA,QACpB,OAAS,EAAA,CAAA;AAAA,QACT,YAAc,EAAA,MAAA;AAAA,QACd,SAAW,EAAA;AAAA,UACT,eAAiB,EAAA;AAAA;AACnB,OACF;AAAA,MACA,yBAA2B,EAAA;AAAA,QACzB,OAAS,EAAA,UAAA;AAAA,QACT,SAAW,EAAA;AAAA,UACT,eAAiB,EAAA;AAAA;AACnB;AACF,KACF;AAAA,IACA,SAAW,EAAA;AAAA,MACT,iBAAiB,KAAM,CAAA,SAAA;AAAA,MACvB,OAAO,KAAM,CAAA,QAAA;AAAA,MACb,SAAW,EAAA,MAAA;AAAA,MACX,UAAY,EAAA,GAAA;AAAA,MACZ,MAAQ,EAAA,CAAA;AAAA,MACR,QAAU,EAAA;AAAA;AACZ,IACA,CAAE,EAAA;AACN","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport * as chrono from \"chrono-node\";\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n\nconst formatter = new Intl.NumberFormat(\"en-IN\", {\n  style: \"decimal\",\n  minimumFractionDigits: 0,\n  maximumFractionDigits: 2,\n});\n\nexport const amountFormatter = (value: string | number | undefined) => {\n  if (value || value === 0) {\n    return formatter.format(value as number);\n  }\n  return \"\";\n};\n\nexport const parseDateTime = (str: Date | string) => {\n  if (str instanceof Date) return str;\n  return chrono.parseDate(str);\n};\n\nexport const formatDateTime = (datetime: Date | string) => {\n  return new Date(datetime).toLocaleTimeString(\"en-US\", {\n    month: \"short\",\n    day: \"numeric\",\n    year: \"numeric\",\n    hour: \"numeric\",\n    minute: \"numeric\",\n    hour12: true,\n  });\n};\n","import * as React from \"react\";\nimport { cn } from \"../../../lib\";\n\nconst ShadcnTable = React.forwardRef<\n  HTMLTableElement,\n  React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n  <div ref={ref} className=\"relative w-full max-h-[500px] overflow-y-auto\">\n    <table\n      className={cn(\"w-full caption-bottom text-sm \", className)}\n      {...props}\n    />\n  </div>\n));\nShadcnTable.displayName = \"Table\";\n\nconst ShadcnTableHeader = React.forwardRef<\n  HTMLTableSectionElement,\n  React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n  <thead\n    ref={ref}\n    className={cn(\n      \"[&_tr]:brder-b sticky top-0 z-10 bg-winterWhisper rounded-s-3xl\",\n      className\n    )}\n    {...props}\n  />\n));\nShadcnTableHeader.displayName = \"TableHeader\";\n\nconst ShadcnTableBody = React.forwardRef<\n  HTMLTableSectionElement,\n  React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n  <tbody\n    ref={ref}\n    className={cn(\"[&_tr:last-child]:border-0\", className)}\n    {...props}\n  />\n));\nShadcnTableBody.displayName = \"TableBody\";\n\nconst ShadcnTableFooter = React.forwardRef<\n  HTMLTableSectionElement,\n  React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n  <tfoot\n    ref={ref}\n    className={cn(\n      \"border-t  font-medium [&>tr]:last:border-b-0 bottom-0 sticky bg-winterWhisper rounded-s-3xl z-20\",\n      className\n    )}\n    {...props}\n  />\n));\nShadcnTableFooter.displayName = \"TableFooter\";\n\nconst ShadcnTableRow = React.forwardRef<\n  HTMLTableRowElement,\n  React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n  <tr\n    ref={ref}\n    className={cn(\n      \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted w-full\",\n      className\n    )}\n    {...props}\n  />\n));\nShadcnTableRow.displayName = \"TableRow\";\n\nconst ShadcnTableHead = React.forwardRef<\n  HTMLTableCellElement,\n  React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n  <th\n    ref={ref}\n    className={cn(\n      \"h-12 text-left align-middle  text-muted-foreground [&:has([role=checkbox])]:pr-0  text-black relative  cursor-pointer border px-3  font-bold\",\n      className\n    )}\n    {...props}\n  />\n));\nShadcnTableHead.displayName = \"TableHead\";\n\nconst ShadcnTableCell = React.forwardRef<\n  HTMLTableCellElement,\n  React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n  <td\n    ref={ref}\n    className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pr-0\", className)}\n    {...props}\n  />\n));\nShadcnTableCell.displayName = \"TableCell\";\n\nconst ShadcnTableCaption = React.forwardRef<\n  HTMLTableCaptionElement,\n  React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n  <caption\n    ref={ref}\n    className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n    {...props}\n  />\n));\nShadcnTableCaption.displayName = \"TableCaption\";\n\nexport {\n  ShadcnTable,\n  ShadcnTableHeader,\n  ShadcnTableBody,\n  ShadcnTableFooter,\n  ShadcnTableHead,\n  ShadcnTableRow,\n  ShadcnTableCell,\n  ShadcnTableCaption,\n};\n","import React from \"react\";\nimport { cn } from \"../../../lib\";\n\nfunction Skeleton({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n  return (\n    <div\n      className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n      {...props}\n    />\n  );\n}\n\nexport { Skeleton };\n","import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n  const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n  React.useEffect(() => {\n    const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n    const onChange = () => {\n      setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n    }\n    mql.addEventListener(\"change\", onChange)\n    setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n    return () => mql.removeEventListener(\"change\", onChange)\n  }, [])\n\n  return !!isMobile\n}\n","import { ThemeConfig, theme } from \"antd\"\nimport type { AliasToken } from \"antd/es/theme/internal\"\n\n// NOTE: Destructuring properties from the `theme` object\nconst { defaultAlgorithm, darkAlgorithm, useToken } = theme\n\n// NOTE: CustomToken interface defining custom token properties\nexport interface CustomToken extends Partial<AliasToken> {\n  colorSecondary: string\n  primary1: string\n  primary2: string\n  primary3: string\n  primary4: string\n  primary5: string\n  primary6: string\n  primary7: string\n  primary8: string\n  primary9: string\n  primary10: string\n\n  secondary1: string\n  secondary2: string\n  secondary3: string\n  secondary4: string\n  secondary5: string\n  secondary6: string\n  secondary7: string\n  secondary8: string\n  secondary9: string\n  secondary10: string\n\n  info1: string\n  info2: string\n  info3: string\n  info4: string\n  info5: string\n  info6: string\n  info7: string\n  info8: string\n  info9: string\n  info10: string\n\n  warning1: string\n  warning2: string\n  warning3: string\n  warning4: string\n  warning5: string\n  warning6: string\n  warning7: string\n  warning8: string\n  warning9: string\n  warning10: string\n\n  error1: string\n  error2: string\n  error3: string\n  error4: string\n  error5: string\n  error6: string\n  error7: string\n  error8: string\n  error9: string\n  error10: string\n\n  success1: string\n  success2: string\n  success3: string\n  success4: string\n  success5: string\n  success6: string\n  success7: string\n  success8: string\n  success9: string\n  success10: string\n\n  neutral1: string\n  neutral2: string\n  neutral3: string\n  neutral4: string\n  neutral5: string\n  neutral6: string\n  neutral7: string\n  neutral8: string\n  neutral9: string\n  neutral10: string\n  neutral11: string\n  neutral12: string\n  neutral13: string\n\n  idk1: string\n\n  StormyNight: string\n  lightBorderWinterWhisper: string\n  winterWhisper: string\n  winterWhisperSecondary: string\n}\n\nexport type CustomTokenKey = keyof CustomToken\n\n// NOTE: CustomTheme interface extending ThemeConfig\nexport interface CustomTheme extends ThemeConfig {\n  token: CustomToken\n}\n\n// NOTE: Custom function to get the application theme based on isDarkMode\nexport const useGetAppTheme = (isDarkMode = false) => {\n  const { token } = useToken()\n\n  const customColor = {\n    // NOTE: Custom Colors\n    primary1: isDarkMode ? \"#f1eefd\" : \"#f1eefd\",\n    primary2: isDarkMode ? \"#DCD5FB\" : \"#DCD5FB\",\n    primary3: isDarkMode ? \"#C1B5F7\" : \"#C1B5F7\",\n    primary4: isDarkMode ? \"#A492F4\" : \"#A492F4\",\n    primary5: isDarkMode ? \"#8971F0\" : \"#8971F0\",\n    primary6: isDarkMode ? \"#6F52ED\" : \"#6F52ED\",\n    primary7: isDarkMode ? \"#5E46C9\" : \"#5E46C9\",\n    primary8: isDarkMode ? \"#4F3AA8\" : \"#4F3AA8\",\n    primary9: isDarkMode ? \"#3F2F87\" : \"#3F2F87\",\n    primary10: isDarkMode ? \"#32256B\" : \"#32256B\",\n\n    secondary1: isDarkMode ? \"#E8EAED\" : \"#E8EAED\",\n    secondary2: isDarkMode ? \"#C7CDD3\" : \"#C7CDD3\",\n    secondary3: isDarkMode ? \"#9BA5AF\" : \"#9BA5AF\",\n    secondary4: isDarkMode ? \"#6D7B8A\" : \"#6D7B8A\",\n    secondary5: isDarkMode ? \"#415367\" : \"#415367\",\n    secondary6: isDarkMode ? \"#172D46\" : \"#172D46\",\n    secondary7: isDarkMode ? \"#14263C\" : \"#14263C\",\n    secondary8: isDarkMode ? \"#102032\" : \"#102032\",\n    secondary9: isDarkMode ? \"#0D1A28\" : \"#0D1A28\",\n    secondary10: isDarkMode ? \"#0A141F\" : \"#0A141F\",\n\n    info1: isDarkMode ? \"#E6F7FC\" : \"#E6F7FC\",\n    info2: isDarkMode ? \"#C2EBF8\" : \"#C2EBF8\",\n    info3: isDarkMode ? \"#91DAF2\" : \"#91DAF2\",\n    info4: isDarkMode ? \"#5EC9EC\" : \"#5EC9EC\",\n    info5: isDarkMode ? \"#2EB9E6\" : \"#2EB9E6\",\n    info6: isDarkMode ? \"#00AAE1\" : \"#00AAE1\",\n    info7: isDarkMode ? \"#0091BF\" : \"#0091BF\",\n    info8: isDarkMode ? \"#0079A0\" : \"#0079A0\",\n    info9: isDarkMode ? \"#006180\" : \"#006180\",\n    info10: isDarkMode ? \"#004C65\" : \"#004C65\",\n\n    warning1: isDarkMode ? \"#FFFAE6\" : \"#FFFAE6\",\n    warning2: isDarkMode ? \"#FFF3C2\" : \"#FFF3C2\",\n    warning3: isDarkMode ? \"#FFE991\" : \"#FFE991\",\n    warning4: isDarkMode ? \"#FFDF5E\" : \"#FFDF5E\",\n    warning5: isDarkMode ? \"#FFD52E\" : \"#FFD52E\",\n    warning6: isDarkMode ? \"#FFCC00\" : \"#FFCC00\",\n    warning7: isDarkMode ? \"#D9AD00\" : \"#D9AD00\",\n    warning8: isDarkMode ? \"#B59100\" : \"#B59100\",\n    warning9: isDarkMode ? \"#917400\" : \"#917400\",\n    warning10: isDarkMode ? \"#735C00\" : \"#735C00\",\n\n    error1: isDarkMode ? \"#FEECEB\" : \"#FEECEB\",\n    error2: isDarkMode ? \"#FCD2CF\" : \"#FCD2CF\",\n    error3: isDarkMode ? \"#FAAEA9\" : \"#FAAEA9\",\n    error4: isDarkMode ? \"#F88980\" : \"#F88980\",\n    error5: isDarkMode ? \"#F6655A\" : \"#F6655A\",\n    error6: isDarkMode ? \"#F44336\" : \"#F44336\",\n    error7: isDarkMode ? \"#CF392E\" : \"#CF392E\",\n    error8: isDarkMode ? \"#AD3026\" : \"#AD3026\",\n    error9: isDarkMode ? \"#8B261F\" : \"#8B261F\",\n    error10: isDarkMode ? \"#6E1E18\" : \"#6E1E18\",\n\n    success1: isDarkMode ? \"#E6F6EE\" : \"#E6F6EE\",\n    success2: isDarkMode ? \"#C3E9D7\" : \"#C3E9D7\",\n    success3: isDarkMode ? \"#93D8B7\" : \"#93D8B7\",\n    success4: isDarkMode ? \"#60C695\" : \"#60C695\",\n    success5: isDarkMode ? \"#30B575\" : \"#30B575\",\n    success6: isDarkMode ? \"#03A557\" : \"#03A557\",\n    success7: isDarkMode ? \"#038C4A\" : \"#038C4A\",\n    success8: isDarkMode ? \"#02753E\" : \"#02753E\",\n    success9: isDarkMode ? \"#025E32\" : \"#025E32\",\n    success10: isDarkMode ? \"#014A27\" : \"#014A27\",\n\n    neutral1: isDarkMode ? \"#FFFFFF\" : \"#FFFFFF\",\n    neutral2: isDarkMode ? \"#FCFCFC\" : \"#FCFCFC\",\n    neutral3: isDarkMode ? \"#F5F5F5\" : \"#F5F5F5\",\n    neutral4: isDarkMode ? \"#F0F0F0\" : \"#F0F0F0\",\n    neutral5: isDarkMode ? \"#D9D9D9\" : \"#D9D9D9\",\n    neutral6: isDarkMode ? \"#BFBFBF\" : \"#BFBFBF\",\n    neutral7: isDarkMode ? \"#8C8C8C\" : \"#8C8C8C\",\n    neutral8: isDarkMode ? \"#595959\" : \"#595959\",\n    neutral9: isDarkMode ? \"#454545\" : \"#454545\",\n    neutral10: isDarkMode ? \"#262626\" : \"#262626\",\n    neutral11: isDarkMode ? \"#1F1F1F\" : \"#1F1F1F\",\n    neutral12: isDarkMode ? \"#141414\" : \"#141414\",\n    neutral13: isDarkMode ? \"#000000\" : \"#000000\",\n\n    idk1: isDarkMode ? \"#EEF1F6\" : \"#EEF1F6\",\n    StormyNight: isDarkMode ? \"#475467\" : \"#475467\",\n    lightBorderWinterWhisper: isDarkMode ? \"#D0D5DD\" : \"#D0D5DD\",\n    winterWhisper: isDarkMode ? \"#F9FAFB\" : \"#F9FAFB\",\n    winterWhisperSecondary: isDarkMode ? \"#667085\" : \"#667085\",\n  }\n  // NOTE: Custom theme object with modified properties\n  const customTheme: CustomTheme = {\n    ...theme,\n    algorithm: isDarkMode ? darkAlgorithm : defaultAlgorithm,\n    token: {\n      ...token,\n      motion: false,\n      fontFamily: \"'Inter', sans-serif\",\n      // todo - fontSize: 13.5,\n      colorPrimary: isDarkMode ? \"#4F3AA8\" : \"#4F3AA8\",\n      colorSecondary: isDarkMode ? \"#415367\" : \"#415367\",\n      colorSuccess: isDarkMode ? \"#03A557\" : \"#03A557\",\n      colorInfo: isDarkMode ? \"#00AAE1\" : \"#00AAE1\",\n      colorWarning: isDarkMode ? \"#FFCC00\" : \"#FFCC00\",\n      colorError: isDarkMode ? \"#F44336\" : \"#F44336\",\n      colorBgLayout: isDarkMode\n        ? customColor.winterWhisper\n        : customColor.winterWhisper,\n      colorBgBase: customColor.winterWhisper,\n      colorLink: isDarkMode ? \"#4F3AA8\" : \"#4F3AA8\",\n      screenXS: 280,\n      screenXSMax: 400,\n      screenXSMin: 280,\n      screenSM: 401,\n      screenSMMax: 767,\n      screenSMMin: 401,\n      screenMD: 768,\n      screenMDMax: 991,\n      screenMDMin: 768,\n      screenLG: 992,\n      screenLGMax: 1199,\n      screenLGMin: 992,\n      screenXL: 1200,\n      screenXLMax: 1599,\n      screenXLMin: 1200,\n      screenXXL: 1600,\n      screenXXLMin: 1600,\n      ...customColor,\n    },\n    components: {\n      Button: {\n        algorithm: true,\n        boxShadow: \"none\",\n        defaultShadow: \"none\",\n        primaryShadow: \"none\",\n        boxShadowSecondary: \"none\",\n        dangerShadow: \"none\",\n        boxShadowTertiary: \"none\",\n        colorError: customColor.error8,\n        fontWeight: 700,\n      },\n      Tabs: {\n        motion: true,\n        algorithm: true,\n      },\n      Radio: {\n        algorithm: true,\n      },\n      Segmented: {\n        algorithm: true,\n        borderRadius: 10,\n        itemColor: customColor.neutral11, // info - inactive tabs k text colors\n        itemHoverColor: customColor.neutral13,\n        itemSelectedBg: customColor.primary8, // info - seleted tab ka background color\n        itemSelectedColor: customColor.neutral3, // info - selected tab ka text color\n        colorBgLayout: customColor.winterWhisper, // info - selected tab container ka background color\n      },\n      Checkbox: {\n        algorithm: true,\n      },\n      Switch: {\n        algorithm: true,\n      },\n      Typography: {\n        algorithm: true,\n        fontSizeHeading1: 38,\n        fontSizeHeading4: 20,\n      },\n      Input: {\n        algorithm: true,\n        controlHeightSM: 30,\n        controlHeight: 32,\n        controlHeightLG: 46,\n        colorBgBase: \"#fff\",\n      },\n      Form: {\n        fontWeightStrong: 800,\n        labelColor: isDarkMode ? \"#454545\" : \"#454545\",\n      },\n      Select: {\n        algorithm: true,\n        controlHeightSM: 30,\n        controlHeight: 32,\n        controlHeightLG: 46,\n        colorBgBase: \"#fff\",\n      },\n      Notification: {\n        boxShadow: \"none\",\n      },\n      Table: {\n        headerBg: customColor.winterWhisper,\n        headerSplitColor: customColor.neutral5,\n        rowExpandedBg: customColor.winterWhisper,\n      },\n      Upload: {\n        colorBgBase: customColor.neutral4,\n        colorPrimary: customColor.primary3,\n      },\n      // Alert: { algorithm: true, motion: true },\n      // Badge: { algorithm: true },\n      // Card: { algorithm: true },\n      // Avatar: { algorithm: true },\n      // Collapse: { algorithm: true },\n      // Descriptions: { algorithm: true },\n      // Divider: { algorithm: true },\n      // Drawer: { algorithm: true },\n      // Dropdown: { algorithm: true },\n      // Empty: { algorithm: true },\n      // Flex: { algorithm: true },\n      // FloatButton: { algorithm: true },\n      // Grid: { algorithm: true },\n      // Image: { algorithm: true },\n      // DatePicker: { algorithm: true },\n      // Layout: { algorithm: true },\n      // List: { algorithm: true },\n      // Message: { algorithm: true, motion: true },\n      // App: { algorithm: true },\n      // Skeleton: { algorithm: true },\n      // Menu: { algorithm: true },\n      // Spin: { algorithm: true },\n      // Pagination: { algorithm: true },\n      // Popover: { algorithm: true },\n      // Popconfirm: { algorithm: true },\n      // TreeSelect: { algorithm: true },\n      // Space: { algorithm: true },\n      // Result: { algorithm: true },\n      // Tooltip: { algorithm: true },\n      // InputNumber: { algorithm: true },\n      // Tour: { algorithm: true },\n      // Statistic: { algorithm: true },\n      // BackTop: { algorithm: true },\n    },\n  }\n\n  return customTheme\n}\n\n// NOTE: Custom function to get the application theme token\nexport const useAppTheme = () => {\n  const { token } = useToken()\n  return token as CustomToken\n}\n","import { createStyles } from \"antd-style\"\nimport { useAppTheme } from \"~/theme\"\nimport { EIconButtonVariant } from \".\"\n\nexport interface Type {\n  buttonVariant: EIconButtonVariant\n  size: \"small\" | \"middle\" | \"large\" | \"extraLarge\"\n  wantHoverEffect?: boolean\n  blue?: \"#2341D8\"\n}\n\nexport const useStyles = ({ buttonVariant, size }: Type) => {\n  const token = useAppTheme()\n\n  const backgroundColor = {\n    default: token.neutral3,\n    transparent: \"transparent\",\n    primary: token.primary1,\n    success: token.success1,\n    error: token.error1,\n    warning: token.warning1,\n    info: token.info1,\n    blue: \"#2341D8\",\n  }\n  const backgroundHoverColor = {\n    blue: \"#2341D8\",\n    default: token.neutral4,\n    transparent: \"transparent\",\n    primary: token.primary2,\n    success: token.success2,\n    error: token.error2,\n    warning: token.warning2,\n    info: token.info2,\n  }\n\n  const color = {\n    default: token.neutral7,\n    transparent: token.neutral7,\n    primary: token.primary8,\n    success: token.success7,\n    error: token.error7,\n    warning: token.warning7,\n    blue: \"#FEFE\",\n    info: token.info7,\n  }\n\n  const colorHover = {\n    default: token.neutral6,\n    transparent: token.neutral6,\n    primary: token.primary4,\n    success: token.success4,\n    error: token.error4,\n    warning: token.warning4,\n    info: token.info4,\n    blue: \"#FEFE\",\n  }\n  const fontSize = {\n    small: \"22px !important\",\n    middle: \"36px !important\",\n    large: \"46px !important\",\n    extraLarge: \"54px !important\",\n  }\n\n  return createStyles((_, { buttonVariant, size }: Type) => ({\n    button: {\n      backgroundColor: `${backgroundColor[buttonVariant]} !important`,\n      color: `${color[buttonVariant]} !important`,\n      display: \"flex\",\n      alignItems: \"center\",\n      justifyContent: \"center\",\n      width: fontSize[size || \"small\"],\n      minWidth: fontSize[size || \"small\"],\n      height: fontSize[size || \"small\"],\n      \":hover\": {\n        border: `1px solid ${colorHover[buttonVariant]} !important`,\n        backgroundColor: `${backgroundHoverColor[buttonVariant]} !important`,\n      },\n    },\n  }))({ buttonVariant, size })\n}\n\nexport const useENoobButtonStyles = ({\n  buttonVariant,\n  size,\n  wantHoverEffect,\n}: Type) => {\n  const token = useAppTheme()\n\n  const backgroundColor = {\n    default: token.neutral3,\n    transparent: \"transparent\",\n    primary: token.primary2,\n    success: token.success2,\n    error: token.error2,\n    warning: token.warning2,\n    info: token.info2,\n    blue: \"#2341D8\",\n  }\n  const backgroundHoverColor = {\n    default: token.neutral4,\n    transparent: \"transparent\",\n    primary: token.primary2,\n    success: token.success2,\n    error: token.error2,\n    warning: token.warning2,\n    info: token.info2,\n    blue: \"#2341D8\",\n  }\n\n  const color = {\n    default: token.neutral8,\n    transparent: token.neutral8,\n    primary: token.primary8,\n    success: token.success8,\n    error: token.error8,\n    warning: token.warning8,\n    info: token.info8,\n    blue: \"#FEFE\",\n  }\n\n  const colorHover = {\n    default: token.neutral6,\n    transparent: token.neutral6,\n    primary: token.primary4,\n    success: token.success4,\n    error: token.error4,\n    warning: token.warning4,\n    info: token.info6,\n    blue: \"#FEFE\",\n  }\n\n  return createStyles((_, { buttonVariant }: Type) => ({\n    button: {\n      backgroundColor: `${backgroundColor[buttonVariant]} !important`,\n      color: `${color[buttonVariant]} !important`,\n      display: \"flex\",\n      alignItems: \"center\",\n      justifyContent: \"center\",\n      \":hover\": {\n        border: wantHoverEffect\n          ? `1px solid ${colorHover[buttonVariant]} !important`\n          : \"none !important\",\n        backgroundColor: wantHoverEffect\n          ? `${backgroundHoverColor[buttonVariant]} !important`\n          : \"none !important\",\n      },\n    },\n  }))({ buttonVariant, size })\n}\n\nexport const useButtonGroupStyles = () => {\n  const token = useAppTheme()\n\n  return createStyles(() => ({\n    button: {\n      fontWeight: \"500\",\n      \"&.ant-btn-default\": {\n        color: token.neutral7,\n        backgroundColor: token.colorWhite,\n      },\n    },\n  }))()\n}\n","import React from \"react\";\nimport { Button, ButtonProps, ConfigProvider, Space } from \"antd\";\nimport { useButtonGroupStyles, useENoobButtonStyles, useStyles } from \"./style\";\nimport { RefObject, useState } from \"react\";\nimport { EIcon } from \"..\";\nimport { useAppTheme } from \"~/theme\";\nimport { WaveConfig } from \"antd/es/config-provider/context\";\n\n// Note: Define interface EButtonProps that extends ButtonProps\nexport interface EButtonProps extends ButtonProps {\n  ref?: RefObject<HTMLDivElement>;\n}\n\n// Note: Define EButton functional component that takes EButtonProps as props\nexport const EButton: React.FC<EButtonProps> = ({ ref, ...props }) => {\n  return (\n    // Note: Render Button component with styles from props and additional props passed down\n    <Button\n      {...props}\n      style={{\n        display: \"flex\",\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        ...props?.style,\n      }}\n    />\n  );\n};\n\n// Note: Define EIconButtonVariant type with specific string values\nexport type EIconButtonVariant =\n  | \"default\"\n  | \"transparent\"\n  | \"primary\"\n  | \"success\"\n  | \"error\"\n  | \"warning\"\n  | \"info\"\n  | \"blue\";\n\n// Note: Define interface EIconButtonProps that extends ButtonProps and includes a variant prop\n\ninterface EIconButtonProps extends EButtonProps {\n  eIconButtonVariant?: EIconButtonVariant;\n}\n\n// Note: Define EIconButtonIcon functional component that takes EIconButtonProps as props and renders EButton component with specific styles\nexport const EIconButtonIcon: React.FC<EIconButtonProps> = ({\n  eIconButtonVariant = \"default\",\n  shape = \"round\",\n  size = \"small\",\n  ...props\n}) => {\n  const { styles } = useStyles({ buttonVariant: eIconButtonVariant, size });\n  return (\n    <EButton size={size} shape={shape} className={styles.button} {...props} />\n  );\n};\n\ninterface ENoobButtonProps extends EButtonProps {\n  wantHoverEffect?: boolean;\n  buttonVariant?: EIconButtonVariant;\n}\n\nexport const ENoobButton: React.FC<ENoobButtonProps> = ({\n  buttonVariant = \"default\",\n  shape = \"default\",\n  size = \"small\",\n  wantHoverEffect = false,\n  ...props\n}) => {\n  const { styles } = useENoobButtonStyles({\n    buttonVariant,\n    size,\n    wantHoverEffect,\n  });\n  return <EButton shape={shape} className={styles.button} {...props} />;\n};\n\n// Note: Define interface EButtonGroupOptions for button group options\nexport interface EButtonGroupOptions {\n  value: string | number;\n  label: string | React.ReactNode;\n}\n\n// Note: Define interface EButtonGroupProps that extends ButtonProps and includes options, value, and onChange props\nexport interface EButtonGroupProps extends Omit<ButtonProps, \"onChange\"> {\n  options: EButtonGroupOptions[];\n  onChange: (value: string | number) => void;\n}\n\n// Note: Define EButtonGroup functional component that takes EButtonGroupProps as props and renders a group of buttons based on the options provided\nexport const EButtonGroup: React.FC<EButtonGroupProps> = ({\n  options,\n  value,\n  onChange = () => null,\n  size,\n  ...rest\n}) => {\n  // Note: Use useState hook to manage the selected button value\n  const [selected, setSelected] = useState(value || options?.[0]?.value);\n\n  // Note: Use useButtonGroupStyles hook to get styles and classNames for button group\n  const { styles, cx } = useButtonGroupStyles();\n\n  return (\n    // Note: Render a compact Space component to create space between buttons\n    <Space.Compact>\n      {/* Note: Map through options and render Button components based on the selected value */}\n      {options?.map((item, key) => (\n        <Button\n          {...rest}\n          className={cx(rest.className, styles.button)}\n          key={key}\n          type={selected === item?.value ? \"primary\" : \"default\"}\n          value={item?.value}\n          onClick={() => {\n            // Note: Update selected value and call the onChange callback with the selected value\n            setSelected(item?.value);\n            onChange(item?.value);\n          }}\n        >\n          {item?.label}\n        </Button>\n      ))}\n    </Space.Compact>\n  );\n};\n\nexport interface EButtonIconProps extends EButtonProps {\n  icon?: string;\n  title?: string;\n}\n\nexport const EIconButton: React.FC<EButtonIconProps> = ({\n  icon,\n  title,\n  ...rest\n}) => {\n  return (\n    <EButton {...(rest as EButtonProps)}>\n      <EIcon\n        fontSize={18}\n        style={{ marginRight: \"4px\" }}\n        icon={icon as string}\n      />\n      {title}\n    </EButton>\n  );\n};\n\nexport const EButtonTransparent: React.FC<EButtonProps> = ({\n  ref,\n  ...props\n}) => {\n  const token = useAppTheme();\n  return (\n    // Note: Render Button component with styles from props and additional props passed down\n    <Button\n      style={{\n        display: \"flex\",\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        backgroundColor: \"#fff\",\n        border: `1px solid ${token.lightBorderWinterWhisper}`,\n        ...props?.style,\n      }}\n      {...props}\n    />\n  );\n};\n\ninterface TableDeleteButtonProps extends ButtonProps {\n  indicator?: number;\n}\n\nexport const TableDeleteButton: React.FC<TableDeleteButtonProps> = ({\n  indicator,\n  ...rest\n}) => {\n  return (\n    <EButton type=\"primary\" danger size=\"middle\" {...rest}>\n      <EIcon icon={\"ic:baseline-delete\"} style={{ marginRight: 4 }} />\n      Delete ({indicator})\n    </EButton>\n  );\n};\n\nexport const TableClearButton: React.FC<TableDeleteButtonProps> = ({\n  indicator,\n  ...rest\n}) => {\n  return (\n    <EButton\n      type=\"link\"\n      style={{ fontWeight: \"500\", display: \"flex\", alignItems: \"center\" }}\n      {...rest}\n    >\n      Clear({indicator})\n    </EButton>\n  );\n};\n\nexport const EThirdPartyLogInButtonProps: React.FC<ButtonProps> = ({\n  children,\n  ...rest\n}) => {\n  const token = useAppTheme();\n  return (\n    <EButton\n      style={{\n        width: \"100%\",\n        color: token.neutral8,\n        fontWeight: \"500\",\n        marginBottom: 14,\n      }}\n      {...rest}\n    >\n      {children}\n    </EButton>\n  );\n};\n\n// note Shake Effect\nconst showShakeEffectConfig: WaveConfig[\"showEffect\"] = (\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  node: any,\n  { component }\n) => {\n  if (component !== \"Button\") {\n    return;\n  }\n\n  const seq = [0, -15, 15, -5, 5, 0];\n  const itv = 10;\n\n  let steps = 0;\n\n  function loop() {\n    cancelAnimationFrame(node.effectTimeout);\n\n    node.effectTimeout = requestAnimationFrame(() => {\n      const currentStep = Math.floor(steps / itv);\n      const current = seq[currentStep];\n      const next = seq[currentStep + 1];\n\n      if (!next) {\n        node.style.transform = \"\";\n        node.style.transition = \"\";\n        return;\n      }\n\n      const angle = current + ((next - current) / itv) * (steps % itv);\n\n      node.style.transform = `rotate(${angle}deg)`;\n      node.style.transition = \"none\";\n\n      steps += 1;\n      loop();\n    });\n  }\n\n  loop();\n};\n\nexport const ShakeButtonWrapper = ({\n  showShakeEffect = true,\n  showEffect = showShakeEffectConfig,\n  children,\n  ...wave\n}: ShakeButtonProps) => {\n  return (\n    <ConfigProvider\n      wave={{\n        showEffect: showShakeEffect ? showEffect : undefined,\n        ...wave,\n      }}\n    >\n      {children}\n    </ConfigProvider>\n  );\n};\ninterface ShakeButtonProps extends WaveConfig {\n  buttonProps?: ButtonProps;\n  children: React.ReactNode;\n  showShakeEffect?: boolean;\n}\n\nexport const ShakeButton = ({\n  showShakeEffect = true,\n  showEffect = showShakeEffectConfig,\n  children,\n  buttonProps,\n  ...wave\n}: ShakeButtonProps) => {\n  return (\n    <ShakeButtonWrapper showShakeEffect={showShakeEffect} {...wave}>\n      <EButton type=\"primary\" {...buttonProps}>\n        {children}\n      </EButton>\n    </ShakeButtonWrapper>\n  );\n};\n","import React from \"react\"\nimport { ProFormCheckbox } from \"@ant-design/pro-components\"\nimport { CheckboxProps } from \"antd\"\n\nexport interface ECheckboxProps extends CheckboxProps {\n  label?: string | React.ReactNode\n  helperMessage?: string\n  error?: boolean\n  errorMessage?: string\n}\n\nexport const ECheckbox: React.FC<ECheckboxProps> = ({\n  label,\n  error,\n  ...rest\n}) => {\n  return <ProFormCheckbox {...rest}>{label}</ProFormCheckbox>\n}\n","import React, { ReactNode } from \"react\"\nimport { Typography } from \"antd\"\nimport { TitleProps } from \"antd/es/typography/Title\"\n\ninterface TitleTypographyProps extends TitleProps {\n  children: ReactNode\n  color?: string\n  fontWeight?:\n  | \"100\"\n  | \"200\"\n  | \"300\"\n  | \"400\"\n  | \"500\"\n  | \"600\"\n  | \"700\"\n  | \"800\"\n  | \"900\"\n  textAlign?: \"center\" | \"left\" | \"right\"\n}\n\nexport const EHeading: React.FC<TitleTypographyProps> = ({\n  children,\n  fontWeight = \"400\",\n  textAlign = \"left\",\n  color,\n  ...rest\n}) => {\n  const renderTypography = () => {\n    return (\n      <Typography.Title\n        {...rest}\n        style={{ color, fontWeight, textAlign, ...rest.style }}\n      >\n        {children}\n      </Typography.Title>\n    )\n  }\n\n  return <>{renderTypography()}</>\n}\n","import React, { ReactNode } from \"react\"\nimport { Typography } from \"antd\"\nimport { ParagraphProps } from \"antd/es/typography/Paragraph\"\ninterface ParagraphTypographyProps extends ParagraphProps {\n  children: ReactNode\n  color?: string\n  fontWeight?:\n    | \"100\"\n    | \"200\"\n    | \"300\"\n    | \"400\"\n    | \"500\"\n    | \"600\"\n    | \"700\"\n    | \"800\"\n    | \"900\"\n  textAlign?: \"center\" | \"left\" | \"right\"\n}\n\nexport const EParagraph: React.FC<ParagraphTypographyProps> = ({\n  children,\n  fontWeight = \"400\",\n  textAlign = \"left\",\n  color,\n  ...rest\n}) => {\n  const renderTypography = () => {\n    return (\n      <Typography.Paragraph\n        {...rest}\n        style={{ color, fontWeight, textAlign, ...rest.style }}\n      >\n        {children}\n      </Typography.Paragraph>\n    )\n  }\n\n  return <>{renderTypography()}</>\n}\n","import React, { ReactNode } from \"react\";\nimport { Col, Flex, Image, ImageProps, Row, Typography } from \"antd\";\nimport { TextProps } from \"antd/es/typography/Text\";\nimport { useAppTheme } from \"~/theme\";\nimport { EDividerWithNoStyle, EParagraph, ETooltip } from \"~/components/common\";\nimport { jsx } from \"react/jsx-runtime\";\n\nexport interface TextTypographyProps extends TextProps {\n  children: ReactNode;\n  color?: string;\n  fontWeight?:\n    | \"100\"\n    | \"200\"\n    | \"300\"\n    | \"400\"\n    | \"500\"\n    | \"600\"\n    | \"700\"\n    | \"800\"\n    | \"900\";\n  textAlign?: \"center\" | \"left\" | \"right\";\n  fontSize?: string;\n}\n\nexport const EText: React.FC<TextTypographyProps> = ({\n  children,\n  fontWeight = \"400\",\n  textAlign = \"left\",\n  fontSize = \"14px\",\n  color,\n  ...rest\n}) => {\n  const renderTypography = () => {\n    return (\n      <Typography.Text\n        {...rest}\n        style={{\n          color,\n          fontWeight,\n          textAlign,\n          fontSize,\n          ...rest?.style,\n        }}\n      >\n        {children}\n      </Typography.Text>\n    );\n  };\n\n  return <>{renderTypography()}</>;\n};\n\nexport const ETextForSearchFilterDropDown: React.FC<TextTypographyProps> = ({\n  children,\n  fontWeight = \"500\",\n  textAlign,\n  fontSize = \"12px\",\n  color,\n  ...rest\n}) => {\n  const token = useAppTheme();\n  const renderTypography = () => {\n    return (\n      <Typography.Text\n        style={{\n          color: token.neutral6,\n          fontWeight,\n          textAlign,\n          fontSize,\n          ...rest?.style,\n        }}\n        {...rest}\n      >\n        {children}\n      </Typography.Text>\n    );\n  };\n\n  return <>{renderTypography()}</>;\n};\n\ninterface SearchFilterTypographyProps extends TextProps {\n  children: React.ReactNode;\n  color?: string;\n  fontWeight?:\n    | \"100\"\n    | \"200\"\n    | \"300\"\n    | \"400\"\n    | \"500\"\n    | \"600\"\n    | \"700\"\n    | \"800\"\n    | \"900\";\n  textAlign?: \"center\" | \"left\" | \"right\";\n  fontSize?: string;\n  marginLeft?: string;\n}\n\nexport const ETextForSearchFilterLabel: React.FC<\n  SearchFilterTypographyProps\n> = ({\n  children,\n  fontWeight = \"500\",\n  fontSize = \"13px\",\n  color,\n  marginLeft = \"2px\",\n  ...rest\n}) => {\n  const token = useAppTheme();\n  const renderTypography = () => {\n    return (\n      <Typography.Text\n        style={{\n          color: token.neutral7,\n          fontWeight,\n          fontSize,\n          marginLeft,\n          ...rest?.style,\n        }}\n        {...rest}\n      >\n        {children}\n      </Typography.Text>\n    );\n  };\n\n  return <>{renderTypography()}</>;\n};\n\ninterface VerticalTextStyles {\n  heading?: React.CSSProperties;\n  desc?: React.CSSProperties;\n  divider?: React.CSSProperties;\n}\nexport const VerticalText: React.FC<{\n  heading: string;\n  align?: \"center\" | \"left\" | \"right\";\n  desc?: string;\n  divider?: boolean;\n  colon?: boolean;\n  vertical?: boolean;\n  headingProps?: TextTypographyProps;\n  styles?: VerticalTextStyles;\n}> = ({\n  heading,\n  desc,\n  vertical = true,\n  divider = true,\n  colon = false,\n  align = \"center\",\n  styles,\n  headingProps,\n}) => {\n  const token = useAppTheme();\n  const colonMark = colon ? \":\" : undefined;\n  return (\n    <Flex>\n      <Flex\n        vertical={vertical}\n        gap={vertical ? 0 : 14}\n        justify={vertical ? \"center\" : \"flex-start\"}\n        align=\"center\"\n        flex={1}\n        style={{\n          textAlign: align,\n        }}\n      >\n        <EText\n          color={token.neutral7}\n          fontSize=\"12px\"\n          style={styles?.heading}\n          {...headingProps}\n        >\n          {heading} {colonMark}\n        </EText>\n        {typeof desc === \"string\" ? (\n          <EParagraph\n            ellipsis={{\n              rows: 2,\n              tooltip: desc,\n            }}\n            style={{\n              fontSize: \"14px\",\n              fontWeight: \"500\",\n              ...styles?.desc,\n            }}\n            color={token.neutral9}\n          >\n            {desc}\n          </EParagraph>\n        ) : (\n          desc\n        )}\n      </Flex>\n      {divider && (\n        <EDividerWithNoStyle\n          type=\"vertical\"\n          orientation=\"right\"\n          style={{\n            height: \"36px\",\n            fontWeight: 800,\n            ...styles?.divider,\n          }}\n        />\n      )}\n    </Flex>\n  );\n};\ninterface Styles {\n  img: React.CSSProperties;\n}\n\nexport const TextWithIcon: React.FC<{\n  img?: string | React.ReactNode;\n  text: string | React.ReactNode;\n  infoText?: string;\n  ellipsisRows?: number;\n  textMaxWidth?: number;\n  styles?: Styles;\n  imgProps?: ImageProps;\n}> = ({\n  img,\n  text,\n  infoText,\n  ellipsisRows = 1,\n  textMaxWidth = 120,\n  styles,\n  imgProps,\n}) => {\n  const token = useAppTheme();\n  return (\n    <Flex gap={4} align=\"center\" justify=\"flex-start\">\n      <ETooltip title={infoText}>\n        {typeof img === \"string\" ? (\n          <Image\n            preview={false}\n            src={img}\n            wrapperStyle={{\n              ...imgProps?.wrapperStyle,\n\n              display: \"inline-flex\",\n            }}\n            style={styles?.img}\n            height={16}\n            {...imgProps}\n            loading=\"lazy\"\n          />\n        ) : (\n          img\n        )}\n      </ETooltip>\n      {typeof text === \"string\" ? (\n        <EParagraph\n          style={{\n            height: \"100%\",\n            marginBottom: 0,\n            maxWidth: textMaxWidth,\n            fontSize: 14,\n            color: token.neutral9,\n            fontWeight: \"500\",\n          }}\n          ellipsis={{\n            rows: ellipsisRows,\n            tooltip: text,\n          }}\n        >\n          {text}\n        </EParagraph>\n      ) : (\n        text\n      )}\n    </Flex>\n  );\n};\n\nexport interface BaseHeaderProps {\n  heading: string;\n  subHeading: string;\n  extra?: React.ReactNode;\n}\nexport const Header: React.FC<BaseHeaderProps> = ({\n  heading,\n  subHeading,\n  extra,\n}) => {\n  const token = useAppTheme();\n  return (\n    <Flex justify=\"space-between\">\n      <Flex vertical gap={4}>\n        <EText fontWeight=\"600\">{heading}</EText>\n        <EParagraph\n          style={{\n            maxWidth: 900,\n          }}\n          ellipsis={{\n            rows: 2,\n          }}\n          fontWeight=\"500\"\n          color={token.neutral7}\n        >\n          {subHeading}\n        </EParagraph>\n      </Flex>\n\n      {extra && extra}\n    </Flex>\n  );\n};\n","import React from \"react\";\nimport { Divider, DividerProps } from \"antd\";\nimport { EText } from \"~/components/common/Typography\";\nimport { useAppTheme } from \"~/theme\";\nimport { TextProps } from \"antd/es/typography/Text\";\n\nexport interface EDividerProps extends DividerProps {\n  children?: React.ReactNode;\n  marginTop?: number | string;\n  marginBottom?: number | string;\n  marginLeft?: number | string;\n  marginRight?: number | string;\n}\n\nexport const EDivider: React.FC<EDividerProps> = ({\n  marginTop = 24,\n  marginBottom = 24,\n  children,\n  ...rest\n}) => {\n  return (\n    <Divider style={{ marginTop, marginBottom, ...rest?.style }} {...rest}>\n      {children}\n    </Divider>\n  );\n};\n\nexport const EFullDivider: React.FC<EDividerProps> = ({\n  children,\n  ...rest\n}) => {\n  return (\n    <div>\n      <Divider\n        {...rest}\n        style={{\n          marginInline: \"-24px\",\n          marginTop: \"0\",\n          width: \"calc(100% + 48px)\",\n        }}\n      >\n        {children}\n      </Divider>\n    </div>\n  );\n};\n\nexport const EDividerWithNoStyle: React.FC<EDividerProps> = ({\n  marginTop = 6,\n  marginBottom = 6,\n  children,\n  ...rest\n}) => {\n  return (\n    <Divider style={{ marginTop, marginBottom, ...rest?.style }} {...rest}>\n      {children}\n    </Divider>\n  );\n};\n\ninterface DividerWithTextStyle {\n  dividerStyles?: React.CSSProperties;\n  textStyles?: React.CSSProperties;\n}\ninterface DividerWithTextProps {\n  dividerProps?: EDividerProps;\n  ghost?: boolean;\n  textProps?: TextProps;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  children?: any;\n  styles?: DividerWithTextStyle;\n}\n\nexport const EDividerWithText: React.FC<DividerWithTextProps> = ({\n  dividerProps,\n  textProps,\n  styles,\n  ghost = false,\n  children,\n}) => {\n  const token = useAppTheme();\n  return (\n    <EDivider\n      orientation=\"left\"\n      style={{\n        borderColor: token.neutral5,\n        fontWeight: \"500\",\n        margin: ghost ? 0 : styles?.dividerStyles?.margin,\n        ...styles?.dividerStyles,\n      }}\n      {...dividerProps}\n    >\n      {children && (\n        <EText\n          fontWeight=\"500\"\n          color={token.neutral6}\n          style={{\n            ...styles?.textStyles,\n          }}\n          {...textProps}\n        >\n          {children}\n        </EText>\n      )}\n    </EDivider>\n  );\n};\n","import React from \"react\"\nimport { Tooltip } from \"antd\"\nimport { TooltipPropsWithOverlay } from \"antd/es/tooltip\"\n\nexport interface ETooltipProps extends TooltipPropsWithOverlay {}\n\nexport const ETooltip: React.FC<ETooltipProps> = ({ ...rest }) => {\n  return (\n    <div>\n      <Tooltip {...rest} />\n    </div>\n  )\n}\n","import React from \"react\"\nimport { Popover, PopoverProps } from \"antd\"\n\nexport interface EPopoverProps extends PopoverProps {}\n\nexport const EPopover: React.FC<EPopoverProps> = ({ ...rest }) => {\n  return (\n    <div>\n      <Popover {...rest} />\n    </div>\n  )\n}\n","import { createStyles } from \"antd-style\";\n\nexport const useStyles = () => {\n  return createStyles((_) => ({\n    tabWrapper: {\n      \"& .ant-tabs-tab-btn\": {\n        fontWeight: 500\n      }\n    },\n  }))();\n};\n","import React from \"react\"\nimport { Tabs, TabsProps } from \"antd\"\nimport { useStyles } from \"./style\"\n\n// Note: Defining the interface for ETabProps, extending TabsProps\nexport interface ETabProps extends TabsProps { }\n\n// Note: Functional component ETab that accepts ETabProps as its props\nexport const ETab: React.FC<ETabProps> = ({ ...rest }) => {\n  const { styles } = useStyles()\n  return (\n    <>\n      <Tabs className={styles.tabWrapper} {...rest} />\n    </>\n  )\n}\n","import React from \"react\"\n\n// Note: Import DatePicker and PickerDateProps from 'antd' module\nimport { DatePicker, DatePickerProps } from \"antd\"\n\n// Note: Import Dayjs type from 'dayjs' module\nimport type { Dayjs } from \"dayjs\"\n\n// Note: Define interface EDatePickerProps that extends PickerDateProps with Dayjs type\nexport interface EDatePickerProps extends DatePickerProps<Dayjs> { }\n\n// Note: Define EDatePicker functional component that takes EDatePickerProps as props and renders a DatePicker component\nexport const EDatePicker: React.FC<EDatePickerProps> = ({ ...rest }) => {\n  return (\n    <div>\n      {/* Note: Render DatePicker component with additional props passed down */}\n      <DatePicker {...rest} />\n    </div>\n  )\n}\n","import React from \"react\"\nimport { Icon, IconProps } from \"@iconify/react\"\nimport { useAppTheme } from \"~/theme\"\n\nexport interface EIconProps extends IconProps {}\n\nexport const EIcon: React.FC<EIconProps> = ({ ...rest }) => {\n  return <Icon {...rest} />\n}\n\nexport interface EPrimaryIconProps extends IconProps {\n  child?: boolean\n  isActive?: boolean\n}\n\nexport const EPrimaryIcon: React.FC<EPrimaryIconProps> = ({\n  child = false,\n  isActive = false,\n  ...rest\n}) => {\n  const token = useAppTheme()\n  return (\n    <Icon\n      color={isActive ? token.primary7 : token.neutral7}\n      fontSize={16}\n      {...rest}\n      style={{ ...rest?.style }}\n    />\n  )\n}\n","import logo from \"./images/logo.jpg\"\nimport logoFull from \"./images/logo.svg\"\nimport uploadProfile from \"./images/upload_profile.svg\"\nimport uploadImg from \"./images/uploadImg.svg\"\nimport resendEmail from \"./images/resend-email.svg\"\nimport resetPasswordSuccess from \"./images/reset-password-success.svg\"\nimport welcome from \"./images/welcome.svg\"\nimport upload_company from \"./images/upload_company.svg\"\nimport defaultAvatar from \"./images/defaultAvatar.svg\"\nimport noDataImg from \"./images/noDataImg.svg\"\nimport organization from \"./images/organization.svg\"\nimport hita from \"./images/hita.png\"\nimport DashboardIconSidebar from \"./images/dashboard-icon-sidebar.png\"\nimport userIconSidebar from \"./images/user-icon-sidebar.png\"\nimport settingIconSidebar from \"./images/setting-icon-sidebar.png\"\nimport suitcaseIconSidebar from \"./images/suitcase-icon-sidebar.png\"\nimport processIconSidebar from \"./images/proccess-icon-sidebar.png\"\nimport importIconSidebar from \"./images/import-icon-sidebar.png\"\nimport filler from \"./images/filler.svg\"\n\nexport const assets = {\n  logo,\n  logoFull,\n  uploadProfile,\n  uploadImg,\n  upload_company,\n  resendEmail,\n  resetPasswordSuccess,\n  welcome,\n  defaultAvatar,\n  noDataImg,\n  organization,\n  hita,\n  DashboardIconSidebar,\n  userIconSidebar,\n  settingIconSidebar,\n  suitcaseIconSidebar,\n  processIconSidebar,\n  importIconSidebar,\n  filler,\n}\n","import React from \"react\";\nimport { Flex, Image } from \"antd\";\nimport { EHeading } from \"..\";\nimport { useAppTheme } from \"~/theme\";\nimport { assets } from \"~/assets/index\";\n\n// Note: Defining the interface for NoDataProps\nexport interface NoDataProps {\n  width?: string;\n  height?: string;\n  style?: React.CSSProperties;\n}\n\n// Note: Functional component NoData that accepts NoDataProps as its props\nexport const NoData: React.FC<NoDataProps> = ({\n  width = \"100%\",\n  height = \"100%\",\n  style,\n}) => {\n  // Note: Retrieving the theme token using the useAppTheme hook\n  const token = useAppTheme();\n\n  // Note: Returning a Flex component with centered content and custom styles\n  return (\n    <Flex\n      justify=\"center\"\n      align=\"center\"\n      gap={41}\n      vertical\n      style={{ minHeight: 243, width, height, ...style }}\n    >\n      {/* Note: Displaying the 'noDataImg' from the 'assets' module */}\n      <Image\n        src={assets.noDataImg}\n        preview={false}\n        style={{ width: 110, height: 110 }}\n      />\n\n      {/* Note: Displaying a heading indicating 'No data found' with specified styles */}\n      <EHeading\n        level={3}\n        fontWeight=\"500\"\n        color={token.neutral7}\n        style={{ marginLeft: 20 }}\n      >\n        No data found\n      </EHeading>\n    </Flex>\n  );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ProFieldValueEnumType } from \"@ant-design/pro-components\";\nimport {\n  IconClockCancel,\n  IconClockCheck,\n  IconUserCancel,\n} from \"@tabler/icons-react\";\nimport { Cascader } from \"antd\";\nimport { GetProp } from \"antd/lib\";\n\nexport const HEADER_HEIGHT = 64;\nexport const COMPANY_NAME = \"HITA\";\nexport const PRODUCT_NAME = \"EForm\";\nexport const MAIN_SIDEBAR_WIDTH = 64;\nexport const SECONDARY_SIDEBAR_WIDTH = 240;\nexport const DETAIL_PAGE_SIDEBAR_WIDTH = 290;\nexport const FullColumnWIdth = \"100%\" as \"xl\";\nexport const LOGOUT_ERROR_CODE = 777;\n\nexport const UNKNOWN_ERROR =\n  \"Unknown error occurred! Please contact to server admin\";\n\n// eslint-disable-next-line no-useless-escape\nexport const passwordRegex = /^[a-zA-Z0-9_.\\-:,!\\@#\\$\\%\\^\\&\\*\\_=+\\s]+$/;\nexport const gstRegex =\n  /^\\d{2}[A-Z]{5}\\d{4}[A-Z]{1}[A-Z\\d]{1}[Z]{1}[A-Z\\d]{1}$/;\nexport const panRegex = /(^([a-zA-Z]{5})([0-9]{4})([a-zA-Z]{1})$)/;\nexport const aadharRegex = /^[2-9]{1}[0-9]{3}[0-9]{4}[0-9]{4}$/;\nexport const pincodeRegex = /^[1-9]{1}[0-9]{2}\\s{0,1}[0-9]{3}$/;\nexport const phoneRegex =\n  /^(?:(?:\\+|0{0,2})91(\\s*)?|[0]?)?([6789]\\d{2}([ -]?)\\d{3}([ -]?)\\d{4})$/;\n\nexport const emailRegex =\n  /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9\\s]+\\.)+[a-zA-Z]{2,}))$/;\n\nexport const nameRegex = /^[a-zA-Z][a-zA-Z ]*$/;\nexport const drivingLicenseRegex =\n  /^(([A-Z]{2}[0-9]{2})( )|([A-Z]{2}-[0-9]{2}))((19|20)[0-9][0-9])[0-9]{7}$/;\nexport const websiteRegex =\n  /^((ftp|http|https):\\/\\/)?(www.)?(?!.*(ftp|http|https|www.))[a-zA-Z0-9_-]+(\\.[a-zA-Z]+)+((\\/)[\\w#]+)*(\\/\\w+\\?[a-zA-Z0-9_]+=\\w+(&[a-zA-Z0-9_]+=\\w+)*)?\\/?$/;\n\nexport const COMPANY_TYPE_OPTIONS = [\n  { value: \"Associates of person\", label: \"Associates of person\" },\n  { value: \"Company\", label: \"Company\" },\n  { value: \"Division\", label: \"Division\" },\n  { value: \"Hindu undivided family\", label: \"Hindu undivided family\" },\n  {\n    value: \"Limited liability partnership\",\n    label: \"Limited liability partnership\",\n  },\n  { value: \"Partnership firm\", label: \"Partnership firm\" },\n  { value: \"Proprietorship\", label: \"Proprietorship\" },\n];\n\nexport const COMPANY_TYPE_ENUM = {\n  ASSOCIATES_OF_PERSON: { text: \"Associates of person\" },\n  COMPANY: { text: \"Company\" },\n  DIVISION: { text: \"Division\" },\n  HINDU_UNDIVIDED_FAMILY: { text: \"Hindu undivided family\" },\n  LIMITED_LIABILITY_PARTNERSHIP: { text: \"Limited liability partnership\" },\n  PARTNERSHIP_FIRM: { text: \"Partnership firm\" },\n  PROPRIETORSHIP: { text: \"Proprietorship\" },\n};\n\nexport const USER_TYPE_OPTIONS = [\n  { label: \"Admin\", value: \"ADMIN\" },\n  { label: \"Regular\", value: \"REGULAR\" },\n];\n\nexport const ACTIVE_USER_TAB = \"1\";\nexport const INACTIVE_USER_TAB = \"2\";\nexport const INVITED_USER_TAB = \"3\";\n\nexport const ADD_COMPANY_DETAIL_TAB = \"0\";\nexport const ADD_OFFICIAL_ADDRESS_TAB = \"1\";\nexport const ADD_WORK_ADDRESS_TAB = \"2\";\nexport const ADD_TDS_USER_DETAIL_TAB = \"3\";\n\nexport const ACTIVE = \"ACTIVE\";\nexport const DELETED = \"DELETED\";\nexport const BLOCKED = \"BLOCKED\";\nexport const PENDING = \"PENDING\";\n\nexport const PAGE_SIZE_OPTIONS = [10, 25, 50, 100] as number[];\nexport const DEFAULT_PAGE_NO = 1;\nexport const DEFAULT_PER_PAGE_VALUE = PAGE_SIZE_OPTIONS[0];\n\nexport const ALL_CONTACTS = \"All Contacts\";\nexport const ALL_LEADS = \"All Leads\";\nexport const EVERYONE = \"Everyone\";\nexport const ALL_ORGANIZATIONS = \"All Organizations\";\nexport const ALL_PRIORITIES = \"All Priorities\";\n\nexport const CLASS_NAME_FOR_DISPLAY_NONE_WHEN_PRINT = \"displayNone\";\n\nexport const INDEX_COLUMN = [\n  {\n    dataIndex: \"index\",\n    valueType: \"indexBorder\",\n    width: 35,\n    hideInSetting: true,\n    hideInDescriptions: true,\n    hideInSearch: true,\n    hideInForm: true,\n  },\n];\n\nexport const FILE_ICON = {\n  PDF: \"material-symbols:picture-as-pdf-outline\",\n  IMAGE: \"material-symbols:image-outline\",\n  DOC: \"material-symbols:description-outline\",\n};\n\nexport type FileIconType = keyof typeof FILE_ICON;\n\nexport const FILE_ICON_PRIMARY_COLOR = {\n  IMAGE: \"warning6\",\n  PDF: \"error6\",\n  DOC: \"info6\",\n};\n\nexport type FileIconPrimaryColorType = keyof typeof FILE_ICON_PRIMARY_COLOR;\n\nexport const FILE_ICON_SECONDARY_COLOR = {\n  IMAGE: \"warning1\",\n  PDF: \"error1\",\n  DOC: \"info1\",\n};\n\nexport type FileIconSecondaryColorType = keyof typeof FILE_ICON_SECONDARY_COLOR;\n\nexport const CHIP_COLOR_IN_USER_LIST = {\n  INACTIVE: {\n    backgroundColor: \"error1\",\n    textColor: \"error6\",\n    borderColor: \"error3\",\n  },\n  ACTIVE: {\n    backgroundColor: \"success1\",\n    textColor: \"success6\",\n    borderColor: \"success3\",\n  },\n};\n\nexport type ChipColorType = keyof typeof CHIP_COLOR_IN_USER_LIST;\n\nexport const ACTIVITY_LIST_TYPE = [\n  {\n    label: \"Today\",\n    value: \"TODAY\",\n  },\n\n  {\n    label: \"Upcoming\",\n    value: \"UPCOMING\",\n  },\n  {\n    label: \"Past\",\n    value: \"PAST\",\n  },\n];\n\nexport const ROLE_OPTION = [\n  { label: \"Admin\", value: \"ADMIN\" },\n  { label: \"Hr\", value: \"HR\" },\n  { label: \"Accounting\", value: \"ACCOUNTING\" },\n  { label: \"Finance\", value: \"FINANCE\" },\n];\n\nexport const ALL_ROLES = [\n  \"ADMIN\",\n  \"SUPER ADMIN\",\n  \"HR\",\n  \"ACCOUNTING\",\n  \"FINANCE\",\n];\n\nexport const ROUTE_TYPE_OPTIONS = [\n  { value: \"EXPRESS\", label: \"Express\" },\n  { value: \"FASTTRACK\", label: \"Fast Track\" },\n  { value: \"MULTIMODE\", label: \"Multimode\" },\n  { value: \"NORMAL\", label: \"Normal\" },\n];\n\nexport const TRANSIT_MODE_OPTIONS = [\n  { label: \"Air\", value: \"AIR\" },\n  { label: \"Ship\", value: \"SHIP\" },\n  { label: \"Road\", value: \"ROAD\" },\n  { label: \"Rail\", value: \"RAIL\" },\n];\n\nexport const TAX_REGISTRATION_TYPE = [\n  { label: \"Registered\", value: \"REGISTERED\" },\n  { label: \"Unregistered\", value: \"UNREGISTERED\" },\n  { label: \"Other\", value: \"OTHER\" },\n];\nexport const TAX_REGISTRATION_TYPE_ENUM: ProFieldValueEnumType = {\n  REGISTERED: { text: \"Registered\" },\n  UNREGISTERED: { text: \"Unregistered\" },\n  OTHER: { text: \"Other\" },\n};\n\nexport const MEASURING_UNIT_TYPE = [\n  { label: \"Countable\", value: \"COUNTABLE\" },\n  { label: \"Weightable\", value: \"WEIGHTABLE\" },\n];\n\nexport const FREIGHT_TYPE = [\n  { label: \"To Pay\", value: \"TOPAY\" },\n  { label: \"To Bill\", value: \"TOBILL\" },\n];\n\nexport const CARRIER_PAYMENT_REF_MODULE: ProFieldValueEnumType = {\n  FREIGHT_MEMO: { text: \"Freight Memo\" },\n};\n\nexport const FREIGHT_TYPE_ENUM: ProFieldValueEnumType = {\n  TOPAY: { text: \"To Pay\", status: \"Processing\" },\n  TOBILL: { text: \"To Bill\", status: \"Success\" },\n};\n\nexport const GST_PAID_BY_ENUM: ProFieldValueEnumType = {\n  BILLING_PARTY: { text: \"Billing Party\", status: \"Processing\" },\n  CONSIGNEE: { text: \"Consignee\", status: \"Info\" },\n  CONSIGNOR: { text: \"Consignor\", status: \"Success\" },\n};\nexport const RISK_BY_ENUM: ProFieldValueEnumType = {\n  OWNER: { text: \"Owner\", status: \"Processing\" },\n  CARRIER: { text: \"Carrier\", status: \"Success\" },\n};\n\nexport const MEASURING_UNIT_TYPE_ENUM: ProFieldValueEnumType = {\n  COUNTABLE: { text: \"Countable\", status: \"Processing\" },\n  WEIGHTABLE: { text: \"Weightable\", status: \"Success\" },\n};\n\nexport const TRUE_FALSE_TO_YES_NO_ENUM: ProFieldValueEnumType = {\n  true: { text: \"Yes\", status: \"Processing\" },\n  false: { text: \"No\", status: \"Error\" },\n};\n\nexport const ISSUE_TO_ENUM_GADGET_ISSUE = {\n  BRANCH: { text: \"Branch\", status: \"Success\", color: \"green\" },\n  SELF_VEHICLE: { text: \"Self Vehicle\", status: \"Warning\", color: \"orange\" },\n  MARKET_VEHICLE: { text: \"Market Vehicle\", status: \"Error\", color: \"red\" },\n};\n\nexport const VEHICLE_GROUP = [\n  {\n    label: \"Self\",\n    value: \"SELF\",\n  },\n  {\n    label: \"Common\",\n    value: \"COMMON\",\n  },\n];\nexport const DETENTION_APPLICABLE_OPTIONS: ProFieldValueEnumType = {\n  LOADING: { text: \"Loading\", status: \"Success\" },\n  UNLOADING: { text: \"Unloading\", status: \"Success\" },\n  BOTH: { text: \"Both\", status: \"Success\" },\n};\nexport const FUEL_TYPE_OPTIONS: ProFieldValueEnumType = {\n  PETROL: { text: \"Petrol\", status: \"Success\" },\n  DIESEL: { text: \"Diesel\", status: \"Success\" },\n  CNG: { text: \"CNG\", status: \"Success\" },\n};\nexport const VEHICLE_GROUP_ENUM: ProFieldValueEnumType = {\n  COMMON: { text: \"Common\", status: \"Processing\", color: \"red\" },\n  SELF: { text: \"Self\", status: \"Success\" },\n};\n\nexport const SHORTAGE_THRESHOLD_TYPE: ProFieldValueEnumType = {\n  PERCENT: { text: \"Percent\", status: \"Processing\" },\n  FIXED: { text: \"Fixed\", status: \"Success\" },\n  NONE: { text: \"None\", color: \"purple\", status: \"Processing\" },\n};\n\nexport const MATERIAL_SHORTAGE_TRANSPORT_FREIGHT_DEDUCTION_IN_BILL: ProFieldValueEnumType =\n  {\n    YES_BEYOND_THRESHOLD: {\n      text: \"Yes (Beyond Threshold)\",\n      color: \"blue\",\n      status: \"Processing\",\n    },\n    YES_TOTAL_SHORTAGE_AMOUNT: {\n      text: \"Yes (Total Shortage Amount)\",\n      color: \"blue\",\n      status: \"Processing\",\n    },\n    NO: { text: \"No\", color: \"blue\", status: \"Processing\" },\n  };\n\nexport const AsyncOptionStarterPageNo = 2;\n\nexport const TRANSIT_TIME_APPLICABLE_FROM: ProFieldValueEnumType = {\n  MATERIAL_INVOICE_00_00_TIME_OF_FOLLOWING_DATE: {\n    text: \"Material Invoice Date & Time(00:00 Hrs of following date)\",\n    color: \"blue\",\n  },\n  MATERIAL_INVOICE_DATE_AND_TIME: {\n    text: \"Material Invoice Date & Time\",\n    color: \"blue\",\n  },\n};\n\nexport const EVENT_FROM_OPTIONS: ProFieldValueEnumType = {\n  CONSIGNMENT_NOTE_DATE: { text: \"Consignment Note Date\" },\n  INVOICE_DATE: { text: \"Invoice Date\" },\n  PLACEMENT_DATE: { text: \"Placement Date\" },\n  PLANT_IN_DATE: { text: \"Plant In Date\" },\n  TRIP_START_DATE: { text: \"Trip Start Date\" },\n};\n\nexport const EVENT_TO_OPTIONS: ProFieldValueEnumType = {\n  REPORTING_DATE: { text: \"Reporting Date\" },\n  PLANT_OUT_DATE: { text: \"Plant Out Date\" },\n  TRIP_END_DATE: { text: \"Trip End Date\" },\n  UNLOADING_DATE: { text: \"Unloading Date\" },\n};\n\nexport const DELAY_TRANSIT_PENALTY_APPLICABLE_FROM: ProFieldValueEnumType = {\n  MATERIAL_INVOICE_00_00_TIME_OF_FOLLOWING_DATE: {\n    text: \"Material Invoice Date & Time(00:00 Hrs of following date)\",\n    color: \"blue\",\n  },\n  MATERIAL_INVOICE_DATE_AND_TIME: {\n    text: \"Material Invoice Date & Time\",\n    color: \"blue\",\n  },\n};\nexport const DELAY_PENALTY_CALCULATE_ON = {\n  AMOUNT_PER_DAY_PER_VEHICLE: {\n    text: \"Amount per day/per vehicle\",\n    status: \"Processing\",\n  },\n  AMOUNT_PER_DAY_PER_RS_PER_TON: {\n    text: \"Amount per day/per ton\",\n    status: \"Success\",\n  },\n  AMOUNT_PER_DAY_PER_RS_PER_PIECE: {\n    text: \"Amount per day/per piece\",\n    status: \"Error\",\n  },\n};\n\nexport const YES_NO_RADIO = [\n  { label: \"Yes\", value: true },\n  { label: \"No\", value: false },\n];\n\nexport const PAYMENT_MODE = [\n  { label: \"CASH\", value: \"CASH\" },\n  { label: \"CREDIT\", value: \"CREDIT\" },\n  { label: \"DEMAND DRAFT\", value: \"DEMAND_DRAFT\" },\n  { label: \"E PAYMENT\", value: \"E_PAYMENT\" },\n  { label: \"FUND TRANSFER\", value: \"FUND_TRANSFER\" },\n  { label: \"CHEQUE\", value: \"CHEQUE\" },\n  { label: \"BANK TRANSFER\", value: \"BANK_TRANSFER\" },\n  { label: \"NEFT\", value: \"NEFT\" },\n];\n\nexport const ONLY_ONE_LINE_ALERT_MESSAGE =\n  \"Only one row can be added at a time\";\n\nexport const BILLING_TERMS_POD_APPLICABLE_FOR = [\n  { label: \"Stock Transfer\", value: \"1\" },\n  { label: \"Direct Dispatch\", value: \"2\" },\n];\n\nexport const BILLING_TERMS_BILLING_QUANTITY_TYPE = {\n  CONSIGNMENT_QUANTITY: \"Consignment Quantity\",\n  GUARANTEED_QUANTITY: \"Guranteed Quantity\",\n  RECEIPT_QUANTITY: \"Receipt Quantity\",\n  WHICHEVER_IS_LESS: \"Whichever is less\",\n};\n\nexport const BILLING_TERMS_BILLING_CYCLE_TYPE = {\n  AT_THE_END_OF_EACH_LOADING_ORDER: \"At The end of each loading order\",\n  FORTNIGHTLY: \"Fortnightly\",\n  MONTHLY: \"Monthly\",\n};\n\nexport const PAYMENT_TERMS_ADVANCE_PERCENT_TYPE = {\n  CONSIGNMENT_BASIS: \"Consigment Basis\",\n  LUMPSUM_ON_DAILY_BASIS: \"Lumsum on daily basis\",\n};\n\nexport const DEDUCTION_RATE_TYPE_OPTIONS: ProFieldValueEnumType = {\n  INVOICE_VALUE: { text: \"Invoice Value\" },\n  FIXED: { text: \"Fixed\" },\n};\n\nexport const REQUIRED_ERROR_MESSAGE = \"Required!\";\nexport const INVALID_ERROR_MESSAGE = \"Invalid input!\";\nexport const DEFAULT_DATE_FORMAT = \"DD-MM-YYYY\";\nexport const DEFAULT_BACKEND_DATE_TIME_FORMAT = \"YYYY-MM-DD  HH:mm:ss\";\nexport const DEFAULT_BACKEND_DATE_FORMAT = \"YYYY-MM-DD\";\nexport const DEFAULT_DATE_TIME_FORMAT = \"DD-MM-YYYY h:mm A\";\nexport const DEFAULT_DATE_MONTH_FORMAT = \"DD MMM, YYYY\";\nexport const VIEW_DATE_TIME_FORMAT = \"DD MMM, YYYY h:mm A\";\n\nexport const FREIGHT_CONTRACT_TAB_KEYS = {\n  FREIGHT_RATE: \"1\",\n  BILLING_TERMS: \"2\",\n  PAYMENT_TERMS: \"3\",\n  POD_TERMS: \"4\",\n  DETENTION_MASTER: \"5\",\n  ADDITIONAL_CHARGES: \"6\",\n  MATERIAL_SHORTAGE: \"7\",\n  TRANSIT_TIME: \"8\",\n  DELAY_PENALTY: \"9\",\n};\n\nexport const DEDUCTION_TYPE_OPTIONS: ProFieldValueEnumType = {\n  TOTAL_QUANTITY: { text: \"Total Quantity\" },\n  QUANTITY_BEYOND_SHORTAGE_THRESHOLD: {\n    text: \"Quantity Beyond Shortage Threshold\",\n  },\n};\n\nexport const FREIGHT_BASIS: any = {\n  CHARGE_WEIGHT_PER_UNIT: { text: \"Charge Weight / Unit\", status: \"Success\" },\n  FIXED_PER_TRIP: { text: \"Fixed / Trip\", color: \"pink\" },\n  PACK_PER_UNIT_BASIS: { text: \"Pack / Unit basis\", status: \"Error\" },\n  WEIGHT_PER_UNIT_BASIS: { text: \"Weight /  Unit basis\", status: \"Warning\" },\n};\n\nexport const DELIVERY_TYPE: ProFieldValueEnumType = {\n  DIRECT_DELIVERY: { text: \"Direct Delivery\" },\n  STOCK_TRANSFER: { text: \"Stock Transfer\" },\n};\n\nexport const DOCUMENT_NATURE = [\n  {\n    label: \"Open\",\n    value: \"OPEN\",\n  },\n  {\n    label: \"Close\",\n    value: \"CLOSE\",\n  },\n];\nexport const DOCUMENT_NATURE_ENUM: any = {\n  OPEN: { text: \"Open\", status: \"success\" },\n  CLOSE: { text: \"Close\", status: \"error\" },\n};\nexport const RTGS_REF_MODULE_ENUM: any = {\n  CARRIER_PAYMENT: { text: \"Carrier Payment\" },\n};\nexport const RTGS_MODE_ENUM: any = {\n  NEFT: { text: \"NEFT\" },\n  RTGSß: { text: \"RTGSß\" },\n};\nexport const NON_GST_SUPPLIES_ENUM: any = {\n  COMPOSITE_TAXABLE_PERSON: { text: \"Composite Taxable Person\" },\n  EXEMPTED_OTHER_THAN_NIL_RATED: {\n    text: \"Exempted (other than nil rated/non GST supply)\",\n  },\n  NIL_RATED_SUPPLIES: { text: \"Nil Rated Supplies\" },\n  NON_GST_SUPPLIES: { text: \"Non-GST supplies\" },\n  OTHER_REVERSE_CHARGES: { text: \"Other (Reverse Charges)\" },\n  TAXABLE_SUPPLIES: { text: \"Taxable Supplies\" },\n};\n\nexport const FOOTER_NATURE_ENUM: any = {\n  CR_NOT_TAKEN: { text: \"CR. NOT TAKEN\" },\n  CR_TAKEN: { text: \"CR.TAKEN\" },\n  COMPOSITION_SCHEME: { text: \"Composition Scheme\" },\n  INELIGIBLE: { text: \"INELIGIBLE\" },\n  INPUT_CAPITAL_GOODS: { text: \"INPUT-CAPITAL GOODS\" },\n  INPUT_GOODS: { text: \"INPUT-GOODS\" },\n  INPUT_SERVICE: { text: \"INPUT-SERVICE\" },\n  PURCHASE_IMPORT_OF_INPUTS: { text: \"PURCHASE IMPORT OF INPUTS\" },\n};\n\nexport const GST_INTER_STATE_ENUM: any = {\n  GST_INTER_STATE: { text: \"GST Inter State\" },\n  GST_INTRA_STATE: { text: \"GST Intra State\" },\n  IMPORT: { text: \"Import\" },\n  EXPORT: { text: \"EXPORT\" },\n  SEZ: { text: \"SEZ\" },\n};\n\nexport const CHARGE_NATURE: ProFieldValueEnumType = {\n  ADDITION: { text: \"Addition\" },\n  DEDUCTION: { text: \"Deduction\" },\n};\n\nexport const SHORTAGE_BASIS: ProFieldValueEnumType = {\n  CHARGE_WEIGHT: { text: \"Charge Weight\" },\n  NET_WEIGHT: { text: \"Net Weight\" },\n};\nexport const DEDUCTION_BASIS: ProFieldValueEnumType = {\n  FREIGHT_VALUE: { text: \"Freight Value\" },\n  INVOICE_VALUE: { text: \"Invoice Value\" },\n};\n\nexport const SERVICE_TYPE: ProFieldValueEnumType = {\n  DETENTION: { text: \"Detention\" },\n  DELAY_PENALTY: { text: \"Delay Penalty\" },\n  MATERIAL_SHORTAGE: { text: \"Material Shortage\" },\n  TRANSIT_TIME: { text: \"Transit Time\" },\n};\n\nexport const CHARGE_TYPES: ProFieldValueEnumType = {\n  FIXED: { text: \"Fixed\" },\n  ACTUAL: { text: \"Actual\" },\n};\n\nexport const GADGET_CONDITION: ProFieldValueEnumType = {\n  Working: { text: \"Working\", color: \"green\", status: \"Processing\" },\n  \"Not Working\": { text: \"Not Working\", status: \"Error\" },\n};\nexport const GENDER: ProFieldValueEnumType = {\n  MALE: { text: \"Male\" },\n  FEMALE: { text: \"Female\" },\n  TRANSGENDER: { text: \"Transgender\" },\n};\n\nexport const LOADING_DELIVERY_TYPE: ProFieldValueEnumType = {\n  CHARGE_WEIGHT_PER_UNIT: { text: \"Charge Weight / Unit\" },\n  FIXED_PER_TRIP: { text: \"Fixed / Trip\" },\n  PACK_PER_UNIT_BASIS: { text: \"Pack / Unit basis\" },\n  WEIGHT_PER_UNIT_BASIS: { text: \"Weight /  Unit basis\" },\n};\n\nexport const LOADING_ORDER_TAB_KEYS = {\n  MATERIAL_AND_BILLING_DETAILS: \"1\",\n  SOURCE_DETAILS: \"2\",\n  DESTINATION_DETAILS: \"3\",\n  BILLNG_TERMS: \"4\",\n  ADDITIONAL_CHARGES: \"5\",\n};\nexport const PLACEMENT_ORDER_TAB_KEYS = {\n  PARTY_DETAILS: \"1\",\n  MATERIAL_AND_BILLING_DETAILS: \"2\",\n  SOURCE_DETAILS: \"3\",\n  DESTINATION_DETAILS: \"4\",\n  ADDITIONAL_CHARGES: \"5\",\n};\nexport const CONSIGNMENT_NOTE_TAB_KEYS = {\n  CONSINOR_CONSIGNEE_DETAILS: \"CONSINOR_CONSIGNEE_DETAILS\",\n  SOURCE_DESTINATION_DETAILS: \"SOURCE_DESTINATION_DETAILS\",\n  EWAY_BILL_DETAILS: \"EWAY_BILL_DETAILS\",\n  VEHICLE_DETAILS: \"VEHICLE_DETAILS\",\n  ITEM_DETAILS: \"ITEM_DETAILS\",\n  BILLING_DETAILS: \"BILLING_DETAILS\",\n  FREIGHT_DETAILS: \"FREIGHT_DETAILS\",\n\n  ADDITIONAL_CAHRGES: \"ADDITIONAL_CAHRGES\",\n};\n\nexport const POD_TAB_KEYS = {\n  CONSIGNMENT_NOTE_DETAILS: \"1\",\n};\nexport const CARRIER_PAYMENT_TAB_KEYS = {\n  FREIGHT_MEMO_DETAILS: \"1\",\n  FREIGHT_MEMO_SUMMARY: \"2\",\n};\n\nexport const CARRIER_CONTRACT_TAB_KEYS = {\n  CARRIER_RATE: \"1\",\n};\n\nexport const COMMON_CONTRACT_TAB_KEYS = {\n  BILLING_TERMS: \"2\",\n  PAYMENT_TERMS: \"3\",\n  POD_TERMS: \"4\",\n  DETENTION_MASTER: \"5\",\n  MATERIAL_SHORTAGE: \"6\",\n  TRANSIT_TIME: \"7\",\n  DELAY_PENALTY: \"8\",\n  ADDITIONAL_CHARGES: \"9\",\n};\n\nexport const OPERATIONAL_MASTER_TAB_KEYS = {\n  BRANCH: \"BRANCH\",\n  LOCATION: \"LOCATION\",\n};\nexport const ACTIVE_INACTIVE_ENUM = {\n  ACTIVE: \"Active\",\n  INACTIVE: \"In Active\",\n};\n\nexport const LOGISTIC_ROSTER_MASTER_TAB_KEYS = {\n  CUSTOMER: \"CUSTOMER\",\n  TRANSPORTER: \"TRANSPORTER\",\n};\n\nexport const FREIGHT_MEMO_TAB_KEYS = {\n  CONSIGNMENT_NOTE: \"1\",\n  OTHER_DETAILS: \"2\",\n  PAYABLE_DETAILS: \"3\",\n  ADVANCE_DETAILS: \"4\",\n  TRACKING_DETAILS: \"5\",\n  ADDITIONAL_CHARGES: \"6\",\n};\nexport const ISSUE_TO: ProFieldValueEnumType = {\n  BRANCH: { text: \"Branch\" },\n  MARKET_VEHICLE: { text: \"Market Vehicle\" },\n  SELF_VEHICLE: { text: \"Self Vehicle\" },\n};\n\nexport const GADGET_TAB_KEYS = {\n  TYPE: \"1\",\n  REGISTRATION: \"2\",\n  ISSUE: \"3\",\n  RECEIVE: \"4\",\n};\n\nexport const EMPLOYEE_MASTER_TAB_KEYS = {\n  DEPARTMENT: \"DEPARTMENT\",\n  DESIGNATION: \"DESIGNATION\",\n  EMPLOYEE: \"EMPLOYEE\",\n  Driver: \"Driver\",\n};\n\nexport const ITEM_MASTER_TAB_KEYS = {\n  ITEM: \"ITEM\",\n  PACKING_TYPE: \"PACKING_TYPE\",\n  MEASURING_UNIT: \"MEASURING_UNIT\",\n  ITEM_GROUP: \"ITEM_GROUP\",\n};\n\nexport const VEHICLE_MASTER_TAB_KEYS = {\n  VEHICLE_GROUP: \"VEHICLE_GROUP\",\n  VEHICLE_CATEGORY: \"VEHICLE_CATEGORY\",\n  VEHICLE: \"VEHICLE\",\n  VEHICLE_HANDOVER: \"VEHICLE_HANDOVER\",\n  VEHICLE_TAKEOVER: \"VEHICLE_TAKEOVER\",\n};\nexport const GADGET_MASTER_TAB_KEYS = {\n  GADGET_TYPE_REGISTRATION: \"GADGET_TYPE_REGISTRATION\",\n  GADGET_REGISTRATION: \"GADGET_REGISTRATION\",\n  GADGET_ISSUE: \"GADGET_ISSUE\",\n  GADGET_RECEIVE: \"GADGET_RECEIVE\",\n  GADGET_DISCARD: \"GADGET_DISCARD\",\n};\n\nexport const ADD_EMPLOYEE_TAB_KEYS = {\n  ADDRESS_DETAILS: \"1\",\n  PAYMENT_DETAILS: \"2\",\n};\n\nexport const CONFIRM_DELETE_MESSAGE = \"Sure to Delete?\";\n\ntype EXPORT_TYPE_CASCADER_OPTIONS_OPTION_TYPE = GetProp<\n  typeof Cascader,\n  \"options\"\n>[number];\nexport const EXPORT_TYPE_CASCADER_OPTIONS: EXPORT_TYPE_CASCADER_OPTIONS_OPTION_TYPE[] =\n  [\n    {\n      value: \"PDF\",\n      label: \"PDF\",\n      children: [\n        {\n          value: \"WITH_FILTER\",\n          label: \"With Filter\",\n          children: [\n            {\n              value: \"WITH_PAGINATION\",\n              label: \"With Pagination\",\n            },\n            {\n              value: \"WITHOUT_PAGINATION\",\n              label: \"Without Pagination\",\n            },\n          ],\n        },\n        {\n          value: \"WITHOUT_FILTER\",\n          label: \"Without Filter\",\n          children: [\n            {\n              value: \"WITH_PAGINATION\",\n              label: \"With Pagination\",\n            },\n            {\n              value: \"WITHOUT_PAGINATION\",\n              label: \"Without Pagination\",\n            },\n          ],\n        },\n      ],\n    },\n    {\n      value: \"CSV\",\n      label: \"CSV\",\n      children: [\n        {\n          value: \"WITH_FILTER\",\n          label: \"With Filter\",\n          children: [\n            {\n              value: \"WITH_PAGINATION\",\n              label: \"With Pagination\",\n            },\n            {\n              value: \"WITHOUT_PAGINATION\",\n              label: \"Without Pagination\",\n            },\n          ],\n        },\n        {\n          value: \"WITHOUT_FILTER\",\n          label: \"Without Filter\",\n          children: [\n            {\n              value: \"WITH_PAGINATION\",\n              label: \"With Pagination\",\n            },\n            {\n              value: \"WITHOUT_PAGINATION\",\n              label: \"Without Pagination\",\n            },\n          ],\n        },\n      ],\n    },\n  ];\nexport const EXPORT_TYPE_CASCADER_OPTIONS_WITHOUT_FILTER: EXPORT_TYPE_CASCADER_OPTIONS_OPTION_TYPE[] =\n  [\n    {\n      value: \"PDF\",\n      label: \"PDF\",\n      children: [\n        {\n          value: \"WITH_PAGINATION\",\n          label: \"With Pagination\",\n        },\n        {\n          value: \"WITHOUT_PAGINATION\",\n          label: \"Without Pagination\",\n        },\n      ],\n    },\n    {\n      value: \"CSV\",\n      label: \"CSV\",\n      children: [\n        {\n          value: \"WITH_PAGINATION\",\n          label: \"With Pagination\",\n        },\n        {\n          value: \"WITHOUT_PAGINATION\",\n          label: \"Without Pagination\",\n        },\n      ],\n    },\n  ];\nexport const EXPORT_TYPE_CASCADER_OPTIONS_WITH_CSV_ONLY: EXPORT_TYPE_CASCADER_OPTIONS_OPTION_TYPE[] =\n  [\n    {\n      value: \"CSV\",\n      label: \"CSV\",\n      children: [\n        {\n          value: \"WITH_FILTER\",\n          label: \"With Filter\",\n          children: [\n            {\n              value: \"WITH_PAGINATION\",\n              label: \"With Pagination\",\n            },\n            {\n              value: \"WITHOUT_PAGINATION\",\n              label: \"Without Pagination\",\n            },\n          ],\n        },\n        {\n          value: \"WITHOUT_FILTER\",\n          label: \"Without Filter\",\n          children: [\n            {\n              value: \"WITH_PAGINATION\",\n              label: \"With Pagination\",\n            },\n            {\n              value: \"WITHOUT_PAGINATION\",\n              label: \"Without Pagination\",\n            },\n          ],\n        },\n      ],\n    },\n  ];\n\nexport const ITEM_GROUP_TYPE = {\n  GROUP: \"Group\",\n  ITEM: \"Item\",\n};\nexport const GST_TYPE_ENUM = {\n  IGST: { text: \"IGST\" },\n  CGST_SGST: { text: \"CGST/SGST\" },\n};\n\nexport const SIDEBAR_COOKIE_NAME = \"sidebar:state\";\nexport const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nexport const SIDEBAR_WIDTH = \"16rem\";\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\";\nexport const SIDEBAR_WIDTH_ICON = \"3rem\";\nexport const SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\nexport const OPEN_ADD_FORM_KEYBOARD_SHORTCUT = \"ctrl+a\";\n\nexport const CUSTOMER_LEGAL_STATUS: ProFieldValueEnumType = {\n  ASSOCIATION: { text: \"Association\" },\n  FOREIGN_COMPANY: { text: \"Foreign Company\" },\n  GOVERNMENT: { text: \"Government\" },\n  HINDU_UNDIVIDED_FAMILY: { text: \"Hindu Undivided Family\" },\n  LISTED_COMPANY: { text: \"Listed Company\" },\n  LOCAL_AUTHORITY: { text: \"Local Authority\" },\n  PARTNERSHIP: { text: \"Partnership\" },\n  PRIVATE_LIMITED: { text: \"Private Limited Company\" },\n  PROPRIETORSHIP: { text: \"Proprietorship\" },\n  PUBLIC_COMPANY: { text: \"Public Company\" },\n  PUBLIC_SECTOR_UNDERTAKING: { text: \"Public Sector Undertaking\" },\n  REGISTERED_SOCIETY: { text: \"Registered Society\" },\n};\n\nexport const FIELD_TYPE_ENUM: ProFieldValueEnumType = {\n  STRING: { text: \"String\" },\n  INTEGER: { text: \"Integer\" },\n  DATE: { text: \"Date\" },\n  DATETIME: { text: \"Datetime\" },\n  SELECT: { text: \"Select\" },\n  MULTISELECT: { text: \"Multiselect\" },\n  BOOLEAN: { text: \"Boolean\" },\n  ATTACHMENT: { text: \"Attachment\" },\n  RADIO: { text: \"Radio\" },\n  JSON: { text: \"JSON\" },\n  TEXT: { text: \"Text\" },\n};\n\nexport const ALL_OPERATORS = [\"+\", \"-\", \"*\", \"/\", \"(\", \")\"];\nexport const ALL_DIGITS = [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"0\"];\n\nexport const USER_ROLES: any = {\n  ADMIN: { text: \"Admin\", status: \"error\" },\n  SUPER_ADMIN: {\n    text: \"Super Admin\",\n    disabled: true,\n    status: \"error\",\n  },\n  USER: { text: \"User\", status: \"success\" },\n  GUEST: { text: \"Guest\", status: \"processing\" },\n};\n\nexport const ALL_MODULES_ENUM: any = {\n  COMPANY: {\n    text: \"Company\",\n  },\n  USER: {\n    text: \"User\",\n  },\n  Site: {\n    text: \"Site\",\n  },\n  FORM_BUILDER: {\n    text: \"Form Builder\",\n  },\n  FIELDS: {\n    text: \"Fields\",\n  },\n  BASIC_SETTINGS: {\n    text: \"Basic Settings\",\n  },\n};\n\nexport const FIELD_INPUT_VARIANT_OPTIONS = [\"SELECT\", \"MULTISELECT\", \"RADIO\"];\n\nexport const ENTRY_VISIBILITY_CONTROL: any = {\n  ENTRIES_VISIBLE_TO_ALL_USERS: {\n    text: \"Entries Visible to All Users\",\n    status: \"error\",\n  },\n  ENTRIES_VISIBLE_ONLY_TO_THEIR_CREATORS: {\n    text: \"Entries Visible Only to Their Creators\",\n    status: \"error\",\n  },\n};\n\nexport const PERMISSIONS = {\n  COMPANY: [\n    \"canCreateCompany\",\n    \"canDeleteCompany\",\n    \"canEditCompany\",\n    \"canViewCompany\",\n  ],\n  USER: [\"canCreateUser\", \"canEditUser\", \"canDeleteUser\", \"canViewUser\"],\n  APPROVAL_SYSTEM: [\n    \"canCreateApprovalSystem\",\n    \"canEditApprovalSystem\",\n    \"canDeleteApprovalSystem\",\n    \"canViewApprovalSystem\",\n  ],\n  SITE: [\"canCreateSite\", \"canEditSite\", \"canDeleteSite\", \"canViewSite\"],\n  FIELDS: [\"canCreateField\", \"canEditField\", \"canDeleteField\", \"canViewField\"],\n  FORM_BUILDER: [\n    \"canCreateForm\",\n    \"canEditForm\",\n    \"canDeleteForm\",\n    \"canViewForm\",\n  ],\n  BASIC_SETTINGS: [\"canFillCashIn\", \"canFillCashOut\", \"canManageBasicSettings\"],\n};\n\nexport const TRANSACTION_RESPONSE_TYPE: any = {\n  CASH_IN: {\n    text: \"Cash In\",\n    status: \"processing\",\n  },\n  CASH_OUT: {\n    text: \"Cash Out\",\n    status: \"error\",\n  },\n};\n\nexport const REQUEST_ACTION_TYPE: any = {\n  MANUAL: {\n    text: \"Manual\",\n    status: \"processing\",\n  },\n  AUTO: {\n    text: \"Auto\",\n    status: \"error\",\n  },\n  DELEGATED: {\n    text: \"Delegated\",\n    status: \"error\",\n  },\n};\n\nexport const CAHSFLOW_MONTH_OR_YEAR_WISE = {\n  AT_THE_END_OF_EACH_LOADING_ORDER: \"At The end of each loading order\",\n  FORTNIGHTLY: \"Fortnightly\",\n  MONTHLY: \"Monthly\",\n};\nexport const REQUEST_STATUS_ENUM: any = {\n  PENDING: {\n    text: \"Pending\",\n    status: \"warning\",\n    color: \"yellow\",\n  },\n  IN_PROGRESS: {\n    text: \"In Progress\",\n    status: \"processing\",\n    color: \"blue\",\n  },\n  APPROVED: {\n    text: \"Approved\",\n    status: \"success\",\n    color: \"green\",\n  },\n  REJECTED: {\n    text: \"Rejected\",\n    status: \"error\",\n    color: \"red\",\n  },\n  CANCELLED: {\n    text: \"Cancelled\",\n    status: \"error\",\n    color: \"red\",\n  },\n};\n\nexport const TIMEOUT_TYPE_ENUM: ProFieldValueEnumType = {\n  NO_TIMEOUT: { text: \"No Timeout\" },\n  ONE_DAY: { text: \"24 hours\" },\n  TWO_DAYS: { text: \"48 hours\" },\n  ONE_WEEK: { text: \"One Week\" },\n  ONE_MONTH: { text: \"One Month\" },\n};\n\nexport const DEFAULT_PER_PAGE_VALUE_FOR_NOTIFICATION = 5;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from \"react\";\nimport {\n  IconMail,\n  IconWorldLongitude,\n  IconMapPinCode,\n  IconWorldLatitude,\n  IconCurrencyRupee,\n} from \"@tabler/icons-react\";\nimport { useAppTheme } from \"~/theme\";\nimport { useStyles } from \"./styles\";\nimport {\n  ProFormDigit,\n  ProFormDigitProps,\n  ProFormFieldProps,\n  ProFormText,\n} from \"@ant-design/pro-components\";\nimport {\n  INVALID_ERROR_MESSAGE,\n  REQUIRED_ERROR_MESSAGE,\n  emailRegex,\n  gstRegex,\n  panRegex,\n} from \"../../../constants\";\nimport { EText } from \"../Typography\";\n\n// ===================================================================================================\n\nexport const EAmount: React.FC<ProFormDigitProps> = ({\n  fieldProps,\n  ...rest\n}) => {\n  const token = useAppTheme();\n  const amountFormatter = (value: string | number | undefined) => {\n    if (value) {\n      return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n    }\n    return \"\";\n  };\n\n  return (\n    <ProFormDigit\n      fieldProps={{\n        prefix: <IconCurrencyRupee color={token.neutral6} size={18} />,\n        controls: false,\n        formatter: amountFormatter,\n        ...fieldProps,\n      }}\n      {...rest}\n      style={{ width: \"100%\", ...rest?.style }}\n    />\n  );\n};\n\n// ===================================================================================================\n\nexport const EEmail: React.FC<ProFormFieldProps> = ({\n  fieldProps,\n  required = false,\n  ...rest\n}) => {\n  const token = useAppTheme();\n  return (\n    <ProFormText\n      placeholder=\"Enter Email address\"\n      fieldProps={{\n        prefix: <IconMail color={token.neutral6} size={19} />,\n        ...fieldProps,\n      }}\n      required\n      {...rest}\n      style={{ ...rest?.style }}\n      rules={[\n        {\n          validator(_, value, callback) {\n            if (!value) {\n              if (required) {\n                callback(REQUIRED_ERROR_MESSAGE);\n                return;\n              }\n              return callback();\n            }\n            if (!emailRegex.test(value)) {\n              callback(INVALID_ERROR_MESSAGE);\n            } else {\n              callback();\n            }\n          },\n        },\n      ]}\n    />\n  );\n};\n\n// ===================================================================================================\n\nexport const EPan: React.FC<ProFormFieldProps> = ({\n  fieldProps,\n  required = true,\n  rules,\n  ...rest\n}) => {\n  const handlePanInput = (e: any) => {\n    e.target.value = e?.target?.value?.toUpperCase();\n  };\n  return (\n    <ProFormText\n      placeholder=\"Enter Pan Number\"\n      required\n      fieldProps={{\n        onInput: handlePanInput,\n        maxLength: 10,\n        ...fieldProps,\n      }}\n      {...rest}\n      style={{ ...rest?.style }}\n      rules={[\n        {\n          validator(_, value, callback) {\n            if (!value) {\n              if (required) {\n                callback(REQUIRED_ERROR_MESSAGE);\n                return;\n              }\n              return callback();\n            }\n            if (!panRegex.test(value)) {\n              callback(INVALID_ERROR_MESSAGE);\n            } else {\n              callback();\n            }\n          },\n        },\n      ]}\n    />\n  );\n};\n\n// ===================================================================================================\n\nexport const EGstNo: React.FC<ProFormFieldProps> = ({\n  fieldProps,\n  required = true,\n  ...rest\n}) => {\n  const handlePanInput = (e: any) => {\n    e.target.value = e?.target?.value?.toUpperCase();\n  };\n  return (\n    <ProFormText\n      placeholder=\"Enter GST Number\"\n      fieldProps={{\n        onInput: handlePanInput,\n        maxLength: 15,\n        ...fieldProps,\n      }}\n      required\n      {...rest}\n      style={{ ...rest?.style }}\n      rules={[\n        {\n          validator(_, value, callback) {\n            if (!value) {\n              if (required) {\n                callback(REQUIRED_ERROR_MESSAGE);\n                return;\n              }\n              return callback();\n            }\n            if (!gstRegex.test(value)) {\n              callback(INVALID_ERROR_MESSAGE);\n            } else {\n              callback();\n            }\n          },\n        },\n      ]}\n    />\n  );\n};\n\n// ===================================================================================================\n\nexport const EPinCode: React.FC<ProFormFieldProps> = ({\n  fieldProps,\n  ...rest\n}) => {\n  const token = useAppTheme();\n  return (\n    <ProFormDigit\n      fieldProps={{\n        prefix: <IconMapPinCode color={token.neutral6} size={17} />,\n        maxLength: 6,\n        controls: false,\n        formatter(value) {\n          if (value) {\n            return value.toString().replace(\",\", \"\");\n          }\n          return \"\";\n        },\n        ...fieldProps,\n      }}\n      {...rest}\n      style={{ width: \"100%\", ...rest?.style }}\n    />\n  );\n};\n\n// ===================================================================================================\ninterface EProLongitudeLatitudeProps extends ProFormDigitProps {\n  type?: \"latitude\" | \"longitude\";\n}\n\nexport const ELatitude: React.FC<EProLongitudeLatitudeProps> = ({\n  fieldProps,\n  type = \"latitude\",\n  ...rest\n}) => {\n  const token = useAppTheme();\n  return (\n    <ProFormDigit\n      fieldProps={{\n        precision: 6,\n        maxLength: 11,\n        controls: false,\n        prefix:\n          type === \"latitude\" ? (\n            <IconWorldLatitude color={token.neutral6} size={16} />\n          ) : (\n            <IconWorldLongitude color={token.neutral6} size={16} />\n          ),\n        ...fieldProps,\n      }}\n      placeholder={type}\n      {...rest}\n      style={{ width: \"100%\", ...rest?.style }}\n    />\n  );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from \"react\";\nimport { IconCurrencyRupee } from \"@tabler/icons-react\";\nimport { DatePickerProps, Flex, InputNumberProps, PopoverProps } from \"antd\";\nimport { useAppTheme } from \"~/theme\";\nimport { InputProps } from \"antd/lib\";\nimport {\n  ProFormDatePicker,\n  ProFormDigit,\n  ProFormDigitProps,\n  ProFormFieldProps,\n} from \"@ant-design/pro-components\";\nimport { EPopover, EText, TextTypographyProps } from \"..\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { amountFormatter, formatDateTime, parseDateTime } from \"lib\";\nimport { useSafeState } from \"ahooks\";\nimport dayjs from \"dayjs\";\nimport {\n  DEFAULT_BACKEND_DATE_FORMAT,\n  DEFAULT_DATE_FORMAT,\n  FullColumnWIdth,\n} from \"constants\";\n\ninterface ENumberProps extends ProFormFieldProps<any, InputNumberProps> {}\n\ninterface EInputProps extends ProFormFieldProps<any, InputProps> {}\n\n// ===================================================================================================\n\ninterface ProDigitNumberProps\n  extends ProFormFieldProps<any, InputNumberProps> {}\n\nexport const ProDigitNumber: React.FC<ProFormDigitProps> = ({\n  fieldProps,\n  ...rest\n}) => {\n  return (\n    <ProFormDigit\n      fieldProps={{\n        precision: 2,\n        formatter: (value) => `${value}`.replace(/,/g, \"\"),\n        ...fieldProps,\n      }}\n      {...rest}\n    />\n  );\n};\n// ===================================================================================================\n\n// ===================================================================================================\n\ninterface ProDigitNumberProps\n  extends ProFormFieldProps<any, InputNumberProps> {}\n\nexport const ProWeightNumber: React.FC<ProDigitNumberProps> = ({\n  fieldProps,\n  ...rest\n}) => {\n  return (\n    <ProFormDigit\n      fieldProps={{\n        precision: 3,\n        ...fieldProps,\n      }}\n      {...rest}\n    />\n  );\n};\n\n// ===================================================================================================\n\nexport const ProAmount: React.FC<ProFormDigitProps> = ({\n  fieldProps,\n  ...rest\n}) => {\n  const token = useAppTheme();\n\n  const amountFormatter = (value: string | number | undefined) => {\n    if (value) {\n      return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n    }\n    return \"\";\n  };\n\n  return (\n    <ProFormDigit\n      fieldProps={{\n        precision: 2,\n        prefix: <IconCurrencyRupee color={token.neutral6} size={18} />,\n        controls: false,\n        formatter: amountFormatter,\n        ...fieldProps,\n      }}\n      {...rest}\n      style={{ width: \"100%\", ...rest?.style }}\n    />\n  );\n};\n\n// ===================================================================================================\n\ninterface ProAmountFieldProps {\n  amount?: number | string;\n  iconColor?: string;\n  textProps?: TextTypographyProps;\n  popoverProps?: PopoverProps;\n  info?: React.ReactNode;\n  infoTitle?: string;\n  suffix?: React.ReactNode | string;\n}\n\nexport const ProAmountField: React.FC<ProAmountFieldProps> = ({\n  amount,\n  iconColor,\n  textProps,\n  info,\n  suffix,\n  infoTitle,\n  popoverProps,\n}) => {\n  const token = useAppTheme();\n  iconColor = iconColor || token.neutral7;\n  return (\n    <Flex align=\"center\" gap={4}>\n      <Flex flex={1} align=\"center\">\n        <IconCurrencyRupee size={16} color={iconColor} />\n        <EText {...textProps}>{amountFormatter(amount)}</EText>\n        {typeof suffix === \"string\" ? (\n          <EText {...textProps} color={token.neutral7}>\n            &nbsp;\n            {suffix}\n          </EText>\n        ) : (\n          suffix\n        )}\n      </Flex>\n      {info && (\n        <EPopover\n          title={infoTitle}\n          showArrow\n          content={info}\n          trigger={[\"hover\"]}\n          {...popoverProps}\n        >\n          <InfoCircleOutlined color={token.neutral8} />\n        </EPopover>\n      )}\n    </Flex>\n  );\n};\n\ninterface ProDatePickerProps extends ProFormFieldProps<any, DatePickerProps> {\n  name?: string | number;\n}\n\nexport const ProDatePicker: React.FC<ProDatePickerProps> = ({\n  name,\n  width = FullColumnWIdth,\n  fieldProps,\n  ...rest\n}) => {\n  const [date, setDate] = useSafeState<string | undefined>(undefined);\n\n  const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n    const input = e?.target?.value;\n    setDate(input);\n  };\n\n  return (\n    <ProFormDatePicker\n      name={name}\n      width={width}\n      fieldProps={{\n        ...fieldProps,\n        format: DEFAULT_DATE_FORMAT,\n        picker: \"date\",\n        value: date,\n        onChange: handleInputChange,\n        onBlur: (e: any) => {\n          // note parse the date string when the input field loses focus\n          if (e.target.value.length > 0) {\n            const parsedDateTime = parseDateTime(e.target.value);\n            if (parsedDateTime) {\n              e.target.value = formatDateTime(parsedDateTime);\n              setDate(formatDateTime(parsedDateTime));\n            }\n          }\n        },\n      }}\n      transform={() => {\n        if (date) {\n          const isDateValid = dayjs(date, DEFAULT_DATE_FORMAT, true).isValid();\n          const formatValue = isDateValid\n            ? date\n            : dayjs(date).format(DEFAULT_DATE_FORMAT);\n          return {\n            [name as string]: dayjs(formatValue, DEFAULT_DATE_FORMAT).format(\n              DEFAULT_BACKEND_DATE_FORMAT\n            ),\n          };\n        } else {\n          return \"\";\n        }\n      }}\n      {...rest}\n    />\n  );\n};\n","import React from \"react\"\nimport { Flex, Spin, SpinProps } from \"antd\"\n\n// Note: Define interface ELoaderProps that extends SpinProps and includes width and height props\nexport interface ELoaderProps extends SpinProps {\n  width?: string\n  height?: string\n}\n\n// Note: Define ELoader functional component that takes ELoaderProps as props and renders a loading spinner and text message\nexport const ELoader: React.FC<ELoaderProps> = ({\n  width = \"100%\",\n  height = \"100%\",\n  ...rest\n}) => {\n  // Note: Use useAppTheme hook to get the theme token\n\n  return (\n    // Note: Render a Flex container with centered content and specified width and height\n    <Flex\n      justify=\"center\"\n      align=\"center\"\n      vertical\n      flex={1}\n      style={{ width, height }}\n    >\n      {/* Note: Render a large Spin component with spinning set to true and additional props passed down */}\n      <Spin\n        size=\"large\"\n        tip={null}\n        spinning={true}\n        {...rest}\n        style={{ zIndex: 2000, ...rest?.style }}\n      />\n    </Flex>\n  )\n}\n\nexport const MainLoader = () => {\n  return (\n    <Flex justify=\"center\" align=\"center\" flex={1} style={{ height: \"100vh\" }}>\n      <Spin size=\"large\" tip={null} spinning={true} style={{ zIndex: 2000 }} />\n    </Flex>\n  )\n}\n\nexport const PageLoader = () => {\n  return (\n    <Flex\n      style={{\n        height: \"60vh\",\n      }}\n      justify=\"center\"\n      align=\"center\"\n      flex={1}\n    >\n      <Spin />\n    </Flex>\n  )\n}\n","import React from \"react\";\nimport { InputProps } from \"antd\";\nimport {\n  ProFormDigit,\n  ProFormDigitProps,\n  ProFormItemProps,\n  ProFormText,\n  ProFormDatePicker,\n} from \"@ant-design/pro-components\";\nimport { ProAmount } from \"../../common\";\n\n// NOTE: Defining the combined props type for the custom input component\nexport type BaseInputProps = InputProps & ProFormDigitProps;\n\nexport type TableInputFieldTypes =\n  | \"select\"\n  | \"digit\"\n  | \"text\"\n  | \"amount\"\n  | \"quantity\"\n  | \"date\";\n\nexport interface TableInputProps extends BaseInputProps {\n  type?: TableInputFieldTypes | string;\n}\n\n// NOTE: Functional component for the custom input element\nexport const TableInput: React.FC<TableInputProps> = ({\n  type = \"text\",\n  ...rest\n}) => {\n  // NOTE: Rendering different input components based on the specified type\n  switch (type) {\n    case \"digit\":\n      return (\n        <ProFormDigit\n          {...(rest as ProFormDigitProps)}\n          style={{ width: \"100%\" }}\n        />\n      );\n\n    case \"amount\":\n      return <ProAmount {...(rest as ProFormDigitProps)} noStyle={false} />;\n\n    default:\n      return (\n        // NOTE: Default Input component with themed styles\n        <ProFormText {...(rest as ProFormItemProps)} />\n      );\n  }\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from \"react\";\nimport { createColumnHelper, RowSelectionState } from \"@tanstack/react-table\";\nimport { IndeterminateCheckbox } from \"./tableComponents\";\nimport { EButton, EIcon } from \"~/components/common\";\nimport { useAppTheme } from \"~/theme\";\nimport { Flex, Radio } from \"antd\";\nimport { useState } from \"react\";\nimport { IndexColumn } from \"@ant-design/pro-components\";\nimport { MenuItemType } from \"antd/es/menu/interface\";\n\nexport const useTanstackTable = <T,>() => {\n  const columnHelper = createColumnHelper<T>();\n\n  const rowSelectionColumn = columnHelper.display({\n    id: \"rowSelection\",\n    enablePinning: false,\n    enableHiding: false,\n\n    header: ({ table }: any) => {\n      const isArray = Array.isArray(\n        table.options?.meta?.rowSelection?.selections\n      );\n      return table.options?.meta?.rowSelection?.selectionType !== \"radio\" ? (\n        <Flex justify=\"flex-start\" align=\"center\">\n          <IndeterminateCheckbox\n            {...{\n              checked: table.getIsAllPageRowsSelected(),\n              indeterminate: table.getIsSomePageRowsSelected(),\n              onChange: table.getToggleAllPageRowsSelectedHandler(),\n            }}\n          />\n\n          {isArray || table.options?.meta?.rowSelection?.selections ? (\n            <EButton\n              type=\"text\"\n              icon={<EIcon icon={\"material-symbols:add-rounded\"} />}\n            />\n          ) : undefined}\n        </Flex>\n      ) : undefined;\n    },\n    cell: ({ row, getValue }) => {\n      return row.getCanMultiSelect() ? (\n        <div className=\"text-start\">\n          <IndeterminateCheckbox\n            {...{\n              checked: row.getIsSelected(),\n              disabled: !row.getCanSelect(),\n              indeterminate: row.getIsSomeSelected(),\n              onChange: row.getToggleSelectedHandler(),\n            }}\n          />\n          {getValue<boolean>()}\n        </div>\n      ) : (\n        <div className=\" text-center\">\n          <Radio\n            style={{\n              marginInlineEnd: 0,\n            }}\n            checked={row.getIsSelected()}\n            disabled={!row.getCanSelect()}\n            onChange={row.getToggleSelectedHandler()}\n            onClick={(e) => e.stopPropagation()}\n          />\n        </div>\n      );\n    },\n    size: 8,\n  });\n\n  const expandableColumn = columnHelper.display({\n    id: \"expandable\",\n    enablePinning: false,\n    enableHiding: false,\n    header: \"\",\n    size: 20,\n    cell: ({ row }) =>\n      row.getCanExpand() ? (\n        <button\n          className=\"ml-8\"\n          {...{\n            onClick: row.getToggleExpandedHandler(),\n            style: { cursor: \"pointer\" },\n          }}\n        >\n          {row.getIsExpanded() ? \"👇\" : \"👉\"}\n        </button>\n      ) : (\n        \"🔵\"\n      ),\n  });\n\n  const indexColumn = columnHelper.display({\n    id: \"index\",\n    enablePinning: false,\n    enableHiding: false,\n\n    header: \"\",\n    size: 10,\n\n    cell: ({ table, row }) => {\n      const allRows = table.getFilteredRowModel().rows;\n      const visualIndex = allRows.findIndex((r) => r.id === row.id) + 1;\n      return <IndexColumn border>{visualIndex}</IndexColumn>;\n    },\n  });\n\n  const token = useAppTheme();\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const getFilterColumn = (threeDot: (value: T) => any) => {\n    return columnHelper.display({\n      id: \"filter\",\n      size: 40,\n      header: \"\",\n      cell: (info) => (\n        <a onClick={(event) => event.stopPropagation()}>\n          <EIcon icon={\"bi:three-dots-vertical\"} color={token.neutral7} />\n        </a>\n      ),\n    });\n  };\n\n  const [rowSelectionState, setRowSelectionState] = useState<RowSelectionState>(\n    {}\n  );\n  const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);\n\n  return {\n    rowSelectionState,\n    setRowSelectionState,\n    columnHelper,\n    rowSelectionColumn,\n    getFilterColumn,\n    expandableColumn,\n    selectedRowKeys,\n    setSelectedRowKeys,\n    indexColumn,\n  };\n};\n","import { Table } from \"@tanstack/react-table\"\nimport _ from \"lodash\"\nimport { DensityState } from \"./table.types\"\nimport { useTanstackTable } from \"./useTanstackTable\"\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const getHiddenColumns = (columns: any[]) => {\n  // note returns an object with column id as key and boolean as value\n  const hiddenColumns = columns.reduce((acc, column) => {\n    return {\n      ...acc,\n      [column.id || column.accessorKey]: !column?.meta?.hidden,\n    }\n  }, {})\n  return hiddenColumns\n}\nexport const getRowIds = <T,>(table: Table<T>) =>\n  _.keys(_.pickBy(table?.getState()?.rowSelection, _.identity))\n\nexport const getSelectedRowModel = <T,>(table: Table<T>) =>\n  table?.getSelectedRowModel()?.flatRows?.map((row) => row.original)\n\nexport const getCellSize = (type: DensityState) => {\n  switch (type) {\n    case \"small\":\n      return \"py-2\"\n    case \"middle\":\n      return \"py-4\"\n    case \"large\":\n      return \"py-6\"\n    default:\n      return \"py-2\"\n  }\n}\n\nexport const getBordered = (bordered: boolean) => {\n  return bordered ? \"border\" : \"\"\n}\n\nexport const handlePinColumn = (\n  columnId: string,\n  pinType: \"left\" | \"right\",\n  table: Table<unknown>,\n) => {\n  const currentPinned = table.getState().columnPinning\n  const newPinned = { ...currentPinned }\n\n  if (pinType === \"right\") {\n    // note Remove the column if it already exists in either pinned group\n    newPinned.left = newPinned.left?.filter((id) => id !== columnId) || []\n    newPinned.right = newPinned.right?.filter((id) => id !== columnId) || []\n\n    // note Insert the new column before 'filter' or at the end if 'filter' isn't found\n    const filterIndex = newPinned.right.findIndex((id) => id === \"filter\")\n    if (filterIndex !== -1) {\n      newPinned.right.splice(filterIndex, 0, columnId) // note Insert before 'filter'\n    } else {\n      newPinned.right.push(columnId) // note Add to the end\n    }\n  } else if (pinType === \"left\") {\n    // note Remove from 'right' if it exists\n    newPinned.right = newPinned.right?.filter((id) => id !== columnId) || []\n    newPinned.left = [...(newPinned.left || []), columnId]\n  }\n\n  table.setColumnPinning(newPinned)\n}\n\nexport const getExtraColumns = <T,>({\n  rowSelection,\n  rowExpandable,\n}: {\n  rowSelection?: unknown\n  rowExpandable?: unknown\n}) => {\n  // eslint-disable-next-line react-hooks/rules-of-hooks\n  const { rowSelectionColumn, expandableColumn } = useTanstackTable<T>()\n\n  const allExtraColumns = {\n    rowSelection: rowSelectionColumn,\n    rowExpandable: expandableColumn,\n  }\n  return Object.values(\n    _.pickBy(allExtraColumns, (_, key) => {\n      return (\n        (rowSelection && key === \"rowSelection\") ||\n        (rowExpandable && key === \"rowExpandable\")\n      )\n    }),\n  )\n}\n\nexport const isIndeterminate = (selected: string[], allOptions: string[]) => {\n  return selected?.length > 0\n    ? selected?.some((item) => allOptions?.includes(item))\n    : false\n}\n\nexport const isCheckAll = (selected: string[], allOptions: string[]) =>\n  selected?.length === allOptions?.length && allOptions?.length > 0\nexport const getColumnAggregation = <T,>(rows: T[], accessor: string) => {\n  const values = rows\n    .map((row) => row[accessor as keyof typeof row])\n    .filter(Boolean)\n\n  return {\n    sum: values.reduce((a, b) => a + (Number(b) || 0), 0),\n    avg: values.length\n      ? values.reduce((a, b) => a + (Number(b) || 0), 0) / values.length\n      : 0,\n    min: Math.min(...values.map((v) => Number(v) || 0)),\n    max: Math.max(...values.map((v) => Number(v) || 0)),\n    count: values.length,\n  }\n}\n","export const PAGINATION_PAGE_SIZE_OPTIONS = [\n  { value: \"10\", label: \"10 / Page\" },\n  { value: \"20\", label: \"20 / Page\" },\n  { value: \"50\", label: \"50 / Page\" },\n  { value: \"100\", label: \"100 / Page\" },\n]\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from \"react\";\n\nimport {\n  Checkbox,\n  Flex,\n  Image,\n  Input,\n  InputNumber,\n  InputRef,\n  Popover,\n  Select,\n  Space,\n} from \"antd\";\nimport {\n  EButton,\n  EDividerWithNoStyle,\n  EHeading,\n  EPopover,\n  ETab,\n  EText,\n  ETooltip,\n  ProDatePicker,\n  TableClearButton,\n} from \"~/components/common\";\nimport {\n  CaretDownOutlined,\n  CaretUpOutlined,\n  FilterOutlined,\n  SearchOutlined,\n  SettingOutlined,\n  VerticalAlignBottomOutlined,\n  VerticalAlignMiddleOutlined,\n  VerticalAlignTopOutlined,\n} from \"@ant-design/icons\";\nimport { Column, Header, Table, TableState } from \"@tanstack/react-table\";\nimport {\n  ForwardedRef,\n  forwardRef,\n  Fragment,\n  useCallback,\n  useEffect,\n  useImperativeHandle,\n  useMemo,\n  useRef,\n  useState,\n} from \"react\";\nimport { useAppTheme } from \"~/theme\";\nimport {\n  CustomColumnMeta,\n  OptionConfig,\n  TableEditableCellProps,\n  TableRef,\n  TanstackToolbarProps,\n} from \"./table.types\";\n\nimport { useSortable } from \"@dnd-kit/sortable\";\nimport { TableInputFieldTypes, TableInput } from \"./tableInput\";\nimport { assets } from \"~/assets/index\";\nimport _, { isArray } from \"lodash\";\nimport { handlePinColumn, isCheckAll, isIndeterminate } from \"./tableUtils\";\nimport { DefaultOptionType } from \"antd/es/select\";\nimport { useHotkeys } from \"react-hotkeys-hook\";\nimport { IconZoomExclamation } from \"@tabler/icons-react\";\nimport { useSafeState } from \"ahooks\";\nimport Link from \"antd/es/typography/Link\";\nimport { PAGINATION_PAGE_SIZE_OPTIONS } from \"./tableConstant\";\nimport dayjs from \"dayjs\";\nimport { ProFormDateRangePicker } from \"@ant-design/pro-components\";\n\nexport const FilterDropDown = ({ column }: { column: Column<any> }) => {\n  const { filterVariant = \"search\", valueEnum } = (column.columnDef.meta ??\n    {}) as CustomColumnMeta<any, any>;\n\n  const token = useAppTheme();\n  const [value, setValue] = useSafeState<any>(undefined);\n  const searchInputRef = useRef<InputRef>(null);\n  const [isDropdownVisible, setIsDropdownVisible] = useState(false);\n\n  const sortedUniqueValues = useMemo(\n    () =>\n      filterVariant === \"range\"\n        ? []\n        : // eslint-disable-next-line @typescript-eslint/require-array-sort-compare\n          Array.from(column.getFacetedUniqueValues().keys())\n            .sort()\n            .slice(0, 5000)\n            .filter((item) => item),\n    [column.getFacetedUniqueValues(), filterVariant, isDropdownVisible]\n  );\n\n  const items = [\n    {\n      key: \"search\",\n\n      label: (\n        <Input\n          ref={searchInputRef}\n          width={\"sm\"}\n          type=\"text\"\n          onFocusCapture={(e) => {\n            if (e.target.value) {\n              searchInputRef.current?.select();\n            }\n          }}\n          value={value}\n          onChange={(e) => {\n            setValue(e?.target?.value);\n            _.debounce(() => column?.setFilterValue(e.target.value), 300)();\n          }}\n          placeholder={`Search...`}\n          onClick={(e) => e.stopPropagation()}\n        />\n      ),\n      disabled: filterVariant !== \"search\",\n    },\n    {\n      key: \"date\",\n      label: (\n        <ProDatePicker\n          ref={searchInputRef}\n          width={\"sm\"}\n          fieldProps={{\n            open: isDropdownVisible,\n            size: \"middle\",\n            value,\n            onClick: (e: any) => e.stopPropagation(),\n            onChange: (e: any) => {\n              if (e) {\n                setValue(e);\n                column?.setFilterValue(\n                  dayjs(dayjs(e).toISOString()).format(\"YYYY-MM-DD\")\n                );\n              } else {\n                setValue(undefined);\n                column?.setFilterValue(undefined);\n              }\n            },\n\n            placeholder: \"Select date\",\n          }}\n        />\n      ),\n      disabled: filterVariant !== \"date\",\n    },\n    {\n      key: \"date-range\",\n      label: (\n        <ProFormDateRangePicker\n          fieldProps={{\n            showNow: true,\n            value,\n            onClick: (e) => {\n              e.stopPropagation();\n              setIsDropdownVisible(true);\n            },\n            onChange: (e) => {\n              if (e) {\n                setValue(e);\n                column?.setFilterValue([\n                  dayjs(dayjs(e[0]).toISOString()).format(\"YYYY-MM-DD\"),\n                  dayjs(dayjs(e[1]).toISOString()).format(\"YYYY-MM-DD\"),\n                ]);\n                setIsDropdownVisible(false);\n              } else {\n                setValue(undefined);\n                column?.setFilterValue(undefined);\n                setIsDropdownVisible(false);\n              }\n            },\n          }}\n        />\n      ),\n      disabled: filterVariant !== \"date-range\",\n    },\n    {\n      key: \"multi-select\",\n      onMouseEnter: () => {\n        searchInputRef.current?.focus();\n      },\n      label: (\n        <div\n          onClick={(e) => {\n            e.stopPropagation();\n          }}\n          style={{ width: \"100%\", padding: \"4px\" }}\n        >\n          <Checkbox\n            className=\"mb-3\"\n            indeterminate={\n              isArray(column?.getFilterValue())\n                ? isIndeterminate(\n                    column?.getFilterValue() as string[],\n                    sortedUniqueValues\n                  ) &&\n                  !isCheckAll(\n                    column?.getFilterValue() as string[],\n                    sortedUniqueValues\n                  )\n                : false\n            }\n            checked={isCheckAll(\n              column?.getFilterValue() as string[],\n              sortedUniqueValues\n            )}\n            onChange={(e) => {\n              if (e.target.checked) {\n                column?.setFilterValue(sortedUniqueValues);\n              } else {\n                column?.setFilterValue(undefined);\n              }\n            }}\n          >\n            Select all items\n          </Checkbox>\n          <div className=\"mb-2\">\n            {sortedUniqueValues?.map((item) => {\n              return (\n                <div className=\"pl-5\" key={item}>\n                  <Checkbox\n                    className=\"mb-1 hover:bg-gray-100 w-full rounded-sm\"\n                    style={{\n                      color: token.neutral9,\n                    }}\n                    name={item}\n                    checked={(column?.getFilterValue() as string[])?.includes(\n                      item\n                    )}\n                    onChange={(e) => {\n                      e.stopPropagation();\n                      column?.setFilterValue((prev: any) => {\n                        if (prev?.includes(item)) {\n                          return prev?.filter((i: any) => i !== item);\n                        } else {\n                          return [...(prev ?? []), item];\n                        }\n                      });\n                    }}\n                  >\n                    {item}\n                  </Checkbox>\n                </div>\n              );\n            })}\n          </div>\n          <EDividerWithNoStyle\n            style={{\n              marginInline: \"-18px\",\n              marginTop: \"0\",\n              marginBottom: 4,\n              width: \"calc(100% + 34px)\",\n            }}\n          />\n          <Link\n            disabled={\n              isArray(column.getFilterValue())\n                ? (column.getFilterValue() as string[])?.length === 0\n                : true\n            }\n            onClick={(e) => {\n              e.stopPropagation();\n              column.setFilterValue(undefined);\n            }}\n          >\n            Reset\n          </Link>\n        </div>\n      ),\n\n      onClick: (e: any) => e.stopPropagation(),\n      disabled: filterVariant !== \"multi-select\",\n    },\n    {\n      key: \"select\",\n      onMouseEnter: () => {\n        searchInputRef.current?.focus();\n      },\n\n      label: (\n        <select\n          style={{\n            width: \"100%\",\n            padding: \"4px\",\n          }}\n          onChange={(e) => {\n            column.setFilterValue(e.target.value);\n            setValue(e.target.value);\n          }}\n          value={column.getFilterValue()?.toString()}\n          onClick={(e) => e.stopPropagation()}\n        >\n          <option value=\"\">All</option>\n          {sortedUniqueValues.map((value) => (\n            // note dynamically generated select options from faceted values feature\n            <option value={value} key={value}>\n              {valueEnum ? valueEnum?.[value]?.text : value}\n            </option>\n          ))}\n        </select>\n      ),\n      disabled: filterVariant !== \"select\",\n    },\n  ].filter((item) => !item.disabled);\n\n  return (\n    <Popover content={items[0]?.label} title={undefined} trigger=\"click\">\n      {filterVariant === \"search\" ? (\n        value ? (\n          <IconZoomExclamation\n            size={16}\n            style={{\n              color: token.info7,\n            }}\n          />\n        ) : (\n          <SearchOutlined\n            onClick={(e) => {\n              e.stopPropagation();\n              searchInputRef.current?.focus();\n            }}\n            style={{\n              marginRight: 2,\n              marginLeft: 12,\n              color: value ? `${token.StormyNight}` : `${token.neutral7}`,\n            }}\n          />\n        )\n      ) : (\n        <FilterOutlined\n          onClick={(e) => {\n            e.stopPropagation();\n            searchInputRef.current?.focus();\n          }}\n          style={{\n            marginRight: 2,\n            marginLeft: 12,\n            fontWeight: 500,\n            color:\n              value || column.getFilterValue()\n                ? `${token.info7}`\n                : `${token.neutral7}`,\n          }}\n        />\n      )}\n    </Popover>\n  );\n};\n\ninterface ColumnDropDownProps<T> {\n  column: Table<T>;\n}\n\nexport const ColumnDropDown = <T,>(table: ColumnDropDownProps<T>) => {\n  const token = useAppTheme();\n  const defaultPinnedColumns = [\"rowSelection\", \"filter\"];\n  const handleColumnVisibilityChange = (\n    columnId: string,\n    isVisible: boolean\n  ) => {\n    table.column.setColumnVisibility((prev) => ({\n      ...prev,\n      [columnId]: isVisible,\n    }));\n  };\n\n  const allColumns = table?.column\n    ?.getAllLeafColumns()\n    ?.filter((column) => !defaultPinnedColumns.includes(column.id));\n\n  const leftColumns = useMemo(() => {\n    return allColumns?.filter((column) => column.getIsPinned() === \"left\");\n  }, [table]);\n\n  const rightColumns = useMemo(() => {\n    return allColumns?.filter((column) => column.getIsPinned() === \"right\");\n  }, [table]);\n\n  const unPinnedColumns = useMemo(() => {\n    return allColumns?.filter(\n      (column) => !column.getIsPinned() && column?.getCanPin()\n    );\n  }, [table]);\n\n  const Content = () => {\n    return (\n      <>\n        {/* note columns pinned to left */}\n        {leftColumns.length > 0 && (\n          <Flex vertical gap={8} flex={1}>\n            <EText>Fixed to Left</EText>\n\n            {leftColumns.map((column: any) => {\n              return (\n                <>\n                  <Flex key={column.id} gap={8}>\n                    {/* note Checkbox to toggle column visibility */}\n                    <Checkbox\n                      checked={column.getIsVisible()}\n                      disabled={!column.getCanHide()}\n                      onChange={column.getToggleVisibilityHandler()}\n                    />{\" \"}\n                    {/* note Column Pinning */}\n                    <Flex flex={1} justify=\"space-between\">\n                      <EText>{column.columnDef.header}</EText>\n                      <Space.Compact>\n                        {column.getIsPinned() === \"left\" ? (\n                          <Flex>\n                            <ETooltip title=\"Unpin\">\n                              <VerticalAlignMiddleOutlined\n                                onClick={() => {\n                                  column?.pin(false);\n                                }}\n                                className=\"cursor-pointer\"\n                              />\n                            </ETooltip>\n                            <ETooltip title=\"Pin Right\">\n                              <VerticalAlignBottomOutlined\n                                onClick={() => {\n                                  column?.pin(\"right\");\n                                  handlePinColumn(\n                                    column.id,\n                                    \"right\",\n                                    table.column as Table<unknown>\n                                  );\n                                }}\n                                className=\"cursor-pointer\"\n                              />\n                            </ETooltip>\n                          </Flex>\n                        ) : (\n                          <Flex>\n                            <ETooltip title=\"Pin Left\">\n                              <VerticalAlignTopOutlined\n                                onClick={() => {\n                                  column?.pin(\"left\");\n                                }}\n                                className=\"cursor-pointer\"\n                              />\n                            </ETooltip>\n                            <ETooltip title=\"Unpin\">\n                              <VerticalAlignMiddleOutlined\n                                onClick={() => {\n                                  column?.pin(false);\n                                }}\n                                className=\"cursor-pointer\"\n                              />\n                            </ETooltip>\n                          </Flex>\n                        )}\n                      </Space.Compact>\n                    </Flex>\n                  </Flex>\n                </>\n              );\n            })}\n          </Flex>\n        )}\n\n        {/* note  unpinned columns */}\n        {unPinnedColumns?.length > 0 && (\n          <Flex vertical gap={8} flex={1}>\n            <EText>Unpinned</EText>\n\n            {unPinnedColumns?.map((column: any) => {\n              return (\n                <Flex key={column.id} gap={8}>\n                  {/* note Checkbox to toggle column visibility */}\n                  <Checkbox\n                    checked={column.getIsVisible()}\n                    disabled={!column.getCanHide()}\n                    onChange={(e) =>\n                      handleColumnVisibilityChange(column.id, e.target.checked)\n                    }\n                  />{\" \"}\n                  {/* note Column Pinning */}\n                  <Flex flex={1} justify=\"space-between\">\n                    <EText>{column.columnDef.header}</EText>\n                    <Space.Compact>\n                      <ETooltip title=\"Pin Left\">\n                        <VerticalAlignTopOutlined\n                          onClick={() => {\n                            column?.pin(\"left\");\n                          }}\n                          className=\"cursor-pointer\"\n                        />\n                      </ETooltip>\n                      <ETooltip title=\"Pin Right\">\n                        <VerticalAlignBottomOutlined\n                          onClick={() => {\n                            column?.pin(\"right\");\n                            handlePinColumn(\n                              column.id,\n                              \"right\",\n                              table.column as Table<unknown>\n                            );\n                          }}\n                          className=\"cursor-pointer\"\n                        />\n                      </ETooltip>\n                    </Space.Compact>\n                  </Flex>\n                </Flex>\n              );\n            })}\n          </Flex>\n        )}\n\n        {/* note columns pinned to right */}\n        {rightColumns.length > 0 && (\n          <Flex vertical gap={8} flex={1}>\n            <EText>Fixed to right</EText>\n\n            {rightColumns.map((column: any) => {\n              return (\n                <>\n                  <Flex key={column.id} gap={8}>\n                    {/* note Checkbox to toggle column visibility */}\n                    <Checkbox\n                      checked={column.getIsVisible()}\n                      disabled={!column.getCanHide()}\n                      onChange={column.getToggleVisibilityHandler()}\n                    />{\" \"}\n                    {/* note Column Pinning */}\n                    <Flex flex={1} justify=\"space-between\">\n                      <EText>{column.columnDef.header}</EText>\n                      <Space.Compact>\n                        {column.getIsPinned() === \"left\" ? (\n                          <Flex>\n                            <ETooltip title=\"Pin Right\">\n                              <VerticalAlignBottomOutlined\n                                onClick={() => {\n                                  column?.pin(\"right\");\n                                }}\n                                className=\"cursor-pointer\"\n                              />\n                            </ETooltip>\n                            <ETooltip title=\"Unpin\">\n                              <VerticalAlignMiddleOutlined\n                                onClick={() => {\n                                  column?.pin(false);\n                                }}\n                                className=\"cursor-pointer\"\n                              />\n                            </ETooltip>\n                          </Flex>\n                        ) : (\n                          <Flex>\n                            <ETooltip title=\"Unpin\">\n                              <VerticalAlignMiddleOutlined\n                                onClick={() => {\n                                  column?.pin(false);\n                                }}\n                                className=\"cursor-pointer\"\n                              />\n                            </ETooltip>\n                            <ETooltip title=\"Pin Left\">\n                              <VerticalAlignTopOutlined\n                                onClick={() => {\n                                  column?.pin(\"left\");\n                                }}\n                                className=\"cursor-pointer\"\n                              />\n                            </ETooltip>\n                          </Flex>\n                        )}\n                      </Space.Compact>\n                    </Flex>\n                  </Flex>\n                </>\n              );\n            })}\n          </Flex>\n        )}\n      </>\n    );\n  };\n\n  const Title = () => {\n    return (\n      <Flex gap={8}>\n        <Checkbox\n          checked={table?.column?.getIsAllColumnsVisible()}\n          onChange={table?.column?.getToggleAllColumnsVisibilityHandler()}\n        />\n\n        <EText>Columns Display</EText>\n      </Flex>\n    );\n  };\n  return (\n    <EPopover\n      placement=\"bottomRight\"\n      content={<Content />}\n      title={<Title />}\n      trigger=\"click\"\n      arrow={false}\n    >\n      <SettingOutlined\n        className=\"cursor-pointer text-md\"\n        style={{\n          color: token.neutral10,\n        }}\n      />\n    </EPopover>\n  );\n};\n\nexport const SortableHeader: React.FC<{\n  header: Header<unknown, unknown>;\n}> = ({ header }) => {\n  const token = useAppTheme();\n  const { column } = header;\n\n  const getIconColor = (direction: \"asc\" | \"desc\") =>\n    column.getIsSorted() === direction ? token.primary7 : token.neutral7;\n\n  const sortingIcons = (\n    <Flex className=\"cursor-pointer\" vertical gap={0}>\n      <CaretUpOutlined\n        style={{\n          color: getIconColor(\"asc\"),\n          fontSize: \"12px\",\n          margin: \"0\",\n        }}\n      />\n      <CaretDownOutlined\n        style={{\n          color: getIconColor(\"desc\"),\n          fontSize: \"12px\",\n          margin: \"0\",\n        }}\n      />\n    </Flex>\n  );\n\n  return <div className=\"font-bold\">{sortingIcons}</div>;\n};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport const EditableCell: React.FC<TableEditableCellProps> = ({\n  valueType = \"text\" as TableInputFieldTypes,\n  getValue,\n  row: { index },\n  column: { id },\n  table,\n  inputItemProps = {},\n  form,\n}) => {\n  const initialValue = inputItemProps?.initialValue ?? getValue();\n  const searchInputRef = useRef<any>(null);\n  const [value, setValue] = useSafeState(initialValue);\n\n  // note When the input is blurred, we'll call our table meta's updateData function\n  const onBlur = () => {\n    table.options.meta?.updateData(index, id, value);\n  };\n\n  const handleKeyDown = useCallback((e: any) => {\n    if (e.key.length === 1 && e.key !== \"enter\") {\n      searchInputRef.current?.focus();\n    }\n  }, []);\n\n  // note If the initialValue is changed external, sync it up with our state\n  useEffect(() => {\n    setValue(initialValue);\n  }, [initialValue, form.getFieldError(id)[0]]);\n\n  return (\n    <ETooltip\n      title={form.getFieldError(id)[0]}\n      trigger={[\"hover\", \"focus\", \"click\"]}\n      forceRender\n      autoAdjustOverflow\n      placement=\"bottom\"\n    >\n      <div key={id} tabIndex={0} onKeyDown={handleKeyDown}>\n        <TableInput\n          tooltip={form.getFieldError(id)[0]}\n          name={id}\n          {...inputItemProps}\n          type={valueType as TableInputFieldTypes}\n          size=\"middle\"\n          initialValue={value}\n          hasFeedback\n          fieldProps={{\n            ref: searchInputRef,\n            ...inputItemProps.fieldProps,\n            size: \"middle\",\n            value,\n            onChange: (e: any) => {\n              if (typeof e === \"object\") {\n                setValue(e?.target?.value);\n              } else {\n                setValue(e);\n              }\n            },\n            onBlur,\n            onKeyDown: (e) => {\n              if (e.key === \"Enter\") {\n                onBlur();\n              }\n            },\n            onFocusCapture: (e) => {\n              if (e.target.value) {\n                searchInputRef.current?.select();\n              }\n            },\n          }}\n          rules={inputItemProps?.rules}\n        />\n      </div>\n    </ETooltip>\n  );\n};\n\nexport const SortableColumns: React.FC<{\n  children: React.ReactNode;\n  id: string | number;\n}> = ({ children, id }) => {\n  const { attributes, listeners, setNodeRef, transform, transition } =\n    useSortable({ id });\n\n  return (\n    <div\n      ref={setNodeRef}\n      style={{\n        transform: `translateY(${transform?.y}px)`,\n        transition,\n        ...attributes,\n      }}\n      {...listeners}\n    >\n      {children}\n    </div>\n  );\n};\n\ninterface CheckboxProps {\n  indeterminate: boolean;\n  className?: string;\n  checked: boolean;\n}\n\nexport const IndeterminateCheckbox: React.FC<CheckboxProps> = ({\n  indeterminate,\n  className = \"\",\n  ...rest\n}) => {\n  const ref = useRef<HTMLInputElement>(null!);\n\n  useEffect(() => {\n    if (typeof indeterminate === \"boolean\") {\n      ref.current.indeterminate = !rest.checked && indeterminate;\n    }\n  }, [ref, indeterminate]);\n\n  return (\n    <input\n      type=\"checkbox\"\n      ref={ref}\n      size={200}\n      className={className + \" cursor-pointer\"}\n      {...rest}\n    />\n  );\n};\n\nexport const TanstackTablePagination = <T,>({\n  tableInstance,\n  table,\n}: {\n  table: Table<T>;\n  tableInstance: TableState;\n}) => {\n  const { pageSize, pageIndex } = tableInstance.pagination;\n  const startRow = pageIndex * pageSize + 1;\n  const endRow = Math.min((pageIndex + 1) * pageSize, table?.getRowCount());\n\n  const token = useAppTheme();\n  return (\n    <Flex\n      justify=\"space-between\"\n      align=\"center\"\n      gap={4}\n      style={{ marginBottom: 16 }}\n      wrap=\"wrap\"\n    >\n      <div className=\"flex items-center gap-2 justify-end align-middle\">\n        <Flex\n          align=\"center\"\n          justify=\"center\"\n          gap={3}\n          wrap=\"wrap\"\n          style={{ width: \"max-content\", marginRight: 16 }}\n        >\n          <EText fontSize=\"12px\" color={token.neutral7} fontWeight=\"500\">\n            Displaying\n          </EText>\n\n          {/* Note -  <EText fontWeight=\"500\">{range[1] - range[0] + 1}</EText> */}\n          <EText fontWeight=\"500\">\n            {startRow.toLocaleString()} - {endRow.toLocaleString()}\n          </EText>\n          <EText fontSize=\"12px\" color={token.neutral7} fontWeight=\"500\">\n            out of\n          </EText>\n          <EText fontWeight=\"500\">\n            {table.getRowCount().toLocaleString()}{\" \"}\n          </EText>\n        </Flex>\n        <span className=\"flex items-center gap-1\">\n          <EText fontSize=\"12px\" color={token.neutral7}>\n            Page\n          </EText>\n          <div>\n            <EText fontWeight=\"500\">\n              {table.getState().pagination.pageIndex + 1}{\" \"}\n            </EText>\n            <EText fontSize=\"12px\" color={token.neutral7}>\n              of {\"\"}\n            </EText>\n            <EText fontWeight=\"500\">\n              {table.getPageCount().toLocaleString()}\n            </EText>\n          </div>\n        </span>\n\n        <Select\n          value={table.getState().pagination.pageSize.toString()}\n          onChange={(e) => {\n            table.setPageSize(Number(e));\n          }}\n          style={{ width: 120 }}\n          size=\"small\"\n          options={PAGINATION_PAGE_SIZE_OPTIONS}\n        />\n      </div>\n\n      <div className=\"flex items-center gap-2 justify-end\">\n        <ETooltip title={\"Go to First page\"}>\n          <EButton\n            size=\"small\"\n            style={{ fontWeight: 400 }}\n            className=\"border rounded p-1 cursor-pointer\"\n            onClick={() => table.firstPage()}\n            disabled={!table.getCanPreviousPage()}\n            type=\"link\"\n          >\n            {\"<<\"}\n          </EButton>\n        </ETooltip>\n        <EButton\n          size=\"small\"\n          style={{ fontWeight: 400, fontSize: 13 }}\n          className=\"border rounded p-1 cursor-pointer\"\n          onClick={() => table.previousPage()}\n          disabled={!table.getCanPreviousPage()}\n        >\n          Prev\n        </EButton>\n        <EButton\n          size=\"small\"\n          style={{ fontWeight: 400, fontSize: 13 }}\n          className=\"border rounded p-1 cursor-pointer\"\n          onClick={() => table.nextPage()}\n          disabled={!table.getCanNextPage()}\n        >\n          Next\n        </EButton>\n        <ETooltip title={\"Go to last page\"}>\n          <EButton\n            size=\"small\"\n            style={{ fontWeight: 400 }}\n            className=\"border rounded p-1 cursor-pointer\"\n            onClick={() => table.lastPage()}\n            disabled={!table.getCanNextPage()}\n            type=\"link\"\n          >\n            {\">>\"}\n          </EButton>\n        </ETooltip>\n\n        <span className=\"flex items-center gap-1\">\n          <EText fontSize=\"12px\" color={token.neutral7}>\n            | Go to page:\n          </EText>\n\n          <InputNumber\n            max={table.getPageCount()}\n            min={1}\n            defaultValue={table.getState().pagination.pageIndex + 1}\n            onChange={(e) => {\n              const page = e ? Number(e) - 1 : 0;\n              table.setPageIndex(page);\n            }}\n            size=\"small\"\n          />\n        </span>\n      </div>\n    </Flex>\n  );\n};\n\nexport const TanstackTableEmpty = () => {\n  const token = useAppTheme();\n  return (\n    <Flex\n      justify=\"center\"\n      align=\"center\"\n      gap={41}\n      vertical\n      style={{ marginTop: 43 }}\n    >\n      {/* Note: Displaying the 'noDataImg' from the 'assets' module */}\n      <Image\n        src={assets.noDataImg}\n        preview={false}\n        style={{ width: 110, height: 110 }}\n      />\n\n      {/* Note: Displaying a heading indicating 'No data found' with specified styles */}\n      <EHeading\n        level={3}\n        fontWeight=\"500\"\n        color={token.neutral7}\n        style={{ marginLeft: 20 }}\n      >\n        No data found\n      </EHeading>\n    </Flex>\n  );\n};\n\nexport const TanstackToolbar = forwardRef(\n  (props: TanstackToolbarProps, ref: ForwardedRef<TableRef | undefined>) => {\n    const { actions, menu, options, subTitle, table, title } = props;\n    const token = useAppTheme();\n    const isMenuEmpty =\n      Object.keys(menu || {}).length === 0 && menu?.constructor === Object;\n\n    return (\n      <>\n        <Flex\n          justify=\"space-between\"\n          flex={1}\n          gap={6}\n          wrap=\"wrap\"\n          style={{\n            marginBlock: 16,\n            padding: 16,\n            backgroundColor: token.winterWhisper,\n            borderRadius: 16,\n          }}\n        >\n          <Flex justify=\"flex-start\" gap={8} align=\"center\" wrap=\"wrap\">\n            {isMenuEmpty && (title || subTitle) ? (\n              <Flex vertical gap={2}>\n                {typeof title === \"string\" ? (\n                  <EHeading\n                    style={{\n                      marginBottom: 0,\n                    }}\n                    level={5}\n                    fontWeight=\"500\"\n                    color={token.neutral7}\n                  >\n                    {title}\n                  </EHeading>\n                ) : (\n                  title\n                )}\n                {typeof subTitle === \"string\" ? (\n                  <EText color={token.neutral7}>{subTitle}</EText>\n                ) : (\n                  subTitle\n                )}\n              </Flex>\n            ) : (\n              <div />\n            )}\n            {isMenuEmpty && options?.search ? (\n              <TanstackGlobalFilter\n                ref={ref}\n                table={table as Table<unknown>}\n                options={options?.search}\n              />\n            ) : (\n              <div />\n            )}\n\n            {menu?.type === \"tab\" && (\n              <ETab\n                type=\"line\"\n                size=\"small\"\n                tabBarStyle={{\n                  borderBottom: \"none\",\n                }}\n                items={menu?.items}\n                activeKey={menu?.activeKey}\n                defaultActiveKey={menu?.defaultActiveKey}\n                onChange={menu?.onChange}\n              />\n            )}\n            {menu?.type === \"dropdown\" && (\n              <Select\n                options={\n                  menu?.items?.map((item) => ({\n                    label: item.label,\n                    value: item.key,\n                  })) as DefaultOptionType[]\n                }\n                value={menu?.activeKey}\n                allowClear={false}\n                defaultValue={menu?.defaultActiveKey}\n                onChange={menu?.onChange}\n                style={{ width: 200 }}\n              />\n            )}\n          </Flex>\n\n          <Flex justify=\"flex-end\" align=\"center\" gap={8} wrap=\"wrap\">\n            {!isMenuEmpty && options?.search ? (\n              <TanstackGlobalFilter\n                table={table as Table<unknown>}\n                options={options?.search}\n              />\n            ) : undefined}\n            {actions?.map((Action, index) => (\n              <Fragment key={index}>{Action}</Fragment>\n            ))}\n          </Flex>\n        </Flex>\n      </>\n    );\n  }\n) as any;\n\nexport const TanstackTableRowSelection: React.FC<{\n  table: Table<any>;\n  render?: React.ReactNode;\n}> = ({ table, render }) => {\n  const token = useAppTheme();\n  const rowCount =\n    Object?.keys(table.getState()?.rowSelection).filter(\n      (key) => table.getState()?.rowSelection[key]\n    ).length === table.getRowModel().rows.length &&\n    Object?.keys(table.getState()?.rowSelection).filter(\n      (key) => table.getState()?.rowSelection[key]\n    ).length !== table.getRowCount();\n  const selectedRowCount = Object?.values(\n    table.getState()?.rowSelection\n  ).filter((item) => item)?.length;\n\n  return (\n    <Flex\n      justify=\"space-between\"\n      flex={1}\n      wrap=\"wrap\"\n      gap={6}\n      style={{\n        marginBlock: 16,\n        padding: 16,\n        backgroundColor: token.winterWhisper,\n        borderRadius: 16,\n      }}\n    >\n      <Flex justify=\"flex-start\" gap={8} align=\"center\" wrap=\"wrap\">\n        {/* Note: Displaying the total number of items selected */}\n        {rowCount ? (\n          <>\n            <EText fontWeight=\"500\" color={token.neutral7}>\n              All {selectedRowCount} items on this page are selected.\n            </EText>\n            <EButton\n              type=\"link\"\n              onClick={() => {\n                table.toggleAllRowsSelected();\n              }}\n            >\n              Select all &nbsp;{table.getPreFilteredRowModel().rows.length}\n              &nbsp; items in the table.\n            </EButton>\n          </>\n        ) : (\n          <EText fontWeight=\"500\" color={token.neutral7}>\n            {selectedRowCount} items selected\n          </EText>\n        )}\n      </Flex>\n\n      {\n        // Note: Displaying the 'render' prop if it is passed\n\n        render ? (\n          <Flex justify=\"flex-end\">{render}</Flex>\n        ) : (\n          <Flex justify=\"flex-end\" align=\"center\" gap={8} wrap=\"wrap\">\n            <Space size={\"small\"}>\n              {render}\n              <TableClearButton\n                onClick={() => {\n                  table.resetRowSelection();\n                }}\n                indicator={Object.keys(table.getState()?.rowSelection).length}\n              />\n            </Space>\n          </Flex>\n        )\n      }\n    </Flex>\n  );\n};\n\ninterface TanstackGlobalFilterProps {\n  table: Table<unknown>;\n  options?: OptionConfig[\"search\"];\n}\n\nexport const TanstackGlobalFilter = forwardRef<\n  TableRef | undefined,\n  TanstackGlobalFilterProps\n>(({ table, options }: any, ref) => {\n  const token = useAppTheme();\n  const [searchText, setSearchText] = useState(\"\");\n  const searchInputRef = useRef<InputRef>(null);\n\n  useHotkeys(\"meta+f\", (e) => {\n    searchInputRef.current?.focus();\n    e.preventDefault();\n  });\n\n  const { placeholder, autoFocus } = options;\n\n  // note Use the forwarded ref to expose focus/blur methods\n  useImperativeHandle(ref, () => ({\n    reload: () => {\n      table?.options.meta?.reload();\n    },\n    focus: () => {\n      searchInputRef.current?.focus();\n    },\n    blur: () => {\n      searchInputRef.current?.blur();\n    },\n  }));\n\n  return (\n    <Input\n      autoFocus={autoFocus ?? true}\n      ref={searchInputRef}\n      style={{\n        width: 200,\n        borderRadius: 8,\n        borderColor: token.neutral7,\n        color: token.neutral7,\n      }}\n      onFocusCapture={(e) => {\n        if (e.target.value) {\n          searchInputRef.current?.select();\n        }\n      }}\n      onBlur={() => {\n        searchInputRef.current?.blur();\n      }}\n      value={searchText}\n      onChange={(e) => {\n        setSearchText(e.target.value);\n        _.debounce(() => table.setGlobalFilter(e.target.value), 500)();\n      }}\n      placeholder={placeholder || \"Search...\"}\n      prefix={\n        <SearchOutlined\n          style={{\n            color: token.neutral7,\n            fontSize: 16,\n          }}\n        />\n      }\n    />\n  );\n});\n\n// note Set the display name for the component\nTanstackGlobalFilter.displayName = \"TanstackGlobalFilter\";\nTanstackToolbar.displayName = \"TanstackToolbar\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-comments/disallowComments */\nimport React from \"react\";\nimport {\n  Cell,\n  Column,\n  flexRender,\n  Header,\n  Row,\n  Table,\n} from \"@tanstack/react-table\";\nimport { Flex, Skeleton } from \"antd\";\nimport {\n  ShadcnTable,\n  ShadcnTableBody,\n  ShadcnTableCell,\n  ShadcnTableFooter,\n  ShadcnTableHead,\n  ShadcnTableHeader,\n  ShadcnTableRow,\n} from \"../../customIntegration/ui/table\";\nimport {\n  FilterDropDown,\n  SortableHeader,\n  TanstackTableEmpty,\n} from \"./tableComponents\";\nimport {\n  CSSProperties,\n  Fragment,\n  memo,\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n  useState,\n} from \"react\";\nimport { EText } from \"../../common\";\nimport { useAppTheme } from \"~/theme\";\nimport { getBordered, getCellSize } from \"./tableUtils\";\nimport { GetComponentProps, ProForm } from \"@ant-design/pro-components\";\nimport { useForm } from \"antd/es/form/Form\";\nimport \"./table.css\";\nimport { TableInput, TableInputFieldTypes } from \"./tableInput\";\nimport { CustomTable } from \"./table.types\";\n\nexport interface InternalTableProps<T> {\n  table: Table<T>;\n  loading?: boolean;\n  tableLoadingRowCount?: string | number;\n  bordered?: boolean;\n  onRow?: GetComponentProps<T>;\n  // pagination?: boolean\n  // virtual?: boolean\n}\n\nconst getCommonPinningStyles = (\n  column: Column<any>,\n  isRow: boolean\n): CSSProperties => {\n  // note : https://github.com/TanStack/table/issues/5397 pinned group header issue\n\n  const isPinned = column.getIsPinned();\n\n  const isLastLeftPinnedColumn =\n    isPinned === \"left\" && column.getIsLastColumn(\"left\");\n  const isFirstRightPinnedColumn =\n    isPinned === \"right\" && column.getIsFirstColumn(\"right\");\n\n  const leftValue =\n    column.columns.length > 0\n      ? `${column.columns[0]?.getStart(\"left\")}px`\n      : `${column.getStart(\"left\")}px`;\n  const rightValue =\n    column.columns.length > 0\n      ? `${column.columns[column.columns.length - 1]?.getAfter(\"right\")}px`\n      : `${column.getAfter(\"right\")}px`;\n\n  return {\n    boxShadow: isLastLeftPinnedColumn\n      ? \"-4px 0 4px -4px gray inset\"\n      : isFirstRightPinnedColumn\n      ? \"4px 0 4px -4px gray inset\"\n      : undefined,\n    left: isPinned === \"left\" ? leftValue : undefined,\n    right: isPinned === \"right\" ? rightValue : undefined,\n\n    // left: isPinned === \"left\" ? `${column.getStart(\"left\")}px` : undefined,\n    // right: isPinned === \"right\" ? `${column.getAfter(\"right\")}px` : undefined,\n    opacity: 1,\n    position: isPinned ? \"sticky\" : \"relative\",\n    width: column.getSize(),\n    backgroundColor: isPinned ? (isRow ? \"white\" : \"#F9FAFB\") : undefined,\n    zIndex: isPinned ? 1 : 0,\n  };\n};\n\n// note https://muhimasri.com/blogs/react-editable-table/\n\nexport const InternalTable = <T,>({\n  table,\n  loading,\n  tableLoadingRowCount = 15,\n  bordered = false,\n  onRow,\n}: InternalTableProps<T>) => {\n  const columnSizeVars = useMemo(() => {\n    const headers = table.getFlatHeaders();\n    const colSizes: Record<string, number> = {};\n    for (let i = 0; i < headers.length; i++) {\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-unnecessary-type-assertion\n      const header = headers[i]!;\n      colSizes[`--header-${header.id}-size`] = header.getSize();\n      colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n    }\n    return colSizes;\n  }, [table.getState().columnSizingInfo, table.getState().columnSizing]);\n\n  const parentRef = useRef<HTMLTableElement>(null);\n\n  // const rowVirtualizer = useVirtualizer({\n  //   count: table.getRowModel().rows.length,\n  //   getScrollElement: () => {\n  //     return parentRef.current\n  //   },\n  //   debug: true,\n  //   estimateSize: () => 50, // Default height\n  //   // note measure dynamic row height, except in firefox because it measures table border height incorrectly\n  //   overscan: 15,\n  // })\n  //  const { getVirtualItems, getTotalSize } = rowVirtualizer\n\n  return (\n    <ShadcnTable\n      className=\"table-auto w-full\"\n      style={{\n        ...columnSizeVars,\n        minWidth: table.getTotalSize(),\n      }}\n      ref={parentRef}\n    >\n      {/* note TABLE HEADER */}\n\n      <ShadcnTableHeader>\n        {table?.getHeaderGroups()?.map((headerGroup) => {\n          return (\n            <ShadcnTableRow key={headerGroup.id}>\n              {headerGroup?.headers?.map((header) => {\n                return (\n                  <ShadcnTableHead\n                    colSpan={header?.colSpan}\n                    key={header.id}\n                    style={{\n                      ...getCommonPinningStyles(header.column, false),\n                      width: `calc(var(--header-${header?.id}-size) * 1px)`,\n                    }}\n                    onClick={\n                      header.column.getCanSort()\n                        ? header.column.getToggleSortingHandler()\n                        : undefined\n                    }\n                  >\n                    {header?.isPlaceholder ? null : (\n                      <div className=\"flex items-center justify-between font-bold w-full\">\n                        <Flex\n                          gap={16}\n                          flex={1}\n                          align=\"center\"\n                          justify={\n                            header.subHeaders.length > 0\n                              ? \"center\"\n                              : \"space-between\"\n                          }\n                        >\n                          <EText\n                            fontWeight=\"600\"\n                            fontSize=\"14px\"\n                            className=\"text-center font-medium w-max\"\n                          >\n                            {flexRender(\n                              header.column.columnDef.header,\n                              header.getContext()\n                            )}\n                          </EText>\n\n                          <Flex gap={2}>\n                            {header.column.getCanSort() && (\n                              <SortableHeader\n                                header={header as Header<unknown, unknown>}\n                              />\n                            )}\n\n                            {header.column.getCanFilter() ? (\n                              <FilterDropDown\n                                key=\"filter\"\n                                column={\n                                  header.column as Column<unknown, unknown>\n                                }\n                              />\n                            ) : null}\n                          </Flex>\n                        </Flex>\n                        {header.column.getCanResize() && (\n                          <div\n                            className=\"absolute right-0 top-0 bottom-0 w-4\"\n                            onClick={(e) => e.stopPropagation()}\n                          >\n                            <ResizeHandle header={header} />\n                          </div>\n                        )}\n                      </div>\n                    )}\n                  </ShadcnTableHead>\n                );\n              })}\n            </ShadcnTableRow>\n          );\n        })}\n      </ShadcnTableHeader>\n\n      {/* note TABLE BODY */}\n      {/* When resizing any column we will render this special memoized version of our table body */}\n      {table.getState().columnSizingInfo.isResizingColumn ? (\n        <MemoizedTableBody table={table} />\n      ) : (\n        <ShadcnTableBody className={`p-0 ${getBordered(bordered)}`}>\n          {table?.getRowModel()?.rows?.map((row: Row<any>) => {\n            return (\n              <EditableRow\n                index={row.id}\n                key={row.id}\n                row={row}\n                onRow={onRow}\n                table={table}\n                bordered={bordered}\n              />\n            );\n          })}\n        </ShadcnTableBody>\n      )}\n\n      {/* note Table Footer */}\n      {table\n        .getFlatHeaders()\n        ?.flatMap((header) => header?.column?.columnDef?.footer)\n        .filter(Boolean).length > 0 && (\n        <ShadcnTableFooter>\n          {table.getFooterGroups().map((footerGroup) => {\n            return (\n              <ShadcnTableRow key={footerGroup.id}>\n                {footerGroup.headers?.map((header) => {\n                  return (\n                    <ShadcnTableHead key={header.id}>\n                      {header?.isPlaceholder\n                        ? null\n                        : flexRender(\n                            header?.column?.columnDef?.footer,\n                            header?.getContext()\n                          )}\n                    </ShadcnTableHead>\n                  );\n                })}\n              </ShadcnTableRow>\n            );\n          })}\n        </ShadcnTableFooter>\n      )}\n\n      {/* note TABLE LOADING STATE */}\n      {loading &&\n        [...Array(tableLoadingRowCount)]\n          .map((_, index) => ({\n            key: `key${index}`,\n          }))\n          ?.map((item) => {\n            return (\n              <ShadcnTableRow key={item.key}>\n                {table?.getAllColumns()?.map((column) => {\n                  return (\n                    <ShadcnTableCell className=\"p-3\" key={column.id}>\n                      <Skeleton active title paragraph={false} />\n                    </ShadcnTableCell>\n                  );\n                })}\n              </ShadcnTableRow>\n            );\n          })}\n\n      {/* note TABLE EMPTY STATE */}\n      {!loading && table?.getRowCount() === 0 && (\n        <ShadcnTableRow>\n          <ShadcnTableCell\n            colSpan={12}\n            className=\"h-24 text-center text-gray-500\"\n          >\n            <TanstackTableEmpty />\n          </ShadcnTableCell>\n        </ShadcnTableRow>\n      )}\n    </ShadcnTable>\n  );\n};\n\ninterface TableBodyProps<T> extends InternalTableProps<T> {\n  table: Table<T>;\n  data?: any[];\n  totalSize?: number;\n}\n\nexport const TableBody = <T,>({\n  table,\n  bordered,\n  onRow,\n}: TableBodyProps<T>) => {\n  const token = useAppTheme();\n\n  return (\n    <ShadcnTableBody className={`p-0 ${bordered}`}>\n      {table?.getRowModel().rows.map((row: Record<string, any>) => {\n        return (\n          <ShadcnTableRow\n            key={row.id}\n            style={{\n              width: \"100%\",\n              backgroundColor: row.getIsSelected() ? token.primary1 : undefined,\n              borderBottom: `1px solid ${token.primary1}`,\n            }}\n          >\n            {row\n              .getVisibleCells()\n              .map((cell: Cell<T, Record<string, string>>) => {\n                return (\n                  <Fragment key={cell?.row?.id}>\n                    <EditableRow\n                      index={cell?.row?.id}\n                      row={cell?.row}\n                      onRow={onRow}\n                      table={table}\n                      bordered={bordered}\n                    />\n                    {/* <ProForm\n                      key={index}\n                      submitter={false}\n                      form={form}\n                      onFinish={async (value) => {\n                        console.log(\"value\", value)\n                      }}\n                      component={false}\n                    >\n                      <ShadcnTableRow\n                        tabIndex={0}\n                        key={row?.id}\n                        {...onRow?.(row.original, row?.id as unknown as number)}\n                        onFocusCapture={(e) => {\n                          onRow?.(\n                            row.original,\n                            row?.id as unknown as number,\n                          )?.onClick?.(e as any)\n                        }}\n                        style={{\n                          // width: \"100%\",\n                          backgroundColor: row?.getIsSelected()\n                            ? token.primary1\n                            : undefined,\n                          borderBottom: `1px solid ${token.primary1}`,\n                        }}\n                      >\n                        {row?.getVisibleCells().map((cell) => {\n                          return (\n                            <MemoizedCell\n                              key={cell.id}\n                              cell={cell}\n                              token={token}\n                              table={table}\n                              bordered={bordered}\n                            />\n                          )\n                        })}{\" \"}\n                      </ShadcnTableRow>\n                    </ProForm> */}\n\n                    {/* If the row is expanded, render the expanded UI as a separate row with a single cell that spans the width of the table */}\n                    {row.getIsExpanded() && (\n                      <ShadcnTableRow>\n                        <ShadcnTableCell colSpan={row.getAllCells().length}>\n                          The number of columns you wish to span for the\n                          expanded data if it is not a row that shares the same\n                          columns as the parent row // Your custom UI goes here\n                        </ShadcnTableCell>\n                      </ShadcnTableRow>\n                    )}\n                  </Fragment>\n                );\n                // return (\n                //   <ShadcnTableCell\n                //     style={{\n                //       ...getCommonPinningStyles(cell.column, true),\n                //       width: cell.column.getSize(),\n                //     }}\n                //     className={`${getCellSize(\n                //       table.getState()?.density,\n                //     )} ${bordered}`}\n                //     key={cell.id}\n                //   >\n                //     <EText fontWeight=\"400\" color={token.neutral9}>\n                //       {flexRender(\n                //         cell.column.columnDef.cell,\n                //         cell.getContext(),\n                //       )}\n                //     </EText>\n                //   </ShadcnTableCell>\n                // )\n              })}\n          </ShadcnTableRow>\n        );\n      })}\n    </ShadcnTableBody>\n  );\n};\nexport const VirtualTableBody = <T,>({\n  data,\n  table,\n  bordered,\n  totalSize = 0,\n  onRow,\n}: TableBodyProps<T>) => {\n  const paddingTop = data && data?.length > 0 ? data[0].start || 0 : 0;\n  const paddingBottom =\n    data && data?.length > 0 ? totalSize - (data?.at(-1)?.end || 0) : 0;\n  const [rowHeights, setRowHeights] = useState<number[]>([]);\n\n  const measureRowHeight = useCallback(() => {\n    const heights = data?.map(({ index }) => {\n      const row = table.getRowModel().rows[index];\n      const rowElement = document.getElementById(`row-${row?.id}`);\n      return rowElement ? rowElement.getBoundingClientRect().height : 50; // Default height if measurement fails\n    });\n    setRowHeights(heights as number[]);\n  }, [table, data]);\n\n  useEffect(() => {\n    measureRowHeight();\n  }, [data, measureRowHeight]);\n\n  console.count(\"body\");\n\n  return (\n    <ShadcnTableBody\n      style={{\n        height: \"400px\",\n        width: \"100%\",\n        position: \"relative\",\n      }}\n      className={`p-0 ${bordered}`}\n    >\n      {paddingTop ? (\n        <ShadcnTableRow\n          style={{\n            height: paddingTop,\n          }}\n        >\n          <ShadcnTableCell colSpan={table.getFlatHeaders().length} />\n        </ShadcnTableRow>\n      ) : undefined}\n\n      {data?.map(({ index, ...rest }: Record<string, number>) => {\n        const row = table.getRowModel().rows[index];\n\n        return (\n          <Fragment key={index}>\n            <EditableRow\n              data={data}\n              index={index}\n              row={row}\n              onRow={onRow}\n              table={table}\n              bordered={bordered}\n              ref={rest.measureElement}\n              height={rowHeights[index]}\n            />\n            {/* <ProForm\n              key={index}\n              submitter={false}\n              form={form}\n              onFinish={async (value) => {\n                console.log(\"value\", value)\n              }}\n              component={false}\n            >\n              <ShadcnTableRow\n                tabIndex={0}\n                key={row?.id}\n                {...onRow?.(row.original, row?.id as unknown as number)}\n                onFocusCapture={(e) => {\n                  onRow?.(\n                    row.original,\n                    row?.id as unknown as number,\n                  )?.onClick?.(e as any)\n                }}\n                style={{\n                  // width: \"100%\",\n                  backgroundColor: row?.getIsSelected()\n                    ? token.primary1\n                    : undefined,\n                  borderBottom: `1px solid ${token.primary1}`,\n                }}\n              >\n                {row?.getVisibleCells().map((cell) => {\n                  return (\n                    <MemoizedCell\n                      key={cell.id}\n                      cell={cell}\n                      token={token}\n                      table={table}\n                      bordered={bordered}\n                    />\n                  )\n                })}{\" \"}\n              </ShadcnTableRow>\n            </ProForm> */}\n\n            {/* If the row is expanded, render the expanded UI as a separate row with a single cell that spans the width of the table */}\n            {row.getIsExpanded() && (\n              <ShadcnTableRow>\n                <ShadcnTableCell colSpan={row.getAllCells().length}>\n                  The number of columns you wish to span for the expanded data\n                  if it is not a row that shares the same columns as the parent\n                  row // Your custom UI goes here\n                </ShadcnTableCell>\n              </ShadcnTableRow>\n            )}\n          </Fragment>\n        );\n      })}\n\n      {paddingBottom ? (\n        <ShadcnTableRow\n          style={{\n            height: paddingBottom,\n          }}\n        >\n          <ShadcnTableCell colSpan={table.getFlatHeaders().length} />\n        </ShadcnTableRow>\n      ) : undefined}\n    </ShadcnTableBody>\n  );\n};\n\nexport const MemoizedTableBody = memo(TableBody) as typeof TableBody;\n\nexport const MemoizedCell: React.FC<{\n  cell: Cell<any, any>;\n  token: any;\n  table: CustomTable<any>;\n  bordered: any;\n}> = memo(\n  ({ cell, token, table, bordered }) => {\n    // Track both editing state and value\n    const [isEditing, setIsEditing] = useState(false);\n    const [localValue, setLocalValue] = useState(cell.getValue());\n    // Sync local value with cell value when not editing\n    useEffect(() => {\n      if (!isEditing) {\n        setLocalValue(cell.getValue());\n      }\n    }, [cell.getValue(), isEditing]);\n\n    const onValueChange = useCallback((e: any) => {\n      const newValue = e?.target?.value ?? e;\n      setLocalValue(newValue);\n    }, []);\n\n    const onBlur = useCallback(() => {\n      setIsEditing(false);\n      table.options.meta?.updateData?.(\n        cell.row.index,\n        cell.column.id,\n        localValue\n      );\n    }, [cell.column.id, cell.row.index, localValue, table.options.meta]);\n\n    if (!cell.column.columnDef?.meta?.editable) {\n      return (\n        <ShadcnTableCell\n          style={{\n            ...getCommonPinningStyles(cell.column, true),\n            width: cell.column.getSize(),\n            fontWeight: 400,\n            color: token.neutral9,\n          }}\n          className={`${getCellSize(table.getState()?.density)} ${bordered}`}\n          key={cell.id}\n        >\n          {flexRender(cell.column.columnDef.cell, cell.getContext())}\n        </ShadcnTableCell>\n      );\n    }\n\n    return (\n      <ShadcnTableCell\n        style={{\n          ...getCommonPinningStyles(cell.column, true),\n          width: cell.column.getSize(),\n          fontWeight: 400,\n          color: token.neutral9,\n        }}\n        className={`${getCellSize(table.getState()?.density)} ${bordered}`}\n        key={cell.id}\n      >\n        <TableInput\n          value={localValue}\n          onChange={onValueChange}\n          onBlur={onBlur}\n          onFocus={() => setIsEditing(true)}\n          type={cell.column.columnDef?.meta?.valueType as TableInputFieldTypes}\n          {...cell.column.columnDef?.meta?.inputItemProps?.(cell.row?.original)}\n        />\n      </ShadcnTableCell>\n    );\n  },\n  (prev, next) => {\n    return (\n      prev.cell.getValue() === next.cell.getValue() &&\n      prev.cell.row.index === next.cell.row.index\n    );\n  }\n);\nMemoizedCell.displayName = \"MemoizedCell\";\n\n// Editable Row Component\nexport const EditableRow: React.FC<{\n  index: any;\n  row: Row<any>;\n  onRow: any;\n  table: Table<any>;\n  bordered: any;\n  data?: any[];\n  ref?: any;\n  height?: number;\n}> = memo(\n  ({ index, row, onRow, table, bordered }) => {\n    const token = useAppTheme();\n    const [form] = useForm();\n\n    // Memoize row handlers\n    const rowHandlers = useMemo(\n      () => ({\n        ...onRow?.(row.original, row?.id as unknown as number),\n      }),\n      [row.id, row.original, onRow]\n    );\n\n    return (\n      <ProForm key={index} submitter={false} form={form} component={false}>\n        <ShadcnTableRow\n          {...rowHandlers}\n          data-index={index} // note needed for dynamic row height measurement\n          // tabIndex={0}\n          key={row?.id}\n          id={`row-${row.id}`}\n          style={{\n            width: \"100%\",\n            backgroundColor: row?.getIsSelected() ? token.primary1 : undefined,\n            borderBottom: `1px solid ${token.primary1}`,\n          }}\n        >\n          {row?.getVisibleCells().map((cell: any) => {\n            return (\n              <MemoizedCell\n                key={cell.id}\n                cell={cell}\n                token={token}\n                table={table as CustomTable<any>}\n                bordered={bordered}\n              />\n            );\n          })}{\" \"}\n        </ShadcnTableRow>\n      </ProForm>\n    );\n  },\n  (prev, next) => {\n    // Custom comparison for row memoization\n    return (\n      prev.row.id === next.row.id &&\n      prev.row.getIsSelected() === next.row.getIsSelected() &&\n      prev.table.options.meta === next.table.options.meta\n    );\n  }\n);\nEditableRow.displayName = \"EditableRow\";\n\n// Update ResizeHandle\nconst ResizeHandle = memo(({ header }: { header: any }) => (\n  <div\n    className={`resizer ${header.column.getIsResizing() ? \"isResizing\" : \"\"}`}\n    onMouseDown={(e) => {\n      e.preventDefault();\n      e.stopPropagation();\n      const handler = header.getResizeHandler();\n      handler(e);\n    }}\n    style={{\n      transform: header.column.getIsResizing()\n        ? `translateX(${\n            header.getResizingOffset() * (header.column.getCanResize() ? 1 : 0)\n          }px)`\n        : undefined,\n    }}\n  />\n));\n\nResizeHandle.displayName = \"ResizeHandle\";\n","/* eslint-disable no-unsafe-optional-chaining */\n/* eslint-disable react/display-name */\nimport React from \"react\";\nimport {\n  ExpandedState,\n  getCoreRowModel,\n  getExpandedRowModel,\n  getFilteredRowModel,\n  getGroupedRowModel,\n  getPaginationRowModel,\n  getSortedRowModel,\n  getFacetedMinMaxValues,\n  getFacetedRowModel,\n  getFacetedUniqueValues,\n  Table,\n  useReactTable,\n  VisibilityState,\n  RowSelectionState,\n} from \"@tanstack/react-table\";\nimport { useRequest, useSafeState, useUpdateEffect } from \"ahooks\";\nimport {\n  ForwardedRef,\n  forwardRef,\n  useImperativeHandle,\n  useMemo,\n  useState,\n} from \"react\";\nimport { InternalTable } from \"./InternalTable\";\nimport {\n  CustomTableMeta,\n  PaginationState,\n  RequestResponse,\n  TableRef,\n  TanstackTableProps,\n} from \"./table.types\";\nimport {\n  ColumnDropDown,\n  TanstackTablePagination,\n  TanstackTableRowSelection,\n  TanstackToolbar,\n} from \"./tableComponents\";\nimport {\n  getExtraColumns,\n  getHiddenColumns,\n  getRowIds,\n  getSelectedRowModel,\n} from \"./tableUtils\";\nimport { ReloadOutlined } from \"@ant-design/icons\";\nimport { useAppTheme } from \"~/theme\";\nimport { useTanstackTable } from \"./useTanstackTable\";\nimport dayjs from \"dayjs\";\nimport isBetween from \"dayjs/plugin/isBetween\";\n\nimport { isArray } from \"lodash\";\ndayjs.extend(isBetween);\n\nconst NoobTanstackTable = forwardRef(\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  <T extends {}>(\n    props: TanstackTableProps<T>,\n    ref: ForwardedRef<TableRef | undefined>\n  ) => {\n    // fixme: show default selected rows while editing data on tables i.e manage state for rowSelection\n    const {\n      request,\n      onRow,\n      tableLoading,\n      dataSource = undefined,\n      columns,\n      refreshDeps,\n      toolbar,\n      editable,\n      tableProps,\n      rowSelection,\n      rowExpandable,\n      density = \"small\",\n      bordered = false,\n      tableLoadingRowCount,\n      paginationType = \"pagination\",\n      pagination = {\n        pageIndex: 0,\n        pageSize: 5,\n      },\n      options = {\n        reload: true,\n        search: {\n          autoFocus: true,\n          placeholder: undefined,\n        },\n      },\n      tableAlertOptionRender,\n    } = props;\n\n    const token = useAppTheme();\n    const [rowData, setRowData] = useState<T[]>(dataSource ?? []);\n\n    const { loading, refresh } = useRequest(\n      request ?? (() => Promise.resolve({ data: [], total: 0, success: true })),\n      {\n        onSuccess: (response: RequestResponse<T>) => {\n          if (dataSource) {\n            setRowData(() => dataSource);\n          } else {\n            setRowData(() => response.data);\n          }\n        },\n        defaultParams: [\n          {\n            pageSize: 10,\n            current: 1,\n          },\n        ],\n        onBefore() {\n          if (rowData?.length === 0) {\n            return true;\n          } else {\n            setRowData([]);\n          }\n        },\n        refreshDeps,\n      }\n    );\n\n    const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({\n      ...getHiddenColumns(columns ?? []),\n    });\n\n    const [tablePagination, setTablePagination] = useState<PaginationState>({\n      ...pagination,\n    });\n\n    const { indexColumn } = useTanstackTable<T>();\n\n    const extraColumns = getExtraColumns<T>({ rowSelection, rowExpandable });\n    const [rowSelectionState, setRowSelectionState] =\n      useSafeState<RowSelectionState>({\n        ...tableProps?.initialState?.rowSelection,\n      });\n    const [expanded, setExpanded] = useState<ExpandedState>({});\n\n    const [selectionKey, setSelectionKey] = useState(0);\n\n    const memoizedColumn = useMemo(() => {\n      return [...extraColumns, indexColumn, ...(columns ?? [])];\n    }, [columns, rowSelectionState]);\n\n    const table = useReactTable({\n      data: dataSource && dataSource?.length > 0 ? dataSource : rowData,\n      defaultColumn: {\n        minSize: 30,\n        size: 150,\n        maxSize: 500,\n      },\n      columns: memoizedColumn,\n      columnResizeMode: \"onEnd\",\n      enableColumnResizing: true,\n      autoResetPageIndex: true,\n\n      getCoreRowModel: getCoreRowModel(),\n      getColumnCanGlobalFilter(column) {\n        return column.getIsVisible();\n      },\n      ...tableProps,\n      initialState: {\n        ...tableProps?.initialState,\n        columnPinning: {\n          left: [\n            \"rowSelection\",\n            \"index\",\n            ...(tableProps?.initialState?.columnPinning?.left ?? []),\n          ],\n          right: [\n            \"filter\",\n            ...(tableProps?.initialState?.columnPinning?.right ?? []),\n          ],\n        },\n      },\n      state: {\n        ...tableProps?.state,\n        pagination: tablePagination,\n        columnVisibility,\n        density,\n        expanded,\n        rowSelection: rowSelectionState,\n      },\n      enableMultiRowSelection:\n        rowSelection?.selectionType && rowSelection.selectionType !== \"radio\",\n      paginateExpandedRows: false,\n      onExpandedChange: setExpanded,\n      onRowSelectionChange: (newSelection) => {\n        setRowSelectionState(newSelection);\n        setSelectionKey((prev) => prev + 1);\n        rowSelection?.onChange?.(\n          Object.keys(newSelection).filter(\n            (key) => newSelection[key as keyof typeof newSelection]\n          ),\n          getSelectedRowModel(table)\n        );\n      },\n      filterFns: {\n        ISODateFilter: (value, row, key) => {\n          // note Get the date value from the row data\n          const dateValue = value?.original?.[row];\n\n          // note Return false if no date value or key\n          if (!dateValue) return false;\n\n          try {\n            // note Parse the date value\n            const rowDate = dayjs(dateValue);\n\n            // note Return false if invalid date\n            if (!rowDate.isValid()) return false;\n\n            // note Handle date range filter\n            if (isArray(key)) {\n              const [startDate, endDate] = key;\n\n              // note Return false if invalid range dates\n              if (!startDate || !endDate) return false;\n\n              // note Compare date within range (inclusive)\n              return rowDate.isBetween(startDate, endDate, \"day\", \"[]\");\n            }\n\n            // note Handle single date filter\n            if (key) {\n              const filterDate = dayjs(key);\n\n              // note Return false if invalid filter date\n              if (!filterDate.isValid()) return false;\n\n              // note Compare dates for equality (ignoring time)\n              return (\n                rowDate.format(\"YYYY-MM-DD\") === filterDate.format(\"YYYY-MM-DD\")\n              );\n            }\n\n            return false;\n          } catch (error) {\n            console.error(\"Error in ISODateFilter:\", error);\n            return false;\n          }\n        },\n        BooleanFn: (row, value, key) => {\n          const isKeyFalse = key === \"false\";\n          return row?.original?.[value] !== isKeyFalse;\n        },\n      },\n\n      getRowCanExpand: () => true,\n      onColumnVisibilityChange: setColumnVisibility,\n      meta: {\n        reload: refresh,\n        updateData: (rowIndex, columnId, value) => {\n          const data = dataSource ?? rowData;\n\n          const editedRow = { ...data[rowIndex], [columnId]: value };\n          const updateData = data?.map((row, index) => {\n            if (index === rowIndex) {\n              return {\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-unnecessary-type-assertion\n                ...data[rowIndex]!,\n                [columnId]: value,\n              };\n            }\n            return row;\n          });\n          const res = { record: editedRow, recordList: updateData };\n          setRowData(updateData);\n          return editable?.onDataSourceChange(res);\n        },\n        rowSelection,\n\n        rowExpandable,\n      } satisfies CustomTableMeta,\n      getPaginationRowModel:\n        paginationType === \"pagination\" ? getPaginationRowModel() : undefined,\n\n      /* todo / getSubRows: (row) => {\n      //   return row.children\n      // } */\n      onPaginationChange: setTablePagination,\n      getFilteredRowModel: getFilteredRowModel(),\n      getSortedRowModel: getSortedRowModel(),\n      getGroupedRowModel: getGroupedRowModel(),\n      getExpandedRowModel: getExpandedRowModel(),\n      getFacetedRowModel: getFacetedRowModel(),\n      getFacetedUniqueValues: getFacetedUniqueValues(),\n      getFacetedMinMaxValues: getFacetedMinMaxValues(),\n    });\n\n    // note update effect for row selections\n\n    useUpdateEffect(() => {\n      if (table?.getState()?.rowSelection) {\n        rowSelection?.onChange(getRowIds(table), getSelectedRowModel(table));\n      }\n    }, [table?.getState()?.rowSelection]);\n\n    // note update effect for row visibility on active key change\n    useUpdateEffect(() => {\n      setColumnVisibility(getHiddenColumns(columns ?? []));\n    }, [toolbar?.menu?.activeKey]);\n\n    // note Expose reload method\n    useImperativeHandle(\n      ref,\n      () => ({\n        reload: () => {\n          refresh();\n          table?.resetRowSelection();\n        },\n      }),\n      [refresh]\n    );\n\n    const internalTableProps = {\n      bordered,\n      tableLoadingRowCount,\n      onRow,\n    };\n\n    return (\n      <>\n        <div key={selectionKey}>\n          {/* note toolbar */}\n          <TanstackToolbar\n            ref={ref}\n            table={table as Table<unknown>}\n            options={options}\n            {...toolbar}\n            actions={[\n              ...(toolbar?.actions && Array.isArray(toolbar.actions)\n                ? [...toolbar.actions]\n                : []),\n              options?.reload && (\n                <div\n                  className=\"cursor-pointer text-md\"\n                  onClick={() => refresh()}\n                >\n                  {options?.reloadIcon ? (\n                    options.reloadIcon\n                  ) : (\n                    <ReloadOutlined\n                      style={{\n                        color: token.neutral10,\n                      }}\n                      key=\"refresh\"\n                    />\n                  )}\n                </div>\n              ),\n              <ColumnDropDown column={table} key=\"setting\" />,\n            ]}\n            menu={{\n              ...toolbar?.menu,\n            }}\n          />\n\n          {/* note Row Selection */}\n          {Object.keys(table?.getState()?.rowSelection).length > 0 &&\n            rowSelection?.selectionType !== \"radio\" && (\n              <TanstackTableRowSelection\n                table={table}\n                render={tableAlertOptionRender?.(\n                  getRowIds(table),\n                  getSelectedRowModel(table),\n                  () => {\n                    table.resetRowSelection();\n                  }\n                )}\n              />\n            )}\n\n          {/* note Pagination */}\n          {paginationType === \"pagination\" && (\n            <TanstackTablePagination\n              table={table}\n              tableInstance={table?.getState()}\n            />\n          )}\n\n          <div>\n            {/* note Internal Table */}\n            <InternalTable\n              loading={loading || tableLoading}\n              table={table}\n              {...internalTableProps}\n            />\n          </div>\n        </div>\n      </>\n    );\n  }\n) as <T>(\n  props: TanstackTableProps<T> & { ref?: ForwardedRef<TableRef> }\n) => any;\n\nexport { NoobTanstackTable };\n","import { createStyles } from \"antd-style\"\nimport { useAppTheme } from \"~/theme\"\n\nexport const useTableStyles = () => {\n  const token = useAppTheme()\n  return createStyles((_) => ({\n    body: {\n      \".ant-form-item\": {\n        marginBottom: \"0px !important\",\n      },\n    },\n    dropDown: {\n      \".ant-dropdown-menu\": {\n        padding: 0,\n        borderRadius: \"none\",\n        \"&:hover\": {\n          backgroundColor: \"white !important\",\n        },\n      },\n      \".ant-dropdown-menu-item\": {\n        padding: \"8px 12px\",\n        \"&:hover\": {\n          backgroundColor: \"white !important\",\n        },\n      },\n    },\n    tableHead: {\n      backgroundColor: token.neutral10,\n      color: token.neutral9,\n      textAlign: \"left\",\n      fontWeight: 600,\n      margin: 0,\n      maxWidth: \"50%\",\n    },\n  }))()\n}\n"]}