more-apartments-astro-integration 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.more-apartments/availability.json +36 -0
- package/.more-apartments/booking-response.json +15 -0
- package/.more-apartments/categories.json +11 -0
- package/.more-apartments/locations.json +3 -0
- package/.more-apartments/pages.json +46 -0
- package/.more-apartments/posts.json +3 -0
- package/.more-apartments/properties.json +1761 -0
- package/.more-apartments/settings-booking.json +13 -0
- package/.more-apartments/settings-main.json +32 -0
- package/.more-apartments/settings-properties.json +36 -0
- package/.more-apartments/settings-theme.json +78 -0
- package/README.md +982 -0
- package/dist/cli/index.js +1010 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index.d.mts +2732 -0
- package/dist/index.d.ts +2732 -0
- package/dist/index.js +1009 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +964 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +75 -0
- package/routes/availability.js +40 -0
- package/routes/bookings.js +66 -0
- package/routes/locations.js +28 -0
- package/routes/page.js +27 -0
- package/routes/pages.js +27 -0
- package/routes/post.js +27 -0
- package/routes/posts.js +32 -0
- package/routes/properties.js +31 -0
- package/routes/property.js +27 -0
- package/routes/settings.js +50 -0
- package/src/components/PropertyBookingWidget.astro +169 -0
- package/src/components/PropertySearchGrid.astro +315 -0
- package/src/pages/booking-complete.astro +155 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/common.ts","../../src/types/properties.ts","../../src/types/content.ts","../../src/types/settings.ts","../../src/types/bookings.ts","../../src/types/index.ts","../../src/client.ts","../../src/cli/utils/format.ts","../../src/cli/commands/properties.ts","../../src/cli/commands/content.ts","../../src/cli/commands/settings.ts","../../src/cli/commands/bookings.ts","../../src/cli/index.ts"],"names":["z","config","resolve","inspect","program","readFileSync","Command"],"mappings":";;;;;;;;;;AAIO,IAAM,qBAAA,GAAwBA,MAAE,MAAA,CAAO;AAAA,EAC5C,KAAA,EAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACnB,CAAC,CAAA;AAEM,IAAM,oBAAA,GAAuBA,MAAE,MAAA,CAAO;AAAA,EAC3C,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,KAAA,EAAOA,KAAA,CAAE,KAAA,CAAMA,KAAA,CAAE,MAAA,CAAO;AAAA,IACtB,GAAA,EAAKA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACzB,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,MAAA,EAAQA,MAAE,OAAA;AAAQ,GACnB,CAAC,CAAA;AAAA,EACF,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,EAAA,EAAIA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,KAAA,EAAOA,MAAE,MAAA;AACX,CAAC,CAAA;AAEM,IAAM,uBAAA,GAA0B,CAAyB,UAAA,KAC9DA,KAAA,CAAE,MAAA,CAAO;AAAA,EACP,IAAA,EAAMA,KAAA,CAAE,KAAA,CAAM,UAAU,CAAA;AAAA,EACxB,KAAA,EAAO,qBAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAC,CAAA;AAE2BA,MAAE,MAAA,CAAO;AAAA,EACrC,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,EAClB,MAAA,EAAQA,KAAA,CAAE,MAAA,CAAOA,KAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,CAAC,CAAA,CAAE,QAAA;AACxC,CAAC;AChCkCA,MAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,GAAA,EAAKA,MAAE,MAAA,EAAO;AAAA,EACd,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAClB,CAAC;AAEM,IAAM,cAAA,GAAiBA,MAAE,MAAA,CAAO;AAAA,EACrC,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA;AAAA,EAGf,iBAAA,EAAmBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACvC,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,gBAAA,EAAkBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACtC,mBAAA,EAAqBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGzC,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG3B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,EAClB,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA;AAAA,EAGpB,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGjC,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG1B,KAAA,EAAOA,MAAE,OAAA,EAAQ;AAAA,EACjB,IAAA,EAAMA,MAAE,OAAA,EAAQ;AAAA,EAChB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGnB,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,mBAAA,EAAqBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzC,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,GAAA,EAAKA,MAAE,OAAA,EAAQ;AAAA,EACf,QAAA,EAAUA,MAAE,OAAA,EAAQ;AAAA,EACpB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGnB,UAAA,EAAYA,MAAE,OAAA,EAAQ;AAAA,EACtB,IAAA,EAAMA,MAAE,OAAA,EAAQ;AAAA,EAChB,SAAA,EAAWA,MAAE,OAAA,EAAQ;AAAA,EACrB,MAAA,EAAQA,MAAE,OAAA,EAAQ;AAAA,EAClB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,MAAA,EAAQA,MAAE,OAAA,EAAQ;AAAA,EAClB,aAAA,EAAeA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGzB,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA,EAC1B,KAAA,EAAOA,MAAE,OAAA,EAAQ;AAAA,EACjB,IAAA,EAAMA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGhB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA,EAC1B,YAAA,EAAcA,MAAE,OAAA,EAAQ;AAAA,EACxB,SAAA,EAAWA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGrB,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG3B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,MAAE,OAAA,EAAQ;AAAA,EACpB,mBAAA,EAAqBA,MAAE,OAAA,EAAQ;AAAA,EAC/B,eAAA,EAAiBA,MAAE,OAAA,EAAQ;AAAA,EAC3B,YAAA,EAAcA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGxB,eAAA,EAAiBA,MAAE,OAAA,EAAQ;AAAA,EAC3B,YAAA,EAAcA,MAAE,OAAA,EAAQ;AAAA,EACxB,aAAA,EAAeA,MAAE,OAAA,EAAQ;AAAA,EACzB,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA,EAC1B,2BAAA,EAA6BA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGvC,aAAA,EAAeA,MAAE,OAAA,EAAQ;AAAA,EACzB,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAG1B,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGpC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG/B,MAAA,EAAQA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,CAAO;AAAA,IACvB,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,IACb,GAAA,EAAKA,MAAE,MAAA,EAAO;AAAA,IACd,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,IACpB,GAAA,EAAKA,MAAE,MAAA;AAAO,GACf,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA;AAAA,EAGb,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,UAAA,EAAYA,MAAE,MAAA;AAChB,CAAC,CAAA;AAEM,IAAM,YAAA,GAAeA,MAAE,MAAA,CAAO;AAAA,EACnC,SAAA,EAAWA,MAAE,OAAA,EAAQ;AAAA,EACrB,iBAAA,EAAmBA,MAAE,OAAA,EAAQ;AAAA,EAC7B,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,GAAA,EAAKA,MAAE,MAAA;AACT,CAAC,CAAA;AAEM,IAAM,kBAAA,GAAqBA,MAAE,MAAA,CAAO;AAAA,EACzC,MAAMA,KAAAA,CAAE,MAAA,CAAOA,KAAAA,CAAE,MAAA,IAAU,YAAY;AACzC,CAAC,CAAA;AAGyCA,MAAE,MAAA,CAAO;AAAA;AAAA,EAEjD,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG/B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG5B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA;AAAA,EAG7B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,QAAA,EAAUA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC/B,OAAA,EAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACvB,CAAC;AAEM,IAAM,0BAAA,GAA6BA,MAAE,MAAA,CAAO;AAAA,EACjD,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAM,cAAc;AAC9B,CAAC,CAAA;AAEyCA,MAAE,MAAA,CAAO;AAAA,EACjD,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,IAChB,QAAA,EAAUA,MAAE,MAAA;AAAO,GACpB,CAAA;AAAA,EACD,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACd,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,MACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,MAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,MACtB,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACpC,MAAMA,KAAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,KACpC;AAAA,GACF,CAAA;AAAA,EACD,IAAA,EAAMA,MACH,MAAA,CAAO;AAAA,IACN,IAAA,EAAMA,MACH,MAAA,CAAO;AAAA,MACN,QAAA,EAAUA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,MAC/B,OAAA,EAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAC/B,EACA,QAAA,EAAS;AAAA,IACZ,mBAAA,EAAqBA,MAClB,MAAA,CAAO;AAAA,MACN,WAAA,EAAaA,MAAE,MAAA;AAAO,KACvB,EACA,QAAA,EAAS;AAAA,IACZ,kBAAA,EAAoBA,MACjB,MAAA,CAAO;AAAA,MACN,KAAA,EAAOA,MAAE,MAAA;AAAO,KACjB,EACA,QAAA;AAAS,GACb,EACA,QAAA;AACL,CAAC;AC5MM,IAAM,UAAA,GAAaA,MAAE,MAAA,CAAO;AAAA,EACjC,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,KAAK,CAAA;AAAA,EACzB,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,IACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,IACtB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC5B,CAAA;AAAA,EACD,UAAA,EAAYA,MAAE,MAAA;AAChB,CAAC,CAAA;AAEM,IAAM,UAAA,GAAaA,MAAE,MAAA,CAAO;AAAA,EACjC,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA;AAAA,EACf,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,QAAQ,CAAA;AAAA,EACxB,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,KAAK,CAAA;AAAA,EACzB,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,IACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,IACtB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC5B,CAAA;AAAA,EACD,UAAA,EAAYA,MAAE,MAAA;AAChB,CAAC,CAAA;AAEM,IAAM,cAAA,GAAiBA,MAAE,MAAA,CAAO;AAAA,EACrC,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAM,CAACA,MAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,GAAGA,KAAAA,CAAE,MAAA,EAAQ,CAAC,EAAE,QAAA;AACvD,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwBA,MAAE,MAAA,CAAO;AAAA,EAC5C,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,MAAMA,KAAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,EACnC,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,KAAK,CAAA;AAAA,EACzB,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,KAAA,EAAOA,MAAE,MAAA;AACX,CAAC,CAAA;ACtDM,IAAM,kBAAA,GAAqBA,MAAE,MAAA,CAAO;AAAA,EACzC,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,IACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,IACf,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,IACjB,MAAA,EAAQA,MAAE,MAAA;AAAO,GAClB,CAAA;AAAA,EACD,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,IAChB,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC5B,CAAA;AAAA,EACD,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,IACf,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAChC,EAAE,QAAA,EAAS;AAAA,EACZ,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,IACb,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,MACb,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,MAClB,IAAA,EAAMA,MAAE,MAAA;AAAO,KAChB,CAAA;AAAA,IACD,eAAA,EAAiBA,MAAE,MAAA;AAAO,GAC3B,EAAE,QAAA,EAAS;AAAA,EACZ,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,IACZ,kBAAA,EAAoBA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,CAAO;AAAA,MACnC,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,MACf,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,MACjB,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC7B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC9B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC9B,OAAA,EAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAC/B,CAAC;AAAA,GACH,EAAE,QAAA,EAAS;AAAA,EACZ,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,IAChB,GAAA,EAAKA,MAAE,MAAA,EAAO;AAAA,IACd,WAAA,EAAaA,MAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,MACf,KAAA,EAAOA,MAAE,MAAA;AAAO,KACjB;AAAA,GACF,EAAE,QAAA,EAAS;AAAA,EACZ,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC,CAAA;AAEM,IAAM,mBAAA,GAAsBA,MAAE,MAAA,CAAO;AAAA,EAC1C,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,IACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,IACf,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC7B,EAAE,QAAA,EAAS;AAAA,EACZ,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,IACf,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,IAClB,SAAA,EAAWA,MAAE,MAAA;AAAO,GACrB,CAAA;AAAA,EACD,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,IACf,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACpC,UAAA,EAAYA,MAAE,MAAA,CAAO;AAAA,MACnB,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC7B,KAAA,EAAOA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,KAAK,CAAA;AAAA,MACtB,SAASA,KAAAA,CAAE,KAAA,CAAMA,MAAE,GAAA,EAAK,EAAE,QAAA;AAAS,KACpC,EAAE,QAAA,EAAS;AAAA,IACZ,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,MACf,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAChC,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACnC,YAAYA,KAAAA,CAAE,KAAA,CAAMA,MAAE,GAAA,EAAK,EAAE,QAAA;AAAS,KACvC,EAAE,QAAA;AAAS,GACb,EAAE,QAAA;AACL,CAAC,CAAA;AAEM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC7C,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,IAChB,QAAA,EAAUA,MAAE,MAAA;AAAO,GACpB,CAAA;AAAA,EACD,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,IACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,IACtB,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACpC,MAAMA,KAAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,GACpC,EAAE,QAAA,EAAS;AAAA,EACZ,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACd,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,MACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,MAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,MACtB,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACpC,MAAMA,KAAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,KACpC;AAAA,GACF,CAAA;AAAA,EACD,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,IACb,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,MACb,QAAA,EAAUA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,MAC/B,OAAA,EAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAC/B,EAAE,QAAA,EAAS;AAAA,IACZ,mBAAA,EAAqBA,MAAE,MAAA,CAAO;AAAA,MAC5B,WAAA,EAAaA,MAAE,MAAA;AAAO,KACvB,EAAE,QAAA,EAAS;AAAA,IACZ,kBAAA,EAAoBA,MAAE,MAAA,CAAO;AAAA,MAC3B,KAAA,EAAOA,MAAE,MAAA;AAAO,KACjB,EAAE,QAAA;AAAS,GACb,EAAE,QAAA;AACL,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwBA,MAAE,MAAA,CAAO;AAAA,EAC5C,oBAAA,EAAsBA,MAAE,MAAA,CAAO;AAAA,IAC7B,QAAA,EAAUA,MAAE,MAAA,CAAO;AAAA,MACjB,mBAAA,EAAqBA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAC3C,EAAE,QAAA,EAAS;AAAA,IACZ,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,MAChB,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC1B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KAC3B,EAAE,QAAA;AAAS,GACb,EAAE,QAAA;AACL,CAAC,CAAA;AC5GmCA,MAAE,MAAA,CAAO;AAAA,EAC3C,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,EACjB,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,EAAM;AAAA,EACxB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,cAAA,EAAgBA,MAAE,IAAA,CAAK,CAAC,UAAU,MAAA,EAAQ,eAAe,CAAC,CAAA,CAAE,QAAA;AAC9D,CAAC;AAEM,IAAM,qBAAA,GAAwBA,MAAE,MAAA,CAAO;AAAA,EAC5C,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,EACjB,MAAA,EAAQA,MAAE,IAAA,CAAK,CAAC,WAAW,WAAA,EAAa,WAAA,EAAa,WAAW,CAAC,CAAA;AAAA,EACjE,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,gBAAgBA,KAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,MAAA,EAAQ,UAAU,CAAC,CAAA;AAAA,EACtD,iBAAA,EAAmBA,MAAE,MAAA,EAAO;AAAA,EAC5B,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,UAAA,EAAYA,MAAE,MAAA;AAChB,CAAC,CAAA;ACUyCA,MAAE,MAAA,CAAO;AAAA,EACjD,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACd,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,IACnB,KAAA,EAAOA,MAAE,MAAA;AAAO,GACjB,EAAE,QAAA,EAAS;AAAA,EACZ,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACd,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,IACnB,GAAA,EAAKA,MAAE,MAAA;AAAO,GACf,EAAE,QAAA;AACL,CAAC;;;ACjBM,IAAM,uBAAN,MAA2B;AAAA,EACxB,MAAA;AAAA,EACA,KAAA,uBAA2D,GAAA,EAAI;AAAA;AAAA;AAAA;AAAA,EAKvE,UAAA,GAAmB;AACjB,IAAA,IAAA,CAAK,MAAM,KAAA,EAAM;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA,EAKA,aAAA,GAAmD;AACjD,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAK,KAAA,CAAM,IAAA;AAAA,MACpB,IAAA,EAAM,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ,CAAA,CAAE,MAAA,CAAO,CAAC,KAAA,EAAO,KAAA,KAAU;AAC7D,QAAA,OAAO,KAAA,GAAQ,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,IAAI,CAAA,CAAE,MAAA;AAAA,MAC5C,GAAG,CAAC;AAAA,KACN;AAAA,EACF;AAAA,EAEA,YAAYC,OAAAA,EAA8B;AACxC,IAAA,IAAA,CAAK,MAAA,GAAS;AAAA,MACZ,SAASA,OAAAA,CAAO,OAAA,EAAS,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,IAAK,EAAA;AAAA,MAC/C,MAAA,EAAQA,QAAO,MAAA,IAAU,EAAA;AAAA,MACzB,QAAA,EAAUA,QAAO,QAAA,IAAY,EAAA;AAAA,MAC7B,OAAA,EAASA,QAAO,OAAA,IAAW,GAAA;AAAA,MAC3B,KAAA,EAAO;AAAA,QACL,QAAA,EAAUA,OAAAA,CAAO,KAAA,EAAO,QAAA,IAAY,CAAA;AAAA,QACpC,KAAA,EAAOA,OAAAA,CAAO,KAAA,EAAO,KAAA,IAAS;AAAA,OAChC;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAASA,OAAAA,CAAO,KAAA,EAAO,OAAA,IAAW,IAAA;AAAA,QAClC,GAAA,EAAKA,OAAAA,CAAO,KAAA,EAAO,GAAA,IAAO;AAAA;AAAA;AAC5B,KACF;AAAA,EACF;AAAA,EAEA,MAAc,cAAA,CACZ,GAAA,EACA,OAAA,GAAuB,IACvB,MAAA,EACY;AACZ,IAAA,MAAM,WAAW,CAAA,EAAG,OAAA,CAAQ,MAAA,IAAU,KAAK,IAAI,GAAG,CAAA,CAAA;AAGlD,IAAA,IAAI,IAAA,CAAK,OAAO,KAAA,EAAO,OAAA,KAAY,CAAC,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,MAAA,KAAW,KAAA,CAAA,EAAQ;AAC/E,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,QAAQ,CAAA;AACtC,MAAA,IAAI,MAAA,IAAU,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO,GAAA,IAAO,IAAA,CAAK,GAAA,EAAI,GAAI,MAAA,CAAO,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,MAAM,GAAA,EAAK;AAC7F,QAAA,OAAO,MAAA,CAAO,IAAA;AAAA,MAChB;AAAA,IACF;AAEA,IAAA,MAAM,OAAA,GAAuB;AAAA,MAC3B,cAAA,EAAgB,kBAAA;AAAA,MAChB,QAAA,EAAU,kBAAA;AAAA,MACV,GAAI,IAAA,CAAK,MAAA,CAAO,MAAA,IAAU,EAAE,iBAAiB,CAAA,OAAA,EAAU,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA,CAAA,EAAG;AAAA,MAC5E,GAAI,KAAK,MAAA,CAAO,QAAA,IAAY,EAAE,YAAA,EAAc,IAAA,CAAK,OAAO,QAAA,EAAS;AAAA,MACjE,GAAG,OAAA,CAAQ;AAAA,KACb;AAEA,IAAA,IAAI,SAAA,GAA0B,IAAA;AAE9B,IAAA,KAAA,IAAS,OAAA,GAAU,GAAG,OAAA,IAAW,IAAA,CAAK,OAAO,KAAA,EAAO,QAAA,IAAY,IAAI,OAAA,EAAA,EAAW;AAC7E,MAAA,IAAI;AACF,QAAA,MAAM,UAAA,GAAa,IAAI,eAAA,EAAgB;AACvC,QAAA,MAAM,SAAA,GAAY,WAAW,MAAM;AACjC,UAAA,UAAA,CAAW,KAAA,EAAM;AAAA,QACnB,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA;AAEtB,QAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,UAChC,GAAG,OAAA;AAAA,UACH,OAAA;AAAA,UACA,QAAQ,UAAA,CAAW;AAAA,SACpB,CAAA;AAED,QAAA,YAAA,CAAa,SAAS,CAAA;AAEtB,QAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,UAAA,MAAM,KAAA,GAAQ,MAAM,QAAA,CAAS,IAAA,EAAK,CAAE,KAAA,CAAM,OAAO,EAAE,OAAA,EAAS,QAAA,CAAS,UAAA,EAAW,CAAE,CAAA;AAClF,UAAA,MAAM,IAAI,KAAA,CAAM,KAAA,CAAM,OAAA,IAAW,CAAA,KAAA,EAAQ,SAAS,MAAM,CAAA,EAAA,EAAK,QAAA,CAAS,UAAU,CAAA,CAAE,CAAA;AAAA,QACpF;AAEA,QAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAGjC,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,MAAM,MAAA,GAAS,MAAA,CAAO,SAAA,CAAU,IAAI,CAAA;AACpC,UAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,YAAA,MAAM,IAAI,KAAA,CAAM,CAAA,yBAAA,EAA4B,MAAA,CAAO,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,UACpE;AACA,UAAA,MAAM,gBAAgB,MAAA,CAAO,IAAA;AAG7B,UAAA,IAAI,IAAA,CAAK,OAAO,KAAA,EAAO,OAAA,KAAY,CAAC,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,MAAA,KAAW,KAAA,CAAA,EAAQ;AAC/E,YAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,QAAA,EAAU,EAAE,IAAA,EAAM,eAAe,SAAA,EAAW,IAAA,CAAK,GAAA,EAAI,EAAG,CAAA;AAAA,UACzE;AAEA,UAAA,OAAO,aAAA;AAAA,QACT;AAGA,QAAA,IAAI,IAAA,CAAK,OAAO,KAAA,EAAO,OAAA,KAAY,CAAC,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,MAAA,KAAW,KAAA,CAAA,EAAQ;AAC/E,UAAA,IAAA,CAAK,KAAA,CAAM,IAAI,QAAA,EAAU,EAAE,MAAM,SAAA,EAAW,IAAA,CAAK,GAAA,EAAI,EAAG,CAAA;AAAA,QAC1D;AAEA,QAAA,OAAO,IAAA;AAAA,MACT,SAAS,KAAA,EAAO;AACd,QAAA,SAAA,GAAY,KAAA;AAEZ,QAAA,IAAI,WAAW,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO,QAAA,IAAY,KAAK,CAAA,EAAG;AACpD,UAAA,MAAM,IAAI,OAAA,CAAQ,CAAAC,QAAAA,KAAW,UAAA,CAAWA,QAAAA,EAAAA,CAAU,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO,KAAA,IAAS,GAAA,KAAS,OAAA,GAAU,EAAE,CAAC,CAAA;AAAA,QACtG;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,SAAA,IAAa,IAAI,KAAA,CAAM,gBAAgB,CAAA;AAAA,EAC/C;AAAA;AAAA,EAGA,MAAM,cAAc,MAAA,EAGqB;AACvC,IAAA,MAAM,WAAA,GAAc,IAAI,eAAA,EAAgB;AACxC,IAAA,IAAI,MAAA,EAAQ,MAAM,WAAA,CAAY,MAAA,CAAO,QAAQ,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA;AACnE,IAAA,IAAI,MAAA,EAAQ,UAAU,WAAA,CAAY,MAAA,CAAO,YAAY,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA;AAE/E,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,kBAAA,EAAqB,WAAA,CAAY,QAAA,EAAS,GAAI,GAAA,GAAM,WAAA,CAAY,QAAA,KAAa,EAAE,CAAA,CAAA;AACjH,IAAA,OAAO,KAAK,cAAA,CAAe,GAAA,EAAK,EAAC,EAAG,uBAAA,CAAwB,cAAc,CAAC,CAAA;AAAA,EAC7E;AAAA,EAEA,MAAM,YAAY,gBAAA,EAAsD;AACtE,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,sBAAsB,gBAAgB,CAAA,CAAA;AACxE,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAmC,GAAA,EAAK,EAAC,EAAGF,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,cAAA,EAAgB,CAAC,CAAA;AAC1G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA,EAGA,MAAM,eAAA,CACJ,YAAA,EACA,SAAA,EACA,OAAA,EACuB;AACvB,IAAA,MAAM,WAAA,GAAc,IAAI,eAAA,CAAgB;AAAA,MACtC,UAAA,EAAY,SAAA;AAAA,MACZ,QAAA,EAAU;AAAA,KACX,CAAA;AACD,IAAA,MAAM,GAAA,GAAM,GAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,mBAAA,EAAsB,YAAY,iBAAiB,WAAW,CAAA,CAAA;AAChG,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAuC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,kBAAA,EAAoB,CAAC,CAAA;AAClH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA,EAGA,MAAM,QAAA,GAA4B;AAChC,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,aAAA,CAAA;AAClC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAA,CAAiC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,MAAMA,KAAAA,CAAE,KAAA,CAAM,UAAU,CAAA,EAAG,CAAC,CAAA;AAC7G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,QAAQ,IAAA,EAA6B;AACzC,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,iBAAiB,IAAI,CAAA,CAAA;AACvD,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA+B,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,UAAA,EAAY,CAAC,CAAA;AAClG,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,SAAS,MAAA,EAIK;AAClB,IAAA,MAAM,WAAA,GAAc,IAAI,eAAA,EAAgB;AACxC,IAAA,IAAI,MAAA,EAAQ,MAAM,WAAA,CAAY,MAAA,CAAO,QAAQ,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA;AACnE,IAAA,IAAI,MAAA,EAAQ,UAAU,WAAA,CAAY,MAAA,CAAO,YAAY,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA;AAC/E,IAAA,IAAI,QAAQ,GAAA,EAAK,WAAA,CAAY,MAAA,CAAO,KAAA,EAAO,OAAO,GAAG,CAAA;AAErD,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,aAAA,EAAgB,WAAA,CAAY,QAAA,EAAS,GAAI,GAAA,GAAM,WAAA,CAAY,QAAA,KAAa,EAAE,CAAA,CAAA;AAC5G,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAA,CAAiC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,MAAMA,KAAAA,CAAE,KAAA,CAAM,UAAU,CAAA,EAAG,CAAC,CAAA;AAC7G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,QAAQ,IAAA,EAA6B;AACzC,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,iBAAiB,IAAI,CAAA,CAAA;AACvD,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA+B,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,UAAA,EAAY,CAAC,CAAA;AAClG,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,YAAA,GAA6B;AACjC,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,iBAAA,CAAA;AAClC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,eAAmC,GAAA,EAAK,IAAIA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAMA,MAAE,KAAA,CAAMA,KAAAA,CAAE,QAAQ,CAAA,EAAG,CAAC,CAAA;AAC/G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,aAAA,GAAqC;AACzC,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,kBAAA,CAAA;AAClC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAA,CAAqC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,MAAMA,KAAAA,CAAE,KAAA,CAAM,cAAc,CAAA,EAAG,CAAC,CAAA;AACrH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,YAAY,IAAA,EAAiC;AACjD,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,sBAAsB,IAAI,CAAA,CAAA;AAC5D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAmC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,cAAA,EAAgB,CAAC,CAAA;AAC1G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,oBAAoB,IAAA,EAA0C;AAClE,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,sBAAsB,IAAI,CAAA,SAAA,CAAA;AAC5D,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAA,CAA4C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,MAAMA,KAAAA,CAAE,KAAA,CAAM,qBAAqB,CAAA,EAAG,CAAC,CAAA;AACnI,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,kBAAA,CAAmB,IAAA,EAAc,OAAA,EAA2C;AAChF,IAAA,MAAM,GAAA,GAAM,GAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,mBAAA,EAAsB,IAAI,aAAa,OAAO,CAAA,CAAA;AAChF,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA0C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,qBAAA,EAAuB,CAAC,CAAA;AACxH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA,EAGA,MAAM,eAAA,GAAyC;AAC7C,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,qBAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAuC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,kBAAA,EAAoB,CAAC,CAAA;AAClH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,gBAAA,GAA2C;AAC/C,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,sBAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAwC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,mBAAA,EAAqB,CAAC,CAAA;AACpH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,mBAAA,GAAiD;AACrD,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,2BAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA2C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,sBAAA,EAAwB,CAAC,CAAA;AAC1H,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,kBAAA,GAA+C;AACnD,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,wBAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA0C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,qBAAA,EAAuB,CAAC,CAAA;AACxH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA,EAGA,MAAM,cAAc,OAAA,EAAmD;AACrE,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,gBAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA;AAAA,MAC1B,GAAA;AAAA,MACA;AAAA,QACE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA,OAC9B;AAAA,MACAA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,uBAAuB;AAAA,KAC1C;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,WAAW,SAAA,EAA6C;AAC5D,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,oBAAoB,SAAS,CAAA,CAAA;AAC/D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA0C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,qBAAA,EAAuB,CAAC,CAAA;AACxH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAiB,MAAA,EAAmD;AACxE,IAAA,MAAM,YAAA,GAAe,IAAI,eAAA,EAAgB;AAGzC,IAAA,IAAI,OAAO,OAAA,EAAS,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,OAAO,OAAO,CAAA;AAC9D,IAAA,IAAI,OAAO,SAAA,EAAW,YAAA,CAAa,GAAA,CAAI,WAAA,EAAa,OAAO,SAAS,CAAA;AAGpE,IAAA,IAAI,MAAA,CAAO,QAAQ,YAAA,CAAa,GAAA,CAAI,UAAU,MAAA,CAAO,MAAA,CAAO,UAAU,CAAA;AAGtE,IAAA,IAAI,OAAO,WAAA,EAAa,YAAA,CAAa,GAAA,CAAI,aAAA,EAAe,OAAO,WAAW,CAAA;AAC1E,IAAA,IAAI,OAAO,OAAA,EAAS,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,OAAO,OAAO,CAAA;AAG9D,IAAA,IAAI,OAAO,IAAA,EAAM,YAAA,CAAa,GAAA,CAAI,MAAA,EAAQ,OAAO,IAAI,CAAA;AACrD,IAAA,IAAI,OAAO,IAAA,EAAM,YAAA,CAAa,GAAA,CAAI,MAAA,EAAQ,OAAO,IAAI,CAAA;AACrD,IAAA,IAAI,OAAO,YAAA,EAAc,YAAA,CAAa,GAAA,CAAI,eAAA,EAAiB,OAAO,YAAY,CAAA;AAC9E,IAAA,IAAI,MAAA,CAAO,aAAa,MAAA,EAAW,YAAA,CAAa,IAAI,UAAA,EAAY,MAAA,CAAO,QAAA,CAAS,QAAA,EAAU,CAAA;AAC1F,IAAA,IAAI,MAAA,CAAO,cAAc,MAAA,EAAW,YAAA,CAAa,IAAI,WAAA,EAAa,MAAA,CAAO,SAAA,CAAU,QAAA,EAAU,CAAA;AAC7F,IAAA,IAAI,MAAA,CAAO,eAAe,MAAA,EAAW,YAAA,CAAa,IAAI,aAAA,EAAe,MAAA,CAAO,UAAA,CAAW,QAAA,EAAU,CAAA;AACjG,IAAA,IAAI,MAAA,CAAO,aAAa,MAAA,EAAW,YAAA,CAAa,IAAI,UAAA,EAAY,MAAA,CAAO,QAAA,GAAW,GAAA,GAAM,GAAG,CAAA;AAC3F,IAAA,IAAI,MAAA,CAAO,YAAY,MAAA,EAAW,YAAA,CAAa,IAAI,SAAA,EAAW,MAAA,CAAO,OAAA,GAAU,GAAA,GAAM,GAAG,CAAA;AACxF,IAAA,IAAI,MAAA,CAAO,YAAY,MAAA,EAAW,YAAA,CAAa,IAAI,SAAA,EAAW,MAAA,CAAO,OAAA,GAAU,GAAA,GAAM,GAAG,CAAA;AAExF,IAAA,MAAM,GAAA,GAAM,GAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,0BAAA,EAA6B,YAAA,CAAa,UAAU,CAAA,CAAA;AACtF,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,eAAqC,GAAA,EAAK,IAAI,0BAA0B,CAAA;AACpG,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAEF,CAAA;ACzUO,SAAS,YAAA,CAAa,IAAA,EAAW,MAAA,GAAuB,MAAA,EAAc;AAC3E,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,MAAA;AACH,MAAA,OAAA,CAAQ,IAAI,IAAA,CAAK,SAAA,CAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAC,CAAA;AACzC,MAAA;AAAA,IAEF,KAAK,MAAA;AACH,MAAA,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAO,IAAI,CAAC,CAAA;AACxB,MAAA;AAAA,IAEF,KAAK,OAAA;AACH,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,QAAA,OAAA,CAAQ,MAAM,IAAI,CAAA;AAAA,MACpB,CAAA,MAAO;AACL,QAAA,OAAA,CAAQ,KAAA,CAAM,CAAC,IAAI,CAAC,CAAA;AAAA,MACtB;AACA,MAAA;AAAA,IAEF;AACE,MAAA,OAAA,CAAQ,GAAA,CAAIG,aAAQ,IAAA,EAAM,EAAE,OAAO,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,CAAC,CAAA;AAAA;AAE9D;AAEA,SAAS,MAAA,CAAO,GAAA,EAAU,MAAA,GAAiB,CAAA,EAAW;AACpD,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA;AAEjC,EAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW;AACrC,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAO,QAAQ,QAAA,EAAU;AAC3B,IAAA,OAAO,GAAA,CAAI,QAAA,CAAS,IAAI,CAAA,GAAI,CAAA;AAAA,EAAM,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA,CAAE,IAAI,CAAA,IAAA,KAAQ,CAAA,EAAG,MAAM,CAAA,EAAA,EAAK,IAAI,CAAA,CAAE,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,GAAK,GAAA;AAAA,EACrG;AAEA,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,OAAO,QAAQ,SAAA,EAAW;AACvD,IAAA,OAAO,OAAO,GAAG,CAAA;AAAA,EACnB;AAEA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG;AACtB,IAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAC7B,IAAA,OAAO,IAAA,GAAO,GAAA,CAAI,GAAA,CAAI,CAAA,IAAA,KAAQ,GAAG,MAAM,CAAA,EAAA,EAAK,MAAA,CAAO,IAAA,EAAM,SAAS,CAAC,CAAC,CAAA,CAAE,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,EACnF;AAEA,EAAA,IAAI,OAAO,QAAQ,QAAA,EAAU;AAC3B,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA;AAClC,IAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAEjC,IAAA,OAAO,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC1C,MAAA,MAAM,cAAA,GAAiB,MAAA,CAAO,KAAA,EAAO,MAAA,GAAS,CAAC,CAAA;AAC/C,MAAA,IAAI,cAAA,CAAe,UAAA,CAAW,IAAI,CAAA,EAAG;AACnC,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,EAAG,GAAG,IAAI,cAAc,CAAA,CAAA;AAAA,MAC1C;AACA,MAAA,OAAO,CAAA,EAAG,MAAM,CAAA,EAAG,GAAG,KAAK,cAAc,CAAA,CAAA;AAAA,IAC3C,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AAAA,EACd;AAEA,EAAA,OAAO,OAAO,GAAG,CAAA;AACnB;AAEO,SAAS,YAAY,KAAA,EAAkB;AAC5C,EAAA,IAAI,MAAM,OAAA,EAAS;AACjB,IAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,OAAA,EAAU,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,EACzC,CAAA,MAAO;AACL,IAAA,OAAA,CAAQ,KAAA,CAAM,iCAAiC,KAAK,CAAA;AAAA,EACtD;AACA,EAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAChB;;;ACnEO,SAAS,kBAAkBC,QAAAA,EAAwB;AACxD,EAAA,MAAM,UAAA,GAAaA,SAChB,OAAA,CAAQ,YAAY,EACpB,KAAA,CAAM,OAAO,CAAA,CACb,WAAA,CAAY,mBAAmB,CAAA;AAElC,EAAA,UAAA,CACG,QAAQ,MAAM,CAAA,CACd,YAAY,qBAAqB,CAAA,CACjC,OAAO,qBAAA,EAAuB,aAAA,EAAe,GAAG,CAAA,CAChD,MAAA,CAAO,wBAAwB,gBAAA,EAAkB,IAAI,EACrD,MAAA,CAAO,OAAO,SAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,aAAA,CAAc;AAAA,QACxC,IAAA,EAAM,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AAAA,QAC3B,QAAA,EAAU,QAAA,CAAS,OAAA,CAAQ,KAAK;AAAA,OACjC,CAAA;AAED,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,WAAW,CAAA,CACnB,WAAA,CAAY,qCAAqC,EACjD,MAAA,CAAO,OAAO,EAAA,EAAI,OAAA,EAAS,OAAA,KAAY;AACtC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,WAAA,CAAY,EAAE,CAAA;AAE5C,MAAA,YAAA,CAAa,UAAU,MAAM,CAAA;AAAA,IAC/B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,QAAQ,CAAA,CAChB,WAAA,CAAY,gCAAgC,CAAA,CAC5C,MAAA,CAAO,iCAAA,EAAmC,8BAA8B,CAAA,CACxE,MAAA,CAAO,mBAAA,EAAqB,WAAW,CAAA,CACvC,MAAA,CAAO,mBAAA,EAAqB,mBAAmB,CAAA,CAC/C,MAAA,CAAO,kBAAA,EAAoB,2BAA2B,CAAA,CACtD,MAAA,CAAO,oBAAA,EAAsB,6BAA6B,CAAA,CAC1D,MAAA,CAAO,uBAAA,EAAyB,kBAAkB,CAAA,CAClD,MAAA,CAAO,yBAAA,EAA2B,oBAAoB,CAAA,CACtD,MAAA,CAAO,sBAAA,EAAwB,qBAAqB,CAAA,CACpD,MAAA,CAAO,wBAAA,EAA0B,iBAAiB,CAAA,CAClD,MAAA,CAAO,wBAAA,EAA0B,eAAe,CAAA,CAChD,MAAA,CAAO,YAAA,EAAc,cAAc,CAAA,CACnC,MAAA,CAAO,WAAA,EAAa,aAAa,CAAA,CACjC,MAAA,CAAO,WAAA,EAAa,aAAa,CAAA,CACjC,MAAA,CAAO,OAAO,SAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,eAAoB,EAAC;AAE3B,MAAA,IAAI,OAAA,CAAQ,WAAA,EAAa,YAAA,CAAa,WAAA,GAAc,OAAA,CAAQ,WAAA;AAC5D,MAAA,IAAI,OAAA,CAAQ,IAAA,EAAM,YAAA,CAAa,IAAA,GAAO,OAAA,CAAQ,IAAA;AAC9C,MAAA,IAAI,OAAA,CAAQ,IAAA,EAAM,YAAA,CAAa,IAAA,GAAO,OAAA,CAAQ,IAAA;AAC9C,MAAA,IAAI,OAAA,CAAQ,OAAA,EAAS,YAAA,CAAa,OAAA,GAAU,OAAA,CAAQ,OAAA;AACpD,MAAA,IAAI,OAAA,CAAQ,SAAA,EAAW,YAAA,CAAa,SAAA,GAAY,OAAA,CAAQ,SAAA;AACxD,MAAA,IAAI,QAAQ,MAAA,EAAQ,YAAA,CAAa,MAAA,GAAS,QAAA,CAAS,QAAQ,MAAM,CAAA;AACjE,MAAA,IAAI,QAAQ,QAAA,EAAU,YAAA,CAAa,QAAA,GAAW,QAAA,CAAS,QAAQ,QAAQ,CAAA;AACvE,MAAA,IAAI,QAAQ,SAAA,EAAW,YAAA,CAAa,SAAA,GAAY,QAAA,CAAS,QAAQ,SAAS,CAAA;AAC1E,MAAA,IAAI,QAAQ,UAAA,EAAY,YAAA,CAAa,UAAA,GAAa,QAAA,CAAS,QAAQ,UAAU,CAAA;AAC7E,MAAA,IAAI,OAAA,CAAQ,YAAA,EAAc,YAAA,CAAa,YAAA,GAAe,OAAA,CAAQ,YAAA;AAC9D,MAAA,IAAI,OAAA,CAAQ,QAAA,EAAU,YAAA,CAAa,QAAA,GAAW,IAAA;AAC9C,MAAA,IAAI,OAAA,CAAQ,OAAA,EAAS,YAAA,CAAa,OAAA,GAAU,IAAA;AAC5C,MAAA,IAAI,OAAA,CAAQ,OAAA,EAAS,YAAA,CAAa,OAAA,GAAU,IAAA;AAE5C,MAAA,MAAM,OAAA,GAAU,MAAM,MAAA,CAAO,gBAAA,CAAiB,YAAY,CAAA;AAE1D,MAAA,YAAA,CAAa,SAAS,MAAM,CAAA;AAAA,IAC9B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,QAAQ,mBAAmB,CAAA,CAC3B,YAAY,2BAA2B,CAAA,CACvC,eAAe,oBAAA,EAAsB,yBAAyB,CAAA,CAC9D,cAAA,CAAe,oBAAoB,uBAAuB,CAAA,CAC1D,OAAO,OAAO,EAAA,EAAI,SAAS,OAAA,KAAY;AACtC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,YAAA,GAAe,MAAM,MAAA,CAAO,eAAA,CAAgB,IAAI,OAAA,CAAQ,KAAA,EAAO,QAAQ,GAAG,CAAA;AAEhF,MAAA,YAAA,CAAa,cAAc,MAAM,CAAA;AAAA,IACnC,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AACL;;;ACzGO,SAAS,eAAeA,QAAAA,EAAwB;AACrD,EAAA,MAAM,UAAUA,QAAAA,CACb,OAAA,CAAQ,SAAS,CAAA,CACjB,YAAY,2CAA2C,CAAA;AAG1D,EAAA,MAAM,QAAQ,OAAA,CACX,OAAA,CAAQ,OAAO,CAAA,CACf,YAAY,cAAc,CAAA;AAE7B,EAAA,KAAA,CACG,OAAA,CAAQ,MAAM,CAAA,CACd,WAAA,CAAY,gBAAgB,CAAA,CAC5B,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,QAAA,EAAS;AAErC,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,KAAA,CACG,OAAA,CAAQ,aAAa,CAAA,CACrB,WAAA,CAAY,2BAA2B,EACvC,MAAA,CAAO,OAAO,IAAA,EAAM,OAAA,EAAS,OAAA,KAAY;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA;AAEtC,MAAA,YAAA,CAAa,MAAM,MAAM,CAAA;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAGH,EAAA,MAAM,QAAQ,OAAA,CACX,OAAA,CAAQ,OAAO,CAAA,CACf,YAAY,cAAc,CAAA;AAE7B,EAAA,KAAA,CACG,OAAA,CAAQ,MAAM,CAAA,CACd,WAAA,CAAY,gBAAgB,CAAA,CAC5B,MAAA,CAAO,qBAAA,EAAuB,aAAA,EAAe,GAAG,CAAA,CAChD,OAAO,sBAAA,EAAwB,gBAAA,EAAkB,IAAI,CAAA,CACrD,MAAA,CAAO,iBAAA,EAAmB,eAAe,CAAA,CACzC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,MAAA,GAAc;AAAA,QAClB,IAAA,EAAM,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AAAA,QAC3B,QAAA,EAAU,QAAA,CAAS,OAAA,CAAQ,KAAK;AAAA,OAClC;AAEA,MAAA,IAAI,OAAA,CAAQ,GAAA,EAAK,MAAA,CAAO,GAAA,GAAM,OAAA,CAAQ,GAAA;AAEtC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAE3C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,KAAA,CACG,OAAA,CAAQ,aAAa,CAAA,CACrB,WAAA,CAAY,2BAA2B,EACvC,MAAA,CAAO,OAAO,IAAA,EAAM,OAAA,EAAS,OAAA,KAAY;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA;AAEtC,MAAA,YAAA,CAAa,MAAM,MAAM,CAAA;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAGH,EAAA,MAAM,UAAA,GAAa,QAChB,OAAA,CAAQ,YAAY,EACpB,KAAA,CAAM,MAAM,CAAA,CACZ,WAAA,CAAY,mBAAmB,CAAA;AAElC,EAAA,UAAA,CACG,OAAA,CAAQ,MAAM,CAAA,CACd,WAAA,CAAY,qBAAqB,CAAA,CACjC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,aAAA,EAAc;AAE1C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,aAAa,CAAA,CACrB,WAAA,CAAY,+BAA+B,EAC3C,MAAA,CAAO,OAAO,IAAA,EAAM,OAAA,EAAS,OAAA,KAAY;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,WAAA,CAAY,IAAI,CAAA;AAE9C,MAAA,YAAA,CAAa,UAAU,MAAM,CAAA;AAAA,IAC/B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,iBAAiB,CAAA,CACzB,WAAA,CAAY,8BAA8B,EAC1C,MAAA,CAAO,OAAO,IAAA,EAAM,OAAA,EAAS,OAAA,KAAY;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,mBAAA,CAAoB,IAAI,CAAA;AAEtD,MAAA,YAAA,CAAa,UAAU,MAAM,CAAA;AAAA,IAC/B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,8BAA8B,CAAA,CACtC,WAAA,CAAY,+BAA+B,CAAA,CAC3C,MAAA,CAAO,OAAO,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,OAAA,KAAY;AACrD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,kBAAA,CAAmB,UAAU,OAAO,CAAA;AAEhE,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAGH,EAAA,OAAA,CACG,OAAA,CAAQ,WAAW,CAAA,CACnB,WAAA,CAAY,oBAAoB,CAAA,CAChC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,YAAA,EAAa;AAE5C,MAAA,YAAA,CAAa,WAAW,MAAM,CAAA;AAAA,IAChC,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AACL;;;AC/KO,SAAS,gBAAgBA,QAAAA,EAAwB;AACtD,EAAA,MAAM,WAAWA,QAAAA,CACd,OAAA,CAAQ,UAAU,CAAA,CAClB,YAAY,iBAAiB,CAAA;AAEhC,EAAA,QAAA,CACG,OAAA,CAAQ,MAAM,CAAA,CACd,WAAA,CAAY,wBAAwB,CAAA,CACpC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,eAAA,EAAgB;AAE5C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,OAAO,CAAA,CACf,WAAA,CAAY,oBAAoB,CAAA,CAChC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,gBAAA,EAAiB;AAE7C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,YAAY,CAAA,CACpB,KAAA,CAAM,OAAO,CAAA,CACb,WAAA,CAAY,uBAAuB,CAAA,CACnC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,mBAAA,EAAoB;AAEhD,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,SAAS,CAAA,CACjB,WAAA,CAAY,sBAAsB,CAAA,CAClC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,kBAAA,EAAmB;AAE/C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,KAAK,CAAA,CACb,WAAA,CAAY,kBAAkB,CAAA,CAC9B,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,CAAC,MAAM,KAAA,EAAO,UAAA,EAAY,OAAO,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,QAC3D,OAAO,eAAA,EAAgB;AAAA,QACvB,OAAO,gBAAA,EAAiB;AAAA,QACxB,OAAO,mBAAA,EAAoB;AAAA,QAC3B,OAAO,kBAAA;AAAmB,OAC3B,CAAA;AAED,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,IAAA;AAAA,QACA,KAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAEA,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AACL;AC9FO,SAAS,gBAAgBA,QAAAA,EAAwB;AACtD,EAAA,MAAM,WAAWA,QAAAA,CACd,OAAA,CAAQ,UAAU,CAAA,CAClB,YAAY,iBAAiB,CAAA;AAEhC,EAAA,QAAA,CACG,OAAA,CAAQ,QAAQ,CAAA,CAChB,WAAA,CAAY,sBAAsB,CAAA,CAClC,cAAA,CAAe,mBAAA,EAAqB,qCAAqC,CAAA,CACzE,MAAA,CAAO,OAAO,SAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAGrC,MAAA,MAAM,WAAWF,YAAA,CAAQ,OAAA,CAAQ,GAAA,EAAI,EAAG,QAAQ,IAAI,CAAA;AACpD,MAAA,MAAM,cAA8B,IAAA,CAAK,KAAA,CAAMG,eAAA,CAAa,QAAA,EAAU,OAAO,CAAC,CAAA;AAE9E,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,aAAA,CAAc,WAAW,CAAA;AAErD,MAAA,OAAA,CAAQ,IAAI,qCAAgC,CAAA;AAC5C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,WAAW,CAAA,CACnB,WAAA,CAAY,4BAA4B,EACxC,MAAA,CAAO,OAAO,EAAA,EAAI,OAAA,EAAS,OAAA,KAAY;AACtC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,OAAA,GAAU,MAAM,MAAA,CAAO,UAAA,CAAW,EAAE,CAAA;AAE1C,MAAA,YAAA,CAAa,SAAS,MAAM,CAAA;AAAA,IAC9B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,QAAQ,SAAS,CAAA,CACjB,YAAY,sCAAsC,CAAA,CAClD,OAAO,MAAM;AACZ,IAAA,MAAM,OAAA,GAA0B;AAAA,MAC9B,WAAA,EAAa,GAAA;AAAA,MACb,QAAA,EAAU;AAAA,QACR,UAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAW,KAAA;AAAA,QACX,KAAA,EAAO,sBAAA;AAAA,QACP,KAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAS,aAAA;AAAA,QACT,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS,aAAA;AAAA,QACT,WAAA,EAAa;AAAA,OACf;AAAA,MACA,YAAA,EAAc,YAAA;AAAA,MACd,cAAA,EAAgB,YAAA;AAAA,MAChB,MAAA,EAAQ,CAAA;AAAA,MACR,WAAA,EAAa,GAAA;AAAA,MACb,KAAA,EAAO;AAAA,KACT;AAEA,IAAA,OAAA,CAAQ,IAAI,+DAA+D,CAAA;AAC3E,IAAA,OAAA,CAAQ,IAAI,IAAA,CAAK,SAAA,CAAU,OAAA,EAAS,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,EAC9C,CAAC,CAAA;AACL;;;AChEAJ,aAAA,CAAO,EAAE,MAAMC,YAAAA,CAAQ,OAAA,CAAQ,KAAI,EAAG,MAAM,GAAG,CAAA;AAE/C,IAAM,OAAA,GAAU,IAAII,iBAAA,EAAQ;AAE5B,OAAA,CACG,KAAK,iBAAiB,CAAA,CACtB,YAAY,+CAA+C,CAAA,CAC3D,QAAQ,OAAO,CAAA,CACf,OAAO,sBAAA,EAAwB,cAAA,EAAgB,QAAQ,GAAA,CAAI,wBAAwB,EACnF,MAAA,CAAO,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,CAAI,uBAAuB,CAAA,CAC5E,MAAA,CAAO,6BAA6B,eAAA,EAAiB,OAAA,CAAQ,IAAI,wBAAwB,CAAA,CACzF,OAAO,oBAAA,EAAsB,uBAAA,EAAyB,OAAO,CAAA,CAC7D,MAAA,CAAO,yBAAyB,mCAAA,EAAqC,MAAM,EAC3E,IAAA,CAAK,WAAA,EAAa,CAAC,WAAA,KAAgB;AAClC,EAAA,MAAM,IAAA,GAAO,YAAY,IAAA,EAAK;AAG9B,EAAA,IAAI,CAAC,KAAK,OAAA,EAAS;AACjB,IAAA,OAAA,CAAQ,MAAM,yEAAyE,CAAA;AACvF,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AAEA,EAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AAChB,IAAA,OAAA,CAAQ,MAAM,uEAAuE,CAAA;AACrF,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AAEA,EAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAClB,IAAA,OAAA,CAAQ,MAAM,yEAAyE,CAAA;AACvF,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AAGA,EAAA,MAAM,YAAA,GAAqC;AAAA,IACzC,SAAS,IAAA,CAAK,OAAA;AAAA,IACd,QAAQ,IAAA,CAAK,MAAA;AAAA,IACb,UAAU,IAAA,CAAK,QAAA;AAAA,IACf,OAAA,EAAS,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA;AAAA,IAC9B,KAAA,EAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAK,CAAA;AAAE,GAClC;AAEA,EAAA,WAAA,CAAY,MAAA,GAAS,IAAI,oBAAA,CAAqB,YAAY,CAAA;AAC1D,EAAA,WAAA,CAAY,SAAS,IAAA,CAAK,MAAA;AAC5B,CAAC,CAAA;AAGH,iBAAA,CAAkB,OAAO,CAAA;AACzB,cAAA,CAAe,OAAO,CAAA;AACtB,eAAA,CAAgB,OAAO,CAAA;AACvB,eAAA,CAAgB,OAAO,CAAA;AAEvB,OAAA,CAAQ,KAAA,EAAM","file":"index.js","sourcesContent":["import { z } from 'zod';\n\n// Common types used across multiple endpoints\n\nexport const PaginationLinksSchema = z.object({\n first: z.string().nullable(),\n last: z.string().nullable(),\n prev: z.string().nullable(),\n next: z.string().nullable(),\n});\n\nexport const PaginationMetaSchema = z.object({\n current_page: z.number(),\n from: z.number().nullable(),\n last_page: z.number(),\n links: z.array(z.object({\n url: z.string().nullable(),\n label: z.string(),\n active: z.boolean(),\n })),\n path: z.string(),\n per_page: z.number(),\n to: z.number().nullable(),\n total: z.number(),\n});\n\nexport const PaginatedResponseSchema = <T extends z.ZodTypeAny>(dataSchema: T) =>\n z.object({\n data: z.array(dataSchema),\n links: PaginationLinksSchema,\n meta: PaginationMetaSchema,\n });\n\nexport const ApiErrorSchema = z.object({\n message: z.string(),\n errors: z.record(z.array(z.string())).optional(),\n});\n\n// Base types\nexport type PaginationLinks = z.infer<typeof PaginationLinksSchema>;\nexport type PaginationMeta = z.infer<typeof PaginationMetaSchema>;\nexport type PaginatedResponse<T> = {\n data: T[];\n links: PaginationLinks;\n meta: PaginationMeta;\n};\nexport type ApiError = z.infer<typeof ApiErrorSchema>;","import { z } from \"zod\";\n\n// Property-related types and schemas\n\nexport const PropertyImageSchema = z.object({\n id: z.number(),\n url: z.string(),\n alt: z.string().optional(),\n});\n\nexport const PropertySchema = z.object({\n id: z.number(),\n external_id: z.number().optional(),\n name: z.string(),\n slug: z.string(),\n\n // Descriptions\n short_description: z.string().nullable(),\n description: z.string(),\n area_description: z.string().nullable(),\n arrival_description: z.string().nullable(),\n\n // Property type & capacity\n type: z.string().nullable(),\n max_persons: z.number().nullable(),\n bedrooms: z.number().nullable(),\n bathrooms: z.number().nullable(),\n toilets: z.number().nullable(),\n size: z.number().nullable(),\n floor: z.number().nullable(),\n\n // Location\n street: z.string().nullable(),\n zipcode: z.string().nullable(),\n area: z.string().nullable(),\n city: z.string(),\n country: z.string(),\n latitude: z.number(),\n longitude: z.number(),\n\n // Beds\n single_bed: z.number().nullable(),\n double_bed: z.number().nullable(),\n single_sofa: z.number().nullable(),\n double_sofa: z.number().nullable(),\n single_bunk: z.number().nullable(),\n\n // Amenities - Outdoor\n balcony: z.boolean(),\n terrace: z.boolean(),\n view: z.string().nullable(),\n\n // Amenities - Climate\n airco: z.boolean(),\n fans: z.boolean(),\n heating: z.boolean(),\n\n // Amenities - Connectivity\n internet: z.string().nullable(),\n internet_connection: z.string().nullable(),\n tv: z.string().nullable(),\n tv_connection: z.string().nullable(),\n dvd: z.boolean(),\n computer: z.boolean(),\n printer: z.boolean(),\n\n // Amenities - Kitchen\n dishwasher: z.boolean(),\n oven: z.boolean(),\n microwave: z.boolean(),\n fridge: z.boolean(),\n freezer: z.boolean(),\n toaster: z.boolean(),\n kettle: z.boolean(),\n coffeemachine: z.boolean(),\n\n // Amenities - Laundry\n washingmachine: z.boolean(),\n dryer: z.boolean(),\n iron: z.boolean(),\n\n // Amenities - Bathroom\n bathtub: z.boolean(),\n jacuzzi: z.boolean(),\n shower_regular: z.boolean(),\n shower_steam: z.boolean(),\n hairdryer: z.boolean(),\n\n // Amenities - Recreation\n swimmingpool: z.string().nullable(),\n sauna: z.string().nullable(),\n\n // Amenities - General\n parking: z.string().nullable(),\n entresol: z.boolean(),\n wheelchair_friendly: z.boolean(),\n smoking_allowed: z.boolean(),\n pets_allowed: z.boolean(),\n\n // Supplies\n supplies_coffee: z.boolean(),\n supplies_tea: z.boolean(),\n supplies_milk: z.boolean(),\n supplies_sugar: z.boolean(),\n supplies_dishwasher_tablets: z.boolean(),\n\n // Services\n service_linen: z.boolean(),\n service_towels: z.boolean(),\n\n // Costs & Policies\n cleaning_costs: z.number().nullable(),\n deposit_costs: z.number().nullable(),\n min_rate: z.number().nullable(),\n minimal_nights: z.number().nullable(),\n maximal_nights: z.number().nullable(),\n\n // Check-in/out\n check_in: z.string().nullable(),\n check_out: z.string().nullable(),\n\n // Media\n images: z.array(z.object({\n id: z.number(),\n url: z.string(),\n thumb_url: z.string(),\n alt: z.string(),\n })).optional(),\n\n // Metadata\n status: z.string().nullable(),\n provider_name: z.string().nullable(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport const AvailableDay = z.object({\n available: z.boolean(),\n morning_available: z.boolean(),\n date: z.string(),\n day: z.number(),\n});\n\nexport const AvailabilitySchema = z.object({\n days: z.record(z.string(), AvailableDay),\n});\n\n// Property Search schemas\nexport const PropertySearchParamsSchema = z.object({\n // Date filters\n arrival: z.string().optional(),\n departure: z.string().optional(),\n\n // Guest capacity\n guests: z.number().optional(),\n\n // General search (deprecated in favor of direct column filters)\n destination: z.string().optional(),\n segment: z.string().optional(), // DEPRECATED: use city/area instead\n\n // Direct column filters (preferred for headless instances)\n city: z.string().optional(),\n area: z.string().optional(),\n propertyType: z.string().optional(),\n bedrooms: z.number().optional(),\n bathrooms: z.number().optional(),\n maxPersons: z.number().optional(),\n elevator: z.boolean().optional(),\n parking: z.boolean().optional(),\n balcony: z.boolean().optional(),\n});\n\nexport const PropertySearchResultSchema = z.object({\n data: z.array(PropertySchema),\n});\n\nexport const PropertyPageSettingsSchema = z.object({\n routing: z.object({\n base_url: z.string(),\n }),\n index: z.object({\n seo: z.object({\n title: z.string(),\n description: z.string(),\n openGraphTitle: z.string().optional(),\n tags: z.array(z.string()).optional(),\n }),\n }),\n show: z\n .object({\n hero: z\n .object({\n provider: z.boolean().optional(),\n address: z.boolean().optional(),\n })\n .optional(),\n cancellation_policy: z\n .object({\n description: z.string(),\n })\n .optional(),\n related_properties: z\n .object({\n title: z.string(),\n })\n .optional(),\n })\n .optional(),\n});\n\n// Exported types\nexport type PropertyImage = z.infer<typeof PropertyImageSchema>;\nexport type Property = z.infer<typeof PropertySchema>;\nexport type Availability = z.infer<typeof AvailabilitySchema>;\nexport type PropertyPageSettings = z.infer<typeof PropertyPageSettingsSchema>;\n\n// Property Search types\nexport type PropertySearchParams = z.infer<typeof PropertySearchParamsSchema>;\nexport type PropertySearchResult = z.infer<typeof PropertySearchResultSchema>;\n","import { z } from \"zod\";\n\n// Content management types (pages, posts, etc.)\n\nexport const PageSchema = z.object({\n id: z.string(),\n slug: z.string(),\n title: z.string().nullable(),\n description: z.string().nullable(),\n content: z.string().nullable(),\n sections: z.array(z.any()),\n seo: z.object({\n title: z.string(),\n description: z.string(),\n image: z.string().nullable(),\n }),\n route_name: z.string(),\n});\n\nexport const PostSchema = z.object({\n id: z.string(),\n slug: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n content: z.string().nullable(),\n excerpt: z.string().nullable(),\n author: z.string().nullable(),\n date: z.string(), // ISO date string\n image: z.string().nullable(),\n tags: z.array(z.string()),\n reading_time: z.string().nullable(),\n sections: z.array(z.any()),\n seo: z.object({\n title: z.string(),\n description: z.string(),\n image: z.string().nullable(),\n }),\n route_name: z.string(),\n});\n\nexport const CategorySchema = z.object({\n slug: z.string(),\n name: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n content: z.string().nullable(),\n segments: z.union([z.array(z.string()), z.number()]).optional(),\n});\n\nexport const CategorySegmentSchema = z.object({\n name: z.string(),\n slug: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n tags: z.array(z.string()).optional(),\n sections: z.array(z.any()),\n content: z.string().nullable(),\n image: z.string(),\n});\n\n// Exported types\nexport type Page = z.infer<typeof PageSchema>;\nexport type Post = z.infer<typeof PostSchema>;\nexport type Category = z.infer<typeof CategorySchema>;\nexport type CategorySegment = z.infer<typeof CategorySegmentSchema>;\n","import { z } from 'zod';\n\n// Settings types based on actual Laravel instance configuration files\n\nexport const MainSettingsSchema = z.object({\n site: z.object({\n name: z.string(),\n domain: z.string(),\n locale: z.string(),\n }),\n contact: z.object({\n email: z.string(),\n phone: z.string().optional(),\n }),\n social: z.object({\n facebook: z.string().optional(),\n instagram: z.string().optional(),\n }).optional(),\n mail: z.object({\n from: z.object({\n address: z.string(),\n name: z.string(),\n }),\n contact_form_to: z.string(),\n }).optional(),\n pms: z.object({\n property_providers: z.array(z.object({\n name: z.string(),\n system: z.string(),\n api_key: z.string().optional(),\n base_url: z.string().optional(),\n discount: z.number().optional(),\n enabled: z.boolean().optional(),\n })),\n }).optional(),\n pricing: z.object({\n vat: z.number(),\n tourist_tax: z.object({\n type: z.string(),\n value: z.number(),\n }),\n }).optional(),\n discount: z.number().optional(),\n});\n\nexport const ThemeSettingsSchema = z.object({\n logo: z.object({\n path: z.string(),\n height: z.number().optional(),\n }).optional(),\n favicon_path: z.string().optional(),\n colors: z.object({\n primary: z.string(),\n secondary: z.string(),\n }),\n layout: z.object({\n homepage_style: z.string().optional(),\n navigation: z.object({\n variant: z.string().optional(),\n items: z.array(z.any()),\n buttons: z.array(z.any()).optional(),\n }).optional(),\n footer: z.object({\n blog_title: z.string().optional(),\n contact_title: z.string().optional(),\n categories: z.array(z.any()).optional(),\n }).optional(),\n }).optional(),\n});\n\nexport const PropertySettingsSchema = z.object({\n routing: z.object({\n base_url: z.string(),\n }),\n seo: z.object({\n title: z.string(),\n description: z.string(),\n openGraphTitle: z.string().optional(),\n tags: z.array(z.string()).optional(),\n }).optional(),\n index: z.object({\n seo: z.object({\n title: z.string(),\n description: z.string(),\n openGraphTitle: z.string().optional(),\n tags: z.array(z.string()).optional(),\n }),\n }),\n show: z.object({\n hero: z.object({\n provider: z.boolean().optional(),\n address: z.boolean().optional(),\n }).optional(),\n cancellation_policy: z.object({\n description: z.string(),\n }).optional(),\n related_properties: z.object({\n title: z.string(),\n }).optional(),\n }).optional(),\n});\n\nexport const BookingSettingsSchema = z.object({\n booking_confirmation: z.object({\n sections: z.object({\n arrival_description: z.boolean().optional(),\n }).optional(),\n content: z.object({\n body: z.string().optional(),\n help: z.string().optional(),\n }).optional(),\n }).optional(),\n});\n\n// Exported types\nexport type MainSettings = z.infer<typeof MainSettingsSchema>;\nexport type ThemeSettings = z.infer<typeof ThemeSettingsSchema>;\nexport type PropertySettings = z.infer<typeof PropertySettingsSchema>;\nexport type BookingSettings = z.infer<typeof BookingSettingsSchema>;","import { z } from 'zod';\n\n// Booking-related types and schemas\n\nexport const BookingRequestSchema = z.object({\n property_id: z.number(),\n check_in: z.string(),\n check_out: z.string(),\n guests: z.number(),\n first_name: z.string(),\n last_name: z.string(),\n email: z.string().email(),\n phone: z.string().optional(),\n notes: z.string().optional(),\n total_amount: z.number(),\n payment_method: z.enum(['stripe', 'cash', 'bank_transfer']).optional(),\n});\n\nexport const BookingResponseSchema = z.object({\n id: z.string(),\n property_id: z.number(),\n check_in: z.string(),\n check_out: z.string(),\n guests: z.number(),\n status: z.enum(['pending', 'confirmed', 'cancelled', 'completed']),\n total_amount: z.number(),\n payment_status: z.enum(['pending', 'paid', 'refunded']),\n confirmation_code: z.string(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\n// Exported types\nexport type BookingRequest = z.infer<typeof BookingRequestSchema>;\nexport type BookingResponse = z.infer<typeof BookingResponseSchema>;","// Main types index - exports all types from categorized modules\n\n// Common types\nexport * from './common';\n\n// Property types\nexport * from './properties';\nexport {\n PropertySchema,\n AvailabilitySchema,\n PropertySearchParamsSchema,\n PropertySearchResultSchema,\n} from './properties';\n\n// Content types\nexport * from './content';\nexport {\n PageSchema,\n PostSchema,\n} from './content';\n\n// Settings types\nexport * from './settings';\nexport {\n MainSettingsSchema,\n ThemeSettingsSchema,\n PropertySettingsSchema,\n BookingSettingsSchema,\n} from './settings';\n\n// Booking types\nexport * from './bookings';\nexport {\n BookingRequestSchema,\n BookingResponseSchema,\n} from './bookings';\n\n// Configuration types\nimport { z } from 'zod';\n\nexport const MoreApartmentsConfigSchema = z.object({\n baseUrl: z.string().optional(),\n apiKey: z.string().optional(),\n instance: z.string().optional(),\n timeout: z.number().optional(),\n retry: z.object({\n attempts: z.number(),\n delay: z.number(),\n }).optional(),\n cache: z.object({\n enabled: z.boolean(),\n ttl: z.number(),\n }).optional(),\n});\n\nexport type MoreApartmentsConfig = z.infer<typeof MoreApartmentsConfigSchema>;","import { z } from 'zod';\nimport type {\n MoreApartmentsConfig,\n Property,\n PaginatedResponse,\n Page,\n Post,\n Category,\n CategorySegment,\n MainSettings,\n ThemeSettings,\n PropertySettings,\n BookingSettings,\n Availability,\n BookingRequest,\n BookingResponse,\n PropertySearchParams,\n PropertySearchResult,\n} from './types';\nimport {\n PropertySchema,\n PaginatedResponseSchema,\n PageSchema,\n PostSchema,\n CategorySchema,\n CategorySegmentSchema,\n MainSettingsSchema,\n ThemeSettingsSchema,\n PropertySettingsSchema,\n BookingSettingsSchema,\n AvailabilitySchema,\n BookingResponseSchema,\n ApiErrorSchema,\n PropertySearchResultSchema,\n} from './types';\n\nexport class MoreApartmentsClient {\n private config: Required<MoreApartmentsConfig>;\n private cache: Map<string, { data: any; timestamp: number }> = new Map();\n\n /**\n * Clear all cached data\n */\n clearCache(): void {\n this.cache.clear();\n }\n\n /**\n * Get cache statistics\n */\n getCacheStats(): { entries: number; size: number } {\n return {\n entries: this.cache.size,\n size: Array.from(this.cache.values()).reduce((total, entry) => {\n return total + JSON.stringify(entry.data).length;\n }, 0),\n };\n }\n\n constructor(config: MoreApartmentsConfig) {\n this.config = {\n baseUrl: config.baseUrl?.replace(/\\/$/, '') || '',\n apiKey: config.apiKey || '',\n instance: config.instance || '',\n timeout: config.timeout || 30000,\n retry: {\n attempts: config.retry?.attempts || 3,\n delay: config.retry?.delay || 1000,\n },\n cache: {\n enabled: config.cache?.enabled ?? true,\n ttl: config.cache?.ttl || 300000, // 5 minutes default\n },\n };\n }\n\n private async fetchWithRetry<T>(\n url: string,\n options: RequestInit = {},\n schema?: any\n ): Promise<T> {\n const cacheKey = `${options.method || 'GET'}:${url}`;\n\n // Check cache for GET requests\n if (this.config.cache?.enabled && (!options.method || options.method === 'GET')) {\n const cached = this.cache.get(cacheKey);\n if (cached && this.config.cache?.ttl && Date.now() - cached.timestamp < this.config.cache.ttl) {\n return cached.data as T;\n }\n }\n\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n ...(this.config.apiKey && { 'Authorization': `Bearer ${this.config.apiKey}` }),\n ...(this.config.instance && { 'X-Instance': this.config.instance }),\n ...options.headers,\n };\n\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt < (this.config.retry?.attempts ?? 3); attempt++) {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => {\n controller.abort();\n }, this.config.timeout);\n\n const response = await fetch(url, {\n ...options,\n headers,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: response.statusText }));\n throw new Error(error.message || `HTTP ${response.status}: ${response.statusText}`);\n }\n\n const data = await response.json();\n\n // Validate with schema if provided\n if (schema) {\n const result = schema.safeParse(data);\n if (!result.success) {\n throw new Error(`Invalid response format: ${result.error.message}`);\n }\n const validatedData = result.data as T;\n\n // Cache successful GET requests\n if (this.config.cache?.enabled && (!options.method || options.method === 'GET')) {\n this.cache.set(cacheKey, { data: validatedData, timestamp: Date.now() });\n }\n\n return validatedData;\n }\n\n // Cache successful GET requests\n if (this.config.cache?.enabled && (!options.method || options.method === 'GET')) {\n this.cache.set(cacheKey, { data, timestamp: Date.now() });\n }\n\n return data as T;\n } catch (error) {\n lastError = error as Error;\n\n if (attempt < (this.config.retry?.attempts ?? 3) - 1) {\n await new Promise(resolve => setTimeout(resolve, (this.config.retry?.delay ?? 1000) * (attempt + 1)));\n }\n }\n }\n\n throw lastError || new Error('Request failed');\n }\n\n // Property endpoints\n async getProperties(params?: {\n page?: number;\n per_page?: number;\n }): Promise<PaginatedResponse<Property>> {\n const queryParams = new URLSearchParams();\n if (params?.page) queryParams.append('page', params.page.toString());\n if (params?.per_page) queryParams.append('per_page', params.per_page.toString());\n\n const url = `${this.config.baseUrl}/api/v1/properties${queryParams.toString() ? '?' + queryParams.toString() : ''}`;\n return this.fetchWithRetry(url, {}, PaginatedResponseSchema(PropertySchema));\n }\n\n async getProperty(propertyIdOrSlug: number | string): Promise<Property> {\n const url = `${this.config.baseUrl}/api/v1/properties/${propertyIdOrSlug}`;\n const response = await this.fetchWithRetry<{ data: Property }>(url, {}, z.object({ data: PropertySchema }));\n return response.data;\n }\n\n // Availability endpoints\n async getAvailability(\n propertySlug: string,\n startDate: string,\n endDate: string\n ): Promise<Availability> {\n const queryParams = new URLSearchParams({\n start_date: startDate,\n end_date: endDate,\n });\n const url = `${this.config.baseUrl}/api/v1/properties/${propertySlug}/availability?${queryParams}`;\n const response = await this.fetchWithRetry<{ data: Availability }>(url, {}, z.object({ data: AvailabilitySchema }));\n return response.data;\n }\n\n // Content endpoints\n async getPages(): Promise<Page[]> {\n const url = `${this.config.baseUrl}/api/v1/pages`;\n const response = await this.fetchWithRetry<{ data: Page[] }>(url, {}, z.object({ data: z.array(PageSchema) }));\n return response.data;\n }\n\n async getPage(slug: string): Promise<Page> {\n const url = `${this.config.baseUrl}/api/v1/pages/${slug}`;\n const response = await this.fetchWithRetry<{ data: Page }>(url, {}, z.object({ data: PageSchema }));\n return response.data;\n }\n\n async getPosts(params?: {\n page?: number;\n per_page?: number;\n tag?: string;\n }): Promise<Post[]> {\n const queryParams = new URLSearchParams();\n if (params?.page) queryParams.append('page', params.page.toString());\n if (params?.per_page) queryParams.append('per_page', params.per_page.toString());\n if (params?.tag) queryParams.append('tag', params.tag);\n\n const url = `${this.config.baseUrl}/api/v1/posts${queryParams.toString() ? '?' + queryParams.toString() : ''}`;\n const response = await this.fetchWithRetry<{ data: Post[] }>(url, {}, z.object({ data: z.array(PostSchema) }));\n return response.data;\n }\n\n async getPost(slug: string): Promise<Post> {\n const url = `${this.config.baseUrl}/api/v1/posts/${slug}`;\n const response = await this.fetchWithRetry<{ data: Post }>(url, {}, z.object({ data: PostSchema }));\n return response.data;\n }\n\n async getLocations(): Promise<any> {\n const url = `${this.config.baseUrl}/api/v1/locations`;\n const response = await this.fetchWithRetry<{ data: string[] }>(url, {}, z.object({ data: z.array(z.string()) }));\n return response.data;\n }\n\n async getCategories(): Promise<Category[]> {\n const url = `${this.config.baseUrl}/api/v1/categories`;\n const response = await this.fetchWithRetry<{ data: Category[] }>(url, {}, z.object({ data: z.array(CategorySchema) }));\n return response.data;\n }\n\n async getCategory(slug: string): Promise<Category> {\n const url = `${this.config.baseUrl}/api/v1/categories/${slug}`;\n const response = await this.fetchWithRetry<{ data: Category }>(url, {}, z.object({ data: CategorySchema }));\n return response.data;\n }\n\n async getCategorySegments(slug: string): Promise<CategorySegment[]> {\n const url = `${this.config.baseUrl}/api/v1/categories/${slug}/segments`;\n const response = await this.fetchWithRetry<{ data: CategorySegment[] }>(url, {}, z.object({ data: z.array(CategorySegmentSchema) }));\n return response.data;\n }\n\n async getCategorySegment(slug: string, segment: string): Promise<CategorySegment> {\n const url = `${this.config.baseUrl}/api/v1/categories/${slug}/segments/${segment}`;\n const response = await this.fetchWithRetry<{ data: CategorySegment }>(url, {}, z.object({ data: CategorySegmentSchema }));\n return response.data;\n }\n\n // Settings endpoints\n async getMainSettings(): Promise<MainSettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/main`;\n const response = await this.fetchWithRetry<{ data: MainSettings }>(url, {}, z.object({ data: MainSettingsSchema }));\n return response.data;\n }\n\n async getThemeSettings(): Promise<ThemeSettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/theme`;\n const response = await this.fetchWithRetry<{ data: ThemeSettings }>(url, {}, z.object({ data: ThemeSettingsSchema }));\n return response.data;\n }\n\n async getPropertySettings(): Promise<PropertySettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/properties`;\n const response = await this.fetchWithRetry<{ data: PropertySettings }>(url, {}, z.object({ data: PropertySettingsSchema }));\n return response.data;\n }\n\n async getBookingSettings(): Promise<BookingSettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/booking`;\n const response = await this.fetchWithRetry<{ data: BookingSettings }>(url, {}, z.object({ data: BookingSettingsSchema }));\n return response.data;\n }\n\n // Booking endpoints\n async createBooking(booking: BookingRequest): Promise<BookingResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings`;\n const response = await this.fetchWithRetry<{ data: BookingResponse }>(\n url,\n {\n method: 'POST',\n body: JSON.stringify(booking),\n },\n z.object({ data: BookingResponseSchema })\n );\n return response.data;\n }\n\n async getBooking(bookingId: string): Promise<BookingResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings/${bookingId}`;\n const response = await this.fetchWithRetry<{ data: BookingResponse }>(url, {}, z.object({ data: BookingResponseSchema }));\n return response.data;\n }\n\n /**\n * Search properties with advanced filtering\n */\n async searchProperties(params: PropertySearchParams): Promise<Property[]> {\n const searchParams = new URLSearchParams();\n\n // Date filters\n if (params.arrival) searchParams.set('arrival', params.arrival);\n if (params.departure) searchParams.set('departure', params.departure);\n\n // Guest capacity\n if (params.guests) searchParams.set('guests', params.guests.toString());\n\n // General search (deprecated)\n if (params.destination) searchParams.set('destination', params.destination);\n if (params.segment) searchParams.set('segment', params.segment);\n\n // Direct column filters (preferred for headless instances)\n if (params.city) searchParams.set('city', params.city);\n if (params.area) searchParams.set('area', params.area);\n if (params.propertyType) searchParams.set('property_type', params.propertyType);\n if (params.bedrooms !== undefined) searchParams.set('bedrooms', params.bedrooms.toString());\n if (params.bathrooms !== undefined) searchParams.set('bathrooms', params.bathrooms.toString());\n if (params.maxPersons !== undefined) searchParams.set('max_persons', params.maxPersons.toString());\n if (params.elevator !== undefined) searchParams.set('elevator', params.elevator ? '1' : '0');\n if (params.parking !== undefined) searchParams.set('parking', params.parking ? '1' : '0');\n if (params.balcony !== undefined) searchParams.set('balcony', params.balcony ? '1' : '0');\n\n const url = `${this.config.baseUrl}/api/v1/properties/search?${searchParams.toString()}`;\n const response = await this.fetchWithRetry<PropertySearchResult>(url, {}, PropertySearchResultSchema);\n return response.data;\n }\n\n}\n","import { inspect } from 'util';\n\nexport type OutputFormat = 'json' | 'table' | 'yaml';\n\nexport function formatOutput(data: any, format: OutputFormat = 'json'): void {\n switch (format) {\n case 'json':\n console.log(JSON.stringify(data, null, 2));\n break;\n\n case 'yaml':\n console.log(toYAML(data));\n break;\n\n case 'table':\n if (Array.isArray(data)) {\n console.table(data);\n } else {\n console.table([data]);\n }\n break;\n\n default:\n console.log(inspect(data, { depth: null, colors: true }));\n }\n}\n\nfunction toYAML(obj: any, indent: number = 0): string {\n const spaces = ' '.repeat(indent);\n\n if (obj === null || obj === undefined) {\n return 'null';\n }\n\n if (typeof obj === 'string') {\n return obj.includes('\\n') ? `|\\n${obj.split('\\n').map(line => `${spaces} ${line}`).join('\\n')}` : obj;\n }\n\n if (typeof obj === 'number' || typeof obj === 'boolean') {\n return String(obj);\n }\n\n if (Array.isArray(obj)) {\n if (obj.length === 0) return '[]';\n return '\\n' + obj.map(item => `${spaces}- ${toYAML(item, indent + 1)}`).join('\\n');\n }\n\n if (typeof obj === 'object') {\n const entries = Object.entries(obj);\n if (entries.length === 0) return '{}';\n\n return '\\n' + entries.map(([key, value]) => {\n const formattedValue = toYAML(value, indent + 1);\n if (formattedValue.startsWith('\\n')) {\n return `${spaces}${key}:${formattedValue}`;\n }\n return `${spaces}${key}: ${formattedValue}`;\n }).join('\\n');\n }\n\n return String(obj);\n}\n\nexport function handleError(error: any): void {\n if (error.message) {\n console.error(`Error: ${error.message}`);\n } else {\n console.error('An unexpected error occurred:', error);\n }\n process.exit(1);\n}\n","import type { Command } from 'commander';\nimport { formatOutput, handleError } from '../utils/format';\n\nexport function propertiesCommand(program: Command): void {\n const properties = program\n .command('properties')\n .alias('props')\n .description('Manage properties');\n\n properties\n .command('list')\n .description('List all properties')\n .option('-p, --page <number>', 'Page number', '1')\n .option('-l, --limit <number>', 'Items per page', '10')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getProperties({\n page: parseInt(options.page),\n per_page: parseInt(options.limit),\n });\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n properties\n .command('show <id>')\n .description('Show property details by ID or slug')\n .action(async (id, options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const property = await client.getProperty(id);\n\n formatOutput(property, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n properties\n .command('search')\n .description('Search properties with filters')\n .option('-d, --destination <destination>', 'Destination (general search)')\n .option('-c, --city <city>', 'City name')\n .option('-a, --area <area>', 'Area/neighborhood')\n .option('--arrival <date>', 'Arrival date (YYYY-MM-DD)')\n .option('--departure <date>', 'Departure date (YYYY-MM-DD)')\n .option('-g, --guests <number>', 'Number of guests')\n .option('-b, --bedrooms <number>', 'Number of bedrooms')\n .option('--bathrooms <number>', 'Number of bathrooms')\n .option('--max-persons <number>', 'Maximum persons')\n .option('--property-type <type>', 'Property type')\n .option('--elevator', 'Has elevator')\n .option('--parking', 'Has parking')\n .option('--balcony', 'Has balcony')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const searchParams: any = {};\n\n if (options.destination) searchParams.destination = options.destination;\n if (options.city) searchParams.city = options.city;\n if (options.area) searchParams.area = options.area;\n if (options.arrival) searchParams.arrival = options.arrival;\n if (options.departure) searchParams.departure = options.departure;\n if (options.guests) searchParams.guests = parseInt(options.guests);\n if (options.bedrooms) searchParams.bedrooms = parseInt(options.bedrooms);\n if (options.bathrooms) searchParams.bathrooms = parseInt(options.bathrooms);\n if (options.maxPersons) searchParams.maxPersons = parseInt(options.maxPersons);\n if (options.propertyType) searchParams.propertyType = options.propertyType;\n if (options.elevator) searchParams.elevator = true;\n if (options.parking) searchParams.parking = true;\n if (options.balcony) searchParams.balcony = true;\n\n const results = await client.searchProperties(searchParams);\n\n formatOutput(results, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n properties\n .command('availability <id>')\n .description('Get property availability')\n .requiredOption('-s, --start <date>', 'Start date (YYYY-MM-DD)')\n .requiredOption('-e, --end <date>', 'End date (YYYY-MM-DD)')\n .action(async (id, options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const availability = await client.getAvailability(id, options.start, options.end);\n\n formatOutput(availability, format);\n } catch (error) {\n handleError(error);\n }\n });\n}\n","import type { Command } from 'commander';\nimport { formatOutput, handleError } from '../utils/format';\n\nexport function contentCommand(program: Command): void {\n const content = program\n .command('content')\n .description('Manage content (pages, posts, categories)');\n\n // Pages subcommands\n const pages = content\n .command('pages')\n .description('Manage pages');\n\n pages\n .command('list')\n .description('List all pages')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const result = await client.getPages();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n pages\n .command('show <slug>')\n .description('Show page details by slug')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const page = await client.getPage(slug);\n\n formatOutput(page, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n // Posts subcommands\n const posts = content\n .command('posts')\n .description('Manage posts');\n\n posts\n .command('list')\n .description('List all posts')\n .option('-p, --page <number>', 'Page number', '1')\n .option('-l, --limit <number>', 'Items per page', '10')\n .option('-t, --tag <tag>', 'Filter by tag')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const params: any = {\n page: parseInt(options.page),\n per_page: parseInt(options.limit),\n };\n\n if (options.tag) params.tag = options.tag;\n\n const result = await client.getPosts(params);\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n posts\n .command('show <slug>')\n .description('Show post details by slug')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const post = await client.getPost(slug);\n\n formatOutput(post, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n // Categories subcommands\n const categories = content\n .command('categories')\n .alias('cats')\n .description('Manage categories');\n\n categories\n .command('list')\n .description('List all categories')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const result = await client.getCategories();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n categories\n .command('show <slug>')\n .description('Show category details by slug')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const category = await client.getCategory(slug);\n\n formatOutput(category, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n categories\n .command('segments <slug>')\n .description('List segments for a category')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const segments = await client.getCategorySegments(slug);\n\n formatOutput(segments, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n categories\n .command('segment <category> <segment>')\n .description('Show specific segment details')\n .action(async (category, segment, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const result = await client.getCategorySegment(category, segment);\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n // Locations subcommand\n content\n .command('locations')\n .description('List all locations')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const locations = await client.getLocations();\n\n formatOutput(locations, format);\n } catch (error) {\n handleError(error);\n }\n });\n}\n","import type { Command } from 'commander';\nimport { formatOutput, handleError } from '../utils/format';\n\nexport function settingsCommand(program: Command): void {\n const settings = program\n .command('settings')\n .description('Manage settings');\n\n settings\n .command('main')\n .description('Get main site settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getMainSettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('theme')\n .description('Get theme settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getThemeSettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('properties')\n .alias('props')\n .description('Get property settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getPropertySettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('booking')\n .description('Get booking settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getBookingSettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('all')\n .description('Get all settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const [main, theme, properties, booking] = await Promise.all([\n client.getMainSettings(),\n client.getThemeSettings(),\n client.getPropertySettings(),\n client.getBookingSettings(),\n ]);\n\n const result = {\n main,\n theme,\n properties,\n booking,\n };\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n}\n","import type { Command } from 'commander';\nimport { readFileSync } from 'fs';\nimport { resolve } from 'path';\nimport { formatOutput, handleError } from '../utils/format';\nimport type { BookingRequest } from '../../types';\n\nexport function bookingsCommand(program: Command): void {\n const bookings = program\n .command('bookings')\n .description('Manage bookings');\n\n bookings\n .command('create')\n .description('Create a new booking')\n .requiredOption('-f, --file <path>', 'Path to JSON file with booking data')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n // Read booking data from file\n const filePath = resolve(process.cwd(), options.file);\n const bookingData: BookingRequest = JSON.parse(readFileSync(filePath, 'utf-8'));\n\n const result = await client.createBooking(bookingData);\n\n console.log('✓ Booking created successfully');\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n bookings\n .command('show <id>')\n .description('Show booking details by ID')\n .action(async (id, options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const booking = await client.getBooking(id);\n\n formatOutput(booking, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n bookings\n .command('example')\n .description('Print example booking JSON structure')\n .action(() => {\n const example: BookingRequest = {\n property_id: 123,\n customer: {\n first_name: 'John',\n last_name: 'Doe',\n email: 'john.doe@example.com',\n phone: '+31612345678',\n address: '123 Main St',\n city: 'Amsterdam',\n country: 'Netherlands',\n postal_code: '1012AB',\n },\n arrival_date: '2024-06-01',\n departure_date: '2024-06-07',\n guests: 2,\n total_price: 850.00,\n notes: 'Late check-in requested',\n };\n\n console.log('Example booking structure (save to file and use with --file):');\n console.log(JSON.stringify(example, null, 2));\n });\n}\n","import { Command } from 'commander';\nimport { config } from 'dotenv';\nimport { resolve } from 'path';\nimport { MoreApartmentsClient } from '../client';\nimport type { MoreApartmentsConfig } from '../types';\nimport { propertiesCommand } from './commands/properties';\nimport { contentCommand } from './commands/content';\nimport { settingsCommand } from './commands/settings';\nimport { bookingsCommand } from './commands/bookings';\n\n// Load .env from current working directory\nconfig({ path: resolve(process.cwd(), '.env') });\n\nconst program = new Command();\n\nprogram\n .name('more-apartments')\n .description('CLI to interact with More Apartments REST API')\n .version('1.0.1')\n .option('-u, --base-url <url>', 'API base URL', process.env.MORE_APARTMENTS_BASE_URL)\n .option('-k, --api-key <key>', 'API key', process.env.MORE_APARTMENTS_API_KEY)\n .option('-i, --instance <instance>', 'Instance name', process.env.MORE_APARTMENTS_INSTANCE)\n .option('-t, --timeout <ms>', 'Request timeout in ms', '30000')\n .option('-f, --format <format>', 'Output format (json, table, yaml)', 'json')\n .hook('preAction', (thisCommand) => {\n const opts = thisCommand.opts();\n\n // Validate required options\n if (!opts.baseUrl) {\n console.error('Error: --base-url is required (or set MORE_APARTMENTS_BASE_URL env var)');\n process.exit(1);\n }\n\n if (!opts.apiKey) {\n console.error('Error: --api-key is required (or set MORE_APARTMENTS_API_KEY env var)');\n process.exit(1);\n }\n\n if (!opts.instance) {\n console.error('Error: --instance is required (or set MORE_APARTMENTS_INSTANCE env var)');\n process.exit(1);\n }\n\n // Create client and attach to command\n const clientConfig: MoreApartmentsConfig = {\n baseUrl: opts.baseUrl,\n apiKey: opts.apiKey,\n instance: opts.instance,\n timeout: parseInt(opts.timeout),\n cache: { enabled: false, ttl: 0 },\n };\n\n thisCommand.client = new MoreApartmentsClient(clientConfig);\n thisCommand.format = opts.format;\n });\n\n// Register command groups\npropertiesCommand(program);\ncontentCommand(program);\nsettingsCommand(program);\nbookingsCommand(program);\n\nprogram.parse();\n"]}
|