@nylas/web-elements 1.4.5 → 2.0.0
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/dist/cdn/nylas-scheduler-editor/nylas-scheduler-editor.es.js +179 -146
- package/dist/cdn/nylas-scheduling/nylas-scheduling.es.js +4998 -4993
- package/dist/cjs/calendar-agenda-fill-icon_36.cjs.entry.js +4 -4
- package/dist/cjs/checkmark-icon_15.cjs.entry.js +4 -4
- package/dist/cjs/checkmark-icon_15.cjs.entry.js.map +1 -1
- package/dist/cjs/{constants-3b9fb535.js → constants-27331d2d.js} +1 -5
- package/dist/cjs/constants-27331d2d.js.map +1 -0
- package/dist/cjs/{customParseFormat-4dbd51f6.js → customParseFormat-22da9017.js} +2 -2
- package/dist/cjs/{customParseFormat-4dbd51f6.js.map → customParseFormat-22da9017.js.map} +1 -1
- package/dist/cjs/{feedbackSync-670798db.js → feedbackSync-adabe7d6.js} +2 -2
- package/dist/cjs/{feedbackSync-670798db.js.map → feedbackSync-adabe7d6.js.map} +1 -1
- package/dist/cjs/globe-icon_2.cjs.entry.js +3 -3
- package/dist/cjs/google-logo-icon_6.cjs.entry.js +49 -25
- package/dist/cjs/google-logo-icon_6.cjs.entry.js.map +1 -1
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/{index.es-cbc1ecb6.js → index.es-7848228a.js} +2 -2
- package/dist/cjs/{index.es-cbc1ecb6.js.map → index.es-7848228a.js.map} +1 -1
- package/dist/cjs/input-component.cjs.entry.js +1 -1
- package/dist/cjs/input-dropdown_2.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/multi-select-dropdown_2.cjs.entry.js +1 -1
- package/dist/cjs/{nylas-api-request-af6121b4.js → nylas-api-request-976db0f4.js} +2 -2
- package/dist/cjs/{nylas-api-request-af6121b4.js.map → nylas-api-request-976db0f4.js.map} +1 -1
- package/dist/cjs/nylas-booked-event-card_12.cjs.entry.js +3 -3
- package/dist/cjs/nylas-event-calendar_3.cjs.entry.js +4 -4
- package/dist/cjs/nylas-form-card.cjs.entry.js +2 -2
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js +22 -16
- package/dist/cjs/nylas-scheduler-editor.cjs.entry.js.map +1 -1
- package/dist/cjs/nylas-scheduling.cjs.entry.js +7 -7
- package/dist/cjs/nylas-web-elements.cjs.js +1 -1
- package/dist/cjs/{register-component-5e87c463.js → register-component-d2f37e40.js} +2 -2
- package/dist/cjs/{register-component-5e87c463.js.map → register-component-d2f37e40.js.map} +1 -1
- package/dist/cjs/textarea-component.cjs.entry.js +1 -1
- package/dist/cjs/{utils-0dfca9ec.js → utils-d522ef01.js} +10 -1
- package/dist/cjs/utils-d522ef01.js.map +1 -0
- package/dist/collection/common/constants.js +0 -1
- package/dist/collection/common/constants.js.map +1 -1
- package/dist/collection/components/scheduler/nylas-scheduling/nylas-scheduling.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs-group/nylas-editor-tabs-group.js +6 -7
- package/dist/collection/components/scheduler-editor/nylas-editor-tabs-group/nylas-editor-tabs-group.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js +1 -1
- package/dist/collection/components/scheduler-editor/nylas-event-description/nylas-event-description.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js +6 -3
- package/dist/collection/components/scheduler-editor/nylas-list-configurations/nylas-list-configurations.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/ExpressFlow.js +4 -5
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/ExpressFlow.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.css +0 -8
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js +43 -10
- package/dist/collection/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-select-event-type/nylas-select-event-type.js +52 -7
- package/dist/collection/components/scheduler-editor/nylas-select-event-type/nylas-select-event-type.js.map +1 -1
- package/dist/collection/components/scheduler-editor/nylas-timeslot-interval/nylas-timeslot-interval.js +1 -1
- package/dist/collection/stores/scheduler-config-store.js.map +1 -1
- package/dist/components/constants.js +1 -5
- package/dist/components/constants.js.map +1 -1
- package/dist/components/nylas-editor-tabs-group2.js +8 -9
- package/dist/components/nylas-editor-tabs-group2.js.map +1 -1
- package/dist/components/nylas-editor-tabs2.js +2 -2
- package/dist/components/nylas-event-description2.js +1 -1
- package/dist/components/nylas-event-description2.js.map +1 -1
- package/dist/components/nylas-list-configurations2.js +6 -3
- package/dist/components/nylas-list-configurations2.js.map +1 -1
- package/dist/components/nylas-scheduler-editor.js +22 -14
- package/dist/components/nylas-scheduler-editor.js.map +1 -1
- package/dist/components/nylas-scheduling.js +3 -3
- package/dist/components/nylas-select-event-type2.js +32 -8
- package/dist/components/nylas-select-event-type2.js.map +1 -1
- package/dist/components/nylas-timeslot-interval2.js +1 -1
- package/dist/components/utils.js +9 -0
- package/dist/components/utils.js.map +1 -1
- package/dist/esm/calendar-agenda-fill-icon_36.entry.js +4 -4
- package/dist/esm/checkmark-icon_15.entry.js +4 -4
- package/dist/esm/checkmark-icon_15.entry.js.map +1 -1
- package/dist/esm/{constants-3d8016e3.js → constants-f51538ef.js} +2 -6
- package/dist/esm/constants-f51538ef.js.map +1 -0
- package/dist/esm/{customParseFormat-129be926.js → customParseFormat-d1de5ed0.js} +2 -2
- package/dist/esm/{customParseFormat-129be926.js.map → customParseFormat-d1de5ed0.js.map} +1 -1
- package/dist/esm/{feedbackSync-d943ffc7.js → feedbackSync-172f942c.js} +2 -2
- package/dist/esm/{feedbackSync-d943ffc7.js.map → feedbackSync-172f942c.js.map} +1 -1
- package/dist/esm/globe-icon_2.entry.js +3 -3
- package/dist/esm/google-logo-icon_6.entry.js +49 -25
- package/dist/esm/google-logo-icon_6.entry.js.map +1 -1
- package/dist/esm/{index.es-4615d47c.js → index.es-fc8588de.js} +2 -2
- package/dist/esm/{index.es-4615d47c.js.map → index.es-fc8588de.js.map} +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/input-component.entry.js +1 -1
- package/dist/esm/input-dropdown_2.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/multi-select-dropdown_2.entry.js +1 -1
- package/dist/esm/{nylas-api-request-acf12b47.js → nylas-api-request-3d7ced61.js} +2 -2
- package/dist/esm/{nylas-api-request-acf12b47.js.map → nylas-api-request-3d7ced61.js.map} +1 -1
- package/dist/esm/nylas-booked-event-card_12.entry.js +3 -3
- package/dist/esm/nylas-event-calendar_3.entry.js +4 -4
- package/dist/esm/nylas-form-card.entry.js +2 -2
- package/dist/esm/nylas-scheduler-editor.entry.js +22 -16
- package/dist/esm/nylas-scheduler-editor.entry.js.map +1 -1
- package/dist/esm/nylas-scheduling.entry.js +7 -7
- package/dist/esm/nylas-web-elements.js +1 -1
- package/dist/esm/{register-component-083eb961.js → register-component-62d792d4.js} +2 -2
- package/dist/esm/{register-component-083eb961.js.map → register-component-62d792d4.js.map} +1 -1
- package/dist/esm/textarea-component.entry.js +1 -1
- package/dist/esm/{utils-6c05ecaf.js → utils-bb88dd4d.js} +10 -1
- package/dist/esm/utils-bb88dd4d.js.map +1 -0
- package/dist/nylas-web-elements/index.esm.js +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js +1 -1
- package/dist/nylas-web-elements/nylas-web-elements.esm.js.map +1 -1
- package/dist/nylas-web-elements/{p-865721fd.entry.js → p-05204c68.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-2b38054f.entry.js → p-0d422938.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-c59787f4.js → p-0d6ecada.js} +2 -2
- package/dist/nylas-web-elements/{p-e2632a60.js → p-198f05a6.js} +2 -2
- package/dist/nylas-web-elements/p-1d8c55c6.entry.js +11 -0
- package/dist/nylas-web-elements/p-1d8c55c6.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-4e1e01e4.entry.js → p-29f601d9.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-60b48bf7.js → p-3a3c5e17.js} +2 -2
- package/dist/nylas-web-elements/{p-6bb6a0b8.entry.js → p-447837c2.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-faa723fc.entry.js → p-49c8d4d9.entry.js} +2 -2
- package/dist/nylas-web-elements/p-49c8d4d9.entry.js.map +1 -0
- package/dist/nylas-web-elements/p-7e885253.js +2 -0
- package/dist/nylas-web-elements/p-7e885253.js.map +1 -0
- package/dist/nylas-web-elements/{p-3cc1072e.js → p-84109239.js} +2 -2
- package/dist/nylas-web-elements/{p-d16cd88b.entry.js → p-a7d2a211.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-bea31f39.entry.js → p-a9107606.entry.js} +2 -2
- package/dist/nylas-web-elements/p-a9107606.entry.js.map +1 -0
- package/dist/nylas-web-elements/{p-a9a0dd64.entry.js → p-ab96941e.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-6fc7d11b.entry.js → p-af94512e.entry.js} +3 -3
- package/dist/nylas-web-elements/{p-bfe2bdbd.js → p-b3ca5d4d.js} +2 -2
- package/dist/nylas-web-elements/{p-80d57b5a.entry.js → p-cd24a45e.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-6364eb02.entry.js → p-e9369c76.entry.js} +2 -2
- package/dist/nylas-web-elements/{p-b2241c3c.entry.js → p-f00d1bb3.entry.js} +2 -2
- package/dist/nylas-web-elements/p-f73e34dd.js +14 -0
- package/dist/nylas-web-elements/{p-2b97a896.js.map → p-f73e34dd.js.map} +1 -1
- package/dist/types/common/constants.d.ts +216 -1
- package/dist/types/components/scheduler-editor/nylas-editor-tabs-group/nylas-editor-tabs-group.d.ts +0 -2
- package/dist/types/components/scheduler-editor/nylas-scheduler-editor/ExpressFlow.d.ts +1 -2
- package/dist/types/components/scheduler-editor/nylas-scheduler-editor/nylas-scheduler-editor.d.ts +3 -1
- package/dist/types/components/scheduler-editor/nylas-select-event-type/nylas-select-event-type.d.ts +2 -1
- package/dist/types/components.d.ts +18 -2
- package/dist/types/stores/scheduler-config-store.d.ts +2 -1
- package/package.json +1 -1
- package/dist/cjs/constants-3b9fb535.js.map +0 -1
- package/dist/cjs/utils-0dfca9ec.js.map +0 -1
- package/dist/esm/constants-3d8016e3.js.map +0 -1
- package/dist/esm/utils-6c05ecaf.js.map +0 -1
- package/dist/nylas-web-elements/p-2b97a896.js +0 -14
- package/dist/nylas-web-elements/p-35b7d082.entry.js +0 -11
- package/dist/nylas-web-elements/p-35b7d082.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-6f7cb609.js +0 -2
- package/dist/nylas-web-elements/p-6f7cb609.js.map +0 -1
- package/dist/nylas-web-elements/p-bea31f39.entry.js.map +0 -1
- package/dist/nylas-web-elements/p-faa723fc.entry.js.map +0 -1
- /package/dist/nylas-web-elements/{p-865721fd.entry.js.map → p-05204c68.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-2b38054f.entry.js.map → p-0d422938.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-c59787f4.js.map → p-0d6ecada.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-e2632a60.js.map → p-198f05a6.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-4e1e01e4.entry.js.map → p-29f601d9.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-60b48bf7.js.map → p-3a3c5e17.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-6bb6a0b8.entry.js.map → p-447837c2.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-3cc1072e.js.map → p-84109239.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-d16cd88b.entry.js.map → p-a7d2a211.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-a9a0dd64.entry.js.map → p-ab96941e.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-6fc7d11b.entry.js.map → p-af94512e.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-bfe2bdbd.js.map → p-b3ca5d4d.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-80d57b5a.entry.js.map → p-cd24a45e.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-6364eb02.entry.js.map → p-e9369c76.entry.js.map} +0 -0
- /package/dist/nylas-web-elements/{p-b2241c3c.entry.js.map → p-f00d1bb3.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"utils-0dfca9ec.js","mappings":"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,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC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,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC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C,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","names":["isArray","global","this","isNumber","Parser","initializeOptions","DEFAULT_OPTIONS","capitalize","i18next","require$$0","require$$1","require$$2","xmlDecodeTree","htmlDecodeTree","determineBranch","BinTrieFlags","replaceCodePoint","fromCodePoint","isTag","Root","Text","Comment","CDATA","Node","cloneNode","Document","isTagRaw","ElementType.Root","ElementType.Doctype","ElementType.Directive","ElementType.Comment","ElementType.CDATA","ElementType.Script","ElementType.Style","ElementType.Tag","ElementType.Text","renderHTML","filter","escapeStringRegexp","isObject","isPlainObject","deepmerge","picocolors_browserModule","terminalHighlight","CssSyntaxError","Stringifier","stringify","isClean","my","require$$3","Declaration","AtRule","parse","Rule","Container","LazyResult","Processor","nanoid","dirname","SourceMapConsumer","SourceMapGenerator","PreviousMap","resolve","pathToFileURL","require$$4","require$$5","require$$6","sourceMapAvailable","pathAvailable","Input","list","fromJSON","MapGenerator","Warning","Result","require$$7","postcss","NoWorkResult","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","sanitizeHtml"],"sources":["../../node_modules/.pnpm/rollup-plugin-node-polyfills@0.2.1/node_modules/rollup-plugin-node-polyfills/polyfills/global.js","../../node_modules/.pnpm/rollup-plugin-node-polyfills@0.2.1/node_modules/rollup-plugin-node-polyfills/polyfills/buffer-es6.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/dayjs.min.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/weekday.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/helpers.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/dateutil.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterresult.js","../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/callbackiterresult.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/nlp/i18n.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/nlp/totext.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/nlp/parsetext.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/types.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/nlp/index.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/datetime.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/parseoptions.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/parsestring.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/datewithzone.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/optionstostring.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/cache.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/masks.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterinfo/yearinfo.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterinfo/monthinfo.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterinfo/easter.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterinfo/index.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iter/poslist.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iter/index.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/rrule.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/iterset.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/rrulestr.js","../../node_modules/.pnpm/rrule@2.8.1/node_modules/rrule/dist/esm/rruleset.js","../../node_modules/.pnpm/i18next@23.11.5/node_modules/i18next/dist/esm/i18next.js","src/utils/i18n.ts","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js","../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/esm/Tokenizer.js","../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/esm/Parser.js","../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.js","../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.js","../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/escape.js","../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/foreignNames.js","../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/index.js","../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/stringify.js","../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/traversal.js","../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/manipulation.js","../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/querying.js","../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/legacy.js","../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/helpers.js","../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/esm/feeds.js","../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/esm/index.js","../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js","../../node_modules/.pnpm/is-plain-object@5.0.0/node_modules/is-plain-object/dist/is-plain-object.mjs","../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js","../../node_modules/.pnpm/parse-srcset@1.0.2/node_modules/parse-srcset/src/parse-srcset.js","../../node_modules/.pnpm/process@0.11.10/node_modules/process/index.js","../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.browser.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/css-syntax-error.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/stringifier.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/stringify.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/symbols.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/node.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/comment.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/declaration.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/container.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/at-rule.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/document.js","../../node_modules/.pnpm/nanoid@3.3.7/node_modules/nanoid/non-secure/index.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/previous-map.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/input.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/root.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/list.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/rule.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/fromJSON.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/map-generator.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/tokenize.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/parser.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/parse.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/warning.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/result.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/lazy-result.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/no-work-result.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/processor.js","../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/postcss.js","../../node_modules/.pnpm/sanitize-html@2.13.0/node_modules/sanitize-html/index.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/plugin/utc.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/plugin/timezone.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/locale/fr.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/locale/es.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/locale/de.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/locale/nl.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/locale/sv.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/locale/ja.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/locale/zh-cn.js","../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/locale/ko.js","src/utils/utils.ts"],"sourcesContent":["export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});","var lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true;\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength();\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n};\n\nBuffer.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return '<Buffer ' + str + '>'\n};\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nexport { Buffer, INSPECT_MAX_BYTES, SlowBuffer, isBuffer, _kMaxLength as kMaxLength };\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=function(t){return t instanceof _},S=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(h){case c:return r?l(1,0):l(31,11);case f:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=h+\"Date\",n[d]=h+\"Date\",n[f]=h+\"Month\",n[c]=h+\"FullYear\",n[u]=h+\"Hours\",n[s]=h+\"Minutes\",n[i]=h+\"Seconds\",n[r]=h+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,l=this;r=Number(r);var $=O.p(h),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===f)return this.set(f,this.$M+r);if($===c)return this.set(c,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},c=function(t){return O.s(s%12||12,t,\"0\")},d=n.meridiem||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r},$={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,\"0\"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,\"0\"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,\"0\"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,\"0\"),s:String(this.$s),ss:O.s(this.$s,2,\"0\"),SSS:O.s(this.$ms,3,\"0\"),Z:i};return r.replace(y,(function(t,e){return e||$[t]||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,v=this-M,g=O.m(this,M);return g=($={},$[c]=g/12,$[f]=g,$[h]=g/3,$[o]=(v-m)/6048e5,$[a]=(v-m)/864e5,$[u]=v/n,$[s]=v/e,$[i]=v/t,$)[y]||v,l?g:O.a(g)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),T=_.prototype;return w.prototype=T,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",f],[\"$y\",c],[\"$D\",d]].forEach((function(t){T[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w}));","// =============================================================================\n// Weekday\n// =============================================================================\nexport var ALL_WEEKDAYS = [\n 'MO',\n 'TU',\n 'WE',\n 'TH',\n 'FR',\n 'SA',\n 'SU',\n];\nvar Weekday = /** @class */ (function () {\n function Weekday(weekday, n) {\n if (n === 0)\n throw new Error(\"Can't create weekday with n == 0\");\n this.weekday = weekday;\n this.n = n;\n }\n Weekday.fromStr = function (str) {\n return new Weekday(ALL_WEEKDAYS.indexOf(str));\n };\n // __call__ - Cannot call the object directly, do it through\n // e.g. RRule.TH.nth(-1) instead,\n Weekday.prototype.nth = function (n) {\n return this.n === n ? this : new Weekday(this.weekday, n);\n };\n // __eq__\n Weekday.prototype.equals = function (other) {\n return this.weekday === other.weekday && this.n === other.n;\n };\n // __repr__\n Weekday.prototype.toString = function () {\n var s = ALL_WEEKDAYS[this.weekday];\n if (this.n)\n s = (this.n > 0 ? '+' : '') + String(this.n) + s;\n return s;\n };\n Weekday.prototype.getJsWeekday = function () {\n return this.weekday === 6 ? 0 : this.weekday + 1;\n };\n return Weekday;\n}());\nexport { Weekday };\n//# sourceMappingURL=weekday.js.map","// =============================================================================\n// Helper functions\n// =============================================================================\nimport { ALL_WEEKDAYS } from './weekday';\nexport var isPresent = function (value) {\n return value !== null && value !== undefined;\n};\nexport var isNumber = function (value) {\n return typeof value === 'number';\n};\nexport var isWeekdayStr = function (value) {\n return typeof value === 'string' && ALL_WEEKDAYS.includes(value);\n};\nexport var isArray = Array.isArray;\n/**\n * Simplified version of python's range()\n */\nexport var range = function (start, end) {\n if (end === void 0) { end = start; }\n if (arguments.length === 1) {\n end = start;\n start = 0;\n }\n var rang = [];\n for (var i = start; i < end; i++)\n rang.push(i);\n return rang;\n};\nexport var clone = function (array) {\n return [].concat(array);\n};\nexport var repeat = function (value, times) {\n var i = 0;\n var array = [];\n if (isArray(value)) {\n for (; i < times; i++)\n array[i] = [].concat(value);\n }\n else {\n for (; i < times; i++)\n array[i] = value;\n }\n return array;\n};\nexport var toArray = function (item) {\n if (isArray(item)) {\n return item;\n }\n return [item];\n};\nexport function padStart(item, targetLength, padString) {\n if (padString === void 0) { padString = ' '; }\n var str = String(item);\n targetLength = targetLength >> 0;\n if (str.length > targetLength) {\n return String(str);\n }\n targetLength = targetLength - str.length;\n if (targetLength > padString.length) {\n padString += repeat(padString, targetLength / padString.length);\n }\n return padString.slice(0, targetLength) + String(str);\n}\n/**\n * Python like split\n */\nexport var split = function (str, sep, num) {\n var splits = str.split(sep);\n return num\n ? splits.slice(0, num).concat([splits.slice(num).join(sep)])\n : splits;\n};\n/**\n * closure/goog/math/math.js:modulo\n * Copyright 2006 The Closure Library Authors.\n * The % operator in JavaScript returns the remainder of a / b, but differs from\n * some other languages in that the result will have the same sign as the\n * dividend. For example, -1 % 8 == -1, whereas in some other languages\n * (such as Python) the result would be 7. This function emulates the more\n * correct modulo behavior, which is useful for certain applications such as\n * calculating an offset index in a circular list.\n *\n * @param {number} a The dividend.\n * @param {number} b The divisor.\n * @return {number} a % b where the result is between 0 and b (either 0 <= x < b\n * or b < x <= 0, depending on the sign of b).\n */\nexport var pymod = function (a, b) {\n var r = a % b;\n // If r and b differ in sign, add b to wrap the result to the correct sign.\n return r * b < 0 ? r + b : r;\n};\n/**\n * @see: <http://docs.python.org/library/functions.html#divmod>\n */\nexport var divmod = function (a, b) {\n return { div: Math.floor(a / b), mod: pymod(a, b) };\n};\nexport var empty = function (obj) {\n return !isPresent(obj) || obj.length === 0;\n};\n/**\n * Python-like boolean\n *\n * @return {Boolean} value of an object/primitive, taking into account\n * the fact that in Python an empty list's/tuple's\n * boolean value is False, whereas in JS it's true\n */\nexport var notEmpty = function (obj) {\n return !empty(obj);\n};\n/**\n * Return true if a value is in an array\n */\nexport var includes = function (arr, val) {\n return notEmpty(arr) && arr.indexOf(val) !== -1;\n};\n//# sourceMappingURL=helpers.js.map","import { padStart } from './helpers';\nexport var datetime = function (y, m, d, h, i, s) {\n if (h === void 0) { h = 0; }\n if (i === void 0) { i = 0; }\n if (s === void 0) { s = 0; }\n return new Date(Date.UTC(y, m - 1, d, h, i, s));\n};\n/**\n * General date-related utilities.\n * Also handles several incompatibilities between JavaScript and Python\n *\n */\nexport var MONTH_DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n/**\n * Number of milliseconds of one day\n */\nexport var ONE_DAY = 1000 * 60 * 60 * 24;\n/**\n * @see: <http://docs.python.org/library/datetime.html#datetime.MAXYEAR>\n */\nexport var MAXYEAR = 9999;\n/**\n * Python uses 1-Jan-1 as the base for calculating ordinals but we don't\n * want to confuse the JS engine with milliseconds > Number.MAX_NUMBER,\n * therefore we use 1-Jan-1970 instead\n */\nexport var ORDINAL_BASE = datetime(1970, 1, 1);\n/**\n * Python: MO-SU: 0 - 6\n * JS: SU-SAT 0 - 6\n */\nexport var PY_WEEKDAYS = [6, 0, 1, 2, 3, 4, 5];\n/**\n * py_date.timetuple()[7]\n */\nexport var getYearDay = function (date) {\n var dateNoTime = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n return (Math.ceil((dateNoTime.valueOf() - new Date(date.getUTCFullYear(), 0, 1).valueOf()) /\n ONE_DAY) + 1);\n};\nexport var isLeapYear = function (year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n};\nexport var isDate = function (value) {\n return value instanceof Date;\n};\nexport var isValidDate = function (value) {\n return isDate(value) && !isNaN(value.getTime());\n};\n/**\n * @return {Number} the date's timezone offset in ms\n */\nexport var tzOffset = function (date) {\n return date.getTimezoneOffset() * 60 * 1000;\n};\n/**\n * @see: <http://www.mcfedries.com/JavaScript/DaysBetween.asp>\n */\nexport var daysBetween = function (date1, date2) {\n // The number of milliseconds in one day\n // Convert both dates to milliseconds\n var date1ms = date1.getTime();\n var date2ms = date2.getTime();\n // Calculate the difference in milliseconds\n var differencems = date1ms - date2ms;\n // Convert back to days and return\n return Math.round(differencems / ONE_DAY);\n};\n/**\n * @see: <http://docs.python.org/library/datetime.html#datetime.date.toordinal>\n */\nexport var toOrdinal = function (date) {\n return daysBetween(date, ORDINAL_BASE);\n};\n/**\n * @see - <http://docs.python.org/library/datetime.html#datetime.date.fromordinal>\n */\nexport var fromOrdinal = function (ordinal) {\n return new Date(ORDINAL_BASE.getTime() + ordinal * ONE_DAY);\n};\nexport var getMonthDays = function (date) {\n var month = date.getUTCMonth();\n return month === 1 && isLeapYear(date.getUTCFullYear())\n ? 29\n : MONTH_DAYS[month];\n};\n/**\n * @return {Number} python-like weekday\n */\nexport var getWeekday = function (date) {\n return PY_WEEKDAYS[date.getUTCDay()];\n};\n/**\n * @see: <http://docs.python.org/library/calendar.html#calendar.monthrange>\n */\nexport var monthRange = function (year, month) {\n var date = datetime(year, month + 1, 1);\n return [getWeekday(date), getMonthDays(date)];\n};\n/**\n * @see: <http://docs.python.org/library/datetime.html#datetime.datetime.combine>\n */\nexport var combine = function (date, time) {\n time = time || date;\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds()));\n};\nexport var clone = function (date) {\n var dolly = new Date(date.getTime());\n return dolly;\n};\nexport var cloneDates = function (dates) {\n var clones = [];\n for (var i = 0; i < dates.length; i++) {\n clones.push(clone(dates[i]));\n }\n return clones;\n};\n/**\n * Sorts an array of Date or Time objects\n */\nexport var sort = function (dates) {\n dates.sort(function (a, b) {\n return a.getTime() - b.getTime();\n });\n};\nexport var timeToUntilString = function (time, utc) {\n if (utc === void 0) { utc = true; }\n var date = new Date(time);\n return [\n padStart(date.getUTCFullYear().toString(), 4, '0'),\n padStart(date.getUTCMonth() + 1, 2, '0'),\n padStart(date.getUTCDate(), 2, '0'),\n 'T',\n padStart(date.getUTCHours(), 2, '0'),\n padStart(date.getUTCMinutes(), 2, '0'),\n padStart(date.getUTCSeconds(), 2, '0'),\n utc ? 'Z' : '',\n ].join('');\n};\nexport var untilStringToDate = function (until) {\n var re = /^(\\d{4})(\\d{2})(\\d{2})(T(\\d{2})(\\d{2})(\\d{2})Z?)?$/;\n var bits = re.exec(until);\n if (!bits)\n throw new Error(\"Invalid UNTIL value: \".concat(until));\n return new Date(Date.UTC(parseInt(bits[1], 10), parseInt(bits[2], 10) - 1, parseInt(bits[3], 10), parseInt(bits[5], 10) || 0, parseInt(bits[6], 10) || 0, parseInt(bits[7], 10) || 0));\n};\nvar dateTZtoISO8601 = function (date, timeZone) {\n // date format for sv-SE is almost ISO8601\n var dateStr = date.toLocaleString('sv-SE', { timeZone: timeZone });\n // '2023-02-07 10:41:36'\n return dateStr.replace(' ', 'T') + 'Z';\n};\nexport var dateInTimeZone = function (date, timeZone) {\n var localTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n // Date constructor can only reliably parse dates in ISO8601 format\n var dateInLocalTZ = new Date(dateTZtoISO8601(date, localTimeZone));\n var dateInTargetTZ = new Date(dateTZtoISO8601(date, timeZone !== null && timeZone !== void 0 ? timeZone : 'UTC'));\n var tzOffset = dateInTargetTZ.getTime() - dateInLocalTZ.getTime();\n return new Date(date.getTime() - tzOffset);\n};\n//# sourceMappingURL=dateutil.js.map","/**\n * This class helps us to emulate python's generators, sorta.\n */\nvar IterResult = /** @class */ (function () {\n function IterResult(method, args) {\n this.minDate = null;\n this.maxDate = null;\n this._result = [];\n this.total = 0;\n this.method = method;\n this.args = args;\n if (method === 'between') {\n this.maxDate = args.inc\n ? args.before\n : new Date(args.before.getTime() - 1);\n this.minDate = args.inc ? args.after : new Date(args.after.getTime() + 1);\n }\n else if (method === 'before') {\n this.maxDate = args.inc ? args.dt : new Date(args.dt.getTime() - 1);\n }\n else if (method === 'after') {\n this.minDate = args.inc ? args.dt : new Date(args.dt.getTime() + 1);\n }\n }\n /**\n * Possibly adds a date into the result.\n *\n * @param {Date} date - the date isn't necessarly added to the result\n * list (if it is too late/too early)\n * @return {Boolean} true if it makes sense to continue the iteration\n * false if we're done.\n */\n IterResult.prototype.accept = function (date) {\n ++this.total;\n var tooEarly = this.minDate && date < this.minDate;\n var tooLate = this.maxDate && date > this.maxDate;\n if (this.method === 'between') {\n if (tooEarly)\n return true;\n if (tooLate)\n return false;\n }\n else if (this.method === 'before') {\n if (tooLate)\n return false;\n }\n else if (this.method === 'after') {\n if (tooEarly)\n return true;\n this.add(date);\n return false;\n }\n return this.add(date);\n };\n /**\n *\n * @param {Date} date that is part of the result.\n * @return {Boolean} whether we are interested in more values.\n */\n IterResult.prototype.add = function (date) {\n this._result.push(date);\n return true;\n };\n /**\n * 'before' and 'after' return only one date, whereas 'all'\n * and 'between' an array.\n *\n * @return {Date,Array?}\n */\n IterResult.prototype.getValue = function () {\n var res = this._result;\n switch (this.method) {\n case 'all':\n case 'between':\n return res;\n case 'before':\n case 'after':\n default:\n return (res.length ? res[res.length - 1] : null);\n }\n };\n IterResult.prototype.clone = function () {\n return new IterResult(this.method, this.args);\n };\n return IterResult;\n}());\nexport default IterResult;\n//# sourceMappingURL=iterresult.js.map","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { __extends } from \"tslib\";\nimport IterResult from './iterresult';\n/**\n * IterResult subclass that calls a callback function on each add,\n * and stops iterating when the callback returns false.\n */\nvar CallbackIterResult = /** @class */ (function (_super) {\n __extends(CallbackIterResult, _super);\n function CallbackIterResult(method, args, iterator) {\n var _this = _super.call(this, method, args) || this;\n _this.iterator = iterator;\n return _this;\n }\n CallbackIterResult.prototype.add = function (date) {\n if (this.iterator(date, this._result.length)) {\n this._result.push(date);\n return true;\n }\n return false;\n };\n return CallbackIterResult;\n}(IterResult));\nexport default CallbackIterResult;\n//# sourceMappingURL=callbackiterresult.js.map","// =============================================================================\n// i18n\n// =============================================================================\nvar ENGLISH = {\n dayNames: [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ],\n monthNames: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n tokens: {\n SKIP: /^[ \\r\\n\\t]+|^\\.$/,\n number: /^[1-9][0-9]*/,\n numberAsText: /^(one|two|three)/i,\n every: /^every/i,\n 'day(s)': /^days?/i,\n 'weekday(s)': /^weekdays?/i,\n 'week(s)': /^weeks?/i,\n 'hour(s)': /^hours?/i,\n 'minute(s)': /^minutes?/i,\n 'month(s)': /^months?/i,\n 'year(s)': /^years?/i,\n on: /^(on|in)/i,\n at: /^(at)/i,\n the: /^the/i,\n first: /^first/i,\n second: /^second/i,\n third: /^third/i,\n nth: /^([1-9][0-9]*)(\\.|th|nd|rd|st)/i,\n last: /^last/i,\n for: /^for/i,\n 'time(s)': /^times?/i,\n until: /^(un)?til/i,\n monday: /^mo(n(day)?)?/i,\n tuesday: /^tu(e(s(day)?)?)?/i,\n wednesday: /^we(d(n(esday)?)?)?/i,\n thursday: /^th(u(r(sday)?)?)?/i,\n friday: /^fr(i(day)?)?/i,\n saturday: /^sa(t(urday)?)?/i,\n sunday: /^su(n(day)?)?/i,\n january: /^jan(uary)?/i,\n february: /^feb(ruary)?/i,\n march: /^mar(ch)?/i,\n april: /^apr(il)?/i,\n may: /^may/i,\n june: /^june?/i,\n july: /^july?/i,\n august: /^aug(ust)?/i,\n september: /^sep(t(ember)?)?/i,\n october: /^oct(ober)?/i,\n november: /^nov(ember)?/i,\n december: /^dec(ember)?/i,\n comma: /^(,\\s*|(and|or)\\s*)+/i,\n },\n};\nexport default ENGLISH;\n//# sourceMappingURL=i18n.js.map","import ENGLISH from './i18n';\nimport { RRule } from '../rrule';\nimport { isArray, isNumber, isPresent } from '../helpers';\n// =============================================================================\n// Helper functions\n// =============================================================================\n/**\n * Return true if a value is in an array\n */\nvar contains = function (arr, val) {\n return arr.indexOf(val) !== -1;\n};\nvar defaultGetText = function (id) { return id.toString(); };\nvar defaultDateFormatter = function (year, month, day) { return \"\".concat(month, \" \").concat(day, \", \").concat(year); };\n/**\n *\n * @param {RRule} rrule\n * Optional:\n * @param {Function} gettext function\n * @param {Object} language definition\n * @constructor\n */\nvar ToText = /** @class */ (function () {\n function ToText(rrule, gettext, language, dateFormatter) {\n if (gettext === void 0) { gettext = defaultGetText; }\n if (language === void 0) { language = ENGLISH; }\n if (dateFormatter === void 0) { dateFormatter = defaultDateFormatter; }\n this.text = [];\n this.language = language || ENGLISH;\n this.gettext = gettext;\n this.dateFormatter = dateFormatter;\n this.rrule = rrule;\n this.options = rrule.options;\n this.origOptions = rrule.origOptions;\n if (this.origOptions.bymonthday) {\n var bymonthday = [].concat(this.options.bymonthday);\n var bynmonthday = [].concat(this.options.bynmonthday);\n bymonthday.sort(function (a, b) { return a - b; });\n bynmonthday.sort(function (a, b) { return b - a; });\n // 1, 2, 3, .., -5, -4, -3, ..\n this.bymonthday = bymonthday.concat(bynmonthday);\n if (!this.bymonthday.length)\n this.bymonthday = null;\n }\n if (isPresent(this.origOptions.byweekday)) {\n var byweekday = !isArray(this.origOptions.byweekday)\n ? [this.origOptions.byweekday]\n : this.origOptions.byweekday;\n var days = String(byweekday);\n this.byweekday = {\n allWeeks: byweekday.filter(function (weekday) {\n return !weekday.n;\n }),\n someWeeks: byweekday.filter(function (weekday) {\n return Boolean(weekday.n);\n }),\n isWeekdays: days.indexOf('MO') !== -1 &&\n days.indexOf('TU') !== -1 &&\n days.indexOf('WE') !== -1 &&\n days.indexOf('TH') !== -1 &&\n days.indexOf('FR') !== -1 &&\n days.indexOf('SA') === -1 &&\n days.indexOf('SU') === -1,\n isEveryDay: days.indexOf('MO') !== -1 &&\n days.indexOf('TU') !== -1 &&\n days.indexOf('WE') !== -1 &&\n days.indexOf('TH') !== -1 &&\n days.indexOf('FR') !== -1 &&\n days.indexOf('SA') !== -1 &&\n days.indexOf('SU') !== -1,\n };\n var sortWeekDays = function (a, b) {\n return a.weekday - b.weekday;\n };\n this.byweekday.allWeeks.sort(sortWeekDays);\n this.byweekday.someWeeks.sort(sortWeekDays);\n if (!this.byweekday.allWeeks.length)\n this.byweekday.allWeeks = null;\n if (!this.byweekday.someWeeks.length)\n this.byweekday.someWeeks = null;\n }\n else {\n this.byweekday = null;\n }\n }\n /**\n * Test whether the rrule can be fully converted to text.\n *\n * @param {RRule} rrule\n * @return {Boolean}\n */\n ToText.isFullyConvertible = function (rrule) {\n var canConvert = true;\n if (!(rrule.options.freq in ToText.IMPLEMENTED))\n return false;\n if (rrule.origOptions.until && rrule.origOptions.count)\n return false;\n for (var key in rrule.origOptions) {\n if (contains(['dtstart', 'tzid', 'wkst', 'freq'], key))\n return true;\n if (!contains(ToText.IMPLEMENTED[rrule.options.freq], key))\n return false;\n }\n return canConvert;\n };\n ToText.prototype.isFullyConvertible = function () {\n return ToText.isFullyConvertible(this.rrule);\n };\n /**\n * Perform the conversion. Only some of the frequencies are supported.\n * If some of the rrule's options aren't supported, they'll\n * be omitted from the output an \"(~ approximate)\" will be appended.\n *\n * @return {*}\n */\n ToText.prototype.toString = function () {\n var gettext = this.gettext;\n if (!(this.options.freq in ToText.IMPLEMENTED)) {\n return gettext('RRule error: Unable to fully convert this rrule to text');\n }\n this.text = [gettext('every')];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[RRule.FREQUENCIES[this.options.freq]]();\n if (this.options.until) {\n this.add(gettext('until'));\n var until = this.options.until;\n this.add(this.dateFormatter(until.getUTCFullYear(), this.language.monthNames[until.getUTCMonth()], until.getUTCDate()));\n }\n else if (this.options.count) {\n this.add(gettext('for'))\n .add(this.options.count.toString())\n .add(this.plural(this.options.count) ? gettext('times') : gettext('time'));\n }\n if (!this.isFullyConvertible())\n this.add(gettext('(~ approximate)'));\n return this.text.join('');\n };\n ToText.prototype.HOURLY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1)\n this.add(this.options.interval.toString());\n this.add(this.plural(this.options.interval) ? gettext('hours') : gettext('hour'));\n };\n ToText.prototype.MINUTELY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1)\n this.add(this.options.interval.toString());\n this.add(this.plural(this.options.interval)\n ? gettext('minutes')\n : gettext('minute'));\n };\n ToText.prototype.DAILY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1)\n this.add(this.options.interval.toString());\n if (this.byweekday && this.byweekday.isWeekdays) {\n this.add(this.plural(this.options.interval)\n ? gettext('weekdays')\n : gettext('weekday'));\n }\n else {\n this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day'));\n }\n if (this.origOptions.bymonth) {\n this.add(gettext('in'));\n this._bymonth();\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n else if (this.origOptions.byhour) {\n this._byhour();\n }\n };\n ToText.prototype.WEEKLY = function () {\n var gettext = this.gettext;\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString()).add(this.plural(this.options.interval) ? gettext('weeks') : gettext('week'));\n }\n if (this.byweekday && this.byweekday.isWeekdays) {\n if (this.options.interval === 1) {\n this.add(this.plural(this.options.interval)\n ? gettext('weekdays')\n : gettext('weekday'));\n }\n else {\n this.add(gettext('on')).add(gettext('weekdays'));\n }\n }\n else if (this.byweekday && this.byweekday.isEveryDay) {\n this.add(this.plural(this.options.interval) ? gettext('days') : gettext('day'));\n }\n else {\n if (this.options.interval === 1)\n this.add(gettext('week'));\n if (this.origOptions.bymonth) {\n this.add(gettext('in'));\n this._bymonth();\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n if (this.origOptions.byhour) {\n this._byhour();\n }\n }\n };\n ToText.prototype.MONTHLY = function () {\n var gettext = this.gettext;\n if (this.origOptions.bymonth) {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString()).add(gettext('months'));\n if (this.plural(this.options.interval))\n this.add(gettext('in'));\n }\n else {\n // this.add(gettext('MONTH'))\n }\n this._bymonth();\n }\n else {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString());\n }\n this.add(this.plural(this.options.interval)\n ? gettext('months')\n : gettext('month'));\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday && this.byweekday.isWeekdays) {\n this.add(gettext('on')).add(gettext('weekdays'));\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n };\n ToText.prototype.YEARLY = function () {\n var gettext = this.gettext;\n if (this.origOptions.bymonth) {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString());\n this.add(gettext('years'));\n }\n else {\n // this.add(gettext('YEAR'))\n }\n this._bymonth();\n }\n else {\n if (this.options.interval !== 1) {\n this.add(this.options.interval.toString());\n }\n this.add(this.plural(this.options.interval) ? gettext('years') : gettext('year'));\n }\n if (this.bymonthday) {\n this._bymonthday();\n }\n else if (this.byweekday) {\n this._byweekday();\n }\n if (this.options.byyearday) {\n this.add(gettext('on the'))\n .add(this.list(this.options.byyearday, this.nth, gettext('and')))\n .add(gettext('day'));\n }\n if (this.options.byweekno) {\n this.add(gettext('in'))\n .add(this.plural(this.options.byweekno.length)\n ? gettext('weeks')\n : gettext('week'))\n .add(this.list(this.options.byweekno, undefined, gettext('and')));\n }\n };\n ToText.prototype._bymonthday = function () {\n var gettext = this.gettext;\n if (this.byweekday && this.byweekday.allWeeks) {\n this.add(gettext('on'))\n .add(this.list(this.byweekday.allWeeks, this.weekdaytext, gettext('or')))\n .add(gettext('the'))\n .add(this.list(this.bymonthday, this.nth, gettext('or')));\n }\n else {\n this.add(gettext('on the')).add(this.list(this.bymonthday, this.nth, gettext('and')));\n }\n // this.add(gettext('DAY'))\n };\n ToText.prototype._byweekday = function () {\n var gettext = this.gettext;\n if (this.byweekday.allWeeks && !this.byweekday.isWeekdays) {\n this.add(gettext('on')).add(this.list(this.byweekday.allWeeks, this.weekdaytext));\n }\n if (this.byweekday.someWeeks) {\n if (this.byweekday.allWeeks)\n this.add(gettext('and'));\n this.add(gettext('on the')).add(this.list(this.byweekday.someWeeks, this.weekdaytext, gettext('and')));\n }\n };\n ToText.prototype._byhour = function () {\n var gettext = this.gettext;\n this.add(gettext('at')).add(this.list(this.origOptions.byhour, undefined, gettext('and')));\n };\n ToText.prototype._bymonth = function () {\n this.add(this.list(this.options.bymonth, this.monthtext, this.gettext('and')));\n };\n ToText.prototype.nth = function (n) {\n n = parseInt(n.toString(), 10);\n var nth;\n var gettext = this.gettext;\n if (n === -1)\n return gettext('last');\n var npos = Math.abs(n);\n switch (npos) {\n case 1:\n case 21:\n case 31:\n nth = npos + gettext('st');\n break;\n case 2:\n case 22:\n nth = npos + gettext('nd');\n break;\n case 3:\n case 23:\n nth = npos + gettext('rd');\n break;\n default:\n nth = npos + gettext('th');\n }\n return n < 0 ? nth + ' ' + gettext('last') : nth;\n };\n ToText.prototype.monthtext = function (m) {\n return this.language.monthNames[m - 1];\n };\n ToText.prototype.weekdaytext = function (wday) {\n var weekday = isNumber(wday) ? (wday + 1) % 7 : wday.getJsWeekday();\n return ((wday.n ? this.nth(wday.n) + ' ' : '') +\n this.language.dayNames[weekday]);\n };\n ToText.prototype.plural = function (n) {\n return n % 100 !== 1;\n };\n ToText.prototype.add = function (s) {\n this.text.push(' ');\n this.text.push(s);\n return this;\n };\n ToText.prototype.list = function (arr, callback, finalDelim, delim) {\n var _this = this;\n if (delim === void 0) { delim = ','; }\n if (!isArray(arr)) {\n arr = [arr];\n }\n var delimJoin = function (array, delimiter, finalDelimiter) {\n var list = '';\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n if (i === array.length - 1) {\n list += ' ' + finalDelimiter + ' ';\n }\n else {\n list += delimiter + ' ';\n }\n }\n list += array[i];\n }\n return list;\n };\n callback =\n callback ||\n function (o) {\n return o.toString();\n };\n var realCallback = function (arg) {\n return callback && callback.call(_this, arg);\n };\n if (finalDelim) {\n return delimJoin(arr.map(realCallback), delim, finalDelim);\n }\n else {\n return arr.map(realCallback).join(delim + ' ');\n }\n };\n return ToText;\n}());\nexport default ToText;\n//# sourceMappingURL=totext.js.map","import ENGLISH from './i18n';\nimport { RRule } from '../rrule';\n// =============================================================================\n// Parser\n// =============================================================================\nvar Parser = /** @class */ (function () {\n function Parser(rules) {\n this.done = true;\n this.rules = rules;\n }\n Parser.prototype.start = function (text) {\n this.text = text;\n this.done = false;\n return this.nextSymbol();\n };\n Parser.prototype.isDone = function () {\n return this.done && this.symbol === null;\n };\n Parser.prototype.nextSymbol = function () {\n var best;\n var bestSymbol;\n this.symbol = null;\n this.value = null;\n do {\n if (this.done)\n return false;\n var rule = void 0;\n best = null;\n for (var name_1 in this.rules) {\n rule = this.rules[name_1];\n var match = rule.exec(this.text);\n if (match) {\n if (best === null || match[0].length > best[0].length) {\n best = match;\n bestSymbol = name_1;\n }\n }\n }\n if (best != null) {\n this.text = this.text.substr(best[0].length);\n if (this.text === '')\n this.done = true;\n }\n if (best == null) {\n this.done = true;\n this.symbol = null;\n this.value = null;\n return;\n }\n } while (bestSymbol === 'SKIP');\n this.symbol = bestSymbol;\n this.value = best;\n return true;\n };\n Parser.prototype.accept = function (name) {\n if (this.symbol === name) {\n if (this.value) {\n var v = this.value;\n this.nextSymbol();\n return v;\n }\n this.nextSymbol();\n return true;\n }\n return false;\n };\n Parser.prototype.acceptNumber = function () {\n return this.accept('number');\n };\n Parser.prototype.expect = function (name) {\n if (this.accept(name))\n return true;\n throw new Error('expected ' + name + ' but found ' + this.symbol);\n };\n return Parser;\n}());\nexport default function parseText(text, language) {\n if (language === void 0) { language = ENGLISH; }\n var options = {};\n var ttr = new Parser(language.tokens);\n if (!ttr.start(text))\n return null;\n S();\n return options;\n function S() {\n // every [n]\n ttr.expect('every');\n var n = ttr.acceptNumber();\n if (n)\n options.interval = parseInt(n[0], 10);\n if (ttr.isDone())\n throw new Error('Unexpected end');\n switch (ttr.symbol) {\n case 'day(s)':\n options.freq = RRule.DAILY;\n if (ttr.nextSymbol()) {\n AT();\n F();\n }\n break;\n // FIXME Note: every 2 weekdays != every two weeks on weekdays.\n // DAILY on weekdays is not a valid rule\n case 'weekday(s)':\n options.freq = RRule.WEEKLY;\n options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR];\n ttr.nextSymbol();\n AT();\n F();\n break;\n case 'week(s)':\n options.freq = RRule.WEEKLY;\n if (ttr.nextSymbol()) {\n ON();\n AT();\n F();\n }\n break;\n case 'hour(s)':\n options.freq = RRule.HOURLY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'minute(s)':\n options.freq = RRule.MINUTELY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'month(s)':\n options.freq = RRule.MONTHLY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'year(s)':\n options.freq = RRule.YEARLY;\n if (ttr.nextSymbol()) {\n ON();\n F();\n }\n break;\n case 'monday':\n case 'tuesday':\n case 'wednesday':\n case 'thursday':\n case 'friday':\n case 'saturday':\n case 'sunday':\n options.freq = RRule.WEEKLY;\n var key = ttr.symbol\n .substr(0, 2)\n .toUpperCase();\n options.byweekday = [RRule[key]];\n if (!ttr.nextSymbol())\n return;\n // TODO check for duplicates\n while (ttr.accept('comma')) {\n if (ttr.isDone())\n throw new Error('Unexpected end');\n var wkd = decodeWKD();\n if (!wkd) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected weekday');\n }\n options.byweekday.push(RRule[wkd]);\n ttr.nextSymbol();\n }\n AT();\n MDAYs();\n F();\n break;\n case 'january':\n case 'february':\n case 'march':\n case 'april':\n case 'may':\n case 'june':\n case 'july':\n case 'august':\n case 'september':\n case 'october':\n case 'november':\n case 'december':\n options.freq = RRule.YEARLY;\n options.bymonth = [decodeM()];\n if (!ttr.nextSymbol())\n return;\n // TODO check for duplicates\n while (ttr.accept('comma')) {\n if (ttr.isDone())\n throw new Error('Unexpected end');\n var m = decodeM();\n if (!m) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected month');\n }\n options.bymonth.push(m);\n ttr.nextSymbol();\n }\n ON();\n F();\n break;\n default:\n throw new Error('Unknown symbol');\n }\n }\n function ON() {\n var on = ttr.accept('on');\n var the = ttr.accept('the');\n if (!(on || the))\n return;\n do {\n var nth = decodeNTH();\n var wkd = decodeWKD();\n var m = decodeM();\n // nth <weekday> | <weekday>\n if (nth) {\n // ttr.nextSymbol()\n if (wkd) {\n ttr.nextSymbol();\n if (!options.byweekday)\n options.byweekday = [];\n options.byweekday.push(RRule[wkd].nth(nth));\n }\n else {\n if (!options.bymonthday)\n options.bymonthday = [];\n options.bymonthday.push(nth);\n ttr.accept('day(s)');\n }\n // <weekday>\n }\n else if (wkd) {\n ttr.nextSymbol();\n if (!options.byweekday)\n options.byweekday = [];\n options.byweekday.push(RRule[wkd]);\n }\n else if (ttr.symbol === 'weekday(s)') {\n ttr.nextSymbol();\n if (!options.byweekday) {\n options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR];\n }\n }\n else if (ttr.symbol === 'week(s)') {\n ttr.nextSymbol();\n var n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected week number');\n }\n options.byweekno = [parseInt(n[0], 10)];\n while (ttr.accept('comma')) {\n n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday');\n }\n options.byweekno.push(parseInt(n[0], 10));\n }\n }\n else if (m) {\n ttr.nextSymbol();\n if (!options.bymonth)\n options.bymonth = [];\n options.bymonth.push(m);\n }\n else {\n return;\n }\n } while (ttr.accept('comma') || ttr.accept('the') || ttr.accept('on'));\n }\n function AT() {\n var at = ttr.accept('at');\n if (!at)\n return;\n do {\n var n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + ', expected hour');\n }\n options.byhour = [parseInt(n[0], 10)];\n while (ttr.accept('comma')) {\n n = ttr.acceptNumber();\n if (!n) {\n throw new Error('Unexpected symbol ' + ttr.symbol + '; expected hour');\n }\n options.byhour.push(parseInt(n[0], 10));\n }\n } while (ttr.accept('comma') || ttr.accept('at'));\n }\n function decodeM() {\n switch (ttr.symbol) {\n case 'january':\n return 1;\n case 'february':\n return 2;\n case 'march':\n return 3;\n case 'april':\n return 4;\n case 'may':\n return 5;\n case 'june':\n return 6;\n case 'july':\n return 7;\n case 'august':\n return 8;\n case 'september':\n return 9;\n case 'october':\n return 10;\n case 'november':\n return 11;\n case 'december':\n return 12;\n default:\n return false;\n }\n }\n function decodeWKD() {\n switch (ttr.symbol) {\n case 'monday':\n case 'tuesday':\n case 'wednesday':\n case 'thursday':\n case 'friday':\n case 'saturday':\n case 'sunday':\n return ttr.symbol.substr(0, 2).toUpperCase();\n default:\n return false;\n }\n }\n function decodeNTH() {\n switch (ttr.symbol) {\n case 'last':\n ttr.nextSymbol();\n return -1;\n case 'first':\n ttr.nextSymbol();\n return 1;\n case 'second':\n ttr.nextSymbol();\n return ttr.accept('last') ? -2 : 2;\n case 'third':\n ttr.nextSymbol();\n return ttr.accept('last') ? -3 : 3;\n case 'nth':\n var v = parseInt(ttr.value[1], 10);\n if (v < -366 || v > 366)\n throw new Error('Nth out of range: ' + v);\n ttr.nextSymbol();\n return ttr.accept('last') ? -v : v;\n default:\n return false;\n }\n }\n function MDAYs() {\n ttr.accept('on');\n ttr.accept('the');\n var nth = decodeNTH();\n if (!nth)\n return;\n options.bymonthday = [nth];\n ttr.nextSymbol();\n while (ttr.accept('comma')) {\n nth = decodeNTH();\n if (!nth) {\n throw new Error('Unexpected symbol ' + ttr.symbol + '; expected monthday');\n }\n options.bymonthday.push(nth);\n ttr.nextSymbol();\n }\n }\n function F() {\n if (ttr.symbol === 'until') {\n var date = Date.parse(ttr.text);\n if (!date)\n throw new Error('Cannot parse until date:' + ttr.text);\n options.until = new Date(date);\n }\n else if (ttr.accept('for')) {\n options.count = parseInt(ttr.value[0], 10);\n ttr.expect('number');\n // ttr.expect('times')\n }\n }\n}\n//# sourceMappingURL=parsetext.js.map","export var Frequency;\n(function (Frequency) {\n Frequency[Frequency[\"YEARLY\"] = 0] = \"YEARLY\";\n Frequency[Frequency[\"MONTHLY\"] = 1] = \"MONTHLY\";\n Frequency[Frequency[\"WEEKLY\"] = 2] = \"WEEKLY\";\n Frequency[Frequency[\"DAILY\"] = 3] = \"DAILY\";\n Frequency[Frequency[\"HOURLY\"] = 4] = \"HOURLY\";\n Frequency[Frequency[\"MINUTELY\"] = 5] = \"MINUTELY\";\n Frequency[Frequency[\"SECONDLY\"] = 6] = \"SECONDLY\";\n})(Frequency || (Frequency = {}));\nexport function freqIsDailyOrGreater(freq) {\n return freq < Frequency.HOURLY;\n}\n//# sourceMappingURL=types.js.map","import ToText from './totext';\nimport parseText from './parsetext';\nimport { RRule } from '../rrule';\nimport { Frequency } from '../types';\nimport ENGLISH from './i18n';\n/* !\n * rrule.js - Library for working with recurrence rules for calendar dates.\n * https://github.com/jakubroztocil/rrule\n *\n * Copyright 2010, Jakub Roztocil and Lars Schoning\n * Licenced under the BSD licence.\n * https://github.com/jakubroztocil/rrule/blob/master/LICENCE\n *\n */\n/**\n *\n * Implementation of RRule.fromText() and RRule::toText().\n *\n *\n * On the client side, this file needs to be included\n * when those functions are used.\n *\n */\n// =============================================================================\n// fromText\n// =============================================================================\n/**\n * Will be able to convert some of the below described rules from\n * text format to a rule object.\n *\n *\n * RULES\n *\n * Every ([n])\n * day(s)\n * | [weekday], ..., (and) [weekday]\n * | weekday(s)\n * | week(s)\n * | month(s)\n * | [month], ..., (and) [month]\n * | year(s)\n *\n *\n * Plus 0, 1, or multiple of these:\n *\n * on [weekday], ..., (or) [weekday] the [monthday], [monthday], ... (or) [monthday]\n *\n * on [weekday], ..., (and) [weekday]\n *\n * on the [monthday], [monthday], ... (and) [monthday] (day of the month)\n *\n * on the [nth-weekday], ..., (and) [nth-weekday] (of the month/year)\n *\n *\n * Plus 0 or 1 of these:\n *\n * for [n] time(s)\n *\n * until [date]\n *\n * Plus (.)\n *\n *\n * Definitely no supported for parsing:\n *\n * (for year):\n * in week(s) [n], ..., (and) [n]\n *\n * on the [yearday], ..., (and) [n] day of the year\n * on day [yearday], ..., (and) [n]\n *\n *\n * NON-TERMINALS\n *\n * [n]: 1, 2 ..., one, two, three ..\n * [month]: January, February, March, April, May, ... December\n * [weekday]: Monday, ... Sunday\n * [nth-weekday]: first [weekday], 2nd [weekday], ... last [weekday], ...\n * [monthday]: first, 1., 2., 1st, 2nd, second, ... 31st, last day, 2nd last day, ..\n * [date]:\n * - [month] (0-31(,) ([year])),\n * - (the) 0-31.(1-12.([year])),\n * - (the) 0-31/(1-12/([year])),\n * - [weekday]\n *\n * [year]: 0000, 0001, ... 01, 02, ..\n *\n * Definitely not supported for parsing:\n *\n * [yearday]: first, 1., 2., 1st, 2nd, second, ... 366th, last day, 2nd last day, ..\n *\n * @param {String} text\n * @return {Object, Boolean} the rule, or null.\n */\nvar fromText = function (text, language) {\n if (language === void 0) { language = ENGLISH; }\n return new RRule(parseText(text, language) || undefined);\n};\nvar common = [\n 'count',\n 'until',\n 'interval',\n 'byweekday',\n 'bymonthday',\n 'bymonth',\n];\nToText.IMPLEMENTED = [];\nToText.IMPLEMENTED[Frequency.HOURLY] = common;\nToText.IMPLEMENTED[Frequency.MINUTELY] = common;\nToText.IMPLEMENTED[Frequency.DAILY] = ['byhour'].concat(common);\nToText.IMPLEMENTED[Frequency.WEEKLY] = common;\nToText.IMPLEMENTED[Frequency.MONTHLY] = common;\nToText.IMPLEMENTED[Frequency.YEARLY] = ['byweekno', 'byyearday'].concat(common);\n// =============================================================================\n// Export\n// =============================================================================\nvar toText = function (rrule, gettext, language, dateFormatter) {\n return new ToText(rrule, gettext, language, dateFormatter).toString();\n};\nvar isFullyConvertible = ToText.isFullyConvertible;\nexport { fromText, parseText, isFullyConvertible, toText };\n//# sourceMappingURL=index.js.map","import { __extends } from \"tslib\";\nimport { Frequency } from './types';\nimport { pymod, divmod, empty, includes } from './helpers';\nimport { getWeekday, MAXYEAR, monthRange } from './dateutil';\nvar Time = /** @class */ (function () {\n function Time(hour, minute, second, millisecond) {\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond || 0;\n }\n Time.prototype.getHours = function () {\n return this.hour;\n };\n Time.prototype.getMinutes = function () {\n return this.minute;\n };\n Time.prototype.getSeconds = function () {\n return this.second;\n };\n Time.prototype.getMilliseconds = function () {\n return this.millisecond;\n };\n Time.prototype.getTime = function () {\n return ((this.hour * 60 * 60 + this.minute * 60 + this.second) * 1000 +\n this.millisecond);\n };\n return Time;\n}());\nexport { Time };\nvar DateTime = /** @class */ (function (_super) {\n __extends(DateTime, _super);\n function DateTime(year, month, day, hour, minute, second, millisecond) {\n var _this = _super.call(this, hour, minute, second, millisecond) || this;\n _this.year = year;\n _this.month = month;\n _this.day = day;\n return _this;\n }\n DateTime.fromDate = function (date) {\n return new this(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.valueOf() % 1000);\n };\n DateTime.prototype.getWeekday = function () {\n return getWeekday(new Date(this.getTime()));\n };\n DateTime.prototype.getTime = function () {\n return new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)).getTime();\n };\n DateTime.prototype.getDay = function () {\n return this.day;\n };\n DateTime.prototype.getMonth = function () {\n return this.month;\n };\n DateTime.prototype.getYear = function () {\n return this.year;\n };\n DateTime.prototype.addYears = function (years) {\n this.year += years;\n };\n DateTime.prototype.addMonths = function (months) {\n this.month += months;\n if (this.month > 12) {\n var yearDiv = Math.floor(this.month / 12);\n var monthMod = pymod(this.month, 12);\n this.month = monthMod;\n this.year += yearDiv;\n if (this.month === 0) {\n this.month = 12;\n --this.year;\n }\n }\n };\n DateTime.prototype.addWeekly = function (days, wkst) {\n if (wkst > this.getWeekday()) {\n this.day += -(this.getWeekday() + 1 + (6 - wkst)) + days * 7;\n }\n else {\n this.day += -(this.getWeekday() - wkst) + days * 7;\n }\n this.fixDay();\n };\n DateTime.prototype.addDaily = function (days) {\n this.day += days;\n this.fixDay();\n };\n DateTime.prototype.addHours = function (hours, filtered, byhour) {\n if (filtered) {\n // Jump to one iteration before next day\n this.hour += Math.floor((23 - this.hour) / hours) * hours;\n }\n for (;;) {\n this.hour += hours;\n var _a = divmod(this.hour, 24), dayDiv = _a.div, hourMod = _a.mod;\n if (dayDiv) {\n this.hour = hourMod;\n this.addDaily(dayDiv);\n }\n if (empty(byhour) || includes(byhour, this.hour))\n break;\n }\n };\n DateTime.prototype.addMinutes = function (minutes, filtered, byhour, byminute) {\n if (filtered) {\n // Jump to one iteration before next day\n this.minute +=\n Math.floor((1439 - (this.hour * 60 + this.minute)) / minutes) * minutes;\n }\n for (;;) {\n this.minute += minutes;\n var _a = divmod(this.minute, 60), hourDiv = _a.div, minuteMod = _a.mod;\n if (hourDiv) {\n this.minute = minuteMod;\n this.addHours(hourDiv, false, byhour);\n }\n if ((empty(byhour) || includes(byhour, this.hour)) &&\n (empty(byminute) || includes(byminute, this.minute))) {\n break;\n }\n }\n };\n DateTime.prototype.addSeconds = function (seconds, filtered, byhour, byminute, bysecond) {\n if (filtered) {\n // Jump to one iteration before next day\n this.second +=\n Math.floor((86399 - (this.hour * 3600 + this.minute * 60 + this.second)) /\n seconds) * seconds;\n }\n for (;;) {\n this.second += seconds;\n var _a = divmod(this.second, 60), minuteDiv = _a.div, secondMod = _a.mod;\n if (minuteDiv) {\n this.second = secondMod;\n this.addMinutes(minuteDiv, false, byhour, byminute);\n }\n if ((empty(byhour) || includes(byhour, this.hour)) &&\n (empty(byminute) || includes(byminute, this.minute)) &&\n (empty(bysecond) || includes(bysecond, this.second))) {\n break;\n }\n }\n };\n DateTime.prototype.fixDay = function () {\n if (this.day <= 28) {\n return;\n }\n var daysinmonth = monthRange(this.year, this.month - 1)[1];\n if (this.day <= daysinmonth) {\n return;\n }\n while (this.day > daysinmonth) {\n this.day -= daysinmonth;\n ++this.month;\n if (this.month === 13) {\n this.month = 1;\n ++this.year;\n if (this.year > MAXYEAR) {\n return;\n }\n }\n daysinmonth = monthRange(this.year, this.month - 1)[1];\n }\n };\n DateTime.prototype.add = function (options, filtered) {\n var freq = options.freq, interval = options.interval, wkst = options.wkst, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond;\n switch (freq) {\n case Frequency.YEARLY:\n return this.addYears(interval);\n case Frequency.MONTHLY:\n return this.addMonths(interval);\n case Frequency.WEEKLY:\n return this.addWeekly(interval, wkst);\n case Frequency.DAILY:\n return this.addDaily(interval);\n case Frequency.HOURLY:\n return this.addHours(interval, filtered, byhour);\n case Frequency.MINUTELY:\n return this.addMinutes(interval, filtered, byhour, byminute);\n case Frequency.SECONDLY:\n return this.addSeconds(interval, filtered, byhour, byminute, bysecond);\n }\n };\n return DateTime;\n}(Time));\nexport { DateTime };\n//# sourceMappingURL=datetime.js.map","import { __assign } from \"tslib\";\nimport { freqIsDailyOrGreater } from './types';\nimport { includes, notEmpty, isPresent, isNumber, isArray, isWeekdayStr, } from './helpers';\nimport { RRule, defaultKeys, DEFAULT_OPTIONS } from './rrule';\nimport { getWeekday, isDate, isValidDate } from './dateutil';\nimport { Weekday } from './weekday';\nimport { Time } from './datetime';\nexport function initializeOptions(options) {\n var invalid = [];\n var keys = Object.keys(options);\n // Shallow copy for options and origOptions and check for invalid\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (!includes(defaultKeys, key))\n invalid.push(key);\n if (isDate(options[key]) && !isValidDate(options[key])) {\n invalid.push(key);\n }\n }\n if (invalid.length) {\n throw new Error('Invalid options: ' + invalid.join(', '));\n }\n return __assign({}, options);\n}\nexport function parseOptions(options) {\n var opts = __assign(__assign({}, DEFAULT_OPTIONS), initializeOptions(options));\n if (isPresent(opts.byeaster))\n opts.freq = RRule.YEARLY;\n if (!(isPresent(opts.freq) && RRule.FREQUENCIES[opts.freq])) {\n throw new Error(\"Invalid frequency: \".concat(opts.freq, \" \").concat(options.freq));\n }\n if (!opts.dtstart)\n opts.dtstart = new Date(new Date().setMilliseconds(0));\n if (!isPresent(opts.wkst)) {\n opts.wkst = RRule.MO.weekday;\n }\n else if (isNumber(opts.wkst)) {\n // cool, just keep it like that\n }\n else {\n opts.wkst = opts.wkst.weekday;\n }\n if (isPresent(opts.bysetpos)) {\n if (isNumber(opts.bysetpos))\n opts.bysetpos = [opts.bysetpos];\n for (var i = 0; i < opts.bysetpos.length; i++) {\n var v = opts.bysetpos[i];\n if (v === 0 || !(v >= -366 && v <= 366)) {\n throw new Error('bysetpos must be between 1 and 366,' + ' or between -366 and -1');\n }\n }\n }\n if (!(Boolean(opts.byweekno) ||\n notEmpty(opts.byweekno) ||\n notEmpty(opts.byyearday) ||\n Boolean(opts.bymonthday) ||\n notEmpty(opts.bymonthday) ||\n isPresent(opts.byweekday) ||\n isPresent(opts.byeaster))) {\n switch (opts.freq) {\n case RRule.YEARLY:\n if (!opts.bymonth)\n opts.bymonth = opts.dtstart.getUTCMonth() + 1;\n opts.bymonthday = opts.dtstart.getUTCDate();\n break;\n case RRule.MONTHLY:\n opts.bymonthday = opts.dtstart.getUTCDate();\n break;\n case RRule.WEEKLY:\n opts.byweekday = [getWeekday(opts.dtstart)];\n break;\n }\n }\n // bymonth\n if (isPresent(opts.bymonth) && !isArray(opts.bymonth)) {\n opts.bymonth = [opts.bymonth];\n }\n // byyearday\n if (isPresent(opts.byyearday) &&\n !isArray(opts.byyearday) &&\n isNumber(opts.byyearday)) {\n opts.byyearday = [opts.byyearday];\n }\n // bymonthday\n if (!isPresent(opts.bymonthday)) {\n opts.bymonthday = [];\n opts.bynmonthday = [];\n }\n else if (isArray(opts.bymonthday)) {\n var bymonthday = [];\n var bynmonthday = [];\n for (var i = 0; i < opts.bymonthday.length; i++) {\n var v = opts.bymonthday[i];\n if (v > 0) {\n bymonthday.push(v);\n }\n else if (v < 0) {\n bynmonthday.push(v);\n }\n }\n opts.bymonthday = bymonthday;\n opts.bynmonthday = bynmonthday;\n }\n else if (opts.bymonthday < 0) {\n opts.bynmonthday = [opts.bymonthday];\n opts.bymonthday = [];\n }\n else {\n opts.bynmonthday = [];\n opts.bymonthday = [opts.bymonthday];\n }\n // byweekno\n if (isPresent(opts.byweekno) && !isArray(opts.byweekno)) {\n opts.byweekno = [opts.byweekno];\n }\n // byweekday / bynweekday\n if (!isPresent(opts.byweekday)) {\n opts.bynweekday = null;\n }\n else if (isNumber(opts.byweekday)) {\n opts.byweekday = [opts.byweekday];\n opts.bynweekday = null;\n }\n else if (isWeekdayStr(opts.byweekday)) {\n opts.byweekday = [Weekday.fromStr(opts.byweekday).weekday];\n opts.bynweekday = null;\n }\n else if (opts.byweekday instanceof Weekday) {\n if (!opts.byweekday.n || opts.freq > RRule.MONTHLY) {\n opts.byweekday = [opts.byweekday.weekday];\n opts.bynweekday = null;\n }\n else {\n opts.bynweekday = [[opts.byweekday.weekday, opts.byweekday.n]];\n opts.byweekday = null;\n }\n }\n else {\n var byweekday = [];\n var bynweekday = [];\n for (var i = 0; i < opts.byweekday.length; i++) {\n var wday = opts.byweekday[i];\n if (isNumber(wday)) {\n byweekday.push(wday);\n continue;\n }\n else if (isWeekdayStr(wday)) {\n byweekday.push(Weekday.fromStr(wday).weekday);\n continue;\n }\n if (!wday.n || opts.freq > RRule.MONTHLY) {\n byweekday.push(wday.weekday);\n }\n else {\n bynweekday.push([wday.weekday, wday.n]);\n }\n }\n opts.byweekday = notEmpty(byweekday) ? byweekday : null;\n opts.bynweekday = notEmpty(bynweekday) ? bynweekday : null;\n }\n // byhour\n if (!isPresent(opts.byhour)) {\n opts.byhour = opts.freq < RRule.HOURLY ? [opts.dtstart.getUTCHours()] : null;\n }\n else if (isNumber(opts.byhour)) {\n opts.byhour = [opts.byhour];\n }\n // byminute\n if (!isPresent(opts.byminute)) {\n opts.byminute =\n opts.freq < RRule.MINUTELY ? [opts.dtstart.getUTCMinutes()] : null;\n }\n else if (isNumber(opts.byminute)) {\n opts.byminute = [opts.byminute];\n }\n // bysecond\n if (!isPresent(opts.bysecond)) {\n opts.bysecond =\n opts.freq < RRule.SECONDLY ? [opts.dtstart.getUTCSeconds()] : null;\n }\n else if (isNumber(opts.bysecond)) {\n opts.bysecond = [opts.bysecond];\n }\n return { parsedOptions: opts };\n}\nexport function buildTimeset(opts) {\n var millisecondModulo = opts.dtstart.getTime() % 1000;\n if (!freqIsDailyOrGreater(opts.freq)) {\n return [];\n }\n var timeset = [];\n opts.byhour.forEach(function (hour) {\n opts.byminute.forEach(function (minute) {\n opts.bysecond.forEach(function (second) {\n timeset.push(new Time(hour, minute, second, millisecondModulo));\n });\n });\n });\n return timeset;\n}\n//# sourceMappingURL=parseoptions.js.map","import { __assign } from \"tslib\";\nimport { Frequency } from './types';\nimport { Weekday } from './weekday';\nimport { untilStringToDate } from './dateutil';\nimport { Days } from './rrule';\nexport function parseString(rfcString) {\n var options = rfcString\n .split('\\n')\n .map(parseLine)\n .filter(function (x) { return x !== null; });\n return __assign(__assign({}, options[0]), options[1]);\n}\nexport function parseDtstart(line) {\n var options = {};\n var dtstartWithZone = /DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\\s]+)/i.exec(line);\n if (!dtstartWithZone) {\n return options;\n }\n var tzid = dtstartWithZone[1], dtstart = dtstartWithZone[2];\n if (tzid) {\n options.tzid = tzid;\n }\n options.dtstart = untilStringToDate(dtstart);\n return options;\n}\nfunction parseLine(rfcString) {\n rfcString = rfcString.replace(/^\\s+|\\s+$/, '');\n if (!rfcString.length)\n return null;\n var header = /^([A-Z]+?)[:;]/.exec(rfcString.toUpperCase());\n if (!header) {\n return parseRrule(rfcString);\n }\n var key = header[1];\n switch (key.toUpperCase()) {\n case 'RRULE':\n case 'EXRULE':\n return parseRrule(rfcString);\n case 'DTSTART':\n return parseDtstart(rfcString);\n default:\n throw new Error(\"Unsupported RFC prop \".concat(key, \" in \").concat(rfcString));\n }\n}\nfunction parseRrule(line) {\n var strippedLine = line.replace(/^RRULE:/i, '');\n var options = parseDtstart(strippedLine);\n var attrs = line.replace(/^(?:RRULE|EXRULE):/i, '').split(';');\n attrs.forEach(function (attr) {\n var _a = attr.split('='), key = _a[0], value = _a[1];\n switch (key.toUpperCase()) {\n case 'FREQ':\n options.freq = Frequency[value.toUpperCase()];\n break;\n case 'WKST':\n options.wkst = Days[value.toUpperCase()];\n break;\n case 'COUNT':\n case 'INTERVAL':\n case 'BYSETPOS':\n case 'BYMONTH':\n case 'BYMONTHDAY':\n case 'BYYEARDAY':\n case 'BYWEEKNO':\n case 'BYHOUR':\n case 'BYMINUTE':\n case 'BYSECOND':\n var num = parseNumber(value);\n var optionKey = key.toLowerCase();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n options[optionKey] = num;\n break;\n case 'BYWEEKDAY':\n case 'BYDAY':\n options.byweekday = parseWeekday(value);\n break;\n case 'DTSTART':\n case 'TZID':\n // for backwards compatibility\n var dtstart = parseDtstart(line);\n options.tzid = dtstart.tzid;\n options.dtstart = dtstart.dtstart;\n break;\n case 'UNTIL':\n options.until = untilStringToDate(value);\n break;\n case 'BYEASTER':\n options.byeaster = Number(value);\n break;\n default:\n throw new Error(\"Unknown RRULE property '\" + key + \"'\");\n }\n });\n return options;\n}\nfunction parseNumber(value) {\n if (value.indexOf(',') !== -1) {\n var values = value.split(',');\n return values.map(parseIndividualNumber);\n }\n return parseIndividualNumber(value);\n}\nfunction parseIndividualNumber(value) {\n if (/^[+-]?\\d+$/.test(value)) {\n return Number(value);\n }\n return value;\n}\nfunction parseWeekday(value) {\n var days = value.split(',');\n return days.map(function (day) {\n if (day.length === 2) {\n // MO, TU, ...\n return Days[day]; // wday instanceof Weekday\n }\n // -1MO, +3FR, 1SO, 13TU ...\n var parts = day.match(/^([+-]?\\d{1,2})([A-Z]{2})$/);\n if (!parts || parts.length < 3) {\n throw new SyntaxError(\"Invalid weekday string: \".concat(day));\n }\n var n = Number(parts[1]);\n var wdaypart = parts[2];\n var wday = Days[wdaypart].weekday;\n return new Weekday(wday, n);\n });\n}\n//# sourceMappingURL=parsestring.js.map","import { dateInTimeZone, timeToUntilString } from './dateutil';\nvar DateWithZone = /** @class */ (function () {\n function DateWithZone(date, tzid) {\n if (isNaN(date.getTime())) {\n throw new RangeError('Invalid date passed to DateWithZone');\n }\n this.date = date;\n this.tzid = tzid;\n }\n Object.defineProperty(DateWithZone.prototype, \"isUTC\", {\n get: function () {\n return !this.tzid || this.tzid.toUpperCase() === 'UTC';\n },\n enumerable: false,\n configurable: true\n });\n DateWithZone.prototype.toString = function () {\n var datestr = timeToUntilString(this.date.getTime(), this.isUTC);\n if (!this.isUTC) {\n return \";TZID=\".concat(this.tzid, \":\").concat(datestr);\n }\n return \":\".concat(datestr);\n };\n DateWithZone.prototype.getTime = function () {\n return this.date.getTime();\n };\n DateWithZone.prototype.rezonedDate = function () {\n if (this.isUTC) {\n return this.date;\n }\n return dateInTimeZone(this.date, this.tzid);\n };\n return DateWithZone;\n}());\nexport { DateWithZone };\n//# sourceMappingURL=datewithzone.js.map","import { RRule, DEFAULT_OPTIONS } from './rrule';\nimport { includes, isPresent, isArray, isNumber, toArray } from './helpers';\nimport { Weekday } from './weekday';\nimport { timeToUntilString } from './dateutil';\nimport { DateWithZone } from './datewithzone';\nexport function optionsToString(options) {\n var rrule = [];\n var dtstart = '';\n var keys = Object.keys(options);\n var defaultKeys = Object.keys(DEFAULT_OPTIONS);\n for (var i = 0; i < keys.length; i++) {\n if (keys[i] === 'tzid')\n continue;\n if (!includes(defaultKeys, keys[i]))\n continue;\n var key = keys[i].toUpperCase();\n var value = options[keys[i]];\n var outValue = '';\n if (!isPresent(value) || (isArray(value) && !value.length))\n continue;\n switch (key) {\n case 'FREQ':\n outValue = RRule.FREQUENCIES[options.freq];\n break;\n case 'WKST':\n if (isNumber(value)) {\n outValue = new Weekday(value).toString();\n }\n else {\n outValue = value.toString();\n }\n break;\n case 'BYWEEKDAY':\n /*\n NOTE: BYWEEKDAY is a special case.\n RRule() deconstructs the rule.options.byweekday array\n into an array of Weekday arguments.\n On the other hand, rule.origOptions is an array of Weekdays.\n We need to handle both cases here.\n It might be worth change RRule to keep the Weekdays.\n \n Also, BYWEEKDAY (used by RRule) vs. BYDAY (RFC)\n \n */\n key = 'BYDAY';\n outValue = toArray(value)\n .map(function (wday) {\n if (wday instanceof Weekday) {\n return wday;\n }\n if (isArray(wday)) {\n return new Weekday(wday[0], wday[1]);\n }\n return new Weekday(wday);\n })\n .toString();\n break;\n case 'DTSTART':\n dtstart = buildDtstart(value, options.tzid);\n break;\n case 'UNTIL':\n outValue = timeToUntilString(value, !options.tzid);\n break;\n default:\n if (isArray(value)) {\n var strValues = [];\n for (var j = 0; j < value.length; j++) {\n strValues[j] = String(value[j]);\n }\n outValue = strValues.toString();\n }\n else {\n outValue = String(value);\n }\n }\n if (outValue) {\n rrule.push([key, outValue]);\n }\n }\n var rules = rrule\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value.toString());\n })\n .join(';');\n var ruleString = '';\n if (rules !== '') {\n ruleString = \"RRULE:\".concat(rules);\n }\n return [dtstart, ruleString].filter(function (x) { return !!x; }).join('\\n');\n}\nfunction buildDtstart(dtstart, tzid) {\n if (!dtstart) {\n return '';\n }\n return 'DTSTART' + new DateWithZone(new Date(dtstart), tzid).toString();\n}\n//# sourceMappingURL=optionstostring.js.map","import IterResult from './iterresult';\nimport { clone, cloneDates } from './dateutil';\nimport { isArray } from './helpers';\nfunction argsMatch(left, right) {\n if (Array.isArray(left)) {\n if (!Array.isArray(right))\n return false;\n if (left.length !== right.length)\n return false;\n return left.every(function (date, i) { return date.getTime() === right[i].getTime(); });\n }\n if (left instanceof Date) {\n return right instanceof Date && left.getTime() === right.getTime();\n }\n return left === right;\n}\nvar Cache = /** @class */ (function () {\n function Cache() {\n this.all = false;\n this.before = [];\n this.after = [];\n this.between = [];\n }\n /**\n * @param {String} what - all/before/after/between\n * @param {Array,Date} value - an array of dates, one date, or null\n * @param {Object?} args - _iter arguments\n */\n Cache.prototype._cacheAdd = function (what, value, args) {\n if (value) {\n value = value instanceof Date ? clone(value) : cloneDates(value);\n }\n if (what === 'all') {\n this.all = value;\n }\n else {\n args._value = value;\n this[what].push(args);\n }\n };\n /**\n * @return false - not in the cache\n * @return null - cached, but zero occurrences (before/after)\n * @return Date - cached (before/after)\n * @return [] - cached, but zero occurrences (all/between)\n * @return [Date1, DateN] - cached (all/between)\n */\n Cache.prototype._cacheGet = function (what, args) {\n var cached = false;\n var argsKeys = args ? Object.keys(args) : [];\n var findCacheDiff = function (item) {\n for (var i = 0; i < argsKeys.length; i++) {\n var key = argsKeys[i];\n if (!argsMatch(args[key], item[key])) {\n return true;\n }\n }\n return false;\n };\n var cachedObject = this[what];\n if (what === 'all') {\n cached = this.all;\n }\n else if (isArray(cachedObject)) {\n // Let's see whether we've already called the\n // 'what' method with the same 'args'\n for (var i = 0; i < cachedObject.length; i++) {\n var item = cachedObject[i];\n if (argsKeys.length && findCacheDiff(item))\n continue;\n cached = item._value;\n break;\n }\n }\n if (!cached && this.all) {\n // Not in the cache, but we already know all the occurrences,\n // so we can find the correct dates from the cached ones.\n var iterResult = new IterResult(what, args);\n for (var i = 0; i < this.all.length; i++) {\n if (!iterResult.accept(this.all[i]))\n break;\n }\n cached = iterResult.getValue();\n this._cacheAdd(what, cached, args);\n }\n return isArray(cached)\n ? cloneDates(cached)\n : cached instanceof Date\n ? clone(cached)\n : cached;\n };\n return Cache;\n}());\nexport { Cache };\n//# sourceMappingURL=cache.js.map","import { __spreadArray } from \"tslib\";\nimport { range, repeat } from './helpers';\n// =============================================================================\n// Date masks\n// =============================================================================\n// Every mask is 7 days longer to handle cross-year weekly periods.\nvar M365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 28), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7), true);\nvar M366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 29), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7), true);\nvar M28 = range(1, 29);\nvar M29 = range(1, 30);\nvar M30 = range(1, 31);\nvar M31 = range(1, 32);\nvar MDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M29, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7), true);\nvar MDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M28, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7), true);\nvar NM28 = range(-28, 0);\nvar NM29 = range(-29, 0);\nvar NM30 = range(-30, 0);\nvar NM31 = range(-31, 0);\nvar NMDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM29, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7), true);\nvar NMDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM28, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7), true);\nvar M366RANGE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366];\nvar M365RANGE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\nvar WDAYMASK = (function () {\n var wdaymask = [];\n for (var i = 0; i < 55; i++)\n wdaymask = wdaymask.concat(range(7));\n return wdaymask;\n})();\nexport { WDAYMASK, M365MASK, M365RANGE, M366MASK, M366RANGE, MDAY365MASK, MDAY366MASK, NMDAY365MASK, NMDAY366MASK, };\n//# sourceMappingURL=masks.js.map","import { __assign } from \"tslib\";\nimport { datetime, getWeekday, isLeapYear, toOrdinal } from '../dateutil';\nimport { empty, repeat, pymod, includes } from '../helpers';\nimport { M365MASK, MDAY365MASK, NMDAY365MASK, WDAYMASK, M365RANGE, M366MASK, MDAY366MASK, NMDAY366MASK, M366RANGE, } from '../masks';\nexport function rebuildYear(year, options) {\n var firstyday = datetime(year, 1, 1);\n var yearlen = isLeapYear(year) ? 366 : 365;\n var nextyearlen = isLeapYear(year + 1) ? 366 : 365;\n var yearordinal = toOrdinal(firstyday);\n var yearweekday = getWeekday(firstyday);\n var result = __assign(__assign({ yearlen: yearlen, nextyearlen: nextyearlen, yearordinal: yearordinal, yearweekday: yearweekday }, baseYearMasks(year)), { wnomask: null });\n if (empty(options.byweekno)) {\n return result;\n }\n result.wnomask = repeat(0, yearlen + 7);\n var firstwkst;\n var wyearlen;\n var no1wkst = (firstwkst = pymod(7 - yearweekday + options.wkst, 7));\n if (no1wkst >= 4) {\n no1wkst = 0;\n // Number of days in the year, plus the days we got\n // from last year.\n wyearlen = result.yearlen + pymod(yearweekday - options.wkst, 7);\n }\n else {\n // Number of days in the year, minus the days we\n // left in last year.\n wyearlen = yearlen - no1wkst;\n }\n var div = Math.floor(wyearlen / 7);\n var mod = pymod(wyearlen, 7);\n var numweeks = Math.floor(div + mod / 4);\n for (var j = 0; j < options.byweekno.length; j++) {\n var n = options.byweekno[j];\n if (n < 0) {\n n += numweeks + 1;\n }\n if (!(n > 0 && n <= numweeks)) {\n continue;\n }\n var i = void 0;\n if (n > 1) {\n i = no1wkst + (n - 1) * 7;\n if (no1wkst !== firstwkst) {\n i -= 7 - firstwkst;\n }\n }\n else {\n i = no1wkst;\n }\n for (var k = 0; k < 7; k++) {\n result.wnomask[i] = 1;\n i++;\n if (result.wdaymask[i] === options.wkst)\n break;\n }\n }\n if (includes(options.byweekno, 1)) {\n // Check week number 1 of next year as well\n // orig-TODO : Check -numweeks for next year.\n var i = no1wkst + numweeks * 7;\n if (no1wkst !== firstwkst)\n i -= 7 - firstwkst;\n if (i < yearlen) {\n // If week starts in next year, we\n // don't care about it.\n for (var j = 0; j < 7; j++) {\n result.wnomask[i] = 1;\n i += 1;\n if (result.wdaymask[i] === options.wkst)\n break;\n }\n }\n }\n if (no1wkst) {\n // Check last week number of last year as\n // well. If no1wkst is 0, either the year\n // started on week start, or week number 1\n // got days from last year, so there are no\n // days from last year's last week number in\n // this year.\n var lnumweeks = void 0;\n if (!includes(options.byweekno, -1)) {\n var lyearweekday = getWeekday(datetime(year - 1, 1, 1));\n var lno1wkst = pymod(7 - lyearweekday.valueOf() + options.wkst, 7);\n var lyearlen = isLeapYear(year - 1) ? 366 : 365;\n var weekst = void 0;\n if (lno1wkst >= 4) {\n lno1wkst = 0;\n weekst = lyearlen + pymod(lyearweekday - options.wkst, 7);\n }\n else {\n weekst = yearlen - no1wkst;\n }\n lnumweeks = Math.floor(52 + pymod(weekst, 7) / 4);\n }\n else {\n lnumweeks = -1;\n }\n if (includes(options.byweekno, lnumweeks)) {\n for (var i = 0; i < no1wkst; i++)\n result.wnomask[i] = 1;\n }\n }\n return result;\n}\nfunction baseYearMasks(year) {\n var yearlen = isLeapYear(year) ? 366 : 365;\n var firstyday = datetime(year, 1, 1);\n var wday = getWeekday(firstyday);\n if (yearlen === 365) {\n return {\n mmask: M365MASK,\n mdaymask: MDAY365MASK,\n nmdaymask: NMDAY365MASK,\n wdaymask: WDAYMASK.slice(wday),\n mrange: M365RANGE,\n };\n }\n return {\n mmask: M366MASK,\n mdaymask: MDAY366MASK,\n nmdaymask: NMDAY366MASK,\n wdaymask: WDAYMASK.slice(wday),\n mrange: M366RANGE,\n };\n}\n//# sourceMappingURL=yearinfo.js.map","import { RRule } from '../rrule';\nimport { empty, repeat, pymod } from '../helpers';\nexport function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) {\n var result = {\n lastyear: year,\n lastmonth: month,\n nwdaymask: [],\n };\n var ranges = [];\n if (options.freq === RRule.YEARLY) {\n if (empty(options.bymonth)) {\n ranges = [[0, yearlen]];\n }\n else {\n for (var j = 0; j < options.bymonth.length; j++) {\n month = options.bymonth[j];\n ranges.push(mrange.slice(month - 1, month + 1));\n }\n }\n }\n else if (options.freq === RRule.MONTHLY) {\n ranges = [mrange.slice(month - 1, month + 1)];\n }\n if (empty(ranges)) {\n return result;\n }\n // Weekly frequency won't get here, so we may not\n // care about cross-year weekly periods.\n result.nwdaymask = repeat(0, yearlen);\n for (var j = 0; j < ranges.length; j++) {\n var rang = ranges[j];\n var first = rang[0];\n var last = rang[1] - 1;\n for (var k = 0; k < options.bynweekday.length; k++) {\n var i = void 0;\n var _a = options.bynweekday[k], wday = _a[0], n = _a[1];\n if (n < 0) {\n i = last + (n + 1) * 7;\n i -= pymod(wdaymask[i] - wday, 7);\n }\n else {\n i = first + (n - 1) * 7;\n i += pymod(7 - wdaymask[i] + wday, 7);\n }\n if (first <= i && i <= last)\n result.nwdaymask[i] = 1;\n }\n }\n return result;\n}\n//# sourceMappingURL=monthinfo.js.map","export function easter(y, offset) {\n if (offset === void 0) { offset = 0; }\n var a = y % 19;\n var b = Math.floor(y / 100);\n var c = y % 100;\n var d = Math.floor(b / 4);\n var e = b % 4;\n var f = Math.floor((b + 8) / 25);\n var g = Math.floor((b - f + 1) / 3);\n var h = Math.floor(19 * a + b - d - g + 15) % 30;\n var i = Math.floor(c / 4);\n var k = c % 4;\n var l = Math.floor(32 + 2 * e + 2 * i - h - k) % 7;\n var m = Math.floor((a + 11 * h + 22 * l) / 451);\n var month = Math.floor((h + l - 7 * m + 114) / 31);\n var day = ((h + l - 7 * m + 114) % 31) + 1;\n var date = Date.UTC(y, month - 1, day + offset);\n var yearStart = Date.UTC(y, 0, 1);\n return [Math.ceil((date - yearStart) / (1000 * 60 * 60 * 24))];\n}\n//# sourceMappingURL=easter.js.map","import { notEmpty, repeat, range, isPresent } from '../helpers';\nimport { Frequency } from '../types';\nimport { rebuildYear } from './yearinfo';\nimport { rebuildMonth } from './monthinfo';\nimport { easter } from './easter';\nimport { Time } from '../datetime';\nimport { datetime, sort, toOrdinal } from '../dateutil';\n// =============================================================================\n// Iterinfo\n// =============================================================================\nvar Iterinfo = /** @class */ (function () {\n // eslint-disable-next-line no-empty-function\n function Iterinfo(options) {\n this.options = options;\n }\n Iterinfo.prototype.rebuild = function (year, month) {\n var options = this.options;\n if (year !== this.lastyear) {\n this.yearinfo = rebuildYear(year, options);\n }\n if (notEmpty(options.bynweekday) &&\n (month !== this.lastmonth || year !== this.lastyear)) {\n var _a = this.yearinfo, yearlen = _a.yearlen, mrange = _a.mrange, wdaymask = _a.wdaymask;\n this.monthinfo = rebuildMonth(year, month, yearlen, mrange, wdaymask, options);\n }\n if (isPresent(options.byeaster)) {\n this.eastermask = easter(year, options.byeaster);\n }\n };\n Object.defineProperty(Iterinfo.prototype, \"lastyear\", {\n get: function () {\n return this.monthinfo ? this.monthinfo.lastyear : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"lastmonth\", {\n get: function () {\n return this.monthinfo ? this.monthinfo.lastmonth : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"yearlen\", {\n get: function () {\n return this.yearinfo.yearlen;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"yearordinal\", {\n get: function () {\n return this.yearinfo.yearordinal;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"mrange\", {\n get: function () {\n return this.yearinfo.mrange;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"wdaymask\", {\n get: function () {\n return this.yearinfo.wdaymask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"mmask\", {\n get: function () {\n return this.yearinfo.mmask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"wnomask\", {\n get: function () {\n return this.yearinfo.wnomask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"nwdaymask\", {\n get: function () {\n return this.monthinfo ? this.monthinfo.nwdaymask : [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"nextyearlen\", {\n get: function () {\n return this.yearinfo.nextyearlen;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"mdaymask\", {\n get: function () {\n return this.yearinfo.mdaymask;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Iterinfo.prototype, \"nmdaymask\", {\n get: function () {\n return this.yearinfo.nmdaymask;\n },\n enumerable: false,\n configurable: true\n });\n Iterinfo.prototype.ydayset = function () {\n return [range(this.yearlen), 0, this.yearlen];\n };\n Iterinfo.prototype.mdayset = function (_, month) {\n var start = this.mrange[month - 1];\n var end = this.mrange[month];\n var set = repeat(null, this.yearlen);\n for (var i = start; i < end; i++)\n set[i] = i;\n return [set, start, end];\n };\n Iterinfo.prototype.wdayset = function (year, month, day) {\n // We need to handle cross-year weeks here.\n var set = repeat(null, this.yearlen + 7);\n var i = toOrdinal(datetime(year, month, day)) - this.yearordinal;\n var start = i;\n for (var j = 0; j < 7; j++) {\n set[i] = i;\n ++i;\n if (this.wdaymask[i] === this.options.wkst)\n break;\n }\n return [set, start, i];\n };\n Iterinfo.prototype.ddayset = function (year, month, day) {\n var set = repeat(null, this.yearlen);\n var i = toOrdinal(datetime(year, month, day)) - this.yearordinal;\n set[i] = i;\n return [set, i, i + 1];\n };\n Iterinfo.prototype.htimeset = function (hour, _, second, millisecond) {\n var _this = this;\n var set = [];\n this.options.byminute.forEach(function (minute) {\n set = set.concat(_this.mtimeset(hour, minute, second, millisecond));\n });\n sort(set);\n return set;\n };\n Iterinfo.prototype.mtimeset = function (hour, minute, _, millisecond) {\n var set = this.options.bysecond.map(function (second) { return new Time(hour, minute, second, millisecond); });\n sort(set);\n return set;\n };\n Iterinfo.prototype.stimeset = function (hour, minute, second, millisecond) {\n return [new Time(hour, minute, second, millisecond)];\n };\n Iterinfo.prototype.getdayset = function (freq) {\n switch (freq) {\n case Frequency.YEARLY:\n return this.ydayset.bind(this);\n case Frequency.MONTHLY:\n return this.mdayset.bind(this);\n case Frequency.WEEKLY:\n return this.wdayset.bind(this);\n case Frequency.DAILY:\n return this.ddayset.bind(this);\n default:\n return this.ddayset.bind(this);\n }\n };\n Iterinfo.prototype.gettimeset = function (freq) {\n switch (freq) {\n case Frequency.HOURLY:\n return this.htimeset.bind(this);\n case Frequency.MINUTELY:\n return this.mtimeset.bind(this);\n case Frequency.SECONDLY:\n return this.stimeset.bind(this);\n }\n };\n return Iterinfo;\n}());\nexport default Iterinfo;\n//# sourceMappingURL=index.js.map","import { combine, fromOrdinal, sort } from '../dateutil';\nimport { pymod, isPresent, includes } from '../helpers';\nexport function buildPoslist(bysetpos, timeset, start, end, ii, dayset) {\n var poslist = [];\n for (var j = 0; j < bysetpos.length; j++) {\n var daypos = void 0;\n var timepos = void 0;\n var pos = bysetpos[j];\n if (pos < 0) {\n daypos = Math.floor(pos / timeset.length);\n timepos = pymod(pos, timeset.length);\n }\n else {\n daypos = Math.floor((pos - 1) / timeset.length);\n timepos = pymod(pos - 1, timeset.length);\n }\n var tmp = [];\n for (var k = start; k < end; k++) {\n var val = dayset[k];\n if (!isPresent(val))\n continue;\n tmp.push(val);\n }\n var i = void 0;\n if (daypos < 0) {\n i = tmp.slice(daypos)[0];\n }\n else {\n i = tmp[daypos];\n }\n var time = timeset[timepos];\n var date = fromOrdinal(ii.yearordinal + i);\n var res = combine(date, time);\n // XXX: can this ever be in the array?\n // - compare the actual date instead?\n if (!includes(poslist, res))\n poslist.push(res);\n }\n sort(poslist);\n return poslist;\n}\n//# sourceMappingURL=poslist.js.map","import { freqIsDailyOrGreater } from '../types';\nimport { combine, fromOrdinal, MAXYEAR } from '../dateutil';\nimport Iterinfo from '../iterinfo/index';\nimport { RRule } from '../rrule';\nimport { buildTimeset } from '../parseoptions';\nimport { notEmpty, includes, isPresent } from '../helpers';\nimport { DateWithZone } from '../datewithzone';\nimport { buildPoslist } from './poslist';\nimport { DateTime } from '../datetime';\nexport function iter(iterResult, options) {\n var dtstart = options.dtstart, freq = options.freq, interval = options.interval, until = options.until, bysetpos = options.bysetpos;\n var count = options.count;\n if (count === 0 || interval === 0) {\n return emitResult(iterResult);\n }\n var counterDate = DateTime.fromDate(dtstart);\n var ii = new Iterinfo(options);\n ii.rebuild(counterDate.year, counterDate.month);\n var timeset = makeTimeset(ii, counterDate, options);\n for (;;) {\n var _a = ii.getdayset(freq)(counterDate.year, counterDate.month, counterDate.day), dayset = _a[0], start = _a[1], end = _a[2];\n var filtered = removeFilteredDays(dayset, start, end, ii, options);\n if (notEmpty(bysetpos)) {\n var poslist = buildPoslist(bysetpos, timeset, start, end, ii, dayset);\n for (var j = 0; j < poslist.length; j++) {\n var res = poslist[j];\n if (until && res > until) {\n return emitResult(iterResult);\n }\n if (res >= dtstart) {\n var rezonedDate = rezoneIfNeeded(res, options);\n if (!iterResult.accept(rezonedDate)) {\n return emitResult(iterResult);\n }\n if (count) {\n --count;\n if (!count) {\n return emitResult(iterResult);\n }\n }\n }\n }\n }\n else {\n for (var j = start; j < end; j++) {\n var currentDay = dayset[j];\n if (!isPresent(currentDay)) {\n continue;\n }\n var date = fromOrdinal(ii.yearordinal + currentDay);\n for (var k = 0; k < timeset.length; k++) {\n var time = timeset[k];\n var res = combine(date, time);\n if (until && res > until) {\n return emitResult(iterResult);\n }\n if (res >= dtstart) {\n var rezonedDate = rezoneIfNeeded(res, options);\n if (!iterResult.accept(rezonedDate)) {\n return emitResult(iterResult);\n }\n if (count) {\n --count;\n if (!count) {\n return emitResult(iterResult);\n }\n }\n }\n }\n }\n }\n if (options.interval === 0) {\n return emitResult(iterResult);\n }\n // Handle frequency and interval\n counterDate.add(options, filtered);\n if (counterDate.year > MAXYEAR) {\n return emitResult(iterResult);\n }\n if (!freqIsDailyOrGreater(freq)) {\n timeset = ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, 0);\n }\n ii.rebuild(counterDate.year, counterDate.month);\n }\n}\nfunction isFiltered(ii, currentDay, options) {\n var bymonth = options.bymonth, byweekno = options.byweekno, byweekday = options.byweekday, byeaster = options.byeaster, bymonthday = options.bymonthday, bynmonthday = options.bynmonthday, byyearday = options.byyearday;\n return ((notEmpty(bymonth) && !includes(bymonth, ii.mmask[currentDay])) ||\n (notEmpty(byweekno) && !ii.wnomask[currentDay]) ||\n (notEmpty(byweekday) && !includes(byweekday, ii.wdaymask[currentDay])) ||\n (notEmpty(ii.nwdaymask) && !ii.nwdaymask[currentDay]) ||\n (byeaster !== null && !includes(ii.eastermask, currentDay)) ||\n ((notEmpty(bymonthday) || notEmpty(bynmonthday)) &&\n !includes(bymonthday, ii.mdaymask[currentDay]) &&\n !includes(bynmonthday, ii.nmdaymask[currentDay])) ||\n (notEmpty(byyearday) &&\n ((currentDay < ii.yearlen &&\n !includes(byyearday, currentDay + 1) &&\n !includes(byyearday, -ii.yearlen + currentDay)) ||\n (currentDay >= ii.yearlen &&\n !includes(byyearday, currentDay + 1 - ii.yearlen) &&\n !includes(byyearday, -ii.nextyearlen + currentDay - ii.yearlen)))));\n}\nfunction rezoneIfNeeded(date, options) {\n return new DateWithZone(date, options.tzid).rezonedDate();\n}\nfunction emitResult(iterResult) {\n return iterResult.getValue();\n}\nfunction removeFilteredDays(dayset, start, end, ii, options) {\n var filtered = false;\n for (var dayCounter = start; dayCounter < end; dayCounter++) {\n var currentDay = dayset[dayCounter];\n filtered = isFiltered(ii, currentDay, options);\n if (filtered)\n dayset[currentDay] = null;\n }\n return filtered;\n}\nfunction makeTimeset(ii, counterDate, options) {\n var freq = options.freq, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond;\n if (freqIsDailyOrGreater(freq)) {\n return buildTimeset(options);\n }\n if ((freq >= RRule.HOURLY &&\n notEmpty(byhour) &&\n !includes(byhour, counterDate.hour)) ||\n (freq >= RRule.MINUTELY &&\n notEmpty(byminute) &&\n !includes(byminute, counterDate.minute)) ||\n (freq >= RRule.SECONDLY &&\n notEmpty(bysecond) &&\n !includes(bysecond, counterDate.second))) {\n return [];\n }\n return ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, counterDate.millisecond);\n}\n//# sourceMappingURL=index.js.map","import { isValidDate } from './dateutil';\nimport IterResult from './iterresult';\nimport CallbackIterResult from './callbackiterresult';\nimport { fromText, parseText, toText, isFullyConvertible } from './nlp/index';\nimport { Frequency, } from './types';\nimport { parseOptions, initializeOptions } from './parseoptions';\nimport { parseString } from './parsestring';\nimport { optionsToString } from './optionstostring';\nimport { Cache } from './cache';\nimport { Weekday } from './weekday';\nimport { iter } from './iter/index';\n// =============================================================================\n// RRule\n// =============================================================================\nexport var Days = {\n MO: new Weekday(0),\n TU: new Weekday(1),\n WE: new Weekday(2),\n TH: new Weekday(3),\n FR: new Weekday(4),\n SA: new Weekday(5),\n SU: new Weekday(6),\n};\nexport var DEFAULT_OPTIONS = {\n freq: Frequency.YEARLY,\n dtstart: null,\n interval: 1,\n wkst: Days.MO,\n count: null,\n until: null,\n tzid: null,\n bysetpos: null,\n bymonth: null,\n bymonthday: null,\n bynmonthday: null,\n byyearday: null,\n byweekno: null,\n byweekday: null,\n bynweekday: null,\n byhour: null,\n byminute: null,\n bysecond: null,\n byeaster: null,\n};\nexport var defaultKeys = Object.keys(DEFAULT_OPTIONS);\n/**\n *\n * @param {Options?} options - see <http://labix.org/python-dateutil/#head-cf004ee9a75592797e076752b2a889c10f445418>\n * - The only required option is `freq`, one of RRule.YEARLY, RRule.MONTHLY, ...\n * @constructor\n */\nvar RRule = /** @class */ (function () {\n function RRule(options, noCache) {\n if (options === void 0) { options = {}; }\n if (noCache === void 0) { noCache = false; }\n // RFC string\n this._cache = noCache ? null : new Cache();\n // used by toString()\n this.origOptions = initializeOptions(options);\n var parsedOptions = parseOptions(options).parsedOptions;\n this.options = parsedOptions;\n }\n RRule.parseText = function (text, language) {\n return parseText(text, language);\n };\n RRule.fromText = function (text, language) {\n return fromText(text, language);\n };\n RRule.fromString = function (str) {\n return new RRule(RRule.parseString(str) || undefined);\n };\n RRule.prototype._iter = function (iterResult) {\n return iter(iterResult, this.options);\n };\n RRule.prototype._cacheGet = function (what, args) {\n if (!this._cache)\n return false;\n return this._cache._cacheGet(what, args);\n };\n RRule.prototype._cacheAdd = function (what, value, args) {\n if (!this._cache)\n return;\n return this._cache._cacheAdd(what, value, args);\n };\n /**\n * @param {Function} iterator - optional function that will be called\n * on each date that is added. It can return false\n * to stop the iteration.\n * @return Array containing all recurrences.\n */\n RRule.prototype.all = function (iterator) {\n if (iterator) {\n return this._iter(new CallbackIterResult('all', {}, iterator));\n }\n var result = this._cacheGet('all');\n if (result === false) {\n result = this._iter(new IterResult('all', {}));\n this._cacheAdd('all', result);\n }\n return result;\n };\n /**\n * Returns all the occurrences of the rrule between after and before.\n * The inc keyword defines what happens if after and/or before are\n * themselves occurrences. With inc == True, they will be included in the\n * list, if they are found in the recurrence set.\n *\n * @return Array\n */\n RRule.prototype.between = function (after, before, inc, iterator) {\n if (inc === void 0) { inc = false; }\n if (!isValidDate(after) || !isValidDate(before)) {\n throw new Error('Invalid date passed in to RRule.between');\n }\n var args = {\n before: before,\n after: after,\n inc: inc,\n };\n if (iterator) {\n return this._iter(new CallbackIterResult('between', args, iterator));\n }\n var result = this._cacheGet('between', args);\n if (result === false) {\n result = this._iter(new IterResult('between', args));\n this._cacheAdd('between', result, args);\n }\n return result;\n };\n /**\n * Returns the last recurrence before the given datetime instance.\n * The inc keyword defines what happens if dt is an occurrence.\n * With inc == True, if dt itself is an occurrence, it will be returned.\n *\n * @return Date or null\n */\n RRule.prototype.before = function (dt, inc) {\n if (inc === void 0) { inc = false; }\n if (!isValidDate(dt)) {\n throw new Error('Invalid date passed in to RRule.before');\n }\n var args = { dt: dt, inc: inc };\n var result = this._cacheGet('before', args);\n if (result === false) {\n result = this._iter(new IterResult('before', args));\n this._cacheAdd('before', result, args);\n }\n return result;\n };\n /**\n * Returns the first recurrence after the given datetime instance.\n * The inc keyword defines what happens if dt is an occurrence.\n * With inc == True, if dt itself is an occurrence, it will be returned.\n *\n * @return Date or null\n */\n RRule.prototype.after = function (dt, inc) {\n if (inc === void 0) { inc = false; }\n if (!isValidDate(dt)) {\n throw new Error('Invalid date passed in to RRule.after');\n }\n var args = { dt: dt, inc: inc };\n var result = this._cacheGet('after', args);\n if (result === false) {\n result = this._iter(new IterResult('after', args));\n this._cacheAdd('after', result, args);\n }\n return result;\n };\n /**\n * Returns the number of recurrences in this set. It will have go trough\n * the whole recurrence, if this hasn't been done before.\n */\n RRule.prototype.count = function () {\n return this.all().length;\n };\n /**\n * Converts the rrule into its string representation\n *\n * @see <http://www.ietf.org/rfc/rfc2445.txt>\n * @return String\n */\n RRule.prototype.toString = function () {\n return optionsToString(this.origOptions);\n };\n /**\n * Will convert all rules described in nlp:ToText\n * to text.\n */\n RRule.prototype.toText = function (gettext, language, dateFormatter) {\n return toText(this, gettext, language, dateFormatter);\n };\n RRule.prototype.isFullyConvertibleToText = function () {\n return isFullyConvertible(this);\n };\n /**\n * @return a RRule instance with the same freq and options\n * as this one (cache is not cloned)\n */\n RRule.prototype.clone = function () {\n return new RRule(this.origOptions);\n };\n // RRule class 'constants'\n RRule.FREQUENCIES = [\n 'YEARLY',\n 'MONTHLY',\n 'WEEKLY',\n 'DAILY',\n 'HOURLY',\n 'MINUTELY',\n 'SECONDLY',\n ];\n RRule.YEARLY = Frequency.YEARLY;\n RRule.MONTHLY = Frequency.MONTHLY;\n RRule.WEEKLY = Frequency.WEEKLY;\n RRule.DAILY = Frequency.DAILY;\n RRule.HOURLY = Frequency.HOURLY;\n RRule.MINUTELY = Frequency.MINUTELY;\n RRule.SECONDLY = Frequency.SECONDLY;\n RRule.MO = Days.MO;\n RRule.TU = Days.TU;\n RRule.WE = Days.WE;\n RRule.TH = Days.TH;\n RRule.FR = Days.FR;\n RRule.SA = Days.SA;\n RRule.SU = Days.SU;\n RRule.parseString = parseString;\n RRule.optionsToString = optionsToString;\n return RRule;\n}());\nexport { RRule };\n//# sourceMappingURL=rrule.js.map","import { DateWithZone } from './datewithzone';\nimport { iter } from './iter';\nimport { sort } from './dateutil';\nexport function iterSet(iterResult, _rrule, _exrule, _rdate, _exdate, tzid) {\n var _exdateHash = {};\n var _accept = iterResult.accept;\n function evalExdate(after, before) {\n _exrule.forEach(function (rrule) {\n rrule.between(after, before, true).forEach(function (date) {\n _exdateHash[Number(date)] = true;\n });\n });\n }\n _exdate.forEach(function (date) {\n var zonedDate = new DateWithZone(date, tzid).rezonedDate();\n _exdateHash[Number(zonedDate)] = true;\n });\n iterResult.accept = function (date) {\n var dt = Number(date);\n if (isNaN(dt))\n return _accept.call(this, date);\n if (!_exdateHash[dt]) {\n evalExdate(new Date(dt - 1), new Date(dt + 1));\n if (!_exdateHash[dt]) {\n _exdateHash[dt] = true;\n return _accept.call(this, date);\n }\n }\n return true;\n };\n if (iterResult.method === 'between') {\n evalExdate(iterResult.args.after, iterResult.args.before);\n iterResult.accept = function (date) {\n var dt = Number(date);\n if (!_exdateHash[dt]) {\n _exdateHash[dt] = true;\n return _accept.call(this, date);\n }\n return true;\n };\n }\n for (var i = 0; i < _rdate.length; i++) {\n var zonedDate = new DateWithZone(_rdate[i], tzid).rezonedDate();\n if (!iterResult.accept(new Date(zonedDate.getTime())))\n break;\n }\n _rrule.forEach(function (rrule) {\n iter(iterResult, rrule.options);\n });\n var res = iterResult._result;\n sort(res);\n switch (iterResult.method) {\n case 'all':\n case 'between':\n return res;\n case 'before':\n return ((res.length && res[res.length - 1]) || null);\n case 'after':\n default:\n return ((res.length && res[0]) || null);\n }\n}\n//# sourceMappingURL=iterset.js.map","import { __assign } from \"tslib\";\nimport { RRule } from './rrule';\nimport { RRuleSet } from './rruleset';\nimport { untilStringToDate } from './dateutil';\nimport { includes, split } from './helpers';\nimport { parseString, parseDtstart } from './parsestring';\n/**\n * RRuleStr\n * To parse a set of rrule strings\n */\nvar DEFAULT_OPTIONS = {\n dtstart: null,\n cache: false,\n unfold: false,\n forceset: false,\n compatible: false,\n tzid: null,\n};\nexport function parseInput(s, options) {\n var rrulevals = [];\n var rdatevals = [];\n var exrulevals = [];\n var exdatevals = [];\n var parsedDtstart = parseDtstart(s);\n var dtstart = parsedDtstart.dtstart;\n var tzid = parsedDtstart.tzid;\n var lines = splitIntoLines(s, options.unfold);\n lines.forEach(function (line) {\n var _a;\n if (!line)\n return;\n var _b = breakDownLine(line), name = _b.name, parms = _b.parms, value = _b.value;\n switch (name.toUpperCase()) {\n case 'RRULE':\n if (parms.length) {\n throw new Error(\"unsupported RRULE parm: \".concat(parms.join(',')));\n }\n rrulevals.push(parseString(line));\n break;\n case 'RDATE':\n var _c = (_a = /RDATE(?:;TZID=([^:=]+))?/i.exec(line)) !== null && _a !== void 0 ? _a : [], rdateTzid = _c[1];\n if (rdateTzid && !tzid) {\n tzid = rdateTzid;\n }\n rdatevals = rdatevals.concat(parseRDate(value, parms));\n break;\n case 'EXRULE':\n if (parms.length) {\n throw new Error(\"unsupported EXRULE parm: \".concat(parms.join(',')));\n }\n exrulevals.push(parseString(value));\n break;\n case 'EXDATE':\n exdatevals = exdatevals.concat(parseRDate(value, parms));\n break;\n case 'DTSTART':\n break;\n default:\n throw new Error('unsupported property: ' + name);\n }\n });\n return {\n dtstart: dtstart,\n tzid: tzid,\n rrulevals: rrulevals,\n rdatevals: rdatevals,\n exrulevals: exrulevals,\n exdatevals: exdatevals,\n };\n}\nfunction buildRule(s, options) {\n var _a = parseInput(s, options), rrulevals = _a.rrulevals, rdatevals = _a.rdatevals, exrulevals = _a.exrulevals, exdatevals = _a.exdatevals, dtstart = _a.dtstart, tzid = _a.tzid;\n var noCache = options.cache === false;\n if (options.compatible) {\n options.forceset = true;\n options.unfold = true;\n }\n if (options.forceset ||\n rrulevals.length > 1 ||\n rdatevals.length ||\n exrulevals.length ||\n exdatevals.length) {\n var rset_1 = new RRuleSet(noCache);\n rset_1.dtstart(dtstart);\n rset_1.tzid(tzid || undefined);\n rrulevals.forEach(function (val) {\n rset_1.rrule(new RRule(groomRruleOptions(val, dtstart, tzid), noCache));\n });\n rdatevals.forEach(function (date) {\n rset_1.rdate(date);\n });\n exrulevals.forEach(function (val) {\n rset_1.exrule(new RRule(groomRruleOptions(val, dtstart, tzid), noCache));\n });\n exdatevals.forEach(function (date) {\n rset_1.exdate(date);\n });\n if (options.compatible && options.dtstart)\n rset_1.rdate(dtstart);\n return rset_1;\n }\n var val = rrulevals[0] || {};\n return new RRule(groomRruleOptions(val, val.dtstart || options.dtstart || dtstart, val.tzid || options.tzid || tzid), noCache);\n}\nexport function rrulestr(s, options) {\n if (options === void 0) { options = {}; }\n return buildRule(s, initializeOptions(options));\n}\nfunction groomRruleOptions(val, dtstart, tzid) {\n return __assign(__assign({}, val), { dtstart: dtstart, tzid: tzid });\n}\nfunction initializeOptions(options) {\n var invalid = [];\n var keys = Object.keys(options);\n var defaultKeys = Object.keys(DEFAULT_OPTIONS);\n keys.forEach(function (key) {\n if (!includes(defaultKeys, key))\n invalid.push(key);\n });\n if (invalid.length) {\n throw new Error('Invalid options: ' + invalid.join(', '));\n }\n return __assign(__assign({}, DEFAULT_OPTIONS), options);\n}\nfunction extractName(line) {\n if (line.indexOf(':') === -1) {\n return {\n name: 'RRULE',\n value: line,\n };\n }\n var _a = split(line, ':', 1), name = _a[0], value = _a[1];\n return {\n name: name,\n value: value,\n };\n}\nfunction breakDownLine(line) {\n var _a = extractName(line), name = _a.name, value = _a.value;\n var parms = name.split(';');\n if (!parms)\n throw new Error('empty property name');\n return {\n name: parms[0].toUpperCase(),\n parms: parms.slice(1),\n value: value,\n };\n}\nfunction splitIntoLines(s, unfold) {\n if (unfold === void 0) { unfold = false; }\n s = s && s.trim();\n if (!s)\n throw new Error('Invalid empty string');\n // More info about 'unfold' option\n // Go head to http://www.ietf.org/rfc/rfc2445.txt\n if (!unfold) {\n return s.split(/\\s/);\n }\n var lines = s.split('\\n');\n var i = 0;\n while (i < lines.length) {\n // TODO\n var line = (lines[i] = lines[i].replace(/\\s+$/g, ''));\n if (!line) {\n lines.splice(i, 1);\n }\n else if (i > 0 && line[0] === ' ') {\n lines[i - 1] += line.slice(1);\n lines.splice(i, 1);\n }\n else {\n i += 1;\n }\n }\n return lines;\n}\nfunction validateDateParm(parms) {\n parms.forEach(function (parm) {\n if (!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(parm)) {\n throw new Error('unsupported RDATE/EXDATE parm: ' + parm);\n }\n });\n}\nfunction parseRDate(rdateval, parms) {\n validateDateParm(parms);\n return rdateval.split(',').map(function (datestr) { return untilStringToDate(datestr); });\n}\n//# sourceMappingURL=rrulestr.js.map","import { __extends } from \"tslib\";\nimport { RRule } from './rrule';\nimport { sort, timeToUntilString } from './dateutil';\nimport { includes } from './helpers';\nimport { iterSet } from './iterset';\nimport { rrulestr } from './rrulestr';\nimport { optionsToString } from './optionstostring';\nfunction createGetterSetter(fieldName) {\n var _this = this;\n return function (field) {\n if (field !== undefined) {\n _this[\"_\".concat(fieldName)] = field;\n }\n if (_this[\"_\".concat(fieldName)] !== undefined) {\n return _this[\"_\".concat(fieldName)];\n }\n for (var i = 0; i < _this._rrule.length; i++) {\n var field_1 = _this._rrule[i].origOptions[fieldName];\n if (field_1) {\n return field_1;\n }\n }\n };\n}\nvar RRuleSet = /** @class */ (function (_super) {\n __extends(RRuleSet, _super);\n /**\n *\n * @param {Boolean?} noCache\n * The same stratagy as RRule on cache, default to false\n * @constructor\n */\n function RRuleSet(noCache) {\n if (noCache === void 0) { noCache = false; }\n var _this = _super.call(this, {}, noCache) || this;\n _this.dtstart = createGetterSetter.apply(_this, ['dtstart']);\n _this.tzid = createGetterSetter.apply(_this, ['tzid']);\n _this._rrule = [];\n _this._rdate = [];\n _this._exrule = [];\n _this._exdate = [];\n return _this;\n }\n RRuleSet.prototype._iter = function (iterResult) {\n return iterSet(iterResult, this._rrule, this._exrule, this._rdate, this._exdate, this.tzid());\n };\n /**\n * Adds an RRule to the set\n *\n * @param {RRule}\n */\n RRuleSet.prototype.rrule = function (rrule) {\n _addRule(rrule, this._rrule);\n };\n /**\n * Adds an EXRULE to the set\n *\n * @param {RRule}\n */\n RRuleSet.prototype.exrule = function (rrule) {\n _addRule(rrule, this._exrule);\n };\n /**\n * Adds an RDate to the set\n *\n * @param {Date}\n */\n RRuleSet.prototype.rdate = function (date) {\n _addDate(date, this._rdate);\n };\n /**\n * Adds an EXDATE to the set\n *\n * @param {Date}\n */\n RRuleSet.prototype.exdate = function (date) {\n _addDate(date, this._exdate);\n };\n /**\n * Get list of included rrules in this recurrence set.\n *\n * @return List of rrules\n */\n RRuleSet.prototype.rrules = function () {\n return this._rrule.map(function (e) { return rrulestr(e.toString()); });\n };\n /**\n * Get list of excluded rrules in this recurrence set.\n *\n * @return List of exrules\n */\n RRuleSet.prototype.exrules = function () {\n return this._exrule.map(function (e) { return rrulestr(e.toString()); });\n };\n /**\n * Get list of included datetimes in this recurrence set.\n *\n * @return List of rdates\n */\n RRuleSet.prototype.rdates = function () {\n return this._rdate.map(function (e) { return new Date(e.getTime()); });\n };\n /**\n * Get list of included datetimes in this recurrence set.\n *\n * @return List of exdates\n */\n RRuleSet.prototype.exdates = function () {\n return this._exdate.map(function (e) { return new Date(e.getTime()); });\n };\n RRuleSet.prototype.valueOf = function () {\n var result = [];\n if (!this._rrule.length && this._dtstart) {\n result = result.concat(optionsToString({ dtstart: this._dtstart }));\n }\n this._rrule.forEach(function (rrule) {\n result = result.concat(rrule.toString().split('\\n'));\n });\n this._exrule.forEach(function (exrule) {\n result = result.concat(exrule\n .toString()\n .split('\\n')\n .map(function (line) { return line.replace(/^RRULE:/, 'EXRULE:'); })\n .filter(function (line) { return !/^DTSTART/.test(line); }));\n });\n if (this._rdate.length) {\n result.push(rdatesToString('RDATE', this._rdate, this.tzid()));\n }\n if (this._exdate.length) {\n result.push(rdatesToString('EXDATE', this._exdate, this.tzid()));\n }\n return result;\n };\n /**\n * to generate recurrence field such as:\n * DTSTART:19970902T010000Z\n * RRULE:FREQ=YEARLY;COUNT=2;BYDAY=TU\n * RRULE:FREQ=YEARLY;COUNT=1;BYDAY=TH\n */\n RRuleSet.prototype.toString = function () {\n return this.valueOf().join('\\n');\n };\n /**\n * Create a new RRuleSet Object completely base on current instance\n */\n RRuleSet.prototype.clone = function () {\n var rrs = new RRuleSet(!!this._cache);\n this._rrule.forEach(function (rule) { return rrs.rrule(rule.clone()); });\n this._exrule.forEach(function (rule) { return rrs.exrule(rule.clone()); });\n this._rdate.forEach(function (date) { return rrs.rdate(new Date(date.getTime())); });\n this._exdate.forEach(function (date) { return rrs.exdate(new Date(date.getTime())); });\n return rrs;\n };\n return RRuleSet;\n}(RRule));\nexport { RRuleSet };\nfunction _addRule(rrule, collection) {\n if (!(rrule instanceof RRule)) {\n throw new TypeError(String(rrule) + ' is not RRule instance');\n }\n if (!includes(collection.map(String), String(rrule))) {\n collection.push(rrule);\n }\n}\nfunction _addDate(date, collection) {\n if (!(date instanceof Date)) {\n throw new TypeError(String(date) + ' is not Date instance');\n }\n if (!includes(collection.map(Number), Number(date))) {\n collection.push(date);\n sort(collection);\n }\n}\nfunction rdatesToString(param, rdates, tzid) {\n var isUTC = !tzid || tzid.toUpperCase() === 'UTC';\n var header = isUTC ? \"\".concat(param, \":\") : \"\".concat(param, \";TZID=\").concat(tzid, \":\");\n var dateString = rdates\n .map(function (rdate) { return timeToUntilString(rdate.valueOf(), isUTC); })\n .join(',');\n return \"\".concat(header).concat(dateString);\n}\n//# sourceMappingURL=rruleset.js.map","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && Array.isArray(res))) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(res);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import i18next from 'i18next';\nimport * as enTranslation from '../locales/en.json';\nimport * as frTranslation from '../locales/fr.json';\nimport * as esTranslation from '../locales/es.json';\nimport * as jaTranslation from '../locales/ja.json';\nimport * as deTranslation from '../locales/de.json';\nimport * as svTranslation from '../locales/sv.json';\nimport * as zhCnTranslation from '../locales/zh-cn.json';\nimport * as nlTranslation from '../locales/nl.json';\nimport * as koTranslation from '../locales/ko.json';\n\ni18next.init({\n lng: 'en', // Set default language\n fallbackLng: 'en',\n keySeparator: '.',\n resources: {\n en: {\n translation: enTranslation,\n },\n fr: {\n translation: frTranslation,\n },\n es: {\n translation: esTranslation,\n },\n ja: {\n translation: jaTranslation,\n },\n de: {\n translation: deTranslation,\n },\n sv: {\n translation: svTranslation,\n },\n zh: {\n translation: zhCnTranslation,\n },\n nl: {\n translation: nlTranslation,\n },\n ko: {\n translation: koTranslation,\n },\n // Add more languages as needed\n },\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport default i18next;\n","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","import { htmlDecodeTree, xmlDecodeTree, BinTrieFlags, determineBranch, replaceCodePoint, } from \"entities/lib/decode.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nexport var QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType || (QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nexport default class Tokenizer {\n constructor({ xmlMode = false, decodeEntities = true, }, cbs) {\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.trieIndex = 0;\n this.trieCurrent = 0;\n /** For named entities, the index of the value. For numeric entities, the code point. */\n this.entityResult = 0;\n this.entityExcess = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityTrie = xmlMode ? xmlDecodeTree : htmlDecodeTree;\n }\n reset() {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n }\n write(chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n end() {\n if (this.running)\n this.finish();\n }\n pause() {\n this.running = false;\n }\n resume() {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n /**\n * The current index within all of the written data.\n */\n getIndex() {\n return this.index;\n }\n /**\n * The start of the current section.\n */\n getSectionStart() {\n return this.sectionStart;\n }\n stateText(c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> tags, also decode entities. */\n stateInSpecialTag(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n }\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n isTagStartChar(c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n startSpecial(sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n }\n stateBeforeTagName(c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n const lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttributeName(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateInAttributeName(c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n }\n stateAfterAttributeName(c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateBeforeAttributeValue(c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n handleInAttributeValue(c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n }\n stateInAttributeValueDoubleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n stateInAttributeValueSingleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n stateInAttributeValueNoQuotes(c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n }\n stateBeforeDeclaration(c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n }\n stateInDeclaration(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n }\n stateInSpecialComment(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n const lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n stateBeforeEntity(c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n }\n stateInNamedEntity(c) {\n this.entityExcess += 1;\n this.trieIndex = determineBranch(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n const masked = this.trieCurrent & BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n const valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n const entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n }\n emitNamedEntity() {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n const valueLength = (this.entityTrie[this.entityResult] & BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n }\n stateBeforeNumericEntity(c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n }\n emitNumericEntity(strict) {\n const entityStart = this.index - this.entityExcess - 1;\n const numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint(replaceCodePoint(this.entityResult));\n }\n this.state = this.baseState;\n }\n stateInNumericEntity(c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n }\n stateInHexEntity(c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n }\n allowLegacyEntity() {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse() {\n while (this.shouldContinue()) {\n const c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n }\n finish() {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitPartial(start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n }\n emitCodePoint(cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n }\n}\n//# sourceMappingURL=Tokenizer.js.map","import Tokenizer, { QuoteType } from \"./Tokenizer.js\";\nimport { fromCodePoint } from \"entities/lib/decode.js\";\nconst formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\nconst openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nconst reNameEnd = /\\s|\\//;\nexport class Parser {\n constructor(cbs, options = {}) {\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n ontext(start, endIndex) {\n var _a, _b;\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n }\n /** @internal */\n ontextentity(cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n const index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, fromCodePoint(cp));\n this.startIndex = index;\n }\n isVoidElement(name) {\n return !this.options.xmlMode && voidElements.has(name);\n }\n /** @internal */\n onopentagname(start, endIndex) {\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n }\n emitOpenTag(name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n const impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n const element = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n }\n endOpenTag(isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n }\n /** @internal */\n onopentagend(endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onclosetag(start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n const pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n let count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onselfclosingtag(endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n closeCurrentTag(isOpenImplied) {\n var _a, _b;\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n }\n /** @internal */\n onattribname(start, endIndex) {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n /** @internal */\n onattribdata(start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n /** @internal */\n onattribentity(cp) {\n this.attribvalue += fromCodePoint(cp);\n }\n /** @internal */\n onattribend(quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n getInstructionName(value) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n }\n /** @internal */\n ondeclaration(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onprocessinginstruction(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncomment(start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncdata(start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onend() {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (let index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n reset() {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n }\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n parseComplete(data) {\n this.reset();\n this.end(data);\n }\n getSlice(start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n }\n shiftBuffer() {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n write(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n }\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n end(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n pause() {\n this.tokenizer.pause();\n }\n /**\n * Resumes parsing after `pause` was called.\n */\n resume() {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n }\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n parseChunk(chunk) {\n this.write(chunk);\n }\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n done(chunk) {\n this.end(chunk);\n }\n}\n//# sourceMappingURL=Parser.js.map","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType || (ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nexport function isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexport const Root = ElementType.Root;\n/** Type for Text */\nexport const Text = ElementType.Text;\n/** Type for <? ... ?> */\nexport const Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexport const Comment = ElementType.Comment;\n/** Type for <script> tags */\nexport const Script = ElementType.Script;\n/** Type for <style> tags */\nexport const Style = ElementType.Style;\n/** Type for Any tag */\nexport const Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexport const CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexport const Doctype = ElementType.Doctype;\n","import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n constructor() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get parentNode() {\n return this.parent;\n }\n set parentNode(parent) {\n this.parent = parent;\n }\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get previousSibling() {\n return this.prev;\n }\n set previousSibling(prev) {\n this.prev = prev;\n }\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nextSibling() {\n return this.next;\n }\n set nextSibling(next) {\n this.next = next;\n }\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n cloneNode(recursive = false) {\n return cloneNode(this, recursive);\n }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n /**\n * @param data The content of the data node\n */\n constructor(data) {\n super();\n this.data = data;\n }\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nodeValue() {\n return this.data;\n }\n set nodeValue(data) {\n this.data = data;\n }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Text;\n }\n get nodeType() {\n return 3;\n }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Comment;\n }\n get nodeType() {\n return 8;\n }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n constructor(name, data) {\n super(data);\n this.name = name;\n this.type = ElementType.Directive;\n }\n get nodeType() {\n return 1;\n }\n}\n/**\n * A `Node` that can have children.\n */\nexport class NodeWithChildren extends Node {\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n constructor(children) {\n super();\n this.children = children;\n }\n // Aliases\n /** First child of the node. */\n get firstChild() {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n }\n /** Last child of the node. */\n get lastChild() {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n }\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get childNodes() {\n return this.children;\n }\n set childNodes(children) {\n this.children = children;\n }\n}\nexport class CDATA extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.CDATA;\n }\n get nodeType() {\n return 4;\n }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.Root;\n }\n get nodeType() {\n return 9;\n }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n constructor(name, attribs, children = [], type = name === \"script\"\n ? ElementType.Script\n : name === \"style\"\n ? ElementType.Style\n : ElementType.Tag) {\n super(children);\n this.name = name;\n this.attribs = attribs;\n this.type = type;\n }\n get nodeType() {\n return 1;\n }\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get tagName() {\n return this.name;\n }\n set tagName(name) {\n this.name = name;\n }\n get attributes() {\n return Object.keys(this.attribs).map((name) => {\n var _a, _b;\n return ({\n name,\n value: this.attribs[name],\n namespace: (_a = this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n }\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nexport function isTag(node) {\n return isTagRaw(node);\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nexport function isCDATA(node) {\n return node.type === ElementType.CDATA;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nexport function isText(node) {\n return node.type === ElementType.Text;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nexport function isComment(node) {\n return node.type === ElementType.Comment;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDirective(node) {\n return node.type === ElementType.Directive;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDocument(node) {\n return node.type === ElementType.Root;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nexport function hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n let result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Element(node.name, { ...node.attribs }, children);\n children.forEach((child) => (child.parent = clone));\n if (node.namespace != null) {\n clone.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n }\n if (node[\"x-attribsPrefix\"]) {\n clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n }\n result = clone;\n }\n else if (isCDATA(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new CDATA(children);\n children.forEach((child) => (child.parent = clone));\n result = clone;\n }\n else if (isDocument(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Document(children);\n children.forEach((child) => (child.parent = clone));\n if (node[\"x-mode\"]) {\n clone[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone;\n }\n else if (isDirective(node)) {\n const instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(`Not implemented yet: ${node.type}`);\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nfunction cloneChildren(childs) {\n const children = childs.map((child) => cloneNode(child, true));\n for (let i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","import { ElementType } from \"domelementtype\";\nimport { Element, Text, Comment, CDATA, Document, ProcessingInstruction, } from \"./node.js\";\nexport * from \"./node.js\";\n// Default options\nconst defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nexport class DomHandler {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n constructor(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n onparserinit(parser) {\n this.parser = parser;\n }\n // Resets the handler back to starting state\n onreset() {\n this.dom = [];\n this.root = new Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n }\n // Signals the handler that parsing is done\n onend() {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n }\n onerror(error) {\n this.handleCallback(error);\n }\n onclosetag() {\n this.lastNode = null;\n const elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n }\n onopentag(name, attribs) {\n const type = this.options.xmlMode ? ElementType.Tag : undefined;\n const element = new Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n }\n ontext(data) {\n const { lastNode } = this;\n if (lastNode && lastNode.type === ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n const node = new Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n }\n oncomment(data) {\n if (this.lastNode && this.lastNode.type === ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n const node = new Comment(data);\n this.addNode(node);\n this.lastNode = node;\n }\n oncommentend() {\n this.lastNode = null;\n }\n oncdatastart() {\n const text = new Text(\"\");\n const node = new CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n }\n oncdataend() {\n this.lastNode = null;\n }\n onprocessinginstruction(name, data) {\n const node = new ProcessingInstruction(name, data);\n this.addNode(node);\n }\n handleCallback(error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n }\n addNode(node) {\n const parent = this.tagStack[this.tagStack.length - 1];\n const previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n }\n}\nexport default DomHandler;\n","export const xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? (str, index) => str.codePointAt(index)\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n (c, index) => (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(str) {\n let ret = \"\";\n let lastIdx = 0;\n let match;\n while ((match = xmlReplacer.exec(str)) !== null) {\n const i = match.index;\n const char = str.charCodeAt(i);\n const next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIdx = xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n let match;\n let lastIdx = 0;\n let result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","export const elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map((val) => [val.toLowerCase(), val]));\nexport const attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map((val) => [val.toLowerCase(), val]));\n","/*\n * Module dependencies\n */\nimport * as ElementType from \"domelementtype\";\nimport { encodeXML, escapeAttribute, escapeText } from \"entities\";\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nimport { elementNames, attributeNames } from \"./foreignNames.js\";\nconst unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n const encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML\n : escapeAttribute;\n return Object.keys(attributes)\n .map((key) => {\n var _a, _b;\n const value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return `${key}=\"${encode(value)}\"`;\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nconst singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nexport function render(node, options = {}) {\n const nodes = \"length\" in node ? node : [node];\n let output = \"\";\n for (let i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexport default render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nconst foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nconst foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = { ...opts, xmlMode: false };\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = { ...opts, xmlMode: \"foreign\" };\n }\n let tag = `<${elem.name}`;\n const attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += ` ${attribs}`;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += `</${elem.name}>`;\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return `<${elem.data}>`;\n}\nfunction renderText(elem, opts) {\n var _a;\n let data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? encodeXML(data)\n : escapeText(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return `<![CDATA[${elem.children[0].data}]]>`;\n}\nfunction renderComment(elem) {\n return `<!--${elem.data}-->`;\n}\n","import { isTag, isCDATA, isText, hasChildren, isComment, } from \"domhandler\";\nimport renderHTML from \"dom-serializer\";\nimport { ElementType } from \"domelementtype\";\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nexport function getOuterHTML(node, options) {\n return renderHTML(node, options);\n}\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nexport function getInnerHTML(node, options) {\n return hasChildren(node)\n ? node.children.map((node) => getOuterHTML(node, options)).join(\"\")\n : \"\";\n}\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nexport function getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if (isTag(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if (isCDATA(node))\n return getText(node.children);\n if (isText(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nexport function textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if (hasChildren(node) && !isComment(node)) {\n return textContent(node.children);\n }\n if (isText(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nexport function innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if (hasChildren(node) && (node.type === ElementType.Tag || isCDATA(node))) {\n return innerText(node.children);\n }\n if (isText(node))\n return node.data;\n return \"\";\n}\n//# sourceMappingURL=stringify.js.map","import { isTag, hasChildren, } from \"domhandler\";\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nexport function getChildren(elem) {\n return hasChildren(elem) ? elem.children : [];\n}\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nexport function getParent(elem) {\n return elem.parent || null;\n}\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nexport function getSiblings(elem) {\n const parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n const siblings = [elem];\n let { prev, next } = elem;\n while (prev != null) {\n siblings.unshift(prev);\n ({ prev } = prev);\n }\n while (next != null) {\n siblings.push(next);\n ({ next } = next);\n }\n return siblings;\n}\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nexport function getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nexport function hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nexport function getName(elem) {\n return elem.name;\n}\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nexport function nextElementSibling(elem) {\n let { next } = elem;\n while (next !== null && !isTag(next))\n ({ next } = next);\n return next;\n}\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nexport function prevElementSibling(elem) {\n let { prev } = elem;\n while (prev !== null && !isTag(prev))\n ({ prev } = prev);\n return prev;\n}\n//# sourceMappingURL=traversal.js.map","/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nexport function removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n const childs = elem.parent.children;\n const childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nexport function replaceElement(elem, replacement) {\n const prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n const next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n const parent = (replacement.parent = elem.parent);\n if (parent) {\n const childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nexport function appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n const sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nexport function append(elem, next) {\n removeElement(next);\n const { parent } = elem;\n const currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n const childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nexport function prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n const sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nexport function prepend(elem, prev) {\n removeElement(prev);\n const { parent } = elem;\n if (parent) {\n const childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\n//# sourceMappingURL=manipulation.js.map","import { isTag, hasChildren } from \"domhandler\";\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nexport function filter(test, node, recurse = true, limit = Infinity) {\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nexport function find(test, nodes, recurse, limit) {\n const result = [];\n /** Stack of the arrays we are looking at. */\n const nodeStack = [nodes];\n /** Stack of the indices within the arrays. */\n const indexStack = [0];\n for (;;) {\n // First, check if the current array has any more elements to look at.\n if (indexStack[0] >= nodeStack[0].length) {\n // If we have no more arrays to look at, we are done.\n if (indexStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n const elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && hasChildren(elem) && elem.children.length > 0) {\n /*\n * Add the children to the stack. We are depth-first, so this is\n * the next array we look at.\n */\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nexport function findOneChild(test, nodes) {\n return nodes.find(test);\n}\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nexport function findOne(test, nodes, recurse = true) {\n let elem = null;\n for (let i = 0; i < nodes.length && !elem; i++) {\n const node = nodes[i];\n if (!isTag(node)) {\n continue;\n }\n else if (test(node)) {\n elem = node;\n }\n else if (recurse && node.children.length > 0) {\n elem = findOne(test, node.children, true);\n }\n }\n return elem;\n}\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nexport function existsOne(test, nodes) {\n return nodes.some((checked) => isTag(checked) &&\n (test(checked) || existsOne(test, checked.children)));\n}\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nexport function findAll(test, nodes) {\n const result = [];\n const nodeStack = [nodes];\n const indexStack = [0];\n for (;;) {\n if (indexStack[0] >= nodeStack[0].length) {\n if (nodeStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n const elem = nodeStack[0][indexStack[0]++];\n if (!isTag(elem))\n continue;\n if (test(elem))\n result.push(elem);\n if (elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n//# sourceMappingURL=querying.js.map","import { isTag, isText } from \"domhandler\";\nimport { filter, findOne } from \"./querying.js\";\n/**\n * A map of functions to check nodes against.\n */\nconst Checks = {\n tag_name(name) {\n if (typeof name === \"function\") {\n return (elem) => isTag(elem) && name(elem.name);\n }\n else if (name === \"*\") {\n return isTag;\n }\n return (elem) => isTag(elem) && elem.name === name;\n },\n tag_type(type) {\n if (typeof type === \"function\") {\n return (elem) => type(elem.type);\n }\n return (elem) => elem.type === type;\n },\n tag_contains(data) {\n if (typeof data === \"function\") {\n return (elem) => isText(elem) && data(elem.data);\n }\n return (elem) => isText(elem) && elem.data === data;\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return (elem) => isTag(elem) && value(elem.attribs[attrib]);\n }\n return (elem) => isTag(elem) && elem.attribs[attrib] === value;\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return (elem) => a(elem) || b(elem);\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n const funcs = Object.keys(options).map((key) => {\n const value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nexport function testElement(options, node) {\n const test = compileTest(options);\n return test ? test(node) : true;\n}\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nexport function getElements(options, nodes, recurse, limit = Infinity) {\n const test = compileTest(options);\n return test ? filter(test, nodes, recurse, limit) : [];\n}\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nexport function getElementById(id, nodes, recurse = true) {\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return findOne(getAttribCheck(\"id\", id), nodes, recurse);\n}\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nexport function getElementsByTagName(tagName, nodes, recurse = true, limit = Infinity) {\n return filter(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nexport function getElementsByTagType(type, nodes, recurse = true, limit = Infinity) {\n return filter(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\n//# sourceMappingURL=legacy.js.map","import { hasChildren } from \"domhandler\";\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nexport function removeSubsets(nodes) {\n let idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n const node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (let ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nexport var DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nexport function compareDocumentPosition(nodeA, nodeB) {\n const aParents = [];\n const bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n let current = hasChildren(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = hasChildren(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n const maxIdx = Math.min(aParents.length, bParents.length);\n let idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n const sharedParent = aParents[idx - 1];\n const siblings = sharedParent.children;\n const aSibling = aParents[idx];\n const bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nexport function uniqueSort(nodes) {\n nodes = nodes.filter((node, i, arr) => !arr.includes(node, i + 1));\n nodes.sort((a, b) => {\n const relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\n//# sourceMappingURL=helpers.js.map","import { textContent } from \"./stringify.js\";\nimport { getElementsByTagName } from \"./legacy.js\";\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nexport function getFeed(doc) {\n const feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n const childs = feedRoot.children;\n const feed = {\n type: \"atom\",\n items: getElementsByTagName(\"entry\", childs).map((item) => {\n var _a;\n const { children } = item;\n const entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n const href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n const description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n const pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n const href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n const updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n const childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n const feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: getElementsByTagName(\"item\", feedRoot.children).map((item) => {\n const { children } = item;\n const entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n const pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n const updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nconst MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nconst MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return getElementsByTagName(\"media:content\", where).map((elem) => {\n const { attribs } = elem;\n const media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (const attrib of MEDIA_KEYS_STRING) {\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (const attrib of MEDIA_KEYS_INT) {\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return getElementsByTagName(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse = false) {\n return textContent(getElementsByTagName(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse = false) {\n const val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","import { Parser } from \"./Parser.js\";\nexport { Parser } from \"./Parser.js\";\nimport { DomHandler, } from \"domhandler\";\nexport { DomHandler, \n// Old name for DomHandler\nDomHandler as DefaultHandler, } from \"domhandler\";\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nexport function parseDocument(data, options) {\n const handler = new DomHandler(undefined, options);\n new Parser(handler, options).end(data);\n return handler.root;\n}\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nexport function parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nexport function createDomStream(callback, options, elementCallback) {\n const handler = new DomHandler(callback, options, elementCallback);\n return new Parser(handler, options);\n}\nexport { default as Tokenizer, } from \"./Tokenizer.js\";\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexport * as ElementType from \"domelementtype\";\nimport { getFeed } from \"domutils\";\nexport { getFeed } from \"domutils\";\nconst parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nexport function parseFeed(feed, options = parseFeedDefaultOptions) {\n return getFeed(parseDOM(feed, options));\n}\nexport * as DomUtils from \"domutils\";\n//# sourceMappingURL=index.js.map","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexport { isPlainObject };\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup <img srcset=\"here\">\n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","// for now just expose the builtin process global from node.js\nmodule.exports = global.process;\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n\n let aside = text => text\n let mark = text => text\n let highlight = text => text\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n if (terminalHighlight) {\n highlight = text => terminalHighlight(text)\n }\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n let maxWidth = String(end).length\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n if (line.length > 160) {\n let padding = 20\n let subLineStart = Math.max(0, this.column - padding)\n let subLineEnd = Math.max(\n this.column + padding,\n this.endColumn + padding\n )\n let subLine = line.slice(subLineStart, subLineEnd)\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line\n .slice(0, Math.min(this.column - 1, padding - 1))\n .replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(subLine) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(line) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n return ' ' + aside(gutter) + highlight(line)\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nfunction sourceOffset(inputCSS, position) {\n // Not all custom syntaxes support `offset` in `source.start` and `source.end`\n if (\n position &&\n typeof position.offset !== 'undefined'\n ) {\n return position.offset;\n }\n\n let column = 1\n let line = 1\n let offset = 0\n\n for (let i = 0; i < inputCSS.length; i++) {\n if (line === position.line && column === position.column) {\n offset = i\n break\n }\n\n if (inputCSS[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return offset\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n /* c8 ignore next 3 */\n markClean() {\n this[isClean] = true\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let stringRepresentation = this.source.input.css.slice(\n sourceOffset(this.source.input.css, this.source.start),\n sourceOffset(this.source.input.css, this.source.end)\n )\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n positionInside(index) {\n let column = this.source.start.column\n let line = this.source.start.line\n let offset = sourceOffset(this.source.input.css, this.source.start)\n let end = offset + index\n\n for (let i = offset; i < end; i++) {\n if (this.source.input.css[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n }\n : {\n column: start.column + 1,\n line: start.line\n }\n\n if (opts.word) {\n let stringRepresentation = this.source.input.css.slice(\n sourceOffset(this.source.input.css, this.source.start),\n sourceOffset(this.source.input.css, this.source.end)\n )\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index)\n end = this.positionInside(\n index + opts.word.length,\n )\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n }\n } else if (typeof opts.endIndex === 'number') {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { column: start.column + 1, line: start.line }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Node = require('./node')\nlet { isClean, my } = require('./symbols')\n\nlet AtRule, parse, Root, Rule\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markTreeDirty(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markTreeDirty(i)\n }\n }\n}\n\nclass Container extends Node {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (typeof nodes === 'undefined') {\n nodes = []\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector || nodes.selectors) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markTreeDirty(i)\n\n if (!i.raws) i.raws = {}\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n","'use strict'\n\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n let uriMatch = text.match(charsetUri) || text.match(uri)\n if (uriMatch) {\n return decodeURIComponent(text.substr(uriMatch[0].length))\n }\n\n let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri)\n if (baseUriMatch) {\n return fromBase64(text.substr(baseUriMatch[0].length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet { nanoid } = require('nanoid/non-secure')\nlet { isAbsolute, resolve } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\nlet terminalHighlight = require('./terminal-highlight')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let endColumn, endLine, result\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, line, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n\n get from() {\n return this.file || this.id\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Input = require('./input')\nlet PreviousMap = require('./previous-map')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { dirname, relative, resolve, sep } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.originalCSS = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = null\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.startsWith('# sourceMappingURL=')) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n })\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let last, lines\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.originalCSS, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, content, escape, next, quote\n let currentToken, escaped, escapePos, n, prev\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet tokenizer = require('./tokenize')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let prev, token, type\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().startsWith('!') && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().startsWith('!')) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet Container = require('./container')\nlet Input = require('./input')\nlet Parser = require('./parser')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\nlet Document = require('./document')\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nlet Result = require('./result')\nlet Root = require('./root')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\nlet warnOnce = require('./warn-once')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nconst Result = require('./result')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n } else {\n map.clearAnnotation()\n this.result.css = map.css\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet Document = require('./document')\nlet LazyResult = require('./lazy-result')\nlet NoWorkResult = require('./no-work-result')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.49'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n !this.plugins.length &&\n !opts.parser &&\n !opts.stringifier &&\n !opts.syntax\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Container = require('./container')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet Document = require('./document')\nlet fromJSON = require('./fromJSON')\nlet Input = require('./input')\nlet LazyResult = require('./lazy-result')\nlet list = require('./list')\nlet Node = require('./node')\nlet parse = require('./parse')\nlet Processor = require('./processor')\nlet Result = require('./result.js')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet stringify = require('./stringify')\nlet Warning = require('./warning')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n const tagAllowed = function (name) {\n return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;\n };\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (tagAllowed(tag) && !options.allowVulnerableTags) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = classes;\n\n if (Array.isArray(classes)) {\n const globRegex = [];\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if (!tagAllowed(name) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n skipMap[depth] = true;\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n // We want the contents but not this tag\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // If the value is empty, check if the attribute is in the allowedEmptyAttributes array.\n // If it is not in the allowedEmptyAttributes array, and it is a known non-boolean attribute, delete it\n // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n if (value === '' && (!options.allowedEmptyAttributes.includes(a)) &&\n (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n if (options.parseStyleAttributes) {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}', { map: false });\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.warn('Failed to parse \"' + name + ' {' + value + '}' + '\", If you\\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');\n }\n delete frame.attribs[a];\n return;\n }\n } else if (options.allowedStyles) {\n throw new Error('allowedStyles option cannot be used together with parseStyleAttributes: false.');\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n } else if (options.allowedEmptyAttributes.includes(a)) {\n result += '=\"\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'completelyDiscard' && !tagAllowed(tag)) {\n text = '';\n } else if ((options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else {\n const escaped = escapeHtml(text, false);\n if (options.textFilter && !addedText) {\n result += options.textFilter(escaped, tag);\n } else if (!addedText) {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name, isImplied) {\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter && options.exclusiveFilter(frame)) {\n result = result.substr(0, frame.tagPosition);\n return;\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (\n // Already output />\n options.selfClosing.indexOf(name) !== -1 ||\n // Escaped tag, closing tag is implied\n (isImplied && !tagAllowed(name) && [ 'escape', 'recursiveEscape' ].indexOf(options.disallowedTagsMode) >= 0)\n ) {\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '</' + name + '>';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(/</g, '<')\n .replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('<!--');\n if (firstIndex === -1) {\n break;\n }\n const lastIndex = href.indexOf('-->', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'main', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n // Tags that cannot be boolean\n nonBooleanAttributes: [\n 'abbr', 'accept', 'accept-charset', 'accesskey', 'action',\n 'allow', 'alt', 'as', 'autocapitalize', 'autocomplete',\n 'blocking', 'charset', 'cite', 'class', 'color', 'cols',\n 'colspan', 'content', 'contenteditable', 'coords', 'crossorigin',\n 'data', 'datetime', 'decoding', 'dir', 'dirname', 'download',\n 'draggable', 'enctype', 'enterkeyhint', 'fetchpriority', 'for',\n 'form', 'formaction', 'formenctype', 'formmethod', 'formtarget',\n 'headers', 'height', 'hidden', 'high', 'href', 'hreflang',\n 'http-equiv', 'id', 'imagesizes', 'imagesrcset', 'inputmode',\n 'integrity', 'is', 'itemid', 'itemprop', 'itemref', 'itemtype',\n 'kind', 'label', 'lang', 'list', 'loading', 'low', 'max',\n 'maxlength', 'media', 'method', 'min', 'minlength', 'name',\n 'nonce', 'optimum', 'pattern', 'ping', 'placeholder', 'popover',\n 'popovertarget', 'popovertargetaction', 'poster', 'preload',\n 'referrerpolicy', 'rel', 'rows', 'rowspan', 'sandbox', 'scope',\n 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src',\n 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'style',\n 'tabindex', 'target', 'title', 'translate', 'type', 'usemap',\n 'value', 'width', 'wrap',\n // Event handlers\n 'onauxclick', 'onafterprint', 'onbeforematch', 'onbeforeprint',\n 'onbeforeunload', 'onbeforetoggle', 'onblur', 'oncancel',\n 'oncanplay', 'oncanplaythrough', 'onchange', 'onclick', 'onclose',\n 'oncontextlost', 'oncontextmenu', 'oncontextrestored', 'oncopy',\n 'oncuechange', 'oncut', 'ondblclick', 'ondrag', 'ondragend',\n 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',\n 'ondrop', 'ondurationchange', 'onemptied', 'onended',\n 'onerror', 'onfocus', 'onformdata', 'onhashchange', 'oninput',\n 'oninvalid', 'onkeydown', 'onkeypress', 'onkeyup',\n 'onlanguagechange', 'onload', 'onloadeddata', 'onloadedmetadata',\n 'onloadstart', 'onmessage', 'onmessageerror', 'onmousedown',\n 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout',\n 'onmouseover', 'onmouseup', 'onoffline', 'ononline', 'onpagehide',\n 'onpageshow', 'onpaste', 'onpause', 'onplay', 'onplaying',\n 'onpopstate', 'onprogress', 'onratechange', 'onreset', 'onresize',\n 'onrejectionhandled', 'onscroll', 'onscrollend',\n 'onsecuritypolicyviolation', 'onseeked', 'onseeking', 'onselect',\n 'onslotchange', 'onstalled', 'onstorage', 'onsubmit', 'onsuspend',\n 'ontimeupdate', 'ontoggle', 'onunhandledrejection', 'onunload',\n 'onvolumechange', 'onwaiting', 'onwheel'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n allowedEmptyAttributes: [\n 'alt'\n ],\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n parseStyleAttributes: true\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\n };\n};\n","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,v=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",h=+e;return(o.utc(v).valueOf()-(h-=h%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString(\"en-US\",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a).$set(\"millisecond\",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,\"minute\")}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_fr=n(e.dayjs)}(this,(function(e){\"use strict\";function n(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=n(e),i={name:\"fr\",weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_je_ve_sa\".split(\"_\"),months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinal:function(e){return\"\"+e+(1===e?\"er\":\"\")}};return t.default.locale(i,null,!0),i}));","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_es=o(e.dayjs)}(this,(function(e){\"use strict\";function o(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var s=o(e),d={name:\"es\",monthsShort:\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\"),weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mi_ju_vi_sá\".split(\"_\"),months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),weekStart:1,formats:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY H:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY H:mm\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},ordinal:function(e){return e+\"º\"}};return s.default.locale(d,null,!0),d}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_de=n(e.dayjs)}(this,(function(e){\"use strict\";function n(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=n(e),a={s:\"ein paar Sekunden\",m:[\"eine Minute\",\"einer Minute\"],mm:\"%d Minuten\",h:[\"eine Stunde\",\"einer Stunde\"],hh:\"%d Stunden\",d:[\"ein Tag\",\"einem Tag\"],dd:[\"%d Tage\",\"%d Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[\"%d Monate\",\"%d Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[\"%d Jahre\",\"%d Jahren\"]};function i(e,n,t){var i=a[t];return Array.isArray(i)&&(i=i[n?0:1]),i.replace(\"%d\",e)}var r={name:\"de\",weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),ordinal:function(e){return e+\".\"},weekStart:1,yearStart:4,formats:{LTS:\"HH:mm:ss\",LT:\"HH:mm\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i}};return t.default.locale(r,null,!0),r}));","!function(e,a){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=a(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],a):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_nl=a(e.dayjs)}(this,(function(e){\"use strict\";function a(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var d=a(e),n={name:\"nl\",weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"zo_ma_di_wo_do_vr_za\".split(\"_\"),months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),ordinal:function(e){return\"[\"+e+(1===e||8===e||e>=20?\"ste\":\"de\")+\"]\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"een minuut\",mm:\"%d minuten\",h:\"een uur\",hh:\"%d uur\",d:\"een dag\",dd:\"%d dagen\",M:\"een maand\",MM:\"%d maanden\",y:\"een jaar\",yy:\"%d jaar\"}};return d.default.locale(n,null,!0),n}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_sv=t(e.dayjs)}(this,(function(e){\"use strict\";function t(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var a=t(e),d={name:\"sv\",weekdays:\"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag\".split(\"_\"),weekdaysShort:\"sön_mån_tis_ons_tor_fre_lör\".split(\"_\"),weekdaysMin:\"sö_må_ti_on_to_fr_lö\".split(\"_\"),months:\"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekStart:1,yearStart:4,ordinal:function(e){var t=e%10;return\"[\"+e+(1===t||2===t?\"a\":\"e\")+\"]\"},formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [kl.] HH:mm\",LLLL:\"dddd D MMMM YYYY [kl.] HH:mm\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd D MMM YYYY HH:mm\"},relativeTime:{future:\"om %s\",past:\"för %s sedan\",s:\"några sekunder\",m:\"en minut\",mm:\"%d minuter\",h:\"en timme\",hh:\"%d timmar\",d:\"en dag\",dd:\"%d dagar\",M:\"en månad\",MM:\"%d månader\",y:\"ett år\",yy:\"%d år\"}};return a.default.locale(d,null,!0),d}));","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_ja=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"ja\",weekdays:\"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日\".split(\"_\"),weekdaysShort:\"日_月_火_水_木_金_土\".split(\"_\"),weekdaysMin:\"日_月_火_水_木_金_土\".split(\"_\"),months:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e){return e+\"日\"},formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日 HH:mm\",LLLL:\"YYYY年M月D日 dddd HH:mm\",l:\"YYYY/MM/DD\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日(ddd) HH:mm\"},meridiem:function(e){return e<12?\"午前\":\"午後\"},relativeTime:{future:\"%s後\",past:\"%s前\",s:\"数秒\",m:\"1分\",mm:\"%d分\",h:\"1時間\",hh:\"%d時間\",d:\"1日\",dd:\"%d日\",M:\"1ヶ月\",MM:\"%dヶ月\",y:\"1年\",yy:\"%d年\"}};return t.default.locale(d,null,!0),d}));","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e,_){return\"W\"===_?e+\"周\":e+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(e,_){var t=100*e+_;return t<600?\"凌晨\":t<900?\"早上\":t<1100?\"上午\":t<1300?\"中午\":t<1800?\"下午\":\"晚上\"}};return t.default.locale(d,null,!0),d}));","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_ko=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var d=_(e),t={name:\"ko\",weekdays:\"일요일_월요일_화요일_수요일_목요일_금요일_토요일\".split(\"_\"),weekdaysShort:\"일_월_화_수_목_금_토\".split(\"_\"),weekdaysMin:\"일_월_화_수_목_금_토\".split(\"_\"),months:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),monthsShort:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),ordinal:function(e){return e},formats:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY년 MMMM D일\",LLL:\"YYYY년 MMMM D일 A h:mm\",LLLL:\"YYYY년 MMMM D일 dddd A h:mm\",l:\"YYYY.MM.DD.\",ll:\"YYYY년 MMMM D일\",lll:\"YYYY년 MMMM D일 A h:mm\",llll:\"YYYY년 MMMM D일 dddd A h:mm\"},meridiem:function(e){return e<12?\"오전\":\"오후\"},relativeTime:{future:\"%s 후\",past:\"%s 전\",s:\"몇 초\",m:\"1분\",mm:\"%d분\",h:\"한 시간\",hh:\"%d시간\",d:\"하루\",dd:\"%d일\",M:\"한 달\",MM:\"%d달\",y:\"일 년\",yy:\"%d년\"}};return d.default.locale(t,null,!0),t}));","import { DataResponseError, DataResponseReturnType } from '@/common/types';\nimport { Configuration, EmailName, Message } from '@nylas/core';\nimport dayjs from 'dayjs';\nimport { RRule, Weekday } from 'rrule';\nimport i18next from '@/utils/i18n';\nimport sanitizeHtml from 'sanitize-html';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport 'dayjs/locale/fr';\nimport 'dayjs/locale/es';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/nl';\nimport 'dayjs/locale/sv';\nimport 'dayjs/locale/ja';\nimport 'dayjs/locale/zh-cn';\nimport 'dayjs/locale/ko';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nconst sanitizeOptions = {\n textFilter: function (text) {\n return text.replace(/&/g, '&'); // Replace encoded '&' back to its raw form\n },\n};\n\nexport function getTimezoneOffset(timezone: string) {\n return dayjs().tz(timezone).format('Z');\n}\n\nexport function sanitize(text: string) {\n return sanitizeHtml(text, sanitizeOptions);\n}\nexport function format(first: string, middle: string, last: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\n// Utility function to remove undefined values from an object\nexport function removeUndefined(obj: any) {\n return Object.keys(obj).reduce((acc: { [key: string]: any }, key) => {\n if (obj[key] !== undefined) {\n acc[key] = obj[key];\n }\n return acc;\n }, {});\n}\n\nexport function debug(...args: any[]) {\n if (window && window.localStorage && window.localStorage.getItem('debug')) {\n console.groupCollapsed(...args);\n const error = new Error();\n error.name = 'Debug';\n console.debug(error.stack);\n console.groupEnd();\n }\n}\n\nexport function error(...args: any[]) {\n console.error(...args);\n}\n\nexport function uniqueID() {\n return Math.random().toString(36).substr(2, 9);\n}\n\nexport function formatEventName(propKey: string) {\n return propKey.toString().replace(/^on/, '');\n}\n\n// Utility function to format a date as a time if it is today, or a short\n// date format if it is not toda, using the new Intl API. For example:\n// If the date is today, it will return \"12:00 PM\"\n// If the date is not today, it will return \"Jan 4, 23\"\nexport function formatDateTime(dateTimestamp: number) {\n const date = new Date(dateTimestamp * 1000);\n const now = new Date();\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n if (date >= today) {\n // If the day is not today, we return the month and day (e.g. Jan 4)\n const formatter = new Intl.DateTimeFormat('default', {\n hour: 'numeric',\n minute: 'numeric',\n hour12: true,\n });\n return formatter.format(date);\n } else {\n // If the day is today, we only return the time (e.g. 12:00 PM) without\n // the month and day\n const formatter = new Intl.DateTimeFormat('default', {\n month: 'short',\n day: 'numeric',\n });\n return formatter.format(date);\n }\n}\n\nexport function formatRecipient(recipient: EmailName) {\n return recipient.name ? `${recipient.name} - ${recipient.email}` : recipient.email;\n}\n\n// Formats the particpants of a thread into a string\nexport function formatParticipants(participants: EmailName[], meEmail: string = '', messageCount: number = 1, max: number = 3) {\n const me = participants.find(p => p.email?.toLowerCase() === meEmail.toLowerCase());\n const others = participants.filter(p => p.email?.toLowerCase() !== meEmail.toLowerCase());\n const othersCount = others.length;\n const othersString = others\n .slice(0, max)\n .map(r => r.name || r.email)\n .join(', ');\n if (othersCount === 0) {\n return me ? 'me' : '';\n } else if (othersCount === 1) {\n return me && messageCount > 1 ? `me, ${othersString}` : othersString;\n } else if (othersCount === 2) {\n return me ? `me, ${othersString}` : `${othersString}`;\n } else {\n return me ? `me, ${othersString}, +${othersCount - max}` : `${othersString}, +${othersCount - max}`;\n }\n}\n\n// https://blog.webdevsimplified.com/2020-07/relative-time-format/\nconst DIVISIONS: Array<{\n amount: number;\n name: Intl.RelativeTimeFormatUnit;\n}> = [\n { amount: 60, name: 'seconds' },\n { amount: 60, name: 'minutes' },\n { amount: 24, name: 'hours' },\n { amount: 7, name: 'days' },\n { amount: 4.34524, name: 'weeks' },\n { amount: 12, name: 'months' },\n { amount: Number.POSITIVE_INFINITY, name: 'years' },\n];\n\nexport const formatTimeAgo = (date: Date) => {\n const formatter = new Intl.RelativeTimeFormat(undefined, {\n numeric: 'auto',\n });\n const now = new Date();\n let duration = (date.getTime() - now.getTime()) / 1000;\n\n for (let i = 0; i <= DIVISIONS.length; i++) {\n const division = DIVISIONS[i];\n if (Math.abs(duration) < division.amount) {\n return formatter.format(Math.round(duration), division.name);\n }\n duration /= division.amount;\n }\n};\n\nexport function getLastDayOfMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\n\nexport function getFirstDayOfMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nexport function getFirstHourOfDay(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0);\n}\n\nexport function isSameDay(date1: Date, date2: Date) {\n return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate();\n}\n\nexport function isSameDayTimezone(timeslot: Date, comparisonDate: Date, timezoneStr: string): boolean {\n // Convert both dates to the selected timezone\n const timeslotInTimezone = dayjs(timeslot).tz(timezoneStr);\n const comparisonDateInTimezone = dayjs(comparisonDate);\n\n // Compare the year, month, and day in the specified timezone\n return (\n timeslotInTimezone.year() === comparisonDateInTimezone.year() &&\n timeslotInTimezone.month() === comparisonDateInTimezone.month() &&\n timeslotInTimezone.date() === comparisonDateInTimezone.date()\n );\n}\n\nexport function formatBookedEventDate(date: Date, timezoneStr: string, language: string = 'en-US') {\n // return dayjs(date).tz(timezoneStr).format('dddd, MMMM D, YYYY');\n return dayjs(date).tz(timezoneStr).locale(language).format('dddd, MMMM D, YYYY');\n}\n\nexport function isSameMonth(date1: Date, date2: Date) {\n return date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth();\n}\n\nexport function toTitleCase(str: string) {\n return str.replace(/\\w\\S*/g, txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());\n}\n\nexport function formatFolderName(folderName: string) {\n return folderName.replace('CATEGORY_', '').replace(/_/g, ' ');\n}\n\nexport function detectHTMLOrPlainText(html: string) {\n const regex = /<[^>]*>/g;\n return regex.test(html) ? 'html' : 'plain';\n}\n\nexport function detectIfMessageIsHTML(message: Message) {\n const headers = message.headers;\n const contentType = (headers && headers.find(h => h.name === 'Content-Type')?.value) || '';\n const contentDisposition = (headers && headers.find(h => h.name === 'Content-Disposition')?.value) || '';\n\n // If the content type is HTML, then we know it's HTML\n if (contentType.includes('text/html')) {\n return true;\n }\n\n // If the content disposition is inline, then we know it's HTML\n if (contentDisposition.includes('inline')) {\n return true;\n }\n\n // If the body is HTML, then we know it's HTML\n if (message.body && detectHTMLOrPlainText(message.body) === 'html') {\n return true;\n }\n\n // Otherwise, we assume it's plain text\n return false;\n}\n\nexport function parsePlainTextToHTML(text: string) {\n const paragraphs = text.split('\\n').filter(line => line.trim().length > 0);\n const wrappedParagraphs = paragraphs.map(paragraph => `<p>${paragraph}</p>`);\n let body = wrappedParagraphs.join('');\n\n // Replace links with anchor tags\n const regex = /((?:https?|ftp):\\/\\/[^\\s]+)/g;\n body = body.replace(regex, '<a href=\"$1\">$1</a>');\n\n return body;\n}\n\nexport function htmlToPlainText(html: string) {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n return doc.body.textContent || '';\n}\n\nexport function getStartHourOfDay(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0);\n}\n\nexport function getEndHourOfDay(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23);\n}\n\n// Zero pad a number to two digits\nexport function get24HourTime(date: Date) {\n return `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`;\n}\n\nexport function getUserTimezone() {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n}\n\nexport const getEventRecurrence = (recurrence: any): string | null => {\n if (recurrence.includes('RRULE:')) {\n recurrence = recurrence.replace('RRULE:', '');\n return RRule.fromString(recurrence).toText();\n }\n return RRule.fromString(recurrence).toText();\n};\n\n// Validate time format part\nexport const validateTimeFormatInput = text => {\n if (text === '') {\n return true;\n }\n const regexPattern = /^(0[0-9]|1[0-2]|^[0-9])(:[0-5][0-9][ap]m?|:[0-5][0-9]|:[0-5]|:)?$/i;\n return regexPattern.test(text);\n};\n// Validate exact time format\nexport const validateExactTimeFormat = input => {\n const regex = /^(0[1-9]|1[0-2]):([0-5][0-9])(am|pm)$/i;\n return regex.test(input);\n};\n\nexport function roundToNearest15Minutes(time: dayjs.Dayjs | null = null) {\n let currentTime = dayjs(); // Get the current time\n if (time) {\n currentTime = time;\n }\n\n // Calculate the remainder when dividing the minutes by 15\n const minuteRemainder = currentTime.minute() % 15;\n\n let roundedTime;\n\n if (minuteRemainder !== 0) {\n // Round up to the next 15-minute interval\n roundedTime = currentTime.add(15 - minuteRemainder, 'minute');\n } else {\n // Keep the current time as it is\n roundedTime = currentTime;\n }\n\n return roundedTime;\n}\n\nexport function autocompleteTimeFormat(input) {\n const currentTime = dayjs(); // Get the current time\n\n let completedTime = '';\n\n // Extract the hour and minute components\n const [inputHour, inputMinuteWithAmPm] = input.split(':');\n // Autocomplete the hour component\n if (inputHour.length === 1) {\n completedTime += '0' + inputHour;\n } else if (inputHour.length === 2) {\n completedTime += inputHour;\n }\n\n completedTime += ':';\n\n // Autocomplete the minute component\n if (inputMinuteWithAmPm === undefined || inputMinuteWithAmPm == '') {\n completedTime += '00';\n } else {\n if (inputMinuteWithAmPm.length === 1) {\n completedTime += inputMinuteWithAmPm + '0';\n } else {\n completedTime += inputMinuteWithAmPm;\n }\n }\n\n // Set the am/pm indicator based on the provided input\n const amPmIndicator = completedTime.slice(-1); // Extract the am/pm indicator from input\n\n if (amPmIndicator === 'a') {\n completedTime += 'm';\n }\n if (amPmIndicator === 'p') {\n completedTime += 'm';\n }\n\n // Set the am/pm indicator based on the current time if no indecator present inside input\n if (completedTime.slice(-1) !== 'm') {\n if (completedTime.split(':')[0] == '00') {\n completedTime += 'am';\n } else {\n completedTime += currentTime.format('a');\n }\n }\n\n return completedTime;\n}\n\nexport function formatTime(time: string) {\n return dayjs(time, 'hh:mma');\n}\n\nexport function formatTimezone(date: Date, timezone: string) {\n return dayjs(date).tz(timezone).format('hh:mm A'); // 12-hour format with AM/PM\n}\n\nexport function convertTo12HourFormat(timeStr: string) {\n // Split the time into hours and minutes\n const [hoursInitial, minutes] = timeStr.split(':').map(num => parseInt(num, 10));\n let hours = hoursInitial;\n\n // Determine AM or PM\n const ampm = hours >= 12 ? 'pm' : 'am';\n\n // Convert hours from 24-hour to 12-hour format\n hours = hours % 12;\n hours = hours ? hours : 12; // the hour '0' should be '12'\n\n // Format hours and minutes to ensure two digits\n const formattedHours = hours.toString().padStart(2, '0');\n const formattedMinutes = minutes.toString().padStart(2, '0');\n\n // Construct the 12-hour format time string\n return `${formattedHours}:${formattedMinutes}${ampm}`;\n}\n\nexport function convertTo24HourFormat(timeStr: string) {\n const [time, modifier] = timeStr.split(/(am|pm)/i);\n const [hoursInitial, minutes] = time.split(':').map(num => parseInt(num, 10));\n let hours = hoursInitial;\n\n if (modifier.toLowerCase() === 'pm' && hours < 12) {\n hours += 12;\n } else if (modifier.toLowerCase() === 'am' && hours === 12) {\n hours = 0;\n }\n\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;\n}\n\nexport function timeToMinutes(time) {\n const [hours, minutesPart] = time.match(/(\\d+):(\\d+)(am|pm)/).slice(1);\n let minutes = parseInt(hours, 10) * 60 + parseInt(minutesPart, 10);\n if (time.includes('pm') && parseInt(hours, 10) < 12) minutes += 12 * 60;\n if (time.includes('am') && parseInt(hours, 10) === 12) minutes -= 12 * 60;\n return minutes;\n}\n\nexport function minutesToTime(minutes) {\n const h = Math.floor(minutes / 60);\n const m = minutes % 60;\n return `${h}:${m < 10 ? '0' : ''}${m}`;\n}\n\nexport function getBrowser() {\n const ua = navigator.userAgent;\n\n // Check for Chrome (also in Edge and Opera)\n const isChrome = /Chrome/.test(ua) && /Google Inc/.test(navigator.vendor);\n\n // Check for Safari (also in Chrome and Opera)\n const isSafari = /Safari/.test(ua) && /Apple Computer/.test(navigator.vendor);\n\n // Check for Firefox\n const isFirefox = /Firefox/.test(ua);\n\n // Check for Internet Explorer\n const isIE = /Trident/.test(ua);\n\n // Check for Edge (the legacy version)\n const isEdgeLegacy = /Edge/.test(ua);\n\n // Check for Edge (the Chromium-based version)\n const isEdgeChromium = isChrome && /Edg/.test(ua);\n\n if (isEdgeChromium) return 'Edge (Chromium)';\n if (isChrome) return 'Chrome';\n if (isSafari) return 'Safari';\n if (isFirefox) return 'Firefox';\n if (isIE) return 'Internet Explorer';\n if (isEdgeLegacy) return 'Edge (Legacy)';\n\n return 'Unknown';\n}\n\n/**\n * Utility function to create a response object with data and error.\n * @param data any The data to return.\n * @param error DataResponseError The error to return.\n */\nexport function dataResponse<T = any>(data: T, error: DataResponseError | null = null): DataResponseReturnType<T> {\n if (error) {\n return [null, error];\n }\n return [data, null];\n}\n\n/**\n * Utility function to parse a preview link with placeholders.\n * @param link string A preview link with placeholders.\n * @param config Partial<Configuration> The configuration object to use to replace the placeholders.\n * @returns string The preview link with the placeholders replaced.\n */\nexport function parsePreviewLink(link: string, config?: Partial<Configuration>) {\n // Replacements\n const replacements = {\n 'config.id': config?.id,\n 'id': config?.id,\n 'slug': config?.slug,\n };\n\n // Replace the placeholders with the actual values\n Object.keys(replacements).forEach(key => {\n if (replacements[key]) {\n link = link.replace(`{${key}}`, replacements[key]);\n }\n });\n\n return link;\n}\n\nexport function isNonPrintableKey(event) {\n // Check for special keys like backspace, enter, escape, arrow keys, function keys, etc.\n if (\n event.keyCode < 48 || // Before 0\n (event.keyCode > 90 && event.keyCode < 96) || // Between Z and numpad 0\n (event.keyCode > 111 && event.keyCode < 186) || // Between numpad 9 and semi-colon (;)\n event.keyCode > 222 || // After single quote (')\n event.keyCode === 32 || // Spacebar\n event.keyCode === 91 || // Left Window key or left ⌘ key\n event.keyCode === 92 || // Right Window key or right ⌘ key\n event.keyCode === 93 || // Select key / Menu key or right ⌘ key\n (event.keyCode >= 112 && event.keyCode <= 123) || // Function (F1-F12) keys\n (event.keyCode >= 37 && event.keyCode <= 40) // Arrow keys\n ) {\n return true;\n }\n\n // Check for Ctrl, Alt, Shift, CapsLock, etc., by ignoring if any of these are pressed\n if (event.ctrlKey || event.altKey || event.metaKey) {\n return true;\n }\n\n // Check if Shift is combined with a number or special character\n const shiftSpecialChars = [\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57, // Numbers (0-9)\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 219,\n 220,\n 221,\n 222, // Special characters (;=,-./` and []\\')\n ];\n\n if (event.shiftKey && shiftSpecialChars.includes(event.keyCode)) {\n return false;\n }\n\n // If none of the above, it's a character, number, or special character typed without shift\n return false;\n}\n\nexport function addDaysToCurrentDate(startDate, days) {\n const currentDate = new Date(startDate);\n currentDate.setDate(currentDate.getDate() + days);\n currentDate.setHours(23); // Sets the hour to 11 PM\n currentDate.setMinutes(59); // Sets the minute to 59\n currentDate.setSeconds(0); // Optionally, sets the seconds to 0\n currentDate.setMilliseconds(0); // Optionally, sets the milliseconds to 0\n return currentDate;\n}\n\nexport function addMinutesToCurrentTime(startDate, minutes) {\n const currentDate = new Date(startDate);\n currentDate.setMinutes(currentDate.getMinutes() + minutes);\n return currentDate;\n}\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function mergeDeep(target, source) {\n if (Array.isArray(target) && Array.isArray(source) && target !== source) {\n // Custom handling for participants array\n if (target.some(item => item.is_organizer) && source.some(item => item.is_organizer)) {\n // Ensure all base participants are not organizers if there's an organizer in the selected config\n target = target.map(participant => ({ ...participant, is_organizer: false }));\n } else if (!source.some(item => item.is_organizer)) {\n // Make sure there is at least one organizer in the base if none in selected\n let foundOrganizer = false;\n target = target.map(participant => {\n if (!foundOrganizer) {\n foundOrganizer = true;\n return { ...participant, is_organizer: true };\n }\n return participant;\n });\n }\n // Merge each element of the arrays by index\n return target\n .map((item, index) => {\n return source[index] ? mergeDeep(item, source[index]) : item;\n })\n .concat(source.slice(target.length));\n } else if (isObject(target) && isObject(source)) {\n const output = Object.assign({}, target);\n Object.keys(source).forEach(key => {\n if (isObject(source[key])) {\n if (!(key in target)) {\n output[key] = source[key];\n } else {\n output[key] = mergeDeep(target[key], source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n return output;\n }\n return source;\n}\n\nexport function convertMinutesToHoursAndMinutes(minutes: number): string {\n if (minutes < 60) {\n return `${minutes} ${t('time.minutes')}`;\n }\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n const hoursText = t(`time.${hours > 1 ? 'hours' : 'hour'}`);\n const minutesText = remainingMinutes ? `${remainingMinutes} ${t(`time.${remainingMinutes > 1 ? 'minutes' : 'minute'}`)}` : '';\n return `${hours} ${hoursText} ${minutesText}`;\n}\n\nexport function checkForMissingSlots(slots: string[], host: HTMLElement) {\n slots.forEach(slot => {\n const slotElement = host.shadowRoot?.querySelector(`slot[name=\"${slot}\"]`) as HTMLSlotElement;\n const slotNodes = slotElement?.assignedNodes();\n if (slotNodes && slotNodes.length === 0) {\n console.warn(`${host.nodeName} No content provided for slot=\"${slot}\".`);\n }\n });\n}\n\nexport function compactStringToUUIDs(compactString: string) {\n // Decode the Base64 string to a Buffer\n const buffer = Buffer.from(compactString, 'base64');\n\n // Extract each UUID's bytes (16 bytes each)\n const uuidBytes1 = buffer.slice(0, 16);\n const uuidBytes2 = buffer.slice(16, 32);\n // Extract the remainder as the salt\n const salt = buffer.slice(32);\n\n // Function to convert a buffer to UUID string format\n function bufferToUUID(buffer) {\n const hex = buffer.toString('hex');\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n }\n\n // Convert buffers to UUID strings\n const uuid1 = bufferToUUID(uuidBytes1);\n const uuid2 = bufferToUUID(uuidBytes2);\n\n // Convert salt buffer to URL-safe base64 without padding\n const b64EncodedSalt = salt.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n\n return [uuid1, uuid2, b64EncodedSalt];\n}\n\nexport const t = key => {\n return i18next.t(key);\n};\n\nexport const capitalizeFirstLetter = (str: string) => {\n if (typeof str !== 'string') return '';\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nexport const translateMonth = (month: string) => {\n return t(`months.${month}`);\n};\n\nexport const isValidUrl = (url: string) => {\n try {\n new URL(url);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nexport const isValidImage = (url: string) => {\n return new Promise((resolve, reject) => {\n if (url === '') return resolve(true);\n\n const img = new Image();\n img.src = url;\n img.onerror = () => {\n reject(false);\n };\n img.onload = () => {\n resolve(true);\n };\n });\n};\n\ninterface CustomOptions {\n frequency?: 'daily' | 'weekly' | 'monthly' | 'yearly';\n interval?: number;\n daysOfWeek?: string[]; // Example: ['MO', 'WE']\n monthlySameDate?: boolean;\n end?: {\n type: 'never' | 'on' | 'after';\n date?: string; // ISO date string for 'on'\n count?: number; // Number of occurrences for 'after'\n };\n}\n\nexport function generateRRule(\n selectedDate: string, // ISO date string\n option: 'none' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'custom',\n endDate?: string, // ISO date string for predefined rules\n customOptions?: CustomOptions, // Custom recurrence options\n timezoneStr: string = 'UTC', // Timezone string\n): string | null {\n const daysOfWeek: Record<number, Weekday> = {\n 0: RRule.SU,\n 1: RRule.MO,\n 2: RRule.TU,\n 3: RRule.WE,\n 4: RRule.TH,\n 5: RRule.FR,\n 6: RRule.SA,\n };\n\n // Parse the dates in the specified timezone\n const selectedDay = dayjs.tz(selectedDate, timezoneStr).toDate();\n const dayOfWeek = daysOfWeek[selectedDay.getDay()]; // Get the day of the week (e.g., RRule.TH for Thursday)\n const date = selectedDay.getDate();\n const occurrenceInMonth = Math.ceil(date / 7); // Determine the occurrence in the month (e.g., 2nd Thursday)\n\n const untilDate = endDate ? dayjs.tz(endDate, timezoneStr).toDate() : undefined;\n\n switch (option) {\n case 'none': {\n return null;\n }\n\n case 'daily': {\n return new RRule({\n freq: RRule.DAILY,\n until: untilDate,\n }).toString();\n }\n\n case 'weekly': {\n return new RRule({\n freq: RRule.WEEKLY,\n byweekday: dayOfWeek,\n until: untilDate,\n }).toString();\n }\n\n case 'monthly': {\n return new RRule({\n freq: RRule.MONTHLY,\n byweekday: [dayOfWeek.nth(occurrenceInMonth)],\n until: untilDate,\n }).toString();\n }\n\n case 'yearly': {\n return new RRule({\n freq: RRule.YEARLY,\n dtstart: selectedDay,\n until: untilDate,\n }).toString();\n }\n\n case 'custom': {\n if (!customOptions) {\n throw new Error('Custom options must be provided for custom recurrence.');\n }\n\n const byweekday =\n customOptions.frequency === 'weekly'\n ? customOptions.daysOfWeek?.map(day => RRule[day as keyof typeof RRule] as Weekday) // Map selected days to RRule weekdays\n : customOptions.frequency === 'monthly' && !customOptions.monthlySameDate\n ? [dayOfWeek.nth(occurrenceInMonth)]\n : undefined;\n\n const bymonthday = customOptions.frequency === 'monthly' && customOptions.monthlySameDate ? dayjs.tz(selectedDate, timezoneStr).date() : undefined;\n\n return new RRule({\n freq: {\n daily: RRule.DAILY,\n weekly: RRule.WEEKLY,\n monthly: RRule.MONTHLY,\n yearly: RRule.YEARLY,\n }[customOptions.frequency || 'daily'],\n interval: customOptions.interval || 1,\n byweekday, // Use byweekday array for weekly or monthly (non-same-date) cases\n bymonthday, // Use bymonthday for monthly-same-date case\n until: customOptions.end?.type === 'on' ? dayjs.tz(customOptions.end.date!, timezoneStr).toDate() : undefined,\n count: customOptions.end?.type === 'after' ? customOptions.end.count : undefined,\n }).toString();\n }\n\n default: {\n throw new Error(`Invalid option: ${option}`);\n }\n }\n}\n\nexport function getCalendarRange(\n currentDate: string, // ISO date string\n viewType: 'week' | 'month' | 'day',\n): { startTime: number; endTime: number } {\n const current = dayjs(currentDate).startOf('day'); // Ensure the date starts at midnight\n let startTime: dayjs.Dayjs;\n let endTime: dayjs.Dayjs;\n\n switch (viewType) {\n case 'week': {\n // Start of the week (Sunday)\n startTime = current.startOf('week');\n // End of the week (Saturday, inclusive)\n endTime = current.endOf('week');\n break;\n }\n\n case 'month': {\n startTime = current.startOf('month').startOf('week'); // Start from Sunday of the first week in the month\n endTime = current.endOf('month').endOf('week'); // End on Saturday of the last week + 7 days\n break;\n }\n\n case 'day': {\n // For a day view, just use the current day\n startTime = current.startOf('day');\n endTime = current.endOf('day');\n break;\n }\n\n default: {\n throw new Error('Invalid viewType. Use \"week\", \"month\", or \"day\".');\n }\n }\n\n return {\n startTime: startTime.unix(), // Convert to timestamp\n endTime: endTime.unix(), // Convert to timestamp\n };\n}\n"],"version":3}
|