{"version":3,"file":"index.esm.CicZO8jS.js","sources":["../../../../../../../../node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/await_block.js","../../../../../../../../node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/spread.js","../../../../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../../../../../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js","../../../../../../../../packages/common/src/utils/getAppContext/get-app-context.ts","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/dynamic-renderer/dynamic-renderer.helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/dynamic-renderer/dynamic-renderer.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/constants/target.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-class-prop-name.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/button/button.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/context/builder.context.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/context/components.context.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-block-component-options.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/omit.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/logger.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/is-browser.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/search/search.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/is-iframe.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/is-editing.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/track/helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/evaluate/helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/evaluate/browser-runtime/browser.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/nullable.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/is-node-runtime.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/evaluate/should-force-browser-runtime-in-node.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/evaluate/choose-eval.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/evaluate/evaluate.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/fast-clone.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/set.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/transform-block.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-processed-block.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/is-previewing.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/register-component.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/register.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-builder-search-params/index.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/constants/sdk-version.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/sdk-headers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/url.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/cookie.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/uuid.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/sessionId.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/localStorage.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/visitorId.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/log-fetch.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/track/index.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/is-from-trusted-host.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/scripts/init-editing.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/subscribe-to-editor.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/ab-tests.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/canTrack.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/flatten.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/types/api-version.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-content/generate-content-url.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-content/index.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/camel-to-kebab-case.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/block/animator.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/helpers/css.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/transform-style-property.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-style.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/block/block.helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/constants/device-sizes.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/inlined-styles.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/block/components/block-styles.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/event-handler-name.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-block-actions-handler.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-block-actions.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/transform-block-properties.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-block-properties.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/block/components/block-wrapper.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/awaiter.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/block/components/interactive-element.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/block/components/component-ref/component-ref.helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/block/components/component-ref/component-ref.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/block/components/repeated-block.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/block/block.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/blocks/blocks-wrapper.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/blocks/blocks.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/columns/helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/columns/columns.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/fragment/fragment.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/image/image.helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/image/image.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/section/section.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/accordion/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/accordion/helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/accordion/accordion.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/button/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/columns/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/fragment/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/image/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/section/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/slot/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/slot/slot.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/symbol/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/tabs/tabs.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/text/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/text/text.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/custom-code/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/custom-code/custom-code.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/embed/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/embed/helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/embed/embed.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/form/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/get-env.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/form/form.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/input/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/input/input.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/select/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/select/select.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/submit-button/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/submit-button/submit-button.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/textarea/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/form/textarea/textarea.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/img/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/img/img.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/video/component-info.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/video/video.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/constants/extra-components.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/constants/builder-registered-components.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/content-variants/inlined-fns.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/content-variants/helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/inlined-script.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/functions/track/interaction.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/content/components/styles.helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/content/components/enable-editor.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/content/components/styles.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/content/content.helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/content/content.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/components/content-variants/content-variants.svelte","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/symbol/symbol.helpers.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk-svelte@3.0.0_svelte@4.2.18/node_modules/@builder.io/sdk-svelte/lib/browser/blocks/symbol/symbol.svelte","../../../../../../../../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/Tokenizer.js","../../../../../../../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js","../../../../../../../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js","../../../../../../../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js","../../../../../../../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js","../../../../../../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js","../../../../../../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js","../../../../../../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js","../../../../../../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js","../../../../../../../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js","../../../../../../../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js","../../../../../../../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/stringify.js","../../../../../../../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/traversal.js","../../../../../../../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/manipulation.js","../../../../../../../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/querying.js","../../../../../../../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/legacy.js","../../../../../../../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/helpers.js","../../../../../../../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/feeds.js","../../../../../../../../node_modules/.pnpm/domutils@3.1.0/node_modules/domutils/lib/index.js","../../../../../../../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/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.js","../../../../../../../../node_modules/.pnpm/parse-srcset@1.0.2/node_modules/parse-srcset/src/parse-srcset.js","../../../../../../../../node_modules/.pnpm/picocolors@1.0.1/node_modules/picocolors/picocolors.browser.js","../../../../../../__vite-browser-external","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/css-syntax-error.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/symbols.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/stringifier.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/stringify.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/node.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/declaration.js","../../../../../../../../node_modules/.pnpm/nanoid@3.3.7/node_modules/nanoid/non-secure/index.cjs","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/previous-map.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/input.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/map-generator.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/comment.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/container.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/document.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/warning.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/result.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/tokenize.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/at-rule.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/root.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/list.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/rule.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/parser.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/parse.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/lazy-result.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/no-work-result.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/processor.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/fromJSON.js","../../../../../../../../node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/postcss.js","../../../../../../../../node_modules/.pnpm/sanitize-html@2.13.0/node_modules/sanitize-html/index.js","../../../../../../../../packages/common/src/config/consts/misc.ts","../../../../../../../../node_modules/.pnpm/tslib@1.14.1/node_modules/tslib/tslib.es6.js","../../../../../../../../node_modules/.pnpm/hash-sum@2.0.0/node_modules/hash-sum/hash-sum.js","../../../../../../../../node_modules/.pnpm/@builder.io+sdk@5.0.0_encoding@0.1.13/node_modules/@builder.io/sdk/dist/index.esm.js"],"sourcesContent":["import { is_promise } from './utils.js';\nimport { check_outros, group_outros, transition_in, transition_out } from './transitions.js';\nimport { flush } from './scheduler.js';\nimport { get_current_component, set_current_component } from './lifecycle.js';\n\n/**\n * @template T\n * @param {Promise<T>} promise\n * @param {import('./private.js').PromiseInfo<T>} info\n * @returns {boolean}\n */\nexport function handle_promise(promise, info) {\n\tconst token = (info.token = {});\n\t/**\n\t * @param {import('./private.js').FragmentFactory} type\n\t * @param {0 | 1 | 2} index\n\t * @param {number} [key]\n\t * @param {any} [value]\n\t * @returns {void}\n\t */\n\tfunction update(type, index, key, value) {\n\t\tif (info.token !== token) return;\n\t\tinfo.resolved = value;\n\t\tlet child_ctx = info.ctx;\n\t\tif (key !== undefined) {\n\t\t\tchild_ctx = child_ctx.slice();\n\t\t\tchild_ctx[key] = value;\n\t\t}\n\t\tconst block = type && (info.current = type)(child_ctx);\n\t\tlet needs_flush = false;\n\t\tif (info.block) {\n\t\t\tif (info.blocks) {\n\t\t\t\tinfo.blocks.forEach((block, i) => {\n\t\t\t\t\tif (i !== index && block) {\n\t\t\t\t\t\tgroup_outros();\n\t\t\t\t\t\ttransition_out(block, 1, 1, () => {\n\t\t\t\t\t\t\tif (info.blocks[i] === block) {\n\t\t\t\t\t\t\t\tinfo.blocks[i] = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcheck_outros();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinfo.block.d(1);\n\t\t\t}\n\t\t\tblock.c();\n\t\t\ttransition_in(block, 1);\n\t\t\tblock.m(info.mount(), info.anchor);\n\t\t\tneeds_flush = true;\n\t\t}\n\t\tinfo.block = block;\n\t\tif (info.blocks) info.blocks[index] = block;\n\t\tif (needs_flush) {\n\t\t\tflush();\n\t\t}\n\t}\n\tif (is_promise(promise)) {\n\t\tconst current_component = get_current_component();\n\t\tpromise.then(\n\t\t\t(value) => {\n\t\t\t\tset_current_component(current_component);\n\t\t\t\tupdate(info.then, 1, info.value, value);\n\t\t\t\tset_current_component(null);\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tset_current_component(current_component);\n\t\t\t\tupdate(info.catch, 2, info.error, error);\n\t\t\t\tset_current_component(null);\n\t\t\t\tif (!info.hasCatch) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\t// if we previously had a then/catch block, destroy it\n\t\tif (info.current !== info.pending) {\n\t\t\tupdate(info.pending, 0);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\tif (info.current !== info.then) {\n\t\t\tupdate(info.then, 1, info.value, promise);\n\t\t\treturn true;\n\t\t}\n\t\tinfo.resolved = /** @type {T} */ (promise);\n\t}\n}\n\n/** @returns {void} */\nexport function update_await_block_branch(info, ctx, dirty) {\n\tconst child_ctx = ctx.slice();\n\tconst { resolved } = info;\n\tif (info.current === info.then) {\n\t\tchild_ctx[info.value] = resolved;\n\t}\n\tif (info.current === info.catch) {\n\t\tchild_ctx[info.error] = resolved;\n\t}\n\tinfo.block.p(child_ctx, dirty);\n}\n","/** @returns {{}} */\nexport function get_spread_update(levels, updates) {\n\tconst update = {};\n\tconst to_null_out = {};\n\tconst accounted_for = { $$scope: 1 };\n\tlet i = levels.length;\n\twhile (i--) {\n\t\tconst o = levels[i];\n\t\tconst n = updates[i];\n\t\tif (n) {\n\t\t\tfor (const key in o) {\n\t\t\t\tif (!(key in n)) to_null_out[key] = 1;\n\t\t\t}\n\t\t\tfor (const key in n) {\n\t\t\t\tif (!accounted_for[key]) {\n\t\t\t\t\tupdate[key] = n[key];\n\t\t\t\t\taccounted_for[key] = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlevels[i] = n;\n\t\t} else {\n\t\t\tfor (const key in o) {\n\t\t\t\taccounted_for[key] = 1;\n\t\t\t}\n\t\t}\n\t}\n\tfor (const key in to_null_out) {\n\t\tif (!(key in update)) update[key] = undefined;\n\t}\n\treturn update;\n}\n\nexport function get_spread_object(spread_props) {\n\treturn typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import { setContext, getContext } from 'svelte';\n\ntype AppConctextType = {\n\tcurrentDir?: 'ltr' | 'rtl';\n\tcurrentLocale?: string;\n\tisReverseProxy?: boolean;\n\tprodDomain?: string | undefined;\n\ttaxonomy?: { [key: string]: string };\n};\n\nconst APP_CONTEXT_KEY = 'app-context';\n\n/**\n * Sets the application context with the provided context object.\n *\n * @param context - The context object to be set, of type `AppConctextType`.\n */\nexport const setAppContext = (context: AppConctextType) => {\n\tconst currentContext = getAppContext();\n\tcontext = { ...currentContext, ...context };\n\tsetContext(APP_CONTEXT_KEY, context);\n};\n\n/**\n * Retrieves the application context.\n *\n * @returns The application context object.\n */\nexport const getAppContext = (): AppConctextType => {\n\treturn getContext(APP_CONTEXT_KEY);\n};\n","/**\n * https://developer.mozilla.org/en-US/docs/Glossary/Empty_element\n */\nconst EMPTY_HTML_ELEMENTS = new Set(['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr']);\nexport const isEmptyElement = (tagName) => {\n return typeof tagName === 'string' && EMPTY_HTML_ELEMENTS.has(tagName.toLowerCase());\n};\n","export function filterAttrs(attrs = {}, prefix, isEvent) {\n const result = {};\n for (const attr in attrs) {\n if (!attrs[attr])\n continue;\n if (isEvent && !attr.startsWith(prefix))\n continue;\n const eventName = isEvent ? attr.replace(prefix, '') : attr;\n result[eventName] = attrs[attr];\n }\n return result;\n}\n/**\n * Svelte SDK: workaround to dynamically provide event handlers to components/elements.\n * https://svelte.dev/repl/1246699e266f41218a8eeb45b9b58b54?version=3.24.1\n */\nexport function setAttrs(node, attrs = {}) {\n const attrKeys = Object.keys(attrs);\n /**\n *\n * @param {string} attr\n */\n const setup = (attr) => node.addEventListener(attr, attrs[attr]);\n /**\n *\n * @param {string} attr\n */\n const teardown = (attr) => node.removeEventListener(attr, attrs[attr]);\n attrKeys.forEach(setup);\n return {\n update(attrs = {}) {\n const attrKeys = Object.keys(attrs);\n attrKeys.forEach(teardown);\n attrKeys.forEach(setup);\n },\n destroy() {\n attrKeys.forEach(teardown);\n }\n };\n}\n","<script context=\"module\"></script>\n\n<script>import { isEmptyElement } from \"./dynamic-renderer.helpers\";\nimport { setAttrs } from \"../../blocks/helpers\";\nexport let TagName;\nexport let attributes;\nexport let actionAttributes;\n</script>\n\n{#if !isEmptyElement(TagName)}\n {#if typeof TagName === \"string\"}\n <svelte:element\n this={TagName}\n {...attributes}\n use:setAttrs={actionAttributes}><slot /></svelte:element\n >\n {:else}\n <svelte:component this={TagName} {...attributes} {...actionAttributes}\n ><slot /></svelte:component\n >\n {/if}\n{:else}\n <svelte:element\n this={TagName}\n {...attributes}\n use:setAttrs={actionAttributes}\n />\n{/if}","/** This file should be overriden for each framework. Ideally this would be implemented in Mitosis. */\nexport const TARGET = 'svelte';\n","import { TARGET } from '../constants/target';\nexport const getClassPropName = () => {\n switch (TARGET) {\n case 'react':\n case 'reactNative':\n case 'rsc':\n return 'className';\n case 'svelte':\n case 'vue':\n case 'solid':\n case 'qwik':\n case 'angular':\n return 'class';\n }\n};\n","<script>import DynamicRenderer from \"../../components/dynamic-renderer/dynamic-renderer.svelte\";\nimport { getClassPropName } from \"../../functions/get-class-prop-name\";\nimport { filterAttrs } from \"../helpers\";\nexport let attributes = undefined;\nexport let link = undefined;\nexport let openLinkInNewTab = undefined;\nexport let builderLinkComponent = undefined;\nexport let text = undefined;\nfunction attrs() {\n return {\n ...filterAttrs(attributes, \"on:\", false),\n [getClassPropName()]: `${link ? \"\" : \"builder-button\"} ${attributes[getClassPropName()] || \"\"}`,\n ...(link\n ? {\n href: link,\n target: openLinkInNewTab ? \"_blank\" : undefined,\n role: \"link\",\n }\n : {\n role: \"button\",\n }),\n };\n}\n</script>\n\n<DynamicRenderer\n attributes={attrs()}\n TagName={link ? builderLinkComponent || \"a\" : \"button\"}\n actionAttributes={filterAttrs(attributes, \"on:\", true)}\n >{text}</DynamicRenderer\n>","const key = Symbol();\nimport { writable } from \"svelte/store\";\nexport default {\n Builder: writable({\n content: null,\n context: {},\n localState: undefined,\n rootSetState() { },\n rootState: {},\n apiKey: null,\n apiVersion: undefined,\n componentInfos: {},\n inheritedStyles: {},\n BlocksWrapper: \"div\",\n BlocksWrapperProps: {},\n nonce: \"\",\n }),\n key,\n};\n","const key = Symbol();\nexport default {\n Components: { registeredComponents: {} },\n key,\n};\n","export function getBlockComponentOptions(block) {\n return {\n ...block.component?.options,\n ...block.options\n };\n}\n","export function omit(obj, ...values) {\n const newObject = Object.assign({}, obj);\n for (const key of values) {\n delete newObject[key];\n }\n return newObject;\n}\n","export const MSG_PREFIX = '[Builder.io]: ';\nexport const logger = {\n log: (...message) => console.log(MSG_PREFIX, ...message),\n error: (...message) => console.error(MSG_PREFIX, ...message),\n warn: (...message) => console.warn(MSG_PREFIX, ...message),\n debug: (...message) => console.debug(MSG_PREFIX, ...message)\n};\n","export const get = (obj, path, defaultValue) => {\n const result = String.prototype.split.call(path, /[,[\\].]+?/).filter(Boolean).reduce((res, key) => res !== null && res !== undefined ? res[key] : res, obj);\n return result === undefined || result === obj ? defaultValue : result;\n};\n","export function isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n","export const convertSearchParamsToQueryObject = (searchParams) => {\n const options = {};\n searchParams.forEach((value, key) => {\n options[key] = value;\n });\n return options;\n};\nexport const normalizeSearchParams = (searchParams) => searchParams instanceof URLSearchParams ? convertSearchParamsToQueryObject(searchParams) : searchParams;\nexport const getSearchString = (search) => {\n if (typeof search === 'string') {\n return search;\n }\n else if (search instanceof URLSearchParams) {\n return search.toString();\n }\n return new URLSearchParams(search).toString();\n};\n","import { isBrowser } from './is-browser';\nexport function isIframe() {\n return isBrowser() && window.self !== window.top;\n}\n","import { TARGET } from '../constants/target';\nimport { getSearchString } from '../helpers/search/search';\nimport { isIframe } from './is-iframe';\nexport function isEditing(search) {\n return isIframe() && (TARGET === 'reactNative' ||\n // accessing window.location.search is safe here because `isIframe()` is only `true` if we're in a browser.\n getSearchString(search || window.location.search).indexOf('builder.frameEditing=') !== -1);\n}\n","import { TARGET } from '../../constants/target';\nimport { isBrowser } from '../is-browser';\nconst getLocation = () => {\n if (TARGET === 'reactNative') {\n return null;\n }\n else if (isBrowser()) {\n const parsedLocation = new URL(location.href);\n // IE11 bug with parsed path being empty string\n // causes issues with our user targeting\n if (parsedLocation.pathname === '') {\n parsedLocation.pathname = '/';\n }\n return parsedLocation;\n }\n else {\n console.warn('Cannot get location for tracking in non-browser environment');\n return null;\n }\n};\nconst getUserAgent = () => typeof navigator === 'object' && navigator.userAgent || '';\nexport const getUserAttributes = () => {\n const userAgent = getUserAgent();\n const isMobile = {\n Android() {\n return userAgent.match(/Android/i);\n },\n BlackBerry() {\n return userAgent.match(/BlackBerry/i);\n },\n iOS() {\n return userAgent.match(/iPhone|iPod/i);\n },\n Opera() {\n return userAgent.match(/Opera Mini/i);\n },\n Windows() {\n return userAgent.match(/IEMobile/i) || userAgent.match(/WPDesktop/i);\n },\n any() {\n return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows() || TARGET === 'reactNative';\n }\n };\n const isTablet = userAgent.match(/Tablet|iPad/i);\n const url = getLocation();\n return {\n urlPath: url?.pathname,\n host: url?.host || url?.hostname,\n device: isTablet ? 'tablet' : isMobile.any() ? 'mobile' : 'desktop'\n };\n};\n","import { isBrowser } from '../is-browser';\nimport { isEditing } from '../is-editing';\nimport { getUserAttributes } from '../track/helpers';\nexport const getFunctionArguments = ({ builder, context, event, state }) => {\n return Object.entries({\n state,\n Builder: builder,\n // legacy\n builder,\n context,\n event\n });\n};\nexport const getBuilderGlobals = () => ({\n isEditing: isEditing(),\n isBrowser: isBrowser(),\n isServer: !isBrowser(),\n getUserAttributes: () => getUserAttributes()\n});\nexport const parseCode = (code, { isExpression = true }) => {\n // Be able to handle simple expressions like \"state.foo\" or \"1 + 1\"\n // as well as full blocks like \"var foo = \"bar\"; return foo\"\n const useReturn = \n // we disable this for cases where we definitely don't want a return\n isExpression && !(code.includes(';') || code.includes(' return ') || code.trim().startsWith('return '));\n const useCode = useReturn ? `return (${code});` : code;\n return useCode;\n};\nexport function flattenState({ rootState, localState, rootSetState }) {\n return new Proxy(rootState, {\n get: (target, prop) => {\n if (localState && prop in localState) {\n return localState[prop];\n }\n const val = target[prop];\n if (typeof val === 'object' && val !== null) {\n return flattenState({\n rootState: val,\n localState: undefined,\n rootSetState: rootSetState ? subState => {\n target[prop] = subState;\n rootSetState(target);\n } : undefined\n });\n }\n return val;\n },\n set: (target, prop, value) => {\n if (localState && prop in localState) {\n throw new Error('Writing to local state is not allowed as it is read-only.');\n }\n target[prop] = value;\n rootSetState?.(target);\n return true;\n }\n });\n}\n","import { flattenState, getFunctionArguments } from '../helpers';\nexport const runInBrowser = ({ code, builder, context, event, localState, rootSetState, rootState }) => {\n const functionArgs = getFunctionArguments({\n builder,\n context,\n event,\n state: flattenState({\n rootState,\n localState,\n rootSetState\n })\n });\n return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));\n};\n","export const checkIsDefined = (maybeT) => maybeT !== null && maybeT !== undefined;\n","import { checkIsDefined } from '../helpers/nullable';\n/**\n * Identifies node runtime\n */\nexport function isNodeRuntime() {\n return typeof process !== 'undefined' && checkIsDefined(process?.versions?.node);\n}\n","import { logger } from '../../helpers/logger';\nimport { isNodeRuntime } from '../is-node-runtime';\nexport const shouldForceBrowserRuntimeInNode = ({ shouldLogWarning }) => {\n if (!isNodeRuntime())\n return false;\n const isArm64 = process.arch === 'arm64';\n const isNode20 = process.version.startsWith('v20');\n const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes('--no-node-snapshot');\n if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {\n if (shouldLogWarning) {\n logger.log(`Skipping usage of \\`isolated-vm\\` to avoid crashes in Node v20 on an arm64 machine.\n If you would like to use the \\`isolated-vm\\` package on this machine, please provide the \\`NODE_OPTIONS=--no-node-snapshot\\` config to your Node process.\n See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.\n `);\n }\n return true;\n }\n return false;\n};\n","/*\n * THIS FILE IS EXPECTED TO EXIST WITH THIS EXACT NAME BY SUBSEQUENT BUNDLE STEPS THAT TRANSFORM IT.\n * DO NOT RENAME THIS FILE.\n */\nimport { isBrowser } from '../is-browser';\nimport { runInBrowser } from './browser-runtime/browser';\n/**\n * THIS IS A MAGICAL IMPORT. It is aliased by the build process of every SDK configuration, so that\n * it points to the correct runtime for that configuration, which are expected to live exactly at:\n * - ./browser-runtime/index.js\n * - ./node-runtime/index.js\n * - ./edge-runtime/index.js\n *\n * We have code in `/output-generation` that does this aliasing, and is re-used by each SDK.\n * Also, each individual `tsconfig.json` aliases this import to the browser runtime so that the\n * types can be resolved correctly.\n */\nimport { evaluator } from '../../../browser/functions/evaluate/browser-runtime/index.js';\nimport { shouldForceBrowserRuntimeInNode } from './should-force-browser-runtime-in-node';\n/**\n * Even though we have separate runtimes for browser/node/edge, sometimes frameworks will\n * end up sending the server runtime code to the browser (most notably in dev mode).\n */\nexport const chooseBrowserOrServerEval = (args) => isBrowser() || shouldForceBrowserRuntimeInNode({\n shouldLogWarning: true\n}) ? runInBrowser(args) : evaluator(args);\n","import { logger } from '../../helpers/logger';\nimport { get } from '../get';\nimport { chooseBrowserOrServerEval } from './choose-eval';\nimport { getBuilderGlobals, parseCode } from './helpers';\n/**\n * handles multi-level gets on state: `state.x.y.z`\n * does not handle bracket notation\n * see https://regexr.com/87a9j\n */\nconst STATE_GETTER_REGEX = /^(return )?(\\s*)?state(?<getPath>(\\.\\w+)+)(\\s*);?$/;\n/**\n * Handles multi-level gets on state transpiled by rollup with virtual index.\n * see https://regexr.com/87ai4\n */\nconst VIRTUAL_INDEX_REGEX = /(\\s)*var(\\s)+_virtual_index(\\s)*=(\\s)*state(?<getPath>(\\.\\w+)+)(\\s*);?(\\s)*return(\\s)*_virtual_index(\\s)*/;\nexport const getSimpleExpressionGetPath = (code) => {\n return STATE_GETTER_REGEX.exec(code.trim())?.groups?.getPath?.slice(1) || VIRTUAL_INDEX_REGEX.exec(code.trim())?.groups?.getPath?.slice(1);\n};\nexport function evaluate({ code, context, localState, rootState, rootSetState, event, isExpression = true }) {\n if (code.trim() === '') {\n return undefined;\n }\n /**\n * For very simple expressions like \"state.foo\" we can optimize by skipping\n * the executor altogether.\n * We try not to take many risks with this optimizations, so we only do it for\n * `state.{path}` expressions.\n */\n const getPath = getSimpleExpressionGetPath(code.trim());\n if (getPath) {\n return get({\n ...rootState,\n ...localState\n }, getPath);\n }\n const args = {\n code: parseCode(code, {\n isExpression\n }),\n builder: getBuilderGlobals(),\n context,\n event,\n rootSetState,\n rootState,\n localState\n };\n try {\n const newEval = chooseBrowserOrServerEval(args);\n return newEval;\n }\n catch (e) {\n logger.error('Failed code evaluation: ' + e.message, {\n code\n });\n return undefined;\n }\n}\n","/**\n * We need to serialize values to a string in case there are Proxy values, as is the case with SolidJS etc.\n */\nexport const fastClone = (obj) => JSON.parse(JSON.stringify(obj));\n","/**\n * Minimal implementation of lodash's _.set\n * https://lodash.com/docs/4.17.15#set\n *\n * See ./set.test.ts for usage examples\n */\nexport const set = (obj, _path, value) => {\n if (Object(obj) !== obj) {\n return obj;\n }\n const path = Array.isArray(_path) ? _path : _path.toString().match(/[^.[\\]]+/g);\n path.slice(0, -1).reduce((a, c, i) => Object(a[c]) === a[c] ? a[c] : a[c] = Math.abs(Number(path[i + 1])) >> 0 === +path[i + 1] ? [] : {}, obj)[path[path.length - 1]] = value;\n return obj;\n};\n","// Noope way for targets to make modifications to the block object if/as needed\nexport function transformBlock(block) {\n return block;\n}\n","import { TARGET } from '../constants/target';\nimport { omit } from '../helpers/omit';\nimport { evaluate } from './evaluate/index';\nimport { fastClone } from './fast-clone';\nimport { set } from './set';\nimport { transformBlock } from './transform-block';\n// Deep clone a block but without cloning any child blocks\nexport function deepCloneWithConditions(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map((item) => deepCloneWithConditions(item));\n }\n if (obj['@type'] === '@builder.io/sdk:Element') {\n return obj;\n }\n const clonedObj = {};\n for (const key in obj) {\n if (key !== 'meta' && Object.prototype.hasOwnProperty.call(obj, key)) {\n clonedObj[key] = deepCloneWithConditions(obj[key]);\n }\n }\n return clonedObj;\n}\nconst IS_SDK_WITHOUT_CACHED_PROCESSED_BLOCK = ['svelte', 'vue', 'angular', 'qwik', 'solid'].includes(TARGET);\nconst getCopy = (block) => {\n if (IS_SDK_WITHOUT_CACHED_PROCESSED_BLOCK) {\n const copy = fastClone(block);\n const copied = {\n ...copy,\n properties: {\n ...copy.properties\n },\n actions: {\n ...copy.actions\n }\n };\n return copied;\n }\n else {\n const copy = deepCloneWithConditions(omit(block, 'children', 'meta'));\n return {\n ...copy,\n properties: {\n ...copy.properties\n },\n actions: {\n ...copy.actions\n },\n children: block.children,\n meta: block.meta\n };\n }\n};\nconst evaluateBindings = ({ block, context, localState, rootState, rootSetState }) => {\n if (!block.bindings) {\n return block;\n }\n const copied = getCopy(block);\n for (const binding in block.bindings) {\n const expression = block.bindings[binding];\n const value = evaluate({\n code: expression,\n localState,\n rootState,\n rootSetState,\n context\n });\n set(copied, binding, value);\n }\n return copied;\n};\nexport function getProcessedBlock({ block, context, shouldEvaluateBindings, localState, rootState, rootSetState }) {\n const transformedBlock = transformBlock(block);\n if (shouldEvaluateBindings) {\n return evaluateBindings({\n block: transformedBlock,\n localState,\n rootState,\n rootSetState,\n context\n });\n }\n else {\n return transformedBlock;\n }\n}\n","import { getSearchString } from '../helpers/search/search';\nimport { isBrowser } from './is-browser';\nexport function isPreviewing(_search) {\n const search = _search || (isBrowser() ? window.location.search : undefined);\n /**\n * If this function is called on the server without an explicit `search` argument,\n * then it can't check if the user is previewing, and will return `false`.\n */\n if (!search) {\n return false;\n }\n const normalizedSearch = getSearchString(search);\n return Boolean(normalizedSearch.indexOf('builder.preview=') !== -1);\n}\n","export const createRegisterComponentMessage = (info) => ({\n type: 'builder.registerComponent',\n data: serializeIncludingFunctions(info)\n});\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst serializeFn = (fnValue) => {\n const fnStr = fnValue.toString().trim();\n // we need to account for a few different fn syntaxes:\n // 1. `function name(args) => {code}`\n // 2. `name(args) => {code}`\n // 3. `(args) => {}`\n // 4. `args => {}`\n const isArrowWithoutParens = /^[a-zA-Z0-9_]+\\s*=>/i.test(fnStr);\n const appendFunction = !fnStr.startsWith('function') && !fnStr.startsWith('(') && !isArrowWithoutParens;\n return `return (${appendFunction ? 'function ' : ''}${fnStr}).apply(this, arguments)`;\n};\nexport function serializeIncludingFunctions(info) {\n return JSON.parse(JSON.stringify(info, (key, value) => {\n if (typeof value === 'function') {\n return serializeFn(value);\n }\n return value;\n }));\n}\n","import { isBrowser } from './is-browser';\nimport { serializeIncludingFunctions } from './register-component';\nconst registry = {};\nexport function register(type, info) {\n if (type === 'plugin') {\n info = serializeIncludingFunctions(info);\n }\n let typeList = registry[type];\n if (!typeList) {\n typeList = registry[type] = [];\n }\n typeList.push(info);\n if (isBrowser()) {\n const message = {\n type: 'builder.register',\n data: {\n type,\n info\n }\n };\n try {\n parent.postMessage(message, '*');\n if (parent !== window) {\n window.postMessage(message, '*');\n }\n }\n catch (err) {\n console.debug('Could not postmessage', err);\n }\n }\n}\n","import { normalizeSearchParams } from '../../helpers/search/search';\nimport { isBrowser } from '../is-browser';\nconst BUILDER_SEARCHPARAMS_PREFIX = 'builder.';\nconst BUILDER_OPTIONS_PREFIX = 'options.';\n/**\n * Receives a `URLSearchParams` object or a regular query object, and returns the subset of query params that are\n * relevant to the Builder SDK.\n *\n * @returns\n */\nexport const getBuilderSearchParams = (_options) => {\n if (!_options) {\n return {};\n }\n const options = normalizeSearchParams(_options);\n const newOptions = {};\n Object.keys(options).forEach(key => {\n if (key.startsWith(BUILDER_SEARCHPARAMS_PREFIX)) {\n const trimmedKey = key.replace(BUILDER_SEARCHPARAMS_PREFIX, '').replace(BUILDER_OPTIONS_PREFIX, '');\n newOptions[trimmedKey] = options[key];\n }\n });\n return newOptions;\n};\nexport const getBuilderSearchParamsFromWindow = () => {\n if (!isBrowser()) {\n return {};\n }\n const searchParams = new URLSearchParams(window.location.search);\n return getBuilderSearchParams(searchParams);\n};\n","export const SDK_VERSION = \"3.0.0\";\n","import { SDK_VERSION } from '../constants/sdk-version';\nimport { TARGET } from '../constants/target';\nexport const getSdkHeaders = () => ({\n 'X-Builder-SDK': TARGET,\n 'X-Builder-SDK-GEN': '2',\n 'X-Builder-SDK-Version': SDK_VERSION\n});\n","/**\n * Only gets one level up from hostname\n * wwww.example.com -> example.com\n * www.example.co.uk -> example.co.uk\n */\nexport const getTopLevelDomain = (host) => {\n if (host === 'localhost' || host === '127.0.0.1') {\n return host;\n }\n const parts = host.split('.');\n if (parts.length > 2) {\n return parts.slice(1).join('.');\n }\n return host;\n};\n","import { isBrowser } from '../functions/is-browser';\nimport { logger } from './logger';\nimport { checkIsDefined } from './nullable';\nimport { getTopLevelDomain } from './url';\nexport const getCookieSync = ({ name, canTrack }) => {\n try {\n if (!canTrack) {\n return undefined;\n }\n /**\n * Extracted from MDN docs\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#example_2_get_a_sample_cookie_named_test2\n */\n return document.cookie.split('; ').find(row => row.startsWith(`${name}=`))?.split('=')[1];\n }\n catch (err) {\n logger.warn('[COOKIE] GET error: ', err?.message || err);\n return undefined;\n }\n};\n/**\n * NOTE: This function is `async` because its react-native override is async. Do not remove the `async` keyword!\n * The sync version is only safe to use in code blocks that `react-native` is guaranteed not to not run.\n */\nexport const getCookie = async (args) => getCookieSync(args);\nconst stringifyCookie = (cookie) => cookie.map(([key, value]) => value ? `${key}=${value}` : key).filter(checkIsDefined).join('; ');\nconst SECURE_CONFIG = [['secure', ''], ['SameSite', 'None']];\nconst createCookieString = ({ name, value, expires }) => {\n const secure = isBrowser() ? location.protocol === 'https:' : true;\n const secureObj = secure ? SECURE_CONFIG : [[]];\n // TODO: need to know if secure server side\n const expiresObj = expires ? [['expires', expires.toUTCString()]] : [[]];\n const cookieValue = [[name, value], ...expiresObj, ['path', '/'], ['domain', getTopLevelDomain(window.location.hostname)], ...secureObj];\n const cookie = stringifyCookie(cookieValue);\n return cookie;\n};\n/**\n * NOTE: This function is `async` because its react-native override is async. Do not remove the `async` keyword!\n */\nexport const setCookie = async ({ name, value, expires, canTrack }) => {\n try {\n if (!canTrack) {\n return;\n }\n const cookie = createCookieString({\n name,\n value,\n expires\n });\n document.cookie = cookie;\n }\n catch (err) {\n logger.warn('[COOKIE] SET error: ', err?.message || err);\n }\n};\n","/**\n * @credit https://stackoverflow.com/a/2117523\n */\nexport function uuidv4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = Math.random() * 16 | 0, v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Slightly cleaner and smaller UUIDs\n */\nexport function uuid() {\n return uuidv4().replace(/-/g, '');\n}\n","import { getCookie, setCookie } from './cookie';\nimport { checkIsDefined } from './nullable';\nimport { uuid } from './uuid';\nconst SESSION_LOCAL_STORAGE_KEY = 'builderSessionId';\nexport const getSessionId = async ({ canTrack }) => {\n if (!canTrack) {\n return undefined;\n }\n const sessionId = await getCookie({\n name: SESSION_LOCAL_STORAGE_KEY,\n canTrack\n });\n if (checkIsDefined(sessionId)) {\n return sessionId;\n }\n else {\n const newSessionId = createSessionId();\n setSessionId({\n id: newSessionId,\n canTrack\n });\n return newSessionId;\n }\n};\nexport const createSessionId = () => uuid();\nexport const setSessionId = ({ id, canTrack }) => setCookie({\n name: SESSION_LOCAL_STORAGE_KEY,\n value: id,\n canTrack\n});\n","import { isBrowser } from '../functions/is-browser';\nconst getLocalStorage = () => isBrowser() && typeof localStorage !== 'undefined' ? localStorage : undefined;\nexport const getLocalStorageItem = ({ key, canTrack }) => {\n try {\n if (canTrack) {\n return getLocalStorage()?.getItem(key);\n }\n return undefined;\n }\n catch (err) {\n console.debug('[LocalStorage] GET error: ', err);\n return undefined;\n }\n};\nexport const setLocalStorageItem = ({ key, canTrack, value }) => {\n try {\n if (canTrack) {\n getLocalStorage()?.setItem(key, value);\n }\n }\n catch (err) {\n console.debug('[LocalStorage] SET error: ', err);\n }\n};\n","import { getLocalStorageItem, setLocalStorageItem } from './localStorage';\nimport { checkIsDefined } from './nullable';\nimport { uuid } from './uuid';\nconst VISITOR_LOCAL_STORAGE_KEY = 'builderVisitorId';\nexport const getVisitorId = ({ canTrack }) => {\n if (!canTrack) {\n return undefined;\n }\n const visitorId = getLocalStorageItem({\n key: VISITOR_LOCAL_STORAGE_KEY,\n canTrack\n });\n if (checkIsDefined(visitorId)) {\n return visitorId;\n }\n else {\n const newVisitorId = createVisitorId();\n setVisitorId({\n id: newVisitorId,\n canTrack\n });\n return newVisitorId;\n }\n};\nexport const createVisitorId = () => uuid();\nexport const setVisitorId = ({ id, canTrack }) => setLocalStorageItem({\n key: VISITOR_LOCAL_STORAGE_KEY,\n value: id,\n canTrack\n});\n","import { logger } from '../helpers/logger';\nexport function logFetch(url) {\n if (typeof process !== 'undefined' && process.env?.DEBUG) {\n if (String(process.env.DEBUG) == 'true') {\n logger.log(url);\n }\n }\n}\n","import { TARGET } from '../../constants/target';\nimport { logger } from '../../helpers/logger';\nimport { getSdkHeaders } from '../../helpers/sdk-headers';\nimport { getSessionId } from '../../helpers/sessionId';\nimport { getVisitorId } from '../../helpers/visitorId';\nimport { isBrowser } from '../is-browser';\nimport { isEditing } from '../is-editing';\nimport { logFetch } from '../log-fetch';\nimport { getUserAttributes } from './helpers';\nconst getTrackingEventData = async ({ canTrack }) => {\n if (!canTrack) {\n return {\n visitorId: undefined,\n sessionId: undefined\n };\n }\n const sessionId = await getSessionId({\n canTrack\n });\n const visitorId = getVisitorId({\n canTrack\n });\n return {\n sessionId,\n visitorId\n };\n};\nconst createEvent = async ({ type: eventType, canTrack, apiKey, metadata, ...properties }) => ({\n type: eventType,\n data: {\n ...properties,\n metadata: {\n url: location.href,\n ...metadata\n },\n ...(await getTrackingEventData({\n canTrack\n })),\n userAttributes: getUserAttributes(),\n ownerId: apiKey\n }\n});\nexport async function _track({ apiHost, ...eventProps }) {\n if (!eventProps.apiKey) {\n logger.error('Missing API key for track call. Please provide your API key.');\n return;\n }\n if (!eventProps.canTrack) {\n return;\n }\n if (isEditing()) {\n return;\n }\n if (!(isBrowser() || TARGET === 'reactNative')) {\n return;\n }\n const baseUrl = apiHost || 'https://cdn.builder.io';\n const url = `${baseUrl}/api/v1/track`;\n logFetch(url);\n return fetch(url, {\n method: 'POST',\n body: JSON.stringify({\n events: [await createEvent(eventProps)]\n }),\n headers: {\n 'content-type': 'application/json',\n ...getSdkHeaders()\n },\n mode: 'cors'\n }).catch(err => {\n console.error('Failed to track: ', err);\n });\n}\nexport const track = (args) => _track({\n ...args,\n canTrack: true\n});\n","const DEFAULT_TRUSTED_HOSTS = ['*.beta.builder.io', 'beta.builder.io', 'builder.io', 'localhost', 'qa.builder.io'];\nexport function isFromTrustedHost(trustedHosts, e) {\n if (!e.origin.startsWith('http') && !e.origin.startsWith('https')) {\n return false;\n }\n const url = new URL(e.origin), hostname = url.hostname;\n return (trustedHosts || DEFAULT_TRUSTED_HOSTS).findIndex(trustedHost => trustedHost.startsWith('*.') ? hostname.endsWith(trustedHost.slice(1)) : trustedHost === hostname) > -1;\n}\n","import { SDK_VERSION } from '../constants/sdk-version';\nimport { TARGET } from '../constants/target';\nimport { isBrowser } from '../functions/is-browser';\nimport { isFromTrustedHost } from '../functions/is-from-trusted-host';\nimport { register } from '../functions/register';\nexport const registerInsertMenu = () => {\n register('insertMenu', {\n name: '_default',\n default: true,\n items: [{\n name: 'Box'\n }, {\n name: 'Text'\n }, {\n name: 'Image'\n }, {\n name: 'Columns'\n }, ...(TARGET === 'reactNative' ? [] : [{\n name: 'Core:Section'\n }, {\n name: 'Core:Button'\n }, {\n name: 'Embed'\n }, {\n name: 'Custom Code'\n }])]\n });\n};\nlet isSetupForEditing = false;\nexport const setupBrowserForEditing = (options = {}) => {\n if (isSetupForEditing) {\n return;\n }\n isSetupForEditing = true;\n if (isBrowser()) {\n window.parent?.postMessage({\n type: 'builder.sdkInfo',\n data: {\n target: TARGET,\n version: SDK_VERSION,\n supportsPatchUpdates: false,\n // Supports builder-model=\"...\" attribute which is needed to\n // scope our '+ add block' button styling\n supportsAddBlockScoping: true,\n supportsCustomBreakpoints: true\n }\n }, '*');\n window.parent?.postMessage({\n type: 'builder.updateContent',\n data: {\n options\n }\n }, '*');\n window.addEventListener('message', (event) => {\n if (!isFromTrustedHost(options.trustedHosts, event)) {\n return;\n }\n const { data } = event;\n if (!data?.type) {\n return;\n }\n switch (data.type) {\n case 'builder.evaluate':\n {\n const text = data.data.text;\n const args = data.data.arguments || [];\n const id = data.data.id;\n // tslint:disable-next-line:no-function-constructor-with-string-args\n const fn = new Function(text);\n let result;\n let error = null;\n try {\n // eslint-disable-next-line prefer-spread\n result = fn.apply(null, args);\n }\n catch (err) {\n error = err;\n }\n if (error) {\n window.parent?.postMessage({\n type: 'builder.evaluateError',\n data: {\n id,\n error: error.message\n }\n }, '*');\n }\n else {\n if (result && typeof result.then === 'function') {\n result.then(finalResult => {\n window.parent?.postMessage({\n type: 'builder.evaluateResult',\n data: {\n id,\n result: finalResult\n }\n }, '*');\n }).catch(console.error);\n }\n else {\n window.parent?.postMessage({\n type: 'builder.evaluateResult',\n data: {\n result,\n id\n }\n }, '*');\n }\n }\n break;\n }\n }\n });\n }\n};\n","import { isBrowser } from '../functions/is-browser';\nimport { isFromTrustedHost } from '../functions/is-from-trusted-host';\nimport { setupBrowserForEditing } from '../scripts/init-editing';\nimport { logger } from './logger';\nexport const createEditorListener = ({ model, trustedHosts, callbacks }) => {\n return (event) => {\n if (!isFromTrustedHost(trustedHosts, event)) {\n return;\n }\n const { data } = event;\n if (data) {\n switch (data.type) {\n case 'builder.configureSdk':\n {\n callbacks.configureSdk(data.data);\n break;\n }\n case 'builder.triggerAnimation':\n {\n callbacks.animation(data.data);\n break;\n }\n case 'builder.contentUpdate':\n {\n const messageContent = data.data;\n const key = messageContent.key || messageContent.alias || messageContent.entry || messageContent.modelName;\n const contentData = messageContent.data;\n if (key === model) {\n callbacks.contentUpdate(contentData);\n }\n break;\n }\n }\n }\n };\n};\n/**\n * Subscribes to the Builder editor and listens to `content` updates of a certain `model`.\n * Sends the updated `content` to the `callback` function.\n */\nexport const subscribeToEditor = (model, callback, options) => {\n if (!isBrowser) {\n logger.warn('`subscribeToEditor` only works in the browser. It currently seems to be running on the server.');\n return () => { };\n }\n setupBrowserForEditing();\n const listener = createEditorListener({\n callbacks: {\n contentUpdate: callback,\n animation: () => { },\n configureSdk: () => { }\n },\n model,\n trustedHosts: options?.trustedHosts\n });\n window.addEventListener('message', listener);\n return () => {\n window.removeEventListener('message', listener);\n };\n};\n","import { TARGET } from '../constants/target';\nimport { checkIsDefined } from '../helpers/nullable';\nimport { getCookie, getCookieSync, setCookie } from './cookie';\nimport { logger } from './logger';\nconst BUILDER_STORE_PREFIX = 'builder.tests';\nconst getContentTestKey = (id) => `${BUILDER_STORE_PREFIX}.${id}`;\nconst getContentVariationCookie = ({ contentId }) => getCookie({\n name: getContentTestKey(contentId),\n canTrack: true\n});\nconst getContentVariationCookieSync = ({ contentId }) => getCookieSync({\n name: getContentTestKey(contentId),\n canTrack: true\n});\nconst setContentVariationCookie = ({ contentId, value }) => setCookie({\n name: getContentTestKey(contentId),\n value,\n canTrack: true\n});\nconst checkIsBuilderContentWithVariations = (item) => checkIsDefined(item.id) && checkIsDefined(item.variations) && Object.keys(item.variations).length > 0;\n/**\n * Randomly assign a variation to a user\n */\nconst getRandomVariationId = ({ id, variations }) => {\n let n = 0;\n const random = Math.random();\n // loop over variations test ratios, incrementing a counter,\n // until we find the variation that this user should be assigned to\n for (const id in variations) {\n const testRatio = variations[id]?.testRatio;\n n += testRatio;\n if (random < n) {\n return id;\n }\n }\n // the variations array does not include the default variation.\n // if we arrive here, then it means that the random number fits in the default variation bucket.\n return id;\n};\nconst getAndSetVariantId = (args) => {\n // if variation not found in storage, assign a random variation to this user\n const randomVariationId = getRandomVariationId(args);\n // store variation in cookies/storage\n setContentVariationCookie({\n contentId: args.id,\n value: randomVariationId\n }).catch(err => {\n logger.error('could not store A/B test variation: ', err);\n });\n return randomVariationId;\n};\nconst getTestFields = ({ item, testGroupId }) => {\n const variationValue = item.variations[testGroupId];\n if (testGroupId === item.id ||\n // handle edge-case where `testGroupId` points to non-existing variation\n !variationValue) {\n return {\n testVariationId: item.id,\n testVariationName: 'Default'\n };\n }\n else {\n return {\n data: variationValue.data,\n testVariationId: variationValue.id,\n testVariationName: variationValue.name || (variationValue.id === item.id ? 'Default' : '')\n };\n }\n};\nexport const handleABTestingSync = ({ item, canTrack }) => {\n /**\n * We cannot SSR in React-Native.\n */\n if (TARGET === 'reactNative')\n return item;\n if (!canTrack) {\n return item;\n }\n if (!item) {\n return undefined;\n }\n if (!checkIsBuilderContentWithVariations(item)) {\n return item;\n }\n const testGroupId = getContentVariationCookieSync({\n contentId: item.id\n }) || getAndSetVariantId({\n variations: item.variations,\n id: item.id\n });\n const variationValue = getTestFields({\n item,\n testGroupId\n });\n return {\n ...item,\n ...variationValue\n };\n};\nexport const handleABTesting = async ({ item, canTrack }) => {\n if (!canTrack) {\n return item;\n }\n if (!checkIsBuilderContentWithVariations(item)) {\n return item;\n }\n const cookieValue = await getContentVariationCookie({\n contentId: item.id\n });\n const testGroupId = cookieValue || getAndSetVariantId({\n variations: item.variations,\n id: item.id\n });\n const variationValue = getTestFields({\n item,\n testGroupId\n });\n return {\n ...item,\n ...variationValue\n };\n};\n","import { checkIsDefined } from './nullable';\nexport const getDefaultCanTrack = (canTrack) => checkIsDefined(canTrack) ? canTrack : true;\n","/**\n * Convert deep object to a flat object with dots\n *\n * { foo: { bar: 'baz' }} -> { 'foo.bar': 'baz' }\n */\nexport function flatten(object, path = null, separator = '.') {\n return Object.keys(object).reduce((acc, key) => {\n const value = object[key];\n const newPath = [path, key].filter(Boolean).join(separator);\n const isObject = [typeof value === 'object', value !== null, !(Array.isArray(value) && value.length === 0)].every(Boolean);\n return isObject ? {\n ...acc,\n ...flatten(value, newPath, separator)\n } : {\n ...acc,\n [newPath]: value\n };\n }, {});\n}\n/**\n * Flatten a nested MongoDB query object into a flat object with dot-separated keys.\n * $ keys are not flattened and are left as is.\n *\n * { foo: { bar: { $gt: 5 }}} -> { 'foo.bar': { '$gt': 5 }}\n * { foo: {'bar.id': { $elemMatch: { 'baz.id': { $in: ['abc', 'bcd'] }}}}} -> { 'foo.bar.id': { '$elemMatch': { 'baz.id': { '$in': ['abc', 'bcd'] }}}}\n */\nexport function flattenMongoQuery(obj, _current, _res = {}) {\n for (const key in obj) {\n const value = obj[key];\n const newKey = _current ? _current + '.' + key : key;\n if (value && typeof value === 'object' && !Array.isArray(value) && !Object.keys(value).find(item => item.startsWith('$'))) {\n flattenMongoQuery(value, newKey, _res);\n }\n else {\n _res[newKey] = value;\n }\n }\n return _res;\n}\n","export const DEFAULT_API_VERSION = 'v3';\n","import { flatten, flattenMongoQuery } from '../../helpers/flatten';\nimport { normalizeSearchParams } from '../../helpers/search/search';\nimport { DEFAULT_API_VERSION } from '../../types/api-version';\nimport { getBuilderSearchParamsFromWindow } from '../get-builder-search-params/index';\nconst isPositiveNumber = (thing) => typeof thing === 'number' && !isNaN(thing) && thing >= 0;\nexport const generateContentUrl = (options) => {\n const { limit = 30, userAttributes, query, model, apiKey, enrich, locale, apiVersion = DEFAULT_API_VERSION, fields, omit, offset, cacheSeconds, staleCacheSeconds, sort, includeUnpublished, apiHost } = options;\n if (!apiKey) {\n throw new Error('Missing API key');\n }\n if (!['v3'].includes(apiVersion)) {\n throw new Error(`Invalid apiVersion: expected 'v3', received '${apiVersion}'`);\n }\n // if we are fetching an array of content, we disable noTraverse for perf reasons.\n const noTraverse = limit !== 1;\n const baseUrl = apiHost || 'https://cdn.builder.io';\n const url = new URL(`${baseUrl}/api/${apiVersion}/content/${model}`);\n url.searchParams.set('apiKey', apiKey);\n url.searchParams.set('limit', String(limit));\n url.searchParams.set('noTraverse', String(noTraverse));\n url.searchParams.set('includeRefs', String(true));\n const finalLocale = locale || userAttributes?.locale;\n let finalUserAttributes = userAttributes;\n if (finalLocale) {\n url.searchParams.set('locale', finalLocale);\n finalUserAttributes = {\n locale: finalLocale,\n ...finalUserAttributes\n };\n }\n if (enrich)\n url.searchParams.set('enrich', String(enrich));\n url.searchParams.set('omit', omit || 'meta.componentsUsed');\n if (fields) {\n url.searchParams.set('fields', fields);\n }\n if (Number.isFinite(offset) && offset > -1) {\n url.searchParams.set('offset', String(Math.floor(offset)));\n }\n if (typeof includeUnpublished === 'boolean') {\n url.searchParams.set('includeUnpublished', String(includeUnpublished));\n }\n if (cacheSeconds && isPositiveNumber(cacheSeconds)) {\n url.searchParams.set('cacheSeconds', String(cacheSeconds));\n }\n if (staleCacheSeconds && isPositiveNumber(staleCacheSeconds)) {\n url.searchParams.set('staleCacheSeconds', String(staleCacheSeconds));\n }\n if (sort) {\n const flattened = flatten({\n sort\n });\n for (const key in flattened) {\n url.searchParams.set(key, JSON.stringify(flattened[key]));\n }\n }\n // TODO: how to express 'offset' in the url - as direct queryparam or as flattened in options[key] ?\n const queryOptions = {\n ...getBuilderSearchParamsFromWindow(),\n ...normalizeSearchParams(options.options || {})\n };\n const flattened = flatten(queryOptions);\n for (const key in flattened) {\n url.searchParams.set(key, String(flattened[key]));\n }\n if (finalUserAttributes) {\n url.searchParams.set('userAttributes', JSON.stringify(finalUserAttributes));\n }\n if (query) {\n const flattened = flattenMongoQuery({\n query\n });\n for (const key in flattened) {\n url.searchParams.set(key, JSON.stringify(flattened[key]));\n }\n }\n return url;\n};\n","import { TARGET } from '../../constants/target';\nimport { handleABTesting } from '../../helpers/ab-tests';\nimport { getDefaultCanTrack } from '../../helpers/canTrack';\nimport { logger } from '../../helpers/logger';\nimport { getPreviewContent } from '../../helpers/preview-lru-cache/get';\nimport { getSdkHeaders } from '../../helpers/sdk-headers';\nimport { fetch } from '../get-fetch';\nimport { isBrowser } from '../is-browser';\nimport { generateContentUrl } from './generate-content-url';\nconst checkContentHasResults = (content) => 'results' in content;\n/**\n * Returns the first content entry that matches the given options.\n */\nexport async function fetchOneEntry(options) {\n const allContent = await fetchEntries({\n ...options,\n limit: 1\n });\n if (allContent) {\n return allContent[0] || null;\n }\n return null;\n}\nconst _fetchContent = async (options) => {\n const url = generateContentUrl(options);\n const _fetch = options.fetch ?? fetch;\n const fetchOptions = {\n ...options.fetchOptions,\n headers: {\n ...options.fetchOptions?.headers,\n ...getSdkHeaders()\n }\n };\n const res = await _fetch(url.href, fetchOptions);\n const content = await res.json();\n return content;\n};\n/**\n * @internal Exported only for testing purposes. Do not use.\n */\nexport const _processContentResult = async (options, content, url = generateContentUrl(options)) => {\n const canTrack = getDefaultCanTrack(options.canTrack);\n const isPreviewing = url.search.includes(`preview=`);\n if (TARGET === 'rsc' && isPreviewing) {\n const newResults = [];\n for (const item of content.results) {\n const previewContent = getPreviewContent(url.searchParams);\n newResults.push(previewContent || item);\n }\n content.results = newResults;\n }\n if (!canTrack)\n return content.results;\n if (!(isBrowser() || TARGET === 'reactNative'))\n return content.results;\n /**\n * For client-side navigations, it is ideal to handle AB testing at this point instead of using our\n * complex multi-rendering variants approach, which is only needed for SSR'd content.\n *\n * This is also where react-native would handle AB testing.\n */\n try {\n const newResults = [];\n for (const item of content.results) {\n newResults.push(await handleABTesting({\n item,\n canTrack\n }));\n }\n content.results = newResults;\n }\n catch (e) {\n logger.error('Could not process A/B tests. ', e);\n }\n return content.results;\n};\n/**\n * Returns a paginated array of entries that match the given options.\n */\nexport async function fetchEntries(options) {\n const url = generateContentUrl(options);\n const content = await _fetchContent(options);\n if (!checkContentHasResults(content)) {\n logger.error('Error fetching data. ', {\n url,\n content,\n options\n });\n throw content;\n }\n return _processContentResult(options, content);\n}\n","export const camelToKebabCase = (str) => str ? str.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase() : '';\n","import { TARGET } from '../../constants/target';\nimport { camelToKebabCase } from '../../functions/camel-to-kebab-case';\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction throttle(func, wait, options = {}) {\n let context;\n let args;\n let result;\n let timeout = null;\n let previous = 0;\n const later = function () {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout)\n context = args = null;\n };\n return function () {\n const now = Date.now();\n if (!previous && options.leading === false)\n previous = now;\n const remaining = wait - (now - previous);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n context = this;\n // eslint-disable-next-line prefer-rest-params\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout)\n context = args = null;\n }\n else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n}\nfunction assign(target, ..._args) {\n const to = Object(target);\n for (let index = 1; index < arguments.length; index++) {\n // eslint-disable-next-line prefer-rest-params\n const nextSource = arguments[index];\n if (nextSource != null) {\n // Skip over if undefined or null\n for (const nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\nexport function bindAnimations(animations) {\n if (TARGET === 'reactNative') {\n return;\n }\n for (const animation of animations) {\n switch (animation.trigger) {\n case 'pageLoad':\n triggerAnimation(animation);\n break;\n case 'scrollInView':\n bindScrollInViewAnimation(animation);\n break;\n }\n }\n}\nfunction warnElementNotPresent(id) {\n console.warn(`Cannot animate element: element with ID ${id} not found!`);\n}\nfunction augmentAnimation(animation, element) {\n const stylesUsed = getAllStylesUsed(animation);\n const computedStyle = getComputedStyle(element);\n // const computedStyle = getComputedStyle(element);\n // // FIXME: this will break if original load is in one reponsive size then resize to another hmmm\n // Need to use transform instead of left since left can change on screen sizes\n const firstStyles = animation.steps[0].styles;\n const lastStyles = animation.steps[animation.steps.length - 1].styles;\n const bothStyles = [firstStyles, lastStyles];\n // FIXME: this won't work as expected for augmented animations - may need the editor itself to manage this\n for (const styles of bothStyles) {\n for (const style of stylesUsed) {\n if (!(style in styles)) {\n styles[style] = computedStyle[style];\n }\n }\n }\n}\nfunction getAllStylesUsed(animation) {\n const properties = [];\n for (const step of animation.steps) {\n for (const key in step.styles) {\n if (properties.indexOf(key) === -1) {\n properties.push(key);\n }\n }\n }\n return properties;\n}\nexport function triggerAnimation(animation) {\n // TODO: do for ALL elements\n const elements = Array.prototype.slice.call(document.getElementsByClassName(animation.elementId || animation.id || ''));\n if (!elements.length) {\n warnElementNotPresent(animation.elementId || animation.id || '');\n return;\n }\n Array.from(elements).forEach(element => {\n augmentAnimation(animation, element);\n // TODO: do this properly, may have other animations of different properties\n // TODO: only override the properties\n // TODO: if there is an entrance and hover animation, the transition duration will get effed\n // element.setAttribute('style', '');\n // const styledUsed = this.getAllStylesUsed(animation);\n element.style.transition = 'none';\n element.style.transitionDelay = '0';\n assign(element.style, animation.steps[0].styles);\n // TODO: queue/batch these timeouts\n // TODO: only include properties explicitly set in the animation\n // using Object.keys(styles)\n setTimeout(() => {\n element.style.transition = `all ${animation.duration}s ${camelToKebabCase(animation.easing)}`;\n if (animation.delay) {\n element.style.transitionDelay = animation.delay + 's';\n }\n assign(element.style, animation.steps[1].styles);\n // TODO: maybe remove/reset transitoin property after animation duration\n // TODO: queue timers\n setTimeout(() => {\n // TODO: what if has other transition (reset back to what it was)\n element.style.transition = '';\n element.style.transitionDelay = '';\n }, (animation.delay || 0) * 1000 + animation.duration * 1000 + 100);\n });\n });\n}\n// TODO: unbind on element remove\nexport function bindScrollInViewAnimation(animation) {\n // TODO: apply to ALL matching elements\n const elements = Array.prototype.slice.call(document.getElementsByClassName(animation.elementId || animation.id || ''));\n if (!elements.length) {\n warnElementNotPresent(animation.elementId || animation.id || '');\n return;\n }\n // TODO: if server side rendered and scrolled into view don't animate...\n Array.from(elements).forEach(element => {\n augmentAnimation(animation, element);\n let triggered = false;\n let pendingAnimation = false;\n function immediateOnScroll() {\n if (!triggered && isScrolledIntoView(element)) {\n triggered = true;\n pendingAnimation = true;\n setTimeout(() => {\n assign(element.style, animation.steps[1].styles);\n if (!animation.repeat) {\n document.removeEventListener('scroll', onScroll);\n }\n setTimeout(() => {\n pendingAnimation = false;\n if (!animation.repeat) {\n element.style.transition = '';\n element.style.transitionDelay = '';\n }\n }, (animation.duration + (animation.delay || 0)) * 1000 + 100);\n });\n }\n else if (animation.repeat && triggered && !pendingAnimation && !isScrolledIntoView(element)) {\n // we want to repeat the animation every time the the element is out of view and back again\n triggered = false;\n assign(element.style, animation.steps[0].styles);\n }\n }\n // TODO: roll all of these in one for more efficiency of checking all the rects\n const onScroll = throttle(immediateOnScroll, 200, {\n leading: false\n });\n // TODO: fully in view or partially\n function isScrolledIntoView(elem) {\n const rect = elem.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const thresholdPercent = (animation.thresholdPercent || 0) / 100;\n const threshold = thresholdPercent * windowHeight;\n // TODO: partial in view? or what if element is larger than screen itself\n return rect.bottom > threshold && rect.top < windowHeight - threshold // Element is peeking top or bottom\n ;\n }\n const defaultState = animation.steps[0].styles;\n function attachDefaultState() {\n assign(element.style, defaultState);\n }\n attachDefaultState();\n // TODO: queue/batch these timeouts!\n setTimeout(() => {\n element.style.transition = `all ${animation.duration}s ${camelToKebabCase(animation.easing)}`;\n if (animation.delay) {\n element.style.transitionDelay = animation.delay + 's';\n }\n });\n // TODO: one listener for everything\n document.addEventListener('scroll', onScroll, {\n capture: true,\n passive: true\n });\n // Do an initial check\n immediateOnScroll();\n });\n}\n","import { camelToKebabCase } from '../functions/camel-to-kebab-case';\nimport { checkIsDefined } from './nullable';\nexport const convertStyleMapToCSSArray = (style) => {\n const cssProps = Object.entries(style).map(([key, value]) => {\n if (typeof value === 'string') {\n return `${camelToKebabCase(key)}: ${value};`;\n }\n else {\n return undefined;\n }\n });\n return cssProps.filter(checkIsDefined);\n};\nexport const convertStyleMapToCSS = (style) => convertStyleMapToCSSArray(style).join('\\n');\nexport const createCssClass = ({ mediaQuery, className, styles }) => {\n const cssClass = `.${className} {\n ${convertStyleMapToCSS(styles)}\n }`;\n if (mediaQuery) {\n return `${mediaQuery} {\n ${cssClass}\n }`;\n }\n else {\n return cssClass;\n }\n};\n","export function transformStyleProperty({ style }) {\n return style;\n}\n","import { TARGET } from '../constants/target';\nimport { convertStyleMapToCSSArray } from '../helpers/css';\nimport { transformStyleProperty } from './transform-style-property';\nexport const getStyle = ({ block, context }) => {\n return mapStyleObjToStrIfNeeded(transformStyleProperty({\n style: block.style || {},\n context,\n block\n }));\n};\n/**\n * Svelte does not support style attribute as an object so we need to flatten it.\n *\n * Additionally, Svelte, Vue and other frameworks use kebab-case styles, so we need to convert them.\n */\nexport function mapStyleObjToStrIfNeeded(style) {\n switch (TARGET) {\n case 'svelte':\n case 'vue':\n case 'solid':\n case 'angular':\n return convertStyleMapToCSSArray(style).join(' ');\n case 'qwik':\n case 'reactNative':\n case 'react':\n case 'rsc':\n return style;\n }\n}\n","import { evaluate } from '../../functions/evaluate/index';\nimport { extractTextStyles } from '../../functions/extract-text-styles';\nimport { getStyle } from '../../functions/get-style';\nexport const getComponent = ({ block, registeredComponents }) => {\n const componentName = block.component?.name;\n if (!componentName) {\n return null;\n }\n const ref = registeredComponents[componentName];\n if (!ref) {\n // TODO: Public doc page with more info about this message\n console.warn(`\n Could not find a registered component named \"${componentName}\". \n If you registered it, is the file that registered it imported by the file that needs to render it?`);\n return undefined;\n }\n else {\n return ref;\n }\n};\nexport const getRepeatItemData = ({ block, context }) => {\n /**\n * we don't use `state.processedBlock` here because the processing done within its logic includes evaluating the block's bindings,\n * which will not work if there is a repeat.\n */\n const { repeat, ...blockWithoutRepeat } = block;\n if (!repeat?.collection) {\n return undefined;\n }\n const itemsArray = evaluate({\n code: repeat.collection,\n localState: context.localState,\n rootState: context.rootState,\n rootSetState: context.rootSetState,\n context: context.context\n });\n if (!Array.isArray(itemsArray)) {\n return undefined;\n }\n const collectionName = repeat.collection.split('.').pop();\n const itemNameToUse = repeat.itemName || (collectionName ? collectionName + 'Item' : 'item');\n const repeatArray = itemsArray.map((item, index) => ({\n context: {\n ...context,\n localState: {\n ...context.localState,\n $index: index,\n $item: item,\n [itemNameToUse]: item,\n [`$${itemNameToUse}Index`]: index\n }\n },\n block: blockWithoutRepeat\n }));\n return repeatArray;\n};\nexport const getInheritedStyles = ({ block, context }) => {\n const style = getStyle({\n block,\n context\n });\n if (!style) {\n return {};\n }\n return extractTextStyles(style);\n};\nexport const provideLinkComponent = (block, linkComponent) => {\n if (block?.shouldReceiveBuilderProps?.builderLinkComponent)\n return {\n builderLinkComponent: linkComponent\n };\n return {};\n};\nexport const provideRegisteredComponents = (block, registeredComponents) => {\n if (block?.shouldReceiveBuilderProps?.builderComponents)\n return {\n builderComponents: registeredComponents\n };\n return {};\n};\nexport const provideBuilderBlock = (block, builderBlock) => {\n if (block?.shouldReceiveBuilderProps?.builderBlock)\n return {\n builderBlock\n };\n return {};\n};\nexport const provideBuilderContext = (block, context) => {\n if (block?.shouldReceiveBuilderProps?.builderContext)\n return {\n builderContext: context\n };\n return {};\n};\n","import { fastClone } from '../functions/fast-clone';\nconst SIZES = {\n small: {\n min: 320,\n default: 321,\n max: 640\n },\n medium: {\n min: 641,\n default: 642,\n max: 991\n },\n large: {\n min: 990,\n default: 991,\n max: 1200\n }\n};\nexport const getMaxWidthQueryForSize = (size, sizeValues = SIZES) => `@media (max-width: ${sizeValues[size].max}px)`;\nexport const getSizesForBreakpoints = ({ small, medium }) => {\n const newSizes = fastClone(SIZES); // Note: this helps to get a deep clone of fields like small, medium etc\n if (!small || !medium) {\n return newSizes;\n }\n const smallMin = Math.floor(small / 2);\n newSizes.small = {\n max: small,\n min: smallMin,\n default: smallMin + 1\n };\n const mediumMin = newSizes.small.max + 1;\n newSizes.medium = {\n max: medium,\n min: mediumMin,\n default: mediumMin + 1\n };\n const largeMin = newSizes.medium.max + 1;\n newSizes.large = {\n max: 2000,\n // TODO: decide upper limit\n min: largeMin,\n default: largeMin + 1\n };\n return newSizes;\n};\n","<script context=\"module\"></script>\n\n<script>export let styles;\nexport let id;\nexport let nonce;\n</script>\n\n{@html `<${\"style\"} data-id=${id} nonce=${nonce} >${styles}<${\"/style\"}>`}","<script context=\"module\"></script>\n\n<script>import { getMaxWidthQueryForSize, getSizesForBreakpoints, } from \"../../../constants/device-sizes\";\nimport { TARGET } from \"../../../constants/target\";\nimport { camelToKebabCase } from \"../../../functions/camel-to-kebab-case\";\nimport { createCssClass } from \"../../../helpers/css\";\nimport { checkIsDefined } from \"../../../helpers/nullable\";\nimport InlinedStyles from \"../../inlined-styles.svelte\";\nexport let block;\nexport let context;\n$: canShowBlock = () => {\n const processedBlock = block;\n // only render styles for blocks that are visible\n if (checkIsDefined(processedBlock.hide)) {\n return !processedBlock.hide;\n }\n if (checkIsDefined(processedBlock.show)) {\n return processedBlock.show;\n }\n return true;\n};\n$: css = () => {\n const processedBlock = block;\n const styles = processedBlock.responsiveStyles;\n const content = context.content;\n const sizesWithUpdatedBreakpoints = getSizesForBreakpoints(content?.meta?.breakpoints || {});\n const largeStyles = styles?.large;\n const mediumStyles = styles?.medium;\n const smallStyles = styles?.small;\n const className = processedBlock.id;\n if (!className) {\n return \"\";\n }\n const largeStylesClass = largeStyles\n ? createCssClass({\n className,\n styles: largeStyles,\n })\n : \"\";\n const mediumStylesClass = mediumStyles\n ? createCssClass({\n className,\n styles: mediumStyles,\n mediaQuery: getMaxWidthQueryForSize(\"medium\", sizesWithUpdatedBreakpoints),\n })\n : \"\";\n const smallStylesClass = smallStyles\n ? createCssClass({\n className,\n styles: smallStyles,\n mediaQuery: getMaxWidthQueryForSize(\"small\", sizesWithUpdatedBreakpoints),\n })\n : \"\";\n const hoverAnimation = processedBlock.animations &&\n processedBlock.animations.find((item) => item.trigger === \"hover\");\n let hoverStylesClass = \"\";\n if (hoverAnimation) {\n const hoverStyles = hoverAnimation.steps?.[1]?.styles || {};\n hoverStylesClass =\n createCssClass({\n className: `${className}:hover`,\n styles: {\n ...hoverStyles,\n transition: `all ${hoverAnimation.duration}s ${camelToKebabCase(hoverAnimation.easing)}`,\n transitionDelay: hoverAnimation.delay\n ? `${hoverAnimation.delay}s`\n : \"0s\",\n },\n }) || \"\";\n }\n return [\n largeStylesClass,\n mediumStylesClass,\n smallStylesClass,\n hoverStylesClass,\n ].join(\" \");\n};\n</script>\n\n{#if TARGET !== \"reactNative\" && css() && canShowBlock()}\n <InlinedStyles id=\"builderio-block\" styles={css()} nonce={context.nonce} />\n{/if}","export const getEventHandlerName = (key) => `on:${key.toLowerCase()}`;\n","import { evaluate } from './evaluate/index';\nexport const createEventHandler = (value, options) => event => evaluate({\n code: value,\n context: options.context,\n localState: options.localState,\n rootState: options.rootState,\n rootSetState: options.rootSetState,\n event,\n isExpression: false\n});\n","import { TARGET } from '../constants/target';\nimport { getEventHandlerName } from './event-handler-name';\nimport { createEventHandler } from './get-block-actions-handler';\nexport function getBlockActions(options) {\n const obj = {};\n const optionActions = options.block.actions ?? {};\n for (const key in optionActions) {\n // eslint-disable-next-line no-prototype-builtins\n if (!optionActions.hasOwnProperty(key)) {\n continue;\n }\n const value = optionActions[key];\n let eventHandlerName = getEventHandlerName(key);\n if (options.stripPrefix) {\n switch (TARGET) {\n case 'vue':\n eventHandlerName = eventHandlerName.replace('v-on:', '');\n break;\n case 'svelte':\n eventHandlerName = eventHandlerName.replace('on:', '');\n break;\n }\n }\n obj[eventHandlerName] = createEventHandler(value, options);\n }\n return obj;\n}\n","export function transformBlockProperties({ properties }) {\n return properties;\n}\n","import { getClassPropName } from './get-class-prop-name';\nimport { getStyle } from './get-style';\nimport { transformBlockProperties } from './transform-block-properties';\nconst extractRelevantRootBlockProperties = (block) => {\n // currently we are only spreading the `href` property\n // TO-DO: potentially spread all properties from block, but only if they are not already defined by BuilderBlock\n // const {\n // '@type': _type,\n // '@version': _version,\n // id: _id,\n // tagName: _tagName,\n // layerName: _layerName,\n // groupLocked: _groupLocked,\n // layerLocked: _layerLocked,\n // class: _class,\n // children: _children,\n // responsiveStyles: _responsiveStyles,\n // component: _component,\n // bindings: _bindings,\n // meta: _meta,\n // actions: _actions,\n // properties: _properties,\n // code: _code,\n // repeat: _repeat,\n // animations: _animations,\n // style: _style,\n // hide: _hide,\n // show: _show,\n // // anything set by dynamic bindings outside of predefined `BuilderBlock` properties\n // ...remainingBlockProperties\n // } = block;\n return {\n href: block.href\n };\n};\nexport function getBlockProperties({ block, context }) {\n const properties = {\n ...extractRelevantRootBlockProperties(block),\n ...block.properties,\n 'builder-id': block.id,\n style: getStyle({\n block,\n context\n }),\n [getClassPropName()]: [block.id, 'builder-block', block.class, block.properties?.class].filter(Boolean).join(' ')\n };\n return transformBlockProperties({\n properties,\n context,\n block\n });\n}\n","<script context=\"module\">/**\n * This component renders a block's wrapper HTML element (from the block's `tagName` property).\n */\n</script>\n\n<script>import { getBlockActions } from \"../../../functions/get-block-actions\";\nimport { getBlockProperties } from \"../../../functions/get-block-properties\";\nimport DynamicRenderer from \"../../dynamic-renderer/dynamic-renderer.svelte\";\nexport let Wrapper;\nexport let block;\nexport let context;\n</script>\n\n<DynamicRenderer\n TagName={Wrapper}\n attributes={getBlockProperties({\n block: block,\n context: $context,\n })}\n actionAttributes={getBlockActions({\n block: block,\n rootState: $context.rootState,\n rootSetState: $context.rootSetState,\n localState: $context.localState,\n context: $context.context,\n stripPrefix: true,\n })}><slot /></DynamicRenderer\n>","<script>export let load;\nexport let fallback;\nexport let props;\nexport let attributes;\nconst componentImport = typeof load === 'string' ? import(load) : load();\n</script>\n\n{#await componentImport}\n {#if fallback}\n <svelte:component this={fallback} />\n {/if}\n{:then { default: Component }}\n <svelte:component this={Component} {...props} {attributes}>\n <slot />\n </svelte:component>\n{/await}\n","<script context=\"module\"></script>\n\n<script>import { getBlockActions } from \"../../../functions/get-block-actions\";\nimport { getBlockProperties } from \"../../../functions/get-block-properties\";\nimport Awaiter from \"../../awaiter.svelte\";\nexport let includeBlockProps;\nexport let block;\nexport let context;\nexport let Wrapper;\nexport let wrapperProps;\n$: attributes = () => {\n return includeBlockProps\n ? {\n ...getBlockProperties({\n block: block,\n context: $context,\n }),\n ...getBlockActions({\n block: block,\n rootState: $context.rootState,\n rootSetState: $context.rootSetState,\n localState: $context.localState,\n context: $context.context,\n }),\n }\n : {};\n};\n</script>\n\n{#if Wrapper.load}\n <Awaiter\n load={Wrapper.load}\n fallback={Wrapper.fallback}\n props={wrapperProps}\n attributes={attributes()}><slot /></Awaiter\n >\n{:else}\n <svelte:component this={Wrapper} {...wrapperProps} attributes={attributes()}\n ><slot /></svelte:component\n >\n{/if}","import { getBlockProperties } from '../../../../functions/get-block-properties';\nexport const getWrapperProps = ({ componentOptions, builderBlock, context, componentRef, includeBlockProps, isInteractive, contextValue }) => {\n const wrapperPropsWithAttributes = {\n ...componentOptions,\n /**\n * If `noWrap` is set to `true`, then the block's props/attributes are provided to the\n * component itself directly. Otherwise, they are provided to the wrapper element.\n */\n ...(includeBlockProps ? {\n attributes: getBlockProperties({\n block: builderBlock,\n context: contextValue\n })\n } : {})\n };\n const interactiveElementProps = {\n Wrapper: componentRef,\n block: builderBlock,\n context,\n wrapperProps: componentOptions,\n includeBlockProps\n };\n return isInteractive ? interactiveElementProps : wrapperPropsWithAttributes;\n};\n","<script>import \"../../../content/wrap-component-ref\";\nimport Block from \"../../block.svelte\";\nimport InteractiveElement from \"../interactive-element.svelte\";\nimport { getWrapperProps } from \"./component-ref.helpers\";\nexport let isInteractive;\nexport let componentRef;\nexport let componentOptions;\nexport let builderBlock;\nexport let context;\nexport let linkComponent;\nexport let includeBlockProps;\nexport let blockChildren;\nexport let registeredComponents;\nlet Wrapper = isInteractive ? InteractiveElement : componentRef;\n</script>\n\n{#if componentRef}\n <svelte:component\n this={Wrapper}\n {...getWrapperProps({\n componentOptions: componentOptions,\n builderBlock: builderBlock,\n context: context,\n componentRef: componentRef,\n linkComponent: linkComponent,\n includeBlockProps: includeBlockProps,\n isInteractive: isInteractive,\n contextValue: $context,\n })}\n >\n {#each blockChildren as child (child.id)}\n <Block block={child} {context} {registeredComponents} {linkComponent} />\n {/each}\n </svelte:component>\n{/if}","<script context=\"module\"></script>\n\n<script>import { setContext } from \"svelte\";\nimport { writable } from \"svelte/store\";\nimport BuilderContext from \"../../../context/builder.context\";\nimport Block from \"../block.svelte\";\nexport let repeatContext;\nexport let block;\nexport let registeredComponents;\nexport let linkComponent;\nlet store = writable(repeatContext);\nsetContext(BuilderContext.key, store);\n</script>\n\n<Block {block} context={store} {registeredComponents} {linkComponent} />","<script context=\"module\"></script>\n\n<script>import { afterUpdate, onMount } from \"svelte\";\nimport { TARGET } from \"../../constants/target\";\nimport { getBlockComponentOptions } from \"../../functions/get-block-component-options\";\nimport { getProcessedBlock } from \"../../functions/get-processed-block\";\nimport \"../../server-index\";\nimport \"../dynamic-div.svelte\";\nimport { bindAnimations } from \"./animator\";\nimport { getComponent, getRepeatItemData, provideBuilderBlock, provideBuilderContext, provideLinkComponent, provideRegisteredComponents, } from \"./block.helpers\";\nimport BlockStyles from \"./components/block-styles.svelte\";\nimport BlockWrapper from \"./components/block-wrapper.svelte\";\nimport ComponentRef from \"./components/component-ref/component-ref.svelte\";\nimport RepeatedBlock from \"./components/repeated-block.svelte\";\nexport let block;\nexport let context;\nexport let registeredComponents;\nexport let linkComponent;\n$: repeatItem = () => {\n return getRepeatItemData({\n block: block,\n context: $context,\n });\n};\n$: processedBlock = () => {\n const blockToUse = block.repeat?.collection\n ? block\n : getProcessedBlock({\n block: block,\n localState: $context.localState,\n rootState: $context.rootState,\n rootSetState: $context.rootSetState,\n context: $context.context,\n shouldEvaluateBindings: true,\n });\n return blockToUse;\n};\n$: blockComponent = () => {\n return getComponent({\n block: processedBlock(),\n registeredComponents: registeredComponents,\n });\n};\n$: Tag = () => {\n const shouldUseLink = block.tagName === \"a\" ||\n processedBlock().properties?.href ||\n processedBlock().href;\n if (shouldUseLink) {\n return linkComponent || \"a\";\n }\n return block.tagName || \"div\";\n};\n$: canShowBlock = () => {\n if (block.repeat?.collection) {\n if (repeatItem?.()?.length)\n return true;\n return false;\n }\n const shouldHide = \"hide\" in processedBlock() ? processedBlock().hide : false;\n const shouldShow = \"show\" in processedBlock() ? processedBlock().show : true;\n return shouldShow && !shouldHide;\n};\n$: childrenWithoutParentComponent = () => {\n /**\n * When there is no `componentRef`, there might still be children that need to be rendered. In this case,\n * we render them outside of `componentRef`.\n * NOTE: We make sure not to render this if `repeatItemData` is non-null, because that means we are rendering an array of\n * blocks, and the children will be repeated within those blocks.\n */\n const shouldRenderChildrenOutsideRef = !blockComponent?.()?.component && !repeatItem();\n return shouldRenderChildrenOutsideRef\n ? processedBlock().children ?? []\n : [];\n};\n$: componentRefProps = () => {\n return {\n blockChildren: processedBlock().children ?? [],\n componentRef: blockComponent?.()?.component,\n componentOptions: {\n ...getBlockComponentOptions(processedBlock()),\n ...provideBuilderBlock(blockComponent(), processedBlock()),\n ...provideBuilderContext(blockComponent(), context),\n ...provideLinkComponent(blockComponent(), linkComponent),\n ...provideRegisteredComponents(blockComponent(), registeredComponents),\n },\n context: context,\n linkComponent: linkComponent,\n registeredComponents: registeredComponents,\n builderBlock: processedBlock(),\n includeBlockProps: blockComponent?.()?.noWrap === true,\n isInteractive: !(blockComponent?.()?.isRSC && TARGET === \"rsc\"),\n };\n};\nlet _processedBlock = {\n value: null,\n update: false,\n};\nonMount(() => {\n const blockId = processedBlock().id;\n const animations = processedBlock().animations;\n if (animations && blockId) {\n bindAnimations(animations.map((animation) => ({\n ...animation,\n elementId: blockId,\n })));\n }\n});\nafterUpdate(() => { });\n</script>\n\n{#if canShowBlock()}\n <BlockStyles block={processedBlock()} context={$context} />\n\n {#if !blockComponent?.()?.noWrap}\n {#if !repeatItem()}\n <BlockWrapper Wrapper={Tag()} block={processedBlock()} {context}\n ><ComponentRef\n componentRef={componentRefProps().componentRef}\n componentOptions={componentRefProps().componentOptions}\n blockChildren={componentRefProps().blockChildren}\n context={componentRefProps().context}\n registeredComponents={componentRefProps().registeredComponents}\n linkComponent={componentRefProps().linkComponent}\n builderBlock={componentRefProps().builderBlock}\n includeBlockProps={componentRefProps().includeBlockProps}\n isInteractive={componentRefProps().isInteractive}\n />\n {#each childrenWithoutParentComponent() as child (child.id)}\n <svelte:self\n block={child}\n {registeredComponents}\n {linkComponent}\n {context}\n />\n {/each}\n </BlockWrapper>\n {:else}\n {#each repeatItem() as data, index (index)}\n <RepeatedBlock\n repeatContext={data.context}\n block={data.block}\n {registeredComponents}\n {linkComponent}\n />\n {/each}\n {/if}\n {:else if !repeatItem()}\n <ComponentRef\n componentRef={componentRefProps().componentRef}\n componentOptions={componentRefProps().componentOptions}\n blockChildren={componentRefProps().blockChildren}\n context={componentRefProps().context}\n registeredComponents={componentRefProps().registeredComponents}\n linkComponent={componentRefProps().linkComponent}\n builderBlock={componentRefProps().builderBlock}\n includeBlockProps={componentRefProps().includeBlockProps}\n isInteractive={componentRefProps().isInteractive}\n />\n {:else}\n {#each repeatItem() as data, index (index)}\n <RepeatedBlock\n repeatContext={data.context}\n block={data.block}\n {registeredComponents}\n {linkComponent}\n />\n {/each}\n {/if}\n{/if}","<script context=\"module\"></script>\n\n<script>import { onMount } from \"svelte\";\nimport { isEditing } from \"../../functions/is-editing\";\nexport let blocks;\nexport let classNameProp = undefined;\nexport let path;\nexport let parent;\nexport let styleProp;\nexport let BlocksWrapperProps;\nexport let BlocksWrapper;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\nfunction onClick() {\n if (isEditing() && !blocks?.length) {\n window.parent?.postMessage({\n type: \"builder.clickEmptyBlocks\",\n data: {\n parentElementId: parent,\n dataPath: dataPath(),\n },\n }, \"*\");\n }\n}\nfunction onMouseEnter() {\n if (isEditing() && !blocks?.length) {\n window.parent?.postMessage({\n type: \"builder.hoverEmptyBlocks\",\n data: {\n parentElementId: parent,\n dataPath: dataPath(),\n },\n }, \"*\");\n }\n}\n$: className = () => {\n return [\"builder-blocks\", !blocks?.length ? \"no-blocks\" : \"\", classNameProp]\n .filter(Boolean)\n .join(\" \");\n};\n$: dataPath = () => {\n if (!path) {\n return undefined;\n }\n const pathPrefix = \"component.options.\";\n return path.startsWith(pathPrefix) ? path : `${pathPrefix}${path || \"\"}`;\n};\nlet blocksWrapperRef;\nonMount(() => { });\n</script>\n\n<svelte:element\n this={BlocksWrapper}\n style={stringifyStyles(styleProp)}\n bind:this={blocksWrapperRef}\n class={className() + \" svelte-element\"}\n builder-path={dataPath()}\n builder-parent-id={parent}\n {...{}}\n on:click={(event) => {\n onClick();\n }}\n on:mouseenter={(event) => {\n onMouseEnter();\n }}\n on:keypress={(event) => {\n onClick();\n }}\n {...BlocksWrapperProps}><slot /></svelte:element\n>\n\n<style>\n .svelte-element {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n }\n</style>","<script>import { getContext } from \"svelte\";\nimport BuilderContext from \"../../context/builder.context\";\nimport ComponentsContext from \"../../context/components.context\";\nimport Block from \"../block/block.svelte\";\nimport BlocksWrapper from \"./blocks-wrapper.svelte\";\nexport let blocks;\nexport let parent;\nexport let path;\nexport let styleProp;\nexport let className = undefined;\nexport let context = undefined;\nexport let linkComponent = undefined;\nexport let registeredComponents = undefined;\nlet builderContext = getContext(BuilderContext.key);\nlet componentsContext = getContext(ComponentsContext.key);\n</script>\n\n<BlocksWrapper\n {blocks}\n {parent}\n {path}\n {styleProp}\n classNameProp={className}\n BlocksWrapper={$context?.BlocksWrapper || $builderContext?.BlocksWrapper}\n BlocksWrapperProps={$context?.BlocksWrapperProps ||\n $builderContext?.BlocksWrapperProps}\n>\n {#if blocks}\n {#each blocks as block (block.id)}\n <Block\n {block}\n {linkComponent}\n context={context || builderContext}\n registeredComponents={registeredComponents ||\n componentsContext?.registeredComponents}\n />\n {/each}\n {/if}</BlocksWrapper\n>","export const getColumnsClass = (id) => {\n return `builder-columns ${id}-breakpoints`;\n};\n","<script context=\"module\"></script>\n\n<script>import Blocks from \"../../components/blocks/blocks.svelte\";\nimport \"../../components/dynamic-div.svelte\";\nimport DynamicRenderer from \"../../components/dynamic-renderer/dynamic-renderer.svelte\";\nimport InlinedStyles from \"../../components/inlined-styles.svelte\";\nimport { getSizesForBreakpoints } from \"../../constants/device-sizes\";\nimport { TARGET } from \"../../constants/target\";\nimport \"../../functions/deopt\";\nimport { getClassPropName } from \"../../functions/get-class-prop-name\";\nimport { mapStyleObjToStrIfNeeded } from \"../../functions/get-style\";\nimport { getColumnsClass } from \"./helpers\";\nexport let space = undefined;\nexport let columns = undefined;\nexport let stackColumnsAt = undefined;\nexport let builderLinkComponent = undefined;\nexport let reverseColumnsWhenStacked = undefined;\nexport let builderContext;\nexport let builderBlock;\nexport let builderComponents;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\nfunction getTagName(column) {\n return column.link ? builderLinkComponent || \"a\" : \"div\";\n}\nfunction getWidth(index) {\n return cols()[index]?.width || 100 / cols().length;\n}\nfunction getColumnCssWidth(index) {\n const width = getWidth(index);\n const subtractWidth = gutterSize() * (cols().length - 1) * (width / 100);\n return `calc(${width}% - ${subtractWidth}px)`;\n}\nfunction getTabletStyle({ stackedStyle, desktopStyle, }) {\n return stackAt() === \"tablet\" ? stackedStyle : desktopStyle;\n}\nfunction getMobileStyle({ stackedStyle, desktopStyle, }) {\n return stackAt() === \"never\" ? desktopStyle : stackedStyle;\n}\nfunction columnsCssVars() {\n return {\n \"--flex-dir\": flexDir(),\n \"--flex-dir-tablet\": getTabletStyle({\n stackedStyle: flexDir(),\n desktopStyle: \"row\",\n }),\n };\n}\nfunction columnCssVars(index) {\n const gutter = index === 0 ? 0 : gutterSize();\n const width = getColumnCssWidth(index);\n const gutterPixels = `${gutter}px`;\n const mobileWidth = \"100%\";\n const mobileMarginLeft = 0;\n const marginLeftKey = \"margin-left\";\n const sharedStyles = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n };\n return {\n ...sharedStyles,\n width,\n [marginLeftKey]: gutterPixels,\n \"--column-width-mobile\": getMobileStyle({\n stackedStyle: mobileWidth,\n desktopStyle: width,\n }),\n \"--column-margin-left-mobile\": getMobileStyle({\n stackedStyle: mobileMarginLeft,\n desktopStyle: gutterPixels,\n }),\n \"--column-width-tablet\": getTabletStyle({\n stackedStyle: mobileWidth,\n desktopStyle: width,\n }),\n \"--column-margin-left-tablet\": getTabletStyle({\n stackedStyle: mobileMarginLeft,\n desktopStyle: gutterPixels,\n }),\n };\n}\nfunction getWidthForBreakpointSize(size) {\n const breakpointSizes = getSizesForBreakpoints($builderContext.content?.meta?.breakpoints || {});\n return breakpointSizes[size].max;\n}\nfunction columnsStyles() {\n const childColumnDiv = `.${builderBlock.id}-breakpoints > .builder-column`;\n return `\n @media (max-width: ${getWidthForBreakpointSize(\"medium\")}px) {\n .${builderBlock.id}-breakpoints {\n flex-direction: var(--flex-dir-tablet);\n align-items: stretch;\n }\n\n ${childColumnDiv} {\n width: var(--column-width-tablet) !important;\n margin-left: var(--column-margin-left-tablet) !important;\n }\n }\n\n @media (max-width: ${getWidthForBreakpointSize(\"small\")}px) {\n .${builderBlock.id}-breakpoints {\n flex-direction: var(--flex-dir);\n align-items: stretch;\n }\n\n ${childColumnDiv} {\n width: var(--column-width-mobile) !important;\n margin-left: var(--column-margin-left-mobile) !important;\n }\n },\n `;\n}\nfunction getAttributes(column, index) {\n return {\n ...{},\n ...(column.link\n ? {\n href: column.link,\n }\n : {}),\n [getClassPropName()]: \"builder-column\",\n style: mapStyleObjToStrIfNeeded(columnCssVars(index)),\n };\n}\n$: gutterSize = () => {\n return typeof space === \"number\" ? space || 0 : 20;\n};\n$: cols = () => {\n return columns || [];\n};\n$: stackAt = () => {\n return stackColumnsAt || \"tablet\";\n};\n$: flexDir = () => {\n return stackColumnsAt === \"never\"\n ? \"row\"\n : reverseColumnsWhenStacked\n ? \"column-reverse\"\n : \"column\";\n};\n</script>\n\n<div\n style={stringifyStyles(columnsCssVars())}\n class={getColumnsClass(builderBlock?.id) + \" div\"}\n {...{}}\n>\n {#if TARGET !== \"reactNative\"}\n <InlinedStyles\n id=\"builderio-columns\"\n styles={columnsStyles()}\n nonce={$builderContext.nonce}\n />\n {/if}\n {#each columns as column, index (index)}\n <DynamicRenderer\n TagName={getTagName(column)}\n actionAttributes={{}}\n attributes={getAttributes(column, index)}\n ><Blocks\n path={`columns.${index}.blocks`}\n parent={builderBlock.id}\n styleProp={{\n flexGrow: \"1\",\n }}\n context={builderContext}\n registeredComponents={builderComponents}\n linkComponent={builderLinkComponent}\n blocks={column.blocks}\n /></DynamicRenderer\n >\n {/each}\n</div>\n\n<style>\n .div {\n display: flex;\n line-height: normal;\n }\n</style>","<script></script>\n\n<span><slot /></span>","// Taken from (and modified) the shopify theme script repo\n// https://github.com/Shopify/theme-scripts/blob/bcfb471f2a57d439e2f964a1bb65b67708cc90c3/packages/theme-images/images.js#L59\nfunction removeProtocol(path) {\n return path.replace(/http(s)?:/, '');\n}\nfunction updateQueryParam(uri = '', key, value) {\n const re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');\n const separator = uri.indexOf('?') !== -1 ? '&' : '?';\n if (uri.match(re)) {\n return uri.replace(re, '$1' + key + '=' + encodeURIComponent(value) + '$2');\n }\n return uri + separator + key + '=' + encodeURIComponent(value);\n}\nfunction getShopifyImageUrl(src, size) {\n if (!src || !src?.match(/cdn\\.shopify\\.com/) || !size) {\n return src;\n }\n if (size === 'master') {\n return removeProtocol(src);\n }\n const match = src.match(/(_\\d+x(\\d+)?)?(\\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\\?v=\\d+)?)/i);\n if (match) {\n const prefix = src.split(match[0]);\n const suffix = match[3];\n const useSize = size.match('x') ? size : `${size}x`;\n return removeProtocol(`${prefix[0]}_${useSize}${suffix}`);\n }\n return null;\n}\nexport function getSrcSet(url) {\n if (!url) {\n return url;\n }\n const sizes = [100, 200, 400, 800, 1200, 1600, 2000];\n if (url.match(/builder\\.io/)) {\n let srcUrl = url;\n const widthInSrc = Number(url.split('?width=')[1]);\n if (!isNaN(widthInSrc)) {\n srcUrl = `${srcUrl} ${widthInSrc}w`;\n }\n return sizes.filter(size => size !== widthInSrc).map(size => `${updateQueryParam(url, 'width', size)} ${size}w`).concat([srcUrl]).join(', ');\n }\n if (url.match(/cdn\\.shopify\\.com/)) {\n return sizes.map(size => [getShopifyImageUrl(url, `${size}x${size}`), size]).filter(([sizeUrl]) => !!sizeUrl).map(([sizeUrl, size]) => `${sizeUrl} ${size}w`).concat([url]).join(', ');\n }\n return url;\n}\n","<script>import { onMount } from \"svelte\";\nimport { getSrcSet } from \"./image.helpers\";\nexport let image;\nexport let src = undefined;\nexport let srcset = undefined;\nexport let noWebp = undefined;\nexport let aspectRatio = undefined;\nexport let highPriority = undefined;\nexport let altText = undefined;\nexport let backgroundPosition = undefined;\nexport let backgroundSize = undefined;\nexport let className = undefined;\nexport let sizes = undefined;\nexport let builderBlock = undefined;\nexport let fitContent = undefined;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\n$: srcSetToUse = () => {\n const imageToUse = image || src;\n const url = imageToUse;\n if (!url ||\n // We can auto add srcset for cdn.builder.io and shopify\n // images, otherwise you can supply this prop manually\n !(url.match(/builder\\.io/) || url.match(/cdn\\.shopify\\.com/))) {\n return srcset;\n }\n if (noWebp) {\n return undefined; // no need to add srcset to svg images\n }\n if (srcset && image?.includes(\"builder.io/api/v1/image\")) {\n if (!srcset.includes(image.split(\"?\")[0])) {\n console.debug(\"Removed given srcset\");\n return getSrcSet(url);\n }\n }\n else if (image && !srcset) {\n return getSrcSet(url);\n }\n return getSrcSet(url);\n};\n$: webpSrcSet = () => {\n if (srcSetToUse?.()?.match(/builder\\.io/) && !noWebp) {\n return srcSetToUse().replace(/\\?/g, \"?format=webp&\");\n }\n else {\n return \"\";\n }\n};\n$: aspectRatioCss = () => {\n const aspectRatioStyles = {\n position: \"absolute\",\n height: \"100%\",\n width: \"100%\",\n left: \"0px\",\n top: \"0px\",\n };\n const out = aspectRatio ? aspectRatioStyles : undefined;\n return out;\n};\nonMount(() => { });\n</script>\n\n<picture>\n {#if webpSrcSet()}\n <source type=\"image/webp\" srcset={webpSrcSet()} />\n {/if}<img\n style={stringifyStyles({\n objectPosition: backgroundPosition || \"center\",\n objectFit: backgroundSize || \"cover\",\n ...aspectRatioCss(),\n })}\n loading={highPriority ? \"eager\" : \"lazy\"}\n fetchpriority={highPriority ? \"high\" : \"auto\"}\n alt={altText}\n role={altText ? undefined : \"presentation\"}\n class={\"builder-image\" + (className ? \" \" + className : \"\") + \" img\"}\n src={image}\n srcset={srcSetToUse()}\n {sizes}\n /></picture\n>\n\n{#if aspectRatio && !(builderBlock?.children?.length && fitContent)}\n <div\n style={stringifyStyles({\n paddingTop: aspectRatio * 100 + \"%\",\n })}\n class=\"builder-image-sizer div\"\n />\n{/if}\n\n{#if builderBlock?.children?.length && fitContent}\n <slot />\n{/if}\n\n{#if !fitContent && builderBlock?.children?.length}\n <div class=\"div-2\"><slot /></div>\n{/if}\n\n<style>\n .img {\n opacity: 1;\n transition: opacity 0.2s ease-in-out;\n }\n .div {\n width: 100%;\n pointer-events: none;\n font-size: 0;\n }\n .div-2 {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n</style>","<script>import { filterAttrs } from \"../helpers\";\nimport { setAttrs } from \"../helpers\";\nexport let attributes = undefined;\nexport let maxWidth = undefined;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\n</script>\n\n<section\n style={stringifyStyles({\n width: \"100%\",\n alignSelf: \"stretch\",\n flexGrow: 1,\n boxSizing: \"border-box\",\n maxWidth: maxWidth || 1200,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n marginLeft: \"auto\",\n marginRight: \"auto\",\n })}\n {...filterAttrs(attributes, \"on:\", false)}\n use:setAttrs={filterAttrs(attributes, \"on:\", true)}\n>\n <slot />\n</section>","const defaultTitle = {\n '@type': '@builder.io/sdk:Element',\n layerName: 'Accordion item title',\n responsiveStyles: {\n large: {\n marginTop: '10px',\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n flexDirection: 'column',\n paddingBottom: '10px'\n }\n },\n children: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: 'I am an accordion title. Click me!'\n }\n }\n }]\n};\nconst defaultDetail = {\n '@type': '@builder.io/sdk:Element',\n layerName: 'Accordion item detail',\n responsiveStyles: {\n large: {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n flexDirection: 'column',\n marginTop: '10px',\n paddingBottom: '10px'\n }\n },\n children: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n paddingTop: '50px',\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n paddingBottom: '50px'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: 'I am an accordion detail, hello!'\n }\n }\n }]\n};\nexport const componentInfo = {\n name: 'Builder:Accordion',\n canHaveChildren: true,\n image: 'https://cdn.builder.io/api/v1/image/assets%2FagZ9n5CUKRfbL9t6CaJOyVSK4Es2%2Ffab6c1fd3fe542408cbdec078bca7f35',\n defaultStyles: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch'\n },\n inputs: [{\n name: 'items',\n type: 'list',\n broadcast: true,\n subFields: [{\n name: 'title',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [defaultTitle]\n }, {\n name: 'detail',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [defaultDetail]\n }],\n defaultValue: [{\n title: [defaultTitle],\n detail: [defaultDetail]\n }, {\n title: [defaultTitle],\n detail: [defaultDetail]\n }],\n showIf: (options) => !options.get('useChildrenForItems')\n }, {\n name: 'oneAtATime',\n helperText: 'Only allow opening one at a time (collapse all others when new item openned)',\n type: 'boolean',\n defaultValue: false\n }, {\n name: 'grid',\n helperText: 'Display as a grid',\n type: 'boolean',\n defaultValue: false\n }, {\n name: 'gridRowWidth',\n helperText: 'Display as a grid',\n type: 'string',\n showIf: (options) => options.get('grid'),\n defaultValue: '25%'\n }, {\n name: 'useChildrenForItems',\n type: 'boolean',\n helperText: 'Use child elements for each slide, instead of the array. Useful for dynamically repeating items',\n advanced: true,\n defaultValue: false,\n onChange: (options) => {\n if (options.get('useChildrenForItems') === true) {\n options.set('items', []);\n }\n }\n }],\n shouldReceiveBuilderProps: {\n builderBlock: true,\n builderContext: true,\n builderComponents: true,\n builderLinkComponent: true\n }\n};\n","export const convertOrderNumberToString = (order) => {\n return order.toString();\n};\n","<script>import Blocks from \"../../components/blocks/index\";\nimport \"../../functions/camel-to-kebab-case\";\nimport { convertOrderNumberToString } from \"./helpers\";\nexport let grid = undefined;\nexport let oneAtATime = undefined;\nexport let items;\nexport let gridRowWidth = undefined;\nexport let builderBlock;\nexport let builderContext;\nexport let builderComponents;\nexport let builderLinkComponent = undefined;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\nfunction getAccordionTitleClassName(index) {\n return `builder-accordion-title builder-accordion-title-${open.includes(index) ? \"open\" : \"closed\"}`;\n}\nfunction getAccordionDetailClassName(index) {\n return `builder-accordion-detail builder-accordion-detail-${open.includes(index) ? \"open\" : \"closed\"}`;\n}\nfunction onClick(index) {\n if (open.includes(index)) {\n open = onlyOneAtATime() ? [] : open.filter((item) => item !== index);\n }\n else {\n open = onlyOneAtATime() ? [index] : open.concat(index);\n }\n}\n$: onlyOneAtATime = () => {\n return Boolean(grid || oneAtATime);\n};\n$: accordionStyles = () => {\n const styles = {\n display: \"flex\",\n alignItems: \"stretch\",\n flexDirection: \"column\",\n ...(grid && {\n flexDirection: \"row\",\n alignItems: \"flex-start\",\n flexWrap: \"wrap\",\n }),\n };\n return styles;\n};\n$: accordionTitleStyles = () => {\n const shared = {\n display: \"flex\",\n flexDirection: \"column\",\n };\n const styles = {\n ...shared,\n alignItems: \"stretch\",\n cursor: \"pointer\",\n };\n return Object.fromEntries(Object.entries(styles).filter(([_, value]) => value !== undefined));\n};\n$: openGridItemOrder = () => {\n let itemOrder = null;\n const getOpenGridItemPosition = grid && open.length;\n if (getOpenGridItemPosition && document) {\n const openItemIndex = open[0];\n const openItem = document.querySelector(`.builder-accordion-title[data-index=\"${openItemIndex}\"]`);\n let subjectItem = openItem;\n itemOrder = openItemIndex;\n if (subjectItem) {\n let prevItemRect = subjectItem.getBoundingClientRect();\n while ((subjectItem = subjectItem && subjectItem.nextElementSibling)) {\n if (subjectItem) {\n if (subjectItem.classList.contains(\"builder-accordion-detail\")) {\n continue;\n }\n const subjectItemRect = subjectItem.getBoundingClientRect();\n if (subjectItemRect.left > prevItemRect.left) {\n const index = parseInt(subjectItem.getAttribute(\"data-index\") || \"\", 10);\n if (!isNaN(index)) {\n prevItemRect = subjectItemRect;\n itemOrder = index;\n }\n }\n else {\n break;\n }\n }\n }\n }\n }\n if (typeof itemOrder === \"number\") {\n itemOrder = itemOrder + 1;\n }\n return itemOrder;\n};\n$: accordionDetailStyles = () => {\n const styles = {\n ...{\n order: typeof openGridItemOrder() === \"number\"\n ? openGridItemOrder()\n : undefined,\n },\n ...(grid && {\n width: \"100%\",\n }),\n };\n return Object.fromEntries(Object.entries(styles).filter(([_, value]) => value !== undefined));\n};\nlet open = [];\n</script>\n\n<div style={stringifyStyles(accordionStyles())} class=\"builder-accordion\">\n {#each items as item, index}\n <div\n style={stringifyStyles({\n ...accordionTitleStyles(),\n ...(grid && {\n width: gridRowWidth,\n ...{\n order:\n openGridItemOrder() !== null\n ? convertOrderNumberToString(index)\n : convertOrderNumberToString(index + 1),\n },\n }),\n })}\n class={getAccordionTitleClassName(index)}\n data-index={index}\n on:click={(event) => {\n onClick(index);\n }}\n >\n <Blocks\n blocks={item.title}\n path={`items.${index}.title`}\n parent={builderBlock.id}\n context={builderContext}\n registeredComponents={builderComponents}\n linkComponent={builderLinkComponent}\n />\n </div>\n\n {#if open.includes(index)}\n <div\n style={stringifyStyles(accordionDetailStyles())}\n class={getAccordionDetailClassName(index)}\n >\n <Blocks\n blocks={item.detail}\n path={`items.${index}.detail`}\n parent={builderBlock.id}\n context={builderContext}\n registeredComponents={builderComponents}\n linkComponent={builderLinkComponent}\n />\n </div>\n {/if}\n {/each}\n</div>","export const componentInfo = {\n name: 'Core:Button',\n image: 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F81a15681c3e74df09677dfc57a615b13',\n defaultStyles: {\n // TODO: make min width more intuitive and set one\n appearance: 'none',\n paddingTop: '15px',\n paddingBottom: '15px',\n paddingLeft: '25px',\n paddingRight: '25px',\n backgroundColor: '#000000',\n color: 'white',\n borderRadius: '4px',\n textAlign: 'center',\n cursor: 'pointer'\n },\n inputs: [{\n name: 'text',\n type: 'text',\n defaultValue: 'Click me!',\n bubble: true\n }, {\n name: 'link',\n type: 'url',\n bubble: true\n }, {\n name: 'openLinkInNewTab',\n type: 'boolean',\n defaultValue: false,\n friendlyName: 'Open link in new tab'\n }],\n static: true,\n noWrap: true,\n shouldReceiveBuilderProps: {\n builderLinkComponent: true\n }\n};\n","export const componentInfo = {\n // TODO: ways to statically preprocess JSON for references, functions, etc\n name: 'Columns',\n isRSC: true,\n inputs: [{\n name: 'columns',\n type: 'array',\n broadcast: true,\n subFields: [{\n name: 'blocks',\n type: 'array',\n hideFromUI: true,\n defaultValue: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n flexShrink: '0',\n position: 'relative',\n marginTop: '30px',\n textAlign: 'center',\n lineHeight: 'normal',\n height: 'auto',\n minHeight: '20px',\n minWidth: '20px',\n overflow: 'hidden'\n }\n },\n component: {\n name: 'Image',\n options: {\n image: 'https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d',\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n aspectRatio: 0.7004048582995948\n }\n }\n }, {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n flexShrink: '0',\n position: 'relative',\n marginTop: '30px',\n textAlign: 'center',\n lineHeight: 'normal',\n height: 'auto'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: '<p>Enter some text...</p>'\n }\n }\n }]\n }, {\n name: 'width',\n type: 'number',\n hideFromUI: true,\n helperText: 'Width %, e.g. set to 50 to fill half of the space'\n }, {\n name: 'link',\n type: 'url',\n helperText: 'Optionally set a url that clicking this column will link to'\n }],\n defaultValue: [{\n blocks: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n flexShrink: '0',\n position: 'relative',\n marginTop: '30px',\n textAlign: 'center',\n lineHeight: 'normal',\n height: 'auto',\n minHeight: '20px',\n minWidth: '20px',\n overflow: 'hidden'\n }\n },\n component: {\n name: 'Image',\n options: {\n image: 'https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d',\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n aspectRatio: 0.7004048582995948\n }\n }\n }, {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n flexShrink: '0',\n position: 'relative',\n marginTop: '30px',\n textAlign: 'center',\n lineHeight: 'normal',\n height: 'auto'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: '<p>Enter some text...</p>'\n }\n }\n }]\n }, {\n blocks: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n flexShrink: '0',\n position: 'relative',\n marginTop: '30px',\n textAlign: 'center',\n lineHeight: 'normal',\n height: 'auto',\n minHeight: '20px',\n minWidth: '20px',\n overflow: 'hidden'\n }\n },\n component: {\n name: 'Image',\n options: {\n image: 'https://builder.io/api/v1/image/assets%2Fpwgjf0RoYWbdnJSbpBAjXNRMe9F2%2Ffb27a7c790324294af8be1c35fe30f4d',\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n aspectRatio: 0.7004048582995948\n }\n }\n }, {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n flexShrink: '0',\n position: 'relative',\n marginTop: '30px',\n textAlign: 'center',\n lineHeight: 'normal',\n height: 'auto'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: '<p>Enter some text...</p>'\n }\n }\n }]\n }],\n onChange: (options) => {\n function clearWidths() {\n columns.forEach(col => {\n col.delete('width');\n });\n }\n const columns = options.get('columns');\n if (Array.isArray(columns)) {\n const containsColumnWithWidth = !!columns.find(col => col.get('width'));\n if (containsColumnWithWidth) {\n const containsColumnWithoutWidth = !!columns.find(col => !col.get('width'));\n if (containsColumnWithoutWidth) {\n clearWidths();\n }\n else {\n const sumWidths = columns.reduce((memo, col) => {\n return memo + col.get('width');\n }, 0);\n const widthsDontAddUp = sumWidths !== 100;\n if (widthsDontAddUp) {\n clearWidths();\n }\n }\n }\n }\n }\n }, {\n name: 'space',\n type: 'number',\n defaultValue: 20,\n helperText: 'Size of gap between columns',\n advanced: true\n }, {\n name: 'stackColumnsAt',\n type: 'string',\n defaultValue: 'tablet',\n helperText: 'Convert horizontal columns to vertical at what device size',\n enum: ['tablet', 'mobile', 'never'],\n advanced: true\n }, {\n name: 'reverseColumnsWhenStacked',\n type: 'boolean',\n defaultValue: false,\n helperText: 'When stacking columns for mobile devices, reverse the ordering',\n advanced: true\n }],\n shouldReceiveBuilderProps: {\n builderBlock: true,\n builderContext: true,\n builderComponents: true,\n builderLinkComponent: true\n }\n};\n","export const componentInfo = {\n name: 'Fragment',\n static: true,\n hidden: true,\n canHaveChildren: true,\n noWrap: true\n};\n","export const componentInfo = {\n name: 'Image',\n static: true,\n image: 'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4',\n defaultStyles: {\n position: 'relative',\n minHeight: '20px',\n minWidth: '20px',\n overflow: 'hidden'\n },\n canHaveChildren: true,\n inputs: [{\n name: 'image',\n type: 'file',\n bubble: true,\n allowedFileTypes: ['jpeg', 'jpg', 'png', 'svg', 'webp'],\n required: true,\n defaultValue: 'https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F72c80f114dc149019051b6852a9e3b7a',\n onChange: (options) => {\n const DEFAULT_ASPECT_RATIO = 0.7041;\n options.delete('srcset');\n options.delete('noWebp');\n function loadImage(url, timeout = 60000) {\n return new Promise((resolve, reject) => {\n const img = document.createElement('img');\n let loaded = false;\n img.onload = () => {\n loaded = true;\n resolve(img);\n };\n img.addEventListener('error', event => {\n console.warn('Image load failed', event.error);\n reject(event.error);\n });\n img.src = url;\n setTimeout(() => {\n if (!loaded) {\n reject(new Error('Image load timed out'));\n }\n }, timeout);\n });\n }\n function round(num) {\n return Math.round(num * 1000) / 1000;\n }\n const value = options.get('image');\n const aspectRatio = options.get('aspectRatio');\n // For SVG images - don't render as webp, keep them as SVG\n fetch(value).then(res => res.blob()).then(blob => {\n if (blob.type.includes('svg')) {\n options.set('noWebp', true);\n }\n });\n if (value && (!aspectRatio || aspectRatio === DEFAULT_ASPECT_RATIO)) {\n return loadImage(value).then(img => {\n const possiblyUpdatedAspectRatio = options.get('aspectRatio');\n if (options.get('image') === value && (!possiblyUpdatedAspectRatio || possiblyUpdatedAspectRatio === DEFAULT_ASPECT_RATIO)) {\n if (img.width && img.height) {\n options.set('aspectRatio', round(img.height / img.width));\n options.set('height', img.height);\n options.set('width', img.width);\n }\n }\n });\n }\n }\n }, {\n name: 'backgroundSize',\n type: 'text',\n defaultValue: 'cover',\n enum: [{\n label: 'contain',\n value: 'contain',\n helperText: 'The image should never get cropped'\n }, {\n label: 'cover',\n value: 'cover',\n helperText: \"The image should fill it's box, cropping when needed\"\n }]\n }, {\n name: 'backgroundPosition',\n type: 'text',\n defaultValue: 'center',\n enum: ['center', 'top', 'left', 'right', 'bottom', 'top left', 'top right', 'bottom left', 'bottom right']\n }, {\n name: 'altText',\n type: 'string',\n helperText: 'Text to display when the user has images off'\n }, {\n name: 'height',\n type: 'number',\n hideFromUI: true\n }, {\n name: 'width',\n type: 'number',\n hideFromUI: true\n }, {\n name: 'sizes',\n type: 'string',\n hideFromUI: true\n }, {\n name: 'srcset',\n type: 'string',\n hideFromUI: true\n }, {\n name: 'lazy',\n type: 'boolean',\n defaultValue: true,\n hideFromUI: true\n }, {\n name: 'fitContent',\n type: 'boolean',\n helperText: \"When child blocks are provided, fit to them instead of using the image's aspect ratio\",\n defaultValue: true\n }, {\n name: 'highPriority',\n type: 'boolean',\n advanced: true,\n helperText: 'Mark this image as high priority compared to other images on the page. This prevents lazy loading of the image and tells the browser to load this image before others on the page.'\n }, {\n name: 'aspectRatio',\n type: 'number',\n helperText: \"This is the ratio of height/width, e.g. set to 1.5 for a 300px wide and 200px tall photo. Set to 0 to not force the image to maintain it's aspect ratio\",\n advanced: true,\n defaultValue: 0.7041\n }],\n shouldReceiveBuilderProps: {\n builderBlock: true\n }\n};\n","export const componentInfo = {\n name: 'Core:Section',\n static: true,\n image: 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F682efef23ace49afac61748dd305c70a',\n inputs: [{\n name: 'maxWidth',\n type: 'number',\n defaultValue: 1200\n }, {\n name: 'lazyLoad',\n type: 'boolean',\n defaultValue: false,\n advanced: true,\n description: 'Only render this section when in view'\n }],\n defaultStyles: {\n paddingLeft: '20px',\n paddingRight: '20px',\n paddingTop: '50px',\n paddingBottom: '50px',\n marginTop: '0px',\n width: '100vw',\n marginLeft: 'calc(50% - 50vw)'\n },\n canHaveChildren: true,\n defaultChildren: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n textAlign: 'center'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: \"<p><b>I am a section! My content keeps from getting too wide, so that it's easy to read even on big screens.</b></p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur</p>\"\n }\n }\n }]\n};\n","export const componentInfo = {\n name: 'Slot',\n isRSC: true,\n description: 'Allow child blocks to be inserted into this content when used as a Symbol',\n docsLink: 'https://www.builder.io/c/docs/symbols-with-blocks',\n image: 'https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F3aad6de36eae43b59b52c85190fdef56',\n // Maybe wrap this for canHaveChildren so bind children to this hm\n inputs: [{\n name: 'name',\n type: 'string',\n required: true,\n defaultValue: 'children'\n }],\n shouldReceiveBuilderProps: {\n builderContext: true,\n builderComponents: true\n }\n};\n","<script context=\"module\"></script>\n\n<script>import Blocks from \"../../components/blocks/blocks.svelte\";\nimport \"../../functions/deopt\";\nexport let builderContext;\nexport let name;\nexport let builderComponents;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\n</script>\n\n<div\n style={stringifyStyles({\n pointerEvents: \"auto\",\n })}\n {...!$builderContext.context?.symbolId && {\n \"builder-slot\": name,\n }}\n>\n <Blocks\n parent={$builderContext.context?.symbolId}\n path={`symbol.data.${name}`}\n context={builderContext}\n registeredComponents={builderComponents}\n blocks={$builderContext.rootState?.[name]}\n />\n</div>","export const componentInfo = {\n name: 'Symbol',\n noWrap: true,\n static: true,\n isRSC: true,\n inputs: [{\n name: 'symbol',\n type: 'uiSymbol'\n }, {\n name: 'dataOnly',\n helperText: \"Make this a data symbol that doesn't display any UI\",\n type: 'boolean',\n defaultValue: false,\n advanced: true,\n hideFromUI: true\n }, {\n name: 'inheritState',\n helperText: 'Inherit the parent component state and data',\n type: 'boolean',\n defaultValue: false,\n advanced: true\n }, {\n name: 'renderToLiquid',\n helperText: 'Render this symbols contents to liquid. Turn off to fetch with javascript and use custom targeting',\n type: 'boolean',\n defaultValue: false,\n advanced: true,\n hideFromUI: true\n }, {\n name: 'useChildren',\n hideFromUI: true,\n type: 'boolean'\n }],\n shouldReceiveBuilderProps: {\n builderBlock: true,\n builderContext: true,\n builderComponents: true,\n builderLinkComponent: true\n }\n};\n","<script>import Blocks from \"../../components/blocks/blocks.svelte\";\nexport let defaultActiveTab = undefined;\nexport let tabs;\nexport let collapsible = undefined;\nexport let tabHeaderLayout = undefined;\nexport let activeTabStyle = undefined;\nexport let builderBlock;\nexport let builderContext;\nexport let builderComponents;\nexport let builderLinkComponent = undefined;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\nfunction activeTabContent(active) {\n return tabs && tabs[active].content;\n}\nfunction onClick(index) {\n if (index === activeTab && collapsible) {\n activeTab = -1;\n }\n else {\n activeTab = index;\n }\n}\nlet activeTab = defaultActiveTab ? defaultActiveTab - 1 : 0;\n</script>\n\n<div>\n <div\n style={stringifyStyles({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: tabHeaderLayout || \"flex-start\",\n overflow: \"auto\",\n })}\n class=\"builder-tabs-wrap\"\n >\n {#each tabs as tab, index (index)}\n <span\n style={stringifyStyles({\n ...(activeTab === index ? activeTabStyle : {}),\n })}\n class={`builder-tab-wrap ${\n activeTab === index ? \"builder-tab-active\" : \"\"\n }`}\n on:click={(event) => {\n onClick(index);\n }}\n ><Blocks\n parent={builderBlock.id}\n path={`tabs.${index}.label`}\n blocks={tab.label}\n context={builderContext}\n registeredComponents={builderComponents}\n linkComponent={builderLinkComponent}\n /></span\n >\n {/each}\n </div>\n {#if activeTabContent(activeTab)}\n <div>\n <Blocks\n parent={builderBlock.id}\n path={`tabs.${activeTab}.content`}\n blocks={activeTabContent(activeTab)}\n context={builderContext}\n registeredComponents={builderComponents}\n linkComponent={builderLinkComponent}\n />\n </div>\n {/if}\n</div>","import { TARGET } from '../../constants/target';\nexport const componentInfo = {\n shouldReceiveBuilderProps: {\n builderBlock: TARGET === 'reactNative' ? true : false,\n builderContext: true\n },\n name: 'Text',\n static: true,\n isRSC: true,\n image: 'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-text_fields-24px%20(1).svg?alt=media&token=12177b73-0ee3-42ca-98c6-0dd003de1929',\n inputs: [{\n name: 'text',\n type: 'html',\n required: true,\n autoFocus: true,\n bubble: true,\n defaultValue: 'Enter some text...'\n }],\n defaultStyles: {\n lineHeight: 'normal',\n height: 'auto',\n textAlign: 'center'\n }\n};\n","<script>import { evaluate } from \"../../functions/evaluate/index\";\nexport let builderContext;\nexport let text = undefined;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\n$: processedText = () => {\n const context = $builderContext;\n const { context: contextContext, localState, rootState, rootSetState, } = context;\n return String(text?.toString() || \"\").replace(/{{([^}]+)}}/g, (match, group) => evaluate({\n code: group,\n context: contextContext,\n localState,\n rootState,\n rootSetState,\n }));\n};\n</script>\n\n<div\n style={stringifyStyles({\n outline: \"none\",\n })}\n class=\"builder-text\"\n>\n {@html processedText()}\n</div>","export const componentInfo = {\n name: 'Custom Code',\n static: true,\n requiredPermissions: ['editCode'],\n inputs: [{\n name: 'code',\n type: 'html',\n required: true,\n defaultValue: '<p>Hello there, I am custom HTML code!</p>',\n code: true\n }, {\n name: 'replaceNodes',\n type: 'boolean',\n helperText: 'Preserve server rendered dom nodes',\n advanced: true\n }, {\n name: 'scriptsClientOnly',\n type: 'boolean',\n defaultValue: false,\n helperText: 'Only print and run scripts on the client. Important when scripts influence DOM that could be replaced when client loads',\n advanced: true\n }]\n};\n","<script context=\"module\"></script>\n\n<script>import { onMount } from \"svelte\";\nexport let replaceNodes = undefined;\nexport let code;\nlet elementRef;\nlet scriptsInserted = [];\nlet scriptsRun = [];\nonMount(() => {\n // TODO: Move this function to standalone one in '@builder.io/utils'\n if (!elementRef?.getElementsByTagName || typeof window === \"undefined\") {\n return;\n }\n const scripts = elementRef.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i];\n if (script.src) {\n if (scriptsInserted.includes(script.src)) {\n continue;\n }\n scriptsInserted.push(script.src);\n const newScript = document.createElement(\"script\");\n newScript.async = true;\n newScript.src = script.src;\n document.head.appendChild(newScript);\n }\n else if (!script.type ||\n [\n \"text/javascript\",\n \"application/javascript\",\n \"application/ecmascript\",\n ].includes(script.type)) {\n if (scriptsRun.includes(script.innerText)) {\n continue;\n }\n try {\n scriptsRun.push(script.innerText);\n new Function(script.innerText)();\n }\n catch (error) {\n console.warn(\"`CustomCode`: Error running script:\", error);\n }\n }\n }\n});\n</script>\n\n<div\n bind:this={elementRef}\n class={\"builder-custom-code\" + (replaceNodes ? \" replace-nodes\" : \"\")}\n>\n {@html code}\n</div>","export const componentInfo = {\n name: 'Embed',\n static: true,\n inputs: [{\n name: 'url',\n type: 'url',\n required: true,\n defaultValue: '',\n helperText: 'e.g. enter a youtube url, google map, etc'\n }, {\n name: 'content',\n type: 'html',\n defaultValue: '<div style=\"padding: 20px; text-align: center\">(Choose an embed URL)<div>',\n hideFromUI: true\n }]\n};\n","const SCRIPT_MIME_TYPES = ['text/javascript', 'application/javascript', 'application/ecmascript'];\nexport const isJsScript = (script) => SCRIPT_MIME_TYPES.includes(script.type);\n","<script context=\"module\"></script>\n\n<script>import { isJsScript } from \"./helpers\";\nexport let content;\nfunction findAndRunScripts() {\n if (!elem || !elem.getElementsByTagName)\n return;\n const scripts = elem.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i];\n if (script.src && !scriptsInserted.includes(script.src)) {\n scriptsInserted.push(script.src);\n const newScript = document.createElement(\"script\");\n newScript.async = true;\n newScript.src = script.src;\n document.head.appendChild(newScript);\n }\n else if (isJsScript(script) && !scriptsRun.includes(script.innerText)) {\n try {\n scriptsRun.push(script.innerText);\n new Function(script.innerText)();\n }\n catch (error) {\n console.warn(\"`Embed`: Error running script:\", error);\n }\n }\n }\n}\nlet elem;\nlet scriptsInserted = [];\nlet scriptsRun = [];\nlet ranInitFn = false;\nfunction onUpdateFn_0(..._args) {\n if (elem && !ranInitFn) {\n ranInitFn = true;\n findAndRunScripts();\n }\n}\n$: onUpdateFn_0(...[elem, ranInitFn]);\n</script>\n\n<div class=\"builder-embed\" bind:this={elem}>{@html content}</div>","export const componentInfo = {\n name: 'Form:Form',\n // editableTags: ['builder-form-error']\n defaults: {\n responsiveStyles: {\n large: {\n marginTop: '15px',\n paddingBottom: '15px'\n }\n }\n },\n image: 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fef36d2a846134910b64b88e6d18c5ca5',\n inputs: [{\n name: 'sendSubmissionsTo',\n type: 'string',\n // TODO: save to builder data and user can download as csv\n // TODO: easy for mode too or computed add/remove fields form mode\n // so you can edit details and high level mode at same time...\n // Later - more integrations like mailchimp\n // /api/v1/form-submit?to=mailchimp\n enum: [{\n label: 'Send to email',\n value: 'email',\n helperText: 'Send form submissions to the email address of your choosing'\n }, {\n label: 'Custom',\n value: 'custom',\n helperText: 'Handle where the form requests go manually with a little code, e.g. to your own custom backend'\n }],\n defaultValue: 'email'\n }, {\n name: 'sendSubmissionsToEmail',\n type: 'string',\n required: true,\n // TODO: required: () => options.get(\"sendSubmissionsTo\") === \"email\"\n defaultValue: 'your@email.com',\n showIf: 'options.get(\"sendSubmissionsTo\") === \"email\"'\n }, {\n name: 'sendWithJs',\n type: 'boolean',\n helperText: 'Set to false to use basic html form action',\n defaultValue: true,\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\"'\n }, {\n name: 'name',\n type: 'string',\n defaultValue: 'My form'\n // advanced: true\n }, {\n name: 'action',\n type: 'string',\n helperText: 'URL to send the form data to',\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\"'\n }, {\n name: 'contentType',\n type: 'string',\n defaultValue: 'application/json',\n advanced: true,\n // TODO: do automatically if file input\n enum: ['application/json', 'multipart/form-data', 'application/x-www-form-urlencoded'],\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\" && options.get(\"sendWithJs\") === true'\n }, {\n name: 'method',\n type: 'string',\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\"',\n defaultValue: 'POST',\n advanced: true\n }, {\n name: 'previewState',\n type: 'string',\n // TODO: persist: false flag\n enum: ['unsubmitted', 'sending', 'success', 'error'],\n defaultValue: 'unsubmitted',\n helperText: 'Choose a state to edit, e.g. choose \"success\" to show what users see on success and edit the message',\n showIf: 'options.get(\"sendSubmissionsTo\") !== \"zapier\" && options.get(\"sendWithJs\") === true'\n }, {\n name: 'successUrl',\n type: 'url',\n helperText: 'Optional URL to redirect the user to on form submission success',\n showIf: 'options.get(\"sendSubmissionsTo\") !== \"zapier\" && options.get(\"sendWithJs\") === true'\n }, {\n name: 'resetFormOnSubmit',\n type: 'boolean',\n showIf: \"options.get('sendSubmissionsTo') === 'custom' && options.get('sendWithJs') === true\",\n advanced: true\n }, {\n name: 'successMessage',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n marginTop: '10px'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: '<span>Thanks!</span>'\n }\n }\n }]\n }, {\n name: 'validate',\n type: 'boolean',\n defaultValue: true,\n advanced: true\n }, {\n name: 'errorMessagePath',\n type: 'text',\n advanced: true,\n helperText: 'Path to where to get the error message from in a JSON response to display to the user, e.g. \"error.message\" for a response like { \"error\": { \"message\": \"this username is taken\" }}'\n }, {\n name: 'errorMessage',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n marginTop: '10px'\n }\n },\n bindings: {\n 'component.options.text': 'state.formErrorMessage || block.component.options.text'\n },\n component: {\n name: 'Text',\n options: {\n text: '<span>Form submission error :( Please check your answers and try again</span>'\n }\n }\n }]\n }, {\n name: 'sendingMessage',\n type: 'uiBlocks',\n hideFromUI: true,\n defaultValue: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n marginTop: '10px'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: '<span>Sending...</span>'\n }\n }\n }]\n }, {\n name: 'customHeaders',\n type: 'map',\n valueType: {\n type: 'string'\n },\n advanced: true,\n showIf: 'options.get(\"sendSubmissionsTo\") === \"custom\" && options.get(\"sendWithJs\") === true'\n }],\n noWrap: true,\n canHaveChildren: true,\n defaultChildren: [{\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n marginTop: '10px'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: '<span>Enter your name</span>'\n }\n }\n }, {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n marginTop: '10px'\n }\n },\n component: {\n name: 'Form:Input',\n options: {\n name: 'name',\n placeholder: 'Jane Doe'\n }\n }\n }, {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n marginTop: '10px'\n }\n },\n component: {\n name: 'Text',\n options: {\n text: '<span>Enter your email</span>'\n }\n }\n }, {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n marginTop: '10px'\n }\n },\n component: {\n name: 'Form:Input',\n options: {\n name: 'email',\n placeholder: 'jane@doe.com'\n }\n }\n }, {\n '@type': '@builder.io/sdk:Element',\n responsiveStyles: {\n large: {\n marginTop: '10px'\n }\n },\n component: {\n name: 'Form:SubmitButton',\n options: {\n text: 'Submit'\n }\n }\n }],\n shouldReceiveBuilderProps: {\n builderBlock: true,\n builderContext: true,\n builderComponents: true,\n builderLinkComponent: true\n }\n};\n","export const validEnvList = ['production', 'qa', 'test', 'development', 'dev', 'cdn-qa', 'cloud', 'fast', 'cdn2', 'cdn-prod'];\nexport const getEnv = () => {\n const env = process.env.NODE_ENV || 'production';\n return validEnvList.includes(env) ? env : 'production';\n};\n","<script context=\"module\">/**\n * This import is used by the Svelte SDK. Do not remove.\n */\n</script>\n\n<script>import Block from \"../../../components/block/block.svelte\";\nimport Blocks from \"../../../components/blocks/blocks.svelte\";\nimport { getEnv } from \"../../../functions/get-env\";\nimport { get } from \"../../../functions/get\";\nimport { isEditing } from \"../../../functions/is-editing\";\nimport { set } from \"../../../functions/set\";\nimport { filterAttrs } from \"../../helpers\";\nimport { logFetch } from \"../../../functions/log-fetch\";\nimport { setAttrs } from \"../../helpers\";\nexport let builderContext;\nexport let previewState = undefined;\nexport let sendWithJs = undefined;\nexport let sendSubmissionsTo = undefined;\nexport let action = undefined;\nexport let customHeaders = undefined;\nexport let contentType = undefined;\nexport let sendSubmissionsToEmail = undefined;\nexport let name = undefined;\nexport let method = undefined;\nexport let errorMessagePath = undefined;\nexport let resetFormOnSubmit = undefined;\nexport let successUrl = undefined;\nexport let validate = undefined;\nexport let attributes = undefined;\nexport let builderBlock;\nexport let builderComponents;\nexport let builderLinkComponent = undefined;\nexport let errorMessage = undefined;\nexport let sendingMessage = undefined;\nexport let successMessage = undefined;\nfunction mergeNewRootState(newData) {\n const combinedState = {\n ...$builderContext.rootState,\n ...newData,\n };\n if ($builderContext.rootSetState) {\n $builderContext.rootSetState?.(combinedState);\n }\n else {\n $builderContext.rootState = combinedState;\n }\n}\nfunction submissionState() {\n return (isEditing() && previewState) || formState;\n}\nfunction onSubmit(event) {\n const sendWithJsProp = sendWithJs || sendSubmissionsTo === \"email\";\n if (sendSubmissionsTo === \"zapier\") {\n event.preventDefault();\n }\n else if (sendWithJsProp) {\n if (!(action || sendSubmissionsTo === \"email\")) {\n event.preventDefault();\n return;\n }\n event.preventDefault();\n const el = event.currentTarget || event.target;\n const headers = customHeaders || {};\n let body;\n const formData = new FormData(el);\n // TODO: maybe support null\n const formPairs = Array.from(el.querySelectorAll(\"input,select,textarea\"))\n .filter((el) => !!el.name)\n .map((el) => {\n let value;\n const key = el.name;\n if (el instanceof HTMLInputElement) {\n if (el.type === \"radio\") {\n if (el.checked) {\n value = el.name;\n return {\n key,\n value,\n };\n }\n }\n else if (el.type === \"checkbox\") {\n value = el.checked;\n }\n else if (el.type === \"number\" || el.type === \"range\") {\n const num = el.valueAsNumber;\n if (!isNaN(num)) {\n value = num;\n }\n }\n else if (el.type === \"file\") {\n // TODO: one vs multiple files\n value = el.files;\n }\n else {\n value = el.value;\n }\n }\n else {\n value = el.value;\n }\n return {\n key,\n value,\n };\n });\n let formContentType = contentType;\n if (sendSubmissionsTo === \"email\") {\n formContentType = \"multipart/form-data\";\n }\n Array.from(formPairs).forEach(({ value }) => {\n if (value instanceof File ||\n (Array.isArray(value) && value[0] instanceof File) ||\n value instanceof FileList) {\n formContentType = \"multipart/form-data\";\n }\n });\n // TODO: send as urlEncoded or multipart by default\n // because of ease of use and reliability in browser API\n // for encoding the form?\n if (formContentType !== \"application/json\") {\n body = formData;\n }\n else {\n // Json\n const json = {};\n Array.from(formPairs).forEach(({ value, key }) => {\n set(json, key, value);\n });\n body = JSON.stringify(json);\n }\n if (formContentType && formContentType !== \"multipart/form-data\") {\n if (\n /* Zapier doesn't allow content-type header to be sent from browsers */\n !(sendWithJsProp && action?.includes(\"zapier.com\"))) {\n headers[\"content-type\"] = formContentType;\n }\n }\n const presubmitEvent = new CustomEvent(\"presubmit\", {\n detail: {\n body,\n },\n });\n if (formRef) {\n formRef.dispatchEvent(presubmitEvent);\n if (presubmitEvent.defaultPrevented) {\n return;\n }\n }\n formState = \"sending\";\n const formUrl = `${getEnv() === \"dev\" ? \"http://localhost:5000\" : \"https://builder.io\"}/api/v1/form-submit?apiKey=${$builderContext.apiKey}&to=${btoa(sendSubmissionsToEmail || \"\")}&name=${encodeURIComponent(name || \"\")}`;\n const url = sendSubmissionsTo === \"email\"\n ? formUrl\n : action; /* TODO: throw error if no action URL */\n logFetch(url);\n fetch(url, {\n body,\n headers,\n method: method || \"post\",\n }).then(async (res) => {\n let body;\n const contentType = res.headers.get(\"content-type\");\n if (contentType && contentType.indexOf(\"application/json\") !== -1) {\n body = await res.json();\n }\n else {\n body = await res.text();\n }\n if (!res.ok && errorMessagePath) {\n /* TODO: allow supplying an error formatter function */\n let message = get(body, errorMessagePath);\n if (message) {\n if (typeof message !== \"string\") {\n /* TODO: ideally convert json to yaml so it woul dbe like\n error: - email has been taken */\n message = JSON.stringify(message);\n }\n formErrorMessage = message;\n mergeNewRootState({\n formErrorMessage: message,\n });\n }\n }\n responseData = body;\n formState = res.ok ? \"success\" : \"error\";\n if (res.ok) {\n const submitSuccessEvent = new CustomEvent(\"submit:success\", {\n detail: {\n res,\n body,\n },\n });\n if (formRef) {\n formRef.dispatchEvent(submitSuccessEvent);\n if (submitSuccessEvent.defaultPrevented) {\n return;\n }\n /* TODO: option to turn this on/off? */\n if (resetFormOnSubmit !== false) {\n formRef.reset();\n }\n }\n /* TODO: client side route event first that can be preventDefaulted */\n if (successUrl) {\n if (formRef) {\n const event = new CustomEvent(\"route\", {\n detail: {\n url: successUrl,\n },\n });\n formRef.dispatchEvent(event);\n if (!event.defaultPrevented) {\n location.href = successUrl;\n }\n }\n else {\n location.href = successUrl;\n }\n }\n }\n }, (err) => {\n const submitErrorEvent = new CustomEvent(\"submit:error\", {\n detail: {\n error: err,\n },\n });\n if (formRef) {\n formRef.dispatchEvent(submitErrorEvent);\n if (submitErrorEvent.defaultPrevented) {\n return;\n }\n }\n responseData = err;\n formState = \"error\";\n });\n }\n}\nlet formRef;\nlet formState = \"unsubmitted\";\nlet responseData = null;\nlet formErrorMessage = \"\";\n</script>\n\n<form\n {validate}\n bind:this={formRef}\n action={!sendWithJs && action}\n {method}\n {name}\n on:submit={(event) => {\n onSubmit(event);\n }}\n {...{}}\n {...filterAttrs(attributes, \"on:\", false)}\n use:setAttrs={filterAttrs(attributes, \"on:\", true)}\n>\n {#if builderBlock && builderBlock.children}\n {#each builderBlock?.children as block, idx (`form-block-${idx}`)}\n <Block\n {block}\n context={builderContext}\n registeredComponents={builderComponents}\n linkComponent={builderLinkComponent}\n />\n {/each}\n {/if}\n {#if submissionState() === \"error\"}\n <Blocks\n path=\"errorMessage\"\n blocks={errorMessage}\n context={builderContext}\n />\n {/if}\n {#if submissionState() === \"sending\"}\n <Blocks\n path=\"sendingMessage\"\n blocks={sendingMessage}\n context={builderContext}\n />\n {/if}\n {#if submissionState() === \"error\" && responseData}\n <pre class=\"builder-form-error-text pre\">{JSON.stringify(\n responseData,\n null,\n 2\n )}</pre>\n {/if}\n {#if submissionState() === \"success\"}\n <Blocks\n path=\"successMessage\"\n blocks={successMessage}\n context={builderContext}\n />\n {/if}\n</form>\n\n<style>\n .pre {\n padding: 10px;\n color: red;\n text-align: center;\n }\n</style>","export const componentInfo = {\n name: 'Form:Input',\n image: 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca',\n inputs: [{\n name: 'type',\n type: 'text',\n enum: ['text', 'number', 'email', 'url', 'checkbox', 'radio', 'range', 'date', 'datetime-local', 'search', 'tel', 'time', 'file', 'month', 'week', 'password', 'color', 'hidden'],\n defaultValue: 'text'\n }, {\n name: 'name',\n type: 'string',\n required: true,\n helperText: 'Every input in a form needs a unique name describing what it takes, e.g. \"email\"'\n }, {\n name: 'placeholder',\n type: 'string',\n defaultValue: 'Hello there',\n helperText: 'Text to display when there is no value'\n },\n // TODO: handle value vs default value automatically like ng-model\n {\n name: 'defaultValue',\n type: 'string'\n }, {\n name: 'value',\n type: 'string',\n advanced: true\n }, {\n name: 'required',\n type: 'boolean',\n helperText: 'Is this input required to be filled out to submit a form',\n defaultValue: false\n }],\n noWrap: true,\n static: true,\n defaultStyles: {\n paddingTop: '10px',\n paddingBottom: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n borderRadius: '3px',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: '#ccc'\n }\n};\n","<script context=\"module\">/**\n * This import is used by the Svelte SDK. Do not remove.\n */\n</script>\n\n<script>import { isEditing } from \"../../../functions/is-editing\";\nimport { filterAttrs } from \"../../helpers\";\nimport { setAttrs } from \"../../helpers\";\nexport let attributes = undefined;\nexport let defaultValue = undefined;\nexport let placeholder = undefined;\nexport let type = undefined;\nexport let name = undefined;\nexport let value = undefined;\nexport let required = undefined;\n</script>\n\n<input\n {...filterAttrs(attributes, \"on:\", false)}\n key={isEditing() && defaultValue ? defaultValue : \"default-key\"}\n {placeholder}\n {type}\n {name}\n {value}\n {defaultValue}\n {required}\n use:setAttrs={filterAttrs(attributes, \"on:\", true)}\n/>","export const componentInfo = {\n name: 'Form:Select',\n image: 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F83acca093fb24aaf94dee136e9a4b045',\n defaultStyles: {\n alignSelf: 'flex-start'\n },\n inputs: [{\n name: 'options',\n type: 'list',\n required: true,\n subFields: [{\n name: 'value',\n type: 'text',\n required: true\n }, {\n name: 'name',\n type: 'text'\n }],\n defaultValue: [{\n value: 'option 1'\n }, {\n value: 'option 2'\n }]\n }, {\n name: 'name',\n type: 'string',\n required: true,\n helperText: 'Every select in a form needs a unique name describing what it gets, e.g. \"email\"'\n }, {\n name: 'defaultValue',\n type: 'string'\n }, {\n name: 'value',\n type: 'string',\n advanced: true\n }, {\n name: 'required',\n type: 'boolean',\n defaultValue: false\n }],\n static: true,\n noWrap: true\n};\n","<script context=\"module\">/**\n * This import is used by the Svelte SDK. Do not remove.\n */\n</script>\n\n<script>import { isEditing } from \"../../../functions/is-editing\";\nimport { filterAttrs } from \"../../helpers\";\nimport { setAttrs } from \"../../helpers\";\nexport let attributes = undefined;\nexport let value = undefined;\nexport let defaultValue = undefined;\nexport let name = undefined;\nexport let required = undefined;\nexport let options = undefined;\n</script>\n\n<select\n {...filterAttrs(attributes, \"on:\", false)}\n {value}\n key={isEditing() && defaultValue ? defaultValue : \"default-key\"}\n {defaultValue}\n {name}\n {required}\n use:setAttrs={filterAttrs(attributes, \"on:\", true)}\n>\n {#each options as option, index (`${option.name}-${index}`)}\n <option value={option.value}>{option.name || option.value}</option>\n {/each}\n</select>","export const componentInfo = {\n name: 'Form:SubmitButton',\n image: 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98',\n defaultStyles: {\n appearance: 'none',\n paddingTop: '15px',\n paddingBottom: '15px',\n paddingLeft: '25px',\n paddingRight: '25px',\n backgroundColor: '#3898EC',\n color: 'white',\n borderRadius: '4px',\n cursor: 'pointer'\n },\n inputs: [{\n name: 'text',\n type: 'text',\n defaultValue: 'Click me'\n }],\n static: true,\n noWrap: true\n // TODO: optional children? maybe as optional form input\n // that only shows if advanced setting is flipped\n // TODO: defaultChildren\n // canHaveChildren: true,\n};\n","<script context=\"module\">/**\n * This import is used by the Svelte SDK. Do not remove.\n */\n</script>\n\n<script>import { filterAttrs } from \"../../helpers\";\nimport { setAttrs } from \"../../helpers\";\nexport let attributes = undefined;\nexport let text = undefined;\n</script>\n\n<button\n type=\"submit\"\n {...filterAttrs(attributes, \"on:\", false)}\n use:setAttrs={filterAttrs(attributes, \"on:\", true)}>{text}</button\n>","export const componentInfo = {\n name: 'Form:TextArea',\n image: 'https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Ff74a2f3de58c4c3e939204e5b6b8f6c3',\n inputs: [{\n advanced: true,\n name: 'value',\n type: 'string'\n }, {\n name: 'name',\n type: 'string',\n required: true,\n helperText: 'Every input in a form needs a unique name describing what it gets, e.g. \"email\"'\n }, {\n name: 'defaultValue',\n type: 'string'\n }, {\n name: 'placeholder',\n type: 'string',\n defaultValue: 'Hello there'\n }, {\n name: 'required',\n type: 'boolean',\n defaultValue: false\n }],\n defaultStyles: {\n paddingTop: '10px',\n paddingBottom: '10px',\n paddingLeft: '10px',\n paddingRight: '10px',\n borderRadius: '3px',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: '#ccc'\n },\n static: true,\n noWrap: true\n};\n","<script context=\"module\">/**\n * This import is used by the Svelte SDK. Do not remove.\n */\n</script>\n\n<script>import { filterAttrs } from \"../../helpers\";\nimport { setAttrs } from \"../../helpers\";\nexport let attributes = undefined;\nexport let placeholder = undefined;\nexport let name = undefined;\nexport let value = undefined;\nexport let defaultValue = undefined;\nexport let required = undefined;\n</script>\n\n<textarea\n {...filterAttrs(attributes, \"on:\", false)}\n {placeholder}\n {name}\n {value}\n {defaultValue}\n {required}\n use:setAttrs={filterAttrs(attributes, \"on:\", true)}\n/>","export const componentInfo = {\n // friendlyName?\n name: 'Raw:Img',\n hideFromInsertMenu: true,\n image: 'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-insert_photo-24px.svg?alt=media&token=4e5d0ef4-f5e8-4e57-b3a9-38d63a9b9dc4',\n inputs: [{\n name: 'image',\n bubble: true,\n type: 'file',\n allowedFileTypes: ['jpeg', 'jpg', 'png', 'svg', 'gif', 'webp'],\n required: true\n }],\n noWrap: true,\n static: true\n};\n","<script context=\"module\">/**\n * This import is used by the Svelte SDK. Do not remove.\n */\n</script>\n\n<script>import { isEditing } from \"../../functions/is-editing\";\nimport { filterAttrs } from \"../helpers\";\nimport { setAttrs } from \"../helpers\";\nexport let backgroundSize = undefined;\nexport let backgroundPosition = undefined;\nexport let imgSrc = undefined;\nexport let altText = undefined;\nexport let image = undefined;\nexport let attributes = undefined;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\n</script>\n\n<img\n style={stringifyStyles({\n objectFit: backgroundSize || \"cover\",\n objectPosition: backgroundPosition || \"center\",\n })}\n key={(isEditing() && imgSrc) || \"default-key\"}\n alt={altText}\n src={imgSrc || image}\n {...filterAttrs(attributes, \"on:\", false)}\n use:setAttrs={filterAttrs(attributes, \"on:\", true)}\n/>","export const componentInfo = {\n name: 'Video',\n canHaveChildren: true,\n defaultStyles: {\n minHeight: '20px',\n minWidth: '20px'\n },\n image: 'https://firebasestorage.googleapis.com/v0/b/builder-3b0a2.appspot.com/o/images%2Fbaseline-videocam-24px%20(1).svg?alt=media&token=49a84e4a-b20e-4977-a650-047f986874bb',\n inputs: [{\n name: 'video',\n type: 'file',\n allowedFileTypes: ['mp4'],\n bubble: true,\n defaultValue: 'https://cdn.builder.io/o/assets%2FYJIGb4i01jvw0SRdL5Bt%2Fd27731a526464deba0016216f5f9e570%2Fcompressed?apiKey=YJIGb4i01jvw0SRdL5Bt&token=d27731a526464deba0016216f5f9e570&alt=media&optimized=true',\n required: true\n }, {\n name: 'posterImage',\n type: 'file',\n allowedFileTypes: ['jpeg', 'png'],\n helperText: 'Image to show before the video plays'\n }, {\n name: 'autoPlay',\n type: 'boolean',\n defaultValue: true\n }, {\n name: 'controls',\n type: 'boolean',\n defaultValue: false\n }, {\n name: 'muted',\n type: 'boolean',\n defaultValue: true\n }, {\n name: 'loop',\n type: 'boolean',\n defaultValue: true\n }, {\n name: 'playsInline',\n type: 'boolean',\n defaultValue: true\n }, {\n name: 'fit',\n type: 'text',\n defaultValue: 'cover',\n enum: ['contain', 'cover', 'fill', 'auto']\n }, {\n name: 'preload',\n type: 'text',\n defaultValue: 'metadata',\n enum: ['auto', 'metadata', 'none']\n }, {\n name: 'fitContent',\n type: 'boolean',\n helperText: 'When child blocks are provided, fit to them instead of using the aspect ratio',\n defaultValue: true,\n advanced: true\n }, {\n name: 'position',\n type: 'text',\n defaultValue: 'center',\n enum: ['center', 'top', 'left', 'right', 'bottom', 'top left', 'top right', 'bottom left', 'bottom right']\n }, {\n name: 'height',\n type: 'number',\n advanced: true\n }, {\n name: 'width',\n type: 'number',\n advanced: true\n }, {\n name: 'aspectRatio',\n type: 'number',\n advanced: true,\n defaultValue: 0.7004048582995948\n }, {\n name: 'lazyLoad',\n type: 'boolean',\n helperText: 'Load this video \"lazily\" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',\n defaultValue: true,\n advanced: true\n }],\n shouldReceiveBuilderProps: {\n builderBlock: true\n }\n};\n","<script>export let autoPlay = undefined;\nexport let muted = undefined;\nexport let controls = undefined;\nexport let loop = undefined;\nexport let playsInline = undefined;\nexport let preload = undefined;\nexport let attributes = undefined;\nexport let fit = undefined;\nexport let position = undefined;\nexport let aspectRatio = undefined;\nexport let video = undefined;\nexport let posterImage = undefined;\nexport let lazyLoad = undefined;\nexport let fitContent = undefined;\nexport let builderBlock = undefined;\nfunction stringifyStyles(stylesObj) {\n let styles = \"\";\n for (let key in stylesObj) {\n const dashedKey = key.replace(/[A-Z]/g, function (match) {\n return \"-\" + match.toLowerCase();\n });\n styles += dashedKey + \":\" + stylesObj[key] + \";\";\n }\n return styles;\n}\n$: videoProps = () => {\n return {\n ...(autoPlay === true\n ? {\n autoPlay: true,\n }\n : {}),\n ...(muted === true\n ? {\n muted: true,\n }\n : {}),\n ...(controls === true\n ? {\n controls: true,\n }\n : {}),\n ...(loop === true\n ? {\n loop: true,\n }\n : {}),\n ...(playsInline === true\n ? {\n playsInline: true,\n }\n : {}),\n };\n};\n$: spreadProps = () => {\n return {\n ...videoProps(),\n };\n};\n</script>\n\n<div\n style={stringifyStyles({\n position: \"relative\",\n })}\n>\n <video\n style={stringifyStyles({\n width: \"100%\",\n height: \"100%\",\n ...attributes?.style,\n objectFit: fit,\n objectPosition: position,\n // Hack to get object fit to work as expected and\n // not have the video overflow\n zIndex: 2,\n borderRadius: \"1px\",\n ...(aspectRatio\n ? {\n position: \"absolute\",\n }\n : null),\n })}\n class=\"builder-video\"\n {...spreadProps()}\n preload={preload || \"metadata\"}\n src={video || \"no-src\"}\n poster={posterImage}\n >\n {#if !lazyLoad}\n <source type=\"video/mp4\" src={video} />\n {/if}</video\n >\n {#if aspectRatio && !(fitContent && builderBlock?.children?.length)}\n <div\n style={stringifyStyles({\n width: \"100%\",\n paddingTop: aspectRatio * 100 + \"%\",\n pointerEvents: \"none\",\n fontSize: \"0px\",\n })}\n />\n {/if}\n {#if builderBlock?.children?.length && fitContent}\n <div\n style={stringifyStyles({\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n })}\n >\n <slot />\n </div>\n {/if}\n {#if builderBlock?.children?.length && !fitContent}\n <div\n style={stringifyStyles({\n pointerEvents: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n position: \"absolute\",\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\",\n })}\n >\n <slot />\n </div>\n {/if}\n</div>","/**\n * These are in a separate file because React Native does not support them (yet).\n * Having them in a separate file allows us to override it to be empty in the\n * React Native SDK.\n */\nimport { componentInfo as customCodeInfo } from '../blocks/custom-code/component-info';\nimport { default as customCode } from '../blocks/custom-code/index';\nimport { componentInfo as embedComponentInfo } from '../blocks/embed/component-info';\nimport { default as embed } from '../blocks/embed/index';\nimport { componentInfo as formComponentInfo } from '../blocks/form/form/component-info';\nimport { default as Form } from '../blocks/form/form/index';\nimport { componentInfo as formInputComponentInfo } from '../blocks/form/input/component-info';\nimport { default as FormInput } from '../blocks/form/input/index';\nimport { componentInfo as formSelectComponentInfo } from '../blocks/form/select/component-info';\nimport { default as FormSelect } from '../blocks/form/select/index';\nimport { componentInfo as formSubmitButtonComponentInfo } from '../blocks/form/submit-button/component-info';\nimport { default as FormSubmitButton } from '../blocks/form/submit-button/index';\nimport { componentInfo as textAreaComponentInfo } from '../blocks/form/textarea/component-info';\nimport { default as Textarea } from '../blocks/form/textarea/index';\nimport { componentInfo as imgComponentInfo } from '../blocks/img/component-info';\nimport { default as Img } from '../blocks/img/index';\nimport { componentInfo as videoComponentInfo } from '../blocks/video/component-info';\nimport { default as Video } from '../blocks/video/index';\nimport { TARGET } from './target';\nexport const getExtraComponents = () => [{\n component: customCode,\n ...customCodeInfo\n }, {\n component: embed,\n ...embedComponentInfo\n }, ...(TARGET === 'rsc' ? [] : [{\n component: Form,\n ...formComponentInfo\n }, {\n component: FormInput,\n ...formInputComponentInfo\n }, {\n component: FormSubmitButton,\n ...formSubmitButtonComponentInfo\n }, {\n component: FormSelect,\n ...formSelectComponentInfo\n }, {\n component: Textarea,\n ...textAreaComponentInfo\n }]), {\n component: Img,\n ...imgComponentInfo\n }, {\n component: Video,\n ...videoComponentInfo\n }];\n","import { componentInfo as accordionComponentInfo } from '../blocks/accordion/component-info';\nimport { default as Accordion } from '../blocks/accordion/index';\nimport { componentInfo as buttonComponentInfo } from '../blocks/button/component-info';\nimport { default as Button } from '../blocks/button/index';\nimport { componentInfo as columnsComponentInfo } from '../blocks/columns/component-info';\nimport { default as Columns } from '../blocks/columns/index';\nimport { componentInfo as fragmentComponentInfo } from '../blocks/fragment/component-info';\nimport { default as Fragment } from '../blocks/fragment/index';\nimport { componentInfo as imageComponentInfo } from '../blocks/image/component-info';\nimport { default as Image } from '../blocks/image/index';\nimport { componentInfo as sectionComponentInfo } from '../blocks/section/component-info';\nimport { default as Section } from '../blocks/section/index';\nimport { componentInfo as slotComponentInfo } from '../blocks/slot/component-info';\nimport { default as Slot } from '../blocks/slot/index';\nimport { componentInfo as symbolComponentInfo } from '../blocks/symbol/component-info';\nimport { default as Symbol } from '../blocks/symbol/index';\nimport { componentInfo as tabsComponentInfo } from '../blocks/tabs/component-info';\nimport { default as Tabs } from '../blocks/tabs/index';\nimport { componentInfo as textComponentInfo } from '../blocks/text/component-info';\nimport { default as Text } from '../blocks/text/index';\nimport { getExtraComponents } from './extra-components';\nimport { TARGET } from './target';\n/**\n * Returns a list of all registered components.\n * NOTE: This needs to be a function to work around ESM circular dependencies.\n */\nexport const getDefaultRegisteredComponents = () => [{\n component: Button,\n ...buttonComponentInfo\n }, {\n component: Columns,\n ...columnsComponentInfo\n }, {\n component: Fragment,\n ...fragmentComponentInfo\n }, {\n component: Image,\n ...imageComponentInfo\n }, {\n component: Section,\n ...sectionComponentInfo\n }, {\n component: Slot,\n ...slotComponentInfo\n }, {\n component: Symbol,\n ...symbolComponentInfo\n }, {\n component: Text,\n ...textComponentInfo\n }, ...(TARGET === 'rsc' ? [] : [{\n component: Tabs,\n ...tabsComponentInfo\n }, {\n component: Accordion,\n ...accordionComponentInfo\n }]), ...getExtraComponents()];\n","/**\n * WARNING: This file contains functions that get stringified and inlined into the HTML at build-time.\n * They cannot import anything.\n */\n/**\n * For more information on how this works,\n * see our [SSR A/B Test Docs](https://github.com/BuilderIO/builder/tree/main/packages/sdks/src/SSR_AB_TEST.md)\n */\n/**\n * For more information on how this works,\n * see our [SSR A/B Test Docs](https://github.com/BuilderIO/builder/tree/main/packages/sdks/docs/SSR_AB_TEST.md)\n */\nexport const UPDATE_COOKIES_AND_STYLES_SCRIPT = \"function updateCookiesAndStyles(contentId, variants, isHydrationTarget) {\\n function getAndSetVariantId() {\\n function setCookie(name, value, days) {\\n let expires = '';\\n if (days) {\\n const date = new Date();\\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\\n expires = '; expires=' + date.toUTCString();\\n }\\n document.cookie = name + '=' + (value || '') + expires + '; path=/' + '; Secure; SameSite=None';\\n }\\n function getCookie(name) {\\n const nameEQ = name + '=';\\n const ca = document.cookie.split(';');\\n for (let i = 0; i < ca.length; i++) {\\n let c = ca[i];\\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\\n }\\n return null;\\n }\\n const cookieName = `builder.tests.${contentId}`;\\n const variantInCookie = getCookie(cookieName);\\n const availableIDs = variants.map(vr => vr.id).concat(contentId);\\n if (variantInCookie && availableIDs.includes(variantInCookie)) {\\n return variantInCookie;\\n }\\n let n = 0;\\n const random = Math.random();\\n for (let i = 0; i < variants.length; i++) {\\n const variant = variants[i];\\n const testRatio = variant.testRatio;\\n n += testRatio;\\n if (random < n) {\\n setCookie(cookieName, variant.id);\\n return variant.id;\\n }\\n }\\n setCookie(cookieName, contentId);\\n return contentId;\\n }\\n const winningVariantId = getAndSetVariantId();\\n const styleEl = document.currentScript?.previousElementSibling;\\n if (isHydrationTarget) {\\n styleEl.remove();\\n const thisScriptEl = document.currentScript;\\n thisScriptEl?.remove();\\n } else {\\n const newStyleStr = variants.concat({\\n id: contentId\\n }).filter(variant => variant.id !== winningVariantId).map(value => {\\n return `.variant-${value.id} { display: none; }\\n `;\\n }).join('');\\n styleEl.innerHTML = newStyleStr;\\n }\\n}\";\nexport const UPDATE_VARIANT_VISIBILITY_SCRIPT = \"function updateVariantVisibility(variantContentId, defaultContentId, isHydrationTarget) {\\n if (!navigator.cookieEnabled) {\\n return;\\n }\\n function getCookie(name) {\\n const nameEQ = name + '=';\\n const ca = document.cookie.split(';');\\n for (let i = 0; i < ca.length; i++) {\\n let c = ca[i];\\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\\n }\\n return null;\\n }\\n const cookieName = `builder.tests.${defaultContentId}`;\\n const winningVariant = getCookie(cookieName);\\n const parentDiv = document.currentScript?.parentElement;\\n const isDefaultContent = variantContentId === defaultContentId;\\n const isWinningVariant = winningVariant === variantContentId;\\n if (isWinningVariant && !isDefaultContent) {\\n parentDiv?.removeAttribute('hidden');\\n parentDiv?.removeAttribute('aria-hidden');\\n } else if (!isWinningVariant && isDefaultContent) {\\n parentDiv?.setAttribute('hidden', 'true');\\n parentDiv?.setAttribute('aria-hidden', 'true');\\n }\\n if (isHydrationTarget) {\\n if (!isWinningVariant) {\\n parentDiv?.remove();\\n }\\n const thisScriptEl = document.currentScript;\\n thisScriptEl?.remove();\\n }\\n return;\\n}\";\n","import { TARGET } from '../../constants/target';\nimport { isBrowser } from '../../functions/is-browser';\nimport { UPDATE_COOKIES_AND_STYLES_SCRIPT, UPDATE_VARIANT_VISIBILITY_SCRIPT } from './inlined-fns';\n/**\n * We hardcode explicit function names here, because the `.toString()` of a function can change depending on the bundler.\n * Some bundlers will minify the fn name, etc.\n *\n * So we hardcode the function names here, and then use those names in the script string to make sure the function names are consistent.\n */\nconst UPDATE_COOKIES_AND_STYLES_SCRIPT_NAME = 'builderIoAbTest';\nconst UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME = 'builderIoRenderContent';\nexport const getVariants = (content) => Object.values(content?.variations || {}).map(variant => ({\n ...variant,\n testVariationId: variant.id,\n id: content?.id\n}));\nexport const checkShouldRenderVariants = ({ canTrack, content }) => {\n const hasVariants = getVariants(content).length > 0;\n /**\n * We cannot SSR in React-Native.\n */\n if (TARGET === 'reactNative')\n return false;\n if (!hasVariants)\n return false;\n if (!canTrack)\n return false;\n /**\n * For Vue and Svelte, we need to (initially) render the variants. This is to avoid hydration mismatch errors.\n *\n * Unlike React, Vue's hydration checks are shallow and do not check the attributes/contents of each element, so we\n * are able to modify the `hidden` HTML attributes and `display` CSS properties without causing a hydration mismatch error.\n *\n * NOTE: For Solid/Svelte: after the app is hydrated, we strip the variants from the DOM (on mount) to reduce the amount of HTML in the DOM.\n * This isn't necessary, just a nice to have.\n */\n if (TARGET === 'vue' || TARGET === 'svelte')\n return true;\n if (isBrowser())\n return false;\n return true;\n};\nconst getIsHydrationTarget = (target) => target === 'react' || target === 'reactNative';\nconst isHydrationTarget = getIsHydrationTarget(TARGET);\nexport const getInitVariantsFnsScriptString = () => `\n window.${UPDATE_COOKIES_AND_STYLES_SCRIPT_NAME} = ${UPDATE_COOKIES_AND_STYLES_SCRIPT}\n window.${UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME} = ${UPDATE_VARIANT_VISIBILITY_SCRIPT}\n `;\nexport const getUpdateCookieAndStylesScript = (variants, contentId) => `\n window.${UPDATE_COOKIES_AND_STYLES_SCRIPT_NAME}(\n \"${contentId}\",${JSON.stringify(variants)}, ${isHydrationTarget}\n )`;\nexport const getUpdateVariantVisibilityScript = ({ contentId, variationId }) => `window.${UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME}(\n \"${variationId}\", \"${contentId}\", ${isHydrationTarget}\n )`;\n","<script context=\"module\"></script>\n\n<script>export let scriptStr;\nexport let id;\nexport let nonce;\n</script>\n\n{@html `<script data-id=${id} nonce=${nonce || \"\"}>${scriptStr}</script>`}","function round(num) {\n return Math.round(num * 1000) / 1000;\n}\nconst findParentElement = (target, callback, checkElement = true) => {\n if (!(target instanceof HTMLElement)) {\n return null;\n }\n let parent = checkElement ? target : target.parentElement;\n do {\n if (!parent) {\n return null;\n }\n const matches = callback(parent);\n if (matches) {\n return parent;\n }\n } while (parent = parent.parentElement);\n return null;\n};\nconst findBuilderParent = (target) => findParentElement(target, el => {\n const id = el.getAttribute('builder-id') || el.id;\n return Boolean(id?.indexOf('builder-') === 0);\n});\nconst computeOffset = ({ event, target }) => {\n const targetRect = target.getBoundingClientRect();\n const xOffset = event.clientX - targetRect.left;\n const yOffset = event.clientY - targetRect.top;\n const xRatio = round(xOffset / targetRect.width);\n const yRatio = round(yOffset / targetRect.height);\n return {\n x: xRatio,\n y: yRatio\n };\n};\nexport const getInteractionPropertiesForEvent = (event) => {\n const target = event.target;\n const targetBuilderElement = target && findBuilderParent(target);\n const builderId = targetBuilderElement?.getAttribute('builder-id') || targetBuilderElement?.id;\n return {\n targetBuilderElement: builderId || undefined,\n metadata: {\n targetOffset: target ? computeOffset({\n event,\n target\n }) : undefined,\n builderTargetOffset: targetBuilderElement ? computeOffset({\n event,\n target: targetBuilderElement\n }) : undefined,\n builderElementIndex: targetBuilderElement && builderId ? [].slice.call(document.getElementsByClassName(builderId)).indexOf(targetBuilderElement) : undefined\n }\n };\n};\n","const getCssFromFont = (font) => {\n // TODO: compute what font sizes are used and only load those.......\n const family = font.family + (font.kind && !font.kind.includes('#') ? ', ' + font.kind : '');\n const name = family.split(',')[0];\n const url = font.fileUrl ?? font?.files?.regular;\n let str = '';\n if (url && family && name) {\n str += `\n@font-face {\nfont-family: \"${family}\";\nsrc: local(\"${name}\"), url('${url}') format('woff2');\nfont-display: fallback;\nfont-weight: 400;\n}\n `.trim();\n }\n if (font.files) {\n for (const weight in font.files) {\n const isNumber = String(Number(weight)) === weight;\n if (!isNumber) {\n continue;\n }\n // TODO: maybe limit number loaded\n const weightUrl = font.files[weight];\n if (weightUrl && weightUrl !== url) {\n str += `\n@font-face {\nfont-family: \"${family}\";\nsrc: url('${weightUrl}') format('woff2');\nfont-display: fallback;\nfont-weight: ${weight};\n}\n `.trim();\n }\n }\n }\n return str;\n};\nexport const getFontCss = ({ customFonts }) => {\n // TODO: flag for this\n // if (!this.builder.allowCustomFonts) {\n // return '';\n // }\n // TODO: separate internal data from external\n return customFonts?.map(font => getCssFromFont(font))?.join(' ') || '';\n};\nexport const getCss = ({ cssCode, contentId }) => {\n if (!cssCode) {\n return '';\n }\n if (!contentId) {\n return cssCode;\n }\n // Allow using `&` in custom CSS code like @emotion\n // E.g. `& .foobar { ... }` to scope CSS\n // TODO: handle if '&' is within a string like `content: \"&\"`\n return cssCode?.replace(/&/g, `div[builder-content-id=\"${contentId}\"]`) || '';\n};\nconst DEFAULT_STYLES = `\n.builder-button {\n all: unset;\n}\n\n.builder-text > p:first-of-type, .builder-text > .builder-paragraph:first-of-type {\n margin: 0;\n}\n.builder-text > p, .builder-text > .builder-paragraph {\n color: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n font-weight: inherit;\n font-size: inherit;\n text-align: inherit;\n font-family: inherit;\n}\n`;\nexport const getDefaultStyles = (isNested) => {\n return !isNested ? DEFAULT_STYLES : '';\n};\nexport const getWrapperClassName = (variationId) => {\n return `variant-${variationId}`;\n};\n","<script context=\"module\"></script>\n\n<script>import { onDestroy, onMount, setContext } from \"svelte\";\nimport builderContext from \"../../../context/builder.context\";\nimport { evaluate } from \"../../../functions/evaluate/index\";\nimport { fastClone } from \"../../../functions/fast-clone\";\nimport { fetchOneEntry } from \"../../../functions/get-content/index\";\nimport { isBrowser } from \"../../../functions/is-browser\";\nimport { isEditing } from \"../../../functions/is-editing\";\nimport { isPreviewing } from \"../../../functions/is-previewing\";\nimport { logFetch } from \"../../../functions/log-fetch\";\nimport { createRegisterComponentMessage } from \"../../../functions/register-component\";\nimport { _track } from \"../../../functions/track/index\";\nimport { getInteractionPropertiesForEvent } from \"../../../functions/track/interaction\";\nimport { getDefaultCanTrack } from \"../../../helpers/canTrack\";\nimport \"../../../helpers/preview-lru-cache/set\";\nimport { createEditorListener } from \"../../../helpers/subscribe-to-editor\";\nimport { registerInsertMenu, setupBrowserForEditing, } from \"../../../scripts/init-editing\";\nimport { triggerAnimation } from \"../../block/animator\";\nimport \"../../dynamic-div.svelte\";\nimport { getWrapperClassName } from \"./styles.helpers\";\nexport let isNestedRender = undefined;\nexport let builderContextSignal;\nexport let canTrack = undefined;\nexport let apiKey;\nexport let apiHost = undefined;\nexport let locale = undefined;\nexport let enrich = undefined;\nexport let trustedHosts = undefined;\nexport let model = undefined;\nexport let content = undefined;\nexport let data = undefined;\nexport let showContent;\nexport let contentWrapper = undefined;\nexport let context = undefined;\nexport let contentWrapperProps = undefined;\nfunction mergeNewRootState(newData) {\n const combinedState = {\n ...$builderContextSignal.rootState,\n ...newData,\n };\n if ($builderContextSignal.rootSetState) {\n $builderContextSignal.rootSetState?.(combinedState);\n }\n else {\n $builderContextSignal.rootState = combinedState;\n }\n}\nfunction mergeNewContent(newContent) {\n const newContentValue = {\n ...$builderContextSignal.content,\n ...newContent,\n data: {\n ...$builderContextSignal.content?.data,\n ...newContent?.data,\n },\n meta: {\n ...$builderContextSignal.content?.meta,\n ...newContent?.meta,\n breakpoints: newContent?.meta?.breakpoints ||\n $builderContextSignal.content?.meta?.breakpoints,\n },\n };\n $builderContextSignal.content = newContentValue;\n}\nfunction processMessage(event) {\n return createEditorListener({\n model: model,\n trustedHosts: trustedHosts,\n callbacks: {\n configureSdk: (messageContent) => {\n const { breakpoints, contentId } = messageContent;\n if (!contentId || contentId !== $builderContextSignal.content?.id) {\n return;\n }\n if (breakpoints) {\n mergeNewContent({\n meta: {\n breakpoints,\n },\n });\n }\n },\n animation: (animation) => {\n triggerAnimation(animation);\n },\n contentUpdate: (newContent) => {\n mergeNewContent(newContent);\n },\n },\n })(event);\n}\nfunction onClick(event) {\n if ($builderContextSignal.content) {\n const variationId = $builderContextSignal.content?.testVariationId;\n const contentId = $builderContextSignal.content?.id;\n _track({\n apiHost: apiHost,\n type: \"click\",\n canTrack: getDefaultCanTrack(canTrack),\n contentId,\n apiKey: apiKey,\n variationId: variationId !== contentId ? variationId : undefined,\n ...getInteractionPropertiesForEvent(event),\n unique: !clicked,\n });\n }\n if (!clicked) {\n clicked = true;\n }\n}\nfunction runHttpRequests() {\n const requests = $builderContextSignal.content?.data?.httpRequests ?? {};\n Object.entries(requests).forEach(([key, url]) => {\n if (!url)\n return;\n // request already in progress\n if (httpReqsPending[key])\n return;\n // request already completed, and not in edit mode\n if (httpReqsData[key] && !isEditing())\n return;\n httpReqsPending[key] = true;\n const evaluatedUrl = url.replace(/{{([^}]+)}}/g, (_match, group) => String(evaluate({\n code: group,\n context: context || {},\n localState: undefined,\n rootState: $builderContextSignal.rootState,\n rootSetState: $builderContextSignal.rootSetState,\n })));\n logFetch(evaluatedUrl);\n fetch(evaluatedUrl)\n .then((response) => response.json())\n .then((json) => {\n mergeNewRootState({\n [key]: json,\n });\n httpReqsData[key] = true;\n })\n .catch((err) => {\n console.error(\"error fetching dynamic data\", url, err);\n })\n .finally(() => {\n httpReqsPending[key] = false;\n });\n });\n}\nfunction emitStateUpdate() {\n if (isEditing()) {\n window.dispatchEvent(new CustomEvent(\"builder:component:stateChange\", {\n detail: {\n state: fastClone($builderContextSignal.rootState),\n ref: {\n name: model,\n },\n },\n }));\n }\n}\nfunction elementRef_onIniteditingbldr(event) {\n window.addEventListener(\"message\", processMessage);\n registerInsertMenu();\n setupBrowserForEditing({\n ...(locale\n ? {\n locale: locale,\n }\n : {}),\n ...(enrich\n ? {\n enrich: enrich,\n }\n : {}),\n ...(trustedHosts\n ? {\n trustedHosts: trustedHosts,\n }\n : {}),\n });\n Object.values($builderContextSignal.componentInfos).forEach((registeredComponent) => {\n const message = createRegisterComponentMessage(registeredComponent);\n window.parent?.postMessage(message, \"*\");\n });\n window.addEventListener(\"builder:component:stateChangeListenerActivated\", emitStateUpdate);\n}\nfunction elementRef_onInitpreviewingbldr(event) {\n const searchParams = new URL(location.href).searchParams;\n const searchParamPreviewModel = searchParams.get(\"builder.preview\");\n const searchParamPreviewId = searchParams.get(`builder.overrides.${searchParamPreviewModel}`);\n const previewApiKey = searchParams.get(\"apiKey\") || searchParams.get(\"builder.space\");\n /**\n * Make sure that:\n * - the preview model name is the same as the one we're rendering, since there can be multiple models rendered\n * at the same time, e.g. header/page/footer.\n * - the API key is the same, since we don't want to preview content from other organizations.\n * - if there is content, that the preview ID is the same as that of the one we receive.\n *\n * TO-DO: should we only update the state when there is a change?\n **/\n if (searchParamPreviewModel === model &&\n previewApiKey === apiKey &&\n (!content || searchParamPreviewId === content.id)) {\n fetchOneEntry({\n model: model,\n apiKey: apiKey,\n apiVersion: $builderContextSignal.apiVersion,\n }).then((content) => {\n if (content) {\n mergeNewContent(content);\n }\n });\n }\n}\n$: showContentProps = () => {\n return showContent\n ? {}\n : {\n hidden: true,\n \"aria-hidden\": true,\n };\n};\nlet elementRef;\nlet ContentWrapper = contentWrapper || \"div\";\nlet httpReqsData = {};\nlet httpReqsPending = {};\nlet clicked = false;\nrunHttpRequests();\nemitStateUpdate();\nonMount(() => {\n if (isBrowser()) {\n if (isEditing() && !isNestedRender) {\n if (elementRef) {\n elementRef.dispatchEvent(new CustomEvent(\"initeditingbldr\"));\n }\n }\n const shouldTrackImpression = $builderContextSignal.content && getDefaultCanTrack(canTrack);\n if (shouldTrackImpression) {\n const variationId = $builderContextSignal.content?.testVariationId;\n const contentId = $builderContextSignal.content?.id;\n const apiKeyProp = apiKey;\n _track({\n apiHost: apiHost,\n type: \"impression\",\n canTrack: true,\n contentId,\n apiKey: apiKeyProp,\n variationId: variationId !== contentId ? variationId : undefined,\n });\n }\n /**\n * Override normal content in preview mode.\n * We ignore this when editing, since the edited content is already being sent from the editor via post messages.\n */\n if (isPreviewing() && !isEditing()) {\n if (elementRef) {\n elementRef.dispatchEvent(new CustomEvent(\"initpreviewingbldr\"));\n }\n }\n }\n});\nfunction onUpdateFn_0(..._args) {\n if (content) {\n mergeNewContent(content);\n }\n}\n$: onUpdateFn_0(...[content]);\nfunction onUpdateFn_1(..._args) {\n emitStateUpdate();\n}\n$: onUpdateFn_1_builderContextSignal_rootState =\n $builderContextSignal.rootState;\n$: onUpdateFn_1(...[onUpdateFn_1_builderContextSignal_rootState]);\nfunction onUpdateFn_2(..._args) {\n if (data) {\n mergeNewRootState(data);\n }\n}\n$: onUpdateFn_2(...[data]);\nfunction onUpdateFn_3(..._args) {\n if (locale) {\n mergeNewRootState({\n locale: locale,\n });\n }\n}\n$: onUpdateFn_3(...[locale]);\nsetContext(builderContext.key, builderContextSignal);\nonDestroy(() => {\n if (isBrowser()) {\n window.removeEventListener(\"message\", processMessage);\n window.removeEventListener(\"builder:component:stateChangeListenerActivated\", emitStateUpdate);\n }\n});\n</script>\n\n{#if $builderContextSignal.content}\n <svelte:element\n this={ContentWrapper}\n {...{}}\n bind:this={elementRef}\n on:click={(event) => {\n onClick(event);\n }}\n builder-content-id={$builderContextSignal.content?.id}\n builder-model={model}\n className={getWrapperClassName(content?.testVariationId || content?.id)}\n {...{}}\n {...showContentProps()}\n {...contentWrapperProps}\n on:initeditingbldr={(event) => {\n elementRef_onIniteditingbldr(event);\n }}\n on:initpreviewingbldr={(event) => {\n elementRef_onInitpreviewingbldr(event);\n }}><slot /></svelte:element\n >\n{/if}","<script context=\"module\"></script>\n\n<script>import InlinedStyles from \"../../inlined-styles.svelte\";\nimport { getCss, getDefaultStyles, getFontCss } from \"./styles.helpers\";\nexport let cssCode = undefined;\nexport let contentId = undefined;\nexport let customFonts = undefined;\nexport let isNestedRender = undefined;\nexport let nonce;\nlet injectedStyles = `\n${getCss({\n cssCode: cssCode,\n contentId: contentId,\n})}\n${getFontCss({\n customFonts: customFonts,\n})}\n${getDefaultStyles(isNestedRender)}\n`.trim();\n</script>\n\n<InlinedStyles id=\"builderio-content\" styles={injectedStyles} {nonce} />","export const getRootStateInitialValue = ({ content, data, locale }) => {\n const defaultValues = {};\n const initialState = content?.data?.state || {};\n // set default values for content state inputs\n content?.data?.inputs?.forEach(input => {\n if (input.name && input.defaultValue !== undefined) {\n defaultValues[input.name] = input.defaultValue;\n }\n });\n return {\n ...defaultValues,\n ...initialState,\n ...data,\n ...(locale ? {\n locale\n } : {})\n };\n};\nexport const getContentInitialValue = ({ content, data }) => {\n return !content ? undefined : {\n ...content,\n data: {\n ...content?.data,\n ...data\n },\n meta: content?.meta\n };\n};\n","<script>import { setContext } from \"svelte\";\nimport { writable } from \"svelte/store\";\nimport { getDefaultRegisteredComponents } from \"../../constants/builder-registered-components\";\nimport { TARGET } from \"../../constants/target\";\nimport ComponentsContext from \"../../context/components.context\";\nimport { evaluate } from \"../../functions/evaluate/evaluate\";\nimport { serializeIncludingFunctions } from \"../../functions/register-component\";\nimport { logger } from \"../../helpers/logger\";\nimport Blocks from \"../blocks/blocks.svelte\";\nimport { getUpdateVariantVisibilityScript } from \"../content-variants/helpers\";\nimport \"../dynamic-div.svelte\";\nimport InlinedScript from \"../inlined-script.svelte\";\nimport EnableEditor from \"./components/enable-editor.svelte\";\nimport ContentStyles from \"./components/styles.svelte\";\nimport { getContentInitialValue, getRootStateInitialValue, } from \"./content.helpers\";\nimport \"./wrap-component-ref\";\nexport let apiKey;\nexport let context = undefined;\nexport let content = undefined;\nexport let customComponents = undefined;\nexport let model = undefined;\nexport let data = undefined;\nexport let locale = undefined;\nexport let canTrack = undefined;\nexport let apiVersion = undefined;\nexport let blocksWrapper = undefined;\nexport let blocksWrapperProps = undefined;\nexport let nonce = undefined;\nexport let apiHost = undefined;\nexport let enrich = undefined;\nexport let showContent;\nexport let contentWrapper = undefined;\nexport let contentWrapperProps = undefined;\nexport let trustedHosts = undefined;\nexport let isNestedRender = undefined;\nexport let isSsrAbTest;\nexport let linkComponent = undefined;\nfunction contentSetState(newRootState) {\n $builderContextSignal.rootState = newRootState;\n}\nlet scriptStr = getUpdateVariantVisibilityScript({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain\n variationId: content?.testVariationId,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain\n contentId: content?.id,\n});\nlet registeredComponents = [\n ...getDefaultRegisteredComponents(),\n ...(customComponents?.filter(({ models }) => {\n if (!models?.length)\n return true;\n if (!model)\n return true;\n return models.includes(model);\n }) || []),\n].reduce((acc, { component, ...info }) => ({\n ...acc,\n [info.name]: {\n component: component,\n ...serializeIncludingFunctions(info),\n },\n}), {});\nlet builderContextSignal = writable({\n content: getContentInitialValue({\n content: content,\n data: data,\n }),\n localState: undefined,\n rootState: getRootStateInitialValue({\n content: content,\n data: data,\n locale: locale,\n }),\n rootSetState: contentSetState,\n context: context || {},\n canTrack: canTrack,\n apiKey: apiKey,\n apiVersion: apiVersion,\n componentInfos: [\n ...getDefaultRegisteredComponents(),\n ...(customComponents?.filter(({ models }) => {\n if (!models?.length)\n return true;\n if (!model)\n return true;\n return models.includes(model);\n }) || []),\n ].reduce((acc, { component: _, ...info }) => ({\n ...acc,\n [info.name]: serializeIncludingFunctions(info),\n }), {}),\n inheritedStyles: {},\n BlocksWrapper: blocksWrapper || \"div\",\n BlocksWrapperProps: blocksWrapperProps || {},\n nonce: nonce || \"\",\n});\nif (!apiKey) {\n logger.error(\"No API key provided to `Content` component. This can cause issues. Please provide an API key using the `apiKey` prop.\");\n}\n// run any dynamic JS code attached to content\nconst jsCode = $builderContextSignal.content?.data?.jsCode;\nif (jsCode) {\n evaluate({\n code: jsCode,\n context: context || {},\n localState: undefined,\n rootState: $builderContextSignal.rootState,\n rootSetState: (newState) => {\n $builderContextSignal.rootSetState?.(newState);\n },\n isExpression: false,\n });\n}\nsetContext(ComponentsContext.key, {\n registeredComponents: registeredComponents,\n});\n</script>\n\n<EnableEditor\n {apiHost}\n {nonce}\n {content}\n {data}\n {model}\n {context}\n {apiKey}\n {canTrack}\n {locale}\n {enrich}\n {showContent}\n {builderContextSignal}\n {contentWrapper}\n {contentWrapperProps}\n {trustedHosts}\n {isNestedRender}\n {...{}}\n>\n {#if isSsrAbTest}\n <InlinedScript\n id=\"builderio-variant-visibility\"\n {scriptStr}\n nonce={nonce || \"\"}\n />\n {/if}\n {#if TARGET !== \"reactNative\"}\n <ContentStyles\n nonce={nonce || \"\"}\n {isNestedRender}\n contentId={$builderContextSignal.content?.id}\n cssCode={$builderContextSignal.content?.data?.cssCode}\n customFonts={$builderContextSignal.content?.data?.customFonts}\n />\n {/if}<Blocks\n blocks={$builderContextSignal.content?.data?.blocks}\n context={builderContextSignal}\n {registeredComponents}\n {linkComponent}\n /></EnableEditor\n>","<script context=\"module\"></script>\n\n<script>import { onMount } from \"svelte\";\nimport { TARGET } from \"../../constants/target\";\nimport { handleABTestingSync } from \"../../helpers/ab-tests\";\nimport { getDefaultCanTrack } from \"../../helpers/canTrack\";\nimport ContentComponent from \"../content/content.svelte\";\nimport InlinedScript from \"../inlined-script.svelte\";\nimport InlinedStyles from \"../inlined-styles.svelte\";\nimport { checkShouldRenderVariants, getInitVariantsFnsScriptString, getUpdateCookieAndStylesScript, getVariants, } from \"./helpers\";\nexport let canTrack = undefined;\nexport let content = undefined;\nexport let isNestedRender = undefined;\nexport let nonce = undefined;\nexport let apiHost = undefined;\nexport let model = undefined;\nexport let data = undefined;\nexport let context = undefined;\nexport let apiKey;\nexport let apiVersion = undefined;\nexport let customComponents = undefined;\nexport let linkComponent = undefined;\nexport let locale = undefined;\nexport let enrich = undefined;\nexport let blocksWrapper = undefined;\nexport let blocksWrapperProps = undefined;\nexport let contentWrapper = undefined;\nexport let contentWrapperProps = undefined;\nexport let trustedHosts = undefined;\n$: updateCookieAndStylesScriptStr = () => {\n return getUpdateCookieAndStylesScript(getVariants(content).map((value) => ({\n id: value.testVariationId,\n testRatio: value.testRatio,\n })), content?.id || \"\");\n};\n$: hideVariantsStyleString = () => {\n return getVariants(content)\n .map((value) => `.variant-${value.testVariationId} { display: none; } `)\n .join(\"\");\n};\n$: defaultContent = () => {\n return shouldRenderVariants\n ? {\n ...content,\n testVariationId: content?.id,\n }\n : handleABTestingSync({\n item: content,\n canTrack: getDefaultCanTrack(canTrack),\n });\n};\nlet shouldRenderVariants = checkShouldRenderVariants({\n canTrack: getDefaultCanTrack(canTrack),\n content: content,\n});\nonMount(() => {\n /**\n * For Solid/Svelte: we unmount the non-winning variants post-hydration.\n */\n shouldRenderVariants = false;\n});\n</script>\n\n{#if !isNestedRender && TARGET !== \"reactNative\"}\n <InlinedScript\n id=\"builderio-init-variants-fns\"\n scriptStr={getInitVariantsFnsScriptString()}\n nonce={nonce || \"\"}\n />\n{/if}\n\n{#if shouldRenderVariants}\n <InlinedStyles\n id=\"builderio-variants\"\n styles={hideVariantsStyleString()}\n nonce={nonce || \"\"}\n />\n <InlinedScript\n id=\"builderio-variants-visibility\"\n scriptStr={updateCookieAndStylesScriptStr()}\n nonce={nonce || \"\"}\n />\n\n {#each getVariants(content) as variant (variant.testVariationId)}\n <ContentComponent\n {apiHost}\n {isNestedRender}\n {nonce}\n content={variant}\n showContent={false}\n {model}\n {data}\n {context}\n {apiKey}\n {apiVersion}\n {customComponents}\n {linkComponent}\n {canTrack}\n {locale}\n {enrich}\n isSsrAbTest={shouldRenderVariants}\n {blocksWrapper}\n {blocksWrapperProps}\n {contentWrapper}\n {contentWrapperProps}\n {trustedHosts}\n {...{}}\n />\n {/each}\n{/if}\n<ContentComponent\n {apiHost}\n {nonce}\n {isNestedRender}\n {...{}}\n content={defaultContent()}\n showContent={true}\n {model}\n {data}\n {context}\n {apiKey}\n {apiVersion}\n {customComponents}\n {linkComponent}\n {canTrack}\n {locale}\n {enrich}\n isSsrAbTest={shouldRenderVariants}\n {blocksWrapper}\n {blocksWrapperProps}\n {contentWrapper}\n {contentWrapperProps}\n {trustedHosts}\n/>","import { fetchOneEntry } from '../../functions/get-content/index';\nimport { logger } from '../../helpers/logger';\nexport const fetchSymbolContent = async ({ builderContextValue, symbol }) => {\n /**\n * If:\n * - we have a symbol prop\n * - yet it does not have any content\n * - and we have not already stored content from before\n * - and it has a model name\n *\n * then we want to re-fetch the symbol content.\n */\n if (symbol?.model &&\n // This is a hack, we should not need to check for this, but it is needed for Svelte.\n builderContextValue?.apiKey) {\n return fetchOneEntry({\n model: symbol.model,\n apiKey: builderContextValue.apiKey,\n apiVersion: builderContextValue.apiVersion,\n ...(symbol?.entry && {\n query: {\n id: symbol.entry\n }\n })\n }).catch(err => {\n logger.error('Could not fetch symbol content: ', err);\n return undefined;\n });\n }\n return undefined;\n};\n","<script>import { onMount } from \"svelte\";\nimport ContentVariants from \"../../components/content-variants/index\";\nimport { filterAttrs } from \"../helpers\";\nimport \"../../components/dynamic-div.svelte\";\nimport { getClassPropName } from \"../../functions/get-class-prop-name\";\nimport { setAttrs } from \"../helpers\";\nimport { fetchSymbolContent } from \"./symbol.helpers\";\nexport let symbol = undefined;\nexport let attributes = undefined;\nexport let dynamic = undefined;\nexport let builderContext;\nexport let builderBlock;\nexport let builderComponents;\nexport let builderLinkComponent = undefined;\nfunction setContent() {\n if (contentToUse)\n return;\n fetchSymbolContent({\n symbol: symbol,\n builderContextValue: $builderContext,\n }).then((newContent) => {\n if (newContent) {\n contentToUse = newContent;\n }\n });\n}\n$: blocksWrapper = () => {\n return \"div\";\n};\n$: contentWrapper = () => {\n return \"div\";\n};\n$: className = () => {\n return [\n ...[attributes[getClassPropName()]],\n \"builder-symbol\",\n symbol?.inline ? \"builder-inline-symbol\" : undefined,\n symbol?.dynamic || dynamic ? \"builder-dynamic-symbol\" : undefined,\n ]\n .filter(Boolean)\n .join(\" \");\n};\nlet contentToUse = symbol?.content;\nonMount(() => {\n setContent();\n});\nfunction onUpdateFn_0(..._args) {\n setContent();\n}\n$: onUpdateFn_0(...[symbol]);\n</script>\n\n<div\n {...filterAttrs(attributes, \"on:\", false)}\n {...{}}\n class={className()}\n use:setAttrs={filterAttrs(attributes, \"on:\", true)}\n>\n <ContentVariants\n nonce={$builderContext.nonce}\n isNestedRender={true}\n apiVersion={$builderContext.apiVersion}\n apiKey={$builderContext.apiKey}\n context={{\n ...$builderContext.context,\n symbolId: builderBlock?.id,\n }}\n customComponents={Object.values(builderComponents)}\n data={{\n ...symbol?.data,\n ...$builderContext.localState,\n ...contentToUse?.data?.state,\n }}\n canTrack={$builderContext.canTrack}\n model={symbol?.model}\n content={contentToUse}\n linkComponent={builderLinkComponent}\n blocksWrapper={blocksWrapper()}\n contentWrapper={contentWrapper()}\n />\n</div>","\"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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"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}\nvar 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 = exports.QuoteType || (exports.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 */\nvar 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};\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(_a, cbs) {\n var _b = _a.xmlMode, xmlMode = _b === void 0 ? false : _b, _c = _a.decodeEntities, decodeEntities = _c === void 0 ? true : _c;\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 ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;\n }\n Tokenizer.prototype.reset = function () {\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 Tokenizer.prototype.write = function (chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n };\n Tokenizer.prototype.end = function () {\n if (this.running)\n this.finish();\n };\n Tokenizer.prototype.pause = function () {\n this.running = false;\n };\n Tokenizer.prototype.resume = function () {\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 Tokenizer.prototype.getIndex = function () {\n return this.index;\n };\n /**\n * The start of the current section.\n */\n Tokenizer.prototype.getSectionStart = function () {\n return this.sectionStart;\n };\n Tokenizer.prototype.stateText = function (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 Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n var isEnd = this.sequenceIndex === this.currentSequence.length;\n var 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 Tokenizer.prototype.stateInSpecialTag = function (c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n var endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n var 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 Tokenizer.prototype.stateCDATASequence = function (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 Tokenizer.prototype.fastForwardTo = function (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 Tokenizer.prototype.stateInCommentLike = function (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 Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (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 var 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 Tokenizer.prototype.stateInTagName = function (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 Tokenizer.prototype.stateBeforeClosingTagName = function (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 Tokenizer.prototype.stateInClosingTagName = function (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 Tokenizer.prototype.stateAfterClosingTagName = function (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 Tokenizer.prototype.stateBeforeAttributeName = function (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 Tokenizer.prototype.stateInSelfClosingTag = function (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 Tokenizer.prototype.stateInAttributeName = function (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 Tokenizer.prototype.stateAfterAttributeName = function (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 Tokenizer.prototype.stateBeforeAttributeValue = function (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 Tokenizer.prototype.handleInAttributeValue = function (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 Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (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 Tokenizer.prototype.stateBeforeDeclaration = function (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 Tokenizer.prototype.stateInDeclaration = function (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 Tokenizer.prototype.stateInProcessingInstruction = function (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 Tokenizer.prototype.stateBeforeComment = function (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 Tokenizer.prototype.stateInSpecialComment = function (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 Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var 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 Tokenizer.prototype.stateBeforeEntity = function (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 Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.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 var masked = this.trieCurrent & decode_js_1.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 var 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 var 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 Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.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 Tokenizer.prototype.stateBeforeNumericEntity = function (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 Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var 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((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (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 Tokenizer.prototype.stateInHexEntity = function (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 Tokenizer.prototype.allowLegacyEntity = function () {\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 Tokenizer.prototype.cleanup = function () {\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 Tokenizer.prototype.shouldContinue = function () {\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 Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var 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 Tokenizer.prototype.finish = function () {\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 Tokenizer.prototype.handleTrailingData = function () {\n var 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 Tokenizer.prototype.emitPartial = function (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 Tokenizer.prototype.emitCodePoint = function (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 return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar 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]);\nvar 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]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { 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_js_1.default)(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 Parser.prototype.ontext = function (start, endIndex) {\n var _a, _b;\n var 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 Parser.prototype.ontextentity = function (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 var index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n this.startIndex = index;\n };\n Parser.prototype.isVoidElement = function (name) {\n return !this.options.xmlMode && voidElements.has(name);\n };\n /** @internal */\n Parser.prototype.onopentagname = function (start, endIndex) {\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n };\n Parser.prototype.emitOpenTag = function (name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n var 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 var 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 Parser.prototype.endOpenTag = function (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 Parser.prototype.onopentagend = function (endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onclosetag = function (start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n var 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 var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n var 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 Parser.prototype.onselfclosingtag = function (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 Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n var _a, _b;\n var 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 Parser.prototype.onattribname = function (start, endIndex) {\n this.startIndex = start;\n var name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n };\n /** @internal */\n Parser.prototype.onattribdata = function (start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n };\n /** @internal */\n Parser.prototype.onattribentity = function (cp) {\n this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n };\n /** @internal */\n Parser.prototype.onattribend = function (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 === Tokenizer_js_1.QuoteType.Double\n ? '\"'\n : quote === Tokenizer_js_1.QuoteType.Single\n ? \"'\"\n : quote === Tokenizer_js_1.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 Parser.prototype.getInstructionName = function (value) {\n var index = value.search(reNameEnd);\n var name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n /** @internal */\n Parser.prototype.ondeclaration = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncomment = function (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 Parser.prototype.oncdata = function (start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n var 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[\".concat(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 Parser.prototype.onend = function () {\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 (var 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 Parser.prototype.reset = function () {\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 Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n Parser.prototype.getSlice = function (start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n var 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 Parser.prototype.shiftBuffer = function () {\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 Parser.prototype.write = function (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 Parser.prototype.end = function (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 Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\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 Parser.prototype.parseChunk = function (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 Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar 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 = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\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 Object.defineProperty(Node.prototype, \"parentNode\", {\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: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\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 Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\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 function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: 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 enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\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 */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var 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 var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var 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: \".concat(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}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var 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","\"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 __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\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 function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.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 DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.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 DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var 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 DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var 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 return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (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/**\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 */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\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 */\nexports.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 var match;\n var lastIdx = 0;\n var 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 */\nexports.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 */\nexports.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 */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.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(function (val) { return [val.toLowerCase(), val]; }));\nexports.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(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"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 */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar 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 var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar 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 */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.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}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar 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 = foreignNames_js_1.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 = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(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 += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var 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 ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"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 */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\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 */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\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 */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\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 */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\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 */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"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 */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\nexports.getChildren = getChildren;\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 */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\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 */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\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 */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\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 */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\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 */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\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 */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\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 */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction 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 var childs = elem.parent.children;\n var 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}\nexports.removeElement = removeElement;\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 */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\nexports.replaceElement = replaceElement;\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 */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\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 */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var 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 var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\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 */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\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 */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var 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}\nexports.prepend = prepend;\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"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 */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\nexports.filter = filter;\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 */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [nodes];\n /** Stack of the indices within the arrays. */\n var 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 var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.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}\nexports.find = find;\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 */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\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 */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var node = nodes[i];\n if (!(0, domhandler_1.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}\nexports.findOne = findOne;\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 */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) || existsOne(test, checked.children));\n });\n}\nexports.existsOne = existsOne;\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 */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [nodes];\n var 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 var elem = nodeStack[0][indexStack[0]++];\n if (!(0, domhandler_1.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}\nexports.findAll = findAll;\n//# sourceMappingURL=querying.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.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 function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.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 function (elem) { return 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 var funcs = Object.keys(options).map(function (key) {\n var 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 */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\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 */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\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 */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\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 */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\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 */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"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 */\nfunction removeSubsets(nodes) {\n var 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 var 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 (var 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}\nexports.removeSubsets = removeSubsets;\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar 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 = exports.DocumentPosition || (exports.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 */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var 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}\nexports.compareDocumentPosition = compareDocumentPosition;\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 */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var 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}\nexports.uniqueSort = uniqueSort;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./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 */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\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 var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var 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 var 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 var 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 var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var 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 var 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 var 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}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar 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 (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\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 (0, legacy_js_1.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) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.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) {\n if (recurse === void 0) { recurse = false; }\n var 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","\"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 __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.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.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.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 */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\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 */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\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 */\nfunction createDomStream(callback, options, elementCallback) {\n var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar 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 */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = parseFeedDefaultOptions; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"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","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\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\nexports.isPlainObject = isPlainObject;\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","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}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","export default {}","'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 if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\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\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\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 let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + 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\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\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\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\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\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 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, stringRepresentation) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation)\n } else if (opts.word) {\n stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index, stringRepresentation)\n }\n return pos\n }\n\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[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.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation)\n end = this.positionInside(index + opts.word.length, stringRepresentation)\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 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","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}\nmodule.exports = { nanoid, customAlphabet }\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\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 { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { isAbsolute, resolve } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\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 result, endLine, endColumn\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 { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, relative, resolve, sep } = require('path')\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.indexOf('# sourceMappingURL=') === 0) {\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 lines, last\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\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 { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\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 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\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","'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\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, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\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 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 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 Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\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 token, type, prev\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().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\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 Parser = require('./parser')\nlet Input = require('./input')\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\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\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 stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\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 NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.41'\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 Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\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 CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\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","export const allowedFileTypesForImage = ['jpeg', 'jpg', 'png', 'svg', 'webp'];\nexport const allowedFileTypesForVideo = ['mp4', 'mov'];\nexport const allowedTopLabelSizes = {\n\tsmall: [32, 16],\n\tregular: [40, 26],\n\tlarge: [65, 30],\n};\nexport const allowedColorsForCharts = {\n\tnone: '',\n\tred: '#de1500',\n\torange: '#e47f00',\n\tfuschia: '#b10043',\n\tblue: '#299bcd',\n\tgrey: '#5a657c',\n\tgreen: '#008a16',\n\twhite: '#ffffff',\n\t'dark green': '#006b01',\n\t'light green': '#0fb542',\n\t'tier 1 green': '#3dcd58',\n\t'dark grey': '#333333',\n\t'light grey': '#d9d9d9',\n\t'primary green': '#008a16',\n\t'texture green': '#00cb63',\n\t'dark grey 01': '#626469',\n\t'dark grey 02': '#5c6466',\n\t'dark grey 03': '#cccccc',\n\t'light grey 01': '#e6e6e6',\n\t'light grey 02': '#f3f2f2',\n\t'light grey 03': '#f9f9f9',\n\t'light grey 04': '#fcfcfc',\n\t'light grey 05': '#e9e9e9',\n\t'tier 1 dark grey 01': '#191b1d',\n\t'tier 1 dark grey 02': '#212325',\n\t'light green 01': '#aed8b5',\n\t'light green 02': '#30b549',\n\t'light green 03': '#22a437',\n\t'light green 04': '#00b215',\n\t'dark green 02': '#007713',\n\t'dark green 03': '#006610',\n\t'dark green 05': '#004c0c',\n\t'dark green 06': '#00440b',\n\t'dark green 08': '#003208',\n\t'dark green 09': '#003208',\n\tgray: '#5a657c',\n} as const;\n","/*! *****************************************************************************\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 */\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 __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 (_) 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 function __createBinding(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, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = 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\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\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 __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: n === \"return\" } : 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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","'use strict';\n\nfunction pad (hash, len) {\n while (hash.length < len) {\n hash = '0' + hash;\n }\n return hash;\n}\n\nfunction fold (hash, text) {\n var i;\n var chr;\n var len;\n if (text.length === 0) {\n return hash;\n }\n for (i = 0, len = text.length; i < len; i++) {\n chr = text.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0;\n }\n return hash < 0 ? hash * -2 : hash;\n}\n\nfunction foldObject (hash, o, seen) {\n return Object.keys(o).sort().reduce(foldKey, hash);\n function foldKey (hash, key) {\n return foldValue(hash, o[key], key, seen);\n }\n}\n\nfunction foldValue (input, value, key, seen) {\n var hash = fold(fold(fold(input, key), toString(value)), typeof value);\n if (value === null) {\n return fold(hash, 'null');\n }\n if (value === undefined) {\n return fold(hash, 'undefined');\n }\n if (typeof value === 'object' || typeof value === 'function') {\n if (seen.indexOf(value) !== -1) {\n return fold(hash, '[Circular]' + key);\n }\n seen.push(value);\n\n var objHash = foldObject(hash, value, seen)\n\n if (!('valueOf' in value) || typeof value.valueOf !== 'function') {\n return objHash;\n }\n\n try {\n return fold(objHash, String(value.valueOf()))\n } catch (err) {\n return fold(objHash, '[valueOf exception]' + (err.stack || err.message))\n }\n }\n return fold(hash, value.toString());\n}\n\nfunction toString (o) {\n return Object.prototype.toString.call(o);\n}\n\nfunction sum (o) {\n return pad(foldValue(0, o, '', []).toString(16), 8);\n}\n\nmodule.exports = sum;\n","import { __assign } from 'tslib';\nimport hash from 'hash-sum';\n\n(function () {\n if (typeof window === 'undefined' || typeof window.CustomEvent === 'function') return false;\n\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: null };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n\n window.CustomEvent = CustomEvent;\n})();\n\nvar isSafari = typeof window !== 'undefined' &&\r\n /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent);\r\nvar isClient = typeof window !== 'undefined';\r\n// TODO: queue all of these in a debounceNextTick\r\nfunction nextTick(fn) {\r\n // if (typeof process !== 'undefined' && process.nextTick) {\r\n // console.log('process.nextTick?');\r\n // process.nextTick(fn);\r\n // return;\r\n // }\r\n // FIXME: fix the real safari issue of this randomly not working\r\n if (!isClient || isSafari || typeof MutationObserver === 'undefined') {\r\n setTimeout(fn);\r\n return;\r\n }\r\n var called = 0;\r\n var observer = new MutationObserver(function () { return fn(); });\r\n var element = document.createTextNode('');\r\n observer.observe(element, {\r\n characterData: true,\r\n });\r\n // tslint:disable-next-line\r\n element.data = String((called = ++called));\r\n}\n\nvar PROPERTY_NAME_DENY_LIST = Object.freeze(['__proto__', 'prototype', 'constructor']);\r\n// TODO: unit tests\r\nvar QueryString = /** @class */ (function () {\r\n function QueryString() {\r\n }\r\n QueryString.parseDeep = function (queryString) {\r\n var obj = this.parse(queryString);\r\n return this.deepen(obj);\r\n };\r\n QueryString.stringifyDeep = function (obj) {\r\n var map = this.flatten(obj);\r\n return this.stringify(map);\r\n };\r\n QueryString.parse = function (queryString) {\r\n var query = {};\r\n var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');\r\n for (var i = 0; i < pairs.length; i++) {\r\n var pair = pairs[i].split('=');\r\n // TODO: node support?\r\n try {\r\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');\r\n }\r\n catch (error) {\r\n // Ignore malformed URI components\r\n }\r\n }\r\n return query;\r\n };\r\n QueryString.stringify = function (map) {\r\n var str = '';\r\n for (var key in map) {\r\n if (map.hasOwnProperty(key)) {\r\n var value = map[key];\r\n if (str) {\r\n str += '&';\r\n }\r\n str += encodeURIComponent(key) + '=' + encodeURIComponent(value);\r\n }\r\n }\r\n return str;\r\n };\r\n QueryString.deepen = function (map) {\r\n // FIXME; Should be type Tree = Record<string, string | Tree>\r\n // requires a typescript upgrade.\r\n var output = {};\r\n for (var k in map) {\r\n var t = output;\r\n var parts = k.split('.');\r\n var key = parts.pop();\r\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\r\n var part = parts_1[_i];\r\n assertAllowedPropertyName(part);\r\n t = t[part] = t[part] || {};\r\n }\r\n t[key] = map[k];\r\n }\r\n return output;\r\n };\r\n QueryString.flatten = function (obj, _current, _res) {\r\n if (_res === void 0) { _res = {}; }\r\n for (var key in obj) {\r\n var value = obj[key];\r\n var newKey = _current ? _current + '.' + key : key;\r\n if (value && typeof value === 'object') {\r\n this.flatten(value, newKey, _res);\r\n }\r\n else {\r\n _res[newKey] = value;\r\n }\r\n }\r\n return _res;\r\n };\r\n return QueryString;\r\n}());\r\nfunction assertAllowedPropertyName(name) {\r\n if (PROPERTY_NAME_DENY_LIST.indexOf(name) >= 0)\r\n throw new Error(\"Property name \\\"\".concat(name, \"\\\" is not allowed\"));\r\n}\n\nvar Subscription = /** @class */ (function () {\r\n function Subscription(listeners, listener) {\r\n this.listeners = listeners;\r\n this.listener = listener;\r\n this.unsubscribed = false;\r\n this.otherSubscriptions = [];\r\n }\r\n Object.defineProperty(Subscription.prototype, \"closed\", {\r\n get: function () {\r\n return this.unsubscribed;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Subscription.prototype.add = function (subscription) {\r\n this.otherSubscriptions.push(subscription);\r\n };\r\n Subscription.prototype.unsubscribe = function () {\r\n if (this.unsubscribed) {\r\n return;\r\n }\r\n if (this.listener && this.listeners) {\r\n var index = this.listeners.indexOf(this.listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n this.otherSubscriptions.forEach(function (sub) { return sub.unsubscribe(); });\r\n this.unsubscribed = true;\r\n };\r\n return Subscription;\r\n}());\r\n// TODO: follow minimal basic spec: https://github.com/tc39/proposal-observable\r\nvar BehaviorSubject = /** @class */ (function () {\r\n function BehaviorSubject(value) {\r\n var _this = this;\r\n this.value = value;\r\n this.listeners = [];\r\n this.errorListeners = [];\r\n this.then = function () {\r\n var _a;\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return (_a = _this.toPromise()).then.apply(_a, args);\r\n };\r\n }\r\n BehaviorSubject.prototype.next = function (value) {\r\n this.value = value;\r\n for (var _i = 0, _a = this.listeners; _i < _a.length; _i++) {\r\n var listener = _a[_i];\r\n listener(value);\r\n }\r\n };\r\n // TODO: implement this as PIPE instead\r\n BehaviorSubject.prototype.map = function (fn) {\r\n var newSubject = new BehaviorSubject(fn(this.value));\r\n // TODO: on destroy delete these\r\n this.subscribe(function (val) {\r\n newSubject.next(fn(val));\r\n });\r\n this.catch(function (err) {\r\n newSubject.error(err);\r\n });\r\n return newSubject;\r\n };\r\n BehaviorSubject.prototype.catch = function (errorListener) {\r\n this.errorListeners.push(errorListener);\r\n return new Subscription(this.errorListeners, errorListener);\r\n };\r\n BehaviorSubject.prototype.error = function (error) {\r\n for (var _i = 0, _a = this.errorListeners; _i < _a.length; _i++) {\r\n var listener = _a[_i];\r\n listener(error);\r\n }\r\n };\r\n BehaviorSubject.prototype.subscribe = function (listener, errorListener) {\r\n this.listeners.push(listener);\r\n if (errorListener) {\r\n this.errorListeners.push(errorListener);\r\n }\r\n return new Subscription(this.listeners, listener);\r\n };\r\n BehaviorSubject.prototype.toPromise = function () {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var subscription = _this.subscribe(function (value) {\r\n resolve(value);\r\n subscription.unsubscribe();\r\n }, function (err) {\r\n reject(err);\r\n subscription.unsubscribe();\r\n });\r\n });\r\n };\r\n BehaviorSubject.prototype.promise = function () {\r\n return this.toPromise();\r\n };\r\n return BehaviorSubject;\r\n}());\n\nvar State = {\r\n Pending: 'Pending',\r\n Fulfilled: 'Fulfilled',\r\n Rejected: 'Rejected',\r\n};\r\nfunction isFunction(val) {\r\n return val && typeof val === 'function';\r\n}\r\nfunction isObject(val) {\r\n return val && typeof val === 'object';\r\n}\r\nvar TinyPromise = /** @class */ (function () {\r\n function TinyPromise(executor) {\r\n this._state = State.Pending;\r\n this._handlers = [];\r\n this._value = null;\r\n executor(this._resolve.bind(this), this._reject.bind(this));\r\n }\r\n TinyPromise.prototype._resolve = function (x) {\r\n var _this = this;\r\n if (x instanceof TinyPromise) {\r\n x.then(this._resolve.bind(this), this._reject.bind(this));\r\n }\r\n else if (isObject(x) || isFunction(x)) {\r\n var called_1 = false;\r\n try {\r\n var thenable = x.then;\r\n if (isFunction(thenable)) {\r\n thenable.call(x, function (result) {\r\n if (!called_1)\r\n _this._resolve(result);\r\n called_1 = true;\r\n return undefined;\r\n }, function (error) {\r\n if (!called_1)\r\n _this._reject(error);\r\n called_1 = true;\r\n return undefined;\r\n });\r\n }\r\n else {\r\n this._fulfill(x);\r\n }\r\n }\r\n catch (ex) {\r\n if (!called_1) {\r\n this._reject(ex);\r\n }\r\n }\r\n }\r\n else {\r\n this._fulfill(x);\r\n }\r\n };\r\n TinyPromise.prototype._fulfill = function (result) {\r\n var _this = this;\r\n this._state = State.Fulfilled;\r\n this._value = result;\r\n this._handlers.forEach(function (handler) { return _this._callHandler(handler); });\r\n };\r\n TinyPromise.prototype._reject = function (error) {\r\n var _this = this;\r\n this._state = State.Rejected;\r\n this._value = error;\r\n this._handlers.forEach(function (handler) { return _this._callHandler(handler); });\r\n };\r\n TinyPromise.prototype._isPending = function () {\r\n return this._state === State.Pending;\r\n };\r\n TinyPromise.prototype._isFulfilled = function () {\r\n return this._state === State.Fulfilled;\r\n };\r\n TinyPromise.prototype._isRejected = function () {\r\n return this._state === State.Rejected;\r\n };\r\n TinyPromise.prototype._addHandler = function (onFulfilled, onRejected) {\r\n this._handlers.push({\r\n onFulfilled: onFulfilled,\r\n onRejected: onRejected,\r\n });\r\n };\r\n TinyPromise.prototype._callHandler = function (handler) {\r\n if (this._isFulfilled() && isFunction(handler.onFulfilled)) {\r\n handler.onFulfilled(this._value);\r\n }\r\n else if (this._isRejected() && isFunction(handler.onRejected)) {\r\n handler.onRejected(this._value);\r\n }\r\n };\r\n TinyPromise.prototype.then = function (onFulfilled, onRejected) {\r\n var _this = this;\r\n switch (this._state) {\r\n case State.Pending: {\r\n return new TinyPromise(function (resolve, reject) {\r\n _this._addHandler(function (value) {\r\n nextTick(function () {\r\n try {\r\n if (isFunction(onFulfilled)) {\r\n resolve(onFulfilled(value));\r\n }\r\n else {\r\n resolve(value);\r\n }\r\n }\r\n catch (ex) {\r\n reject(ex);\r\n }\r\n });\r\n }, function (error) {\r\n nextTick(function () {\r\n try {\r\n if (isFunction(onRejected)) {\r\n resolve(onRejected(error));\r\n }\r\n else {\r\n reject(error);\r\n }\r\n }\r\n catch (ex) {\r\n reject(ex);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n case State.Fulfilled: {\r\n return new TinyPromise(function (resolve, reject) {\r\n nextTick(function () {\r\n try {\r\n if (isFunction(onFulfilled)) {\r\n resolve(onFulfilled(_this._value));\r\n }\r\n else {\r\n resolve(_this._value);\r\n }\r\n }\r\n catch (ex) {\r\n reject(ex);\r\n }\r\n });\r\n });\r\n }\r\n case State.Rejected: {\r\n return new TinyPromise(function (resolve, reject) {\r\n nextTick(function () {\r\n try {\r\n if (isFunction(onRejected)) {\r\n resolve(onRejected(_this._value));\r\n }\r\n else {\r\n reject(_this._value);\r\n }\r\n }\r\n catch (ex) {\r\n reject(ex);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n };\r\n return TinyPromise;\r\n}());\r\nvar Promise$1 = (typeof Promise !== 'undefined' ? Promise : TinyPromise);\n\n// Webpack workaround to conditionally require certain external modules\r\n// only on the server and not bundle them on the client\r\nvar serverOnlyRequire;\r\ntry {\r\n // tslint:disable-next-line:no-eval\r\n serverOnlyRequire = eval('require');\r\n}\r\ncatch (err) {\r\n // all good\r\n serverOnlyRequire = (function () { return null; });\r\n}\r\nvar serverOnlyRequire$1 = serverOnlyRequire;\n\nfunction promiseResolve(value) {\r\n return new Promise$1(function (resolve) { return resolve(value); });\r\n}\r\n// Adapted from https://raw.githubusercontent.com/developit/unfetch/master/src/index.mjs\r\nfunction tinyFetch(url, options) {\r\n if (options === void 0) { options = {}; }\r\n return new Promise$1(function (resolve, reject) {\r\n var request = new XMLHttpRequest();\r\n request.open(options.method || 'get', url, true);\r\n if (options.headers) {\r\n for (var i in options.headers) {\r\n request.setRequestHeader(i, options.headers[i]);\r\n }\r\n }\r\n request.withCredentials = options.credentials === 'include';\r\n request.onload = function () {\r\n resolve(response());\r\n };\r\n request.onerror = reject;\r\n request.send(options.body);\r\n function response() {\r\n var keys = [];\r\n var all = [];\r\n var headers = {};\r\n var header = undefined;\r\n request\r\n .getAllResponseHeaders()\r\n .replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm, function (_match, _key, value) {\r\n var key = _key;\r\n keys.push((key = key.toLowerCase()));\r\n all.push([key, value]);\r\n header = headers[key];\r\n headers[key] = header ? \"\".concat(header, \",\").concat(value) : value;\r\n return '';\r\n });\r\n return {\r\n ok: ((request.status / 100) | 0) === 2,\r\n status: request.status,\r\n statusText: request.statusText,\r\n url: request.responseURL,\r\n clone: response,\r\n text: function () { return promiseResolve(request.responseText); },\r\n json: function () { return promiseResolve(request.responseText).then(JSON.parse); },\r\n blob: function () { return promiseResolve(new Blob([request.response])); },\r\n headers: {\r\n keys: function () { return keys; },\r\n entries: function () { return all; },\r\n get: function (n) { return headers[n.toLowerCase()]; },\r\n has: function (n) { return n.toLowerCase() in headers; },\r\n },\r\n };\r\n }\r\n });\r\n}\r\nfunction getFetch() {\r\n // If fetch is defined, in the browser, via polyfill, or in a Cloudflare worker, use it.\r\n var _fetch = undefined;\r\n if (globalThis.fetch) {\r\n _fetch !== null && _fetch !== void 0 ? _fetch : (_fetch = globalThis.fetch);\r\n }\r\n else if (typeof window === 'undefined') {\r\n // If fetch is not defined, in a Node.js environment, use node-fetch.\r\n try {\r\n // node-fetch@^3 is ESM only, and will throw error on require.\r\n _fetch !== null && _fetch !== void 0 ? _fetch : (_fetch = serverOnlyRequire$1('node-fetch'));\r\n }\r\n catch (e) {\r\n // If node-fetch is not installed, use tiny-fetch.\r\n console.warn('node-fetch is not installed. consider polyfilling fetch or installing node-fetch.');\r\n console.warn(e);\r\n }\r\n }\r\n // Otherwise, use tiny-fetch.\r\n return _fetch !== null && _fetch !== void 0 ? _fetch : tinyFetch;\r\n}\n\nfunction assign(target) {\r\n var to = Object(target);\r\n for (var index = 1; index < arguments.length; index++) {\r\n var nextSource = arguments[index];\r\n if (nextSource != null) {\r\n // Skip over if undefined or null\r\n for (var nextKey in nextSource) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n}\n\nfunction throttle(func, wait, options) {\r\n if (options === void 0) { options = {}; }\r\n var context;\r\n var args;\r\n var result;\r\n var timeout = null;\r\n var previous = 0;\r\n var later = function () {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n result = func.apply(context, args);\r\n if (!timeout)\r\n context = args = null;\r\n };\r\n return function () {\r\n var now = Date.now();\r\n if (!previous && options.leading === false)\r\n previous = now;\r\n var remaining = wait - (now - previous);\r\n context = this;\r\n args = arguments;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n result = func.apply(context, args);\r\n if (!timeout)\r\n context = args = null;\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n return result;\r\n };\r\n}\n\nvar camelCaseToKebabCase = function (str) {\r\n return str ? str.replace(/([A-Z])/g, function (g) { return \"-\".concat(g[0].toLowerCase()); }) : '';\r\n};\r\nvar Animator = /** @class */ (function () {\r\n function Animator() {\r\n }\r\n Animator.prototype.bindAnimations = function (animations) {\r\n for (var _i = 0, animations_1 = animations; _i < animations_1.length; _i++) {\r\n var animation = animations_1[_i];\r\n switch (animation.trigger) {\r\n case 'pageLoad':\r\n this.triggerAnimation(animation);\r\n break;\r\n case 'hover':\r\n this.bindHoverAnimation(animation);\r\n break;\r\n case 'scrollInView':\r\n this.bindScrollInViewAnimation(animation);\r\n break;\r\n }\r\n }\r\n };\r\n Animator.prototype.warnElementNotPresent = function (id) {\r\n console.warn(\"Cannot animate element: element with ID \".concat(id, \" not found!\"));\r\n };\r\n Animator.prototype.augmentAnimation = function (animation, element) {\r\n var stylesUsed = this.getAllStylesUsed(animation);\r\n var computedStyle = getComputedStyle(element);\r\n // const computedStyle = getComputedStyle(element);\r\n // // FIXME: this will break if original load is in one reponsive size then resize to another hmmm\r\n // Need to use transform instead of left since left can change on screen sizes\r\n var firstStyles = animation.steps[0].styles;\r\n var lastStyles = animation.steps[animation.steps.length - 1].styles;\r\n var bothStyles = [firstStyles, lastStyles];\r\n // FIXME: this won't work as expected for augmented animations - may need the editor itself to manage this\r\n for (var _i = 0, bothStyles_1 = bothStyles; _i < bothStyles_1.length; _i++) {\r\n var styles = bothStyles_1[_i];\r\n for (var _a = 0, stylesUsed_1 = stylesUsed; _a < stylesUsed_1.length; _a++) {\r\n var style = stylesUsed_1[_a];\r\n if (!(style in styles)) {\r\n styles[style] = computedStyle[style];\r\n }\r\n }\r\n }\r\n };\r\n Animator.prototype.getAllStylesUsed = function (animation) {\r\n var properties = [];\r\n for (var _i = 0, _a = animation.steps; _i < _a.length; _i++) {\r\n var step = _a[_i];\r\n for (var key in step.styles) {\r\n if (properties.indexOf(key) === -1) {\r\n properties.push(key);\r\n }\r\n }\r\n }\r\n return properties;\r\n };\r\n Animator.prototype.triggerAnimation = function (animation) {\r\n var _this = this;\r\n // TODO: do for ALL elements\r\n var elements = Array.prototype.slice.call(document.getElementsByClassName(animation.elementId || animation.id || ''));\r\n if (!elements.length) {\r\n this.warnElementNotPresent(animation.elementId || animation.id || '');\r\n return;\r\n }\r\n Array.from(elements).forEach(function (element) {\r\n _this.augmentAnimation(animation, element);\r\n // TODO: do this properly, may have other animations of different properties\r\n // TODO: only override the properties\r\n // TODO: if there is an entrance and hover animation, the transition duration will get effed\r\n // element.setAttribute('style', '');\r\n // const styledUsed = this.getAllStylesUsed(animation);\r\n element.style.transition = 'none';\r\n element.style.transitionDelay = '0';\r\n assign(element.style, animation.steps[0].styles);\r\n // TODO: queue/batch these timeouts\r\n // TODO: only include properties explicitly set in the animation\r\n // using Object.keys(styles)\r\n setTimeout(function () {\r\n element.style.transition = \"all \".concat(animation.duration, \"s \").concat(camelCaseToKebabCase(animation.easing));\r\n if (animation.delay) {\r\n element.style.transitionDelay = animation.delay + 's';\r\n }\r\n assign(element.style, animation.steps[1].styles);\r\n // TODO: maybe remove/reset transitoin property after animation duration\r\n // TODO: queue timers\r\n setTimeout(function () {\r\n // TODO: what if has other transition (reset back to what it was)\r\n element.style.transition = '';\r\n element.style.transitionDelay = '';\r\n }, (animation.delay || 0) * 1000 + animation.duration * 1000 + 100);\r\n });\r\n });\r\n };\r\n Animator.prototype.bindHoverAnimation = function (animation) {\r\n var _this = this;\r\n // TODO: is it multiple binding when editing...?\r\n // TODO: unbind on element remove\r\n // TODO: apply to ALL elements\r\n var elements = Array.prototype.slice.call(document.getElementsByClassName(animation.elementId || animation.id || ''));\r\n if (!elements.length) {\r\n this.warnElementNotPresent(animation.elementId || animation.id || '');\r\n return;\r\n }\r\n Array.from(elements).forEach(function (element) {\r\n _this.augmentAnimation(animation, element);\r\n var defaultState = animation.steps[0].styles;\r\n var hoverState = animation.steps[1].styles;\r\n function attachDefaultState() {\r\n assign(element.style, defaultState);\r\n }\r\n function attachHoverState() {\r\n assign(element.style, hoverState);\r\n }\r\n attachDefaultState();\r\n element.addEventListener('mouseenter', attachHoverState);\r\n element.addEventListener('mouseleave', attachDefaultState);\r\n // TODO: queue/batch these timeouts\r\n setTimeout(function () {\r\n element.style.transition = \"all \".concat(animation.duration, \"s \").concat(camelCaseToKebabCase(animation.easing));\r\n if (animation.delay) {\r\n element.style.transitionDelay = animation.delay + 's';\r\n }\r\n });\r\n });\r\n };\r\n // TODO: unbind on element remove\r\n Animator.prototype.bindScrollInViewAnimation = function (animation) {\r\n var _this = this;\r\n // TODO: apply to ALL matching elements\r\n var elements = Array.prototype.slice.call(document.getElementsByClassName(animation.elementId || animation.id || ''));\r\n if (!elements.length) {\r\n this.warnElementNotPresent(animation.elementId || animation.id || '');\r\n return;\r\n }\r\n // TODO: if server side rendered and scrolled into view don't animate...\r\n Array.from(elements).forEach(function (element) {\r\n _this.augmentAnimation(animation, element);\r\n var triggered = false;\r\n var pendingAnimation = false;\r\n function immediateOnScroll() {\r\n if (!triggered && isScrolledIntoView(element)) {\r\n triggered = true;\r\n pendingAnimation = true;\r\n setTimeout(function () {\r\n assign(element.style, animation.steps[1].styles);\r\n if (!animation.repeat) {\r\n document.removeEventListener('scroll', onScroll);\r\n }\r\n setTimeout(function () {\r\n pendingAnimation = false;\r\n if (!animation.repeat) {\r\n element.style.transition = '';\r\n element.style.transitionDelay = '';\r\n }\r\n }, (animation.duration + (animation.delay || 0)) * 1000 + 100);\r\n });\r\n }\r\n else if (animation.repeat &&\r\n triggered &&\r\n !pendingAnimation &&\r\n !isScrolledIntoView(element)) {\r\n // we want to repeat the animation every time the the element is out of view and back again\r\n triggered = false;\r\n assign(element.style, animation.steps[0].styles);\r\n }\r\n }\r\n // TODO: roll all of these in one for more efficiency of checking all the rects\r\n var onScroll = throttle(immediateOnScroll, 200, { leading: false });\r\n // TODO: fully in view or partially\r\n function isScrolledIntoView(elem) {\r\n var rect = elem.getBoundingClientRect();\r\n var windowHeight = window.innerHeight;\r\n var thresholdPercent = (animation.thresholdPercent || 0) / 100;\r\n var threshold = thresholdPercent * windowHeight;\r\n // TODO: partial in view? or what if element is larger than screen itself\r\n return (rect.bottom > threshold && rect.top < windowHeight - threshold // Element is peeking top or bottom\r\n // (rect.top > 0 && rect.bottom < window.innerHeight) || // element fits within the screen and is fully on screen (not hanging off at all)\r\n // (rect.top < 0 && rect.bottom > window.innerHeight) // element is larger than the screen and hangs over the top and bottom\r\n );\r\n }\r\n var defaultState = animation.steps[0].styles;\r\n function attachDefaultState() {\r\n assign(element.style, defaultState);\r\n }\r\n attachDefaultState();\r\n // TODO: queue/batch these timeouts!\r\n setTimeout(function () {\r\n element.style.transition = \"all \".concat(animation.duration, \"s \").concat(camelCaseToKebabCase(animation.easing));\r\n if (animation.delay) {\r\n element.style.transitionDelay = animation.delay + 's';\r\n }\r\n });\r\n // TODO: one listener for everything\r\n document.addEventListener('scroll', onScroll, { capture: true, passive: true });\r\n // Do an initial check\r\n immediateOnScroll();\r\n });\r\n };\r\n return Animator;\r\n}());\n\n/**\r\n * RegExp to match field-content in RFC 7230 sec 3.2\r\n *\r\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\r\n * field-vchar = VCHAR / obs-text\r\n * obs-text = %x80-FF\r\n */\r\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(request, response) {\r\n this.request = request;\r\n this.response = response;\r\n }\r\n Cookies.prototype.get = function (name) {\r\n var header = this.request.headers['cookie'];\r\n if (!header) {\r\n return;\r\n }\r\n var match = header.match(getPattern(name));\r\n if (!match) {\r\n return;\r\n }\r\n var value = match[1];\r\n return value;\r\n };\r\n Cookies.prototype.set = function (name, value, opts) {\r\n var res = this.response;\r\n var req = this.request;\r\n var headers = res.getHeader('Set-Cookie') || [];\r\n // TODO: just make this always true\r\n var secure = this.secure !== undefined\r\n ? !!this.secure\r\n : req.protocol === 'https' || req.connection.encrypted;\r\n var cookie = new Cookie(name, value, opts);\r\n if (typeof headers === 'string') {\r\n headers = [headers];\r\n }\r\n if (!secure && opts && opts.secure) {\r\n throw new Error('Cannot send secure cookie over unencrypted connection');\r\n }\r\n cookie.secure = secure;\r\n if (opts && 'secure' in opts) {\r\n cookie.secure = !!opts.secure;\r\n }\r\n pushCookie(headers, cookie);\r\n var setHeader = res.setHeader;\r\n setHeader.call(res, 'Set-Cookie', headers);\r\n return this;\r\n };\r\n return Cookies;\r\n}());\r\nvar Cookie = /** @class */ (function () {\r\n function Cookie(name, value, attrs) {\r\n this.path = '/';\r\n this.domain = undefined;\r\n this.httpOnly = true;\r\n this.sameSite = false;\r\n this.secure = false;\r\n this.overwrite = false;\r\n this.name = '';\r\n this.value = '';\r\n if (!fieldContentRegExp.test(name)) {\r\n throw new TypeError('argument name is invalid');\r\n }\r\n if (value && !fieldContentRegExp.test(value)) {\r\n throw new TypeError('argument value is invalid');\r\n }\r\n if (!value) {\r\n this.expires = new Date(0);\r\n }\r\n this.name = name;\r\n this.value = value || '';\r\n if (attrs.expires) {\r\n this.expires = attrs.expires;\r\n }\r\n if (attrs.secure) {\r\n this.secure = attrs.secure;\r\n }\r\n }\r\n Cookie.prototype.toString = function () {\r\n return \"\".concat(this.name, \"=\").concat(this.value);\r\n };\r\n Cookie.prototype.toHeader = function () {\r\n var header = this.toString();\r\n if (this.maxAge) {\r\n this.expires = new Date(Date.now() + this.maxAge);\r\n }\r\n if (this.path) {\r\n header += \"; path=\".concat(this.path);\r\n }\r\n if (this.expires) {\r\n header += \"; expires=\".concat(this.expires.toUTCString());\r\n }\r\n if (this.domain) {\r\n header += \"; domain=\".concat(this.domain);\r\n }\r\n // TODO: samesite=none by default (?)\r\n header += \"; SameSite=\".concat(this.sameSite === true ? 'strict' : 'None');\r\n // TODO: On by default\r\n if (this.secure) {\r\n header += '; secure';\r\n }\r\n if (this.httpOnly) {\r\n header += '; httponly';\r\n }\r\n return header;\r\n };\r\n return Cookie;\r\n}());\r\nfunction getPattern(name) {\r\n return new RegExp(\"(?:^|;) *\".concat(name.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&'), \"=([^;]*)\"));\r\n}\r\nfunction pushCookie(headers, cookie) {\r\n if (cookie.overwrite) {\r\n for (var i = headers.length - 1; i >= 0; i--) {\r\n if (headers[i].indexOf(\"\".concat(cookie.name, \"=\")) === 0) {\r\n headers.splice(i, 1);\r\n }\r\n }\r\n }\r\n headers.push(cookie.toHeader());\r\n}\n\nfunction omit(obj) {\r\n var values = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n values[_i - 1] = arguments[_i];\r\n }\r\n var newObject = Object.assign({}, obj);\r\n for (var _a = 0, values_1 = values; _a < values_1.length; _a++) {\r\n var key = values_1[_a];\r\n delete newObject[key];\r\n }\r\n return newObject;\r\n}\n\n/**\r\n * @credit https://stackoverflow.com/a/2117523\r\n */\r\nfunction uuidv4() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\n/**\r\n * Slightly cleaner and smaller UUIDs\r\n */\r\nfunction uuid() {\r\n return uuidv4().replace(/-/g, '');\r\n}\n\nfunction emptyUrl() {\r\n return {\r\n query: null,\r\n port: null,\r\n auth: null,\r\n hash: null,\r\n host: null,\r\n hostname: null,\r\n href: null,\r\n path: null,\r\n pathname: null,\r\n protocol: null,\r\n search: null,\r\n slashes: null,\r\n };\r\n}\r\n// Replacement for `url.parse` using `URL` global object that works with relative paths.\r\n// Assumptions: this function operates in a NodeJS environment.\r\nfunction parse$1(url) {\r\n var _a;\r\n var out = emptyUrl();\r\n var u;\r\n var pathOnly = url === '' || url[0] === '/';\r\n if (pathOnly) {\r\n u = new URL(url, 'http://0.0.0.0/');\r\n out.href = u.href;\r\n out.href = (_a = out.href) === null || _a === void 0 ? void 0 : _a.slice(14); // remove 'http://0.0.0.0/'\r\n }\r\n else {\r\n u = new URL(url);\r\n out.href = u.href;\r\n out.port = u.port === '' ? null : u.port;\r\n out.hash = u.hash === '' ? null : u.hash;\r\n out.host = u.host;\r\n out.hostname = u.hostname;\r\n out.href = u.href;\r\n out.pathname = u.pathname;\r\n out.protocol = u.protocol;\r\n out.slashes = url[u.protocol.length] === '/'; // check if the mimetype is proceeded by a slash\r\n }\r\n out.search = u.search;\r\n out.query = u.search.slice(1); // remove '?'\r\n out.path = \"\".concat(u.pathname).concat(u.search);\r\n out.pathname = u.pathname;\r\n return out;\r\n}\n\n/**\r\n * Safe conversion to error type. Intended to be used in catch blocks where the\r\n * value is not guaranteed to be an error.\r\n *\r\n * @example\r\n * try {\r\n * throw new Error('Something went wrong')\r\n * }\r\n * catch (err: unknown) {\r\n * const error: Error = toError(err)\r\n * }\r\n */\r\nfunction toError(err) {\r\n if (err instanceof Error)\r\n return err;\r\n return new Error(String(err));\r\n}\n\nvar DEFAULT_API_VERSION = 'v3';\n\nvar SDK_VERSION = '5.0.0';\n\nfunction datePlusMinutes(minutes) {\r\n if (minutes === void 0) { minutes = 30; }\r\n return new Date(Date.now() + minutes * 60000);\r\n}\r\nvar isPositiveNumber = function (thing) {\r\n return typeof thing === 'number' && !isNaN(thing) && thing >= 0;\r\n};\r\nvar isReactNative = typeof navigator === 'object' && navigator.product === 'ReactNative';\r\nvar validEnvList = [\r\n 'production',\r\n 'qa',\r\n 'test',\r\n 'development',\r\n 'dev',\r\n 'cdn-qa',\r\n 'cloud',\r\n 'fast',\r\n 'cdn2',\r\n 'cdn-prod',\r\n];\r\nfunction getQueryParam(url, variable) {\r\n var query = url.split('?')[1] || '';\r\n var vars = query.split('&');\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) === variable) {\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n return null;\r\n}\r\nvar urlParser = {\r\n parse: function (url) {\r\n var el = document.createElement('a');\r\n el.href = url;\r\n var out = {};\r\n var props = [\r\n 'username',\r\n 'password',\r\n 'host',\r\n 'hostname',\r\n 'port',\r\n 'protocol',\r\n 'origin',\r\n 'pathname',\r\n 'search',\r\n 'hash',\r\n ];\r\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\r\n var prop = props_1[_i];\r\n out[prop] = el[prop];\r\n }\r\n // IE 11 pathname handling workaround\r\n // (IE omits preceeding '/', unlike other browsers)\r\n if ((out.pathname || out.pathname === '') &&\r\n typeof out.pathname === 'string' &&\r\n out.pathname.indexOf('/') !== 0) {\r\n out.pathname = '/' + out.pathname;\r\n }\r\n return out;\r\n },\r\n};\r\nvar parse = isReactNative\r\n ? function () { return emptyUrl(); }\r\n : typeof window === 'object'\r\n ? urlParser.parse\r\n : parse$1;\r\nfunction setCookie(name, value, expires) {\r\n try {\r\n var expiresString = '';\r\n // TODO: need to know if secure server side\r\n if (expires) {\r\n expiresString = '; expires=' + expires.toUTCString();\r\n }\r\n var secure = isBrowser ? location.protocol === 'https:' : true;\r\n document.cookie =\r\n name +\r\n '=' +\r\n (value || '') +\r\n expiresString +\r\n '; path=/' +\r\n (secure ? '; secure; SameSite=None' : '');\r\n }\r\n catch (err) {\r\n console.warn('Could not set cookie', err);\r\n }\r\n}\r\nfunction getCookie(name) {\r\n try {\r\n return (decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' +\r\n encodeURIComponent(name).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') +\r\n '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')) || null);\r\n }\r\n catch (err) {\r\n console.warn('Could not get cookie', err);\r\n }\r\n}\r\nfunction size(object) {\r\n return Object.keys(object).length;\r\n}\r\nfunction find(target, callback) {\r\n var list = target;\r\n // Makes sures is always has an positive integer as length.\r\n var length = list.length >>> 0;\r\n var thisArg = arguments[1];\r\n for (var i = 0; i < length; i++) {\r\n var element = list[i];\r\n if (callback.call(thisArg, element, i, list)) {\r\n return element;\r\n }\r\n }\r\n}\r\nvar sessionStorageKey = 'builderSessionId';\r\nvar localStorageKey = 'builderVisitorId';\r\nvar isBrowser = typeof window !== 'undefined' && !isReactNative;\r\nvar isIframe = isBrowser && window.top !== window.self;\r\nfunction BuilderComponent(info) {\r\n if (info === void 0) { info = {}; }\r\n return Builder.Component(info);\r\n}\r\nvar Builder = /** @class */ (function () {\r\n function Builder(apiKey, request, response, forceNewInstance, authToken, apiVersion) {\r\n if (apiKey === void 0) { apiKey = null; }\r\n if (forceNewInstance === void 0) { forceNewInstance = false; }\r\n if (authToken === void 0) { authToken = null; }\r\n var _this = this;\r\n this.request = request;\r\n this.response = response;\r\n this.eventsQueue = [];\r\n this.throttledClearEventsQueue = throttle(function () {\r\n _this.processEventsQueue();\r\n // Extend the session cookie\r\n _this.setCookie(sessionStorageKey, _this.sessionId, datePlusMinutes(30));\r\n }, 5);\r\n this.env = 'production';\r\n this.sessionId = this.getSessionId();\r\n this.targetContent = true;\r\n this.contentPerRequest = 1;\r\n // TODO: make array or function\r\n this.allowCustomFonts = true;\r\n this.cookies = null;\r\n // TODO: api options object\r\n this.cachebust = false;\r\n this.overrideParams = '';\r\n this.noCache = false;\r\n this.preview = false;\r\n this.apiVersion$ = new BehaviorSubject(undefined);\r\n this.canTrack$ = new BehaviorSubject(!this.browserTrackingDisabled);\r\n this.apiKey$ = new BehaviorSubject(null);\r\n this.authToken$ = new BehaviorSubject(null);\r\n this.userAttributesChanged = new BehaviorSubject(null);\r\n this.editingMode$ = new BehaviorSubject(isIframe);\r\n // TODO: decorator to do this stuff with the get/set (how do with typing too? compiler?)\r\n this.editingModel$ = new BehaviorSubject(null);\r\n this.userAgent = (typeof navigator === 'object' && navigator.userAgent) || '';\r\n this.trackingHooks = [];\r\n // Set this to control the userId\r\n // TODO: allow changing it mid session and updating existing data to be associated\r\n // e.g. for when a user navigates and then logs in\r\n this.visitorId = this.getVisitorId();\r\n this.autoTrack = !Builder.isBrowser\r\n ? false\r\n : !this.isDevelopmentEnv &&\r\n !(Builder.isBrowser && location.search.indexOf('builder.preview=') !== -1);\r\n this.trackingUserAttributes = {};\r\n this.blockContentLoading = '';\r\n this.observersByKey = {};\r\n this.noEditorUpdates = {};\r\n this.overrides = {};\r\n this.queryOptions = {};\r\n this.getContentQueue = null;\r\n this.priorContentQueue = null;\r\n this.testCookiePrefix = 'builder.tests';\r\n this.cookieQueue = [];\r\n // TODO: use a window variable for this perhaps, e.g. bc webcomponents may be loading builder twice\r\n // with it's and react (use rollup build to fix)\r\n if (Builder.isBrowser && !forceNewInstance && Builder.singletonInstance) {\r\n return Builder.singletonInstance;\r\n }\r\n if (this.request && this.response) {\r\n this.setUserAgent(this.request.headers['user-agent'] || '');\r\n this.cookies = new Cookies(this.request, this.response);\r\n }\r\n if (apiKey) {\r\n this.apiKey = apiKey;\r\n }\r\n if (apiVersion) {\r\n this.apiVersion = apiVersion;\r\n }\r\n if (authToken) {\r\n this.authToken = authToken;\r\n }\r\n if (isBrowser) {\r\n if (Builder.isEditing) {\r\n this.bindMessageListeners();\r\n parent.postMessage({\r\n type: 'builder.animatorOptions',\r\n data: {\r\n options: {\r\n version: 2,\r\n },\r\n },\r\n }, '*');\r\n }\r\n // TODO: postmessage to parent the builder info for every package\r\n // type: 'builder.sdk', data: { name: '@builder.io/react', version: '0.1.23' }\r\n // (window as any).BUILDER_VERSION = Builder.VERSION;\r\n // Ensure always one Builder global singleton\r\n // TODO: some people won't want this, e.g. rakuten\r\n // Maybe hide this behind symbol or on document, etc\r\n // if ((window as any).Builder) {\r\n // Builder.components = (window as any).Builder.components;\r\n // } else {\r\n // (window as any).Builder = Builder;\r\n // }\r\n }\r\n if (isIframe) {\r\n this.messageFrameLoaded();\r\n }\r\n // TODO: on destroy clear subscription\r\n this.canTrack$.subscribe(function (value) {\r\n if (value) {\r\n if (typeof sessionStorage !== 'undefined') {\r\n try {\r\n if (!sessionStorage.getItem(sessionStorageKey)) {\r\n sessionStorage.setItem(sessionStorageKey, _this.sessionId);\r\n }\r\n }\r\n catch (err) {\r\n console.debug('Session storage error', err);\r\n }\r\n }\r\n if (_this.eventsQueue.length) {\r\n _this.throttledClearEventsQueue();\r\n }\r\n if (_this.cookieQueue.length) {\r\n _this.cookieQueue.forEach(function (item) {\r\n _this.setCookie(item[0], item[1]);\r\n });\r\n _this.cookieQueue.length = 0;\r\n }\r\n }\r\n });\r\n if (isBrowser) {\r\n // TODO: defer so subclass constructor runs and injects location service\r\n this.setTestsFromUrl();\r\n // TODO: do this on every request send?\r\n this.getOverridesFromQueryString();\r\n // cookies used in personalization container script, so need to set before hydration to match script result\r\n var userAttrCookie = this.getCookie(Builder.attributesCookieName);\r\n if (userAttrCookie) {\r\n try {\r\n var attributes = JSON.parse(userAttrCookie);\r\n this.setUserAttributes(attributes);\r\n }\r\n catch (err) {\r\n console.debug('Error parsing user attributes cookie', err);\r\n }\r\n }\r\n }\r\n }\r\n Builder.register = function (type, info) {\r\n if (type === 'plugin') {\r\n info = this.serializeIncludingFunctions(info);\r\n }\r\n // TODO: all must have name and can't conflict?\r\n var typeList = this.registry[type];\r\n if (!typeList) {\r\n typeList = this.registry[type] = [];\r\n }\r\n typeList.push(info);\r\n if (Builder.isBrowser) {\r\n var message = {\r\n type: 'builder.register',\r\n data: {\r\n type: type,\r\n info: info,\r\n },\r\n };\r\n try {\r\n parent.postMessage(message, '*');\r\n if (parent !== window) {\r\n window.postMessage(message, '*');\r\n }\r\n }\r\n catch (err) {\r\n console.debug('Could not postmessage', err);\r\n }\r\n }\r\n this.registryChange.next(this.registry);\r\n };\r\n Builder.registerEditor = function (info) {\r\n if (Builder.isBrowser) {\r\n window.postMessage({\r\n type: 'builder.registerEditor',\r\n data: omit(info, 'component'),\r\n }, '*');\r\n var hostname = location.hostname;\r\n if (!Builder.isTrustedHost(hostname)) {\r\n console.error('Builder.registerEditor() called in the wrong environment! You cannot load custom editors from your app, they must be loaded through the Builder.io app itself. Follow the readme here for more details: https://github.com/builderio/builder/tree/master/plugins/cloudinary or contact chat us in our Spectrum community for help: https://spectrum.chat/builder');\r\n }\r\n }\r\n this.editors.push(info);\r\n };\r\n Builder.registerPlugin = function (info) {\r\n this.plugins.push(info);\r\n };\r\n Builder.registerAction = function (action) {\r\n this.actions.push(action);\r\n };\r\n Builder.registerTrustedHost = function (host) {\r\n this.trustedHosts.push(host);\r\n };\r\n /**\r\n * @param context @type {import('isolated-vm').Context}\r\n * Use this function to control the execution context of custom code on the server.\r\n * const ivm = require('isolated-vm');\r\n * const isolate = new ivm.Isolate({ memoryLimit: 128 });\r\n * const context = isolate.createContextSync();\r\n * Builder.setServerContext(context);\r\n */\r\n Builder.setServerContext = function (context) {\r\n this.serverContext = context;\r\n };\r\n Builder.isTrustedHost = function (hostname) {\r\n var isTrusted = this.trustedHosts.findIndex(function (trustedHost) {\r\n return trustedHost.startsWith('*.')\r\n ? hostname.endsWith(trustedHost.slice(1))\r\n : trustedHost === hostname;\r\n }) > -1;\r\n return isTrusted;\r\n };\r\n Builder.isTrustedHostForEvent = function (event) {\r\n var url = parse(event.origin);\r\n return url.hostname && Builder.isTrustedHost(url.hostname);\r\n };\r\n Builder.runAction = function (action) {\r\n // TODO\r\n var actionObject = typeof action === 'string' ? find(this.actions, function (item) { return item.name === action; }) : action;\r\n if (!actionObject) {\r\n throw new Error(\"Action not found: \".concat(action));\r\n }\r\n };\r\n Builder.fields = function (name, fields) {\r\n var _a;\r\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\r\n type: 'builder.fields',\r\n data: { name: name, fields: fields },\r\n }, '*');\r\n };\r\n /**\r\n * @deprecated\r\n * @hidden\r\n *\r\n * Use Builder.register('editor.settings', {}) instead.\r\n */\r\n Builder.set = function (settings) {\r\n Builder.register('editor.settings', settings);\r\n };\r\n Builder.import = function (packageName) {\r\n if (!Builder.isBrowser) {\r\n // TODO: server side support *maybe*\r\n console.warn('Builder.import used on the server - this should only be used in the browser');\r\n return;\r\n }\r\n var System = window.System;\r\n if (!System) {\r\n console.warn('System.js not available. Please include System.js when using Builder.import');\r\n return;\r\n }\r\n return System.import(\"https://cdn.builder.io/systemjs/\".concat(packageName));\r\n };\r\n Object.defineProperty(Builder, \"editingPage\", {\r\n // useCdnApi = false;\r\n get: function () {\r\n return this._editingPage;\r\n },\r\n set: function (editingPage) {\r\n this._editingPage = editingPage;\r\n if (isBrowser && isIframe) {\r\n if (editingPage) {\r\n document.body.classList.add('builder-editing-page');\r\n }\r\n else {\r\n document.body.classList.remove('builder-editing-page');\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Builder.serializeIncludingFunctions = function (info) {\r\n var serializeFn = function (fnValue) {\r\n var fnStr = fnValue.toString().trim();\r\n // we need to account for a few different fn syntaxes:\r\n // 1. `function name(args) => {code}`\r\n // 2. `name(args) => {code}`\r\n // 3. `(args) => {}`\r\n // 4. `args => {}`\r\n var isArrowWithoutParens = /^[a-zA-Z0-9_]+\\s*=>/i.test(fnStr);\r\n var appendFunction = !fnStr.startsWith('function') && !fnStr.startsWith('(') && !isArrowWithoutParens;\r\n return \"return (\".concat(appendFunction ? 'function ' : '').concat(fnStr, \").apply(this, arguments)\");\r\n };\r\n return JSON.parse(JSON.stringify(info, function (key, value) {\r\n if (typeof value === 'function') {\r\n return serializeFn(value);\r\n }\r\n return value;\r\n }));\r\n };\r\n Builder.prepareComponentSpecToSend = function (spec) {\r\n return __assign(__assign({}, this.serializeIncludingFunctions(spec)), { class: undefined });\r\n };\r\n Builder.registerBlock = function (component, options) {\r\n this.registerComponent(component, options);\r\n };\r\n Builder.registerComponent = function (component, options) {\r\n var _a;\r\n var spec = __assign(__assign({ class: component }, component.builderOptions), options);\r\n this.addComponent(spec);\r\n var editable = options.models && this.singletonInstance.editingModel\r\n ? isBrowser && options.models.includes(this.singletonInstance.editingModel)\r\n : isBrowser;\r\n if (editable) {\r\n var sendSpec = this.prepareComponentSpecToSend(spec);\r\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\r\n type: 'builder.registerComponent',\r\n data: sendSpec,\r\n }, '*');\r\n }\r\n };\r\n Builder.addComponent = function (component) {\r\n var current = find(this.components, function (item) { return item.name === component.name; });\r\n if (current) {\r\n // FIXME: why does sometimes we get an extra post without class - probably\r\n // from postMessage handler wrong in some place\r\n if (current.class && !component.class) {\r\n return;\r\n }\r\n this.components.splice(this.components.indexOf(current), 1, component);\r\n }\r\n else {\r\n this.components.push(component);\r\n }\r\n };\r\n // TODO: style guide, etc off this system as well?\r\n Builder.component = function (info) {\r\n var _this = this;\r\n if (info === void 0) { info = {}; }\r\n return function (component) {\r\n var _a;\r\n var spec = __assign(__assign({}, info), { class: component });\r\n if (!spec.name) {\r\n spec.name = component.name;\r\n }\r\n _this.addComponent(spec);\r\n var sendSpec = _this.prepareComponentSpecToSend(spec);\r\n // TODO: serialize component name and inputs\r\n if (isBrowser) {\r\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\r\n type: 'builder.registerComponent',\r\n data: sendSpec,\r\n }, '*');\r\n }\r\n return component;\r\n };\r\n };\r\n Object.defineProperty(Builder, \"Component\", {\r\n get: function () {\r\n return this.component;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Builder.prototype.processEventsQueue = function () {\r\n if (!this.eventsQueue.length) {\r\n return;\r\n }\r\n var events = this.eventsQueue;\r\n this.eventsQueue = [];\r\n var fullUserAttributes = __assign(__assign({}, Builder.overrideUserAttributes), this.trackingUserAttributes);\r\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\r\n var event_1 = events_1[_i];\r\n if (!event_1.data.metadata) {\r\n event_1.data.metadata = {};\r\n }\r\n if (!event_1.data.metadata.user) {\r\n event_1.data.metadata.user = {};\r\n }\r\n Object.assign(event_1.data.metadata.user, fullUserAttributes, event_1.data.metadata.user);\r\n }\r\n var host = this.host;\r\n getFetch()(\"\".concat(host, \"/api/v1/track\"), {\r\n method: 'POST',\r\n body: JSON.stringify({ events: events }),\r\n headers: __assign({ 'content-type': 'application/json' }, this.getSdkHeaders()),\r\n mode: 'cors',\r\n }).catch(function () {\r\n // Not the end of the world\r\n });\r\n };\r\n Object.defineProperty(Builder.prototype, \"browserTrackingDisabled\", {\r\n get: function () {\r\n return Builder.isBrowser && Boolean(window.builderNoTrack || !navigator.cookieEnabled);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Builder.prototype, \"canTrack\", {\r\n get: function () {\r\n return this.canTrack$.value;\r\n },\r\n set: function (canTrack) {\r\n if (this.canTrack !== canTrack) {\r\n this.canTrack$.next(canTrack);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Builder.prototype, \"apiVersion\", {\r\n get: function () {\r\n return this.apiVersion$.value;\r\n },\r\n set: function (apiVersion) {\r\n if (this.apiVersion !== apiVersion) {\r\n this.apiVersion$.next(apiVersion);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Builder.prototype, \"editingMode\", {\r\n get: function () {\r\n return this.editingMode$.value;\r\n },\r\n set: function (value) {\r\n if (value !== this.editingMode) {\r\n this.editingMode$.next(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Builder.prototype, \"editingModel\", {\r\n get: function () {\r\n return this.editingModel$.value;\r\n },\r\n set: function (value) {\r\n if (value !== this.editingModel) {\r\n this.editingModel$.next(value);\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Builder.prototype.findParentElement = function (target, callback, checkElement) {\r\n if (checkElement === void 0) { checkElement = true; }\r\n if (!(target instanceof HTMLElement)) {\r\n return null;\r\n }\r\n var parent = checkElement ? target : target.parentElement;\r\n do {\r\n if (!parent) {\r\n return null;\r\n }\r\n var matches = callback(parent);\r\n if (matches) {\r\n return parent;\r\n }\r\n } while ((parent = parent.parentElement));\r\n return null;\r\n };\r\n Builder.prototype.findBuilderParent = function (target) {\r\n return this.findParentElement(target, function (el) {\r\n var id = el.getAttribute('builder-id') || el.id;\r\n return Boolean(id && id.indexOf('builder-') === 0);\r\n });\r\n };\r\n Builder.prototype.setUserAgent = function (userAgent) {\r\n this.userAgent = userAgent || '';\r\n };\r\n /**\r\n * Set a hook to modify events being tracked from builder, such as impressions and clicks\r\n *\r\n * For example, to track the model ID of each event associated with content for querying\r\n * by mode, you can do\r\n *\r\n * builder.setTrackingHook((event, context) => {\r\n * if (context.content) {\r\n * event.data.metadata.modelId = context.content.modelId\r\n * }\r\n * })\r\n */\r\n Builder.prototype.setTrackingHook = function (hook) {\r\n this.trackingHooks.push(hook);\r\n };\r\n Builder.prototype.track = function (eventName, properties, context) {\r\n if (properties === void 0) { properties = {}; }\r\n // TODO: queue up track requests and fire them off when canTrack set to true - otherwise may get lots of clicks with no impressions\r\n if (isIframe || !isBrowser || Builder.isPreviewing) {\r\n return;\r\n }\r\n var apiKey = this.apiKey;\r\n if (!apiKey) {\r\n console.error('Builder integration error: Looks like the Builder SDK has not been initialized properly (your API key has not been set). Make sure you are calling `builder.init(\"«YOUR-API-KEY»\");` as early as possible in your application\\'s code.');\r\n return;\r\n }\r\n var eventData = JSON.parse(JSON.stringify({\r\n type: eventName,\r\n data: __assign(__assign({}, omit(properties, 'meta')), { metadata: __assign(__assign({ sdkVersion: Builder.VERSION, url: location.href }, properties.meta), properties.metadata), ownerId: apiKey, userAttributes: this.getUserAttributes(), sessionId: this.sessionId, visitorId: this.visitorId }),\r\n }));\r\n for (var _i = 0, _a = this.trackingHooks; _i < _a.length; _i++) {\r\n var hook = _a[_i];\r\n var returnValue = hook(eventData, context || {});\r\n if (returnValue) {\r\n eventData = returnValue;\r\n }\r\n }\r\n // batch events\r\n this.eventsQueue.push(eventData);\r\n if (this.canTrack) {\r\n this.throttledClearEventsQueue();\r\n }\r\n };\r\n Builder.prototype.getSessionId = function () {\r\n var _this = this;\r\n var sessionId = null;\r\n try {\r\n if (Builder.isBrowser && typeof sessionStorage !== 'undefined') {\r\n sessionId = this.getCookie(sessionStorageKey);\r\n }\r\n }\r\n catch (err) {\r\n console.debug('Session storage error', err);\r\n // It's ok\r\n }\r\n if (!sessionId) {\r\n sessionId = uuid();\r\n }\r\n // Give the app a second to start up and set canTrack to false if needed\r\n if (Builder.isBrowser) {\r\n setTimeout(function () {\r\n try {\r\n if (_this.canTrack) {\r\n _this.setCookie(sessionStorageKey, sessionId, datePlusMinutes(30));\r\n }\r\n }\r\n catch (err) {\r\n console.debug('Cookie setting error', err);\r\n }\r\n });\r\n }\r\n return sessionId;\r\n };\r\n Builder.prototype.getVisitorId = function () {\r\n var _this = this;\r\n if (this.visitorId) {\r\n return this.visitorId;\r\n }\r\n var visitorId = null;\r\n try {\r\n if (Builder.isBrowser && typeof localStorage !== 'undefined') {\r\n // TODO: cookie instead?\r\n visitorId = localStorage.getItem(localStorageKey);\r\n }\r\n }\r\n catch (err) {\r\n console.debug('Local storage error', err);\r\n // It's ok\r\n }\r\n if (!visitorId) {\r\n visitorId = uuid();\r\n }\r\n this.visitorId = visitorId;\r\n // Give the app a second to start up and set canTrack to false if needed\r\n if (Builder.isBrowser) {\r\n setTimeout(function () {\r\n try {\r\n if (_this.canTrack && typeof localStorage !== 'undefined' && visitorId) {\r\n localStorage.setItem(localStorageKey, visitorId);\r\n }\r\n }\r\n catch (err) {\r\n console.debug('Session storage error', err);\r\n }\r\n });\r\n }\r\n return visitorId;\r\n };\r\n Builder.prototype.trackImpression = function (contentId, variationId, properties, context) {\r\n if (isIframe || !isBrowser || Builder.isPreviewing) {\r\n return;\r\n }\r\n // TODO: use this.track method\r\n this.track('impression', {\r\n contentId: contentId,\r\n variationId: variationId !== contentId ? variationId : undefined,\r\n metadata: properties,\r\n }, context);\r\n };\r\n Builder.prototype.trackConversion = function (amount, contentId, variationId, customProperties, context) {\r\n if (isIframe || !isBrowser || Builder.isPreviewing) {\r\n return;\r\n }\r\n var meta = typeof contentId === 'object' ? contentId : customProperties;\r\n var useContentId = typeof contentId === 'string' ? contentId : undefined;\r\n this.track('conversion', { amount: amount, variationId: variationId, meta: meta, contentId: useContentId }, context);\r\n };\r\n Object.defineProperty(Builder.prototype, \"isDevelopmentEnv\", {\r\n // TODO: set this for QA\r\n get: function () {\r\n // Automatic determining of development environment\r\n return (Builder.isIframe ||\r\n (Builder.isBrowser && (location.hostname === 'localhost' || location.port !== '')) ||\r\n this.env !== 'production');\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Builder.prototype.trackInteraction = function (contentId, variationId, alreadyTrackedOne, event, context) {\r\n if (alreadyTrackedOne === void 0) { alreadyTrackedOne = false; }\r\n if (isIframe || !isBrowser || Builder.isPreviewing) {\r\n return;\r\n }\r\n var target = event && event.target;\r\n var targetBuilderElement = target && this.findBuilderParent(target);\r\n function round(num) {\r\n return Math.round(num * 1000) / 1000;\r\n }\r\n var metadata = {};\r\n if (event) {\r\n var clientX = event.clientX, clientY = event.clientY;\r\n if (target) {\r\n var targetRect = target.getBoundingClientRect();\r\n var xOffset = clientX - targetRect.left;\r\n var yOffset = clientY - targetRect.top;\r\n var xRatio = round(xOffset / targetRect.width);\r\n var yRatio = round(yOffset / targetRect.height);\r\n metadata.targetOffset = {\r\n x: xRatio,\r\n y: yRatio,\r\n };\r\n }\r\n if (targetBuilderElement) {\r\n var targetRect = targetBuilderElement.getBoundingClientRect();\r\n var xOffset = clientX - targetRect.left;\r\n var yOffset = clientY - targetRect.top;\r\n var xRatio = round(xOffset / targetRect.width);\r\n var yRatio = round(yOffset / targetRect.height);\r\n metadata.builderTargetOffset = {\r\n x: xRatio,\r\n y: yRatio,\r\n };\r\n }\r\n }\r\n var builderId = targetBuilderElement &&\r\n (targetBuilderElement.getAttribute('builder-id') || targetBuilderElement.id);\r\n if (builderId && targetBuilderElement) {\r\n metadata.builderElementIndex = [].slice\r\n .call(document.getElementsByClassName(builderId))\r\n .indexOf(targetBuilderElement);\r\n }\r\n this.track('click', {\r\n contentId: contentId,\r\n metadata: metadata,\r\n variationId: variationId !== contentId ? variationId : undefined,\r\n unique: !alreadyTrackedOne,\r\n targetBuilderElement: builderId || undefined,\r\n }, context);\r\n };\r\n Builder.prototype.component = function (info) {\r\n if (info === void 0) { info = {}; }\r\n return Builder.component(info);\r\n };\r\n Object.defineProperty(Builder.prototype, \"apiKey\", {\r\n get: function () {\r\n return this.apiKey$.value;\r\n },\r\n set: function (key) {\r\n this.apiKey$.next(key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Builder.prototype, \"authToken\", {\r\n get: function () {\r\n return this.authToken$.value;\r\n },\r\n set: function (token) {\r\n this.authToken$.next(token);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Builder.prototype.modifySearch = function (search) {\r\n return search.replace(/(^|&|\\?)(builder_.*?)=/gi, function (_match, group1, group2) { return group1 + group2.replace(/_/g, '.') + '='; });\r\n };\r\n Builder.prototype.setTestsFromUrl = function () {\r\n var search = this.getLocation().search;\r\n try {\r\n var params = QueryString.parseDeep(this.modifySearch(search || '').substr(1));\r\n var tests = params.builder && params.builder.tests;\r\n if (tests && typeof tests === 'object') {\r\n for (var key in tests) {\r\n if (tests.hasOwnProperty(key)) {\r\n this.setTestCookie(key, tests[key]);\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n console.debug('Error parsing tests from URL', e);\r\n }\r\n };\r\n Builder.prototype.resetOverrides = function () {\r\n // Ugly - pass down instances per request instead using react context\r\n // or use builder.get('foo', { req, res }) in react...........\r\n Builder.overrideUserAttributes = {};\r\n this.cachebust = false;\r\n this.noCache = false;\r\n this.preview = false;\r\n this.editingModel = null;\r\n this.overrides = {};\r\n this.env = 'production';\r\n this.userAgent = '';\r\n this.request = undefined;\r\n this.response = undefined;\r\n };\r\n Builder.prototype.getOverridesFromQueryString = function () {\r\n var location = this.getLocation();\r\n try {\r\n var params = QueryString.parseDeep(this.modifySearch(location.search || '').substr(1));\r\n var builder = params.builder;\r\n if (builder) {\r\n var userAttributes = builder.userAttributes, overrides = builder.overrides, env = builder.env, host = builder.host, api = builder.api, cachebust = builder.cachebust, noCache = builder.noCache, preview = builder.preview, editing = builder.editing, frameEditing = builder.frameEditing, options = builder.options, overrideParams = builder.params;\r\n if (userAttributes) {\r\n this.setUserAttributes(userAttributes);\r\n }\r\n if (options) {\r\n // picking only locale, includeRefs, and enrich for now\r\n this.queryOptions = __assign(__assign(__assign({}, (options.locale && { locale: options.locale })), (options.includeRefs && { includeRefs: options.includeRefs })), (options.enrich && { enrich: options.enrich }));\r\n }\r\n if (overrides) {\r\n this.overrides = overrides;\r\n }\r\n if (validEnvList.indexOf(env || api) > -1) {\r\n this.env = env || api;\r\n }\r\n if (Builder.isEditing) {\r\n var editingModel = frameEditing || editing || preview;\r\n if (editingModel && editingModel !== 'true') {\r\n this.editingModel = editingModel;\r\n }\r\n }\r\n if (cachebust) {\r\n this.cachebust = true;\r\n }\r\n if (noCache) {\r\n this.noCache = true;\r\n }\r\n if (preview) {\r\n this.preview = true;\r\n }\r\n if (params) {\r\n this.overrideParams = overrideParams;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n console.debug('Error parsing overrides from URL', e);\r\n }\r\n };\r\n Builder.prototype.messageFrameLoaded = function () {\r\n var _a;\r\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\r\n type: 'builder.loaded',\r\n data: {\r\n value: true,\r\n },\r\n }, '*');\r\n };\r\n Builder.prototype.bindMessageListeners = function () {\r\n var _this = this;\r\n addEventListener('message', function (event) {\r\n var _a, _b, _c, _d;\r\n var isTrusted = Builder.isTrustedHostForEvent(event);\r\n if (!isTrusted)\r\n return;\r\n var data = event.data;\r\n if (data) {\r\n switch (data.type) {\r\n case 'builder.ping': {\r\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\r\n type: 'builder.pong',\r\n data: {},\r\n }, '*');\r\n break;\r\n }\r\n case 'builder.register': {\r\n // TODO: possibly do this for all...\r\n if (event.source === window) {\r\n break;\r\n }\r\n var options = data.data;\r\n if (!options) {\r\n break;\r\n }\r\n var type = options.type, info = options.info;\r\n // TODO: all must have name and can't conflict?\r\n var typeList = Builder.registry[type];\r\n if (!typeList) {\r\n typeList = Builder.registry[type] = [];\r\n }\r\n typeList.push(info);\r\n Builder.registryChange.next(Builder.registry);\r\n break;\r\n }\r\n case 'builder.settingsChange': {\r\n // TODO: possibly do this for all...\r\n if (event.source === window) {\r\n break;\r\n }\r\n var settings = data.data;\r\n if (!settings) {\r\n break;\r\n }\r\n Object.assign(Builder.settings, settings);\r\n Builder.settingsChange.next(Builder.settings);\r\n break;\r\n }\r\n case 'builder.registerEditor': {\r\n // TODO: possibly do this for all...\r\n if (event.source === window) {\r\n break;\r\n }\r\n var info_1 = data.data;\r\n if (!info_1) {\r\n break;\r\n }\r\n var hasComponent_1 = !!info_1.component;\r\n Builder.editors.every(function (thisInfo, index) {\r\n if (info_1.name === thisInfo.name) {\r\n if (thisInfo.component && !hasComponent_1) {\r\n return false;\r\n }\r\n else {\r\n Builder.editors[index] = thisInfo;\r\n }\r\n return false;\r\n }\r\n return true;\r\n });\r\n break;\r\n }\r\n case 'builder.triggerAnimation': {\r\n Builder.animator.triggerAnimation(data.data);\r\n break;\r\n }\r\n case 'builder.contentUpdate':\r\n var key = data.data.key || data.data.alias || data.data.entry || data.data.modelName;\r\n var contentData = data.data.data; // hmmm...\r\n var observer = _this.observersByKey[key];\r\n if (observer && !_this.noEditorUpdates[key]) {\r\n observer.next([contentData]);\r\n }\r\n break;\r\n case 'builder.getComponents':\r\n (_b = window.parent) === null || _b === void 0 ? void 0 : _b.postMessage({\r\n type: 'builder.components',\r\n data: Builder.components.map(function (item) { return Builder.prepareComponentSpecToSend(item); }),\r\n }, '*');\r\n break;\r\n case 'builder.editingModel':\r\n _this.editingModel = data.data.model;\r\n break;\r\n case 'builder.registerComponent':\r\n var componentData = data.data;\r\n Builder.addComponent(componentData);\r\n break;\r\n case 'builder.blockContentLoading':\r\n if (typeof data.data.model === 'string') {\r\n _this.blockContentLoading = data.data.model;\r\n }\r\n break;\r\n case 'builder.editingMode':\r\n var editingMode = data.data;\r\n if (editingMode) {\r\n _this.editingMode = true;\r\n document.body.classList.add('builder-editing');\r\n }\r\n else {\r\n _this.editingMode = false;\r\n document.body.classList.remove('builder-editing');\r\n }\r\n break;\r\n case 'builder.editingPageMode':\r\n var editingPageMode = data.data;\r\n Builder.editingPage = editingPageMode;\r\n break;\r\n case 'builder.overrideUserAttributes':\r\n var userAttributes = data.data;\r\n assign(Builder.overrideUserAttributes, userAttributes);\r\n _this.flushGetContentQueue(true);\r\n // TODO: refetch too\r\n break;\r\n case 'builder.overrideTestGroup':\r\n var _e = data.data, variationId = _e.variationId, contentId = _e.contentId;\r\n if (variationId && contentId) {\r\n _this.setTestCookie(contentId, variationId);\r\n _this.flushGetContentQueue(true);\r\n }\r\n break;\r\n case 'builder.evaluate': {\r\n var text = data.data.text;\r\n var args = data.data.arguments || [];\r\n var id_1 = data.data.id;\r\n // tslint:disable-next-line:no-function-constructor-with-string-args\r\n var fn = new Function(text);\r\n var result = void 0;\r\n var error = null;\r\n try {\r\n result = fn.apply(_this, args);\r\n }\r\n catch (err) {\r\n error = toError(err);\r\n }\r\n if (error) {\r\n (_c = window.parent) === null || _c === void 0 ? void 0 : _c.postMessage({\r\n type: 'builder.evaluateError',\r\n data: { id: id_1, error: error.message },\r\n }, '*');\r\n }\r\n else {\r\n if (result && typeof result.then === 'function') {\r\n result\r\n .then(function (finalResult) {\r\n var _a;\r\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({\r\n type: 'builder.evaluateResult',\r\n data: { id: id_1, result: finalResult },\r\n }, '*');\r\n })\r\n .catch(console.error);\r\n }\r\n else {\r\n (_d = window.parent) === null || _d === void 0 ? void 0 : _d.postMessage({\r\n type: 'builder.evaluateResult',\r\n data: { result: result, id: id_1 },\r\n }, '*');\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n };\r\n Object.defineProperty(Builder.prototype, \"defaultCanTrack\", {\r\n get: function () {\r\n return Boolean(Builder.isBrowser &&\r\n navigator.userAgent.trim() &&\r\n !navigator.userAgent.match(/bot|crawler|spider|robot|crawling|prerender|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|phantom|headless|selenium|puppeteer/i) &&\r\n !this.browserTrackingDisabled);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Builder.prototype.init = function (apiKey, canTrack, req, res, authToken, apiVersion) {\r\n if (canTrack === void 0) { canTrack = this.defaultCanTrack; }\r\n if (req) {\r\n this.request = req;\r\n }\r\n if (res) {\r\n this.response = res;\r\n }\r\n this.canTrack = canTrack;\r\n this.apiKey = apiKey;\r\n if (authToken) {\r\n this.authToken = authToken;\r\n }\r\n if (apiVersion) {\r\n this.apiVersion = apiVersion;\r\n }\r\n return this;\r\n };\r\n Object.defineProperty(Builder.prototype, \"previewingModel\", {\r\n get: function () {\r\n var search = this.getLocation().search;\r\n var params = QueryString.parse((search || '').substr(1));\r\n return params['builder.preview'];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n // TODO: allow adding location object as property and/or in constructor\r\n Builder.prototype.getLocation = function () {\r\n var _a;\r\n var parsedLocation = {};\r\n // in ssr mode\r\n if (this.request) {\r\n parsedLocation = parse((_a = this.request.url) !== null && _a !== void 0 ? _a : '');\r\n }\r\n else if (typeof location === 'object') {\r\n // in the browser\r\n parsedLocation = parse(location.href);\r\n }\r\n // IE11 bug with parsed path being empty string\r\n // causes issues with our user targeting\r\n if (parsedLocation.pathname === '') {\r\n parsedLocation.pathname = '/';\r\n }\r\n return parsedLocation;\r\n };\r\n Builder.prototype.getUserAttributes = function (userAgent) {\r\n if (userAgent === void 0) { userAgent = this.userAgent || ''; }\r\n var isMobile = {\r\n Android: function () {\r\n return userAgent.match(/Android/i);\r\n },\r\n BlackBerry: function () {\r\n return userAgent.match(/BlackBerry/i);\r\n },\r\n iOS: function () {\r\n return userAgent.match(/iPhone|iPod/i);\r\n },\r\n Opera: function () {\r\n return userAgent.match(/Opera Mini/i);\r\n },\r\n Windows: function () {\r\n return userAgent.match(/IEMobile/i) || userAgent.match(/WPDesktop/i);\r\n },\r\n any: function () {\r\n return (isMobile.Android() ||\r\n isMobile.BlackBerry() ||\r\n isMobile.iOS() ||\r\n isMobile.Opera() ||\r\n isMobile.Windows());\r\n },\r\n };\r\n var isTablet = userAgent.match(/Tablet|iPad/i);\r\n var url = this.getLocation();\r\n return __assign({ urlPath: url.pathname, host: url.host || url.hostname, \r\n // TODO: maybe an option to choose to target off of mobile/tablet/desktop or just mobile/desktop\r\n device: isTablet ? 'tablet' : isMobile.any() ? 'mobile' : 'desktop' }, Builder.overrideUserAttributes);\r\n };\r\n Builder.prototype.setUserAttributes = function (options) {\r\n assign(Builder.overrideUserAttributes, options);\r\n if (this.canTrack) {\r\n this.setCookie(Builder.attributesCookieName, JSON.stringify(this.getUserAttributes()));\r\n }\r\n this.userAttributesChanged.next(options);\r\n };\r\n /**\r\n * Set user attributes just for tracking purposes.\r\n *\r\n * Do this so properties exist on event objects for querying insights, but\r\n * won't affect targeting\r\n *\r\n * Use this when you want to track properties but don't need to target off\r\n * of them to optimize cache efficiency\r\n */\r\n Builder.prototype.setTrackingUserAttributes = function (attributes) {\r\n assign(this.trackingUserAttributes, attributes);\r\n };\r\n Builder.prototype.get = function (modelName, options) {\r\n var _a;\r\n if (options === void 0) { options = {}; }\r\n var instance = this;\r\n var finalLocale = options.locale || ((_a = options.userAttributes) === null || _a === void 0 ? void 0 : _a.locale) || this.getUserAttributes().locale;\r\n var finalOptions = __assign(__assign({}, options), (finalLocale && {\r\n locale: String(finalLocale),\r\n userAttributes: __assign({ locale: String(finalLocale) }, options.userAttributes),\r\n }));\r\n if (!Builder.isBrowser) {\r\n instance = new Builder(options.apiKey || this.apiKey, options.req, options.res, undefined, options.authToken || this.authToken, options.apiVersion || this.apiVersion);\r\n instance.setUserAttributes(this.getUserAttributes());\r\n }\r\n else {\r\n // NOTE: All these are when .init is not called and the customer\r\n // directly calls .get on the singleton instance of Builder\r\n if (options.apiKey && !this.apiKey) {\r\n this.apiKey = options.apiKey;\r\n }\r\n if (options.authToken && !this.authToken) {\r\n this.authToken = options.authToken;\r\n }\r\n if (options.apiVersion && !this.apiVersion) {\r\n this.apiVersion = options.apiVersion;\r\n }\r\n }\r\n return instance.queueGetContent(modelName, finalOptions).map(\r\n /* map( */ function (matches) {\r\n var match = matches && matches[0];\r\n if (Builder.isStatic) {\r\n return match;\r\n }\r\n var matchData = match && match.data;\r\n if (!matchData) {\r\n return null;\r\n }\r\n if (typeof matchData.blocksString !== 'undefined') {\r\n matchData.blocks = JSON.parse(matchData.blocksString);\r\n delete matchData.blocksString;\r\n }\r\n return {\r\n // TODO: add ab test info here and other high level stuff\r\n data: matchData,\r\n id: match.id,\r\n variationId: match.testVariationId || match.variationId || null,\r\n testVariationId: match.testVariationId || match.variationId || null,\r\n testVariationName: match.testVariationName || null,\r\n lastUpdated: match.lastUpdated || null,\r\n };\r\n });\r\n // );\r\n };\r\n // TODO: entry id in options\r\n Builder.prototype.queueGetContent = function (modelName, options) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n // TODO: if query do modelName + query\r\n var key = options.key ||\r\n options.alias ||\r\n // TODO: SDKs only pass entry key when given to them, and never when editing...\r\n // options.entry ||\r\n // TODO: this is ugly - instead of multiple of same model with different options are sent\r\n // say requires key/alias. Or if not perhaps make a reliable hash of the options and use that.\r\n // TODO: store last user state on last request and if user attributes different now\r\n // give a warning that need to use keys to request new contente\r\n // (options &&\r\n // Object.keys(options).filter(key => key !== 'model').length &&\r\n // JSON.stringify({ model: modelName, ...options, initialContent: undefined })) ||\r\n modelName;\r\n var isEditingThisModel = this.editingModel === modelName;\r\n // TODO: include params in this key........\r\n var currentObservable = this.observersByKey[key];\r\n // if (options.query && options.query._id) {\r\n // this.flushGetContentQueue([options])\r\n // }\r\n if (this.apiKey === 'DEMO' && !this.overrides[key] && !options.initialContent) {\r\n options.initialContent = [];\r\n }\r\n var initialContent = options.initialContent;\r\n // TODO: refresh option in options\r\n if (currentObservable && (!currentObservable.value || options.cache)) {\r\n // TODO: test if this ran, otherwise on 404 some observers may never be called...\r\n if (currentObservable.value) {\r\n nextTick(function () {\r\n // TODO: return a new observable and only that one fires subscribers, don't refire for existing ones\r\n currentObservable.next(currentObservable.value);\r\n });\r\n }\r\n return currentObservable;\r\n }\r\n if (isEditingThisModel) {\r\n if (Builder.isBrowser) {\r\n parent.postMessage({ type: 'builder.updateContent', data: { options: options } }, '*');\r\n }\r\n }\r\n if (!initialContent /* || isEditingThisModel */) {\r\n if (!this.getContentQueue) {\r\n this.getContentQueue = [];\r\n }\r\n this.getContentQueue.push(__assign(__assign({}, options), { model: modelName, key: key }));\r\n if (this.getContentQueue && this.getContentQueue.length >= this.contentPerRequest) {\r\n var queue_1 = this.getContentQueue.slice();\r\n this.getContentQueue = [];\r\n nextTick(function () {\r\n _this.flushGetContentQueue(false, queue_1);\r\n });\r\n }\r\n else {\r\n nextTick(function () {\r\n _this.flushGetContentQueue();\r\n });\r\n }\r\n }\r\n var observable = new BehaviorSubject(null);\r\n this.observersByKey[key] = observable;\r\n if (options.noEditorUpdates) {\r\n this.noEditorUpdates[key] = true;\r\n }\r\n if (initialContent) {\r\n nextTick(function () {\r\n // TODO: need to testModify this I think...?\r\n observable.next(initialContent);\r\n });\r\n }\r\n return observable;\r\n };\r\n // this is needed to satisfy the Angular SDK, which used to rely on the more complex version of `requestUrl`.\r\n // even though we only use `fetch()` now, we prefer to keep the old behavior and use the `fetch` that comes from\r\n // the core SDK for consistency\r\n Builder.prototype.requestUrl = function (url, options) {\r\n return getFetch()(url, this.addSdkHeaders(options)).then(function (res) { return res.json(); });\r\n };\r\n Object.defineProperty(Builder.prototype, \"host\", {\r\n get: function () {\r\n switch (this.env) {\r\n case 'qa':\r\n return 'https://qa.builder.io';\r\n case 'test':\r\n return 'https://builder-io-test.web.app';\r\n case 'fast':\r\n return 'https://fast.builder.io';\r\n case 'cloud':\r\n return 'https://cloud.builder.io';\r\n case 'cdn2':\r\n return 'https://cdn2.builder.io';\r\n case 'cdn-qa':\r\n return 'https://cdn-qa.builder.io';\r\n case 'development':\r\n case 'dev':\r\n return 'http://localhost:5000';\r\n case 'cdn-prod':\r\n return 'https://cdn.builder.io';\r\n default:\r\n return Builder.overrideHost || 'https://cdn.builder.io';\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Builder.prototype.getSdkHeaders = function () {\r\n if (!Builder.sdkInfo) {\r\n return {};\r\n }\r\n return {\r\n 'X-Builder-SDK': Builder.sdkInfo.name,\r\n 'X-Builder-SDK-GEN': '1',\r\n 'X-Builder-SDK-Version': Builder.sdkInfo.version,\r\n };\r\n };\r\n Builder.prototype.addSdkHeaders = function (fetchOptions) {\r\n return __assign(__assign({}, fetchOptions), { headers: __assign(__assign({}, fetchOptions.headers), this.getSdkHeaders()) });\r\n };\r\n Builder.prototype.makeFetchApiCall = function (url, requestOptions) {\r\n return getFetch()(url, this.addSdkHeaders(requestOptions));\r\n };\r\n Builder.prototype.flattenMongoQuery = function (obj, _current, _res) {\r\n if (_res === void 0) { _res = {}; }\r\n for (var key in obj) {\r\n var value = obj[key];\r\n var newKey = _current ? _current + '.' + key : key;\r\n if (value &&\r\n typeof value === 'object' &&\r\n !Array.isArray(value) &&\r\n !Object.keys(value).find(function (item) { return item.startsWith('$'); })) {\r\n this.flattenMongoQuery(value, newKey, _res);\r\n }\r\n else {\r\n _res[newKey] = value;\r\n }\r\n }\r\n return _res;\r\n };\r\n Builder.prototype.flushGetContentQueue = function (usePastQueue, useQueue) {\r\n var _this = this;\r\n if (usePastQueue === void 0) { usePastQueue = false; }\r\n if (!this.apiKey) {\r\n throw new Error(\"Fetching content failed, expected apiKey to be defined instead got: \".concat(this.apiKey));\r\n }\r\n if (this.apiVersion) {\r\n if (!['v1', 'v3'].includes(this.apiVersion)) {\r\n throw new Error(\"Invalid apiVersion: expected 'v1' or 'v3', received '\".concat(this.apiVersion, \"'\"));\r\n }\r\n }\r\n else {\r\n this.apiVersion = DEFAULT_API_VERSION;\r\n }\r\n if (!usePastQueue && !this.getContentQueue) {\r\n return;\r\n }\r\n var queue = useQueue || (usePastQueue ? this.priorContentQueue : this.getContentQueue) || [];\r\n var apiEndpoint = queue[0].apiEndpoint || 'query';\r\n // TODO: do this on every request send?\r\n this.getOverridesFromQueryString();\r\n var queryParams = __assign(__assign({ \r\n // TODO: way to force a request to be in a separate queue. or just lower queue limit to be 1 by default\r\n omit: queue[0].omit || 'meta.componentsUsed', apiKey: this.apiKey }, queue[0].options), this.queryOptions);\r\n if (queue[0].locale) {\r\n queryParams.locale = queue[0].locale;\r\n }\r\n if (queue[0].fields) {\r\n queryParams.fields = queue[0].fields;\r\n }\r\n if (queue[0].format) {\r\n queryParams.format = queue[0].format;\r\n }\r\n if ('noTraverse' in queue[0]) {\r\n queryParams.noTraverse = queue[0].noTraverse;\r\n }\r\n if ('includeUnpublished' in queue[0]) {\r\n queryParams.includeUnpublished = queue[0].includeUnpublished;\r\n }\r\n if (queue[0].sort) {\r\n queryParams.sort = queue[0].sort;\r\n }\r\n var pageQueryParams = (typeof location !== 'undefined'\r\n ? QueryString.parseDeep(location.search.substr(1))\r\n : undefined) || {}; // TODO: WHAT about SSR (this.request) ?\r\n var userAttributes = \r\n // FIXME: HACK: only checks first in queue for user attributes overrides, should check all\r\n // TODO: merge user attributes provided here with defaults and current user attiributes (?)\r\n queue && queue[0].userAttributes\r\n ? queue[0].userAttributes\r\n : this.targetContent\r\n ? this.getUserAttributes()\r\n : {\r\n urlPath: this.getLocation().pathname,\r\n };\r\n var fullUrlQueueItem = queue.find(function (item) { return !!item.includeUrl; });\r\n if (fullUrlQueueItem) {\r\n var location_1 = this.getLocation();\r\n if (location_1.origin) {\r\n queryParams.url = \"\".concat(location_1.origin).concat(location_1.pathname).concat(location_1.search);\r\n }\r\n }\r\n var urlQueueItem = useQueue === null || useQueue === void 0 ? void 0 : useQueue.find(function (item) { return item.url; });\r\n if (urlQueueItem === null || urlQueueItem === void 0 ? void 0 : urlQueueItem.url) {\r\n userAttributes.urlPath = urlQueueItem.url.split('?')[0];\r\n }\r\n // TODO: merge in the attribute from query string ones\r\n // TODO: make this an option per component/request\r\n queryParams.userAttributes = JSON.stringify(userAttributes);\r\n if (!usePastQueue && !useQueue) {\r\n this.priorContentQueue = queue;\r\n this.getContentQueue = null;\r\n }\r\n var cachebust = this.cachebust ||\r\n isIframe ||\r\n pageQueryParams.cachebust ||\r\n pageQueryParams['builder.cachebust'];\r\n if (cachebust || this.env !== 'production') {\r\n queryParams.cachebust = true;\r\n }\r\n if (Builder.isEditing) {\r\n queryParams.isEditing = true;\r\n }\r\n if (this.noCache || this.env !== 'production') {\r\n queryParams.noCache = true;\r\n }\r\n if (size(this.overrides)) {\r\n for (var key in this.overrides) {\r\n if (this.overrides.hasOwnProperty(key)) {\r\n queryParams[\"overrides.\".concat(key)] = this.overrides[key];\r\n }\r\n }\r\n }\r\n for (var _i = 0, queue_2 = queue; _i < queue_2.length; _i++) {\r\n var options = queue_2[_i];\r\n var format_1 = options.format;\r\n if (format_1) {\r\n queryParams.format = format_1;\r\n }\r\n // TODO: remove me and make permodel\r\n if (options.static) {\r\n queryParams.static = options.static;\r\n }\r\n if (options.cachebust) {\r\n queryParams.cachebust = options.cachebust;\r\n }\r\n if (isPositiveNumber(options.cacheSeconds)) {\r\n queryParams.cacheSeconds = options.cacheSeconds;\r\n }\r\n if (isPositiveNumber(options.staleCacheSeconds)) {\r\n queryParams.staleCacheSeconds = options.staleCacheSeconds;\r\n }\r\n var properties = [\r\n 'prerender',\r\n 'extractCss',\r\n 'limit',\r\n 'offset',\r\n 'query',\r\n 'preview',\r\n 'model',\r\n 'entry',\r\n 'rev',\r\n 'static',\r\n ];\r\n for (var _a = 0, properties_1 = properties; _a < properties_1.length; _a++) {\r\n var key = properties_1[_a];\r\n var value = options[key];\r\n if (value !== undefined) {\r\n if (apiEndpoint === 'query') {\r\n queryParams.options = queryParams.options || {};\r\n queryParams.options[options.key] = queryParams.options[options.key] || {};\r\n queryParams.options[options.key][key] = JSON.stringify(value);\r\n }\r\n else {\r\n queryParams[key] = JSON.stringify(value);\r\n }\r\n }\r\n }\r\n }\r\n if (this.preview) {\r\n queryParams.preview = 'true';\r\n }\r\n var hasParams = Object.keys(queryParams).length > 0;\r\n // TODO: option to force dev or qa api here\r\n var host = this.host;\r\n var keyNames = queue.map(function (item) { return encodeURIComponent(item.key); }).join(',');\r\n if (this.overrideParams) {\r\n var params = omit(QueryString.parse(this.overrideParams), 'apiKey');\r\n assign(queryParams, params);\r\n }\r\n var format = queryParams.format;\r\n var isApiCallForCodegen = format === 'solid' || format === 'react';\r\n var isApiCallForCodegenOrQuery = isApiCallForCodegen || apiEndpoint === 'query';\r\n if (apiEndpoint === 'content') {\r\n queryParams.enrich = true;\r\n if (queue[0].query) {\r\n var flattened = this.flattenMongoQuery({ query: queue[0].query });\r\n for (var key in flattened) {\r\n queryParams[key] = flattened[key];\r\n }\r\n delete queryParams.query;\r\n }\r\n }\r\n var queryStr = QueryString.stringifyDeep(queryParams);\r\n var fetchOptions = __assign({ headers: {} }, queue[0].fetchOptions);\r\n if (this.authToken) {\r\n fetchOptions.headers = __assign(__assign({}, fetchOptions.headers), { Authorization: \"Bearer \".concat(this.authToken) });\r\n }\r\n var url;\r\n if (isApiCallForCodegen) {\r\n url = \"\".concat(host, \"/api/v1/codegen/\").concat(this.apiKey, \"/\").concat(keyNames);\r\n }\r\n else if (apiEndpoint === 'query') {\r\n url = \"\".concat(host, \"/api/v3/query/\").concat(this.apiKey, \"/\").concat(keyNames);\r\n }\r\n else {\r\n url = \"\".concat(host, \"/api/v3/content/\").concat(queue[0].model);\r\n }\r\n url = url + (queryParams && hasParams ? \"?\".concat(queryStr) : '');\r\n var promise = this.makeFetchApiCall(url, fetchOptions)\r\n .then(function (res) { return res.json(); })\r\n .then(function (result) {\r\n for (var _i = 0, queue_3 = queue; _i < queue_3.length; _i++) {\r\n var options = queue_3[_i];\r\n var keyName = options.key;\r\n if (options.model === _this.blockContentLoading && !options.noEditorUpdates) {\r\n continue;\r\n }\r\n var isEditingThisModel = _this.editingModel === options.model;\r\n if (isEditingThisModel && Builder.isEditing) {\r\n parent.postMessage({ type: 'builder.updateContent', data: { options: options } }, '*');\r\n // return;\r\n }\r\n var observer = _this.observersByKey[keyName];\r\n if (!observer) {\r\n return;\r\n }\r\n var data = isApiCallForCodegenOrQuery ? result[keyName] : result.results;\r\n var sorted = data; // sortBy(data, item => item.priority);\r\n if (data) {\r\n var testModifiedResults = Builder.isServer\r\n ? sorted\r\n : _this.processResultsForTests(sorted);\r\n observer.next(testModifiedResults);\r\n }\r\n else {\r\n var search = _this.getLocation().search;\r\n if ((search || '').includes('builder.preview=' + options.model)) {\r\n var previewData = {\r\n id: 'preview',\r\n name: 'Preview',\r\n data: {},\r\n };\r\n observer.next([previewData]);\r\n }\r\n observer.next([]);\r\n }\r\n }\r\n }, function (err) {\r\n for (var _i = 0, queue_4 = queue; _i < queue_4.length; _i++) {\r\n var options = queue_4[_i];\r\n var observer = _this.observersByKey[options.key];\r\n if (!observer) {\r\n return;\r\n }\r\n observer.error(err);\r\n }\r\n });\r\n return promise;\r\n };\r\n Builder.prototype.processResultsForTests = function (results) {\r\n var _this = this;\r\n var _a;\r\n var mappedResults = results.map(function (item) {\r\n if (!item.variations) {\r\n return item;\r\n }\r\n var cookieValue = _this.getTestCookie(item.id);\r\n var cookieVariation = cookieValue === item.id ? item : item.variations[cookieValue];\r\n if (cookieVariation) {\r\n return __assign(__assign({}, item), { data: cookieVariation.data, variationId: cookieValue, testVariationId: cookieValue, testVariationName: cookieVariation.name });\r\n }\r\n if (_this.canTrack && item.variations && size(item.variations)) {\r\n var n = 0;\r\n var random = Math.random();\r\n for (var id in item.variations) {\r\n var variation = item.variations[id];\r\n var testRatio = variation.testRatio;\r\n n += testRatio;\r\n if (random < n) {\r\n _this.setTestCookie(item.id, variation.id);\r\n var variationName = variation.name || (variation.id === item.id ? 'Default variation' : '');\r\n return __assign(__assign({}, item), { data: variation.data, variationId: variation.id, testVariationId: variation.id, variationName: variationName, testVariationName: variationName });\r\n }\r\n }\r\n _this.setTestCookie(item.id, item.id);\r\n }\r\n return __assign(__assign(__assign({}, item), { variationId: item.id }), (item.variations &&\r\n size(item.variations) && {\r\n testVariationId: item.id,\r\n testVariationName: 'Default variation',\r\n }));\r\n });\r\n if (isIframe) {\r\n (_a = window.parent) === null || _a === void 0 ? void 0 : _a.postMessage({ type: 'builder.contentResults', data: { results: mappedResults } }, '*');\r\n }\r\n return mappedResults;\r\n };\r\n Builder.prototype.getTestCookie = function (contentId) {\r\n return this.getCookie(\"\".concat(this.testCookiePrefix, \".\").concat(contentId));\r\n };\r\n Builder.prototype.setTestCookie = function (contentId, variationId) {\r\n if (!this.canTrack) {\r\n this.cookieQueue.push([contentId, variationId]);\r\n return;\r\n }\r\n // 30 days from now\r\n var future = new Date();\r\n future.setDate(future.getDate() + 30);\r\n return this.setCookie(\"\".concat(this.testCookiePrefix, \".\").concat(contentId), variationId, future);\r\n };\r\n Builder.prototype.getCookie = function (name) {\r\n if (this.cookies) {\r\n return this.cookies.get(name);\r\n }\r\n return Builder.isBrowser && getCookie(name);\r\n };\r\n Builder.prototype.setCookie = function (name, value, expires) {\r\n if (this.cookies && !(Builder.isServer && Builder.isStatic)) {\r\n return this.cookies.set(name, value, {\r\n expires: expires,\r\n secure: this.getLocation().protocol === 'https:',\r\n });\r\n }\r\n return Builder.isBrowser && setCookie(name, value, expires);\r\n };\r\n Builder.prototype.getContent = function (modelName, options) {\r\n if (options === void 0) { options = {}; }\r\n if (!this.apiKey) {\r\n throw new Error(\"Fetching content from model \".concat(modelName, \" failed, expected apiKey to be defined instead got: \").concat(this.apiKey));\r\n }\r\n return this.queueGetContent(modelName, options);\r\n };\r\n Builder.prototype.getAll = function (modelName, options) {\r\n if (options === void 0) { options = {}; }\r\n var instance = this;\r\n if (!Builder.isBrowser) {\r\n instance = new Builder(options.apiKey || this.apiKey, options.req, options.res, false, options.authToken || this.authToken, options.apiVersion || this.apiVersion);\r\n instance.setUserAttributes(this.getUserAttributes());\r\n }\r\n else {\r\n // NOTE: All these are when .init is not called and the customer\r\n // directly calls .get on the singleton instance of Builder\r\n if (options.apiKey && !this.apiKey) {\r\n this.apiKey = options.apiKey;\r\n }\r\n if (options.authToken && !this.authToken) {\r\n this.authToken = options.authToken;\r\n }\r\n if (options.apiVersion && !this.apiVersion) {\r\n this.apiVersion = options.apiVersion;\r\n }\r\n }\r\n // Set noTraverse=true if NOT already passed by user, for query performance\r\n if (!('noTraverse' in options)) {\r\n options.noTraverse = true;\r\n }\r\n return instance\r\n .getContent(modelName, __assign(__assign({ limit: 30 }, options), { key: options.key ||\r\n // Make the key include all options, so we don't reuse cache for the same content fetched\r\n // with different options\r\n Builder.isBrowser\r\n ? \"\".concat(modelName, \":\").concat(hash(omit(options, 'initialContent', 'req', 'res')))\r\n : undefined }))\r\n .promise();\r\n };\r\n Builder.VERSION = SDK_VERSION;\r\n Builder.components = [];\r\n /**\r\n * Makes it so that a/b tests generate code like {@link\r\n * https://www.builder.io/blog/high-performance-no-code#__next:~:text=Static%20generated%20A%2FB%20testing}\r\n * instead of the old way where we render only one test group at a time on the\r\n * server. This is the preferred/better way not and we should ultimately make it\r\n * the default\r\n */\r\n Builder.isStatic = true;\r\n Builder.animator = new Animator();\r\n Builder.nextTick = nextTick;\r\n Builder.throttle = throttle;\r\n Builder.editors = [];\r\n Builder.trustedHosts = [\r\n '*.beta.builder.io',\r\n 'beta.builder.io',\r\n 'builder.io',\r\n 'localhost',\r\n 'qa.builder.io',\r\n ];\r\n Builder.plugins = [];\r\n Builder.actions = [];\r\n Builder.registry = {};\r\n Builder.attributesCookieName = 'builder.userAttributes';\r\n Builder.registryChange = new BehaviorSubject({});\r\n Builder._editingPage = false;\r\n Builder.isIframe = isIframe;\r\n Builder.isBrowser = isBrowser;\r\n Builder.isReactNative = isReactNative;\r\n Builder.isServer = !isBrowser && !isReactNative;\r\n Builder.previewingModel = Builder.isBrowser && getQueryParam(location.href, 'builder.preview');\r\n Builder.settings = {};\r\n Builder.settingsChange = new BehaviorSubject({});\r\n // TODO: this is quick and dirty, do better implementation later. Also can be unreliable\r\n // if page 301s etc. Use a query param instead? also could have issues with redirects. Injecting var could\r\n // work but is async...\r\n Builder.isEditing = Boolean(isIframe &&\r\n ((document.referrer && document.referrer.match(/builder\\.io|localhost:1234/)) ||\r\n location.search.indexOf('builder.frameEditing=') !== -1));\r\n Builder.isPreviewing = Boolean(isBrowser &&\r\n (location.search.indexOf('builder.preview=') !== -1 ||\r\n location.search.indexOf('builder.frameEditing=') !== -1));\r\n Builder.isReact = false;\r\n Builder.sdkInfo = undefined;\r\n Builder.overrideUserAttributes = {};\r\n return Builder;\r\n}());\n\nvar builder = new Builder(null, undefined, undefined, true);\r\nBuilder.singletonInstance = builder;\n\nexport { BehaviorSubject, Builder, BuilderComponent, Subscription, builder, isBrowser };\n//# sourceMappingURL=index.esm.js.map\n"],"names":["promise","info","token","update","type","index","key","value","child_ctx","block","needs_flush","i","current_component","error","ctx","dirty","resolved","levels","updates","to_null_out","accounted_for","n","spread_props","length","object","isObject","context","tagName","attrs","prefix","isEvent","result","attr","eventName","node","attrKeys","setup","teardown","svelte_element","svelte_element_data","target","anchor","switch_instance_spread_levels","create_dynamic_element","show_if","TagName","$$props","attributes","actionAttributes","dynamicrenderer_changes","link","openLinkInNewTab","builderLinkComponent","text","_a","omit","obj","values","newObject","message","path","defaultValue","res","isBrowser","searchParams","options","search","isIframe","parsedLocation","userAgent","isMobile","isTablet","url","builder","event","state","code","isExpression","rootState","localState","rootSetState","prop","val","subState","functionArgs","name","maybeT","shouldLogWarning","isArm64","isNode20","hasNoNodeSnapshotNodeOption","define_process_env_default","args","_c","_b","_f","_e","_d","getPath","e","_path","a","c","item","clonedObj","copy","copied","binding","expression","shouldEvaluateBindings","transformedBlock","_search","fnValue","fnStr","isArrowWithoutParens","typeList","err","_options","newOptions","trimmedKey","SDK_VERSION","host","parts","canTrack","row","getCookie","cookie","expires","secureObj","expiresObj","cookieValue","setCookie","uuidv4","r","uuid","sessionId","newSessionId","id","visitorId","newVisitorId","eventType","apiKey","metadata","properties","apiHost","eventProps","trustedHosts","hostname","trustedHost","data","fn","finalResult","model","callbacks","messageContent","contentData","contentId","variations","random","testRatio","randomVariationId","testGroupId","variationValue","separator","acc","newPath","_current","_res","newKey","DEFAULT_API_VERSION","isPositiveNumber","thing","limit","userAttributes","query","enrich","locale","apiVersion","fields","offset","cacheSeconds","staleCacheSeconds","sort","includeUnpublished","noTraverse","baseUrl","finalLocale","finalUserAttributes","flattened","queryOptions","content","allContent","_fetch","fetch","fetchOptions","newResults","str","throttle","func","wait","timeout","previous","later","now","remaining","assign","_args","to","nextSource","nextKey","animations","animation","element","stylesUsed","computedStyle","firstStyles","lastStyles","bothStyles","styles","style","step","elements","triggered","pendingAnimation","immediateOnScroll","isScrolledIntoView","onScroll","elem","rect","windowHeight","threshold","defaultState","attachDefaultState","mediaQuery","className","cssClass","registeredComponents","componentName","ref","repeat","blockWithoutRepeat","itemsArray","collectionName","itemNameToUse","linkComponent","builderBlock","size","sizeValues","small","medium","newSizes","smallMin","mediumMin","largeMin","raw_value","html_tag","nonce","inlinedstyles_changes","canShowBlock","processedBlock","css","sizesWithUpdatedBreakpoints","largeStyles","mediumStyles","smallStyles","largeStylesClass","mediumStylesClass","smallStylesClass","hoverAnimation","hoverStylesClass","hoverStyles","optionActions","eventHandlerName","Wrapper","create_if_block","load","fallback","props","componentImport","awaiter_changes","includeBlockProps","wrapperProps","$context","componentOptions","componentRef","isInteractive","contextValue","wrapperPropsWithAttributes","get_key","blockChildren","InteractiveElement","repeatContext","store","BuilderContext","componentref_changes","repeatedblock_changes","blockId","repeatItem","blockComponent","Tag","shouldHide","childrenWithoutParentComponent","componentRefProps","svelte_element_style_value","stringifyStyles","svelte_element_class_value","svelte_element_levels","current","stylesObj","dashedKey","match","blocks","classNameProp","parent","styleProp","BlocksWrapperProps","BlocksWrapper","onClick","dataPath","onMouseEnter","blocksWrapperRef","$$value","pathPrefix","block_1_changes","blockswrapper_changes","builderContext","componentsContext","blocks_changes","if_block","div_style_value","div_class_value","div","space","columns","stackColumnsAt","reverseColumnsWhenStacked","builderComponents","getTagName","column","getWidth","cols","getColumnCssWidth","width","subtractWidth","gutterSize","getTabletStyle","stackedStyle","desktopStyle","stackAt","getMobileStyle","columnsCssVars","flexDir","columnCssVars","gutter","gutterPixels","mobileWidth","mobileMarginLeft","getWidthForBreakpointSize","$builderContext","columnsStyles","childColumnDiv","getAttributes","span","uri","re","src","suffix","useSize","sizes","srcUrl","widthInSrc","sizeUrl","source","source_srcset_value","if_block1","create_if_block_2","if_block2","create_if_block_1","if_block3","img","img_src_value","img_srcset_value","picture","image","srcset","noWebp","aspectRatio","highPriority","altText","backgroundPosition","backgroundSize","fitContent","srcSetToUse","webpSrcSet","aspectRatioCss","section","dispose","setAttrs_action","maxWidth","componentInfo","order","each_blocks","grid","oneAtATime","items","gridRowWidth","getAccordionTitleClassName","open","getAccordionDetailClassName","$$invalidate","onlyOneAtATime","accordionStyles","openGridItemOrder","itemOrder","openItemIndex","subjectItem","prevItemRect","subjectItemRect","accordionDetailStyles","_","accordionTitleStyles","clearWidths","col","memo","loadImage","resolve","reject","loaded","round","num","blob","possiblyUpdatedAspectRatio","span_class_value","div1","div0","defaultActiveTab","tabs","collapsible","tabHeaderLayout","activeTabStyle","activeTabContent","active","activeTab","processedText","contextContext","group","replaceNodes","elementRef","scriptsInserted","scriptsRun","scripts","script","newScript","findAndRunScripts","ranInitFn","onUpdateFn_0","validEnvList","env","each_value","t_value","pre","t","show_if_3","show_if_2","form_action_value","form","previewState","sendWithJs","sendSubmissionsTo","action","customHeaders","contentType","sendSubmissionsToEmail","method","errorMessagePath","resetFormOnSubmit","successUrl","validate","errorMessage","sendingMessage","successMessage","mergeNewRootState","newData","combinedState","submissionState","formState","onSubmit","sendWithJsProp","el","headers","body","formData","formPairs","formContentType","json","presubmitEvent","formRef","formUrl","responseData","submitSuccessEvent","submitErrorEvent","input_key_value","input","placeholder","required","option_1","option_1_value_value","select_key_value","select","button_levels","button","button_data","textarea","img_key_value","imgSrc","source_src_value","video_1_preload_value","video_1_src_value","_g","video_1","autoPlay","muted","controls","loop","playsInline","preload","fit","position","video","posterImage","lazyLoad","videoProps","spreadProps","customCode","customCodeInfo","embed","embedComponentInfo","formComponentInfo","FormInput","formInputComponentInfo","FormSubmitButton","formSubmitButtonComponentInfo","FormSelect","formSelectComponentInfo","textAreaComponentInfo","imgComponentInfo","videoComponentInfo","buttonComponentInfo","columnsComponentInfo","fragmentComponentInfo","imageComponentInfo","sectionComponentInfo","slotComponentInfo","Symbol","symbolComponentInfo","Text","textComponentInfo","tabsComponentInfo","accordionComponentInfo","variant","variants","variationId","scriptStr","callback","checkElement","targetRect","xOffset","yOffset","xRatio","yRatio","targetBuilderElement","builderId","font","family","weight","weightUrl","customFonts","cssCode","isNested","svelte_element_classname_value","isNestedRender","builderContextSignal","showContent","contentWrapper","contentWrapperProps","$builderContextSignal","mergeNewContent","newContent","newContentValue","processMessage","breakpoints","clicked","runHttpRequests","requests","httpReqsPending","httpReqsData","evaluatedUrl","_match","response","emitStateUpdate","elementRef_onIniteditingbldr","registeredComponent","elementRef_onInitpreviewingbldr","searchParamPreviewModel","searchParamPreviewId","previewApiKey","ContentWrapper","onUpdateFn_1","onUpdateFn_2","onUpdateFn_3","showContentProps","onUpdateFn_1_builderContextSignal_rootState","injectedStyles","defaultValues","initialState","inlinedscript_changes","contentstyles_changes","customComponents","blocksWrapper","blocksWrapperProps","isSsrAbTest","contentSetState","newRootState","models","component","jsCode","newState","shouldRenderVariants","updateCookieAndStylesScriptStr","hideVariantsStyleString","defaultContent","builderContextValue","symbol","contentvariants_changes","dynamic","setContent","contentToUse","exports","decodeMap","codePoint","output","replaceCodePoint","decodeCodePoint","__createBinding","this","o","m","k","k2","desc","__setModuleDefault","v","__importStar","mod","__importDefault","decode_data_html_js_1","require$$0","decode_data_xml_js_1","require$$1","decode_codepoint_js_1","require$$2","decode_codepoint_js_2","CharCodes","TO_LOWER_BIT","BinTrieFlags","isNumber","isHexadecimalCharacter","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","errors","decodeMode","start","end","base","digitCount","startIdx","char","lastCp","expectedLength","valueLength","determineBranch","consumed","getDecoder","ret","decoder","lastIndex","len","nodeIdx","branchCount","jumpOffset","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","decodeHTML","mode","decodeHTMLAttribute","decodeHTMLStrict","decodeXML","decode_js_1","State","isWhitespace","isEndOfTagSection","isASCIIAlpha","isHexDigit","QuoteType","Sequences","Tokenizer","cbs","xmlMode","decodeEntities","chunk","isEnd","isMatch","endOfText","actualIndex","sequence","lower","quote","masked","entityStart","strict","numberStart","endIndex","cp","Parser_1","Parser","impliesClose","isImplied","pos","count","isOpenImplied","_h","_j","_k","slice","ElementType","isTag","extendStatics","d","b","p","__","__assign","s","domelementtype_1","Node","prev","next","recursive","cloneNode","_super","DataNode","_this","Comment","ProcessingInstruction","NodeWithChildren","children","CDATA","Document","Element","attribs","clone_1","child","clone_2","clone_3","instruction","childs","__exportStar","node_js_1","defaultOpts","DomHandler","elementCB","parser","lastNode","previousSibling","arr","xmlCodeMap","encodeXML","lastIdx","getEscaper","regex","map","regExp","nextChar","encode_js_1","escape_js_1","EntityLevel","EncodingMode","decode","level","decodeStrict","opts","encode","escape_js_2","encode_js_2","decode_js_2","lib","nodes","tag","stringify","domhandler_1","siblings","childsIndex","replacement","sibling","currNext","filter","test","recurse","find","nodeStack","indexStack","checked","attrib","funcs","removeSubsets","idx","ancestor","DocumentPosition","compareDocumentPosition","nodeA","nodeB","aParents","bParents","maxIdx","sharedParent","aSibling","bSibling","uniqueSort","relative","doc","feedRoot","feed","entry","href","description","pubDate","updated","where","media","_i","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","require$$3","require$$4","require$$5","require$$6","require$$7","Parser_js_1","Parser_js_2","domhandler_2","parseDocument","handler","parseDOM","createDomStream","elementCallback","Tokenizer_js_1","domutils_1","domutils_2","parseFeedDefaultOptions","parseFeed","escapeStringRegexp","string","isPlainObject_1","isPlainObject","ctor","prot","root","factory","module","isSpace","collectCharacters","regEx","chars","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","descriptors","currentDescriptor","candidates","parseDescriptors","tokenize","pError","w","h","candidate","lastChar","intVal","floatVal","picocolors_browserModule","terminalHighlight","CssSyntaxError","line","file","plugin","color","lines","mark","aside","bold","gray","red","number","spacing","semicolon","params","detect","buf","depth","indent","between","after","last","before","left","right","own","raw","Stringifier","isClean","my","cloned","j","defaults","add","overrides","keepBetween","stringRepresentation","defaultType","bookmark","foundSelf","inputs","fixed","emitInputs","inputsNextIndex","inputId","stringifier","Declaration","alphabet","defaultSize","nanoid","SourceMapConsumer","SourceMapGenerator","dirname","baseCharsetUri","baseUri","charsetUri","uriMatch","baseUriMatch","encoding","sourceMapString","comments","prevPath","PreviousMap","pathToFileURL","sourceMapAvailable","pathAvailable","endLine","endColumn","origin","lastLine","lineToIndex","prevIndex","l","min","max","consumer","from","fromUrl","Input","cssString","eol","noSource","mapping","annotation","cached","already","fileURL","MapGenerator","parse","Rule","AtRule","Root","Container","iterator","condition","cb","other","exist","existIndex","sample","pattern","decl","selector","dependant","LazyResult","Processor","document","range","opt","Warning","processor","warning","Result","ignore","escape","escaped","escapePos","currentToken","buffer","returned","unclosed","what","endOfFile","nextToken","ignoreUnclosed","controlChar","back","list","spaces","separators","array","split","inQuote","prevQuote","letter","sep","tokens","shift","brackets","colon","founded","customProperty","firstSpaces","cache","bracket","clean","all","lastTokenType","require$$8","events","postcss","onRejected","onFinally","stack","visitor","roots","subRoot","onFulfilled","visitors","visit","self","generatedCSS","generatedMap","NoWorkResult","plugins","normalized","fromJSON","ownInputs","inputHydrated","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","initializer","warningPrinted","creator","transformer","processOpts","pluginOpts","parsedSrcset","part","html","_recursing","tempResult","Frame","that","parentFrame","tagAllowed","nonTextTagsArray","allowedAttributesMap","allowedAttributesGlobMap","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","classes","transformTagsMap","transformTagsAll","transform","transFun","skipMap","transformMap","skipText","skipTextDepth","addedText","initializeState","frame","skip","hasText","transformedTag","passedAllowedAttributesMapCheck","newValue","splitStrArray","naughtyHref","allowed","parsed","parseUrl","allowedHostname","allowedDomain","domain","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedWildcardClassesGlob","allowedClassesGlobs","filterClasses","abstractSyntaxTree","filteredAST","filterCss","stringifyStyleAttributes","escapeHtml","lastFrame","firstIndex","matches","scheme","allowedStyles","astRules","selectedRule","filterDeclarations","extractedAttributes","attrObject","allowedDeclarationsList","attributeObject","regularExpression","allowedGlobs","clss","glob","newTagName","newAttribs","merge","hash","chr","seen","foldKey","objHash","CustomEvent","evt","called","observer","QueryString","queryString","pairs","pair","parts_1","Subscription","listeners","listener","subscription","sub","BehaviorSubject","newSubject","errorListener","TinyPromise","executor","x","called_1","thenable","ex","request","keys","header","_key","g","Animator","animations_1","bothStyles_1","stylesUsed_1","hoverState","attachHoverState","thresholdPercent","Cookies","req","secure","setHeader","Cookie","values_1","out","u","pathOnly","minutes","variable","vars","props_1","expiresString","thisArg","Builder","forceNewInstance","authToken","userAttrCookie","isTrusted","actionObject","settings","packageName","System","editingPage","serializeFn","appendFunction","spec","editable","sendSpec","fullUserAttributes","events_1","event_1","hook","eventData","returnValue","amount","customProperties","meta","useContentId","alreadyTrackedOne","clientX","clientY","group1","group2","tests","location","api","cachebust","noCache","preview","editing","frameEditing","overrideParams","editingModel","info_1","hasComponent_1","thisInfo","componentData","editingMode","editingPageMode","id_1","modelName","instance","finalOptions","matchData","isEditingThisModel","currentObservable","initialContent","queue_1","observable","requestOptions","usePastQueue","useQueue","queue","apiEndpoint","queryParams","pageQueryParams","fullUrlQueueItem","location_1","urlQueueItem","queue_2","format_1","properties_1","hasParams","keyNames","format","isApiCallForCodegen","isApiCallForCodegenOrQuery","queryStr","queue_3","keyName","sorted","testModifiedResults","previewData","queue_4","results","mappedResults","cookieVariation","variation","variationName","future"],"mappings":"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G,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,IAAK,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,aAAa,EAAG,CAAC,IAAK,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,KAAM,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,yBAAyB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,gBAAiB,EAAG,KAAM,EAAG,cAAc,CAAE,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,wBAAwB,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,UAAU,CAAE,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,oBAAoB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,IAAK,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,KAAM,EAAG,QAAQ,CAAE,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,QAAU,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,QAAU,CAAA,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,4BAA4B,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,KAAM,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,YAAa,EAAG,IAAK,EAAG,QAAU,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,IAAK,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,CAAE,EAAG,YAAa,EAAG,KAAM,EAAG,QAAU,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,IAAK,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,UAAU,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,SAAW,CAAA,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,CAAE,EAAG,cAAe,EAAG,KAAM,EAAG,WAAW,CAAE,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,KAAM,EAAG,QAAQ,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,KAAM,EAAG,QAAQ,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,aAAa,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,aAAe,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAI,IAAoB,YAAY,CAAC,CAAC,IAAK,QAAQ,EAAG,CAAC,KAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAI,IAAoB,YAAY,CAAC,CAAC,IAAK,QAAQ,EAAG,CAAC,KAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,oBAAoB,CAAE,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,KAAM,EAAG,aAAa,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,KAAM,EAAG,eAAe,CAAE,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,gBAAgB,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,gBAAkB,CAAA,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,mBAAqB,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,qBAAuB,CAAA,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,UAAY,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,UAAU,CAAE,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,CAAE,EAAG,sBAAuB,EAAG,KAAM,EAAG,WAAa,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,uBAAwB,EAAG,KAAM,EAAG,WAAa,CAAA,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,SAAU,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,QAAQ,CAAE,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,yBAAyB,EAAG,CAAC,EAAG,yBAAyB,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,0BAA0B,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,yBAAyB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,YAAa,EAAG,IAAK,EAAG,YAAY,CAAE,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,UAAU,CAAE,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,WAAW,EAAG,CAAC,GAAI,cAAc,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,GAAI,mBAAmB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,IAAK,YAAY,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,IAAK,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,GAAI,qBAAqB,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,YAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,GAAI,qBAAqB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,4BAA4B,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,IAAK,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,UAAY,CAAA,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,CAAE,EAAG,oBAAqB,EAAG,IAAK,EAAG,sBAAwB,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,qBAAsB,EAAG,IAAK,EAAG,uBAAyB,CAAA,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,GAAI,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,YAAa,EAAG,IAAK,EAAG,YAAY,CAAE,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,IAAK,EAAG,SAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,CAAE,EAAG,aAAc,EAAG,IAAK,EAAG,aAAe,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,aAAc,EAAG,IAAK,EAAG,aAAe,CAAA,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,aAAc,EAAG,IAAK,EAAG,qBAAuB,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,mBAAoB,EAAG,IAAK,EAAG,2BAA6B,CAAA,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,MAAO,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,MAAO,EAAG,SAAW,CAAA,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,kBAAmB,EAAG,IAAK,EAAG,oBAAsB,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,IAAK,EAAG,oBAAoB,CAAE,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,IAAK,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,IAAK,EAAG,SAAW,CAAA,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,iBAAiB,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,iBAAmB,CAAA,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,KAAM,EAAG,UAAY,CAAA,EAAG,CAAC,MAAO,CAAE,EAAG,IAAI,IAAoB,YAAY,CAAC,CAAC,MAAO,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,GAAI,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CA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","x_google_ignoreList":[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193]}