{"version":3,"file":"shared-lib.UpV1KSnZ.mjs","names":["useRef","v","useRef","useCallback","animate","i","r","g","b","f","p","q","t","h","v","s","d","a","c","e","j","k","l","m","n","o","tx","ty","props","x","y","z","_a","global","flatten","prng","seed","browser","A","B","C","dist","window","id","percent","animationData","w","name","heading","values","to","ti","replace","modifiers","renderer","_","config","properties","loadAnimation","searchAnimations","standalone","Math","document","content","wiggle","index","time","propertyName","len","TextExpressionSelectorPropFactory","pair","variable","props","useRef","v","useCallback","d","placeholderUrl","lottie","c","props","useRef","useState","React.useState","fonts","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","css","t","I","e","n","r","x","N","R","P","i","s","a","o","C","J","z","u","l","h","c","d","g","p","S","B","y","f","e","u","s","t","i","l","a","m","c","r","n","o","metadata","metadataVersion","__FramerMetadata__","metadata","siteMetadata","Projects","to","_a","p","i","nodeSet","types","id","j","base","pair","props","nodeStart","r","b","Range","a","config","parser","name","c","e","d","cache","n","f","string","FragmentCursor","m","readToken","i","to","p","_a","parser","base","top","s","v","n","r","nodeSet","Parse","b","a","j","insert","x","w","config","t","prec","values","name","sameArray","a","b","x","i","j","e","m","to","base","config","h","hasChild","rangeFrom","rangeTo","code","to","i","values","a","b","e","p","content","_a","asArray","s","tr","config","defaults","string","n","l","top","number","f","doc","process","r","x","id","base","v","scrollIntoView","_","j","m","name","k","name","_","x","y","i","to","code","insert","flatten","r","j","a","b","getAttrs","_a","findClusterBreak","m","content","l","f","inputHandler","h","tr","e","StyleModule","meta","k","codePointSize","codePointAt","config","v","number","C","COUNT","SET","top","id","StyleSet","adoptedSet","p","values","t","c","d","s","n","baseTheme$1","g","cache","values","to","ts","i","base","closing","space","decorations","config","bracket","string","n","inside","f","name","id","a","b","l","j","k","doc","r","parser","tr","e","s","d","v","baseTheme","p","self","name","i","slash","id","n","to","selfClosers","dash","identifier","space","inside","i","spec_identifier","parser","name","_a","callee","doc","tags","identifier","n","parser","i","o","_a","r","to","codePointAt","bracket","doc","codePointSize","content","m","p","types","name","tr","f","android","insert","id","top","name","doc","c","config","autoCloseTags","elementName","n","to","_a","base","insert","doc","name","to","i","_a","base","config","n","a","insert"],"sources":["https:/framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js","https:/framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js","https:/framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js","https:/framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js","https:/framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js","https:/framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js","https:/framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js","https:/framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js","https:/framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js","https:/framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js","https:/framer.com/m/framer/default-utils.js@^0.45.0","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/V4SPg9g59hF1vFH3ZTF0/useAutoMotionValue.js","https:/framer.com/m/framer/useAutoMotionValue.js@0.3.0","https:/jspm.dev/npm:lottie-web@5.7.8!cjs","https:/jspm.dev/lottie-web@5.7.8","https:/framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/RLfsHd78NBd0kbafA9hd/Lottie.js","https:/framerusercontent.com/modules/jfK7C7JmdHGaVBsvt1V7/AGG8ARtz8MurBNtcvgvB/DotLottie.js","https:/framerusercontent.com/modules/1tgxxOSaHQH1TrQcKsKV/w334uL4F9XpQ0T7ODhzX/componentPresets.js","https:/framerusercontent.com/modules/xZcjPcaGqXUyze8YdWn6/CPmTMwDH97y4OFIJMJxQ/aeorLkodY.js","https:/framerusercontent.com/modules/ktea6M1pexuoe7CDpdVo/fbX8fYzg1bqBd6OBLLsM/E1cy6o9Uk.js","https:/framerusercontent.com/modules/OtVSVYmPHclpLiUYoZX0/jSdUQE2v5m7QFEIVDltv/eyCh22QOb.js","https:/framerusercontent.com/modules/vilnhdlW0Hba36nOVUK0/BuQfybxCraUBh5lH5UwE/FBuX1VZ7r.js","https:/framerusercontent.com/modules/kVFJ5Oc2oay2WWLMeCNL/6Pxu93RheK4gHlt4KKLx/iQFcmfHu1.js","https:/framerusercontent.com/modules/HDqF1jazRhQC5JofHjj1/Hd9wRjMyZiapHYfFApT2/OvGi9_vDh.js","https:/framerusercontent.com/modules/pUvYC1JKfQeNxo92PGLB/IHcsCr0I2yZIIrsVU8os/wcETNxVif.js","https:/framerusercontent.com/modules/Kkk2JaEiUdjaeGon2wH3/fbhtWzXcrqctLXlbtXk3/WuLWpq_MB.js","https:/framerusercontent.com/modules/yJhsOrW0wpR5nH63iOFF/EQwwO55wjM3HLazv6PDR/zkTw0RCU9.js","https:/framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_-0.js","https:/framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_-1.js","https:/framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js","https:/framerusercontent.com/modules/3AbLwOY6lLSLFajxh6tj/9MO8PHbbIX3JIyLQVZH4/VN1vkpeUN.js","https:/framerusercontent.com/modules/nk8yQb2XcPoVavt8CZ1Y/9rSEvCC18Ekk4diUbdBM/siteMetadata.js","https:/framerusercontent.com/modules/ywtdTlbWsxSD3NQMLFJV/CqjzpYxk5eIyoEMb0MUd/bwV8JXdD4.js","https:/framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/MGamyd2UebFXXyjBfB8y/lezer_common.js","https:/framerusercontent.com/modules/MiFWyNBz6FaRwOOEYJ4H/VH2xmlV2ZgVY4EG63Tp6/lezer_lr.js","https:/framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/YaHVqqT79imnSnw9WihN/lezer_highlight.js","https:/framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/TWvikt1kG1sKU5G0pMRF/codemirror_state.js","https:/framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/b3PAgW7qmQJC7rQUi9po/codemirror_view.js","https:/framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/r60pzPp0bOIae0tDcSfS/codemirror_language.js","https:/framerusercontent.com/modules/GrkjcC7Ol5LkBvrp44De/Vb5Hv0G6B8zNbDJOywh9/lezer_html.js","https:/framerusercontent.com/modules/baxvQBtmpZ5GFXZ1GP2Q/TUZD3P9t64XVB0jIXYAe/lezer_css.js","https:/framerusercontent.com/modules/Gg5hLFaRxQ2EaXSWb101/LGV7NWX3g3E33bK8qNkf/codemirror_lang_css.js","https:/framerusercontent.com/modules/2B1yVjX9TEUbuHzHLnih/rIoxaAPtfYjYU4yqzWHC/lezer_javascript.js","https:/framerusercontent.com/modules/iHAg5NNDzB38uLRZmObL/0BnFbmC8lLqbG7TMsUOO/codemirror_autocomplete.js","https:/framerusercontent.com/modules/YrJiUSsP9WZPvnJAGTTV/SOIRpSCxhIwgURHJoo8f/codemirror_lang_javascript.js","https:/framerusercontent.com/modules/ju8TqAduufCaScL3E39X/1qaO4k0Gm85ETpYGQMkb/codemirror_lang_html.js"],"sourcesContent":["import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here — there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map","import { useIsInCurrentNavigationTarget } from \"framer\";\nimport { useEffect } from \"react\";\nexport function useOnEnter(onEnter, enabled) {\n    return useOnSpecificTargetChange(true, onEnter, enabled);\n}\nexport function useOnExit(onExit, enabled) {\n    return useOnSpecificTargetChange(false, onExit, enabled);\n}\nfunction useOnSpecificTargetChange(goal, callback, enabled = true) {\n    const isInTarget = useIsInCurrentNavigationTarget();\n    useEffect(()=>{\n        if (enabled && isInTarget === goal) callback();\n    }, [\n        isInTarget\n    ]);\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useOnEnter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnNavigationTargetChange.map","import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map","import { Color } from \"framer\";\nexport function colorFromToken(color) {\n    if (color.startsWith(\"var(--token-\")) return \"rgb\" + color.split(\") /*\")[0].split(\", rgb\")[1];\n    return color;\n}\nexport function colorTokentoValue(color) {\n    return Color(colorFromToken(color)).toValue();\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"colorFromToken\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./colorFromToken.map","import { MotionValue } from \"framer\";\nexport const isMotionValue = (v)=>v instanceof MotionValue\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isMotionValue.map","import * as React from \"react\";\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst l = ()=>letters[Math.floor(Math.random() * letters.length)]\n;\nexport const randomID = ()=>l() + l() + l() + l() + l() + l() + l() + l() + l()\n;\nfunction createUniqueClass(suffix) {\n    return `framer-${suffix}-${randomID()}`;\n}\nexport function useUniqueClassName(suffix, deps) {\n    const [className, setClassName] = React.useState(createUniqueClass(suffix));\n    React.useEffect(()=>{\n        setClassName(createUniqueClass(suffix));\n    }, [\n        suffix,\n        ...deps\n    ]);\n    return className;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useUniqueClassName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useUniqueClassName.map","import { ControlType } from \"framer\";\n// I realize this only applies to select right now\n// but we can work on it in here\nexport function getVariantControls(Component, variant, additionalControls = {\n}) {\n    return {\n        [`${variant}TextColor`]: {\n            type: ControlType.Color,\n            title: \"Text Color\",\n            defaultValue: Component.defaultProps[`${variant}TextColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}IconColor`]: {\n            type: ControlType.Color,\n            title: \"Icon Color\",\n            defaultValue: Component.defaultProps[`${variant}IconColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BackgroundColor`]: {\n            type: ControlType.Color,\n            title: \"Bg Color\",\n            defaultValue: Component.defaultProps[`${variant}BackgroundColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderColor`]: {\n            type: ControlType.Color,\n            title: \"Border Color\",\n            defaultValue: Component.defaultProps[`${variant}BorderColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderWidth`]: {\n            type: ControlType.Number,\n            title: \" \",\n            min: 0,\n            max: 5,\n            displayStepper: true,\n            defaultValue: Component.defaultProps[`${variant}BorderWidth`],\n            hidden: (props)=>props.variant !== variant\n        },\n        ...additionalControls\n    };\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./variantUtils.map","import { useMemo } from \"react\";\nexport const isBrowserSafari = ()=>{\n    if (typeof navigator !== `undefined`) {\n        const userAgent = navigator.userAgent.toLowerCase();\n        const isSafari = (userAgent.indexOf(\"safari\") > -1 || userAgent.indexOf(\"framermobile\") > -1 || userAgent.indexOf(\"framerx\") > -1) && userAgent.indexOf(\"chrome\") < 0;\n        return isSafari;\n    } else return false;\n};\nexport const useIsBrowserSafari = ()=>useMemo(()=>isBrowserSafari()\n    , [])\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isBrowser.map","import { useEffect } from \"react\";\n//@ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\nexport function useOnChange(value, callback) {\n    useEffect(()=>// @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    );\n}\nexport function useMultiOnChange(values, handler) {\n    useEffect(()=>{\n        const subscriptions = values.map((value)=>value.onChange(handler)\n        );\n        return ()=>subscriptions.forEach((unsubscribe)=>unsubscribe()\n            )\n        ;\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"Subscriber\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnChange.map","import { useCallback, useEffect, useRef } from \"react\";\nimport { motionValue, animate, RenderTarget } from \"framer\";\n// @ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\n// @ts-ignore\nimport { useConstant } from \"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";\nexport function useAutoMotionValue(inputValue, options) {\n    var ref;\n    // Put options on a local ref\n    // Might wanna just memo instead but it works for now\n    const optionsRef = useRef(options);\n    const animation = useRef();\n    const didInitialMount = useRef(false);\n    const isOnCanvas = RenderTarget.current() === RenderTarget.canvas;\n    // in-progress - trying to figure out effect hooks\n    const onChangeDeps = (options === null || options === void 0 ? void 0 : options.onChangeDeps) ? options.onChangeDeps : [];\n    // Memoize the onChange handler\n    const onChange = useCallback(options === null || options === void 0 ? void 0 : options.onChange, [\n        ...onChangeDeps, \n    ]);\n    // Optionally scale the value from props\n    const transformer = useCallback((value)=>((ref = optionsRef.current) === null || ref === void 0 ? void 0 : ref.transform) ? optionsRef.current.transform(value) : value\n    , []);\n    // Create new MotionValue from inputValue\n    const value = useConstant(()=>isMotionValue(inputValue) ? inputValue : motionValue(transformer(inputValue))\n    );\n    // Setting value from prop change\n    useEffect(()=>{\n        if (!isMotionValue(inputValue) && didInitialMount.current) {\n            var ref1, ref2;\n            const newValue = transformer(inputValue);\n            (ref1 = animation.current) === null || ref1 === void 0 ? void 0 : ref1.stop();\n            // Call change callback\n            if (onChange) onChange(newValue, value);\n            // Trigger animation to new value\n            if (((ref2 = optionsRef.current) === null || ref2 === void 0 ? void 0 : ref2.animate) && !isOnCanvas) {\n                var ref3;\n                // @ts-ignore\n                animation.current = animate(value, newValue, (ref3 = optionsRef.current) === null || ref3 === void 0 ? void 0 : ref3.transition);\n            } else {\n                value.set(newValue);\n            }\n        }\n        didInitialMount.current = true;\n    }, [\n        inputValue,\n        ...onChangeDeps\n    ]);\n    return value;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import * as React from \"react\";\nexport function useControlledState(value) {\n    const [controlledValue, setValue] = React.useState(value);\n    React.useEffect(()=>{\n        setValue(value);\n    }, [\n        value\n    ]);\n    return [\n        controlledValue,\n        setValue\n    ];\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useControlledState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useControlledState.map","import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","/*\n * index (framer/default-utils@0.45.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\"\n","import{MotionValue}from\"framer\";// Basic MotionValue check\nexport const isMotionValue=v=>v instanceof MotionValue;\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./isMotionValue.map","import{useCallback,useEffect,useRef}from\"react\";import{motionValue,animate,RenderTarget}from\"framer\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";export function useAutoMotionValue(inputValue,options){// Put options on a local ref\n// Might wanna just memo instead but it works for now\nconst optionsRef=useRef(options);const animation=useRef();const didInitialMount=useRef(false);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;// in-progress - trying to figure out effect hooks\nconst onChangeDeps=(options===null||options===void 0?void 0:options.onChangeDeps)?options.onChangeDeps:[];// Memoize the onChange handler\nconst onChange=useCallback(options===null||options===void 0?void 0:options.onChange,[...onChangeDeps,]);// Optionally scale the value from props\nconst transformer=useCallback(value=>{var ref;return((ref=optionsRef.current)===null||ref===void 0?void 0:ref.transform)?optionsRef.current.transform(value):value;},[]);// Create new MotionValue from inputValue\nconst value1=useConstant(()=>isMotionValue(inputValue)?inputValue:motionValue(transformer(inputValue)));// Setting value from prop change\nuseEffect(()=>{if(!isMotionValue(inputValue)&&didInitialMount.current){var ref,ref1;const newValue=transformer(inputValue);(ref=animation.current)===null||ref===void 0?void 0:ref.stop();// Call change callback\nif(onChange)onChange(newValue,value1);// Trigger animation to new value\nif(((ref1=optionsRef.current)===null||ref1===void 0?void 0:ref1.animate)&&!isOnCanvas){var ref2;// @ts-ignore\nanimation.current=animate(value1,newValue,(ref2=optionsRef.current)===null||ref2===void 0?void 0:ref2.transition);}else{value1.set(newValue);}}didInitialMount.current=true;},[inputValue,...onChangeDeps]);return value1;}\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useAutoMotionValue.map","/*\n * useAutoMotionValue (framer/useAutoMotionValue@0.3.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/V4SPg9g59hF1vFH3ZTF0/useAutoMotionValue.js\"\n","var _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nvar exports = {};\ntypeof navigator !== \"undefined\" && function (root, factory) {\n  if (exports) {\n    exports = factory(root);\n  } else {\n    root.lottie = factory(root);\n    root.bodymovin = root.lottie;\n  }\n}(window || {}, function (window) {\n  /* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\n  expressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix */\n\n  /* exported locationHref, subframeEnabled, expressionsPlugin */\n  'use strict';\n  /* exported svgNS, locationHref, initialDefaultFrame */\n\n  var svgNS = \"http://www.w3.org/2000/svg\";\n  var locationHref = \"\";\n  var initialDefaultFrame = -999999;\n  /* global createSizedArray */\n\n  /* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\n  defaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\n  BMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\n  addSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\n\n  var subframeEnabled = true;\n  var expressionsPlugin;\n  var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n  var cachedColors = {};\n  var bmRnd;\n  var bmPow = Math.pow;\n  var bmSqrt = Math.sqrt;\n  var bmFloor = Math.floor;\n  var bmMax = Math.max;\n  var bmMin = Math.min;\n  var BMMath = {};\n\n  (function () {\n    var propertyNames = [\"abs\", \"acos\", \"acosh\", \"asin\", \"asinh\", \"atan\", \"atanh\", \"atan2\", \"ceil\", \"cbrt\", \"expm1\", \"clz32\", \"cos\", \"cosh\", \"exp\", \"floor\", \"fround\", \"hypot\", \"imul\", \"log\", \"log1p\", \"log2\", \"log10\", \"max\", \"min\", \"pow\", \"random\", \"round\", \"sign\", \"sin\", \"sinh\", \"sqrt\", \"tan\", \"tanh\", \"trunc\", \"E\", \"LN10\", \"LN2\", \"LOG10E\", \"LOG2E\", \"PI\", \"SQRT1_2\", \"SQRT2\"];\n    var i;\n    var len = propertyNames.length;\n\n    for (i = 0; i < len; i += 1) {\n      BMMath[propertyNames[i]] = Math[propertyNames[i]];\n    }\n  })();\n\n  function ProjectInterface() {\n    return {};\n  }\n\n  BMMath.random = Math.random;\n\n  BMMath.abs = function (val) {\n    var tOfVal = typeof val;\n\n    if (tOfVal === \"object\" && val.length) {\n      var absArr = createSizedArray(val.length);\n      var i;\n      var len = val.length;\n\n      for (i = 0; i < len; i += 1) {\n        absArr[i] = Math.abs(val[i]);\n      }\n\n      return absArr;\n    }\n\n    return Math.abs(val);\n  };\n\n  var defaultCurveSegments = 150;\n  var degToRads = Math.PI / 180;\n  var roundCorner = 0.5519;\n\n  function roundValues(flag) {\n    if (flag) {\n      bmRnd = Math.round;\n    } else {\n      bmRnd = function (val) {\n        return val;\n      };\n    }\n  }\n\n  roundValues(false);\n\n  function styleDiv(element) {\n    element.style.position = \"absolute\";\n    element.style.top = 0;\n    element.style.left = 0;\n    element.style.display = \"block\";\n    element.style.transformOrigin = \"0 0\";\n    element.style.webkitTransformOrigin = \"0 0\";\n    element.style.backfaceVisibility = \"visible\";\n    element.style.webkitBackfaceVisibility = \"visible\";\n    element.style.transformStyle = \"preserve-3d\";\n    element.style.webkitTransformStyle = \"preserve-3d\";\n    element.style.mozTransformStyle = \"preserve-3d\";\n  }\n\n  function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).currentTime = currentTime;\n    (this || _global).totalTime = totalTime;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteEvent(type, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).currentLoop = currentLoop;\n    (this || _global).totalLoops = totalLoops;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n    (this || _global).type = type;\n    (this || _global).firstFrame = firstFrame;\n    (this || _global).totalFrames = totalFrames;\n  }\n\n  function BMDestroyEvent(type, target) {\n    (this || _global).type = type;\n    (this || _global).target = target;\n  }\n\n  function BMRenderFrameErrorEvent(nativeError, currentTime) {\n    (this || _global).type = \"renderFrameError\";\n    (this || _global).nativeError = nativeError;\n    (this || _global).currentTime = currentTime;\n  }\n\n  function BMConfigErrorEvent(nativeError) {\n    (this || _global).type = \"configError\";\n    (this || _global).nativeError = nativeError;\n  }\n\n  function BMAnimationConfigErrorEvent(type, nativeError) {\n    (this || _global).type = type;\n    (this || _global).nativeError = nativeError;\n  }\n\n  var createElementID = function () {\n    var _count = 0;\n    return function createID() {\n      _count += 1;\n      return \"__lottie_element_\" + _count;\n    };\n  }();\n\n  function HSVtoRGB(h, s, v) {\n    var r;\n    var g;\n    var b;\n    var i;\n    var f;\n    var p;\n    var q;\n    var t;\n    i = Math.floor(h * 6);\n    f = h * 6 - i;\n    p = v * (1 - s);\n    q = v * (1 - f * s);\n    t = v * (1 - (1 - f) * s);\n\n    switch (i % 6) {\n      case 0:\n        r = v;\n        g = t;\n        b = p;\n        break;\n\n      case 1:\n        r = q;\n        g = v;\n        b = p;\n        break;\n\n      case 2:\n        r = p;\n        g = v;\n        b = t;\n        break;\n\n      case 3:\n        r = p;\n        g = q;\n        b = v;\n        break;\n\n      case 4:\n        r = t;\n        g = p;\n        b = v;\n        break;\n\n      case 5:\n        r = v;\n        g = p;\n        b = q;\n        break;\n\n      default:\n        break;\n    }\n\n    return [r, g, b];\n  }\n\n  function RGBtoHSV(r, g, b) {\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var d = max - min;\n    var h;\n    var s = max === 0 ? 0 : d / max;\n    var v = max / 255;\n\n    switch (max) {\n      case min:\n        h = 0;\n        break;\n\n      case r:\n        h = g - b + d * (g < b ? 6 : 0);\n        h /= 6 * d;\n        break;\n\n      case g:\n        h = b - r + d * 2;\n        h /= 6 * d;\n        break;\n\n      case b:\n        h = r - g + d * 4;\n        h /= 6 * d;\n        break;\n\n      default:\n        break;\n    }\n\n    return [h, s, v];\n  }\n\n  function addSaturationToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[1] += offset;\n\n    if (hsv[1] > 1) {\n      hsv[1] = 1;\n    } else if (hsv[1] <= 0) {\n      hsv[1] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addBrightnessToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[2] += offset;\n\n    if (hsv[2] > 1) {\n      hsv[2] = 1;\n    } else if (hsv[2] < 0) {\n      hsv[2] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addHueToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[0] += offset / 360;\n\n    if (hsv[0] > 1) {\n      hsv[0] -= 1;\n    } else if (hsv[0] < 0) {\n      hsv[0] += 1;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  var rgbToHex = function () {\n    var colorMap = [];\n    var i;\n    var hex;\n\n    for (i = 0; i < 256; i += 1) {\n      hex = i.toString(16);\n      colorMap[i] = hex.length === 1 ? \"0\" + hex : hex;\n    }\n\n    return function (r, g, b) {\n      if (r < 0) {\n        r = 0;\n      }\n\n      if (g < 0) {\n        g = 0;\n      }\n\n      if (b < 0) {\n        b = 0;\n      }\n\n      return \"#\" + colorMap[r] + colorMap[g] + colorMap[b];\n    };\n  }();\n\n  function BaseEvent() {}\n\n  BaseEvent.prototype = {\n    triggerEvent: function (eventName, args) {\n      if ((this || _global)._cbs[eventName]) {\n        var len = (this || _global)._cbs[eventName].length;\n\n        for (var i = 0; i < len; i += 1) {\n          (this || _global)._cbs[eventName][i](args);\n        }\n      }\n    },\n    addEventListener: function (eventName, callback) {\n      if (!(this || _global)._cbs[eventName]) {\n        (this || _global)._cbs[eventName] = [];\n      }\n\n      (this || _global)._cbs[eventName].push(callback);\n\n      return function () {\n        this.removeEventListener(eventName, callback);\n      }.bind(this || _global);\n    },\n    removeEventListener: function (eventName, callback) {\n      if (!callback) {\n        (this || _global)._cbs[eventName] = null;\n      } else if ((this || _global)._cbs[eventName]) {\n        var i = 0;\n        var len = (this || _global)._cbs[eventName].length;\n\n        while (i < len) {\n          if ((this || _global)._cbs[eventName][i] === callback) {\n            (this || _global)._cbs[eventName].splice(i, 1);\n\n            i -= 1;\n            len -= 1;\n          }\n\n          i += 1;\n        }\n\n        if (!(this || _global)._cbs[eventName].length) {\n          (this || _global)._cbs[eventName] = null;\n        }\n      }\n    }\n  };\n  /* exported createTypedArray, createSizedArray */\n\n  var createTypedArray = function () {\n    function createRegularArray(type, len) {\n      var i = 0;\n      var arr = [];\n      var value;\n\n      switch (type) {\n        case \"int16\":\n        case \"uint8c\":\n          value = 1;\n          break;\n\n        default:\n          value = 1.1;\n          break;\n      }\n\n      for (i = 0; i < len; i += 1) {\n        arr.push(value);\n      }\n\n      return arr;\n    }\n\n    function createTypedArrayFactory(type, len) {\n      if (type === \"float32\") {\n        return new Float32Array(len);\n      }\n\n      if (type === \"int16\") {\n        return new Int16Array(len);\n      }\n\n      if (type === \"uint8c\") {\n        return new Uint8ClampedArray(len);\n      }\n\n      return createRegularArray(type, len);\n    }\n\n    if (typeof Uint8ClampedArray === \"function\" && typeof Float32Array === \"function\") {\n      return createTypedArrayFactory;\n    }\n\n    return createRegularArray;\n  }();\n\n  function createSizedArray(len) {\n    return Array.apply(null, {\n      length: len\n    });\n  }\n  /* global svgNS */\n\n  /* exported createNS */\n\n\n  function createNS(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElementNS(svgNS, type);\n  }\n  /* exported createTag */\n\n\n  function createTag(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElement(type);\n  }\n\n  function DynamicPropertyContainer() {}\n\n  DynamicPropertyContainer.prototype = {\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n\n        (this || _global).container.addDynamicProperty(this || _global);\n\n        (this || _global)._isAnimated = true;\n      }\n    },\n    iterateDynamicProperties: function () {\n      (this || _global)._mdf = false;\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).dynamicProperties[i].getValue();\n\n        if ((this || _global).dynamicProperties[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    },\n    initDynamicPropertyContainer: function (container) {\n      (this || _global).container = container;\n      (this || _global).dynamicProperties = [];\n      (this || _global)._mdf = false;\n      (this || _global)._isAnimated = false;\n    }\n  };\n  /* exported getBlendMode */\n\n  var getBlendMode = function () {\n    var blendModeEnums = {\n      0: \"source-over\",\n      1: \"multiply\",\n      2: \"screen\",\n      3: \"overlay\",\n      4: \"darken\",\n      5: \"lighten\",\n      6: \"color-dodge\",\n      7: \"color-burn\",\n      8: \"hard-light\",\n      9: \"soft-light\",\n      10: \"difference\",\n      11: \"exclusion\",\n      12: \"hue\",\n      13: \"saturation\",\n      14: \"color\",\n      15: \"luminosity\"\n    };\n    return function (mode) {\n      return blendModeEnums[mode] || \"\";\n    };\n  }();\n  /* global createTypedArray */\n\n  /*!\r\n   Transformation Matrix v2.0\r\n   (c) Epistemex 2014-2015\r\n   www.epistemex.com\r\n   By Ken Fyrstenberg\r\n   Contributions by leeoniya.\r\n   License: MIT, header required.\r\n   */\n\n  /**\r\n   * 2D transformation matrix object initialized with identity matrix.\r\n   *\r\n   * The matrix can synchronize a canvas context by supplying the context\r\n   * as an argument, or later apply current absolute transform to an\r\n   * existing context.\r\n   *\r\n   * All values are handled as floating point values.\r\n   *\r\n   * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n   * @prop {number} a - scale x\r\n   * @prop {number} b - shear y\r\n   * @prop {number} c - shear x\r\n   * @prop {number} d - scale y\r\n   * @prop {number} e - translate x\r\n   * @prop {number} f - translate y\r\n   * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n   * @constructor\r\n   */\n\n\n  var Matrix = function () {\n    var _cos = Math.cos;\n    var _sin = Math.sin;\n    var _tan = Math.tan;\n    var _rnd = Math.round;\n\n    function reset() {\n      (this || _global).props[0] = 1;\n      (this || _global).props[1] = 0;\n      (this || _global).props[2] = 0;\n      (this || _global).props[3] = 0;\n      (this || _global).props[4] = 0;\n      (this || _global).props[5] = 1;\n      (this || _global).props[6] = 0;\n      (this || _global).props[7] = 0;\n      (this || _global).props[8] = 0;\n      (this || _global).props[9] = 0;\n      (this || _global).props[10] = 1;\n      (this || _global).props[11] = 0;\n      (this || _global).props[12] = 0;\n      (this || _global).props[13] = 0;\n      (this || _global).props[14] = 0;\n      (this || _global).props[15] = 1;\n      return this || _global;\n    }\n\n    function rotate(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function rotateX(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateY(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateZ(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function shear(sx, sy) {\n      return this._t(1, sy, sx, 1, 0, 0);\n    }\n\n    function skew(ax, ay) {\n      return this.shear(_tan(ax), _tan(ay));\n    }\n\n    function skewFromAxis(ax, angle) {\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n    }\n\n    function scale(sx, sy, sz) {\n      if (!sz && sz !== 0) {\n        sz = 1;\n      }\n\n      if (sx === 1 && sy === 1 && sz === 1) {\n        return this || _global;\n      }\n\n      return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n    }\n\n    function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n      (this || _global).props[0] = a;\n      (this || _global).props[1] = b;\n      (this || _global).props[2] = c;\n      (this || _global).props[3] = d;\n      (this || _global).props[4] = e;\n      (this || _global).props[5] = f;\n      (this || _global).props[6] = g;\n      (this || _global).props[7] = h;\n      (this || _global).props[8] = i;\n      (this || _global).props[9] = j;\n      (this || _global).props[10] = k;\n      (this || _global).props[11] = l;\n      (this || _global).props[12] = m;\n      (this || _global).props[13] = n;\n      (this || _global).props[14] = o;\n      (this || _global).props[15] = p;\n      return this || _global;\n    }\n\n    function translate(tx, ty, tz) {\n      tz = tz || 0;\n\n      if (tx !== 0 || ty !== 0 || tz !== 0) {\n        return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n      }\n\n      return this || _global;\n    }\n\n    function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n      var _p = (this || _global).props;\n\n      if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n        // NOTE: commenting this condition because TurboFan deoptimizes code when present\n        // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n        _p[12] = _p[12] * a2 + _p[15] * m2;\n        _p[13] = _p[13] * f2 + _p[15] * n2;\n        _p[14] = _p[14] * k2 + _p[15] * o2;\n        _p[15] *= p2; // }\n\n        (this || _global)._identityCalculated = false;\n        return this || _global;\n      }\n\n      var a1 = _p[0];\n      var b1 = _p[1];\n      var c1 = _p[2];\n      var d1 = _p[3];\n      var e1 = _p[4];\n      var f1 = _p[5];\n      var g1 = _p[6];\n      var h1 = _p[7];\n      var i1 = _p[8];\n      var j1 = _p[9];\n      var k1 = _p[10];\n      var l1 = _p[11];\n      var m1 = _p[12];\n      var n1 = _p[13];\n      var o1 = _p[14];\n      var p1 = _p[15];\n      /* matrix order (canvas compatible):\r\n           * ace\r\n           * bdf\r\n           * 001\r\n           */\n\n      _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n      _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n      _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n      _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n      _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n      _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n      _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n      _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n      _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n      _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n      _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n      _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n      _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n      _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n      _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n      _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n      (this || _global)._identityCalculated = false;\n      return this || _global;\n    }\n\n    function isIdentity() {\n      if (!(this || _global)._identityCalculated) {\n        (this || _global)._identity = !((this || _global).props[0] !== 1 || (this || _global).props[1] !== 0 || (this || _global).props[2] !== 0 || (this || _global).props[3] !== 0 || (this || _global).props[4] !== 0 || (this || _global).props[5] !== 1 || (this || _global).props[6] !== 0 || (this || _global).props[7] !== 0 || (this || _global).props[8] !== 0 || (this || _global).props[9] !== 0 || (this || _global).props[10] !== 1 || (this || _global).props[11] !== 0 || (this || _global).props[12] !== 0 || (this || _global).props[13] !== 0 || (this || _global).props[14] !== 0 || (this || _global).props[15] !== 1);\n        (this || _global)._identityCalculated = true;\n      }\n\n      return (this || _global)._identity;\n    }\n\n    function equals(matr) {\n      var i = 0;\n\n      while (i < 16) {\n        if (matr.props[i] !== (this || _global).props[i]) {\n          return false;\n        }\n\n        i += 1;\n      }\n\n      return true;\n    }\n\n    function clone(matr) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        matr.props[i] = (this || _global).props[i];\n      }\n\n      return matr;\n    }\n\n    function cloneFromProps(props) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        (this || _global).props[i] = props[i];\n      }\n    }\n\n    function applyToPoint(x, y, z) {\n      return {\n        x: x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12],\n        y: x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13],\n        z: x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14]\n      };\n      /* return {\r\n           x: x * me.a + y * me.c + me.e,\r\n           y: x * me.b + y * me.d + me.f\r\n           }; */\n    }\n\n    function applyToX(x, y, z) {\n      return x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12];\n    }\n\n    function applyToY(x, y, z) {\n      return x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13];\n    }\n\n    function applyToZ(x, y, z) {\n      return x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14];\n    }\n\n    function getInverseMatrix() {\n      var determinant = (this || _global).props[0] * (this || _global).props[5] - (this || _global).props[1] * (this || _global).props[4];\n      var a = (this || _global).props[5] / determinant;\n      var b = -(this || _global).props[1] / determinant;\n      var c = -(this || _global).props[4] / determinant;\n      var d = (this || _global).props[0] / determinant;\n      var e = ((this || _global).props[4] * (this || _global).props[13] - (this || _global).props[5] * (this || _global).props[12]) / determinant;\n      var f = -((this || _global).props[0] * (this || _global).props[13] - (this || _global).props[1] * (this || _global).props[12]) / determinant;\n      var inverseMatrix = new Matrix();\n      inverseMatrix.props[0] = a;\n      inverseMatrix.props[1] = b;\n      inverseMatrix.props[4] = c;\n      inverseMatrix.props[5] = d;\n      inverseMatrix.props[12] = e;\n      inverseMatrix.props[13] = f;\n      return inverseMatrix;\n    }\n\n    function inversePoint(pt) {\n      var inverseMatrix = this.getInverseMatrix();\n      return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n    }\n\n    function inversePoints(pts) {\n      var i;\n      var len = pts.length;\n      var retPts = [];\n\n      for (i = 0; i < len; i += 1) {\n        retPts[i] = inversePoint(pts[i]);\n      }\n\n      return retPts;\n    }\n\n    function applyToTriplePoints(pt1, pt2, pt3) {\n      var arr = createTypedArray(\"float32\", 6);\n\n      if (this.isIdentity()) {\n        arr[0] = pt1[0];\n        arr[1] = pt1[1];\n        arr[2] = pt2[0];\n        arr[3] = pt2[1];\n        arr[4] = pt3[0];\n        arr[5] = pt3[1];\n      } else {\n        var p0 = (this || _global).props[0];\n        var p1 = (this || _global).props[1];\n        var p4 = (this || _global).props[4];\n        var p5 = (this || _global).props[5];\n        var p12 = (this || _global).props[12];\n        var p13 = (this || _global).props[13];\n        arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n        arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n        arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n        arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n        arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n        arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n      }\n\n      return arr;\n    }\n\n    function applyToPointArray(x, y, z) {\n      var arr;\n\n      if (this.isIdentity()) {\n        arr = [x, y, z];\n      } else {\n        arr = [x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12], x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13], x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14]];\n      }\n\n      return arr;\n    }\n\n    function applyToPointStringified(x, y) {\n      if (this.isIdentity()) {\n        return x + \",\" + y;\n      }\n\n      var _p = (this || _global).props;\n      return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + \",\" + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n    }\n\n    function toCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var i = 0;\n      var props = (this || _global).props;\n      var cssValue = \"matrix3d(\";\n      var v = 10000;\n\n      while (i < 16) {\n        cssValue += _rnd(props[i] * v) / v;\n        cssValue += i === 15 ? \")\" : \",\";\n        i += 1;\n      }\n\n      return cssValue;\n    }\n\n    function roundMatrixProperty(val) {\n      var v = 10000;\n\n      if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n        return _rnd(val * v) / v;\n      }\n\n      return val;\n    }\n\n    function to2dCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var props = (this || _global).props;\n\n      var _a = roundMatrixProperty(props[0]);\n\n      var _b = roundMatrixProperty(props[1]);\n\n      var _c = roundMatrixProperty(props[4]);\n\n      var _d = roundMatrixProperty(props[5]);\n\n      var _e = roundMatrixProperty(props[12]);\n\n      var _f = roundMatrixProperty(props[13]);\n\n      return \"matrix(\" + _a + \",\" + _b + \",\" + _c + \",\" + _d + \",\" + _e + \",\" + _f + \")\";\n    }\n\n    return function () {\n      (this || _global).reset = reset;\n      (this || _global).rotate = rotate;\n      (this || _global).rotateX = rotateX;\n      (this || _global).rotateY = rotateY;\n      (this || _global).rotateZ = rotateZ;\n      (this || _global).skew = skew;\n      (this || _global).skewFromAxis = skewFromAxis;\n      (this || _global).shear = shear;\n      (this || _global).scale = scale;\n      (this || _global).setTransform = setTransform;\n      (this || _global).translate = translate;\n      (this || _global).transform = transform;\n      (this || _global).applyToPoint = applyToPoint;\n      (this || _global).applyToX = applyToX;\n      (this || _global).applyToY = applyToY;\n      (this || _global).applyToZ = applyToZ;\n      (this || _global).applyToPointArray = applyToPointArray;\n      (this || _global).applyToTriplePoints = applyToTriplePoints;\n      (this || _global).applyToPointStringified = applyToPointStringified;\n      (this || _global).toCSS = toCSS;\n      (this || _global).to2dCSS = to2dCSS;\n      (this || _global).clone = clone;\n      (this || _global).cloneFromProps = cloneFromProps;\n      (this || _global).equals = equals;\n      (this || _global).inversePoints = inversePoints;\n      (this || _global).inversePoint = inversePoint;\n      (this || _global).getInverseMatrix = getInverseMatrix;\n      (this || _global)._t = (this || _global).transform;\n      (this || _global).isIdentity = isIdentity;\n      (this || _global)._identity = true;\n      (this || _global)._identityCalculated = false;\n      (this || _global).props = createTypedArray(\"float32\", 16);\n      this.reset();\n    };\n  }();\n  /* eslint-disable */\n\n  /*\r\n   Copyright 2014 David Bau.\r\n  \r\n   Permission is hereby granted, free of charge, to any person obtaining\r\n   a copy of this software and associated documentation files (the\r\n   \"Software\"), to deal in the Software without restriction, including\r\n   without limitation the rights to use, copy, modify, merge, publish,\r\n   distribute, sublicense, and/or sell copies of the Software, and to\r\n   permit persons to whom the Software is furnished to do so, subject to\r\n   the following conditions:\r\n  \r\n   The above copyright notice and this permission notice shall be\r\n   included in all copies or substantial portions of the Software.\r\n  \r\n   THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n   SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n  \r\n   */\n\n\n  (function (pool, math) {\n    //\n    // The following constants are related to IEEE 754 limits.\n    //\n    var global = this || _global,\n        width = 256,\n        // each RC4 output is 0 <= x < 256\n    chunks = 6,\n        // at least six RC4 outputs for each double\n    digits = 52,\n        // there are 52 significant digits in a double\n    rngname = \"random\",\n        // rngname: name for Math.random and Math.seedrandom\n    startdenom = math.pow(width, chunks),\n        significance = math.pow(2, digits),\n        overflow = significance * 2,\n        mask = width - 1,\n        nodecrypto; // node.js crypto module, initialized at the bottom.\n    //\n    // seedrandom()\n    // This is the seedrandom function described above.\n    //\n\n    function seedrandom(seed, options, callback) {\n      var key = [];\n      options = options === true ? {\n        entropy: true\n      } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n      var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n      var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n      // randomness in every bit of the mantissa of the IEEE 754 value.\n\n      var prng = function () {\n        var n = arc4.g(chunks),\n            // Start with a numerator n < 2 ^ 48\n        d = startdenom,\n            //   and denominator d = 2 ^ 48.\n        x = 0; //   and no 'extra last byte'.\n\n        while (n < significance) {\n          // Fill up all significant digits by\n          n = (n + x) * width; //   shifting numerator and\n\n          d *= width; //   denominator and generating a\n\n          x = arc4.g(1); //   new least-significant-byte.\n        }\n\n        while (n >= overflow) {\n          // To avoid rounding up, before adding\n          n /= 2; //   last byte, shift everything\n\n          d /= 2; //   right using integer math until\n\n          x >>>= 1; //   we have exactly the desired bits.\n        }\n\n        return (n + x) / d; // Form the number within [0, 1).\n      };\n\n      prng.int32 = function () {\n        return arc4.g(4) | 0;\n      };\n\n      prng.quick = function () {\n        return arc4.g(4) / 4294967296;\n      };\n\n      prng.double = prng; // Mix the randomness into accumulated entropy.\n\n      mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n      return (options.pass || callback || function (prng, seed, is_math_call, state) {\n        if (state) {\n          // Load the arc4 state from the given state if it has an S array.\n          if (state.S) {\n            copy(state, arc4);\n          } // Only provide the .state method if requested via options.state.\n\n\n          prng.state = function () {\n            return copy(arc4, {});\n          };\n        } // If called as a method of Math (Math.seedrandom()), mutate\n        // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n        if (is_math_call) {\n          math[rngname] = prng;\n          return seed;\n        } // Otherwise, it is a newer calling convention, so return the\n        // prng directly.\n        else return prng;\n      })(prng, shortseed, \"global\" in options ? options.global : (this || _global) == math, options.state);\n    }\n\n    math[\"seed\" + rngname] = seedrandom; //\n    // ARC4\n    //\n    // An ARC4 implementation.  The constructor takes a key in the form of\n    // an array of at most (width) integers that should be 0 <= x < (width).\n    //\n    // The g(count) method returns a pseudorandom integer that concatenates\n    // the next (count) outputs from ARC4.  Its return value is a number x\n    // that is in the range 0 <= x < (width ^ count).\n    //\n\n    function ARC4(key) {\n      var t,\n          keylen = key.length,\n          me = this || _global,\n          i = 0,\n          j = me.i = me.j = 0,\n          s = me.S = []; // The empty key [] is treated as [0].\n\n      if (!keylen) {\n        key = [keylen++];\n      } // Set up S using the standard key scheduling algorithm.\n\n\n      while (i < width) {\n        s[i] = i++;\n      }\n\n      for (i = 0; i < width; i++) {\n        s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n        s[j] = t;\n      } // The \"g\" method returns the next (count) outputs as one number.\n\n\n      me.g = function (count) {\n        // Using instance members instead of closure state nearly doubles speed.\n        var t,\n            r = 0,\n            i = me.i,\n            j = me.j,\n            s = me.S;\n\n        while (count--) {\n          t = s[i = mask & i + 1];\n          r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n        }\n\n        me.i = i;\n        me.j = j;\n        return r; // For robust unpredictability, the function call below automatically\n        // discards an initial batch of values.  This is called RC4-drop[256].\n        // See http://google.com/search?q=rsa+fluhrer+response&btnI\n      };\n    } //\n    // copy()\n    // Copies internal state of ARC4 to or from a plain object.\n    //\n\n\n    function copy(f, t) {\n      t.i = f.i;\n      t.j = f.j;\n      t.S = f.S.slice();\n      return t;\n    } //\n    // flatten()\n    // Converts an object tree to nested arrays of strings.\n    //\n\n\n    function flatten(obj, depth) {\n      var result = [],\n          typ = typeof obj,\n          prop;\n\n      if (depth && typ == \"object\") {\n        for (prop in obj) {\n          try {\n            result.push(flatten(obj[prop], depth - 1));\n          } catch (e) {}\n        }\n      }\n\n      return result.length ? result : typ == \"string\" ? obj : obj + \"\\0\";\n    } //\n    // mixkey()\n    // Mixes a string seed into a key that is an array of integers, and\n    // returns a shortened string seed that is equivalent to the result key.\n    //\n\n\n    function mixkey(seed, key) {\n      var stringseed = seed + \"\",\n          smear,\n          j = 0;\n\n      while (j < stringseed.length) {\n        key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n      }\n\n      return tostring(key);\n    } //\n    // autoseed()\n    // Returns an object for autoseeding, using window.crypto and Node crypto\n    // module if available.\n    //\n\n\n    function autoseed() {\n      try {\n        if (nodecrypto) {\n          return tostring(nodecrypto.randomBytes(width));\n        }\n\n        var out = new Uint8Array(width);\n        (global.crypto || global.msCrypto).getRandomValues(out);\n        return tostring(out);\n      } catch (e) {\n        var browser = global.navigator,\n            plugins = browser && browser.plugins;\n        return [+new Date(), global, plugins, global.screen, tostring(pool)];\n      }\n    } //\n    // tostring()\n    // Converts an array of charcodes to a string\n    //\n\n\n    function tostring(a) {\n      return String.fromCharCode.apply(0, a);\n    } //\n    // When seedrandom.js is loaded, we immediately mix a few bits\n    // from the built-in RNG into the entropy pool.  Because we do\n    // not want to interfere with deterministic PRNG state later,\n    // seedrandom will not call math.random on its own again after\n    // initialization.\n    //\n\n\n    mixkey(math.random(), pool); //\n    // Nodejs and AMD support: export the implementation as a module using\n    // either convention.\n    //\n    // End anonymous scope, and pass initial values.\n  })([], // pool: entropy pool starts empty\n  BMMath // math: package containing random, pow, and seedrandom\n  );\n  /* eslint-disable */\n\n\n  var BezierFactory = function () {\n    /**\r\n       * BezierEasing - use bezier curve for transition easing function\r\n       * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n       *\r\n       * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n       * Usage:\r\n       * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n       * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n       *\r\n       */\n    var ob = {};\n    ob.getBezierEasing = getBezierEasing;\n    var beziers = {};\n\n    function getBezierEasing(a, b, c, d, nm) {\n      var str = nm || (\"bez_\" + a + \"_\" + b + \"_\" + c + \"_\" + d).replace(/\\./g, \"p\");\n\n      if (beziers[str]) {\n        return beziers[str];\n      }\n\n      var bezEasing = new BezierEasing([a, b, c, d]);\n      beziers[str] = bezEasing;\n      return bezEasing;\n    } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n    var NEWTON_ITERATIONS = 4;\n    var NEWTON_MIN_SLOPE = 0.001;\n    var SUBDIVISION_PRECISION = 1e-7;\n    var SUBDIVISION_MAX_ITERATIONS = 10;\n    var kSplineTableSize = 11;\n    var kSampleStepSize = 1 / (kSplineTableSize - 1);\n    var float32ArraySupported = typeof Float32Array === \"function\";\n\n    function A(aA1, aA2) {\n      return 1 - 3 * aA2 + 3 * aA1;\n    }\n\n    function B(aA1, aA2) {\n      return 3 * aA2 - 6 * aA1;\n    }\n\n    function C(aA1) {\n      return 3 * aA1;\n    } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n    function calcBezier(aT, aA1, aA2) {\n      return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n    } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n    function getSlope(aT, aA1, aA2) {\n      return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);\n    }\n\n    function binarySubdivide(aX, aA, aB, mX1, mX2) {\n      var currentX,\n          currentT,\n          i = 0;\n\n      do {\n        currentT = aA + (aB - aA) / 2;\n        currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n        if (currentX > 0) {\n          aB = currentT;\n        } else {\n          aA = currentT;\n        }\n      } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n      return currentT;\n    }\n\n    function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n      for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n        var currentSlope = getSlope(aGuessT, mX1, mX2);\n        if (currentSlope === 0) return aGuessT;\n        var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n        aGuessT -= currentX / currentSlope;\n      }\n\n      return aGuessT;\n    }\n    /**\r\n       * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n       */\n\n\n    function BezierEasing(points) {\n      (this || _global)._p = points;\n      (this || _global)._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n      (this || _global)._precomputed = false;\n      (this || _global).get = (this || _global).get.bind(this || _global);\n    }\n\n    BezierEasing.prototype = {\n      get: function (x) {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        if (!(this || _global)._precomputed) this._precompute();\n        if (mX1 === mY1 && mX2 === mY2) return x; // linear\n        // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n        if (x === 0) return 0;\n        if (x === 1) return 1;\n        return calcBezier(this._getTForX(x), mY1, mY2);\n      },\n      // Private part\n      _precompute: function () {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        (this || _global)._precomputed = true;\n\n        if (mX1 !== mY1 || mX2 !== mY2) {\n          this._calcSampleValues();\n        }\n      },\n      _calcSampleValues: function () {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2];\n\n        for (var i = 0; i < kSplineTableSize; ++i) {\n          (this || _global)._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n        }\n      },\n\n      /**\r\n           * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n           */\n      _getTForX: function (aX) {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2],\n            mSampleValues = (this || _global)._mSampleValues;\n        var intervalStart = 0;\n        var currentSample = 1;\n        var lastSample = kSplineTableSize - 1;\n\n        for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n          intervalStart += kSampleStepSize;\n        }\n\n        --currentSample; // Interpolate to provide an initial guess for t\n\n        var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n        var guessForT = intervalStart + dist * kSampleStepSize;\n        var initialSlope = getSlope(guessForT, mX1, mX2);\n\n        if (initialSlope >= NEWTON_MIN_SLOPE) {\n          return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n        }\n\n        if (initialSlope === 0) {\n          return guessForT;\n        }\n\n        return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n      }\n    };\n    return ob;\n  }();\n\n  (function () {\n    var lastTime = 0;\n    var vendors = [\"ms\", \"moz\", \"webkit\", \"o\"];\n\n    for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n      // eslint-disable-line no-plusplus\n      window.requestAnimationFrame = window[vendors[x] + \"RequestAnimationFrame\"];\n      window.cancelAnimationFrame = window[vendors[x] + \"CancelAnimationFrame\"] || window[vendors[x] + \"CancelRequestAnimationFrame\"];\n    }\n\n    if (!window.requestAnimationFrame) {\n      window.requestAnimationFrame = function (callback) {\n        var currTime = new Date().getTime();\n        var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n        var id = setTimeout(function () {\n          callback(currTime + timeToCall);\n        }, timeToCall);\n        lastTime = currTime + timeToCall;\n        return id;\n      };\n    }\n\n    if (!window.cancelAnimationFrame) {\n      window.cancelAnimationFrame = function (id) {\n        clearTimeout(id);\n      };\n    }\n  })();\n  /* exported extendPrototype, getDescriptor, createProxyFunction */\n\n\n  function extendPrototype(sources, destination) {\n    var i;\n    var len = sources.length;\n    var sourcePrototype;\n\n    for (i = 0; i < len; i += 1) {\n      sourcePrototype = sources[i].prototype;\n\n      for (var attr in sourcePrototype) {\n        if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n      }\n    }\n  }\n\n  function getDescriptor(object, prop) {\n    return Object.getOwnPropertyDescriptor(object, prop);\n  }\n\n  function createProxyFunction(prototype) {\n    function ProxyFunction() {}\n\n    ProxyFunction.prototype = prototype;\n    return ProxyFunction;\n  }\n  /* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\n\n  /* exported bez */\n\n\n  function bezFunction() {\n    var math = Math;\n\n    function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n      var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n      return det1 > -0.001 && det1 < 0.001;\n    }\n\n    function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n      if (z1 === 0 && z2 === 0 && z3 === 0) {\n        return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n      }\n\n      var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n      var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n      var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n      var diffDist;\n\n      if (dist1 > dist2) {\n        if (dist1 > dist3) {\n          diffDist = dist1 - dist2 - dist3;\n        } else {\n          diffDist = dist3 - dist2 - dist1;\n        }\n      } else if (dist3 > dist2) {\n        diffDist = dist3 - dist2 - dist1;\n      } else {\n        diffDist = dist2 - dist1 - dist3;\n      }\n\n      return diffDist > -0.0001 && diffDist < 0.0001;\n    }\n\n    var getBezierLength = function () {\n      return function (pt1, pt2, pt3, pt4) {\n        var curveSegments = defaultCurveSegments;\n        var k;\n        var i;\n        var len;\n        var ptCoord;\n        var perc;\n        var addedLength = 0;\n        var ptDistance;\n        var point = [];\n        var lastPoint = [];\n        var lengthData = bezierLengthPool.newElement();\n        len = pt3.length;\n\n        for (k = 0; k < curveSegments; k += 1) {\n          perc = k / (curveSegments - 1);\n          ptDistance = 0;\n\n          for (i = 0; i < len; i += 1) {\n            ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n            point[i] = ptCoord;\n\n            if (lastPoint[i] !== null) {\n              ptDistance += bmPow(point[i] - lastPoint[i], 2);\n            }\n\n            lastPoint[i] = point[i];\n          }\n\n          if (ptDistance) {\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n          }\n\n          lengthData.percents[k] = perc;\n          lengthData.lengths[k] = addedLength;\n        }\n\n        lengthData.addedLength = addedLength;\n        return lengthData;\n      };\n    }();\n\n    function getSegmentsLength(shapeData) {\n      var segmentsLength = segmentsLengthPool.newElement();\n      var closed = shapeData.c;\n      var pathV = shapeData.v;\n      var pathO = shapeData.o;\n      var pathI = shapeData.i;\n      var i;\n      var len = shapeData._length;\n      var lengths = segmentsLength.lengths;\n      var totalLength = 0;\n\n      for (i = 0; i < len - 1; i += 1) {\n        lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      if (closed && len) {\n        lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      segmentsLength.totalLength = totalLength;\n      return segmentsLength;\n    }\n\n    function BezierData(length) {\n      (this || _global).segmentLength = 0;\n      (this || _global).points = new Array(length);\n    }\n\n    function PointData(partial, point) {\n      (this || _global).partialLength = partial;\n      (this || _global).point = point;\n    }\n\n    var buildBezierData = function () {\n      var storedData = {};\n      return function (pt1, pt2, pt3, pt4) {\n        var bezierName = (pt1[0] + \"_\" + pt1[1] + \"_\" + pt2[0] + \"_\" + pt2[1] + \"_\" + pt3[0] + \"_\" + pt3[1] + \"_\" + pt4[0] + \"_\" + pt4[1]).replace(/\\./g, \"p\");\n\n        if (!storedData[bezierName]) {\n          var curveSegments = defaultCurveSegments;\n          var k;\n          var i;\n          var len;\n          var ptCoord;\n          var perc;\n          var addedLength = 0;\n          var ptDistance;\n          var point;\n          var lastPoint = null;\n\n          if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n            curveSegments = 2;\n          }\n\n          var bezierData = new BezierData(curveSegments);\n          len = pt3.length;\n\n          for (k = 0; k < curveSegments; k += 1) {\n            point = createSizedArray(len);\n            perc = k / (curveSegments - 1);\n            ptDistance = 0;\n\n            for (i = 0; i < len; i += 1) {\n              ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n              point[i] = ptCoord;\n\n              if (lastPoint !== null) {\n                ptDistance += bmPow(point[i] - lastPoint[i], 2);\n              }\n            }\n\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n            bezierData.points[k] = new PointData(ptDistance, point);\n            lastPoint = point;\n          }\n\n          bezierData.segmentLength = addedLength;\n          storedData[bezierName] = bezierData;\n        }\n\n        return storedData[bezierName];\n      };\n    }();\n\n    function getDistancePerc(perc, bezierData) {\n      var percents = bezierData.percents;\n      var lengths = bezierData.lengths;\n      var len = percents.length;\n      var initPos = bmFloor((len - 1) * perc);\n      var lengthPos = perc * bezierData.addedLength;\n      var lPerc = 0;\n\n      if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n        return percents[initPos];\n      }\n\n      var dir = lengths[initPos] > lengthPos ? -1 : 1;\n      var flag = true;\n\n      while (flag) {\n        if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n          lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n          flag = false;\n        } else {\n          initPos += dir;\n        }\n\n        if (initPos < 0 || initPos >= len - 1) {\n          // FIX for TypedArrays that don't store floating point values with enough accuracy\n          if (initPos === len - 1) {\n            return percents[initPos];\n          }\n\n          flag = false;\n        }\n      }\n\n      return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n    }\n\n    function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n      var t1 = getDistancePerc(percent, bezierData);\n      var u1 = 1 - t1;\n      var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n      var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n      return [ptX, ptY];\n    }\n\n    var bezierSegmentPoints = createTypedArray(\"float32\", 8);\n\n    function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n      if (startPerc < 0) {\n        startPerc = 0;\n      } else if (startPerc > 1) {\n        startPerc = 1;\n      }\n\n      var t0 = getDistancePerc(startPerc, bezierData);\n      endPerc = endPerc > 1 ? 1 : endPerc;\n      var t1 = getDistancePerc(endPerc, bezierData);\n      var i;\n      var len = pt1.length;\n      var u0 = 1 - t0;\n      var u1 = 1 - t1;\n      var u0u0u0 = u0 * u0 * u0;\n      var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0t0 = t0 * t0 * t0; //\n\n      var u0u0u1 = u0 * u0 * u1;\n      var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0t1 = t0 * t0 * t1; //\n\n      var u0u1u1 = u0 * u1 * u1;\n      var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1t1 = t0 * t1 * t1; //\n\n      var u1u1u1 = u1 * u1 * u1;\n      var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1t1 = t1 * t1 * t1;\n\n      for (i = 0; i < len; i += 1) {\n        bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n      }\n\n      return bezierSegmentPoints;\n    }\n\n    return {\n      getSegmentsLength: getSegmentsLength,\n      getNewSegment: getNewSegment,\n      getPointInSegment: getPointInSegment,\n      buildBezierData: buildBezierData,\n      pointOnLine2D: pointOnLine2D,\n      pointOnLine3D: pointOnLine3D\n    };\n  }\n\n  var bez = bezFunction();\n  /* exported dataManager */\n\n  function dataFunctionManager() {\n    // var tCanvasHelper = createTag('canvas').getContext('2d');\n    function completeLayers(layers, comps, fontManager) {\n      var layerData;\n      var i;\n      var len = layers.length;\n      var j;\n      var jLen;\n      var k;\n      var kLen;\n\n      for (i = 0; i < len; i += 1) {\n        layerData = layers[i];\n\n        if (\"ks\" in layerData && !layerData.completed) {\n          layerData.completed = true;\n\n          if (layerData.tt) {\n            layers[i - 1].td = layerData.tt;\n          }\n\n          if (layerData.hasMask) {\n            var maskProps = layerData.masksProperties;\n            jLen = maskProps.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (maskProps[j].pt.k.i) {\n                convertPathsToAbsoluteValues(maskProps[j].pt.k);\n              } else {\n                kLen = maskProps[j].pt.k.length;\n\n                for (k = 0; k < kLen; k += 1) {\n                  if (maskProps[j].pt.k[k].s) {\n                    convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n                  }\n\n                  if (maskProps[j].pt.k[k].e) {\n                    convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n                  }\n                }\n              }\n            }\n          }\n\n          if (layerData.ty === 0) {\n            layerData.layers = findCompLayers(layerData.refId, comps);\n            completeLayers(layerData.layers, comps, fontManager);\n          } else if (layerData.ty === 4) {\n            completeShapes(layerData.shapes);\n          } else if (layerData.ty === 5) {\n            completeText(layerData, fontManager);\n          }\n        }\n      }\n    }\n\n    function findCompLayers(id, comps) {\n      var i = 0;\n      var len = comps.length;\n\n      while (i < len) {\n        if (comps[i].id === id) {\n          if (!comps[i].layers.__used) {\n            comps[i].layers.__used = true;\n            return comps[i].layers;\n          }\n\n          return JSON.parse(JSON.stringify(comps[i].layers));\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function completeShapes(arr) {\n      var i;\n      var len = arr.length;\n      var j;\n      var jLen;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if (arr[i].ty === \"sh\") {\n          if (arr[i].ks.k.i) {\n            convertPathsToAbsoluteValues(arr[i].ks.k);\n          } else {\n            jLen = arr[i].ks.k.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (arr[i].ks.k[j].s) {\n                convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n              }\n\n              if (arr[i].ks.k[j].e) {\n                convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n              }\n            }\n          }\n        } else if (arr[i].ty === \"gr\") {\n          completeShapes(arr[i].it);\n        }\n      }\n    }\n\n    function convertPathsToAbsoluteValues(path) {\n      var i;\n      var len = path.i.length;\n\n      for (i = 0; i < len; i += 1) {\n        path.i[i][0] += path.v[i][0];\n        path.i[i][1] += path.v[i][1];\n        path.o[i][0] += path.v[i][0];\n        path.o[i][1] += path.v[i][1];\n      }\n    }\n\n    function checkVersion(minimum, animVersionString) {\n      var animVersion = animVersionString ? animVersionString.split(\".\") : [100, 100, 100];\n\n      if (minimum[0] > animVersion[0]) {\n        return true;\n      }\n\n      if (animVersion[0] > minimum[0]) {\n        return false;\n      }\n\n      if (minimum[1] > animVersion[1]) {\n        return true;\n      }\n\n      if (animVersion[1] > minimum[1]) {\n        return false;\n      }\n\n      if (minimum[2] > animVersion[2]) {\n        return true;\n      }\n\n      if (animVersion[2] > minimum[2]) {\n        return false;\n      }\n\n      return null;\n    }\n\n    var checkText = function () {\n      var minimumVersion = [4, 4, 14];\n\n      function updateTextLayer(textLayer) {\n        var documentData = textLayer.t.d;\n        textLayer.t.d = {\n          k: [{\n            s: documentData,\n            t: 0\n          }]\n        };\n      }\n\n      function iterateLayers(layers) {\n        var i;\n        var len = layers.length;\n\n        for (i = 0; i < len; i += 1) {\n          if (layers[i].ty === 5) {\n            updateTextLayer(layers[i]);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkChars = function () {\n      var minimumVersion = [4, 7, 99];\n      return function (animationData) {\n        if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n          var i;\n          var len = animationData.chars.length;\n          var j;\n          var jLen;\n          var pathData;\n          var paths;\n\n          for (i = 0; i < len; i += 1) {\n            if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\n              paths = animationData.chars[i].data.shapes[0].it;\n              jLen = paths.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                pathData = paths[j].ks.k;\n\n                if (!pathData.__converted) {\n                  convertPathsToAbsoluteValues(paths[j].ks.k);\n                  pathData.__converted = true;\n                }\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkColors = function () {\n      var minimumVersion = [4, 1, 9];\n\n      function iterateShapes(shapes) {\n        var i;\n        var len = shapes.length;\n        var j;\n        var jLen;\n\n        for (i = 0; i < len; i += 1) {\n          if (shapes[i].ty === \"gr\") {\n            iterateShapes(shapes[i].it);\n          } else if (shapes[i].ty === \"fl\" || shapes[i].ty === \"st\") {\n            if (shapes[i].c.k && shapes[i].c.k[0].i) {\n              jLen = shapes[i].c.k.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                if (shapes[i].c.k[j].s) {\n                  shapes[i].c.k[j].s[0] /= 255;\n                  shapes[i].c.k[j].s[1] /= 255;\n                  shapes[i].c.k[j].s[2] /= 255;\n                  shapes[i].c.k[j].s[3] /= 255;\n                }\n\n                if (shapes[i].c.k[j].e) {\n                  shapes[i].c.k[j].e[0] /= 255;\n                  shapes[i].c.k[j].e[1] /= 255;\n                  shapes[i].c.k[j].e[2] /= 255;\n                  shapes[i].c.k[j].e[3] /= 255;\n                }\n              }\n            } else {\n              shapes[i].c.k[0] /= 255;\n              shapes[i].c.k[1] /= 255;\n              shapes[i].c.k[2] /= 255;\n              shapes[i].c.k[3] /= 255;\n            }\n          }\n        }\n      }\n\n      function iterateLayers(layers) {\n        var i;\n        var len = layers.length;\n\n        for (i = 0; i < len; i += 1) {\n          if (layers[i].ty === 4) {\n            iterateShapes(layers[i].shapes);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkShapes = function () {\n      var minimumVersion = [4, 4, 18];\n\n      function completeClosingShapes(arr) {\n        var i;\n        var len = arr.length;\n        var j;\n        var jLen;\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          if (arr[i].ty === \"sh\") {\n            if (arr[i].ks.k.i) {\n              arr[i].ks.k.c = arr[i].closed;\n            } else {\n              jLen = arr[i].ks.k.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                if (arr[i].ks.k[j].s) {\n                  arr[i].ks.k[j].s[0].c = arr[i].closed;\n                }\n\n                if (arr[i].ks.k[j].e) {\n                  arr[i].ks.k[j].e[0].c = arr[i].closed;\n                }\n              }\n            }\n          } else if (arr[i].ty === \"gr\") {\n            completeClosingShapes(arr[i].it);\n          }\n        }\n      }\n\n      function iterateLayers(layers) {\n        var layerData;\n        var i;\n        var len = layers.length;\n        var j;\n        var jLen;\n        var k;\n        var kLen;\n\n        for (i = 0; i < len; i += 1) {\n          layerData = layers[i];\n\n          if (layerData.hasMask) {\n            var maskProps = layerData.masksProperties;\n            jLen = maskProps.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (maskProps[j].pt.k.i) {\n                maskProps[j].pt.k.c = maskProps[j].cl;\n              } else {\n                kLen = maskProps[j].pt.k.length;\n\n                for (k = 0; k < kLen; k += 1) {\n                  if (maskProps[j].pt.k[k].s) {\n                    maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n                  }\n\n                  if (maskProps[j].pt.k[k].e) {\n                    maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n                  }\n                }\n              }\n            }\n          }\n\n          if (layerData.ty === 4) {\n            completeClosingShapes(layerData.shapes);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    function completeData(animationData, fontManager) {\n      if (animationData.__complete) {\n        return;\n      }\n\n      checkColors(animationData);\n      checkText(animationData);\n      checkChars(animationData);\n      checkShapes(animationData);\n      completeLayers(animationData.layers, animationData.assets, fontManager);\n      animationData.__complete = true;\n    }\n\n    function completeText(data) {\n      if (data.t.a.length === 0 && !(\"m\" in data.t.p)) {\n        data.singleShape = true;\n      }\n    }\n\n    var moduleOb = {};\n    moduleOb.completeData = completeData;\n    moduleOb.checkColors = checkColors;\n    moduleOb.checkChars = checkChars;\n    moduleOb.checkShapes = checkShapes;\n    moduleOb.completeLayers = completeLayers;\n    return moduleOb;\n  }\n\n  var dataManager = dataFunctionManager();\n  /* exported getFontProperties */\n\n  function getFontProperties(fontData) {\n    var styles = fontData.fStyle ? fontData.fStyle.split(\" \") : [];\n    var fWeight = \"normal\";\n    var fStyle = \"normal\";\n    var len = styles.length;\n    var styleName;\n\n    for (var i = 0; i < len; i += 1) {\n      styleName = styles[i].toLowerCase();\n\n      switch (styleName) {\n        case \"italic\":\n          fStyle = \"italic\";\n          break;\n\n        case \"bold\":\n          fWeight = \"700\";\n          break;\n\n        case \"black\":\n          fWeight = \"900\";\n          break;\n\n        case \"medium\":\n          fWeight = \"500\";\n          break;\n\n        case \"regular\":\n        case \"normal\":\n          fWeight = \"400\";\n          break;\n\n        case \"light\":\n        case \"thin\":\n          fWeight = \"200\";\n          break;\n\n        default:\n          break;\n      }\n    }\n\n    return {\n      style: fStyle,\n      weight: fontData.fWeight || fWeight\n    };\n  }\n  /* global createNS, createTag, getFontProperties */\n\n  /* exported FontManager */\n\n\n  var FontManager = function () {\n    var maxWaitingTime = 5000;\n    var emptyChar = {\n      w: 0,\n      size: 0,\n      shapes: []\n    };\n    var combinedCharacters = []; // Hindi characters\n\n    combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n\n    function trimFontOptions(font) {\n      var familyArray = font.split(\",\");\n      var i;\n      var len = familyArray.length;\n      var enabledFamilies = [];\n\n      for (i = 0; i < len; i += 1) {\n        if (familyArray[i] !== \"sans-serif\" && familyArray[i] !== \"monospace\") {\n          enabledFamilies.push(familyArray[i]);\n        }\n      }\n\n      return enabledFamilies.join(\",\");\n    }\n\n    function setUpNode(font, family) {\n      var parentNode = createTag(\"span\"); // Node is invisible to screen readers.\n\n      parentNode.setAttribute(\"aria-hidden\", true);\n      parentNode.style.fontFamily = family;\n      var node = createTag(\"span\"); // Characters that vary significantly among different fonts\n\n      node.innerText = \"giItT1WQy@!-/#\"; // Visible - so we can measure it - but not on the screen\n\n      parentNode.style.position = \"absolute\";\n      parentNode.style.left = \"-10000px\";\n      parentNode.style.top = \"-10000px\"; // Large font size makes even subtle changes obvious\n\n      parentNode.style.fontSize = \"300px\"; // Reset any font properties\n\n      parentNode.style.fontVariant = \"normal\";\n      parentNode.style.fontStyle = \"normal\";\n      parentNode.style.fontWeight = \"normal\";\n      parentNode.style.letterSpacing = \"0\";\n      parentNode.appendChild(node);\n      document.body.appendChild(parentNode); // Remember width with no applied web font\n\n      var width = node.offsetWidth;\n      node.style.fontFamily = trimFontOptions(font) + \", \" + family;\n      return {\n        node: node,\n        w: width,\n        parent: parentNode\n      };\n    }\n\n    function checkLoadedFonts() {\n      var i;\n      var len = (this || _global).fonts.length;\n      var node;\n      var w;\n      var loadedCount = len;\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).fonts[i].loaded) {\n          loadedCount -= 1;\n        } else if ((this || _global).fonts[i].fOrigin === \"n\" || (this || _global).fonts[i].origin === 0) {\n          (this || _global).fonts[i].loaded = true;\n        } else {\n          node = (this || _global).fonts[i].monoCase.node;\n          w = (this || _global).fonts[i].monoCase.w;\n\n          if (node.offsetWidth !== w) {\n            loadedCount -= 1;\n            (this || _global).fonts[i].loaded = true;\n          } else {\n            node = (this || _global).fonts[i].sansCase.node;\n            w = (this || _global).fonts[i].sansCase.w;\n\n            if (node.offsetWidth !== w) {\n              loadedCount -= 1;\n              (this || _global).fonts[i].loaded = true;\n            }\n          }\n\n          if ((this || _global).fonts[i].loaded) {\n            (this || _global).fonts[i].sansCase.parent.parentNode.removeChild((this || _global).fonts[i].sansCase.parent);\n\n            (this || _global).fonts[i].monoCase.parent.parentNode.removeChild((this || _global).fonts[i].monoCase.parent);\n          }\n        }\n      }\n\n      if (loadedCount !== 0 && Date.now() - (this || _global).initTime < maxWaitingTime) {\n        setTimeout((this || _global).checkLoadedFontsBinded, 20);\n      } else {\n        setTimeout((this || _global).setIsLoadedBinded, 10);\n      }\n    }\n\n    function createHelper(def, fontData) {\n      var tHelper = createNS(\"text\");\n      tHelper.style.fontSize = \"100px\"; // tHelper.style.fontFamily = fontData.fFamily;\n\n      var fontProps = getFontProperties(fontData);\n      tHelper.setAttribute(\"font-family\", fontData.fFamily);\n      tHelper.setAttribute(\"font-style\", fontProps.style);\n      tHelper.setAttribute(\"font-weight\", fontProps.weight);\n      tHelper.textContent = \"1\";\n\n      if (fontData.fClass) {\n        tHelper.style.fontFamily = \"inherit\";\n        tHelper.setAttribute(\"class\", fontData.fClass);\n      } else {\n        tHelper.style.fontFamily = fontData.fFamily;\n      }\n\n      def.appendChild(tHelper);\n      var tCanvasHelper = createTag(\"canvas\").getContext(\"2d\");\n      tCanvasHelper.font = fontData.fWeight + \" \" + fontData.fStyle + \" 100px \" + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n      return tHelper;\n    }\n\n    function addFonts(fontData, defs) {\n      if (!fontData) {\n        (this || _global).isLoaded = true;\n        return;\n      }\n\n      if ((this || _global).chars) {\n        (this || _global).isLoaded = true;\n        (this || _global).fonts = fontData.list;\n        return;\n      }\n\n      var fontArr = fontData.list;\n      var i;\n      var len = fontArr.length;\n      var _pendingFonts = len;\n\n      for (i = 0; i < len; i += 1) {\n        var shouldLoadFont = true;\n        var loadedSelector;\n        var j;\n        fontArr[i].loaded = false;\n        fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, \"monospace\");\n        fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, \"sans-serif\");\n\n        if (!fontArr[i].fPath) {\n          fontArr[i].loaded = true;\n          _pendingFonts -= 1;\n        } else if (fontArr[i].fOrigin === \"p\" || fontArr[i].origin === 3) {\n          loadedSelector = document.querySelectorAll(\"style[f-forigin=\\\"p\\\"][f-family=\\\"\" + fontArr[i].fFamily + \"\\\"], style[f-origin=\\\"3\\\"][f-family=\\\"\" + fontArr[i].fFamily + \"\\\"]\");\n\n          if (loadedSelector.length > 0) {\n            shouldLoadFont = false;\n          }\n\n          if (shouldLoadFont) {\n            var s = createTag(\"style\");\n            s.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            s.setAttribute(\"f-origin\", fontArr[i].origin);\n            s.setAttribute(\"f-family\", fontArr[i].fFamily);\n            s.type = \"text/css\";\n            s.innerText = \"@font-face {font-family: \" + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n            defs.appendChild(s);\n          }\n        } else if (fontArr[i].fOrigin === \"g\" || fontArr[i].origin === 1) {\n          loadedSelector = document.querySelectorAll(\"link[f-forigin=\\\"g\\\"], link[f-origin=\\\"1\\\"]\");\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var l = createTag(\"link\");\n            l.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            l.setAttribute(\"f-origin\", fontArr[i].origin);\n            l.type = \"text/css\";\n            l.rel = \"stylesheet\";\n            l.href = fontArr[i].fPath;\n            document.body.appendChild(l);\n          }\n        } else if (fontArr[i].fOrigin === \"t\" || fontArr[i].origin === 2) {\n          loadedSelector = document.querySelectorAll(\"script[f-forigin=\\\"t\\\"], script[f-origin=\\\"2\\\"]\");\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (fontArr[i].fPath === loadedSelector[j].src) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var sc = createTag(\"link\");\n            sc.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            sc.setAttribute(\"f-origin\", fontArr[i].origin);\n            sc.setAttribute(\"rel\", \"stylesheet\");\n            sc.setAttribute(\"href\", fontArr[i].fPath);\n            defs.appendChild(sc);\n          }\n        }\n\n        fontArr[i].helper = createHelper(defs, fontArr[i]);\n        fontArr[i].cache = {};\n\n        (this || _global).fonts.push(fontArr[i]);\n      }\n\n      if (_pendingFonts === 0) {\n        (this || _global).isLoaded = true;\n      } else {\n        // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n        // Adding this timeout seems to fix it\n        setTimeout((this || _global).checkLoadedFonts.bind(this || _global), 100);\n      }\n    }\n\n    function addChars(chars) {\n      if (!chars) {\n        return;\n      }\n\n      if (!(this || _global).chars) {\n        (this || _global).chars = [];\n      }\n\n      var i;\n      var len = chars.length;\n      var j;\n      var jLen = (this || _global).chars.length;\n      var found;\n\n      for (i = 0; i < len; i += 1) {\n        j = 0;\n        found = false;\n\n        while (j < jLen) {\n          if ((this || _global).chars[j].style === chars[i].style && (this || _global).chars[j].fFamily === chars[i].fFamily && (this || _global).chars[j].ch === chars[i].ch) {\n            found = true;\n          }\n\n          j += 1;\n        }\n\n        if (!found) {\n          (this || _global).chars.push(chars[i]);\n\n          jLen += 1;\n        }\n      }\n    }\n\n    function getCharData(char, style, font) {\n      var i = 0;\n      var len = (this || _global).chars.length;\n\n      while (i < len) {\n        if ((this || _global).chars[i].ch === char && (this || _global).chars[i].style === style && (this || _global).chars[i].fFamily === font) {\n          return (this || _global).chars[i];\n        }\n\n        i += 1;\n      }\n\n      if ((typeof char === \"string\" && char.charCodeAt(0) !== 13 || !char) && console && console.warn // eslint-disable-line no-console\n      && !(this || _global)._warned) {\n        (this || _global)._warned = true;\n        console.warn(\"Missing character from exported characters list: \", char, style, font); // eslint-disable-line no-console\n      }\n\n      return emptyChar;\n    }\n\n    function measureText(char, fontName, size) {\n      var fontData = this.getFontByName(fontName);\n      var index = char.charCodeAt(0);\n\n      if (!fontData.cache[index + 1]) {\n        var tHelper = fontData.helper; // Canvas version\n        // fontData.cache[index] = tHelper.measureText(char).width / 100;\n        // SVG version\n        // console.log(tHelper.getBBox().width)\n\n        if (char === \" \") {\n          tHelper.textContent = \"|\" + char + \"|\";\n          var doubleSize = tHelper.getComputedTextLength();\n          tHelper.textContent = \"||\";\n          var singleSize = tHelper.getComputedTextLength();\n          fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n        } else {\n          tHelper.textContent = char;\n          fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n        }\n      }\n\n      return fontData.cache[index + 1] * size;\n    }\n\n    function getFontByName(name) {\n      var i = 0;\n      var len = (this || _global).fonts.length;\n\n      while (i < len) {\n        if ((this || _global).fonts[i].fName === name) {\n          return (this || _global).fonts[i];\n        }\n\n        i += 1;\n      }\n\n      return (this || _global).fonts[0];\n    }\n\n    function getCombinedCharacterCodes() {\n      return combinedCharacters;\n    }\n\n    function setIsLoaded() {\n      (this || _global).isLoaded = true;\n    }\n\n    var Font = function () {\n      (this || _global).fonts = [];\n      (this || _global).chars = null;\n      (this || _global).typekitLoaded = 0;\n      (this || _global).isLoaded = false;\n      (this || _global)._warned = false;\n      (this || _global).initTime = Date.now();\n      (this || _global).setIsLoadedBinded = (this || _global).setIsLoaded.bind(this || _global);\n      (this || _global).checkLoadedFontsBinded = (this || _global).checkLoadedFonts.bind(this || _global);\n    }; // TODO: for now I'm adding these methods to the Class and not the prototype. Think of a better way to implement it.\n\n\n    Font.getCombinedCharacterCodes = getCombinedCharacterCodes;\n    var fontPrototype = {\n      addChars: addChars,\n      addFonts: addFonts,\n      getCharData: getCharData,\n      getFontByName: getFontByName,\n      measureText: measureText,\n      checkLoadedFonts: checkLoadedFonts,\n      setIsLoaded: setIsLoaded\n    };\n    Font.prototype = fontPrototype;\n    return Font;\n  }();\n  /* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\n\n  /* exported PropertyFactory */\n\n\n  var PropertyFactory = function () {\n    var initFrame = initialDefaultFrame;\n    var mathAbs = Math.abs;\n\n    function interpolateValue(frameNum, caching) {\n      var offsetTime = (this || _global).offsetTime;\n      var newValue;\n\n      if ((this || _global).propType === \"multidimensional\") {\n        newValue = createTypedArray(\"float32\", (this || _global).pv.length);\n      }\n\n      var iterationIndex = caching.lastIndex;\n      var i = iterationIndex;\n      var len = (this || _global).keyframes.length - 1;\n      var flag = true;\n      var keyData;\n      var nextKeyData;\n\n      while (flag) {\n        keyData = (this || _global).keyframes[i];\n        nextKeyData = (this || _global).keyframes[i + 1];\n\n        if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n          if (keyData.h) {\n            keyData = nextKeyData;\n          }\n\n          iterationIndex = 0;\n          break;\n        }\n\n        if (nextKeyData.t - offsetTime > frameNum) {\n          iterationIndex = i;\n          break;\n        }\n\n        if (i < len - 1) {\n          i += 1;\n        } else {\n          iterationIndex = 0;\n          flag = false;\n        }\n      }\n\n      var k;\n      var kLen;\n      var perc;\n      var jLen;\n      var j;\n      var fnc;\n      var nextKeyTime = nextKeyData.t - offsetTime;\n      var keyTime = keyData.t - offsetTime;\n      var endValue;\n\n      if (keyData.to) {\n        if (!keyData.bezierData) {\n          keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n        }\n\n        var bezierData = keyData.bezierData;\n\n        if (frameNum >= nextKeyTime || frameNum < keyTime) {\n          var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n          kLen = bezierData.points[ind].point.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            newValue[k] = bezierData.points[ind].point[k];\n          } // caching._lastKeyframeIndex = -1;\n\n        } else {\n          if (keyData.__fnct) {\n            fnc = keyData.__fnct;\n          } else {\n            fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n            keyData.__fnct = fnc;\n          }\n\n          perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n          var distanceInLine = bezierData.segmentLength * perc;\n          var segmentPerc;\n          var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n          j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n          flag = true;\n          jLen = bezierData.points.length;\n\n          while (flag) {\n            addedLength += bezierData.points[j].partialLength;\n\n            if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k];\n              }\n\n              break;\n            } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n              segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n              }\n\n              break;\n            }\n\n            if (j < jLen - 1) {\n              j += 1;\n            } else {\n              flag = false;\n            }\n          }\n\n          caching._lastPoint = j;\n          caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n          caching._lastKeyframeIndex = i;\n        }\n      } else {\n        var outX;\n        var outY;\n        var inX;\n        var inY;\n        var keyValue;\n        len = keyData.s.length;\n        endValue = nextKeyData.s || keyData.e;\n\n        if ((this || _global).sh && keyData.h !== 1) {\n          if (frameNum >= nextKeyTime) {\n            newValue[0] = endValue[0];\n            newValue[1] = endValue[1];\n            newValue[2] = endValue[2];\n          } else if (frameNum <= keyTime) {\n            newValue[0] = keyData.s[0];\n            newValue[1] = keyData.s[1];\n            newValue[2] = keyData.s[2];\n          } else {\n            var quatStart = createQuaternion(keyData.s);\n            var quatEnd = createQuaternion(endValue);\n            var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n            quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n          }\n        } else {\n          for (i = 0; i < len; i += 1) {\n            if (keyData.h !== 1) {\n              if (frameNum >= nextKeyTime) {\n                perc = 1;\n              } else if (frameNum < keyTime) {\n                perc = 0;\n              } else {\n                if (keyData.o.x.constructor === Array) {\n                  if (!keyData.__fnct) {\n                    keyData.__fnct = [];\n                  }\n\n                  if (!keyData.__fnct[i]) {\n                    outX = typeof keyData.o.x[i] === \"undefined\" ? keyData.o.x[0] : keyData.o.x[i];\n                    outY = typeof keyData.o.y[i] === \"undefined\" ? keyData.o.y[0] : keyData.o.y[i];\n                    inX = typeof keyData.i.x[i] === \"undefined\" ? keyData.i.x[0] : keyData.i.x[i];\n                    inY = typeof keyData.i.y[i] === \"undefined\" ? keyData.i.y[0] : keyData.i.y[i];\n                    fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                    keyData.__fnct[i] = fnc;\n                  } else {\n                    fnc = keyData.__fnct[i];\n                  }\n                } else if (!keyData.__fnct) {\n                  outX = keyData.o.x;\n                  outY = keyData.o.y;\n                  inX = keyData.i.x;\n                  inY = keyData.i.y;\n                  fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                  keyData.__fnct = fnc;\n                } else {\n                  fnc = keyData.__fnct;\n                }\n\n                perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n              }\n            }\n\n            endValue = nextKeyData.s || keyData.e;\n            keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n            if ((this || _global).propType === \"multidimensional\") {\n              newValue[i] = keyValue;\n            } else {\n              newValue = keyValue;\n            }\n          }\n        }\n      }\n\n      caching.lastIndex = iterationIndex;\n      return newValue;\n    } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n    function slerp(a, b, t) {\n      var out = [];\n      var ax = a[0];\n      var ay = a[1];\n      var az = a[2];\n      var aw = a[3];\n      var bx = b[0];\n      var by = b[1];\n      var bz = b[2];\n      var bw = b[3];\n      var omega;\n      var cosom;\n      var sinom;\n      var scale0;\n      var scale1;\n      cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n      if (cosom < 0) {\n        cosom = -cosom;\n        bx = -bx;\n        by = -by;\n        bz = -bz;\n        bw = -bw;\n      }\n\n      if (1 - cosom > 0.000001) {\n        omega = Math.acos(cosom);\n        sinom = Math.sin(omega);\n        scale0 = Math.sin((1 - t) * omega) / sinom;\n        scale1 = Math.sin(t * omega) / sinom;\n      } else {\n        scale0 = 1 - t;\n        scale1 = t;\n      }\n\n      out[0] = scale0 * ax + scale1 * bx;\n      out[1] = scale0 * ay + scale1 * by;\n      out[2] = scale0 * az + scale1 * bz;\n      out[3] = scale0 * aw + scale1 * bw;\n      return out;\n    }\n\n    function quaternionToEuler(out, quat) {\n      var qx = quat[0];\n      var qy = quat[1];\n      var qz = quat[2];\n      var qw = quat[3];\n      var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n      var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n      var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n      out[0] = heading / degToRads;\n      out[1] = attitude / degToRads;\n      out[2] = bank / degToRads;\n    }\n\n    function createQuaternion(values) {\n      var heading = values[0] * degToRads;\n      var attitude = values[1] * degToRads;\n      var bank = values[2] * degToRads;\n      var c1 = Math.cos(heading / 2);\n      var c2 = Math.cos(attitude / 2);\n      var c3 = Math.cos(bank / 2);\n      var s1 = Math.sin(heading / 2);\n      var s2 = Math.sin(attitude / 2);\n      var s3 = Math.sin(bank / 2);\n      var w = c1 * c2 * c3 - s1 * s2 * s3;\n      var x = s1 * s2 * c3 + c1 * c2 * s3;\n      var y = s1 * c2 * c3 + c1 * s2 * s3;\n      var z = c1 * s2 * c3 - s1 * c2 * s3;\n      return [x, y, z, w];\n    }\n\n    function getValueAtCurrentTime() {\n      var frameNum = (this || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n\n      if (!(frameNum === (this || _global)._caching.lastFrame || (this || _global)._caching.lastFrame !== initFrame && ((this || _global)._caching.lastFrame >= endTime && frameNum >= endTime || (this || _global)._caching.lastFrame < initTime && frameNum < initTime))) {\n        if ((this || _global)._caching.lastFrame >= frameNum) {\n          (this || _global)._caching._lastKeyframeIndex = -1;\n          (this || _global)._caching.lastIndex = 0;\n        }\n\n        var renderResult = this.interpolateValue(frameNum, (this || _global)._caching);\n        (this || _global).pv = renderResult;\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function setVValue(val) {\n      var multipliedValue;\n\n      if ((this || _global).propType === \"unidimensional\") {\n        multipliedValue = val * (this || _global).mult;\n\n        if (mathAbs((this || _global).v - multipliedValue) > 0.00001) {\n          (this || _global).v = multipliedValue;\n          (this || _global)._mdf = true;\n        }\n      } else {\n        var i = 0;\n        var len = (this || _global).v.length;\n\n        while (i < len) {\n          multipliedValue = val[i] * (this || _global).mult;\n\n          if (mathAbs((this || _global).v[i] - multipliedValue) > 0.00001) {\n            (this || _global).v[i] = multipliedValue;\n            (this || _global)._mdf = true;\n          }\n\n          i += 1;\n        }\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) {\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = (this || _global)._isFirstFrame;\n      var i;\n      var len = (this || _global).effectsSequence.length;\n      var finalValue = (this || _global).kf ? (this || _global).pv : (this || _global).data.k;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global)._isFirstFrame = false;\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\n    }\n\n    function ValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global).v = mult ? data.k * mult : data.k;\n      (this || _global).pv = data.k;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).vel = 0;\n      (this || _global).effectsSequence = [];\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function MultiDimensionalProperty(elem, data, mult, container) {\n      (this || _global).propType = \"multidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).frameId = -1;\n      var i;\n      var len = data.k.length;\n      (this || _global).v = createTypedArray(\"float32\", len);\n      (this || _global).pv = createTypedArray(\"float32\", len);\n      (this || _global).vel = createTypedArray(\"float32\", len);\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).v[i] = data.k[i] * (this || _global).mult;\n        (this || _global).pv[i] = data.k[i];\n      }\n\n      (this || _global)._isFirstFrame = true;\n      (this || _global).effectsSequence = [];\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).frameId = -1;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: 0,\n        _lastKeyframeIndex: -1\n      };\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global).data = data;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).v = initFrame;\n      (this || _global).pv = initFrame;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n      (this || _global).propType = \"multidimensional\";\n      var i;\n      var len = data.k.length;\n      var s;\n      var e;\n      var to;\n      var ti;\n\n      for (i = 0; i < len - 1; i += 1) {\n        if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n          s = data.k[i].s;\n          e = data.k[i + 1].s;\n          to = data.k[i].to;\n          ti = data.k[i].ti;\n\n          if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n            data.k[i].to = null;\n            data.k[i].ti = null;\n          }\n\n          if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n            if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n              data.k[i].to = null;\n              data.k[i].ti = null;\n            }\n          }\n        }\n      }\n\n      (this || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).data = data;\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).frameId = -1;\n      var arrLen = data.k[0].s.length;\n      (this || _global).v = createTypedArray(\"float32\", arrLen);\n      (this || _global).pv = createTypedArray(\"float32\", arrLen);\n\n      for (i = 0; i < arrLen; i += 1) {\n        (this || _global).v[i] = initFrame;\n        (this || _global).pv[i] = initFrame;\n      }\n\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: createTypedArray(\"float32\", arrLen)\n      };\n      (this || _global).addEffect = addEffect;\n    }\n\n    function getProp(elem, data, type, mult, container) {\n      var p;\n\n      if (!data.k.length) {\n        p = new ValueProperty(elem, data, mult, container);\n      } else if (typeof data.k[0] === \"number\") {\n        p = new MultiDimensionalProperty(elem, data, mult, container);\n      } else {\n        switch (type) {\n          case 0:\n            p = new KeyframedValueProperty(elem, data, mult, container);\n            break;\n\n          case 1:\n            p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n            break;\n\n          default:\n            break;\n        }\n      }\n\n      if (p.effectsSequence.length) {\n        container.addDynamicProperty(p);\n      }\n\n      return p;\n    }\n\n    var ob = {\n      getProp: getProp\n    };\n    return ob;\n  }();\n  /* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  /* exported TransformPropertyFactory */\n\n\n  var TransformPropertyFactory = function () {\n    var defaultVector = [0, 0];\n\n    function applyToMatrix(mat) {\n      var _mdf = (this || _global)._mdf;\n      this.iterateDynamicProperties();\n      (this || _global)._mdf = (this || _global)._mdf || _mdf;\n\n      if ((this || _global).a) {\n        mat.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n      }\n\n      if ((this || _global).s) {\n        mat.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n      }\n\n      if ((this || _global).sk) {\n        mat.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n      }\n\n      if ((this || _global).r) {\n        mat.rotate(-(this || _global).r.v);\n      } else {\n        mat.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n      }\n\n      if ((this || _global).data.p.s) {\n        if ((this || _global).data.p.z) {\n          mat.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n        } else {\n          mat.translate((this || _global).px.v, (this || _global).py.v, 0);\n        }\n      } else {\n        mat.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n      }\n    }\n\n    function processKeys(forceRender) {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if ((this || _global)._isDirty) {\n        this.precalculateMatrix();\n        (this || _global)._isDirty = false;\n      }\n\n      this.iterateDynamicProperties();\n\n      if ((this || _global)._mdf || forceRender) {\n        var frameRate;\n\n        (this || _global).v.cloneFromProps((this || _global).pre.props);\n\n        if ((this || _global).appliedTransformations < 1) {\n          (this || _global).v.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n        }\n\n        if ((this || _global).appliedTransformations < 2) {\n          (this || _global).v.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n        }\n\n        if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n          (this || _global).v.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n        }\n\n        if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotate(-(this || _global).r.v);\n        } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n        }\n\n        if ((this || _global).autoOriented) {\n          var v1;\n          var v2;\n          frameRate = (this || _global).elem.globalData.frameRate;\n\n          if ((this || _global).p && (this || _global).p.keyframes && (this || _global).p.getValueAtTime) {\n            if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime <= (this || _global).p.keyframes[0].t) {\n              v1 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[0].t + 0.01) / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[0].t / frameRate, 0);\n            } else if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime >= (this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t) {\n              v1 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n            } else {\n              v1 = (this || _global).p.pv;\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime - 0.01) / frameRate, (this || _global).p.offsetTime);\n            }\n          } else if ((this || _global).px && (this || _global).px.keyframes && (this || _global).py.keyframes && (this || _global).px.getValueAtTime && (this || _global).py.getValueAtTime) {\n            v1 = [];\n            v2 = [];\n            var px = (this || _global).px;\n            var py = (this || _global).py;\n\n            if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n              v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n              v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n              v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n              v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n            } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n              v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n              v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n              v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n              v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n            } else {\n              v1 = [px.pv, py.pv];\n              v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n              v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n            }\n          } else {\n            v2 = defaultVector;\n            v1 = v2;\n          }\n\n          (this || _global).v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n        }\n\n        if ((this || _global).data.p && (this || _global).data.p.s) {\n          if ((this || _global).data.p.z) {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n          } else {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, 0);\n          }\n        } else {\n          (this || _global).v.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n        }\n      }\n\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function precalculateMatrix() {\n      if (!(this || _global).a.k) {\n        (this || _global).pre.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n\n        (this || _global).appliedTransformations = 1;\n      } else {\n        return;\n      }\n\n      if (!(this || _global).s.effectsSequence.length) {\n        (this || _global).pre.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n\n        (this || _global).appliedTransformations = 2;\n      } else {\n        return;\n      }\n\n      if ((this || _global).sk) {\n        if (!(this || _global).sk.effectsSequence.length && !(this || _global).sa.effectsSequence.length) {\n          (this || _global).pre.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n\n          (this || _global).appliedTransformations = 3;\n        } else {\n          return;\n        }\n      }\n\n      if ((this || _global).r) {\n        if (!(this || _global).r.effectsSequence.length) {\n          (this || _global).pre.rotate(-(this || _global).r.v);\n\n          (this || _global).appliedTransformations = 4;\n        }\n      } else if (!(this || _global).rz.effectsSequence.length && !(this || _global).ry.effectsSequence.length && !(this || _global).rx.effectsSequence.length && !(this || _global).or.effectsSequence.length) {\n        (this || _global).pre.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n\n        (this || _global).appliedTransformations = 4;\n      }\n    }\n\n    function autoOrient() {//\n      // var prevP = this.getValueAtTime();\n    }\n\n    function addDynamicProperty(prop) {\n      this._addDynamicProperty(prop);\n\n      (this || _global).elem.addDynamicProperty(prop);\n\n      (this || _global)._isDirty = true;\n    }\n\n    function TransformProperty(elem, data, container) {\n      (this || _global).elem = elem;\n      (this || _global).frameId = -1;\n      (this || _global).propType = \"transform\";\n      (this || _global).data = data;\n      (this || _global).v = new Matrix(); // Precalculated matrix with non animated properties\n\n      (this || _global).pre = new Matrix();\n      (this || _global).appliedTransformations = 0;\n      this.initDynamicPropertyContainer(container || elem);\n\n      if (data.p && data.p.s) {\n        (this || _global).px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this || _global);\n        (this || _global).py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this || _global);\n\n        if (data.p.z) {\n          (this || _global).pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this || _global);\n        }\n      } else {\n        (this || _global).p = PropertyFactory.getProp(elem, data.p || {\n          k: [0, 0, 0]\n        }, 1, 0, this || _global);\n      }\n\n      if (data.rx) {\n        (this || _global).rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this || _global);\n        (this || _global).ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this || _global);\n        (this || _global).rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this || _global);\n\n        if (data.or.k[0].ti) {\n          var i;\n          var len = data.or.k.length;\n\n          for (i = 0; i < len; i += 1) {\n            data.or.k[i].to = null;\n            data.or.k[i].ti = null;\n          }\n        }\n\n        (this || _global).or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this || _global); // sh Indicates it needs to be capped between -180 and 180\n\n        (this || _global).or.sh = true;\n      } else {\n        (this || _global).r = PropertyFactory.getProp(elem, data.r || {\n          k: 0\n        }, 0, degToRads, this || _global);\n      }\n\n      if (data.sk) {\n        (this || _global).sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this || _global);\n        (this || _global).sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this || _global);\n      }\n\n      (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n        k: [0, 0, 0]\n      }, 1, 0, this || _global);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: [100, 100, 100]\n      }, 1, 0.01, this || _global); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n      if (data.o) {\n        (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n      } else {\n        (this || _global).o = {\n          _mdf: false,\n          v: 1\n        };\n      }\n\n      (this || _global)._isDirty = true;\n\n      if (!(this || _global).dynamicProperties.length) {\n        this.getValue(true);\n      }\n    }\n\n    TransformProperty.prototype = {\n      applyToMatrix: applyToMatrix,\n      getValue: processKeys,\n      precalculateMatrix: precalculateMatrix,\n      autoOrient: autoOrient\n    };\n    extendPrototype([DynamicPropertyContainer], TransformProperty);\n    TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n    TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n    function getTransformProperty(elem, data, container) {\n      return new TransformProperty(elem, data, container);\n    }\n\n    return {\n      getTransformProperty: getTransformProperty\n    };\n  }();\n  /* global createSizedArray, createSizedArray, pointPool */\n\n\n  function ShapePath() {\n    (this || _global).c = false;\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 8;\n    (this || _global).v = createSizedArray((this || _global)._maxLength);\n    (this || _global).o = createSizedArray((this || _global)._maxLength);\n    (this || _global).i = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapePath.prototype.setPathData = function (closed, len) {\n    (this || _global).c = closed;\n    this.setLength(len);\n    var i = 0;\n\n    while (i < len) {\n      (this || _global).v[i] = pointPool.newElement();\n      (this || _global).o[i] = pointPool.newElement();\n      (this || _global).i[i] = pointPool.newElement();\n      i += 1;\n    }\n  };\n\n  ShapePath.prototype.setLength = function (len) {\n    while ((this || _global)._maxLength < len) {\n      this.doubleArrayLength();\n    }\n\n    (this || _global)._length = len;\n  };\n\n  ShapePath.prototype.doubleArrayLength = function () {\n    (this || _global).v = (this || _global).v.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).i = (this || _global).i.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).o = (this || _global).o.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global)._maxLength *= 2;\n  };\n\n  ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n    var arr;\n    (this || _global)._length = Math.max((this || _global)._length, pos + 1);\n\n    if ((this || _global)._length >= (this || _global)._maxLength) {\n      this.doubleArrayLength();\n    }\n\n    switch (type) {\n      case \"v\":\n        arr = (this || _global).v;\n        break;\n\n      case \"i\":\n        arr = (this || _global).i;\n        break;\n\n      case \"o\":\n        arr = (this || _global).o;\n        break;\n\n      default:\n        arr = [];\n        break;\n    }\n\n    if (!arr[pos] || arr[pos] && !replace) {\n      arr[pos] = pointPool.newElement();\n    }\n\n    arr[pos][0] = x;\n    arr[pos][1] = y;\n  };\n\n  ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n    this.setXYAt(vX, vY, \"v\", pos, replace);\n    this.setXYAt(oX, oY, \"o\", pos, replace);\n    this.setXYAt(iX, iY, \"i\", pos, replace);\n  };\n\n  ShapePath.prototype.reverse = function () {\n    var newPath = new ShapePath();\n    newPath.setPathData((this || _global).c, (this || _global)._length);\n    var vertices = (this || _global).v;\n    var outPoints = (this || _global).o;\n    var inPoints = (this || _global).i;\n    var init = 0;\n\n    if ((this || _global).c) {\n      newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n      init = 1;\n    }\n\n    var cnt = (this || _global)._length - 1;\n    var len = (this || _global)._length;\n    var i;\n\n    for (i = init; i < len; i += 1) {\n      newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n      cnt -= 1;\n    }\n\n    return newPath;\n  };\n  /* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n    shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\n\n  /* exported ShapePropertyFactory */\n\n\n  var ShapePropertyFactory = function () {\n    var initFrame = -999999;\n\n    function interpolateShape(frameNum, previousValue, caching) {\n      var iterationIndex = caching.lastIndex;\n      var keyPropS;\n      var keyPropE;\n      var isHold;\n      var j;\n      var k;\n      var jLen;\n      var kLen;\n      var perc;\n      var vertexValue;\n      var kf = (this || _global).keyframes;\n\n      if (frameNum < kf[0].t - (this || _global).offsetTime) {\n        keyPropS = kf[0].s[0];\n        isHold = true;\n        iterationIndex = 0;\n      } else if (frameNum >= kf[kf.length - 1].t - (this || _global).offsetTime) {\n        keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n        /* if(kf[kf.length - 1].s){\r\n                  keyPropS = kf[kf.length - 1].s[0];\r\n              }else{\r\n                  keyPropS = kf[kf.length - 2].e[0];\r\n              } */\n\n        isHold = true;\n      } else {\n        var i = iterationIndex;\n        var len = kf.length - 1;\n        var flag = true;\n        var keyData;\n        var nextKeyData;\n\n        while (flag) {\n          keyData = kf[i];\n          nextKeyData = kf[i + 1];\n\n          if (nextKeyData.t - (this || _global).offsetTime > frameNum) {\n            break;\n          }\n\n          if (i < len - 1) {\n            i += 1;\n          } else {\n            flag = false;\n          }\n        }\n\n        isHold = keyData.h === 1;\n        iterationIndex = i;\n\n        if (!isHold) {\n          if (frameNum >= nextKeyData.t - (this || _global).offsetTime) {\n            perc = 1;\n          } else if (frameNum < keyData.t - (this || _global).offsetTime) {\n            perc = 0;\n          } else {\n            var fnc;\n\n            if (keyData.__fnct) {\n              fnc = keyData.__fnct;\n            } else {\n              fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n              keyData.__fnct = fnc;\n            }\n\n            perc = fnc((frameNum - (keyData.t - (this || _global).offsetTime)) / (nextKeyData.t - (this || _global).offsetTime - (keyData.t - (this || _global).offsetTime)));\n          }\n\n          keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n        }\n\n        keyPropS = keyData.s[0];\n      }\n\n      jLen = previousValue._length;\n      kLen = keyPropS.i[0].length;\n      caching.lastIndex = iterationIndex;\n\n      for (j = 0; j < jLen; j += 1) {\n        for (k = 0; k < kLen; k += 1) {\n          vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n          previousValue.i[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n          previousValue.o[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n          previousValue.v[j][k] = vertexValue;\n        }\n      }\n    }\n\n    function interpolateShapeCurrentTime() {\n      var frameNum = (this || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n      var lastFrame = (this || _global)._caching.lastFrame;\n\n      if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n        /// /\n        (this || _global)._caching.lastIndex = lastFrame < frameNum ? (this || _global)._caching.lastIndex : 0;\n        this.interpolateShape(frameNum, (this || _global).pv, (this || _global)._caching); /// /\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function resetShape() {\n      (this || _global).paths = (this || _global).localShapeCollection;\n    }\n\n    function shapesEqual(shape1, shape2) {\n      if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n        return false;\n      }\n\n      var i;\n      var len = shape1._length;\n\n      for (i = 0; i < len; i += 1) {\n        if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n\n    function setVValue(newPath) {\n      if (!shapesEqual((this || _global).v, newPath)) {\n        (this || _global).v = shapePool.clone(newPath);\n\n        (this || _global).localShapeCollection.releaseShapes();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global)._mdf = true;\n        (this || _global).paths = (this || _global).localShapeCollection;\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if (!(this || _global).effectsSequence.length) {\n        (this || _global)._mdf = false;\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = false;\n      var finalValue;\n\n      if ((this || _global).kf) {\n        finalValue = (this || _global).pv;\n      } else if ((this || _global).data.ks) {\n        finalValue = (this || _global).data.ks.k;\n      } else {\n        finalValue = (this || _global).data.pt.k;\n      }\n\n      var i;\n      var len = (this || _global).effectsSequence.length;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function ShapeProperty(elem, data, type) {\n      (this || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).container = elem;\n      (this || _global).elem = elem;\n      (this || _global).data = data;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global)._mdf = false;\n      var pathData = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).v = shapePool.clone(pathData);\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).reset = resetShape;\n      (this || _global).effectsSequence = [];\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\n    }\n\n    ShapeProperty.prototype.interpolateShape = interpolateShape;\n    ShapeProperty.prototype.getValue = processEffectsSequence;\n    ShapeProperty.prototype.setVValue = setVValue;\n    ShapeProperty.prototype.addEffect = addEffect;\n\n    function KeyframedShapeProperty(elem, data, type) {\n      (this || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).elem = elem;\n      (this || _global).container = elem;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).keyframes = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      var len = (this || _global).keyframes[0].s[0].i.length;\n      (this || _global).v = shapePool.newElement();\n\n      (this || _global).v.setPathData((this || _global).keyframes[0].s[0].c, len);\n\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).lastFrame = initFrame;\n      (this || _global).reset = resetShape;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0\n      };\n      (this || _global).effectsSequence = [interpolateShapeCurrentTime.bind(this || _global)];\n    }\n\n    KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n    KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n    KeyframedShapeProperty.prototype.setVValue = setVValue;\n    KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n    var EllShapeProperty = function () {\n      var cPoint = roundCorner;\n\n      function EllShapePropertyFactory(elem, data) {\n        /* this.v = {\r\n                  v: createSizedArray(4),\r\n                  i: createSizedArray(4),\r\n                  o: createSizedArray(4),\r\n                  c: true\r\n              }; */\n        (this || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 4);\n\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).d = data.d;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertEllToPath();\n        }\n      }\n\n      EllShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertEllToPath();\n          }\n        },\n        convertEllToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var s0 = (this || _global).s.v[0] / 2;\n          var s1 = (this || _global).s.v[1] / 2;\n\n          var _cw = (this || _global).d !== 3;\n\n          var _v = (this || _global).v;\n          _v.v[0][0] = p0;\n          _v.v[0][1] = p1 - s1;\n          _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.v[1][1] = p1;\n          _v.v[2][0] = p0;\n          _v.v[2][1] = p1 + s1;\n          _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.v[3][1] = p1;\n          _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.i[0][1] = p1 - s1;\n          _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.i[1][1] = p1 - s1 * cPoint;\n          _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.i[2][1] = p1 + s1;\n          _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.i[3][1] = p1 + s1 * cPoint;\n          _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.o[0][1] = p1 - s1;\n          _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.o[1][1] = p1 + s1 * cPoint;\n          _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.o[2][1] = p1 + s1;\n          _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.o[3][1] = p1 - s1 * cPoint;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n      return EllShapePropertyFactory;\n    }();\n\n    var StarShapeProperty = function () {\n      function StarShapePropertyFactory(elem, data) {\n        (this || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 0);\n\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).data = data;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n\n        if (data.sy === 1) {\n          (this || _global).ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this || _global);\n          (this || _global).is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this || _global);\n          (this || _global).convertToPath = (this || _global).convertStarToPath;\n        } else {\n          (this || _global).convertToPath = (this || _global).convertPolygonToPath;\n        }\n\n        (this || _global).pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this || _global);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this || _global);\n        (this || _global).or = PropertyFactory.getProp(elem, data.or, 0, 0, this || _global);\n        (this || _global).os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this || _global);\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertToPath();\n        }\n      }\n\n      StarShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertToPath();\n          }\n        },\n        convertStarToPath: function () {\n          var numPts = Math.floor((this || _global).pt.v) * 2;\n          var angle = Math.PI * 2 / numPts;\n          /* this.v.v.length = numPts;\r\n                  this.v.i.length = numPts;\r\n                  this.v.o.length = numPts; */\n\n          var longFlag = true;\n          var longRad = (this || _global).or.v;\n          var shortRad = (this || _global).ir.v;\n          var longRound = (this || _global).os.v;\n          var shortRound = (this || _global).is.v;\n          var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n          var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n          var i;\n          var rad;\n          var roundness;\n          var perimSegment;\n          var currentAng = -Math.PI / 2;\n          currentAng += (this || _global).r.v;\n          var dir = (this || _global).data.d === 3 ? -1 : 1;\n          (this || _global).v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            rad = longFlag ? longRad : shortRad;\n            roundness = longFlag ? longRound : shortRound;\n            perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +(this || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n            /* this.v.v[i] = [x,y];\r\n                      this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n                      this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n                      this.v._length = numPts; */\n\n\n            longFlag = !longFlag;\n            currentAng += angle * dir;\n          }\n        },\n        convertPolygonToPath: function () {\n          var numPts = Math.floor((this || _global).pt.v);\n          var angle = Math.PI * 2 / numPts;\n          var rad = (this || _global).or.v;\n          var roundness = (this || _global).os.v;\n          var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n          var i;\n          var currentAng = -Math.PI * 0.5;\n          var dir = (this || _global).data.d === 3 ? -1 : 1;\n          currentAng += (this || _global).r.v;\n          (this || _global).v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +(this || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n\n            currentAng += angle * dir;\n          }\n\n          (this || _global).paths.length = 0;\n          (this || _global).paths[0] = (this || _global).v;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n      return StarShapePropertyFactory;\n    }();\n\n    var RectShapeProperty = function () {\n      function RectShapePropertyFactory(elem, data) {\n        (this || _global).v = shapePool.newElement();\n        (this || _global).v.c = true;\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertRectToPath();\n        }\n      }\n\n      RectShapePropertyFactory.prototype = {\n        convertRectToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var v0 = (this || _global).s.v[0] / 2;\n          var v1 = (this || _global).s.v[1] / 2;\n          var round = bmMin(v0, v1, (this || _global).r.v);\n          var cPoint = round * (1 - roundCorner);\n          (this || _global).v._length = 0;\n\n          if ((this || _global).d === 2 || (this || _global).d === 1) {\n            (this || _global).v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n\n            (this || _global).v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n            if (round !== 0) {\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n            }\n          } else {\n            (this || _global).v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n            if (round !== 0) {\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n            }\n          }\n        },\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertRectToPath();\n          }\n        },\n        reset: resetShape\n      };\n      extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n      return RectShapePropertyFactory;\n    }();\n\n    function getShapeProp(elem, data, type) {\n      var prop;\n\n      if (type === 3 || type === 4) {\n        var dataProp = type === 3 ? data.pt : data.ks;\n        var keys = dataProp.k;\n\n        if (keys.length) {\n          prop = new KeyframedShapeProperty(elem, data, type);\n        } else {\n          prop = new ShapeProperty(elem, data, type);\n        }\n      } else if (type === 5) {\n        prop = new RectShapeProperty(elem, data);\n      } else if (type === 6) {\n        prop = new EllShapeProperty(elem, data);\n      } else if (type === 7) {\n        prop = new StarShapeProperty(elem, data);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    }\n\n    function getConstructorFunction() {\n      return ShapeProperty;\n    }\n\n    function getKeyframedConstructorFunction() {\n      return KeyframedShapeProperty;\n    }\n\n    var ob = {};\n    ob.getShapeProp = getShapeProp;\n    ob.getConstructorFunction = getConstructorFunction;\n    ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n    return ob;\n  }();\n  /* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\n\n  /* exported ShapeModifiers */\n\n\n  var ShapeModifiers = function () {\n    var ob = {};\n    var modifiers = {};\n    ob.registerModifier = registerModifier;\n    ob.getModifier = getModifier;\n\n    function registerModifier(nm, factory) {\n      if (!modifiers[nm]) {\n        modifiers[nm] = factory;\n      }\n    }\n\n    function getModifier(nm, elem, data) {\n      return new modifiers[nm](elem, data);\n    }\n\n    return ob;\n  }();\n\n  function ShapeModifier() {}\n\n  ShapeModifier.prototype.initModifierProperties = function () {};\n\n  ShapeModifier.prototype.addShapeToModifier = function () {};\n\n  ShapeModifier.prototype.addShape = function (data) {\n    if (!(this || _global).closed) {\n      // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n      data.sh.container.addDynamicProperty(data.sh);\n      var shapeData = {\n        shape: data.sh,\n        data: data,\n        localShapeCollection: shapeCollectionPool.newShapeCollection()\n      };\n\n      (this || _global).shapes.push(shapeData);\n\n      this.addShapeToModifier(shapeData);\n\n      if ((this || _global)._isAnimated) {\n        data.setAsAnimated();\n      }\n    }\n  };\n\n  ShapeModifier.prototype.init = function (elem, data) {\n    (this || _global).shapes = [];\n    (this || _global).elem = elem;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, data);\n    (this || _global).frameId = initialDefaultFrame;\n    (this || _global).closed = false;\n    (this || _global).k = false;\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  ShapeModifier.prototype.processKeys = function () {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  extendPrototype([DynamicPropertyContainer], ShapeModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\n\n  function TrimModifier() {}\n\n  extendPrototype([ShapeModifier], TrimModifier);\n\n  TrimModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0, this || _global);\n    (this || _global).sValue = 0;\n    (this || _global).eValue = 0;\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).m = data.m;\n    (this || _global)._isAnimated = !!(this || _global).s.effectsSequence.length || !!(this || _global).e.effectsSequence.length || !!(this || _global).o.effectsSequence.length;\n  };\n\n  TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n    shapeData.pathsData = [];\n  };\n\n  TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n    var segments = [];\n\n    if (e <= 1) {\n      segments.push({\n        s: s,\n        e: e\n      });\n    } else if (s >= 1) {\n      segments.push({\n        s: s - 1,\n        e: e - 1\n      });\n    } else {\n      segments.push({\n        s: s,\n        e: 1\n      });\n      segments.push({\n        s: 0,\n        e: e - 1\n      });\n    }\n\n    var shapeSegments = [];\n    var i;\n    var len = segments.length;\n    var segmentOb;\n\n    for (i = 0; i < len; i += 1) {\n      segmentOb = segments[i];\n\n      if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n        var shapeS;\n        var shapeE;\n\n        if (segmentOb.s * totalModifierLength <= addedLength) {\n          shapeS = 0;\n        } else {\n          shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n          shapeE = 1;\n        } else {\n          shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        shapeSegments.push([shapeS, shapeE]);\n      }\n    }\n\n    if (!shapeSegments.length) {\n      shapeSegments.push([0, 0]);\n    }\n\n    return shapeSegments;\n  };\n\n  TrimModifier.prototype.releasePathsData = function (pathsData) {\n    var i;\n    var len = pathsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      segmentsLengthPool.release(pathsData[i]);\n    }\n\n    pathsData.length = 0;\n    return pathsData;\n  };\n\n  TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n    var s;\n    var e;\n\n    if ((this || _global)._mdf || _isFirstFrame) {\n      var o = (this || _global).o.v % 360 / 360;\n\n      if (o < 0) {\n        o += 1;\n      }\n\n      if ((this || _global).s.v > 1) {\n        s = 1 + o;\n      } else if ((this || _global).s.v < 0) {\n        s = 0 + o;\n      } else {\n        s = (this || _global).s.v + o;\n      }\n\n      if ((this || _global).e.v > 1) {\n        e = 1 + o;\n      } else if ((this || _global).e.v < 0) {\n        e = 0 + o;\n      } else {\n        e = (this || _global).e.v + o;\n      }\n\n      if (s > e) {\n        var _s = s;\n        s = e;\n        e = _s;\n      }\n\n      s = Math.round(s * 10000) * 0.0001;\n      e = Math.round(e * 10000) * 0.0001;\n      (this || _global).sValue = s;\n      (this || _global).eValue = e;\n    } else {\n      s = (this || _global).sValue;\n      e = (this || _global).eValue;\n    }\n\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var pathsData;\n    var pathData;\n    var totalShapeLength;\n    var totalModifierLength = 0;\n\n    if (e === s) {\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapes[i].localShapeCollection.releaseShapes();\n\n        (this || _global).shapes[i].shape._mdf = true;\n        (this || _global).shapes[i].shape.paths = (this || _global).shapes[i].localShapeCollection;\n\n        if ((this || _global)._mdf) {\n          (this || _global).shapes[i].pathsData.length = 0;\n        }\n      }\n    } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n      var segments = [];\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n        if (!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame && (this || _global).m !== 2) {\n          shapeData.shape.paths = shapeData.localShapeCollection;\n        } else {\n          shapePaths = shapeData.shape.paths;\n          jLen = shapePaths._length;\n          totalShapeLength = 0;\n\n          if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n            totalShapeLength = shapeData.totalShapeLength;\n          } else {\n            pathsData = this.releasePathsData(shapeData.pathsData);\n\n            for (j = 0; j < jLen; j += 1) {\n              pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n              pathsData.push(pathData);\n              totalShapeLength += pathData.totalLength;\n            }\n\n            shapeData.totalShapeLength = totalShapeLength;\n            shapeData.pathsData = pathsData;\n          }\n\n          totalModifierLength += totalShapeLength;\n          shapeData.shape._mdf = true;\n        }\n      }\n\n      var shapeS = s;\n      var shapeE = e;\n      var addedLength = 0;\n      var edges;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shapeData = (this || _global).shapes[i];\n\n        if (shapeData.shape._mdf) {\n          localShapeCollection = shapeData.localShapeCollection;\n          localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n          if ((this || _global).m === 2 && len > 1) {\n            edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n            addedLength += shapeData.totalShapeLength;\n          } else {\n            edges = [[shapeS, shapeE]];\n          }\n\n          jLen = edges.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            shapeS = edges[j][0];\n            shapeE = edges[j][1];\n            segments.length = 0;\n\n            if (shapeE <= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength * shapeE\n              });\n            } else if (shapeS >= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * (shapeS - 1),\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            } else {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength\n              });\n              segments.push({\n                s: 0,\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            }\n\n            var newShapesData = this.addShapes(shapeData, segments[0]);\n\n            if (segments[0].s !== segments[0].e) {\n              if (segments.length > 1) {\n                var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n                if (lastShapeInCollection.c) {\n                  var lastShape = newShapesData.pop();\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n                } else {\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1]);\n                }\n              }\n\n              this.addPaths(newShapesData, localShapeCollection);\n            }\n          }\n\n          shapeData.shape.paths = localShapeCollection;\n        }\n      }\n    } else if ((this || _global)._mdf) {\n      for (i = 0; i < len; i += 1) {\n        // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n        // Don't remove this even if it's losing cached info.\n        (this || _global).shapes[i].pathsData.length = 0;\n        (this || _global).shapes[i].shape._mdf = true;\n      }\n    }\n  };\n\n  TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n    var i;\n    var len = newPaths.length;\n\n    for (i = 0; i < len; i += 1) {\n      localShapeCollection.addShape(newPaths[i]);\n    }\n  };\n\n  TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n    shapePath.setXYAt(pt2[0], pt2[1], \"o\", pos);\n    shapePath.setXYAt(pt3[0], pt3[1], \"i\", pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(pt1[0], pt1[1], \"v\", pos);\n    }\n\n    shapePath.setXYAt(pt4[0], pt4[1], \"v\", pos + 1);\n  };\n\n  TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n    shapePath.setXYAt(points[1], points[5], \"o\", pos);\n    shapePath.setXYAt(points[2], points[6], \"i\", pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(points[0], points[4], \"v\", pos);\n    }\n\n    shapePath.setXYAt(points[3], points[7], \"v\", pos + 1);\n  };\n\n  TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n    var pathsData = shapeData.pathsData;\n    var shapePaths = shapeData.shape.paths.shapes;\n    var i;\n    var len = shapeData.shape.paths._length;\n    var j;\n    var jLen;\n    var addedLength = 0;\n    var currentLengthData;\n    var segmentCount;\n    var lengths;\n    var segment;\n    var shapes = [];\n    var initPos;\n    var newShape = true;\n\n    if (!shapePath) {\n      shapePath = shapePool.newElement();\n      segmentCount = 0;\n      initPos = 0;\n    } else {\n      segmentCount = shapePath._length;\n      initPos = shapePath._length;\n    }\n\n    shapes.push(shapePath);\n\n    for (i = 0; i < len; i += 1) {\n      lengths = pathsData[i].lengths;\n      shapePath.c = shapePaths[i].c;\n      jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n      for (j = 1; j < jLen; j += 1) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n          addedLength += currentLengthData.addedLength;\n          shapePath.c = false;\n        } else if (addedLength > shapeSegment.e) {\n          shapePath.c = false;\n          break;\n        } else {\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n\n          addedLength += currentLengthData.addedLength;\n          segmentCount += 1;\n        }\n      }\n\n      if (shapePaths[i].c && lengths.length) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength <= shapeSegment.e) {\n          var segmentLength = lengths[j - 1].addedLength;\n\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n        } else {\n          shapePath.c = false;\n        }\n\n        addedLength += currentLengthData.addedLength;\n        segmentCount += 1;\n      }\n\n      if (shapePath._length) {\n        shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], \"i\", initPos);\n        shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], \"o\", shapePath._length - 1);\n      }\n\n      if (addedLength > shapeSegment.e) {\n        break;\n      }\n\n      if (i < len - 1) {\n        shapePath = shapePool.newElement();\n        newShape = true;\n        shapes.push(shapePath);\n        segmentCount = 0;\n      }\n    }\n\n    return shapes;\n  };\n\n  ShapeModifiers.registerModifier(\"tm\", TrimModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\n\n  function RoundCornersModifier() {}\n\n  extendPrototype([ShapeModifier], RoundCornersModifier);\n\n  RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).rd = PropertyFactory.getProp(elem, data.r, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).rd.effectsSequence.length;\n  };\n\n  RoundCornersModifier.prototype.processPath = function (path, round) {\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var i;\n    var len = path._length;\n    var currentV;\n    var currentI;\n    var currentO;\n    var closerV;\n    var distance;\n    var newPosPerc;\n    var index = 0;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < len; i += 1) {\n      currentV = path.v[i];\n      currentO = path.o[i];\n      currentI = path.i[i];\n\n      if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n        if ((i === 0 || i === len - 1) && !path.c) {\n          clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n          /* clonedPath.v[index] = currentV;\r\n                  clonedPath.o[index] = currentO;\r\n                  clonedPath.i[index] = currentI; */\n\n          index += 1;\n        } else {\n          if (i === 0) {\n            closerV = path.v[len - 1];\n          } else {\n            closerV = path.v[i - 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = iX;\n          iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n          vY = iY;\n          oX = vX - (vX - currentV[0]) * roundCorner;\n          oY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n\n          if (i === len - 1) {\n            closerV = path.v[0];\n          } else {\n            closerV = path.v[i + 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = oX;\n          oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n          vY = oY;\n          iX = vX - (vX - currentV[0]) * roundCorner;\n          iY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n        }\n      } else {\n        clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n        index += 1;\n      }\n    }\n\n    return clonedPath;\n  };\n\n  RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var rd = (this || _global).rd.v;\n\n    if (rd !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!(this || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"rd\", RoundCornersModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\n\n  function PuckerAndBloatModifier() {}\n\n  extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n  PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).amount = PropertyFactory.getProp(elem, data.a, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).amount.effectsSequence.length;\n  };\n\n  PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n    var percent = amount / 100;\n    var centerPoint = [0, 0];\n    var pathLength = path._length;\n    var i = 0;\n\n    for (i = 0; i < pathLength; i += 1) {\n      centerPoint[0] += path.v[i][0];\n      centerPoint[1] += path.v[i][1];\n    }\n\n    centerPoint[0] /= pathLength;\n    centerPoint[1] /= pathLength;\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < pathLength; i += 1) {\n      vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n      vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n      oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n      oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n      iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n      iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n      clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n    }\n\n    return clonedPath;\n  };\n\n  PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var amount = (this || _global).amount.v;\n\n    if (amount !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!(this || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"pb\", PuckerAndBloatModifier);\n  /* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\n\n  function RepeaterModifier() {}\n\n  extendPrototype([ShapeModifier], RepeaterModifier);\n\n  RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 0, null, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, null, this || _global);\n    (this || _global).tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this || _global);\n    (this || _global).so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this || _global);\n    (this || _global).eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this || _global);\n    (this || _global).data = data;\n\n    if (!(this || _global).dynamicProperties.length) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = !!(this || _global).dynamicProperties.length;\n    (this || _global).pMatrix = new Matrix();\n    (this || _global).rMatrix = new Matrix();\n    (this || _global).sMatrix = new Matrix();\n    (this || _global).tMatrix = new Matrix();\n    (this || _global).matrix = new Matrix();\n  };\n\n  RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n    var dir = inv ? -1 : 1;\n    var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n    var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n    pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n    rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    rMatrix.rotate(-transform.r.v * dir * perc);\n    rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n    sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n    sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n  };\n\n  RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n    (this || _global).elem = elem;\n    (this || _global).arr = arr;\n    (this || _global).pos = pos;\n    (this || _global).elemsData = elemsData;\n    (this || _global)._currentCopies = 0;\n    (this || _global)._elements = [];\n    (this || _global)._groups = [];\n    (this || _global).frameId = -1;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, arr[pos]);\n\n    while (pos > 0) {\n      pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n      (this || _global)._elements.unshift(arr[pos]);\n    }\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  RepeaterModifier.prototype.resetElements = function (elements) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._processed = false;\n\n      if (elements[i].ty === \"gr\") {\n        this.resetElements(elements[i].it);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.cloneElements = function (elements) {\n    var newElements = JSON.parse(JSON.stringify(elements));\n    this.resetElements(newElements);\n    return newElements;\n  };\n\n  RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._render = renderFlag;\n\n      if (elements[i].ty === \"gr\") {\n        this.changeGroupRender(elements[i].it, renderFlag);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n    var items;\n    var itemsTransform;\n    var i;\n    var dir;\n    var cont;\n    var hasReloaded = false;\n\n    if ((this || _global)._mdf || _isFirstFrame) {\n      var copies = Math.ceil((this || _global).c.v);\n\n      if ((this || _global)._groups.length < copies) {\n        while ((this || _global)._groups.length < copies) {\n          var group = {\n            it: this.cloneElements((this || _global)._elements),\n            ty: \"gr\"\n          };\n          group.it.push({\n            a: {\n              a: 0,\n              ix: 1,\n              k: [0, 0]\n            },\n            nm: \"Transform\",\n            o: {\n              a: 0,\n              ix: 7,\n              k: 100\n            },\n            p: {\n              a: 0,\n              ix: 2,\n              k: [0, 0]\n            },\n            r: {\n              a: 1,\n              ix: 6,\n              k: [{\n                s: 0,\n                e: 0,\n                t: 0\n              }, {\n                s: 0,\n                e: 0,\n                t: 1\n              }]\n            },\n            s: {\n              a: 0,\n              ix: 3,\n              k: [100, 100]\n            },\n            sa: {\n              a: 0,\n              ix: 5,\n              k: 0\n            },\n            sk: {\n              a: 0,\n              ix: 4,\n              k: 0\n            },\n            ty: \"tr\"\n          });\n\n          (this || _global).arr.splice(0, 0, group);\n\n          (this || _global)._groups.splice(0, 0, group);\n\n          (this || _global)._currentCopies += 1;\n        }\n\n        (this || _global).elem.reloadShapes();\n\n        hasReloaded = true;\n      }\n\n      cont = 0;\n      var renderFlag;\n\n      for (i = 0; i <= (this || _global)._groups.length - 1; i += 1) {\n        renderFlag = cont < copies;\n        (this || _global)._groups[i]._render = renderFlag;\n        this.changeGroupRender((this || _global)._groups[i].it, renderFlag);\n\n        if (!renderFlag) {\n          var elems = (this || _global).elemsData[i].it;\n          var transformData = elems[elems.length - 1];\n\n          if (transformData.transform.op.v !== 0) {\n            transformData.transform.op._mdf = true;\n            transformData.transform.op.v = 0;\n          } else {\n            transformData.transform.op._mdf = false;\n          }\n        }\n\n        cont += 1;\n      }\n\n      (this || _global)._currentCopies = copies; /// /\n\n      var offset = (this || _global).o.v;\n      var offsetModulo = offset % 1;\n      var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n      var pProps = (this || _global).pMatrix.props;\n      var rProps = (this || _global).rMatrix.props;\n      var sProps = (this || _global).sMatrix.props;\n\n      (this || _global).pMatrix.reset();\n\n      (this || _global).rMatrix.reset();\n\n      (this || _global).sMatrix.reset();\n\n      (this || _global).tMatrix.reset();\n\n      (this || _global).matrix.reset();\n\n      var iteration = 0;\n\n      if (offset > 0) {\n        while (iteration < roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          iteration += 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, offsetModulo, false);\n          iteration += offsetModulo;\n        }\n      } else if (offset < 0) {\n        while (iteration > roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, true);\n          iteration -= 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, -offsetModulo, true);\n          iteration -= offsetModulo;\n        }\n      }\n\n      i = (this || _global).data.m === 1 ? 0 : (this || _global)._currentCopies - 1;\n      dir = (this || _global).data.m === 1 ? 1 : -1;\n      cont = (this || _global)._currentCopies;\n      var j;\n      var jLen;\n\n      while (cont) {\n        items = (this || _global).elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        jLen = itemsTransform.length;\n        items[items.length - 1].transform.mProps._mdf = true;\n        items[items.length - 1].transform.op._mdf = true;\n        items[items.length - 1].transform.op.v = (this || _global)._currentCopies === 1 ? (this || _global).so.v : (this || _global).so.v + ((this || _global).eo.v - (this || _global).so.v) * (i / ((this || _global)._currentCopies - 1));\n\n        if (iteration !== 0) {\n          if (i !== 0 && dir === 1 || i !== (this || _global)._currentCopies - 1 && dir === -1) {\n            this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          }\n\n          (this || _global).matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n\n          (this || _global).matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n\n          (this || _global).matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = (this || _global).matrix.props[j];\n          }\n\n          (this || _global).matrix.reset();\n        } else {\n          (this || _global).matrix.reset();\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = (this || _global).matrix.props[j];\n          }\n        }\n\n        iteration += 1;\n        cont -= 1;\n        i += dir;\n      }\n    } else {\n      cont = (this || _global)._currentCopies;\n      i = 0;\n      dir = 1;\n\n      while (cont) {\n        items = (this || _global).elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        items[items.length - 1].transform.mProps._mdf = false;\n        items[items.length - 1].transform.op._mdf = false;\n        cont -= 1;\n        i += dir;\n      }\n    }\n\n    return hasReloaded;\n  };\n\n  RepeaterModifier.prototype.addShape = function () {};\n\n  ShapeModifiers.registerModifier(\"rp\", RepeaterModifier);\n  /* global createSizedArray, shapePool */\n\n  function ShapeCollection() {\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 4;\n    (this || _global).shapes = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapeCollection.prototype.addShape = function (shapeData) {\n    if ((this || _global)._length === (this || _global)._maxLength) {\n      (this || _global).shapes = (this || _global).shapes.concat(createSizedArray((this || _global)._maxLength));\n      (this || _global)._maxLength *= 2;\n    }\n\n    (this || _global).shapes[(this || _global)._length] = shapeData;\n    (this || _global)._length += 1;\n  };\n\n  ShapeCollection.prototype.releaseShapes = function () {\n    var i;\n\n    for (i = 0; i < (this || _global)._length; i += 1) {\n      shapePool.release((this || _global).shapes[i]);\n    }\n\n    (this || _global)._length = 0;\n  };\n  /* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function DashProperty(elem, data, renderer, container) {\n    (this || _global).elem = elem;\n    (this || _global).frameId = -1;\n    (this || _global).dataProps = createSizedArray(data.length);\n    (this || _global).renderer = renderer;\n    (this || _global).k = false;\n    (this || _global).dashStr = \"\";\n    (this || _global).dashArray = createTypedArray(\"float32\", data.length ? data.length - 1 : 0);\n    (this || _global).dashoffset = createTypedArray(\"float32\", 1);\n    this.initDynamicPropertyContainer(container);\n    var i;\n    var len = data.length || 0;\n    var prop;\n\n    for (i = 0; i < len; i += 1) {\n      prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this || _global);\n      (this || _global).k = prop.k || (this || _global).k;\n      (this || _global).dataProps[i] = {\n        n: data[i].n,\n        p: prop\n      };\n    }\n\n    if (!(this || _global).k) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = (this || _global).k;\n  }\n\n  DashProperty.prototype.getValue = function (forceRender) {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId && !forceRender) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n    (this || _global)._mdf = (this || _global)._mdf || forceRender;\n\n    if ((this || _global)._mdf) {\n      var i = 0;\n      var len = (this || _global).dataProps.length;\n\n      if ((this || _global).renderer === \"svg\") {\n        (this || _global).dashStr = \"\";\n      }\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).dataProps[i].n !== \"o\") {\n          if ((this || _global).renderer === \"svg\") {\n            (this || _global).dashStr += \" \" + (this || _global).dataProps[i].p.v;\n          } else {\n            (this || _global).dashArray[i] = (this || _global).dataProps[i].p.v;\n          }\n        } else {\n          (this || _global).dashoffset[0] = (this || _global).dataProps[i].p.v;\n        }\n      }\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], DashProperty);\n  /* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function GradientProperty(elem, data, container) {\n    (this || _global).data = data;\n    (this || _global).c = createTypedArray(\"uint8c\", data.p * 4);\n    var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n    (this || _global).o = createTypedArray(\"float32\", cLength);\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n    (this || _global)._collapsable = this.checkCollapsable();\n    (this || _global)._hasOpacity = cLength;\n    this.initDynamicPropertyContainer(container);\n    (this || _global).prop = PropertyFactory.getProp(elem, data.k, 1, null, this || _global);\n    (this || _global).k = (this || _global).prop.k;\n    this.getValue(true);\n  }\n\n  GradientProperty.prototype.comparePoints = function (values, points) {\n    var i = 0;\n    var len = (this || _global).o.length / 2;\n    var diff;\n\n    while (i < len) {\n      diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n      if (diff > 0.01) {\n        return false;\n      }\n\n      i += 1;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.checkCollapsable = function () {\n    if ((this || _global).o.length / 2 !== (this || _global).c.length / 4) {\n      return false;\n    }\n\n    if ((this || _global).data.k.k[0].s) {\n      var i = 0;\n      var len = (this || _global).data.k.k.length;\n\n      while (i < len) {\n        if (!this.comparePoints((this || _global).data.k.k[i].s, (this || _global).data.p)) {\n          return false;\n        }\n\n        i += 1;\n      }\n    } else if (!this.comparePoints((this || _global).data.k.k, (this || _global).data.p)) {\n      return false;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.getValue = function (forceRender) {\n    (this || _global).prop.getValue();\n\n    (this || _global)._mdf = false;\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n\n    if ((this || _global).prop._mdf || forceRender) {\n      var i;\n      var len = (this || _global).data.p * 4;\n      var mult;\n      var val;\n\n      for (i = 0; i < len; i += 1) {\n        mult = i % 4 === 0 ? 100 : 255;\n        val = Math.round((this || _global).prop.v[i] * mult);\n\n        if ((this || _global).c[i] !== val) {\n          (this || _global).c[i] = val;\n          (this || _global)._cmdf = !forceRender;\n        }\n      }\n\n      if ((this || _global).o.length) {\n        len = (this || _global).prop.v.length;\n\n        for (i = (this || _global).data.p * 4; i < len; i += 1) {\n          mult = i % 2 === 0 ? 100 : 1;\n          val = i % 2 === 0 ? Math.round((this || _global).prop.v[i] * 100) : (this || _global).prop.v[i];\n\n          if ((this || _global).o[i - (this || _global).data.p * 4] !== val) {\n            (this || _global).o[i - (this || _global).data.p * 4] = val;\n            (this || _global)._omdf = !forceRender;\n          }\n        }\n      }\n\n      (this || _global)._mdf = !forceRender;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], GradientProperty);\n  /* exported buildShapeString */\n\n  var buildShapeString = function (pathNodes, length, closed, mat) {\n    if (length === 0) {\n      return \"\";\n    }\n\n    var _o = pathNodes.o;\n    var _i = pathNodes.i;\n    var _v = pathNodes.v;\n    var i;\n    var shapeString = \" M\" + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n    for (i = 1; i < length; i += 1) {\n      shapeString += \" C\" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + \" \" + mat.applyToPointStringified(_i[i][0], _i[i][1]) + \" \" + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n    }\n\n    if (closed && length) {\n      shapeString += \" C\" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + \" \" + mat.applyToPointStringified(_i[0][0], _i[0][1]) + \" \" + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n      shapeString += \"z\";\n    }\n\n    return shapeString;\n  };\n  /* global Howl */\n\n  /* exported audioControllerFactory */\n\n\n  var audioControllerFactory = function () {\n    function AudioController(audioFactory) {\n      (this || _global).audios = [];\n      (this || _global).audioFactory = audioFactory;\n      (this || _global)._volume = 1;\n      (this || _global)._isMuted = false;\n    }\n\n    AudioController.prototype = {\n      addAudio: function (audio) {\n        (this || _global).audios.push(audio);\n      },\n      pause: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].pause();\n        }\n      },\n      resume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].resume();\n        }\n      },\n      setRate: function (rateValue) {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].setRate(rateValue);\n        }\n      },\n      createAudio: function (assetPath) {\n        if ((this || _global).audioFactory) {\n          return this.audioFactory(assetPath);\n        }\n\n        if (Howl) {\n          return new Howl({\n            src: [assetPath]\n          });\n        }\n\n        return {\n          isPlaying: false,\n          play: function () {\n            (this || _global).isPlaying = true;\n          },\n          seek: function () {\n            (this || _global).isPlaying = false;\n          },\n          playing: function () {},\n          rate: function () {},\n          setVolume: function () {}\n        };\n      },\n      setAudioFactory: function (audioFactory) {\n        (this || _global).audioFactory = audioFactory;\n      },\n      setVolume: function (value) {\n        (this || _global)._volume = value;\n\n        this._updateVolume();\n      },\n      mute: function () {\n        (this || _global)._isMuted = true;\n\n        this._updateVolume();\n      },\n      unmute: function () {\n        (this || _global)._isMuted = false;\n\n        this._updateVolume();\n      },\n      getVolume: function () {\n        return (this || _global)._volume;\n      },\n      _updateVolume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].volume((this || _global)._volume * ((this || _global)._isMuted ? 0 : 1));\n        }\n      }\n    };\n    return function () {\n      return new AudioController();\n    };\n  }();\n  /* global createTag, createNS, isSafari, assetLoader */\n\n  /* exported ImagePreloader */\n\n\n  var ImagePreloader = function () {\n    var proxyImage = function () {\n      var canvas = createTag(\"canvas\");\n      canvas.width = 1;\n      canvas.height = 1;\n      var ctx = canvas.getContext(\"2d\");\n      ctx.fillStyle = \"rgba(0,0,0,0)\";\n      ctx.fillRect(0, 0, 1, 1);\n      return canvas;\n    }();\n\n    function imageLoaded() {\n      (this || _global).loadedAssets += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function footageLoaded() {\n      (this || _global).loadedFootagesCount += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function getAssetsPath(assetData, assetsPath, originalPath) {\n      var path = \"\";\n\n      if (assetData.e) {\n        path = assetData.p;\n      } else if (assetsPath) {\n        var imagePath = assetData.p;\n\n        if (imagePath.indexOf(\"images/\") !== -1) {\n          imagePath = imagePath.split(\"/\")[1];\n        }\n\n        path = assetsPath + imagePath;\n      } else {\n        path = originalPath;\n        path += assetData.u ? assetData.u : \"\";\n        path += assetData.p;\n      }\n\n      return path;\n    }\n\n    function testImageLoaded(img) {\n      var _count = 0;\n      var intervalId = setInterval(function () {\n        var box = img.getBBox();\n\n        if (box.width || _count > 500) {\n          this._imageLoaded();\n\n          clearInterval(intervalId);\n        }\n\n        _count += 1;\n      }.bind(this || _global), 50);\n    }\n\n    function createImageData(assetData) {\n      var path = getAssetsPath(assetData, (this || _global).assetsPath, (this || _global).path);\n      var img = createNS(\"image\");\n\n      if (isSafari) {\n        this.testImageLoaded(img);\n      } else {\n        img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      }\n\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), false);\n      img.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", path);\n\n      if ((this || _global)._elementHelper.append) {\n        (this || _global)._elementHelper.append(img);\n      } else {\n        (this || _global)._elementHelper.appendChild(img);\n      }\n\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createImgData(assetData) {\n      var path = getAssetsPath(assetData, (this || _global).assetsPath, (this || _global).path);\n      var img = createTag(\"img\");\n      img.crossOrigin = \"anonymous\";\n      img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), false);\n      img.src = path;\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createFootageData(data) {\n      var ob = {\n        assetData: data\n      };\n      var path = getAssetsPath(data, (this || _global).assetsPath, (this || _global).path);\n      assetLoader.load(path, function (footageData) {\n        ob.img = footageData;\n\n        this._footageLoaded();\n      }.bind(this || _global), function () {\n        ob.img = {};\n\n        this._footageLoaded();\n      }.bind(this || _global));\n      return ob;\n    }\n\n    function loadAssets(assets, cb) {\n      (this || _global).imagesLoadedCb = cb;\n      var i;\n      var len = assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (!assets[i].layers) {\n          if (!assets[i].t) {\n            (this || _global).totalImages += 1;\n\n            (this || _global).images.push(this._createImageData(assets[i]));\n          } else if (assets[i].t === 3) {\n            (this || _global).totalFootages += 1;\n\n            (this || _global).images.push(this.createFootageData(assets[i]));\n          }\n        }\n      }\n    }\n\n    function setPath(path) {\n      (this || _global).path = path || \"\";\n    }\n\n    function setAssetsPath(path) {\n      (this || _global).assetsPath = path || \"\";\n    }\n\n    function getAsset(assetData) {\n      var i = 0;\n      var len = (this || _global).images.length;\n\n      while (i < len) {\n        if ((this || _global).images[i].assetData === assetData) {\n          return (this || _global).images[i].img;\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function destroy() {\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).images.length = 0;\n    }\n\n    function loadedImages() {\n      return (this || _global).totalImages === (this || _global).loadedAssets;\n    }\n\n    function loadedFootages() {\n      return (this || _global).totalFootages === (this || _global).loadedFootagesCount;\n    }\n\n    function setCacheType(type, elementHelper) {\n      if (type === \"svg\") {\n        (this || _global)._elementHelper = elementHelper;\n        (this || _global)._createImageData = (this || _global).createImageData.bind(this || _global);\n      } else {\n        (this || _global)._createImageData = (this || _global).createImgData.bind(this || _global);\n      }\n    }\n\n    function ImagePreloaderFactory() {\n      (this || _global)._imageLoaded = imageLoaded.bind(this || _global);\n      (this || _global)._footageLoaded = footageLoaded.bind(this || _global);\n      (this || _global).testImageLoaded = testImageLoaded.bind(this || _global);\n      (this || _global).createFootageData = createFootageData.bind(this || _global);\n      (this || _global).assetsPath = \"\";\n      (this || _global).path = \"\";\n      (this || _global).totalImages = 0;\n      (this || _global).totalFootages = 0;\n      (this || _global).loadedAssets = 0;\n      (this || _global).loadedFootagesCount = 0;\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).images = [];\n    }\n\n    ImagePreloaderFactory.prototype = {\n      loadAssets: loadAssets,\n      setAssetsPath: setAssetsPath,\n      setPath: setPath,\n      loadedImages: loadedImages,\n      loadedFootages: loadedFootages,\n      destroy: destroy,\n      getAsset: getAsset,\n      createImgData: createImgData,\n      createImageData: createImageData,\n      imageLoaded: imageLoaded,\n      footageLoaded: footageLoaded,\n      setCacheType: setCacheType\n    };\n    return ImagePreloaderFactory;\n  }();\n  /* exported featureSupport */\n\n\n  var featureSupport = function () {\n    var ob = {\n      maskType: true\n    };\n\n    if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n      ob.maskType = false;\n    }\n\n    return ob;\n  }();\n  /* global createNS */\n\n  /* exported filtersFactory */\n\n\n  var filtersFactory = function () {\n    var ob = {};\n    ob.createFilter = createFilter;\n    ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n    function createFilter(filId, skipCoordinates) {\n      var fil = createNS(\"filter\");\n      fil.setAttribute(\"id\", filId);\n\n      if (skipCoordinates !== true) {\n        fil.setAttribute(\"filterUnits\", \"objectBoundingBox\");\n        fil.setAttribute(\"x\", \"0%\");\n        fil.setAttribute(\"y\", \"0%\");\n        fil.setAttribute(\"width\", \"100%\");\n        fil.setAttribute(\"height\", \"100%\");\n      }\n\n      return fil;\n    }\n\n    function createAlphaToLuminanceFilter() {\n      var feColorMatrix = createNS(\"feColorMatrix\");\n      feColorMatrix.setAttribute(\"type\", \"matrix\");\n      feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      feColorMatrix.setAttribute(\"values\", \"0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1\");\n      return feColorMatrix;\n    }\n\n    return ob;\n  }();\n  /* exported assetLoader */\n\n\n  var assetLoader = function () {\n    function formatResponse(xhr) {\n      if (xhr.response && typeof xhr.response === \"object\") {\n        return xhr.response;\n      }\n\n      if (xhr.response && typeof xhr.response === \"string\") {\n        return JSON.parse(xhr.response);\n      }\n\n      if (xhr.responseText) {\n        return JSON.parse(xhr.responseText);\n      }\n\n      return null;\n    }\n\n    function loadAsset(path, callback, errorCallback) {\n      var response;\n      var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n      try {\n        // This crashes on Android WebView prior to KitKat\n        xhr.responseType = \"json\";\n      } catch (err) {} // eslint-disable-line no-empty\n\n\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState === 4) {\n          if (xhr.status === 200) {\n            response = formatResponse(xhr);\n            callback(response);\n          } else {\n            try {\n              response = formatResponse(xhr);\n              callback(response);\n            } catch (err) {\n              if (errorCallback) {\n                errorCallback(err);\n              }\n            }\n          }\n        }\n      };\n\n      xhr.open(\"GET\", path, true);\n      xhr.send();\n    }\n\n    return {\n      load: loadAsset\n    };\n  }();\n  /* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n    addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\n\n\n  function TextAnimatorProperty(textData, renderType, elem) {\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._hasMaskedPath = false;\n    (this || _global)._frameId = -1;\n    (this || _global)._textData = textData;\n    (this || _global)._renderType = renderType;\n    (this || _global)._elem = elem;\n    (this || _global)._animatorsData = createSizedArray((this || _global)._textData.a.length);\n    (this || _global)._pathData = {};\n    (this || _global)._moreOptions = {\n      alignment: {}\n    };\n    (this || _global).renderedLetters = [];\n    (this || _global).lettersChangedFlag = false;\n    this.initDynamicPropertyContainer(elem);\n  }\n\n  TextAnimatorProperty.prototype.searchProperties = function () {\n    var i;\n    var len = (this || _global)._textData.a.length;\n    var animatorProps;\n    var getProp = PropertyFactory.getProp;\n\n    for (i = 0; i < len; i += 1) {\n      animatorProps = (this || _global)._textData.a[i];\n      (this || _global)._animatorsData[i] = new TextAnimatorDataProperty((this || _global)._elem, animatorProps, this || _global);\n    }\n\n    if ((this || _global)._textData.p && \"m\" in (this || _global)._textData.p) {\n      (this || _global)._pathData = {\n        f: getProp((this || _global)._elem, (this || _global)._textData.p.f, 0, 0, this || _global),\n        l: getProp((this || _global)._elem, (this || _global)._textData.p.l, 0, 0, this || _global),\n        r: (this || _global)._textData.p.r,\n        m: (this || _global)._elem.maskManager.getMaskProperty((this || _global)._textData.p.m)\n      };\n      (this || _global)._hasMaskedPath = true;\n    } else {\n      (this || _global)._hasMaskedPath = false;\n    }\n\n    (this || _global)._moreOptions.alignment = getProp((this || _global)._elem, (this || _global)._textData.m.a, 1, 0, this || _global);\n  };\n\n  TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n    (this || _global).lettersChangedFlag = lettersChangedFlag;\n\n    if (!(this || _global)._mdf && !(this || _global)._isFirstFrame && !lettersChangedFlag && (!(this || _global)._hasMaskedPath || !(this || _global)._pathData.m._mdf)) {\n      return;\n    }\n\n    (this || _global)._isFirstFrame = false;\n    var alignment = (this || _global)._moreOptions.alignment.v;\n    var animators = (this || _global)._animatorsData;\n    var textData = (this || _global)._textData;\n    var matrixHelper = (this || _global).mHelper;\n    var renderType = (this || _global)._renderType;\n    var renderedLettersCount = (this || _global).renderedLetters.length;\n    var xPos;\n    var yPos;\n    var i;\n    var len;\n    var letters = documentData.l;\n    var pathInfo;\n    var currentLength;\n    var currentPoint;\n    var segmentLength;\n    var flag;\n    var pointInd;\n    var segmentInd;\n    var prevPoint;\n    var points;\n    var segments;\n    var partialLength;\n    var totalLength;\n    var perc;\n    var tanAngle;\n    var mask;\n\n    if ((this || _global)._hasMaskedPath) {\n      mask = (this || _global)._pathData.m;\n\n      if (!(this || _global)._pathData.n || (this || _global)._pathData._mdf) {\n        var paths = mask.v;\n\n        if ((this || _global)._pathData.r) {\n          paths = paths.reverse();\n        } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n        pathInfo = {\n          tLength: 0,\n          segments: []\n        };\n        len = paths._length - 1;\n        var bezierData;\n        totalLength = 0;\n\n        for (i = 0; i < len; i += 1) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        i = len;\n\n        if (mask.v.c) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        (this || _global)._pathData.pi = pathInfo;\n      }\n\n      pathInfo = (this || _global)._pathData.pi;\n      currentLength = (this || _global)._pathData.f.v;\n      segmentInd = 0;\n      pointInd = 1;\n      segmentLength = 0;\n      flag = true;\n      segments = pathInfo.segments;\n\n      if (currentLength < 0 && mask.v.c) {\n        if (pathInfo.tLength < Math.abs(currentLength)) {\n          currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n        }\n\n        segmentInd = segments.length - 1;\n        points = segments[segmentInd].points;\n        pointInd = points.length - 1;\n\n        while (currentLength < 0) {\n          currentLength += points[pointInd].partialLength;\n          pointInd -= 1;\n\n          if (pointInd < 0) {\n            segmentInd -= 1;\n            points = segments[segmentInd].points;\n            pointInd = points.length - 1;\n          }\n        }\n      }\n\n      points = segments[segmentInd].points;\n      prevPoint = points[pointInd - 1];\n      currentPoint = points[pointInd];\n      partialLength = currentPoint.partialLength;\n    }\n\n    len = letters.length;\n    xPos = 0;\n    yPos = 0;\n    var yOff = documentData.finalSize * 1.2 * 0.714;\n    var firstLine = true;\n    var animatorProps;\n    var animatorSelector;\n    var j;\n    var jLen;\n    var letterValue;\n    jLen = animators.length;\n    var mult;\n    var ind = -1;\n    var offf;\n    var xPathPos;\n    var yPathPos;\n    var initPathPos = currentLength;\n    var initSegmentInd = segmentInd;\n    var initPointInd = pointInd;\n    var currentLine = -1;\n    var elemOpacity;\n    var sc;\n    var sw;\n    var fc;\n    var k;\n    var letterSw;\n    var letterSc;\n    var letterFc;\n    var letterM = \"\";\n    var letterP = (this || _global).defaultPropsArray;\n    var letterO; //\n\n    if (documentData.j === 2 || documentData.j === 1) {\n      var animatorJustifyOffset = 0;\n      var animatorFirstCharOffset = 0;\n      var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n      var lastIndex = 0;\n      var isNewLine = true;\n\n      for (i = 0; i < len; i += 1) {\n        if (letters[i].n) {\n          if (animatorJustifyOffset) {\n            animatorJustifyOffset += animatorFirstCharOffset;\n          }\n\n          while (lastIndex < i) {\n            letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n            lastIndex += 1;\n          }\n\n          animatorJustifyOffset = 0;\n          isNewLine = true;\n        } else {\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.t.propType) {\n              if (isNewLine && documentData.j === 2) {\n                animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n              }\n\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n              } else {\n                animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n              }\n            }\n          }\n\n          isNewLine = false;\n        }\n      }\n\n      if (animatorJustifyOffset) {\n        animatorJustifyOffset += animatorFirstCharOffset;\n      }\n\n      while (lastIndex < i) {\n        letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n        lastIndex += 1;\n      }\n    } //\n\n\n    for (i = 0; i < len; i += 1) {\n      matrixHelper.reset();\n      elemOpacity = 1;\n\n      if (letters[i].n) {\n        xPos = 0;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        currentLength = initPathPos;\n        firstLine = false;\n\n        if ((this || _global)._hasMaskedPath) {\n          segmentInd = initSegmentInd;\n          pointInd = initPointInd;\n          points = segments[segmentInd].points;\n          prevPoint = points[pointInd - 1];\n          currentPoint = points[pointInd];\n          partialLength = currentPoint.partialLength;\n          segmentLength = 0;\n        }\n\n        letterM = \"\";\n        letterFc = \"\";\n        letterSw = \"\";\n        letterO = \"\";\n        letterP = (this || _global).defaultPropsArray;\n      } else {\n        if ((this || _global)._hasMaskedPath) {\n          if (currentLine !== letters[i].line) {\n            switch (documentData.j) {\n              case 1:\n                currentLength += totalLength - documentData.lineWidths[letters[i].line];\n                break;\n\n              case 2:\n                currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n                break;\n\n              default:\n                break;\n            }\n\n            currentLine = letters[i].line;\n          }\n\n          if (ind !== letters[i].ind) {\n            if (letters[ind]) {\n              currentLength += letters[ind].extra;\n            }\n\n            currentLength += letters[i].an / 2;\n            ind = letters[i].ind;\n          }\n\n          currentLength += alignment[0] * letters[i].an * 0.005;\n          var animatorOffset = 0;\n\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.p.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.p.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.p.v[0] * mult;\n              }\n            }\n\n            if (animatorProps.a.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.a.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.a.v[0] * mult;\n              }\n            }\n          }\n\n          flag = true;\n\n          while (flag) {\n            if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n              perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n              xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n              yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n              matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n              flag = false;\n            } else if (points) {\n              segmentLength += currentPoint.partialLength;\n              pointInd += 1;\n\n              if (pointInd >= points.length) {\n                pointInd = 0;\n                segmentInd += 1;\n\n                if (!segments[segmentInd]) {\n                  if (mask.v.c) {\n                    pointInd = 0;\n                    segmentInd = 0;\n                    points = segments[segmentInd].points;\n                  } else {\n                    segmentLength -= currentPoint.partialLength;\n                    points = null;\n                  }\n                } else {\n                  points = segments[segmentInd].points;\n                }\n              }\n\n              if (points) {\n                prevPoint = currentPoint;\n                currentPoint = points[pointInd];\n                partialLength = currentPoint.partialLength;\n              }\n            }\n          }\n\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0);\n        } else {\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n          matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.t.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n            if (xPos !== 0 || documentData.j !== 0) {\n              if ((this || _global)._hasMaskedPath) {\n                if (mult.length) {\n                  currentLength += animatorProps.t.v * mult[0];\n                } else {\n                  currentLength += animatorProps.t.v * mult;\n                }\n              } else if (mult.length) {\n                xPos += animatorProps.t.v * mult[0];\n              } else {\n                xPos += animatorProps.t.v * mult;\n              }\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          sw = documentData.sw || 0;\n        }\n\n        if (documentData.strokeColorAnim) {\n          if (documentData.sc) {\n            sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n          } else {\n            sc = [0, 0, 0];\n          }\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.a.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.s.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n            } else {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n          animatorSelector = animators[j].s;\n          mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n          if (animatorProps.sk.propType) {\n            if (mult.length) {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n            } else {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n            }\n          }\n\n          if (animatorProps.r.propType) {\n            if (mult.length) {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n            } else {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult);\n            }\n          }\n\n          if (animatorProps.ry.propType) {\n            if (mult.length) {\n              matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n            } else {\n              matrixHelper.rotateY(animatorProps.ry.v * mult);\n            }\n          }\n\n          if (animatorProps.rx.propType) {\n            if (mult.length) {\n              matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n            } else {\n              matrixHelper.rotateX(animatorProps.rx.v * mult);\n            }\n          }\n\n          if (animatorProps.o.propType) {\n            if (mult.length) {\n              elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n            } else {\n              elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n            }\n          }\n\n          if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n            if (mult.length) {\n              sw += animatorProps.sw.v * mult[0];\n            } else {\n              sw += animatorProps.sw.v * mult;\n            }\n          }\n\n          if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n            for (k = 0; k < 3; k += 1) {\n              if (mult.length) {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n              } else {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n              }\n            }\n          }\n\n          if (documentData.fillColorAnim && documentData.fc) {\n            if (animatorProps.fc.propType) {\n              for (k = 0; k < 3; k += 1) {\n                if (mult.length) {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n                } else {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n                }\n              }\n            }\n\n            if (animatorProps.fh.propType) {\n              if (mult.length) {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n              } else {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n              }\n            }\n\n            if (animatorProps.fs.propType) {\n              if (mult.length) {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n              } else {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n              }\n            }\n\n            if (animatorProps.fb.propType) {\n              if (mult.length) {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n              } else {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n              }\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.p.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if ((this || _global)._hasMaskedPath) {\n              if (mult.length) {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n              } else {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n              }\n            } else if (mult.length) {\n              matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          letterSw = sw < 0 ? 0 : sw;\n        }\n\n        if (documentData.strokeColorAnim) {\n          letterSc = \"rgb(\" + Math.round(sc[0] * 255) + \",\" + Math.round(sc[1] * 255) + \",\" + Math.round(sc[2] * 255) + \")\";\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          letterFc = \"rgb(\" + Math.round(fc[0] * 255) + \",\" + Math.round(fc[1] * 255) + \",\" + Math.round(fc[2] * 255) + \")\";\n        }\n\n        if ((this || _global)._hasMaskedPath) {\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n          if (textData.p.p) {\n            tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n            var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n            if (currentPoint.point[0] < prevPoint.point[0]) {\n              rot += 180;\n            }\n\n            matrixHelper.rotate(-rot * Math.PI / 180);\n          }\n\n          matrixHelper.translate(xPathPos, yPathPos, 0);\n          currentLength -= alignment[0] * letters[i].an * 0.005;\n\n          if (letters[i + 1] && ind !== letters[i + 1].ind) {\n            currentLength += letters[i].an / 2;\n            currentLength += documentData.tr * 0.001 * documentData.finalSize;\n          }\n        } else {\n          matrixHelper.translate(xPos, yPos, 0);\n\n          if (documentData.ps) {\n            // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n            matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n          }\n\n          switch (documentData.j) {\n            case 1:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n              break;\n\n            case 2:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n              break;\n\n            default:\n              break;\n          }\n\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(offf, 0, 0);\n          matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n          xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n        }\n\n        if (renderType === \"html\") {\n          letterM = matrixHelper.toCSS();\n        } else if (renderType === \"svg\") {\n          letterM = matrixHelper.to2dCSS();\n        } else {\n          letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n        }\n\n        letterO = elemOpacity;\n      }\n\n      if (renderedLettersCount <= i) {\n        letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n\n        (this || _global).renderedLetters.push(letterValue);\n\n        renderedLettersCount += 1;\n        (this || _global).lettersChangedFlag = true;\n      } else {\n        letterValue = (this || _global).renderedLetters[i];\n        (this || _global).lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || (this || _global).lettersChangedFlag;\n      }\n    }\n  };\n\n  TextAnimatorProperty.prototype.getValue = function () {\n    if ((this || _global)._elem.globalData.frameId === (this || _global)._frameId) {\n      return;\n    }\n\n    (this || _global)._frameId = (this || _global)._elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  TextAnimatorProperty.prototype.mHelper = new Matrix();\n  TextAnimatorProperty.prototype.defaultPropsArray = [];\n  extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n  /* global PropertyFactory, degToRads, TextSelectorProp */\n\n  /* exported TextAnimatorDataProperty */\n\n  function TextAnimatorDataProperty(elem, animatorProps, container) {\n    var defaultData = {\n      propType: false\n    };\n    var getProp = PropertyFactory.getProp;\n    var textAnimatorAnimatables = animatorProps.a;\n    (this || _global).a = {\n      r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n      rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n      ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n      sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n      sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n      s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n      a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n      o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n      p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n      sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n      sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n      fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n      fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n      fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n      fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n      t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n    };\n    (this || _global).s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n    (this || _global).s.t = animatorProps.s.t;\n  }\n\n  function LetterProps(o, sw, sc, fc, m, p) {\n    (this || _global).o = o;\n    (this || _global).sw = sw;\n    (this || _global).sc = sc;\n    (this || _global).fc = fc;\n    (this || _global).m = m;\n    (this || _global).p = p;\n    (this || _global)._mdf = {\n      o: true,\n      sw: !!sw,\n      sc: !!sc,\n      fc: !!fc,\n      m: true,\n      p: true\n    };\n  }\n\n  LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n    (this || _global)._mdf.o = false;\n    (this || _global)._mdf.sw = false;\n    (this || _global)._mdf.sc = false;\n    (this || _global)._mdf.fc = false;\n    (this || _global)._mdf.m = false;\n    (this || _global)._mdf.p = false;\n    var updated = false;\n\n    if ((this || _global).o !== o) {\n      (this || _global).o = o;\n      (this || _global)._mdf.o = true;\n      updated = true;\n    }\n\n    if ((this || _global).sw !== sw) {\n      (this || _global).sw = sw;\n      (this || _global)._mdf.sw = true;\n      updated = true;\n    }\n\n    if ((this || _global).sc !== sc) {\n      (this || _global).sc = sc;\n      (this || _global)._mdf.sc = true;\n      updated = true;\n    }\n\n    if ((this || _global).fc !== fc) {\n      (this || _global).fc = fc;\n      (this || _global)._mdf.fc = true;\n      updated = true;\n    }\n\n    if ((this || _global).m !== m) {\n      (this || _global).m = m;\n      (this || _global)._mdf.m = true;\n      updated = true;\n    }\n\n    if (p.length && ((this || _global).p[0] !== p[0] || (this || _global).p[1] !== p[1] || (this || _global).p[4] !== p[4] || (this || _global).p[5] !== p[5] || (this || _global).p[12] !== p[12] || (this || _global).p[13] !== p[13])) {\n      (this || _global).p = p;\n      (this || _global)._mdf.p = true;\n      updated = true;\n    }\n\n    return updated;\n  };\n  /* global FontManager, initialDefaultFrame, getFontProperties */\n\n  /* exported TextProperty */\n\n\n  function TextProperty(elem, data) {\n    (this || _global)._frameId = initialDefaultFrame;\n    (this || _global).pv = \"\";\n    (this || _global).v = \"\";\n    (this || _global).kf = false;\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._mdf = false;\n    (this || _global).data = data;\n    (this || _global).elem = elem;\n    (this || _global).comp = (this || _global).elem.comp;\n    (this || _global).keysIndex = 0;\n    (this || _global).canResize = false;\n    (this || _global).minimumFontSize = 1;\n    (this || _global).effectsSequence = [];\n    (this || _global).currentData = {\n      ascent: 0,\n      boxWidth: (this || _global).defaultBoxWidth,\n      f: \"\",\n      fStyle: \"\",\n      fWeight: \"\",\n      fc: \"\",\n      j: \"\",\n      justifyOffset: \"\",\n      l: [],\n      lh: 0,\n      lineWidths: [],\n      ls: \"\",\n      of: \"\",\n      s: \"\",\n      sc: \"\",\n      sw: 0,\n      t: 0,\n      tr: 0,\n      sz: 0,\n      ps: null,\n      fillColorAnim: false,\n      strokeColorAnim: false,\n      strokeWidthAnim: false,\n      yOffset: 0,\n      finalSize: 0,\n      finalText: [],\n      finalLineHeight: 0,\n      __complete: false\n    };\n    this.copyData((this || _global).currentData, (this || _global).data.d.k[0].s);\n\n    if (!this.searchProperty()) {\n      this.completeTextData((this || _global).currentData);\n    }\n  }\n\n  TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n  TextProperty.prototype.copyData = function (obj, data) {\n    for (var s in data) {\n      if (Object.prototype.hasOwnProperty.call(data, s)) {\n        obj[s] = data[s];\n      }\n    }\n\n    return obj;\n  };\n\n  TextProperty.prototype.setCurrentData = function (data) {\n    if (!data.__complete) {\n      this.completeTextData(data);\n    }\n\n    (this || _global).currentData = data;\n    (this || _global).currentData.boxWidth = (this || _global).currentData.boxWidth || (this || _global).defaultBoxWidth;\n    (this || _global)._mdf = true;\n  };\n\n  TextProperty.prototype.searchProperty = function () {\n    return this.searchKeyframes();\n  };\n\n  TextProperty.prototype.searchKeyframes = function () {\n    (this || _global).kf = (this || _global).data.d.k.length > 1;\n\n    if ((this || _global).kf) {\n      this.addEffect((this || _global).getKeyframeValue.bind(this || _global));\n    }\n\n    return (this || _global).kf;\n  };\n\n  TextProperty.prototype.addEffect = function (effectFunction) {\n    (this || _global).effectsSequence.push(effectFunction);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.getValue = function (_finalValue) {\n    if (((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) && !_finalValue) {\n      return;\n    }\n\n    (this || _global).currentData.t = (this || _global).data.d.k[(this || _global).keysIndex].s.t;\n    var currentValue = (this || _global).currentData;\n    var currentIndex = (this || _global).keysIndex;\n\n    if ((this || _global).lock) {\n      this.setCurrentData((this || _global).currentData);\n      return;\n    }\n\n    (this || _global).lock = true;\n    (this || _global)._mdf = false;\n    var i;\n    var len = (this || _global).effectsSequence.length;\n    var finalValue = _finalValue || (this || _global).data.d.k[(this || _global).keysIndex].s;\n\n    for (i = 0; i < len; i += 1) {\n      // Checking if index changed to prevent creating a new object every time the expression updates.\n      if (currentIndex !== (this || _global).keysIndex) {\n        finalValue = (this || _global).effectsSequence[i](finalValue, finalValue.t);\n      } else {\n        finalValue = (this || _global).effectsSequence[i]((this || _global).currentData, finalValue.t);\n      }\n    }\n\n    if (currentValue !== finalValue) {\n      this.setCurrentData(finalValue);\n    }\n\n    (this || _global).v = (this || _global).currentData;\n    (this || _global).pv = (this || _global).v;\n    (this || _global).lock = false;\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n  };\n\n  TextProperty.prototype.getKeyframeValue = function () {\n    var textKeys = (this || _global).data.d.k;\n    var frameNum = (this || _global).elem.comp.renderedFrame;\n    var i = 0;\n    var len = textKeys.length;\n\n    while (i <= len - 1) {\n      if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    if ((this || _global).keysIndex !== i) {\n      (this || _global).keysIndex = i;\n    }\n\n    return (this || _global).data.d.k[(this || _global).keysIndex].s;\n  };\n\n  TextProperty.prototype.buildFinalText = function (text) {\n    var combinedCharacters = FontManager.getCombinedCharacterCodes();\n    var charactersArray = [];\n    var i = 0;\n    var len = text.length;\n    var charCode;\n\n    while (i < len) {\n      charCode = text.charCodeAt(i);\n\n      if (combinedCharacters.indexOf(charCode) !== -1) {\n        charactersArray[charactersArray.length - 1] += text.charAt(i);\n      } else if (charCode >= 55296 && charCode <= 56319) {\n        charCode = text.charCodeAt(i + 1);\n\n        if (charCode >= 56320 && charCode <= 57343) {\n          charactersArray.push(text.substr(i, 2));\n          i += 1;\n        } else {\n          charactersArray.push(text.charAt(i));\n        }\n      } else {\n        charactersArray.push(text.charAt(i));\n      }\n\n      i += 1;\n    }\n\n    return charactersArray;\n  };\n\n  TextProperty.prototype.completeTextData = function (documentData) {\n    documentData.__complete = true;\n    var fontManager = (this || _global).elem.globalData.fontManager;\n    var data = (this || _global).data;\n    var letters = [];\n    var i;\n    var len;\n    var newLineFlag;\n    var index = 0;\n    var val;\n    var anchorGrouping = data.m.g;\n    var currentSize = 0;\n    var currentPos = 0;\n    var currentLine = 0;\n    var lineWidths = [];\n    var lineWidth = 0;\n    var maxLineWidth = 0;\n    var j;\n    var jLen;\n    var fontData = fontManager.getFontByName(documentData.f);\n    var charData;\n    var cLength = 0;\n    var fontProps = getFontProperties(fontData);\n    documentData.fWeight = fontProps.weight;\n    documentData.fStyle = fontProps.style;\n    documentData.finalSize = documentData.s;\n    documentData.finalText = this.buildFinalText(documentData.t);\n    len = documentData.finalText.length;\n    documentData.finalLineHeight = documentData.lh;\n    var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n    var charCode;\n\n    if (documentData.sz) {\n      var flag = true;\n      var boxWidth = documentData.sz[0];\n      var boxHeight = documentData.sz[1];\n      var currentHeight;\n      var finalText;\n\n      while (flag) {\n        finalText = this.buildFinalText(documentData.t);\n        currentHeight = 0;\n        lineWidth = 0;\n        len = finalText.length;\n        trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n        var lastSpaceIndex = -1;\n\n        for (i = 0; i < len; i += 1) {\n          charCode = finalText[i].charCodeAt(0);\n          newLineFlag = false;\n\n          if (finalText[i] === \" \") {\n            lastSpaceIndex = i;\n          } else if (charCode === 13 || charCode === 3) {\n            lineWidth = 0;\n            newLineFlag = true;\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n          }\n\n          if (fontManager.chars) {\n            charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n            cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n          } else {\n            // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n            cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n          }\n\n          if (lineWidth + cLength > boxWidth && finalText[i] !== \" \") {\n            if (lastSpaceIndex === -1) {\n              len += 1;\n            } else {\n              i = lastSpaceIndex;\n            }\n\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n            finalText.splice(i, lastSpaceIndex === i ? 1 : 0, \"\\r\"); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n            lastSpaceIndex = -1;\n            lineWidth = 0;\n          } else {\n            lineWidth += cLength;\n            lineWidth += trackingOffset;\n          }\n        }\n\n        currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n        if ((this || _global).canResize && documentData.finalSize > (this || _global).minimumFontSize && boxHeight < currentHeight) {\n          documentData.finalSize -= 1;\n          documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n        } else {\n          documentData.finalText = finalText;\n          len = documentData.finalText.length;\n          flag = false;\n        }\n      }\n    }\n\n    lineWidth = -trackingOffset;\n    cLength = 0;\n    var uncollapsedSpaces = 0;\n    var currentChar;\n\n    for (i = 0; i < len; i += 1) {\n      newLineFlag = false;\n      currentChar = documentData.finalText[i];\n      charCode = currentChar.charCodeAt(0);\n\n      if (charCode === 13 || charCode === 3) {\n        uncollapsedSpaces = 0;\n        lineWidths.push(lineWidth);\n        maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n        lineWidth = -2 * trackingOffset;\n        val = \"\";\n        newLineFlag = true;\n        currentLine += 1;\n      } else {\n        val = currentChar;\n      }\n\n      if (fontManager.chars) {\n        charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n        cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n      } else {\n        // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n        // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n        cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n      } //\n\n\n      if (currentChar === \" \") {\n        uncollapsedSpaces += cLength + trackingOffset;\n      } else {\n        lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n        uncollapsedSpaces = 0;\n      }\n\n      letters.push({\n        l: cLength,\n        an: cLength,\n        add: currentSize,\n        n: newLineFlag,\n        anIndexes: [],\n        val: val,\n        line: currentLine,\n        animatorJustifyOffset: 0\n      });\n\n      if (anchorGrouping == 2) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === \"\" || val === \" \" || i === len - 1) {\n          if (val === \"\" || val === \" \") {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          index += 1;\n          currentSize = 0;\n        }\n      } else if (anchorGrouping == 3) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === \"\" || i === len - 1) {\n          if (val === \"\") {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          currentSize = 0;\n          index += 1;\n        }\n      } else {\n        letters[index].ind = index;\n        letters[index].extra = 0;\n        index += 1;\n      }\n    }\n\n    documentData.l = letters;\n    maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n    lineWidths.push(lineWidth);\n\n    if (documentData.sz) {\n      documentData.boxWidth = documentData.sz[0];\n      documentData.justifyOffset = 0;\n    } else {\n      documentData.boxWidth = maxLineWidth;\n\n      switch (documentData.j) {\n        case 1:\n          documentData.justifyOffset = -documentData.boxWidth;\n          break;\n\n        case 2:\n          documentData.justifyOffset = -documentData.boxWidth / 2;\n          break;\n\n        default:\n          documentData.justifyOffset = 0;\n      }\n    }\n\n    documentData.lineWidths = lineWidths;\n    var animators = data.a;\n    var animatorData;\n    var letterData;\n    jLen = animators.length;\n    var based;\n    var ind;\n    var indexes = [];\n\n    for (j = 0; j < jLen; j += 1) {\n      animatorData = animators[j];\n\n      if (animatorData.a.sc) {\n        documentData.strokeColorAnim = true;\n      }\n\n      if (animatorData.a.sw) {\n        documentData.strokeWidthAnim = true;\n      }\n\n      if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n        documentData.fillColorAnim = true;\n      }\n\n      ind = 0;\n      based = animatorData.s.b;\n\n      for (i = 0; i < len; i += 1) {\n        letterData = letters[i];\n        letterData.anIndexes[j] = ind;\n\n        if (based == 1 && letterData.val !== \"\" || based == 2 && letterData.val !== \"\" && letterData.val !== \" \" || based == 3 && (letterData.n || letterData.val == \" \" || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n          // eslint-disable-line eqeqeq\n          if (animatorData.s.rn === 1) {\n            indexes.push(ind);\n          }\n\n          ind += 1;\n        }\n      }\n\n      data.a[j].s.totalChars = ind;\n      var currentInd = -1;\n      var newInd;\n\n      if (animatorData.s.rn === 1) {\n        for (i = 0; i < len; i += 1) {\n          letterData = letters[i];\n\n          if (currentInd != letterData.anIndexes[j]) {\n            // eslint-disable-line eqeqeq\n            currentInd = letterData.anIndexes[j];\n            newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n          }\n\n          letterData.anIndexes[j] = newInd;\n        }\n      }\n    }\n\n    documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n    documentData.ls = documentData.ls || 0;\n    documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n  };\n\n  TextProperty.prototype.updateDocumentData = function (newData, index) {\n    index = index === undefined ? (this || _global).keysIndex : index;\n    var dData = this.copyData({}, (this || _global).data.d.k[index].s);\n    dData = this.copyData(dData, newData);\n    (this || _global).data.d.k[index].s = dData;\n    this.recalculate(index);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.recalculate = function (index) {\n    var dData = (this || _global).data.d.k[index].s;\n    dData.__complete = false;\n    (this || _global).keysIndex = 0;\n    (this || _global)._isFirstFrame = true;\n    this.getValue(dData);\n  };\n\n  TextProperty.prototype.canResizeFont = function (_canResize) {\n    (this || _global).canResize = _canResize;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n    (this || _global).minimumFontSize = Math.floor(_fontValue) || 1;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n  /* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\n\n  /* exported TextSelectorProp */\n\n\n  var TextSelectorProp = function () {\n    var max = Math.max;\n    var min = Math.min;\n    var floor = Math.floor;\n\n    function TextSelectorPropFactory(elem, data) {\n      (this || _global)._currentTextLength = -1;\n      (this || _global).k = false;\n      (this || _global).data = data;\n      (this || _global).elem = elem;\n      (this || _global).comp = elem.comp;\n      (this || _global).finalS = 0;\n      (this || _global).finalE = 0;\n      this.initDynamicPropertyContainer(elem);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: 0\n      }, 0, 0, this || _global);\n\n      if (\"e\" in data) {\n        (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0, this || _global);\n      } else {\n        (this || _global).e = {\n          v: 100\n        };\n      }\n\n      (this || _global).o = PropertyFactory.getProp(elem, data.o || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).xe = PropertyFactory.getProp(elem, data.xe || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).ne = PropertyFactory.getProp(elem, data.ne || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this || _global);\n\n      if (!(this || _global).dynamicProperties.length) {\n        this.getValue();\n      }\n    }\n\n    TextSelectorPropFactory.prototype = {\n      getMult: function (ind) {\n        if ((this || _global)._currentTextLength !== (this || _global).elem.textProperty.currentData.l.length) {\n          this.getValue();\n        } // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\n\n\n        var x1 = 0;\n        var y1 = 0;\n        var x2 = 1;\n        var y2 = 1;\n\n        if ((this || _global).ne.v > 0) {\n          x1 = (this || _global).ne.v / 100;\n        } else {\n          y1 = -(this || _global).ne.v / 100;\n        }\n\n        if ((this || _global).xe.v > 0) {\n          x2 = 1 - (this || _global).xe.v / 100;\n        } else {\n          y2 = 1 + (this || _global).xe.v / 100;\n        }\n\n        var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n        var mult = 0;\n        var s = (this || _global).finalS;\n        var e = (this || _global).finalE;\n        var type = (this || _global).data.sh;\n\n        if (type === 2) {\n          if (e === s) {\n            mult = ind >= e ? 1 : 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 3) {\n          if (e === s) {\n            mult = ind >= e ? 0 : 1;\n          } else {\n            mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 4) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n            if (mult < 0.5) {\n              mult *= 2;\n            } else {\n              mult = 1 - 2 * (mult - 0.5);\n            }\n          }\n\n          mult = easer(mult);\n        } else if (type === 5) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            var tot = e - s;\n            /* ind += 0.5;\r\n                      mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            var x = -tot / 2 + ind;\n            var a = tot / 2;\n            mult = Math.sqrt(1 - x * x / (a * a));\n          }\n\n          mult = easer(mult);\n        } else if (type === 6) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n          }\n\n          mult = easer(mult);\n        } else {\n          if (ind >= floor(s)) {\n            if (ind - s < 0) {\n              mult = max(0, min(min(e, 1) - (s - ind), 1));\n            } else {\n              mult = max(0, min(e - ind, 1));\n            }\n          }\n\n          mult = easer(mult);\n        }\n\n        return mult * (this || _global).a.v;\n      },\n      getValue: function (newCharsFlag) {\n        this.iterateDynamicProperties();\n        (this || _global)._mdf = newCharsFlag || (this || _global)._mdf;\n        (this || _global)._currentTextLength = (this || _global).elem.textProperty.currentData.l.length || 0;\n\n        if (newCharsFlag && (this || _global).data.r === 2) {\n          (this || _global).e.v = (this || _global)._currentTextLength;\n        }\n\n        var divisor = (this || _global).data.r === 2 ? 1 : 100 / (this || _global).data.totalChars;\n        var o = (this || _global).o.v / divisor;\n        var s = (this || _global).s.v / divisor + o;\n        var e = (this || _global).e.v / divisor + o;\n\n        if (s > e) {\n          var _s = s;\n          s = e;\n          e = _s;\n        }\n\n        (this || _global).finalS = s;\n        (this || _global).finalE = e;\n      }\n    };\n    extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n    function getTextSelectorProp(elem, data, arr) {\n      return new TextSelectorPropFactory(elem, data, arr);\n    }\n\n    return {\n      getTextSelectorProp: getTextSelectorProp\n    };\n  }();\n  /* global createSizedArray, pooling */\n\n  /* exported poolFactory */\n\n\n  var poolFactory = function () {\n    return function (initialLength, _create, _release) {\n      var _length = 0;\n      var _maxLength = initialLength;\n      var pool = createSizedArray(_maxLength);\n      var ob = {\n        newElement: newElement,\n        release: release\n      };\n\n      function newElement() {\n        var element;\n\n        if (_length) {\n          _length -= 1;\n          element = pool[_length];\n        } else {\n          element = _create();\n        }\n\n        return element;\n      }\n\n      function release(element) {\n        if (_length === _maxLength) {\n          pool = pooling.double(pool);\n          _maxLength *= 2;\n        }\n\n        if (_release) {\n          _release(element);\n        }\n\n        pool[_length] = element;\n        _length += 1;\n      }\n\n      return ob;\n    };\n  }();\n  /* global createSizedArray */\n\n  /* exported pooling */\n\n\n  var pooling = function () {\n    function double(arr) {\n      return arr.concat(createSizedArray(arr.length));\n    }\n\n    return {\n      double: double\n    };\n  }();\n  /* global createTypedArray, poolFactory */\n\n  /* exported pointPool */\n\n\n  var pointPool = function () {\n    function create() {\n      return createTypedArray(\"float32\", 2);\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* global ShapePath, pointPool, poolFactory */\n\n  /* exported shapePool */\n\n\n  var shapePool = function () {\n    function create() {\n      return new ShapePath();\n    }\n\n    function release(shapePath) {\n      var len = shapePath._length;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        pointPool.release(shapePath.v[i]);\n        pointPool.release(shapePath.i[i]);\n        pointPool.release(shapePath.o[i]);\n        shapePath.v[i] = null;\n        shapePath.i[i] = null;\n        shapePath.o[i] = null;\n      }\n\n      shapePath._length = 0;\n      shapePath.c = false;\n    }\n\n    function clone(shape) {\n      var cloned = factory.newElement();\n      var i;\n      var len = shape._length === undefined ? shape.v.length : shape._length;\n      cloned.setLength(len);\n      cloned.c = shape.c;\n\n      for (i = 0; i < len; i += 1) {\n        cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n      }\n\n      return cloned;\n    }\n\n    var factory = poolFactory(4, create, release);\n    factory.clone = clone;\n    return factory;\n  }();\n  /* global createSizedArray, ShapeCollection, shapePool, pooling */\n\n  /* exported shapeCollectionPool */\n\n\n  var shapeCollectionPool = function () {\n    var ob = {\n      newShapeCollection: newShapeCollection,\n      release: release\n    };\n    var _length = 0;\n    var _maxLength = 4;\n    var pool = createSizedArray(_maxLength);\n\n    function newShapeCollection() {\n      var shapeCollection;\n\n      if (_length) {\n        _length -= 1;\n        shapeCollection = pool[_length];\n      } else {\n        shapeCollection = new ShapeCollection();\n      }\n\n      return shapeCollection;\n    }\n\n    function release(shapeCollection) {\n      var i;\n      var len = shapeCollection._length;\n\n      for (i = 0; i < len; i += 1) {\n        shapePool.release(shapeCollection.shapes[i]);\n      }\n\n      shapeCollection._length = 0;\n\n      if (_length === _maxLength) {\n        pool = pooling.double(pool);\n        _maxLength *= 2;\n      }\n\n      pool[_length] = shapeCollection;\n      _length += 1;\n    }\n\n    return ob;\n  }();\n  /* global poolFactory, bezierLengthPool */\n\n  /* exported segmentsLengthPool */\n\n\n  var segmentsLengthPool = function () {\n    function create() {\n      return {\n        lengths: [],\n        totalLength: 0\n      };\n    }\n\n    function release(element) {\n      var i;\n      var len = element.lengths.length;\n\n      for (i = 0; i < len; i += 1) {\n        bezierLengthPool.release(element.lengths[i]);\n      }\n\n      element.lengths.length = 0;\n    }\n\n    return poolFactory(8, create, release);\n  }();\n  /* global createTypedArray, defaultCurveSegments, poolFactory */\n\n  /* exported bezierLengthPool */\n\n\n  var bezierLengthPool = function () {\n    function create() {\n      return {\n        addedLength: 0,\n        percents: createTypedArray(\"float32\", defaultCurveSegments),\n        lengths: createTypedArray(\"float32\", defaultCurveSegments)\n      };\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* exported markerParser */\n\n\n  var markerParser = function () {\n    function parsePayloadLines(payload) {\n      var lines = payload.split(\"\\r\\n\");\n      var keys = {};\n      var line;\n      var keysCount = 0;\n\n      for (var i = 0; i < lines.length; i += 1) {\n        line = lines[i].split(\":\");\n\n        if (line.length === 2) {\n          keys[line[0]] = line[1].trim();\n          keysCount += 1;\n        }\n      }\n\n      if (keysCount === 0) {\n        throw new Error();\n      }\n\n      return keys;\n    }\n\n    return function (_markers) {\n      var markers = [];\n\n      for (var i = 0; i < _markers.length; i += 1) {\n        var _marker = _markers[i];\n        var markerData = {\n          time: _marker.tm,\n          duration: _marker.dr\n        };\n\n        try {\n          markerData.payload = JSON.parse(_markers[i].cm);\n        } catch (_) {\n          try {\n            markerData.payload = parsePayloadLines(_markers[i].cm);\n          } catch (__) {\n            markerData.payload = {\n              name: _markers[i]\n            };\n          }\n        }\n\n        markers.push(markerData);\n      }\n\n      return markers;\n    };\n  }();\n  /* global AudioElement, FootageElement, FontManager */\n\n\n  function BaseRenderer() {}\n\n  BaseRenderer.prototype.checkLayers = function (num) {\n    var i;\n    var len = (this || _global).layers.length;\n    var data;\n    (this || _global).completeLayers = true;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (!(this || _global).elements[i]) {\n        data = (this || _global).layers[i];\n\n        if (data.ip - data.st <= num - (this || _global).layers[i].st && data.op - data.st > num - (this || _global).layers[i].st) {\n          this.buildItem(i);\n        }\n      }\n\n      (this || _global).completeLayers = (this || _global).elements[i] ? (this || _global).completeLayers : false;\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.createItem = function (layer) {\n    switch (layer.ty) {\n      case 2:\n        return this.createImage(layer);\n\n      case 0:\n        return this.createComp(layer);\n\n      case 1:\n        return this.createSolid(layer);\n\n      case 3:\n        return this.createNull(layer);\n\n      case 4:\n        return this.createShape(layer);\n\n      case 5:\n        return this.createText(layer);\n\n      case 6:\n        return this.createAudio(layer);\n\n      case 13:\n        return this.createCamera(layer);\n\n      case 15:\n        return this.createFootage(layer);\n\n      default:\n        return this.createNull(layer);\n    }\n  };\n\n  BaseRenderer.prototype.createCamera = function () {\n    throw new Error(\"You're using a 3d camera. Try the html renderer.\");\n  };\n\n  BaseRenderer.prototype.createAudio = function (data) {\n    return new AudioElement(data, (this || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.createFootage = function (data) {\n    return new FootageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.buildAllItems = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.buildItem(i);\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.includeLayers = function (newLayers) {\n    (this || _global).completeLayers = false;\n    var i;\n    var len = newLayers.length;\n    var j;\n    var jLen = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      j = 0;\n\n      while (j < jLen) {\n        if ((this || _global).layers[j].id === newLayers[i].id) {\n          (this || _global).layers[j] = newLayers[i];\n          break;\n        }\n\n        j += 1;\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n    (this || _global).globalData.projectInterface = pInterface;\n  };\n\n  BaseRenderer.prototype.initItems = function () {\n    if (!(this || _global).globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n  };\n\n  BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n    var elements = (this || _global).elements;\n    var layers = (this || _global).layers;\n    var i = 0;\n    var len = layers.length;\n\n    while (i < len) {\n      if (layers[i].ind == parentName) {\n        // eslint-disable-line eqeqeq\n        if (!elements[i] || elements[i] === true) {\n          this.buildItem(i);\n          this.addPendingElement(element);\n        } else {\n          hierarchy.push(elements[i]);\n          elements[i].setAsParent();\n\n          if (layers[i].parent !== undefined) {\n            this.buildElementParenting(element, layers[i].parent, hierarchy);\n          } else {\n            element.setHierarchy(hierarchy);\n          }\n        }\n      }\n\n      i += 1;\n    }\n  };\n\n  BaseRenderer.prototype.addPendingElement = function (element) {\n    (this || _global).pendingElements.push(element);\n  };\n\n  BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i]);\n        comp.initExpressions();\n\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n    (this || _global).globalData.fontManager = new FontManager();\n\n    (this || _global).globalData.fontManager.addChars(animData.chars);\n\n    (this || _global).globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n\n    (this || _global).globalData.getAssetData = (this || _global).animationItem.getAssetData.bind((this || _global).animationItem);\n    (this || _global).globalData.getAssetsPath = (this || _global).animationItem.getAssetsPath.bind((this || _global).animationItem);\n    (this || _global).globalData.imageLoader = (this || _global).animationItem.imagePreloader;\n    (this || _global).globalData.audioController = (this || _global).animationItem.audioController;\n    (this || _global).globalData.frameId = 0;\n    (this || _global).globalData.frameRate = animData.fr;\n    (this || _global).globalData.nm = animData.nm;\n    (this || _global).globalData.compSize = {\n      w: animData.w,\n      h: animData.h\n    };\n  };\n  /* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\n  IImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\n\n\n  function SVGRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).svgElement = createNS(\"svg\");\n    var ariaLabel = \"\";\n\n    if (config && config.title) {\n      var titleElement = createNS(\"title\");\n      var titleId = createElementID();\n      titleElement.setAttribute(\"id\", titleId);\n      titleElement.textContent = config.title;\n\n      (this || _global).svgElement.appendChild(titleElement);\n\n      ariaLabel += titleId;\n    }\n\n    if (config && config.description) {\n      var descElement = createNS(\"desc\");\n      var descId = createElementID();\n      descElement.setAttribute(\"id\", descId);\n      descElement.textContent = config.description;\n\n      (this || _global).svgElement.appendChild(descElement);\n\n      ariaLabel += \" \" + descId;\n    }\n\n    if (ariaLabel) {\n      (this || _global).svgElement.setAttribute(\"aria-labelledby\", ariaLabel);\n    }\n\n    var defs = createNS(\"defs\");\n\n    (this || _global).svgElement.appendChild(defs);\n\n    var maskElement = createNS(\"g\");\n\n    (this || _global).svgElement.appendChild(maskElement);\n\n    (this || _global).layerElement = maskElement;\n    (this || _global).renderConfig = {\n      preserveAspectRatio: config && config.preserveAspectRatio || \"xMidYMid meet\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      progressiveLoad: config && config.progressiveLoad || false,\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      viewBoxOnly: config && config.viewBoxOnly || false,\n      viewBoxSize: config && config.viewBoxSize || false,\n      className: config && config.className || \"\",\n      id: config && config.id || \"\",\n      focusable: config && config.focusable,\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || \"100%\",\n        height: config && config.filterSize && config.filterSize.height || \"100%\",\n        x: config && config.filterSize && config.filterSize.x || \"0%\",\n        y: config && config.filterSize && config.filterSize.y || \"0%\"\n      }\n    };\n    (this || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      defs: defs,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).rendererType = \"svg\";\n  }\n\n  extendPrototype([BaseRenderer], SVGRenderer);\n\n  SVGRenderer.prototype.createNull = function (data) {\n    return new NullElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createShape = function (data) {\n    return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createText = function (data) {\n    return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createImage = function (data) {\n    return new IImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createComp = function (data) {\n    return new SVGCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createSolid = function (data) {\n    return new ISolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.configAnimation = function (animData) {\n    (this || _global).svgElement.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\n\n    if ((this || _global).renderConfig.viewBoxSize) {\n      (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).renderConfig.viewBoxSize);\n    } else {\n      (this || _global).svgElement.setAttribute(\"viewBox\", \"0 0 \" + animData.w + \" \" + animData.h);\n    }\n\n    if (!(this || _global).renderConfig.viewBoxOnly) {\n      (this || _global).svgElement.setAttribute(\"width\", animData.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", animData.h);\n\n      (this || _global).svgElement.style.width = \"100%\";\n      (this || _global).svgElement.style.height = \"100%\";\n      (this || _global).svgElement.style.transform = \"translate3d(0,0,0)\";\n    }\n\n    if ((this || _global).renderConfig.className) {\n      (this || _global).svgElement.setAttribute(\"class\", (this || _global).renderConfig.className);\n    }\n\n    if ((this || _global).renderConfig.id) {\n      (this || _global).svgElement.setAttribute(\"id\", (this || _global).renderConfig.id);\n    }\n\n    if ((this || _global).renderConfig.focusable !== undefined) {\n      (this || _global).svgElement.setAttribute(\"focusable\", (this || _global).renderConfig.focusable);\n    }\n\n    (this || _global).svgElement.setAttribute(\"preserveAspectRatio\", (this || _global).renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n    // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n\n    (this || _global).animationItem.wrapper.appendChild((this || _global).svgElement); // Mask animation\n\n\n    var defs = (this || _global).globalData.defs;\n    this.setupGlobalData(animData, defs);\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).data = animData;\n    var maskElement = createNS(\"clipPath\");\n    var rect = createNS(\"rect\");\n    rect.setAttribute(\"width\", animData.w);\n    rect.setAttribute(\"height\", animData.h);\n    rect.setAttribute(\"x\", 0);\n    rect.setAttribute(\"y\", 0);\n    var maskId = createElementID();\n    maskElement.setAttribute(\"id\", maskId);\n    maskElement.appendChild(rect);\n\n    (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + maskId + \")\");\n\n    defs.appendChild(maskElement);\n    (this || _global).layers = animData.layers;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n  };\n\n  SVGRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).layerElement = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  SVGRenderer.prototype.updateContainerSize = function () {};\n\n  SVGRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    elements[pos] = true;\n    var element = this.createItem((this || _global).layers[pos]);\n    elements[pos] = element;\n\n    if (expressionsPlugin) {\n      if ((this || _global).layers[pos].ty === 0) {\n        (this || _global).globalData.projectInterface.registerComposition(element);\n      }\n\n      element.initExpressions();\n    }\n\n    this.appendElementInPos(element, pos);\n\n    if ((this || _global).layers[pos].tt) {\n      if (!(this || _global).elements[pos - 1] || (this || _global).elements[pos - 1] === true) {\n        this.buildItem(pos - 1);\n        this.addPendingElement(element);\n      } else {\n        element.setMatte(elements[pos - 1].layerId);\n      }\n    }\n  };\n\n  SVGRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n\n      if (element.data.tt) {\n        var i = 0;\n        var len = (this || _global).elements.length;\n\n        while (i < len) {\n          if ((this || _global).elements[i] === element) {\n            element.setMatte((this || _global).elements[i - 1].layerId);\n            break;\n          }\n\n          i += 1;\n        }\n      }\n    }\n  };\n\n  SVGRenderer.prototype.renderFrame = function (num) {\n    if ((this || _global).renderedFrame === num || (this || _global).destroyed) {\n      return;\n    }\n\n    if (num === null) {\n      num = (this || _global).renderedFrame;\n    } else {\n      (this || _global).renderedFrame = num;\n    } // console.log('-------');\n    // console.log('FRAME ',num);\n\n\n    (this || _global).globalData.frameNum = num;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData.projectInterface.currentFrame = num;\n    (this || _global).globalData._mdf = false;\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n    }\n  };\n\n  SVGRenderer.prototype.appendElementInPos = function (element, pos) {\n    var newElement = element.getBaseElement();\n\n    if (!newElement) {\n      return;\n    }\n\n    var i = 0;\n    var nextElement;\n\n    while (i < pos) {\n      if ((this || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement()) {\n        nextElement = (this || _global).elements[i].getBaseElement();\n      }\n\n      i += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(newElement, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(newElement);\n    }\n  };\n\n  SVGRenderer.prototype.hide = function () {\n    (this || _global).layerElement.style.display = \"none\";\n  };\n\n  SVGRenderer.prototype.show = function () {\n    (this || _global).layerElement.style.display = \"block\";\n  };\n  /* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\n  CVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\n\n\n  function CanvasRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).renderConfig = {\n      clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n      context: config && config.context || null,\n      progressiveLoad: config && config.progressiveLoad || false,\n      preserveAspectRatio: config && config.preserveAspectRatio || \"xMidYMid meet\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      className: config && config.className || \"\",\n      id: config && config.id || \"\"\n    };\n    (this || _global).renderConfig.dpr = config && config.dpr || 1;\n\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n    }\n\n    (this || _global).renderedFrame = -1;\n    (this || _global).globalData = {\n      frameNum: -1,\n      _mdf: false,\n      renderConfig: (this || _global).renderConfig,\n      currentGlobalAlpha: -1\n    };\n    (this || _global).contextData = new CVContextData();\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).transformMat = new Matrix();\n    (this || _global).completeLayers = false;\n    (this || _global).rendererType = \"canvas\";\n  }\n\n  extendPrototype([BaseRenderer], CanvasRenderer);\n\n  CanvasRenderer.prototype.createShape = function (data) {\n    return new CVShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createText = function (data) {\n    return new CVTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createImage = function (data) {\n    return new CVImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createComp = function (data) {\n    return new CVCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createSolid = function (data) {\n    return new CVSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  CanvasRenderer.prototype.ctxTransform = function (props) {\n    if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n      return;\n    }\n\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n\n      return;\n    }\n\n    (this || _global).transformMat.cloneFromProps(props);\n\n    var cProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n\n    (this || _global).contextData.cTr.cloneFromProps((this || _global).transformMat.props);\n\n    var trProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n  };\n\n  CanvasRenderer.prototype.ctxOpacity = function (op) {\n    /* if(op === 1){\r\n          return;\r\n      } */\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.globalAlpha *= op < 0 ? 0 : op;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n      return;\n    }\n\n    (this || _global).contextData.cO *= op < 0 ? 0 : op;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== (this || _global).contextData.cO) {\n      (this || _global).canvasContext.globalAlpha = (this || _global).contextData.cO;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n    }\n  };\n\n  CanvasRenderer.prototype.reset = function () {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    (this || _global).contextData.reset();\n  };\n\n  CanvasRenderer.prototype.save = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.save();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.save();\n    }\n\n    var props = (this || _global).contextData.cTr.props;\n\n    if ((this || _global).contextData._length <= (this || _global).contextData.cArrPos) {\n      (this || _global).contextData.duplicate();\n    }\n\n    var i;\n    var arr = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = props[i];\n    }\n\n    (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos] = (this || _global).contextData.cO;\n    (this || _global).contextData.cArrPos += 1;\n  };\n\n  CanvasRenderer.prototype.restore = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.restore();\n\n      (this || _global).globalData.blendMode = \"source-over\";\n    }\n\n    (this || _global).contextData.cArrPos -= 1;\n    var popped = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n    var i;\n    var arr = (this || _global).contextData.cTr.props;\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = popped[i];\n    }\n\n    (this || _global).canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n\n    popped = (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos];\n    (this || _global).contextData.cO = popped;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== popped) {\n      (this || _global).canvasContext.globalAlpha = popped;\n      (this || _global).globalData.currentGlobalAlpha = popped;\n    }\n  };\n\n  CanvasRenderer.prototype.configAnimation = function (animData) {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.container = createTag(\"canvas\");\n      var containerStyle = (this || _global).animationItem.container.style;\n      containerStyle.width = \"100%\";\n      containerStyle.height = \"100%\";\n      var origin = \"0px 0px 0px\";\n      containerStyle.transformOrigin = origin;\n      containerStyle.mozTransformOrigin = origin;\n      containerStyle.webkitTransformOrigin = origin;\n      containerStyle[\"-webkit-transform\"] = origin;\n\n      (this || _global).animationItem.wrapper.appendChild((this || _global).animationItem.container);\n\n      (this || _global).canvasContext = (this || _global).animationItem.container.getContext(\"2d\");\n\n      if ((this || _global).renderConfig.className) {\n        (this || _global).animationItem.container.setAttribute(\"class\", (this || _global).renderConfig.className);\n      }\n\n      if ((this || _global).renderConfig.id) {\n        (this || _global).animationItem.container.setAttribute(\"id\", (this || _global).renderConfig.id);\n      }\n    } else {\n      (this || _global).canvasContext = (this || _global).renderConfig.context;\n    }\n\n    (this || _global).data = animData;\n    (this || _global).layers = animData.layers;\n    (this || _global).transformCanvas = {\n      w: animData.w,\n      h: animData.h,\n      sx: 0,\n      sy: 0,\n      tx: 0,\n      ty: 0\n    };\n    this.setupGlobalData(animData, document.body);\n    (this || _global).globalData.canvasContext = (this || _global).canvasContext;\n    (this || _global).globalData.renderer = this || _global;\n    (this || _global).globalData.isDashed = false;\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).globalData.transformCanvas = (this || _global).transformCanvas;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n    this.updateContainerSize();\n  };\n\n  CanvasRenderer.prototype.updateContainerSize = function () {\n    this.reset();\n    var elementWidth;\n    var elementHeight;\n\n    if ((this || _global).animationItem.wrapper && (this || _global).animationItem.container) {\n      elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n      elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n\n      (this || _global).animationItem.container.setAttribute(\"width\", elementWidth * (this || _global).renderConfig.dpr);\n\n      (this || _global).animationItem.container.setAttribute(\"height\", elementHeight * (this || _global).renderConfig.dpr);\n    } else {\n      elementWidth = (this || _global).canvasContext.canvas.width * (this || _global).renderConfig.dpr;\n      elementHeight = (this || _global).canvasContext.canvas.height * (this || _global).renderConfig.dpr;\n    }\n\n    var elementRel;\n    var animationRel;\n\n    if ((this || _global).renderConfig.preserveAspectRatio.indexOf(\"meet\") !== -1 || (this || _global).renderConfig.preserveAspectRatio.indexOf(\"slice\") !== -1) {\n      var par = (this || _global).renderConfig.preserveAspectRatio.split(\" \");\n\n      var fillType = par[1] || \"meet\";\n      var pos = par[0] || \"xMidYMid\";\n      var xPos = pos.substr(0, 4);\n      var yPos = pos.substr(4);\n      elementRel = elementWidth / elementHeight;\n      animationRel = (this || _global).transformCanvas.w / (this || _global).transformCanvas.h;\n\n      if (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\") {\n        (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      } else {\n        (this || _global).transformCanvas.sx = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      }\n\n      if (xPos === \"xMid\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (xPos === \"xMax\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.tx = 0;\n      }\n\n      if (yPos === \"YMid\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (yPos === \"YMax\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.ty = 0;\n      }\n    } else if ((this || _global).renderConfig.preserveAspectRatio === \"none\") {\n      (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    } else {\n      (this || _global).transformCanvas.sx = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.sy = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    }\n\n    (this || _global).transformCanvas.props = [(this || _global).transformCanvas.sx, 0, 0, 0, 0, (this || _global).transformCanvas.sy, 0, 0, 0, 0, 1, 0, (this || _global).transformCanvas.tx, (this || _global).transformCanvas.ty, 0, 1];\n    /* var i, len = this.elements.length;\r\n      for(i=0;i<len;i+=1){\r\n          if(this.elements[i] && this.elements[i].data.ty === 0){\r\n              this.elements[i].resize(this.globalData.transformCanvas);\r\n          }\r\n      } */\n\n    this.ctxTransform((this || _global).transformCanvas.props);\n\n    (this || _global).canvasContext.beginPath();\n\n    (this || _global).canvasContext.rect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n\n    (this || _global).canvasContext.closePath();\n\n    (this || _global).canvasContext.clip();\n\n    this.renderFrame((this || _global).renderedFrame, true);\n  };\n\n  CanvasRenderer.prototype.destroy = function () {\n    if ((this || _global).renderConfig.clearCanvas && (this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).globalData.canvasContext = null;\n    (this || _global).animationItem.container = null;\n    (this || _global).destroyed = true;\n  };\n\n  CanvasRenderer.prototype.renderFrame = function (num, forceRender) {\n    if ((this || _global).renderedFrame === num && (this || _global).renderConfig.clearCanvas === true && !forceRender || (this || _global).destroyed || num === -1) {\n      return;\n    }\n\n    (this || _global).renderedFrame = num;\n    (this || _global).globalData.frameNum = num - (this || _global).animationItem._isFirstFrame;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData._mdf = !(this || _global).renderConfig.clearCanvas || forceRender;\n    (this || _global).globalData.projectInterface.currentFrame = num; // console.log('--------');\n    // console.log('NEW: ',num);\n\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      if ((this || _global).renderConfig.clearCanvas === true) {\n        (this || _global).canvasContext.clearRect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n      } else {\n        this.save();\n      }\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n\n      if ((this || _global).renderConfig.clearCanvas !== true) {\n        this.restore();\n      }\n    }\n  };\n\n  CanvasRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    var element = this.createItem((this || _global).layers[pos], this || _global, (this || _global).globalData);\n    elements[pos] = element;\n    element.initExpressions();\n    /* if(this.layers[pos].ty === 0){\r\n          element.resize(this.globalData.transformCanvas);\r\n      } */\n  };\n\n  CanvasRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  CanvasRenderer.prototype.hide = function () {\n    (this || _global).animationItem.container.style.display = \"none\";\n  };\n\n  CanvasRenderer.prototype.show = function () {\n    (this || _global).animationItem.container.style.display = \"block\";\n  };\n  /* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\n  HTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\n  HSolidElement, styleDiv, createTag, createNS */\n\n\n  function HybridRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).renderConfig = {\n      className: config && config.className || \"\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || \"400%\",\n        height: config && config.filterSize && config.filterSize.height || \"400%\",\n        x: config && config.filterSize && config.filterSize.x || \"-100%\",\n        y: config && config.filterSize && config.filterSize.y || \"-100%\"\n      }\n    };\n    (this || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).pendingElements = [];\n    (this || _global).elements = [];\n    (this || _global).threeDElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).camera = null;\n    (this || _global).supports3d = true;\n    (this || _global).rendererType = \"html\";\n  }\n\n  extendPrototype([BaseRenderer], HybridRenderer);\n  HybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n  HybridRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  HybridRenderer.prototype.appendElementInPos = function (element, pos) {\n    var newDOMElement = element.getBaseElement();\n\n    if (!newDOMElement) {\n      return;\n    }\n\n    var layer = (this || _global).layers[pos];\n\n    if (!layer.ddd || !(this || _global).supports3d) {\n      if ((this || _global).threeDElements) {\n        this.addTo3dContainer(newDOMElement, pos);\n      } else {\n        var i = 0;\n        var nextDOMElement;\n        var nextLayer;\n        var tmpDOMElement;\n\n        while (i < pos) {\n          if ((this || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement) {\n            nextLayer = (this || _global).elements[i];\n            tmpDOMElement = (this || _global).layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n            nextDOMElement = tmpDOMElement || nextDOMElement;\n          }\n\n          i += 1;\n        }\n\n        if (nextDOMElement) {\n          if (!layer.ddd || !(this || _global).supports3d) {\n            (this || _global).layerElement.insertBefore(newDOMElement, nextDOMElement);\n          }\n        } else if (!layer.ddd || !(this || _global).supports3d) {\n          (this || _global).layerElement.appendChild(newDOMElement);\n        }\n      }\n    } else {\n      this.addTo3dContainer(newDOMElement, pos);\n    }\n  };\n\n  HybridRenderer.prototype.createShape = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createText = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createCamera = function (data) {\n    (this || _global).camera = new HCameraElement(data, (this || _global).globalData, this || _global);\n    return (this || _global).camera;\n  };\n\n  HybridRenderer.prototype.createImage = function (data) {\n    if (!(this || _global).supports3d) {\n      return new IImageElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createComp = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGCompElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createSolid = function (data) {\n    if (!(this || _global).supports3d) {\n      return new ISolidElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  HybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if ((this || _global).threeDElements[i].startPos <= pos && (this || _global).threeDElements[i].endPos >= pos) {\n        return (this || _global).threeDElements[i].perspectiveElem;\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  HybridRenderer.prototype.createThreeDContainer = function (pos, type) {\n    var perspectiveElem = createTag(\"div\");\n    var style;\n    var containerStyle;\n    styleDiv(perspectiveElem);\n    var container = createTag(\"div\");\n    styleDiv(container);\n\n    if (type === \"3d\") {\n      style = perspectiveElem.style;\n      style.width = (this || _global).globalData.compSize.w + \"px\";\n      style.height = (this || _global).globalData.compSize.h + \"px\";\n      var center = \"50% 50%\";\n      style.webkitTransformOrigin = center;\n      style.mozTransformOrigin = center;\n      style.transformOrigin = center;\n      containerStyle = container.style;\n      var matrix = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n      containerStyle.transform = matrix;\n      containerStyle.webkitTransform = matrix;\n    }\n\n    perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n    var threeDContainerData = {\n      container: container,\n      perspectiveElem: perspectiveElem,\n      startPos: pos,\n      endPos: pos,\n      type: type\n    };\n\n    (this || _global).threeDElements.push(threeDContainerData);\n\n    return threeDContainerData;\n  };\n\n  HybridRenderer.prototype.build3dContainers = function () {\n    var i;\n    var len = (this || _global).layers.length;\n    var lastThreeDContainerData;\n    var currentContainer = \"\";\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).layers[i].ddd && (this || _global).layers[i].ty !== 3) {\n        if (currentContainer !== \"3d\") {\n          currentContainer = \"3d\";\n          lastThreeDContainerData = this.createThreeDContainer(i, \"3d\");\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      } else {\n        if (currentContainer !== \"2d\") {\n          currentContainer = \"2d\";\n          lastThreeDContainerData = this.createThreeDContainer(i, \"2d\");\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      }\n    }\n\n    len = (this || _global).threeDElements.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      (this || _global).resizerElem.appendChild((this || _global).threeDElements[i].perspectiveElem);\n    }\n  };\n\n  HybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if (pos <= (this || _global).threeDElements[i].endPos) {\n        var j = (this || _global).threeDElements[i].startPos;\n        var nextElement;\n\n        while (j < pos) {\n          if ((this || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n            nextElement = (this || _global).elements[j].getBaseElement();\n          }\n\n          j += 1;\n        }\n\n        if (nextElement) {\n          (this || _global).threeDElements[i].container.insertBefore(elem, nextElement);\n        } else {\n          (this || _global).threeDElements[i].container.appendChild(elem);\n        }\n\n        break;\n      }\n\n      i += 1;\n    }\n  };\n\n  HybridRenderer.prototype.configAnimation = function (animData) {\n    var resizerElem = createTag(\"div\");\n    var wrapper = (this || _global).animationItem.wrapper;\n    var style = resizerElem.style;\n    style.width = animData.w + \"px\";\n    style.height = animData.h + \"px\";\n    (this || _global).resizerElem = resizerElem;\n    styleDiv(resizerElem);\n    style.transformStyle = \"flat\";\n    style.mozTransformStyle = \"flat\";\n    style.webkitTransformStyle = \"flat\";\n\n    if ((this || _global).renderConfig.className) {\n      resizerElem.setAttribute(\"class\", (this || _global).renderConfig.className);\n    }\n\n    wrapper.appendChild(resizerElem);\n    style.overflow = \"hidden\";\n    var svg = createNS(\"svg\");\n    svg.setAttribute(\"width\", \"1\");\n    svg.setAttribute(\"height\", \"1\");\n    styleDiv(svg);\n\n    (this || _global).resizerElem.appendChild(svg);\n\n    var defs = createNS(\"defs\");\n    svg.appendChild(defs);\n    (this || _global).data = animData; // Mask animation\n\n    this.setupGlobalData(animData, svg);\n    (this || _global).globalData.defs = defs;\n    (this || _global).layers = animData.layers;\n    (this || _global).layerElement = (this || _global).resizerElem;\n    this.build3dContainers();\n    this.updateContainerSize();\n  };\n\n  HybridRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).animationItem.container = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).elements[i].destroy();\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  HybridRenderer.prototype.updateContainerSize = function () {\n    var elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n    var elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n    var elementRel = elementWidth / elementHeight;\n    var animationRel = (this || _global).globalData.compSize.w / (this || _global).globalData.compSize.h;\n    var sx;\n    var sy;\n    var tx;\n    var ty;\n\n    if (animationRel > elementRel) {\n      sx = elementWidth / (this || _global).globalData.compSize.w;\n      sy = elementWidth / (this || _global).globalData.compSize.w;\n      tx = 0;\n      ty = (elementHeight - (this || _global).globalData.compSize.h * (elementWidth / (this || _global).globalData.compSize.w)) / 2;\n    } else {\n      sx = elementHeight / (this || _global).globalData.compSize.h;\n      sy = elementHeight / (this || _global).globalData.compSize.h;\n      tx = (elementWidth - (this || _global).globalData.compSize.w * (elementHeight / (this || _global).globalData.compSize.h)) / 2;\n      ty = 0;\n    }\n\n    var style = (this || _global).resizerElem.style;\n    style.webkitTransform = \"matrix3d(\" + sx + \",0,0,0,0,\" + sy + \",0,0,0,0,1,0,\" + tx + \",\" + ty + \",0,1)\";\n    style.transform = style.webkitTransform;\n  };\n\n  HybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n  HybridRenderer.prototype.hide = function () {\n    (this || _global).resizerElem.style.display = \"none\";\n  };\n\n  HybridRenderer.prototype.show = function () {\n    (this || _global).resizerElem.style.display = \"block\";\n  };\n\n  HybridRenderer.prototype.initItems = function () {\n    this.buildAllItems();\n\n    if ((this || _global).camera) {\n      (this || _global).camera.setup();\n    } else {\n      var cWidth = (this || _global).globalData.compSize.w;\n      var cHeight = (this || _global).globalData.compSize.h;\n      var i;\n      var len = (this || _global).threeDElements.length;\n\n      for (i = 0; i < len; i += 1) {\n        var style = (this || _global).threeDElements[i].perspectiveElem.style;\n        style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + \"px\";\n        style.perspective = style.webkitPerspective;\n      }\n    }\n  };\n\n  HybridRenderer.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n    var floatingContainer = createTag(\"div\");\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i], floatingContainer, (this || _global).globalData.comp, null);\n        comp.initExpressions();\n\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n  /* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\n\n\n  function MaskElement(data, element, globalData) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).globalData = globalData;\n    (this || _global).storedData = [];\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).maskElement = null;\n    var defs = (this || _global).globalData.defs;\n    var i;\n    var len = (this || _global).masksProperties ? (this || _global).masksProperties.length : 0;\n    (this || _global).viewData = createSizedArray(len);\n    (this || _global).solidPath = \"\";\n    var path;\n    var properties = (this || _global).masksProperties;\n    var count = 0;\n    var currentMasks = [];\n    var j;\n    var jLen;\n    var layerId = createElementID();\n    var rect;\n    var expansor;\n    var feMorph;\n    var x;\n    var maskType = \"clipPath\";\n    var maskRef = \"clip-path\";\n\n    for (i = 0; i < len; i += 1) {\n      if (properties[i].mode !== \"a\" && properties[i].mode !== \"n\" || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n        maskType = \"mask\";\n        maskRef = \"mask\";\n      }\n\n      if ((properties[i].mode === \"s\" || properties[i].mode === \"i\") && count === 0) {\n        rect = createNS(\"rect\");\n        rect.setAttribute(\"fill\", \"#ffffff\");\n        rect.setAttribute(\"width\", (this || _global).element.comp.data.w || 0);\n        rect.setAttribute(\"height\", (this || _global).element.comp.data.h || 0);\n        currentMasks.push(rect);\n      } else {\n        rect = null;\n      }\n\n      path = createNS(\"path\");\n\n      if (properties[i].mode === \"n\") {\n        // TODO move this to a factory or to a constructor\n        (this || _global).viewData[i] = {\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).element, properties[i], 3),\n          elem: path,\n          lastPath: \"\"\n        };\n        defs.appendChild(path);\n      } else {\n        count += 1;\n        path.setAttribute(\"fill\", properties[i].mode === \"s\" ? \"#000000\" : \"#ffffff\");\n        path.setAttribute(\"clip-rule\", \"nonzero\");\n        var filterID;\n\n        if (properties[i].x.k !== 0) {\n          maskType = \"mask\";\n          maskRef = \"mask\";\n          x = PropertyFactory.getProp((this || _global).element, properties[i].x, 0, null, (this || _global).element);\n          filterID = createElementID();\n          expansor = createNS(\"filter\");\n          expansor.setAttribute(\"id\", filterID);\n          feMorph = createNS(\"feMorphology\");\n          feMorph.setAttribute(\"operator\", \"erode\");\n          feMorph.setAttribute(\"in\", \"SourceGraphic\");\n          feMorph.setAttribute(\"radius\", \"0\");\n          expansor.appendChild(feMorph);\n          defs.appendChild(expansor);\n          path.setAttribute(\"stroke\", properties[i].mode === \"s\" ? \"#000000\" : \"#ffffff\");\n        } else {\n          feMorph = null;\n          x = null;\n        } // TODO move this to a factory or to a constructor\n\n\n        (this || _global).storedData[i] = {\n          elem: path,\n          x: x,\n          expan: feMorph,\n          lastPath: \"\",\n          lastOperator: \"\",\n          filterId: filterID,\n          lastRadius: 0\n        };\n\n        if (properties[i].mode === \"i\") {\n          jLen = currentMasks.length;\n          var g = createNS(\"g\");\n\n          for (j = 0; j < jLen; j += 1) {\n            g.appendChild(currentMasks[j]);\n          }\n\n          var mask = createNS(\"mask\");\n          mask.setAttribute(\"mask-type\", \"alpha\");\n          mask.setAttribute(\"id\", layerId + \"_\" + count);\n          mask.appendChild(path);\n          defs.appendChild(mask);\n          g.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + layerId + \"_\" + count + \")\");\n          currentMasks.length = 0;\n          currentMasks.push(g);\n        } else {\n          currentMasks.push(path);\n        }\n\n        if (properties[i].inv && !(this || _global).solidPath) {\n          (this || _global).solidPath = this.createLayerSolidPath();\n        } // TODO move this to a factory or to a constructor\n\n\n        (this || _global).viewData[i] = {\n          elem: path,\n          lastPath: \"\",\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).element, properties[i], 3),\n          invRect: rect\n        };\n\n        if (!(this || _global).viewData[i].prop.k) {\n          this.drawPath(properties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n        }\n      }\n    }\n\n    (this || _global).maskElement = createNS(maskType);\n    len = currentMasks.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).maskElement.appendChild(currentMasks[i]);\n    }\n\n    if (count > 0) {\n      (this || _global).maskElement.setAttribute(\"id\", layerId);\n\n      (this || _global).element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\n\n      defs.appendChild((this || _global).maskElement);\n    }\n\n    if ((this || _global).viewData.length) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  MaskElement.prototype.getMaskProperty = function (pos) {\n    return (this || _global).viewData[pos].prop;\n  };\n\n  MaskElement.prototype.renderFrame = function (isFirstFrame) {\n    var finalMat = (this || _global).element.finalTransform.mat;\n    var i;\n    var len = (this || _global).masksProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).viewData[i].prop._mdf || isFirstFrame) {\n        this.drawPath((this || _global).masksProperties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n      }\n\n      if ((this || _global).viewData[i].op._mdf || isFirstFrame) {\n        (this || _global).viewData[i].elem.setAttribute(\"fill-opacity\", (this || _global).viewData[i].op.v);\n      }\n\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).viewData[i].invRect && ((this || _global).element.finalTransform.mProp._mdf || isFirstFrame)) {\n          (this || _global).viewData[i].invRect.setAttribute(\"transform\", finalMat.getInverseMatrix().to2dCSS());\n        }\n\n        if ((this || _global).storedData[i].x && ((this || _global).storedData[i].x._mdf || isFirstFrame)) {\n          var feMorph = (this || _global).storedData[i].expan;\n\n          if ((this || _global).storedData[i].x.v < 0) {\n            if ((this || _global).storedData[i].lastOperator !== \"erode\") {\n              (this || _global).storedData[i].lastOperator = \"erode\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + (this || _global).storedData[i].filterId + \")\");\n            }\n\n            feMorph.setAttribute(\"radius\", -(this || _global).storedData[i].x.v);\n          } else {\n            if ((this || _global).storedData[i].lastOperator !== \"dilate\") {\n              (this || _global).storedData[i].lastOperator = \"dilate\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", null);\n            }\n\n            (this || _global).storedData[i].elem.setAttribute(\"stroke-width\", (this || _global).storedData[i].x.v * 2);\n          }\n        }\n      }\n    }\n  };\n\n  MaskElement.prototype.getMaskelement = function () {\n    return (this || _global).maskElement;\n  };\n\n  MaskElement.prototype.createLayerSolidPath = function () {\n    var path = \"M0,0 \";\n    path += \" h\" + (this || _global).globalData.compSize.w;\n    path += \" v\" + (this || _global).globalData.compSize.h;\n    path += \" h-\" + (this || _global).globalData.compSize.w;\n    path += \" v-\" + (this || _global).globalData.compSize.h + \" \";\n    return path;\n  };\n\n  MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n    var pathString = \" M\" + pathNodes.v[0][0] + \",\" + pathNodes.v[0][1];\n    var i;\n    var len;\n    len = pathNodes._length;\n\n    for (i = 1; i < len; i += 1) {\n      // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n      pathString += \" C\" + pathNodes.o[i - 1][0] + \",\" + pathNodes.o[i - 1][1] + \" \" + pathNodes.i[i][0] + \",\" + pathNodes.i[i][1] + \" \" + pathNodes.v[i][0] + \",\" + pathNodes.v[i][1];\n    } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n    if (pathNodes.c && len > 1) {\n      pathString += \" C\" + pathNodes.o[i - 1][0] + \",\" + pathNodes.o[i - 1][1] + \" \" + pathNodes.i[0][0] + \",\" + pathNodes.i[0][1] + \" \" + pathNodes.v[0][0] + \",\" + pathNodes.v[0][1];\n    } // pathNodes.__renderedString = pathString;\n\n\n    if (viewData.lastPath !== pathString) {\n      var pathShapeValue = \"\";\n\n      if (viewData.elem) {\n        if (pathNodes.c) {\n          pathShapeValue = pathData.inv ? (this || _global).solidPath + pathString : pathString;\n        }\n\n        viewData.elem.setAttribute(\"d\", pathShapeValue);\n      }\n\n      viewData.lastPath = pathString;\n    }\n  };\n\n  MaskElement.prototype.destroy = function () {\n    (this || _global).element = null;\n    (this || _global).globalData = null;\n    (this || _global).maskElement = null;\n    (this || _global).data = null;\n    (this || _global).masksProperties = null;\n  };\n  /**\r\n   * @file\r\n   * Handles AE's layer parenting property.\r\n   *\r\n   */\n\n\n  function HierarchyElement() {}\n\n  HierarchyElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes hierarchy properties\r\n       *\r\n       */\n    initHierarchy: function () {\n      // element's parent list\n      (this || _global).hierarchy = []; // if element is parent of another layer _isParent will be true\n\n      (this || _global)._isParent = false;\n      this.checkParenting();\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer's hierarchy.\r\n       * @param {array} hierarch\r\n       * layer's parent list\r\n       *\r\n       */\n    setHierarchy: function (hierarchy) {\n      (this || _global).hierarchy = hierarchy;\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer as parent.\r\n       *\r\n       */\n    setAsParent: function () {\n      (this || _global)._isParent = true;\n    },\n\n    /**\r\n       * @function\r\n       * Searches layer's parenting chain\r\n       *\r\n       */\n    checkParenting: function () {\n      if ((this || _global).data.parent !== undefined) {\n        (this || _global).comp.buildElementParenting(this || _global, (this || _global).data.parent, []);\n      }\n    }\n  };\n  /**\r\n   * @file\r\n   * Handles element's layer frame update.\r\n   * Checks layer in point and out point\r\n   *\r\n   */\n\n  function FrameElement() {}\n\n  FrameElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       */\n    initFrame: function () {\n      // set to true when inpoint is rendered\n      (this || _global)._isFirstFrame = false; // list of animated properties\n\n      (this || _global).dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n      (this || _global)._mdf = false;\n    },\n\n    /**\r\n       * @function\r\n       * Calculates all dynamic values\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       * @param {boolean} isVisible\r\n       * if layers is currently in range\r\n       *\r\n       */\n    prepareProperties: function (num, isVisible) {\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (isVisible || (this || _global)._isParent && (this || _global).dynamicProperties[i].propType === \"transform\") {\n          (this || _global).dynamicProperties[i].getValue();\n\n          if ((this || _global).dynamicProperties[i]._mdf) {\n            (this || _global).globalData._mdf = true;\n            (this || _global)._mdf = true;\n          }\n        }\n      }\n    },\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n      }\n    }\n  };\n  /* global TransformPropertyFactory, Matrix */\n\n  function TransformElement() {}\n\n  TransformElement.prototype = {\n    initTransform: function () {\n      (this || _global).finalTransform = {\n        mProp: (this || _global).data.ks ? TransformPropertyFactory.getTransformProperty(this || _global, (this || _global).data.ks, this || _global) : {\n          o: 0\n        },\n        _matMdf: false,\n        _opMdf: false,\n        mat: new Matrix()\n      };\n\n      if ((this || _global).data.ao) {\n        (this || _global).finalTransform.mProp.autoOriented = true;\n      } // TODO: check TYPE 11: Guided elements\n\n\n      if ((this || _global).data.ty !== 11) {// this.createElements();\n      }\n    },\n    renderTransform: function () {\n      (this || _global).finalTransform._opMdf = (this || _global).finalTransform.mProp.o._mdf || (this || _global)._isFirstFrame;\n      (this || _global).finalTransform._matMdf = (this || _global).finalTransform.mProp._mdf || (this || _global)._isFirstFrame;\n\n      if ((this || _global).hierarchy) {\n        var mat;\n        var finalMat = (this || _global).finalTransform.mat;\n        var i = 0;\n        var len = (this || _global).hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n        if (!(this || _global).finalTransform._matMdf) {\n          while (i < len) {\n            if ((this || _global).hierarchy[i].finalTransform.mProp._mdf) {\n              (this || _global).finalTransform._matMdf = true;\n              break;\n            }\n\n            i += 1;\n          }\n        }\n\n        if ((this || _global).finalTransform._matMdf) {\n          mat = (this || _global).finalTransform.mProp.v.props;\n          finalMat.cloneFromProps(mat);\n\n          for (i = 0; i < len; i += 1) {\n            mat = (this || _global).hierarchy[i].finalTransform.mProp.v.props;\n            finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n          }\n        }\n      }\n    },\n    globalToLocal: function (pt) {\n      var transforms = [];\n      transforms.push((this || _global).finalTransform);\n      var flag = true;\n      var comp = (this || _global).comp;\n\n      while (flag) {\n        if (comp.finalTransform) {\n          if (comp.data.hasMask) {\n            transforms.splice(0, 0, comp.finalTransform);\n          }\n\n          comp = comp.comp;\n        } else {\n          flag = false;\n        }\n      }\n\n      var i;\n      var len = transforms.length;\n      var ptNew;\n\n      for (i = 0; i < len; i += 1) {\n        ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n        pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n      }\n\n      return pt;\n    },\n    mHelper: new Matrix()\n  };\n\n  function RenderableElement() {}\n\n  RenderableElement.prototype = {\n    initRenderable: function () {\n      // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n      (this || _global).isInRange = false; // layer's display state\n\n      (this || _global).hidden = false; // If layer's transparency equals 0, it can be hidden\n\n      (this || _global).isTransparent = false; // list of animated components\n\n      (this || _global).renderableComponents = [];\n    },\n    addRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) === -1) {\n        (this || _global).renderableComponents.push(component);\n      }\n    },\n    removeRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) !== -1) {\n        (this || _global).renderableComponents.splice((this || _global).renderableComponents.indexOf(component), 1);\n      }\n    },\n    prepareRenderableFrame: function (num) {\n      this.checkLayerLimits(num);\n    },\n    checkTransparency: function () {\n      if ((this || _global).finalTransform.mProp.o.v <= 0) {\n        if (!(this || _global).isTransparent && (this || _global).globalData.renderConfig.hideOnTransparent) {\n          (this || _global).isTransparent = true;\n          this.hide();\n        }\n      } else if ((this || _global).isTransparent) {\n        (this || _global).isTransparent = false;\n        this.show();\n      }\n    },\n\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       *\r\n       */\n    checkLayerLimits: function (num) {\n      if ((this || _global).data.ip - (this || _global).data.st <= num && (this || _global).data.op - (this || _global).data.st > num) {\n        if ((this || _global).isInRange !== true) {\n          (this || _global).globalData._mdf = true;\n          (this || _global)._mdf = true;\n          (this || _global).isInRange = true;\n          this.show();\n        }\n      } else if ((this || _global).isInRange !== false) {\n        (this || _global).globalData._mdf = true;\n        (this || _global).isInRange = false;\n        this.hide();\n      }\n    },\n    renderRenderable: function () {\n      var i;\n      var len = (this || _global).renderableComponents.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).renderableComponents[i].renderFrame((this || _global)._isFirstFrame);\n      }\n      /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n          this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n    },\n    sourceRectAtTime: function () {\n      return {\n        top: 0,\n        left: 0,\n        width: 100,\n        height: 100\n      };\n    },\n    getLayerSize: function () {\n      if ((this || _global).data.ty === 5) {\n        return {\n          w: (this || _global).data.textData.width,\n          h: (this || _global).data.textData.height\n        };\n      }\n\n      return {\n        w: (this || _global).data.width,\n        h: (this || _global).data.height\n      };\n    }\n  };\n  /* global extendPrototype, RenderableElement, createProxyFunction */\n\n  function RenderableDOMElement() {}\n\n  (function () {\n    var _prototype = {\n      initElement: function (data, globalData, comp) {\n        this.initFrame();\n        this.initBaseData(data, globalData, comp);\n        this.initTransform(data, globalData, comp);\n        this.initHierarchy();\n        this.initRenderable();\n        this.initRendererElement();\n        this.createContainerElements();\n        this.createRenderableComponents();\n        this.createContent();\n        this.hide();\n      },\n      hide: function () {\n        if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n          var elem = (this || _global).baseElement || (this || _global).layerElement;\n          elem.style.display = \"none\";\n          (this || _global).hidden = true;\n        }\n      },\n      show: function () {\n        if ((this || _global).isInRange && !(this || _global).isTransparent) {\n          if (!(this || _global).data.hd) {\n            var elem = (this || _global).baseElement || (this || _global).layerElement;\n            elem.style.display = \"block\";\n          }\n\n          (this || _global).hidden = false;\n          (this || _global)._isFirstFrame = true;\n        }\n      },\n      renderFrame: function () {\n        // If it is exported as hidden (data.hd === true) no need to render\n        // If it is not visible no need to render\n        if ((this || _global).data.hd || (this || _global).hidden) {\n          return;\n        }\n\n        this.renderTransform();\n        this.renderRenderable();\n        this.renderElement();\n        this.renderInnerContent();\n\n        if ((this || _global)._isFirstFrame) {\n          (this || _global)._isFirstFrame = false;\n        }\n      },\n      renderInnerContent: function () {},\n      prepareFrame: function (num) {\n        (this || _global)._mdf = false;\n        this.prepareRenderableFrame(num);\n        this.prepareProperties(num, (this || _global).isInRange);\n        this.checkTransparency();\n      },\n      destroy: function () {\n        (this || _global).innerElem = null;\n        this.destroyBaseElement();\n      }\n    };\n    extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n  })();\n  /* exported ProcessedElement */\n\n\n  function ProcessedElement(element, position) {\n    (this || _global).elem = element;\n    (this || _global).pos = position;\n  }\n  /* global createNS */\n\n\n  function SVGStyleData(data, level) {\n    (this || _global).data = data;\n    (this || _global).type = data.ty;\n    (this || _global).d = \"\";\n    (this || _global).lvl = level;\n    (this || _global)._mdf = false;\n    (this || _global).closed = data.hd === true;\n    (this || _global).pElem = createNS(\"path\");\n    (this || _global).msElem = null;\n  }\n\n  SVGStyleData.prototype.reset = function () {\n    (this || _global).d = \"\";\n    (this || _global)._mdf = false;\n  };\n\n  function SVGShapeData(transformers, level, shape) {\n    (this || _global).caches = [];\n    (this || _global).styles = [];\n    (this || _global).transformers = transformers;\n    (this || _global).lStr = \"\";\n    (this || _global).sh = shape;\n    (this || _global).lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n    // For now, since shapes add up with other shapes. They have to be calculated every time.\n    // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n    (this || _global)._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n    var i = 0;\n    var len = transformers.length;\n\n    while (i < len) {\n      if (transformers[i].mProps.dynamicProperties.length) {\n        (this || _global)._isAnimated = true;\n        break;\n      }\n\n      i += 1;\n    }\n  }\n\n  SVGShapeData.prototype.setAsAnimated = function () {\n    (this || _global)._isAnimated = true;\n  };\n  /* exported SVGTransformData */\n\n\n  function SVGTransformData(mProps, op, container) {\n    (this || _global).transform = {\n      mProps: mProps,\n      op: op,\n      container: container\n    };\n    (this || _global).elements = [];\n    (this || _global)._isAnimated = (this || _global).transform.mProps.dynamicProperties.length || (this || _global).transform.op.effectsSequence.length;\n  }\n  /* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function SVGStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n  /* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function SVGFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n  /* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\n  extendPrototype, DynamicPropertyContainer */\n\n  function SVGGradientFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    this.initGradientData(elem, data, styleOb);\n  }\n\n  SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, null, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 1, null, this || _global);\n    (this || _global).h = PropertyFactory.getProp(elem, data.h || {\n      k: 0\n    }, 0, 0.01, this || _global);\n    (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n      k: 0\n    }, 0, degToRads, this || _global);\n    (this || _global).g = new GradientProperty(elem, data.g, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global).stops = [];\n    this.setGradientData(styleOb.pElem, data);\n    this.setGradientOpacity(data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n    var gradientId = createElementID();\n    var gfill = createNS(data.t === 1 ? \"linearGradient\" : \"radialGradient\");\n    gfill.setAttribute(\"id\", gradientId);\n    gfill.setAttribute(\"spreadMethod\", \"pad\");\n    gfill.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n    var stops = [];\n    var stop;\n    var j;\n    var jLen;\n    jLen = data.g.p * 4;\n\n    for (j = 0; j < jLen; j += 4) {\n      stop = createNS(\"stop\");\n      gfill.appendChild(stop);\n      stops.push(stop);\n    }\n\n    pathElement.setAttribute(data.ty === \"gf\" ? \"fill\" : \"stroke\", \"url(\" + locationHref + \"#\" + gradientId + \")\");\n    (this || _global).gf = gfill;\n    (this || _global).cst = stops;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n    if ((this || _global).g._hasOpacity && !(this || _global).g._collapsable) {\n      var stop;\n      var j;\n      var jLen;\n      var mask = createNS(\"mask\");\n      var maskElement = createNS(\"path\");\n      mask.appendChild(maskElement);\n      var opacityId = createElementID();\n      var maskId = createElementID();\n      mask.setAttribute(\"id\", maskId);\n      var opFill = createNS(data.t === 1 ? \"linearGradient\" : \"radialGradient\");\n      opFill.setAttribute(\"id\", opacityId);\n      opFill.setAttribute(\"spreadMethod\", \"pad\");\n      opFill.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n      jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n      var stops = (this || _global).stops;\n\n      for (j = data.g.p * 4; j < jLen; j += 2) {\n        stop = createNS(\"stop\");\n        stop.setAttribute(\"stop-color\", \"rgb(255,255,255)\");\n        opFill.appendChild(stop);\n        stops.push(stop);\n      }\n\n      maskElement.setAttribute(data.ty === \"gf\" ? \"fill\" : \"stroke\", \"url(\" + locationHref + \"#\" + opacityId + \")\");\n      (this || _global).of = opFill;\n      (this || _global).ms = mask;\n      (this || _global).ost = stops;\n      (this || _global).maskId = maskId;\n      styleOb.msElem = maskElement;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n  /* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\n\n  function SVGGradientStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    this.initGradientData(elem, data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n  /* global createNS */\n\n  /* exported ShapeGroupData */\n\n  function ShapeGroupData() {\n    (this || _global).it = [];\n    (this || _global).prevViewData = [];\n    (this || _global).gr = createNS(\"g\");\n  }\n  /* global Matrix, buildShapeString, bmFloor */\n\n  /* exported SVGElementsRenderer */\n\n\n  var SVGElementsRenderer = function () {\n    var _identityMatrix = new Matrix();\n\n    var _matrixHelper = new Matrix();\n\n    var ob = {\n      createRenderFunction: createRenderFunction\n    };\n\n    function createRenderFunction(data) {\n      switch (data.ty) {\n        case \"fl\":\n          return renderFill;\n\n        case \"gf\":\n          return renderGradient;\n\n        case \"gs\":\n          return renderGradientStroke;\n\n        case \"st\":\n          return renderStroke;\n\n        case \"sh\":\n        case \"el\":\n        case \"rc\":\n        case \"sr\":\n          return renderPath;\n\n        case \"tr\":\n          return renderContentTransform;\n\n        default:\n          return null;\n      }\n    }\n\n    function renderContentTransform(styleData, itemData, isFirstFrame) {\n      if (isFirstFrame || itemData.transform.op._mdf) {\n        itemData.transform.container.setAttribute(\"opacity\", itemData.transform.op.v);\n      }\n\n      if (isFirstFrame || itemData.transform.mProps._mdf) {\n        itemData.transform.container.setAttribute(\"transform\", itemData.transform.mProps.v.to2dCSS());\n      }\n    }\n\n    function renderPath(styleData, itemData, isFirstFrame) {\n      var j;\n      var jLen;\n      var pathStringTransformed;\n      var redraw;\n      var pathNodes;\n      var l;\n      var lLen = itemData.styles.length;\n      var lvl = itemData.lvl;\n      var paths;\n      var mat;\n      var props;\n      var iterations;\n      var k;\n\n      for (l = 0; l < lLen; l += 1) {\n        redraw = itemData.sh._mdf || isFirstFrame;\n\n        if (itemData.styles[l].lvl < lvl) {\n          mat = _matrixHelper.reset();\n          iterations = lvl - itemData.styles[l].lvl;\n          k = itemData.transformers.length - 1;\n\n          while (!redraw && iterations > 0) {\n            redraw = itemData.transformers[k].mProps._mdf || redraw;\n            iterations -= 1;\n            k -= 1;\n          }\n\n          if (redraw) {\n            iterations = lvl - itemData.styles[l].lvl;\n            k = itemData.transformers.length - 1;\n\n            while (iterations > 0) {\n              props = itemData.transformers[k].mProps.v.props;\n              mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n              iterations -= 1;\n              k -= 1;\n            }\n          }\n        } else {\n          mat = _identityMatrix;\n        }\n\n        paths = itemData.sh.paths;\n        jLen = paths._length;\n\n        if (redraw) {\n          pathStringTransformed = \"\";\n\n          for (j = 0; j < jLen; j += 1) {\n            pathNodes = paths.shapes[j];\n\n            if (pathNodes && pathNodes._length) {\n              pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n            }\n          }\n\n          itemData.caches[l] = pathStringTransformed;\n        } else {\n          pathStringTransformed = itemData.caches[l];\n        }\n\n        itemData.styles[l].d += styleData.hd === true ? \"\" : pathStringTransformed;\n        itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n      }\n    }\n\n    function renderFill(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n\n      if (itemData.c._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"fill\", \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\");\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"fill-opacity\", itemData.o.v);\n      }\n    }\n\n    function renderGradientStroke(styleData, itemData, isFirstFrame) {\n      renderGradient(styleData, itemData, isFirstFrame);\n      renderStroke(styleData, itemData, isFirstFrame);\n    }\n\n    function renderGradient(styleData, itemData, isFirstFrame) {\n      var gfill = itemData.gf;\n      var hasOpacity = itemData.g._hasOpacity;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (itemData.o._mdf || isFirstFrame) {\n        var attr = styleData.ty === \"gf\" ? \"fill-opacity\" : \"stroke-opacity\";\n        itemData.style.pElem.setAttribute(attr, itemData.o.v);\n      }\n\n      if (itemData.s._mdf || isFirstFrame) {\n        var attr1 = styleData.t === 1 ? \"x1\" : \"cx\";\n        var attr2 = attr1 === \"x1\" ? \"y1\" : \"cy\";\n        gfill.setAttribute(attr1, pt1[0]);\n        gfill.setAttribute(attr2, pt1[1]);\n\n        if (hasOpacity && !itemData.g._collapsable) {\n          itemData.of.setAttribute(attr1, pt1[0]);\n          itemData.of.setAttribute(attr2, pt1[1]);\n        }\n      }\n\n      var stops;\n      var i;\n      var len;\n      var stop;\n\n      if (itemData.g._cmdf || isFirstFrame) {\n        stops = itemData.cst;\n        var cValues = itemData.g.c;\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n          stop.setAttribute(\"offset\", cValues[i * 4] + \"%\");\n          stop.setAttribute(\"stop-color\", \"rgb(\" + cValues[i * 4 + 1] + \",\" + cValues[i * 4 + 2] + \",\" + cValues[i * 4 + 3] + \")\");\n        }\n      }\n\n      if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n        var oValues = itemData.g.o;\n\n        if (itemData.g._collapsable) {\n          stops = itemData.cst;\n        } else {\n          stops = itemData.ost;\n        }\n\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n\n          if (!itemData.g._collapsable) {\n            stop.setAttribute(\"offset\", oValues[i * 2] + \"%\");\n          }\n\n          stop.setAttribute(\"stop-opacity\", oValues[i * 2 + 1]);\n        }\n      }\n\n      if (styleData.t === 1) {\n        if (itemData.e._mdf || isFirstFrame) {\n          gfill.setAttribute(\"x2\", pt2[0]);\n          gfill.setAttribute(\"y2\", pt2[1]);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"x2\", pt2[0]);\n            itemData.of.setAttribute(\"y2\", pt2[1]);\n          }\n        }\n      } else {\n        var rad;\n\n        if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n          rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          gfill.setAttribute(\"r\", rad);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"r\", rad);\n          }\n        }\n\n        if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n          if (!rad) {\n            rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          }\n\n          var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n          var percent = itemData.h.v;\n\n          if (percent >= 1) {\n            percent = 0.99;\n          } else if (percent <= -1) {\n            percent = -0.99;\n          }\n\n          var dist = rad * percent;\n          var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n          var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n          gfill.setAttribute(\"fx\", x);\n          gfill.setAttribute(\"fy\", y);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"fx\", x);\n            itemData.of.setAttribute(\"fy\", y);\n          }\n        } // gfill.setAttribute('fy','200');\n\n      }\n    }\n\n    function renderStroke(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n      var d = itemData.d;\n\n      if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n        styleElem.pElem.setAttribute(\"stroke-dasharray\", d.dashStr);\n        styleElem.pElem.setAttribute(\"stroke-dashoffset\", d.dashoffset[0]);\n      }\n\n      if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n        styleElem.pElem.setAttribute(\"stroke\", \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\");\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"stroke-opacity\", itemData.o.v);\n      }\n\n      if (itemData.w._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"stroke-width\", itemData.w.v);\n\n        if (styleElem.msElem) {\n          styleElem.msElem.setAttribute(\"stroke-width\", itemData.w.v);\n        }\n      }\n    }\n\n    return ob;\n  }();\n  /* global Matrix */\n\n\n  function ShapeTransformManager() {\n    (this || _global).sequences = {};\n    (this || _global).sequenceList = [];\n    (this || _global).transform_key_count = 0;\n  }\n\n  ShapeTransformManager.prototype = {\n    addTransformSequence: function (transforms) {\n      var i;\n      var len = transforms.length;\n      var key = \"_\";\n\n      for (i = 0; i < len; i += 1) {\n        key += transforms[i].transform.key + \"_\";\n      }\n\n      var sequence = (this || _global).sequences[key];\n\n      if (!sequence) {\n        sequence = {\n          transforms: [].concat(transforms),\n          finalTransform: new Matrix(),\n          _mdf: false\n        };\n        (this || _global).sequences[key] = sequence;\n\n        (this || _global).sequenceList.push(sequence);\n      }\n\n      return sequence;\n    },\n    processSequence: function (sequence, isFirstFrame) {\n      var i = 0;\n      var len = sequence.transforms.length;\n      var _mdf = isFirstFrame;\n\n      while (i < len && !isFirstFrame) {\n        if (sequence.transforms[i].transform.mProps._mdf) {\n          _mdf = true;\n          break;\n        }\n\n        i += 1;\n      }\n\n      if (_mdf) {\n        var props;\n        sequence.finalTransform.reset();\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          props = sequence.transforms[i].transform.mProps.v.props;\n          sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n        }\n      }\n\n      sequence._mdf = _mdf;\n    },\n    processSequences: function (isFirstFrame) {\n      var i;\n      var len = (this || _global).sequenceList.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.processSequence((this || _global).sequenceList[i], isFirstFrame);\n      }\n    },\n    getNewKey: function () {\n      (this || _global).transform_key_count += 1;\n      return \"_\" + (this || _global).transform_key_count;\n    }\n  };\n  /* global ShapePropertyFactory, SVGShapeData */\n\n  function CVShapeData(element, data, styles, transformsManager) {\n    (this || _global).styledShapes = [];\n    (this || _global).tr = [0, 0, 0, 0, 0, 0];\n    var ty = 4;\n\n    if (data.ty === \"rc\") {\n      ty = 5;\n    } else if (data.ty === \"el\") {\n      ty = 6;\n    } else if (data.ty === \"sr\") {\n      ty = 7;\n    }\n\n    (this || _global).sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n    var i;\n    var len = styles.length;\n    var styledShape;\n\n    for (i = 0; i < len; i += 1) {\n      if (!styles[i].closed) {\n        styledShape = {\n          transforms: transformsManager.addTransformSequence(styles[i].transforms),\n          trNodes: []\n        };\n\n        (this || _global).styledShapes.push(styledShape);\n\n        styles[i].elements.push(styledShape);\n      }\n    }\n  }\n\n  CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n  /* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\n  TextExpressionInterface, getBlendMode,createElementID, EffectsManager */\n\n  function BaseElement() {}\n\n  BaseElement.prototype = {\n    checkMasks: function () {\n      if (!(this || _global).data.hasMask) {\n        return false;\n      }\n\n      var i = 0;\n      var len = (this || _global).data.masksProperties.length;\n\n      while (i < len) {\n        if ((this || _global).data.masksProperties[i].mode !== \"n\" && (this || _global).data.masksProperties[i].cl !== false) {\n          return true;\n        }\n\n        i += 1;\n      }\n\n      return false;\n    },\n    initExpressions: function () {\n      (this || _global).layerInterface = LayerExpressionInterface(this || _global);\n\n      if ((this || _global).data.hasMask && (this || _global).maskManager) {\n        (this || _global).layerInterface.registerMaskInterface((this || _global).maskManager);\n      }\n\n      var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this || _global, (this || _global).layerInterface);\n\n      (this || _global).layerInterface.registerEffectsInterface(effectsInterface);\n\n      if ((this || _global).data.ty === 0 || (this || _global).data.xt) {\n        (this || _global).compInterface = CompExpressionInterface(this || _global);\n      } else if ((this || _global).data.ty === 4) {\n        (this || _global).layerInterface.shapeInterface = ShapeExpressionInterface((this || _global).shapesData, (this || _global).itemsData, (this || _global).layerInterface);\n        (this || _global).layerInterface.content = (this || _global).layerInterface.shapeInterface;\n      } else if ((this || _global).data.ty === 5) {\n        (this || _global).layerInterface.textInterface = TextExpressionInterface(this || _global);\n        (this || _global).layerInterface.text = (this || _global).layerInterface.textInterface;\n      }\n    },\n    setBlendMode: function () {\n      var blendModeValue = getBlendMode((this || _global).data.bm);\n      var elem = (this || _global).baseElement || (this || _global).layerElement;\n      elem.style[\"mix-blend-mode\"] = blendModeValue;\n    },\n    initBaseData: function (data, globalData, comp) {\n      (this || _global).globalData = globalData;\n      (this || _global).comp = comp;\n      (this || _global).data = data;\n      (this || _global).layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n      if (!(this || _global).data.sr) {\n        (this || _global).data.sr = 1;\n      } // effects manager\n\n\n      (this || _global).effectsManager = new EffectsManager((this || _global).data, this || _global, (this || _global).dynamicProperties);\n    },\n    getType: function () {\n      return (this || _global).type;\n    },\n    sourceRectAtTime: function () {}\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\n\n  function NullElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initFrame();\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n  }\n\n  NullElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  NullElement.prototype.renderFrame = function () {};\n\n  NullElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  NullElement.prototype.destroy = function () {};\n\n  NullElement.prototype.sourceRectAtTime = function () {};\n\n  NullElement.prototype.hide = function () {};\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n  /* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\n\n  function SVGBaseElement() {}\n\n  SVGBaseElement.prototype = {\n    initRendererElement: function () {\n      (this || _global).layerElement = createNS(\"g\");\n    },\n    createContainerElements: function () {\n      (this || _global).matteElement = createNS(\"g\");\n      (this || _global).transformedElement = (this || _global).layerElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n      (this || _global)._sizeChanged = false;\n      var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n      var filId;\n      var fil;\n      var gg;\n\n      if ((this || _global).data.td) {\n        if ((this || _global).data.td == 3 || (this || _global).data.td == 1) {\n          // eslint-disable-line eqeqeq\n          var masker = createNS(\"mask\");\n          masker.setAttribute(\"id\", (this || _global).layerId);\n          masker.setAttribute(\"mask-type\", (this || _global).data.td == 3 ? \"luminance\" : \"alpha\"); // eslint-disable-line eqeqeq\n\n          masker.appendChild((this || _global).layerElement);\n          layerElementParent = masker;\n\n          (this || _global).globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n\n          if (!featureSupport.maskType && (this || _global).data.td == 1) {\n            // eslint-disable-line eqeqeq\n            masker.setAttribute(\"mask-type\", \"luminance\");\n            filId = createElementID();\n            fil = filtersFactory.createFilter(filId);\n\n            (this || _global).globalData.defs.appendChild(fil);\n\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS(\"g\");\n            gg.appendChild((this || _global).layerElement);\n            layerElementParent = gg;\n            masker.appendChild(gg);\n            gg.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n          }\n        } else if ((this || _global).data.td == 2) {\n          // eslint-disable-line eqeqeq\n          var maskGroup = createNS(\"mask\");\n          maskGroup.setAttribute(\"id\", (this || _global).layerId);\n          maskGroup.setAttribute(\"mask-type\", \"alpha\");\n          var maskGrouper = createNS(\"g\");\n          maskGroup.appendChild(maskGrouper);\n          filId = createElementID();\n          fil = filtersFactory.createFilter(filId); /// /\n          // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n          /* var feColorMatrix = createNS('feColorMatrix');\r\n                  feColorMatrix.setAttribute('type', 'matrix');\r\n                  feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n                  feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n                  fil.appendChild(feColorMatrix); */\n          /// /\n\n          var feCTr = createNS(\"feComponentTransfer\");\n          feCTr.setAttribute(\"in\", \"SourceGraphic\");\n          fil.appendChild(feCTr);\n          var feFunc = createNS(\"feFuncA\");\n          feFunc.setAttribute(\"type\", \"table\");\n          feFunc.setAttribute(\"tableValues\", \"1.0 0.0\");\n          feCTr.appendChild(feFunc); /// /\n\n          (this || _global).globalData.defs.appendChild(fil);\n\n          var alphaRect = createNS(\"rect\");\n          alphaRect.setAttribute(\"width\", (this || _global).comp.data.w);\n          alphaRect.setAttribute(\"height\", (this || _global).comp.data.h);\n          alphaRect.setAttribute(\"x\", \"0\");\n          alphaRect.setAttribute(\"y\", \"0\");\n          alphaRect.setAttribute(\"fill\", \"#ffffff\");\n          alphaRect.setAttribute(\"opacity\", \"0\");\n          maskGrouper.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n          maskGrouper.appendChild(alphaRect);\n          maskGrouper.appendChild((this || _global).layerElement);\n          layerElementParent = maskGrouper;\n\n          if (!featureSupport.maskType) {\n            maskGroup.setAttribute(\"mask-type\", \"luminance\");\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS(\"g\");\n            maskGrouper.appendChild(alphaRect);\n            gg.appendChild((this || _global).layerElement);\n            layerElementParent = gg;\n            maskGrouper.appendChild(gg);\n          }\n\n          (this || _global).globalData.defs.appendChild(maskGroup);\n        }\n      } else if ((this || _global).data.tt) {\n        (this || _global).matteElement.appendChild((this || _global).layerElement);\n\n        layerElementParent = (this || _global).matteElement;\n        (this || _global).baseElement = (this || _global).matteElement;\n      } else {\n        (this || _global).baseElement = (this || _global).layerElement;\n      }\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).data.cl);\n      } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n      if ((this || _global).data.ty === 0 && !(this || _global).data.hd) {\n        var cp = createNS(\"clipPath\");\n        var pt = createNS(\"path\");\n        pt.setAttribute(\"d\", \"M0,0 L\" + (this || _global).data.w + \",0 L\" + (this || _global).data.w + \",\" + (this || _global).data.h + \" L0,\" + (this || _global).data.h + \"z\");\n        var clipId = createElementID();\n        cp.setAttribute(\"id\", clipId);\n        cp.appendChild(pt);\n\n        (this || _global).globalData.defs.appendChild(cp);\n\n        if (this.checkMasks()) {\n          var cpGroup = createNS(\"g\");\n          cpGroup.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n          cpGroup.appendChild((this || _global).layerElement);\n          (this || _global).transformedElement = cpGroup;\n\n          if (layerElementParent) {\n            layerElementParent.appendChild((this || _global).transformedElement);\n          } else {\n            (this || _global).baseElement = (this || _global).transformedElement;\n          }\n        } else {\n          (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n        }\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      if ((this || _global).finalTransform._matMdf) {\n        (this || _global).transformedElement.setAttribute(\"transform\", (this || _global).finalTransform.mat.to2dCSS());\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        (this || _global).transformedElement.setAttribute(\"opacity\", (this || _global).finalTransform.mProp.o.v);\n      }\n    },\n    destroyBaseElement: function () {\n      (this || _global).layerElement = null;\n      (this || _global).matteElement = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    getBaseElement: function () {\n      if ((this || _global).data.hd) {\n        return null;\n      }\n\n      return (this || _global).baseElement;\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n      (this || _global).renderableEffectsManager = new SVGEffects(this || _global);\n    },\n    setMatte: function (id) {\n      if (!(this || _global).matteElement) {\n        return;\n      }\n\n      (this || _global).matteElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n    }\n  };\n  /* global ProcessedElement */\n\n  function IShapeElement() {}\n\n  IShapeElement.prototype = {\n    addShapeToModifiers: function (data) {\n      var i;\n      var len = (this || _global).shapeModifiers.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapeModifiers[i].addShape(data);\n      }\n    },\n    isShapeInAnimatedModifiers: function (data) {\n      var i = 0;\n      var len = (this || _global).shapeModifiers.length;\n\n      while (i < len) {\n        if ((this || _global).shapeModifiers[i].isAnimatedWithShape(data)) {\n          return true;\n        }\n      }\n\n      return false;\n    },\n    renderModifiers: function () {\n      if (!(this || _global).shapeModifiers.length) {\n        return;\n      }\n\n      var i;\n      var len = (this || _global).shapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapes[i].sh.reset();\n      }\n\n      len = (this || _global).shapeModifiers.length;\n      var shouldBreakProcess;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shouldBreakProcess = (this || _global).shapeModifiers[i].processShapes((this || _global)._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n        // TODO: find a better solution for this\n\n        if (shouldBreakProcess) {\n          break;\n        }\n      }\n    },\n    lcEnum: {\n      1: \"butt\",\n      2: \"round\",\n      3: \"square\"\n    },\n    ljEnum: {\n      1: \"miter\",\n      2: \"round\",\n      3: \"bevel\"\n    },\n    searchProcessedElement: function (elem) {\n      var elements = (this || _global).processedElements;\n      var i = 0;\n      var len = elements.length;\n\n      while (i < len) {\n        if (elements[i].elem === elem) {\n          return elements[i].pos;\n        }\n\n        i += 1;\n      }\n\n      return 0;\n    },\n    addProcessedElement: function (elem, pos) {\n      var elements = (this || _global).processedElements;\n      var i = elements.length;\n\n      while (i) {\n        i -= 1;\n\n        if (elements[i].elem === elem) {\n          elements[i].pos = pos;\n          return;\n        }\n      }\n\n      elements.push(new ProcessedElement(elem, pos));\n    },\n    prepareFrame: function (num) {\n      this.prepareRenderableFrame(num);\n      this.prepareProperties(num, (this || _global).isInRange);\n    }\n  };\n  /* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\n\n  function ITextElement() {}\n\n  ITextElement.prototype.initElement = function (data, globalData, comp) {\n    (this || _global).lettersChangedFlag = true;\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    (this || _global).textProperty = new TextProperty(this || _global, data.t, (this || _global).dynamicProperties);\n    (this || _global).textAnimator = new TextAnimatorProperty(data.t, (this || _global).renderType, this || _global);\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n    this.initRenderable();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n    this.createContent();\n    this.hide();\n\n    (this || _global).textAnimator.searchProperties((this || _global).dynamicProperties);\n  };\n\n  ITextElement.prototype.prepareFrame = function (num) {\n    (this || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if ((this || _global).textProperty._mdf || (this || _global).textProperty._isFirstFrame) {\n      this.buildNewText();\n      (this || _global).textProperty._isFirstFrame = false;\n      (this || _global).textProperty._mdf = false;\n    }\n  };\n\n  ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n    var j;\n    var jLen = shapes.length;\n    var pathNodes;\n    var shapeStr = \"\";\n\n    for (j = 0; j < jLen; j += 1) {\n      pathNodes = shapes[j].ks.k;\n      shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n    }\n\n    return shapeStr;\n  };\n\n  ITextElement.prototype.updateDocumentData = function (newData, index) {\n    (this || _global).textProperty.updateDocumentData(newData, index);\n  };\n\n  ITextElement.prototype.canResizeFont = function (_canResize) {\n    (this || _global).textProperty.canResizeFont(_canResize);\n  };\n\n  ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n    (this || _global).textProperty.setMinimumFontSize(_fontSize);\n  };\n\n  ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n    if (documentData.ps) {\n      matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n    }\n\n    matrixHelper.translate(0, -documentData.ls, 0);\n\n    switch (documentData.j) {\n      case 1:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n        break;\n\n      case 2:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n        break;\n\n      default:\n        break;\n    }\n\n    matrixHelper.translate(xPos, yPos, 0);\n  };\n\n  ITextElement.prototype.buildColor = function (colorData) {\n    return \"rgb(\" + Math.round(colorData[0] * 255) + \",\" + Math.round(colorData[1] * 255) + \",\" + Math.round(colorData[2] * 255) + \")\";\n  };\n\n  ITextElement.prototype.emptyProp = new LetterProps();\n\n  ITextElement.prototype.destroy = function () {};\n  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\n\n\n  function ICompElement() {}\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n  ICompElement.prototype.initElement = function (data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initTransform(data, globalData, comp);\n    this.initRenderable();\n    this.initHierarchy();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n\n    if ((this || _global).data.xt || !globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n\n    this.hide();\n  };\n  /* ICompElement.prototype.hide = function(){\r\n      if(!this.hidden){\r\n          this.hideElement();\r\n          var i,len = this.elements.length;\r\n          for( i = 0; i < len; i+=1 ){\r\n              if(this.elements[i]){\r\n                  this.elements[i].hide();\r\n              }\r\n          }\r\n      }\r\n  }; */\n\n\n  ICompElement.prototype.prepareFrame = function (num) {\n    (this || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if (!(this || _global).isInRange && !(this || _global).data.xt) {\n      return;\n    }\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n\n      if (timeRemapped === (this || _global).data.op) {\n        timeRemapped = (this || _global).data.op - 1;\n      }\n\n      (this || _global).renderedFrame = timeRemapped;\n    } else {\n      (this || _global).renderedFrame = num / (this || _global).data.sr;\n    }\n\n    var i;\n    var len = (this || _global).elements.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers((this || _global).renderedFrame);\n    } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame((this || _global).renderedFrame - (this || _global).layers[i].st);\n\n        if ((this || _global).elements[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    }\n  };\n\n  ICompElement.prototype.renderInnerContent = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  ICompElement.prototype.setElements = function (elems) {\n    (this || _global).elements = elems;\n  };\n\n  ICompElement.prototype.getElements = function () {\n    return (this || _global).elements;\n  };\n\n  ICompElement.prototype.destroyElements = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n  };\n\n  ICompElement.prototype.destroy = function () {\n    this.destroyElements();\n    this.destroyBaseElement();\n  };\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\n\n\n  function IImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n    (this || _global).sourceRect = {\n      top: 0,\n      left: 0,\n      width: (this || _global).assetData.w,\n      height: (this || _global).assetData.h\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n  IImageElement.prototype.createContent = function () {\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).innerElem = createNS(\"image\");\n\n    (this || _global).innerElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"preserveAspectRatio\", (this || _global).assetData.pr || (this || _global).globalData.renderConfig.imagePreserveAspectRatio);\n\n    (this || _global).innerElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n    (this || _global).layerElement.appendChild((this || _global).innerElem);\n  };\n\n  IImageElement.prototype.sourceRectAtTime = function () {\n    return (this || _global).sourceRect;\n  };\n  /* global extendPrototype, IImageElement, createNS */\n\n\n  function ISolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([IImageElement], ISolidElement);\n\n  ISolidElement.prototype.createContent = function () {\n    var rect = createNS(\"rect\"); /// /rect.style.width = this.data.sw;\n    /// /rect.style.height = this.data.sh;\n    /// /rect.style.fill = this.data.sc;\n\n    rect.setAttribute(\"width\", (this || _global).data.sw);\n    rect.setAttribute(\"height\", (this || _global).data.sh);\n    rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\n\n\n  function AudioElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initBaseData(data, globalData, comp);\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).audio = (this || _global).globalData.audioController.createAudio(assetPath);\n    (this || _global)._currentTime = 0;\n\n    (this || _global).globalData.audioController.addAudio(this || _global);\n\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  AudioElement.prototype.prepareFrame = function (num) {\n    this.prepareRenderableFrame(num, true);\n    this.prepareProperties(num, true);\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n      (this || _global)._currentTime = timeRemapped;\n    } else {\n      (this || _global)._currentTime = num / (this || _global).data.sr;\n    }\n  };\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n  AudioElement.prototype.renderFrame = function () {\n    if ((this || _global).isInRange && (this || _global)._canPlay) {\n      if (!(this || _global)._isPlaying) {\n        (this || _global).audio.play();\n\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n\n        (this || _global)._isPlaying = true;\n      } else if (!(this || _global).audio.playing() || Math.abs((this || _global)._currentTime / (this || _global).globalData.frameRate - (this || _global).audio.seek()) > 0.1) {\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n      }\n    }\n  };\n\n  AudioElement.prototype.show = function () {// this.audio.play()\n  };\n\n  AudioElement.prototype.hide = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n  };\n\n  AudioElement.prototype.pause = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n  };\n\n  AudioElement.prototype.resume = function () {\n    (this || _global)._canPlay = true;\n  };\n\n  AudioElement.prototype.setRate = function (rateValue) {\n    (this || _global).audio.rate(rateValue);\n  };\n\n  AudioElement.prototype.volume = function (volumeValue) {\n    (this || _global).audio.volume(volumeValue);\n  };\n\n  AudioElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  AudioElement.prototype.destroy = function () {};\n\n  AudioElement.prototype.sourceRectAtTime = function () {};\n\n  AudioElement.prototype.initExpressions = function () {};\n  /* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\n\n\n  function FootageElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).footageData = globalData.imageLoader.getAsset((this || _global).assetData);\n    this.initBaseData(data, globalData, comp);\n  }\n\n  FootageElement.prototype.prepareFrame = function () {};\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n  FootageElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  FootageElement.prototype.renderFrame = function () {};\n\n  FootageElement.prototype.destroy = function () {};\n\n  FootageElement.prototype.initExpressions = function () {\n    (this || _global).layerInterface = FootageInterface(this || _global);\n  };\n\n  FootageElement.prototype.getFootageData = function () {\n    return (this || _global).footageData;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\n\n\n  function SVGCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = true;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : []; // this.layerElement = createNS('g');\n\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createNS */\n\n  function SVGTextLottieElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).renderType = \"svg\";\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n  SVGTextLottieElement.prototype.createContent = function () {\n    if ((this || _global).data.singleShape && !(this || _global).globalData.fontManager.chars) {\n      (this || _global).textContainer = createNS(\"text\");\n    }\n  };\n\n  SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n    var i = 0;\n    var len = textArray.length;\n    var textContents = [];\n    var currentTextContent = \"\";\n\n    while (i < len) {\n      if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n        textContents.push(currentTextContent);\n        currentTextContent = \"\";\n      } else {\n        currentTextContent += textArray[i];\n      }\n\n      i += 1;\n    }\n\n    textContents.push(currentTextContent);\n    return textContents;\n  };\n\n  SVGTextLottieElement.prototype.buildNewText = function () {\n    var i;\n    var len;\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n    if (documentData.fc) {\n      (this || _global).layerElement.setAttribute(\"fill\", this.buildColor(documentData.fc));\n    } else {\n      (this || _global).layerElement.setAttribute(\"fill\", \"rgba(0,0,0,0)\");\n    }\n\n    if (documentData.sc) {\n      (this || _global).layerElement.setAttribute(\"stroke\", this.buildColor(documentData.sc));\n\n      (this || _global).layerElement.setAttribute(\"stroke-width\", documentData.sw);\n    }\n\n    (this || _global).layerElement.setAttribute(\"font-size\", documentData.finalSize);\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (fontData.fClass) {\n      (this || _global).layerElement.setAttribute(\"class\", fontData.fClass);\n    } else {\n      (this || _global).layerElement.setAttribute(\"font-family\", fontData.fFamily);\n\n      var fWeight = documentData.fWeight;\n      var fStyle = documentData.fStyle;\n\n      (this || _global).layerElement.setAttribute(\"font-style\", fStyle);\n\n      (this || _global).layerElement.setAttribute(\"font-weight\", fWeight);\n    }\n\n    (this || _global).layerElement.setAttribute(\"aria-label\", documentData.t);\n\n    var letters = documentData.l || [];\n    var usesGlyphs = !!(this || _global).globalData.fontManager.chars;\n    len = letters.length;\n    var tSpan;\n    var matrixHelper = (this || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var singleShape = (this || _global).data.singleShape;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n    if (singleShape && !usesGlyphs && !documentData.sz) {\n      var tElement = (this || _global).textContainer;\n      var justify = \"start\";\n\n      switch (documentData.j) {\n        case 1:\n          justify = \"end\";\n          break;\n\n        case 2:\n          justify = \"middle\";\n          break;\n\n        default:\n          justify = \"start\";\n          break;\n      }\n\n      tElement.setAttribute(\"text-anchor\", justify);\n      tElement.setAttribute(\"letter-spacing\", trackingOffset);\n      var textContent = this.buildTextContents(documentData.finalText);\n      len = textContent.length;\n      yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n      for (i = 0; i < len; i += 1) {\n        tSpan = (this || _global).textSpans[i] || createNS(\"tspan\");\n        tSpan.textContent = textContent[i];\n        tSpan.setAttribute(\"x\", 0);\n        tSpan.setAttribute(\"y\", yPos);\n        tSpan.style.display = \"inherit\";\n        tElement.appendChild(tSpan);\n        (this || _global).textSpans[i] = tSpan;\n        yPos += documentData.finalLineHeight;\n      }\n\n      (this || _global).layerElement.appendChild(tElement);\n    } else {\n      var cachedSpansLength = (this || _global).textSpans.length;\n      var shapeData;\n      var charData;\n\n      for (i = 0; i < len; i += 1) {\n        if (!usesGlyphs || !singleShape || i === 0) {\n          tSpan = cachedSpansLength > i ? (this || _global).textSpans[i] : createNS(usesGlyphs ? \"path\" : \"text\");\n\n          if (cachedSpansLength <= i) {\n            tSpan.setAttribute(\"stroke-linecap\", \"butt\");\n            tSpan.setAttribute(\"stroke-linejoin\", \"round\");\n            tSpan.setAttribute(\"stroke-miterlimit\", \"4\");\n            (this || _global).textSpans[i] = tSpan;\n\n            (this || _global).layerElement.appendChild(tSpan);\n          }\n\n          tSpan.style.display = \"inherit\";\n        }\n\n        matrixHelper.reset();\n        matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n        if (singleShape) {\n          if (letters[i].n) {\n            xPos = -trackingOffset;\n            yPos += documentData.yOffset;\n            yPos += firstLine ? 1 : 0;\n            firstLine = false;\n          }\n\n          this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n          xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n          xPos += trackingOffset;\n        }\n\n        if (usesGlyphs) {\n          charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n          shapeData = charData && charData.data || {};\n          shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n\n          if (!singleShape) {\n            tSpan.setAttribute(\"d\", this.createPathShape(matrixHelper, shapes));\n          } else {\n            shapeStr += this.createPathShape(matrixHelper, shapes);\n          }\n        } else {\n          if (singleShape) {\n            tSpan.setAttribute(\"transform\", \"translate(\" + matrixHelper.props[12] + \",\" + matrixHelper.props[13] + \")\");\n          }\n\n          tSpan.textContent = letters[i].val;\n          tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n        } //\n\n      }\n\n      if (singleShape && tSpan) {\n        tSpan.setAttribute(\"d\", shapeStr);\n      }\n    }\n\n    while (i < (this || _global).textSpans.length) {\n      (this || _global).textSpans[i].style.display = \"none\";\n      i += 1;\n    }\n\n    (this || _global)._sizeChanged = true;\n  };\n\n  SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n    this.prepareFrame((this || _global).comp.renderedFrame - (this || _global).data.st);\n    this.renderInnerContent();\n\n    if ((this || _global)._sizeChanged) {\n      (this || _global)._sizeChanged = false;\n\n      var textBox = (this || _global).layerElement.getBBox();\n\n      (this || _global).bbox = {\n        top: textBox.y,\n        left: textBox.x,\n        width: textBox.width,\n        height: textBox.height\n      };\n    }\n\n    return (this || _global).bbox;\n  };\n\n  SVGTextLottieElement.prototype.renderInnerContent = function () {\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n      if ((this || _global).lettersChangedFlag || (this || _global).textAnimator.lettersChangedFlag) {\n        (this || _global)._sizeChanged = true;\n        var i;\n        var len;\n        var renderedLetters = (this || _global).textAnimator.renderedLetters;\n        var letters = (this || _global).textProperty.currentData.l;\n        len = letters.length;\n        var renderedLetter;\n        var textSpan;\n\n        for (i = 0; i < len; i += 1) {\n          if (!letters[i].n) {\n            renderedLetter = renderedLetters[i];\n            textSpan = (this || _global).textSpans[i];\n\n            if (renderedLetter._mdf.m) {\n              textSpan.setAttribute(\"transform\", renderedLetter.m);\n            }\n\n            if (renderedLetter._mdf.o) {\n              textSpan.setAttribute(\"opacity\", renderedLetter.o);\n            }\n\n            if (renderedLetter._mdf.sw) {\n              textSpan.setAttribute(\"stroke-width\", renderedLetter.sw);\n            }\n\n            if (renderedLetter._mdf.sc) {\n              textSpan.setAttribute(\"stroke\", renderedLetter.sc);\n            }\n\n            if (renderedLetter._mdf.fc) {\n              textSpan.setAttribute(\"fill\", renderedLetter.fc);\n            }\n          }\n        }\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\n  FrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\n  SVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\n  TransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers */\n\n\n  function SVGShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).animatedContents = [];\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    (this || _global).prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n  SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n  SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n  SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n  SVGShapeElement.prototype.createContent = function () {\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).layerElement, 0, [], true);\n    this.filterUniqueShapes();\n  };\n  /*\r\n  This method searches for multiple shapes that affect a single element and one of them is animated\r\n  */\n\n\n  SVGShapeElement.prototype.filterUniqueShapes = function () {\n    var i;\n    var len = (this || _global).shapes.length;\n    var shape;\n    var j;\n    var jLen = (this || _global).stylesList.length;\n    var style;\n    var tempShapes = [];\n    var areAnimated = false;\n\n    for (j = 0; j < jLen; j += 1) {\n      style = (this || _global).stylesList[j];\n      areAnimated = false;\n      tempShapes.length = 0;\n\n      for (i = 0; i < len; i += 1) {\n        shape = (this || _global).shapes[i];\n\n        if (shape.styles.indexOf(style) !== -1) {\n          tempShapes.push(shape);\n          areAnimated = shape._isAnimated || areAnimated;\n        }\n      }\n\n      if (tempShapes.length > 1 && areAnimated) {\n        this.setShapesAsAnimated(tempShapes);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n    var i;\n    var len = shapes.length;\n\n    for (i = 0; i < len; i += 1) {\n      shapes[i].setAsAnimated();\n    }\n  };\n\n  SVGShapeElement.prototype.createStyleElement = function (data, level) {\n    // TODO: prevent drawing of hidden styles\n    var elementData;\n    var styleOb = new SVGStyleData(data, level);\n    var pathElement = styleOb.pElem;\n\n    if (data.ty === \"st\") {\n      elementData = new SVGStrokeStyleData(this || _global, data, styleOb);\n    } else if (data.ty === \"fl\") {\n      elementData = new SVGFillStyleData(this || _global, data, styleOb);\n    } else if (data.ty === \"gf\" || data.ty === \"gs\") {\n      var GradientConstructor = data.ty === \"gf\" ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n      elementData = new GradientConstructor(this || _global, data, styleOb);\n\n      (this || _global).globalData.defs.appendChild(elementData.gf);\n\n      if (elementData.maskId) {\n        (this || _global).globalData.defs.appendChild(elementData.ms);\n\n        (this || _global).globalData.defs.appendChild(elementData.of);\n\n        pathElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + elementData.maskId + \")\");\n      }\n    }\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      pathElement.setAttribute(\"stroke-linecap\", (this || _global).lcEnum[data.lc] || \"round\");\n      pathElement.setAttribute(\"stroke-linejoin\", (this || _global).ljEnum[data.lj] || \"round\");\n      pathElement.setAttribute(\"fill-opacity\", \"0\");\n\n      if (data.lj === 1) {\n        pathElement.setAttribute(\"stroke-miterlimit\", data.ml);\n      }\n    }\n\n    if (data.r === 2) {\n      pathElement.setAttribute(\"fill-rule\", \"evenodd\");\n    }\n\n    if (data.ln) {\n      pathElement.setAttribute(\"id\", data.ln);\n    }\n\n    if (data.cl) {\n      pathElement.setAttribute(\"class\", data.cl);\n    }\n\n    if (data.bm) {\n      pathElement.style[\"mix-blend-mode\"] = getBlendMode(data.bm);\n    }\n\n    (this || _global).stylesList.push(styleOb);\n\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createGroupElement = function (data) {\n    var elementData = new ShapeGroupData();\n\n    if (data.ln) {\n      elementData.gr.setAttribute(\"id\", data.ln);\n    }\n\n    if (data.cl) {\n      elementData.gr.setAttribute(\"class\", data.cl);\n    }\n\n    if (data.bm) {\n      elementData.gr.style[\"mix-blend-mode\"] = getBlendMode(data.bm);\n    }\n\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createTransformElement = function (data, container) {\n    var transformProperty = TransformPropertyFactory.getTransformProperty(this || _global, data, this || _global);\n    var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n    var ty = 4;\n\n    if (data.ty === \"rc\") {\n      ty = 5;\n    } else if (data.ty === \"el\") {\n      ty = 6;\n    } else if (data.ty === \"sr\") {\n      ty = 7;\n    }\n\n    var shapeProperty = ShapePropertyFactory.getShapeProp(this || _global, data, ty, this || _global);\n    var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n\n    (this || _global).shapes.push(elementData);\n\n    this.addShapeToModifiers(elementData);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n    var i = 0;\n    var len = (this || _global).animatedContents.length;\n\n    while (i < len) {\n      if ((this || _global).animatedContents[i].element === element) {\n        return;\n      }\n\n      i += 1;\n    }\n\n    (this || _global).animatedContents.push({\n      fn: SVGElementsRenderer.createRenderFunction(data),\n      element: element,\n      data: data\n    });\n  };\n\n  SVGShapeElement.prototype.setElementStyles = function (elementData) {\n    var arr = elementData.styles;\n    var j;\n    var jLen = (this || _global).stylesList.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      if (!(this || _global).stylesList[j].closed) {\n        arr.push((this || _global).stylesList[j]);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).layerElement, 0, [], true);\n    this.filterUniqueShapes();\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n  };\n\n  SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n    var ownTransformers = [].concat(transformers);\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var currentTransform;\n    var modifier;\n    var processedPos;\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._render = render;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === \"fl\" || arr[i].ty === \"st\" || arr[i].ty === \"gf\" || arr[i].ty === \"gs\") {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], level);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        if (arr[i]._render) {\n          container.appendChild(itemsData[i].style.pElem);\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === \"gr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n        if (arr[i]._render) {\n          container.appendChild(itemsData[i].gr);\n        }\n      } else if (arr[i].ty === \"tr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createTransformElement(arr[i], container);\n        }\n\n        currentTransform = itemsData[i].transform;\n        ownTransformers.push(currentTransform);\n      } else if (arr[i].ty === \"sh\" || arr[i].ty === \"rc\" || arr[i].ty === \"el\" || arr[i].ty === \"sr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n        }\n\n        this.setElementStyles(itemsData[i]);\n      } else if (arr[i].ty === \"tm\" || arr[i].ty === \"rd\" || arr[i].ty === \"ms\" || arr[i].ty === \"pb\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === \"rp\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\n          render = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    len = ownStyles.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownStyles[i].closed = true;\n    }\n\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  SVGShapeElement.prototype.renderInnerContent = function () {\n    this.renderModifiers();\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).stylesList[i].reset();\n    }\n\n    this.renderShape();\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).stylesList[i]._mdf || (this || _global)._isFirstFrame) {\n        if ((this || _global).stylesList[i].msElem) {\n          (this || _global).stylesList[i].msElem.setAttribute(\"d\", (this || _global).stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n\n          (this || _global).stylesList[i].d = \"M0 0\" + (this || _global).stylesList[i].d;\n        }\n\n        (this || _global).stylesList[i].pElem.setAttribute(\"d\", (this || _global).stylesList[i].d || \"M0 0\");\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.renderShape = function () {\n    var i;\n    var len = (this || _global).animatedContents.length;\n    var animatedContent;\n\n    for (i = 0; i < len; i += 1) {\n      animatedContent = (this || _global).animatedContents[i];\n\n      if (((this || _global)._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n        animatedContent.fn(animatedContent.data, animatedContent.element, (this || _global)._isFirstFrame);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.destroy = function () {\n    this.destroyBaseElement();\n    (this || _global).shapesData = null;\n    (this || _global).itemsData = null;\n  };\n  /* global createNS */\n\n\n  function SVGTintFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"linearRGB\");\n    feColorMatrix.setAttribute(\"values\", \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f1\");\n    filter.appendChild(feColorMatrix);\n    feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    feColorMatrix.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f2\");\n    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n\n    if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n      var feMerge = createNS(\"feMerge\");\n      filter.appendChild(feMerge);\n      var feMergeNode;\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n      feMerge.appendChild(feMergeNode);\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"f2\");\n      feMerge.appendChild(feMergeNode);\n    }\n  }\n\n  SVGTintFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var colorBlack = (this || _global).filterManager.effectElements[0].p.v;\n      var colorWhite = (this || _global).filterManager.effectElements[1].p.v;\n      var opacity = (this || _global).filterManager.effectElements[2].p.v / 100;\n\n      (this || _global).matrixFilter.setAttribute(\"values\", colorWhite[0] - colorBlack[0] + \" 0 0 0 \" + colorBlack[0] + \" \" + (colorWhite[1] - colorBlack[1]) + \" 0 0 0 \" + colorBlack[1] + \" \" + (colorWhite[2] - colorBlack[2]) + \" 0 0 0 \" + colorBlack[2] + \" 0 0 0 \" + opacity + \" 0\");\n    }\n  };\n  /* global createNS */\n\n\n  function SVGFillFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    feColorMatrix.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\");\n    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n  }\n\n  SVGFillFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color = (this || _global).filterManager.effectElements[2].p.v;\n      var opacity = (this || _global).filterManager.effectElements[6].p.v;\n\n      (this || _global).matrixFilter.setAttribute(\"values\", \"0 0 0 0 \" + color[0] + \" 0 0 0 0 \" + color[1] + \" 0 0 0 0 \" + color[2] + \" 0 0 0 \" + opacity + \" 0\");\n    }\n  };\n  /* global createNS */\n\n\n  function SVGGaussianBlurEffect(filter, filterManager) {\n    // Outset the filter region by 100% on all sides to accommodate blur expansion.\n    filter.setAttribute(\"x\", \"-100%\");\n    filter.setAttribute(\"y\", \"-100%\");\n    filter.setAttribute(\"width\", \"300%\");\n    filter.setAttribute(\"height\", \"300%\");\n    (this || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    filter.appendChild(feGaussianBlur);\n    (this || _global).feGaussianBlur = feGaussianBlur;\n  }\n\n  SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      // Empirical value, matching AE's blur appearance.\n      var kBlurrinessToSigma = 0.3;\n      var sigma = (this || _global).filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n      //\n      //   1 -> horizontal & vertical\n      //   2 -> horizontal only\n      //   3 -> vertical only\n      //\n\n      var dimensions = (this || _global).filterManager.effectElements[1].p.v;\n      var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      (this || _global).feGaussianBlur.setAttribute(\"stdDeviation\", sigmaX + \" \" + sigmaY); // Repeat edges mapping:\n      //\n      //   0 -> off -> duplicate\n      //   1 -> on  -> wrap\n\n\n      var edgeMode = (this || _global).filterManager.effectElements[2].p.v == 1 ? \"wrap\" : \"duplicate\"; // eslint-disable-line eqeqeq\n\n      (this || _global).feGaussianBlur.setAttribute(\"edgeMode\", edgeMode);\n    }\n  };\n  /* global createNS, createElementID, locationHref, bmFloor */\n\n\n  function SVGStrokeEffect(elem, filterManager) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).elem = elem;\n    (this || _global).paths = [];\n  }\n\n  SVGStrokeEffect.prototype.initialize = function () {\n    var elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n    var path;\n    var groupPath;\n    var i;\n    var len;\n\n    if ((this || _global).filterManager.effectElements[1].p.v === 1) {\n      len = (this || _global).elem.maskManager.masksProperties.length;\n      i = 0;\n    } else {\n      i = (this || _global).filterManager.effectElements[0].p.v - 1;\n      len = i + 1;\n    }\n\n    groupPath = createNS(\"g\");\n    groupPath.setAttribute(\"fill\", \"none\");\n    groupPath.setAttribute(\"stroke-linecap\", \"round\");\n    groupPath.setAttribute(\"stroke-dashoffset\", 1);\n\n    for (i; i < len; i += 1) {\n      path = createNS(\"path\");\n      groupPath.appendChild(path);\n\n      (this || _global).paths.push({\n        p: path,\n        m: i\n      });\n    }\n\n    if ((this || _global).filterManager.effectElements[10].p.v === 3) {\n      var mask = createNS(\"mask\");\n      var id = createElementID();\n      mask.setAttribute(\"id\", id);\n      mask.setAttribute(\"mask-type\", \"alpha\");\n      mask.appendChild(groupPath);\n\n      (this || _global).elem.globalData.defs.appendChild(mask);\n\n      var g = createNS(\"g\");\n      g.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n\n      while (elemChildren[0]) {\n        g.appendChild(elemChildren[0]);\n      }\n\n      (this || _global).elem.layerElement.appendChild(g);\n\n      (this || _global).masker = mask;\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    } else if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if ((this || _global).filterManager.effectElements[10].p.v === 2) {\n        elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n\n        while (elemChildren.length) {\n          (this || _global).elem.layerElement.removeChild(elemChildren[0]);\n        }\n      }\n\n      (this || _global).elem.layerElement.appendChild(groupPath);\n\n      (this || _global).elem.layerElement.removeAttribute(\"mask\");\n\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    }\n\n    (this || _global).initialized = true;\n    (this || _global).pathMasker = groupPath;\n  };\n\n  SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n\n    var i;\n    var len = (this || _global).paths.length;\n    var mask;\n    var path;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).paths[i].m !== -1) {\n        mask = (this || _global).elem.maskManager.viewData[(this || _global).paths[i].m];\n        path = (this || _global).paths[i].p;\n\n        if (forceRender || (this || _global).filterManager._mdf || mask.prop._mdf) {\n          path.setAttribute(\"d\", mask.lastPath);\n        }\n\n        if (forceRender || (this || _global).filterManager.effectElements[9].p._mdf || (this || _global).filterManager.effectElements[4].p._mdf || (this || _global).filterManager.effectElements[7].p._mdf || (this || _global).filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n          var dasharrayValue;\n\n          if ((this || _global).filterManager.effectElements[7].p.v !== 0 || (this || _global).filterManager.effectElements[8].p.v !== 100) {\n            var s = Math.min((this || _global).filterManager.effectElements[7].p.v, (this || _global).filterManager.effectElements[8].p.v) * 0.01;\n            var e = Math.max((this || _global).filterManager.effectElements[7].p.v, (this || _global).filterManager.effectElements[8].p.v) * 0.01;\n            var l = path.getTotalLength();\n            dasharrayValue = \"0 0 0 \" + l * s + \" \";\n            var lineLength = l * (e - s);\n            var segment = 1 + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01;\n            var units = Math.floor(lineLength / segment);\n            var j;\n\n            for (j = 0; j < units; j += 1) {\n              dasharrayValue += \"1 \" + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01 + \" \";\n            }\n\n            dasharrayValue += \"0 \" + l * 10 + \" 0 0\";\n          } else {\n            dasharrayValue = \"1 \" + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01;\n          }\n\n          path.setAttribute(\"stroke-dasharray\", dasharrayValue);\n        }\n      }\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"stroke-width\", (this || _global).filterManager.effectElements[4].p.v * 2);\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[6].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"opacity\", (this || _global).filterManager.effectElements[6].p.v);\n    }\n\n    if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if (forceRender || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var color = (this || _global).filterManager.effectElements[3].p.v;\n\n        (this || _global).pathMasker.setAttribute(\"stroke\", \"rgb(\" + bmFloor(color[0] * 255) + \",\" + bmFloor(color[1] * 255) + \",\" + bmFloor(color[2] * 255) + \")\");\n      }\n    }\n  };\n  /* global createNS */\n\n\n  function SVGTritoneFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"linearRGB\");\n    feColorMatrix.setAttribute(\"values\", \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f1\");\n    filter.appendChild(feColorMatrix);\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\n    feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    filter.appendChild(feComponentTransfer);\n    (this || _global).matrixFilter = feComponentTransfer;\n    var feFuncR = createNS(\"feFuncR\");\n    feFuncR.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncR);\n    (this || _global).feFuncR = feFuncR;\n    var feFuncG = createNS(\"feFuncG\");\n    feFuncG.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncG);\n    (this || _global).feFuncG = feFuncG;\n    var feFuncB = createNS(\"feFuncB\");\n    feFuncB.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncB);\n    (this || _global).feFuncB = feFuncB;\n  }\n\n  SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color1 = (this || _global).filterManager.effectElements[0].p.v;\n      var color2 = (this || _global).filterManager.effectElements[1].p.v;\n      var color3 = (this || _global).filterManager.effectElements[2].p.v;\n      var tableR = color3[0] + \" \" + color2[0] + \" \" + color1[0];\n      var tableG = color3[1] + \" \" + color2[1] + \" \" + color1[1];\n      var tableB = color3[2] + \" \" + color2[2] + \" \" + color1[2];\n\n      (this || _global).feFuncR.setAttribute(\"tableValues\", tableR);\n\n      (this || _global).feFuncG.setAttribute(\"tableValues\", tableG);\n\n      (this || _global).feFuncB.setAttribute(\"tableValues\", tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\n      // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\n\n    }\n  };\n  /* global createNS */\n\n\n  function SVGProLevelsFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var effectElements = (this || _global).filterManager.effectElements;\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\n\n    if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n      (this || _global).feFuncR = this.createFeFunc(\"feFuncR\", feComponentTransfer);\n    }\n\n    if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n      (this || _global).feFuncG = this.createFeFunc(\"feFuncG\", feComponentTransfer);\n    }\n\n    if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n      (this || _global).feFuncB = this.createFeFunc(\"feFuncB\", feComponentTransfer);\n    }\n\n    if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n      (this || _global).feFuncA = this.createFeFunc(\"feFuncA\", feComponentTransfer);\n    }\n\n    if ((this || _global).feFuncR || (this || _global).feFuncG || (this || _global).feFuncB || (this || _global).feFuncA) {\n      feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      feComponentTransfer = createNS(\"feComponentTransfer\");\n    }\n\n    if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n      feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      (this || _global).feFuncRComposed = this.createFeFunc(\"feFuncR\", feComponentTransfer);\n      (this || _global).feFuncGComposed = this.createFeFunc(\"feFuncG\", feComponentTransfer);\n      (this || _global).feFuncBComposed = this.createFeFunc(\"feFuncB\", feComponentTransfer);\n    }\n  }\n\n  SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n    var feFunc = createNS(type);\n    feFunc.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFunc);\n    return feFunc;\n  };\n\n  SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n    var cnt = 0;\n    var segments = 256;\n    var perc;\n    var min = Math.min(inputBlack, inputWhite);\n    var max = Math.max(inputBlack, inputWhite);\n    var table = Array.call(null, {\n      length: segments\n    });\n    var colorValue;\n    var pos = 0;\n    var outputDelta = outputWhite - outputBlack;\n    var inputDelta = inputWhite - inputBlack;\n\n    while (cnt <= 256) {\n      perc = cnt / 256;\n\n      if (perc <= min) {\n        colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n      } else if (perc >= max) {\n        colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n      } else {\n        colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n      }\n\n      table[pos] = colorValue;\n      pos += 1;\n      cnt += 256 / (segments - 1);\n    }\n\n    return table.join(\" \");\n  };\n\n  SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var val;\n      var effectElements = (this || _global).filterManager.effectElements;\n\n      if ((this || _global).feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n        val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n\n        (this || _global).feFuncRComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncGComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncBComposed.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n        val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n\n        (this || _global).feFuncR.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n        val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n\n        (this || _global).feFuncG.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n        val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n\n        (this || _global).feFuncB.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n        val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n\n        (this || _global).feFuncA.setAttribute(\"tableValues\", val);\n      }\n    }\n  };\n  /* global createNS, rgbToHex, degToRads */\n\n\n  function SVGDropShadowEffect(filter, filterManager) {\n    var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n    filter.setAttribute(\"x\", filterSize.x);\n    filter.setAttribute(\"y\", filterSize.y);\n    filter.setAttribute(\"width\", filterSize.width);\n    filter.setAttribute(\"height\", filterSize.height);\n    (this || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    feGaussianBlur.setAttribute(\"in\", \"SourceAlpha\");\n    feGaussianBlur.setAttribute(\"result\", \"drop_shadow_1\");\n    feGaussianBlur.setAttribute(\"stdDeviation\", \"0\");\n    (this || _global).feGaussianBlur = feGaussianBlur;\n    filter.appendChild(feGaussianBlur);\n    var feOffset = createNS(\"feOffset\");\n    feOffset.setAttribute(\"dx\", \"25\");\n    feOffset.setAttribute(\"dy\", \"0\");\n    feOffset.setAttribute(\"in\", \"drop_shadow_1\");\n    feOffset.setAttribute(\"result\", \"drop_shadow_2\");\n    (this || _global).feOffset = feOffset;\n    filter.appendChild(feOffset);\n    var feFlood = createNS(\"feFlood\");\n    feFlood.setAttribute(\"flood-color\", \"#00ff00\");\n    feFlood.setAttribute(\"flood-opacity\", \"1\");\n    feFlood.setAttribute(\"result\", \"drop_shadow_3\");\n    (this || _global).feFlood = feFlood;\n    filter.appendChild(feFlood);\n    var feComposite = createNS(\"feComposite\");\n    feComposite.setAttribute(\"in\", \"drop_shadow_3\");\n    feComposite.setAttribute(\"in2\", \"drop_shadow_2\");\n    feComposite.setAttribute(\"operator\", \"in\");\n    feComposite.setAttribute(\"result\", \"drop_shadow_4\");\n    filter.appendChild(feComposite);\n    var feMerge = createNS(\"feMerge\");\n    filter.appendChild(feMerge);\n    var feMergeNode;\n    feMergeNode = createNS(\"feMergeNode\");\n    feMerge.appendChild(feMergeNode);\n    feMergeNode = createNS(\"feMergeNode\");\n    feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n    (this || _global).feMergeNode = feMergeNode;\n    (this || _global).feMerge = feMerge;\n    (this || _global).originalNodeAdded = false;\n    feMerge.appendChild(feMergeNode);\n  }\n\n  SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n        (this || _global).feGaussianBlur.setAttribute(\"stdDeviation\", (this || _global).filterManager.effectElements[4].p.v / 4);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[0].p._mdf) {\n        var col = (this || _global).filterManager.effectElements[0].p.v;\n\n        (this || _global).feFlood.setAttribute(\"flood-color\", rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[1].p._mdf) {\n        (this || _global).feFlood.setAttribute(\"flood-opacity\", (this || _global).filterManager.effectElements[1].p.v / 255);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[2].p._mdf || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var distance = (this || _global).filterManager.effectElements[3].p.v;\n        var angle = ((this || _global).filterManager.effectElements[2].p.v - 90) * degToRads;\n        var x = distance * Math.cos(angle);\n        var y = distance * Math.sin(angle);\n\n        (this || _global).feOffset.setAttribute(\"dx\", x);\n\n        (this || _global).feOffset.setAttribute(\"dy\", y);\n      }\n      /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n              if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n                  this.feMerge.removeChild(this.feMergeNode);\r\n                  this.originalNodeAdded = false;\r\n              } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n                  this.feMerge.appendChild(this.feMergeNode);\r\n                  this.originalNodeAdded = true;\r\n              }\r\n          } */\n\n    }\n  };\n  /* global createElementID, createNS */\n\n\n  var _svgMatteSymbols = [];\n\n  function SVGMatte3Effect(filterElem, filterManager, elem) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).filterElem = filterElem;\n    (this || _global).elem = elem;\n    elem.matteElement = createNS(\"g\");\n    elem.matteElement.appendChild(elem.layerElement);\n    elem.matteElement.appendChild(elem.transformedElement);\n    elem.baseElement = elem.matteElement;\n  }\n\n  SVGMatte3Effect.prototype.findSymbol = function (mask) {\n    var i = 0;\n    var len = _svgMatteSymbols.length;\n\n    while (i < len) {\n      if (_svgMatteSymbols[i] === mask) {\n        return _svgMatteSymbols[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n    var parentNode = mask.layerElement.parentNode;\n\n    if (!parentNode) {\n      return;\n    }\n\n    var children = parentNode.children;\n    var i = 0;\n    var len = children.length;\n\n    while (i < len) {\n      if (children[i] === mask.layerElement) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    var nextChild;\n\n    if (i <= len - 2) {\n      nextChild = children[i + 1];\n    }\n\n    var useElem = createNS(\"use\");\n    useElem.setAttribute(\"href\", \"#\" + symbolId);\n\n    if (nextChild) {\n      parentNode.insertBefore(useElem, nextChild);\n    } else {\n      parentNode.appendChild(useElem);\n    }\n  };\n\n  SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n    if (!this.findSymbol(mask)) {\n      var symbolId = createElementID();\n      var masker = createNS(\"mask\");\n      masker.setAttribute(\"id\", mask.layerId);\n      masker.setAttribute(\"mask-type\", \"alpha\");\n\n      _svgMatteSymbols.push(mask);\n\n      var defs = elem.globalData.defs;\n      defs.appendChild(masker);\n      var symbol = createNS(\"symbol\");\n      symbol.setAttribute(\"id\", symbolId);\n      this.replaceInParent(mask, symbolId);\n      symbol.appendChild(mask.layerElement);\n      defs.appendChild(symbol);\n      var useElem = createNS(\"use\");\n      useElem.setAttribute(\"href\", \"#\" + symbolId);\n      masker.appendChild(useElem);\n      mask.data.hd = false;\n      mask.show();\n    }\n\n    elem.setMatte(mask.layerId);\n  };\n\n  SVGMatte3Effect.prototype.initialize = function () {\n    var ind = (this || _global).filterManager.effectElements[0].p.v;\n    var elements = (this || _global).elem.comp.elements;\n    var i = 0;\n    var len = elements.length;\n\n    while (i < len) {\n      if (elements[i] && elements[i].data.ind === ind) {\n        this.setElementAsMask((this || _global).elem, elements[i]);\n      }\n\n      i += 1;\n    }\n\n    (this || _global).initialized = true;\n  };\n\n  SVGMatte3Effect.prototype.renderFrame = function () {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n  };\n  /* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\n  SVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\n\n\n  function SVGEffects(elem) {\n    var i;\n    var len = elem.data.ef ? elem.data.ef.length : 0;\n    var filId = createElementID();\n    var fil = filtersFactory.createFilter(filId, true);\n    var count = 0;\n    (this || _global).filters = [];\n    var filterManager;\n\n    for (i = 0; i < len; i += 1) {\n      filterManager = null;\n\n      if (elem.data.ef[i].ty === 20) {\n        count += 1;\n        filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 21) {\n        count += 1;\n        filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 22) {\n        filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 23) {\n        count += 1;\n        filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 24) {\n        count += 1;\n        filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 25) {\n        count += 1;\n        filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 28) {\n        // count += 1;\n        filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n      } else if (elem.data.ef[i].ty === 29) {\n        count += 1;\n        filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n      }\n\n      if (filterManager) {\n        (this || _global).filters.push(filterManager);\n      }\n    }\n\n    if (count) {\n      elem.globalData.defs.appendChild(fil);\n      elem.layerElement.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n    }\n\n    if ((this || _global).filters.length) {\n      elem.addRenderableComponent(this || _global);\n    }\n  }\n\n  SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n    var i;\n    var len = (this || _global).filters.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).filters[i].renderFrame(_isFirstFrame);\n    }\n  };\n  /* global Matrix, createTypedArray */\n\n\n  function CVContextData() {\n    (this || _global).saved = [];\n    (this || _global).cArrPos = 0;\n    (this || _global).cTr = new Matrix();\n    (this || _global).cO = 1;\n    var i;\n    var len = 15;\n    (this || _global).savedOp = createTypedArray(\"float32\", len);\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = len;\n  }\n\n  CVContextData.prototype.duplicate = function () {\n    var newLength = (this || _global)._length * 2;\n    var currentSavedOp = (this || _global).savedOp;\n    (this || _global).savedOp = createTypedArray(\"float32\", newLength);\n\n    (this || _global).savedOp.set(currentSavedOp);\n\n    var i = 0;\n\n    for (i = (this || _global)._length; i < newLength; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = newLength;\n  };\n\n  CVContextData.prototype.reset = function () {\n    (this || _global).cArrPos = 0;\n\n    (this || _global).cTr.reset();\n\n    (this || _global).cO = 1;\n  };\n  /* global CVEffects, getBlendMode, CVMaskElement, Matrix */\n\n\n  function CVBaseElement() {}\n\n  CVBaseElement.prototype = {\n    createElements: function () {},\n    initRendererElement: function () {},\n    createContainerElements: function () {\n      (this || _global).canvasContext = (this || _global).globalData.canvasContext;\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n    },\n    createContent: function () {},\n    setBlendMode: function () {\n      var globalData = (this || _global).globalData;\n\n      if (globalData.blendMode !== (this || _global).data.bm) {\n        globalData.blendMode = (this || _global).data.bm;\n        var blendModeValue = getBlendMode((this || _global).data.bm);\n        globalData.canvasContext.globalCompositeOperation = blendModeValue;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new CVMaskElement((this || _global).data, this || _global);\n    },\n    hideElement: function () {\n      if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n        (this || _global).hidden = true;\n      }\n    },\n    showElement: function () {\n      if ((this || _global).isInRange && !(this || _global).isTransparent) {\n        (this || _global).hidden = false;\n        (this || _global)._isFirstFrame = true;\n        (this || _global).maskManager._isFirstFrame = true;\n      }\n    },\n    renderFrame: function () {\n      if ((this || _global).hidden || (this || _global).data.hd) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.setBlendMode();\n      var forceRealStack = (this || _global).data.ty === 0;\n\n      (this || _global).globalData.renderer.save(forceRealStack);\n\n      (this || _global).globalData.renderer.ctxTransform((this || _global).finalTransform.mat.props);\n\n      (this || _global).globalData.renderer.ctxOpacity((this || _global).finalTransform.mProp.o.v);\n\n      this.renderInnerContent();\n\n      (this || _global).globalData.renderer.restore(forceRealStack);\n\n      if ((this || _global).maskManager.hasMasks) {\n        (this || _global).globalData.renderer.restore(true);\n      }\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).canvasContext = null;\n      (this || _global).data = null;\n      (this || _global).globalData = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    mHelper: new Matrix()\n  };\n  CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n  CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\n  RenderableElement, SVGShapeElement, IImageElement, createTag */\n\n  function CVImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).img = globalData.imageLoader.getAsset((this || _global).assetData);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n  CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVImageElement.prototype.createContent = function () {\n    if ((this || _global).img.width && ((this || _global).assetData.w !== (this || _global).img.width || (this || _global).assetData.h !== (this || _global).img.height)) {\n      var canvas = createTag(\"canvas\");\n      canvas.width = (this || _global).assetData.w;\n      canvas.height = (this || _global).assetData.h;\n      var ctx = canvas.getContext(\"2d\");\n      var imgW = (this || _global).img.width;\n      var imgH = (this || _global).img.height;\n      var imgRel = imgW / imgH;\n      var canvasRel = (this || _global).assetData.w / (this || _global).assetData.h;\n      var widthCrop;\n      var heightCrop;\n      var par = (this || _global).assetData.pr || (this || _global).globalData.renderConfig.imagePreserveAspectRatio;\n\n      if (imgRel > canvasRel && par === \"xMidYMid slice\" || imgRel < canvasRel && par !== \"xMidYMid slice\") {\n        heightCrop = imgH;\n        widthCrop = heightCrop * canvasRel;\n      } else {\n        widthCrop = imgW;\n        heightCrop = widthCrop / canvasRel;\n      }\n\n      ctx.drawImage((this || _global).img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, (this || _global).assetData.w, (this || _global).assetData.h);\n      (this || _global).img = canvas;\n    }\n  };\n\n  CVImageElement.prototype.renderInnerContent = function () {\n    (this || _global).canvasContext.drawImage((this || _global).img, 0, 0);\n  };\n\n  CVImageElement.prototype.destroy = function () {\n    (this || _global).img = null;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\n\n\n  function CVCompElement(data, globalData, comp) {\n    (this || _global).completeLayers = false;\n    (this || _global).layers = data.layers;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = createSizedArray((this || _global).layers.length);\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\n\n  CVCompElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.beginPath();\n    ctx.moveTo(0, 0);\n    ctx.lineTo((this || _global).data.w, 0);\n    ctx.lineTo((this || _global).data.w, (this || _global).data.h);\n    ctx.lineTo(0, (this || _global).data.h);\n    ctx.lineTo(0, 0);\n    ctx.clip();\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  CVCompElement.prototype.destroy = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).layers = null;\n    (this || _global).elements = null;\n  };\n  /* global createSizedArray, ShapePropertyFactory, MaskElement */\n\n\n  function CVMaskElement(data, element) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).viewData = createSizedArray((this || _global).masksProperties.length);\n    var i;\n    var len = (this || _global).masksProperties.length;\n    var hasMasks = false;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        hasMasks = true;\n      }\n\n      (this || _global).viewData[i] = ShapePropertyFactory.getShapeProp((this || _global).element, (this || _global).masksProperties[i], 3);\n    }\n\n    (this || _global).hasMasks = hasMasks;\n\n    if (hasMasks) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  CVMaskElement.prototype.renderFrame = function () {\n    if (!(this || _global).hasMasks) {\n      return;\n    }\n\n    var transform = (this || _global).element.finalTransform.mat;\n    var ctx = (this || _global).element.canvasContext;\n    var i;\n    var len = (this || _global).masksProperties.length;\n    var pt;\n    var pts;\n    var data;\n    ctx.beginPath();\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).masksProperties[i].inv) {\n          ctx.moveTo(0, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, 0);\n        }\n\n        data = (this || _global).viewData[i].v;\n        pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n        ctx.moveTo(pt[0], pt[1]);\n        var j;\n        var jLen = data._length;\n\n        for (j = 1; j < jLen; j += 1) {\n          pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n          ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n        }\n\n        pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n        ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n      }\n    }\n\n    (this || _global).element.globalData.renderer.save(true);\n\n    ctx.clip();\n  };\n\n  CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n  CVMaskElement.prototype.destroy = function () {\n    (this || _global).element = null;\n  };\n  /* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\n  HierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\n  DashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor */\n\n\n  function CVShapeElement(data, globalData, comp) {\n    (this || _global).shapes = [];\n    (this || _global).shapesData = data.shapes;\n    (this || _global).stylesList = [];\n    (this || _global).itemsData = [];\n    (this || _global).prevViewData = [];\n    (this || _global).shapeModifiers = [];\n    (this || _global).processedElements = [];\n    (this || _global).transformsManager = new ShapeTransformManager();\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n  CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n  CVShapeElement.prototype.transformHelper = {\n    opacity: 1,\n    _opMdf: false\n  };\n  CVShapeElement.prototype.dashResetter = [];\n\n  CVShapeElement.prototype.createContent = function () {\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n  };\n\n  CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n    var styleElem = {\n      data: data,\n      type: data.ty,\n      preTransforms: (this || _global).transformsManager.addTransformSequence(transforms),\n      transforms: [],\n      elements: [],\n      closed: data.hd === true\n    };\n    var elementData = {};\n\n    if (data.ty === \"fl\" || data.ty === \"st\") {\n      elementData.c = PropertyFactory.getProp(this || _global, data.c, 1, 255, this || _global);\n\n      if (!elementData.c.k) {\n        styleElem.co = \"rgb(\" + bmFloor(elementData.c.v[0]) + \",\" + bmFloor(elementData.c.v[1]) + \",\" + bmFloor(elementData.c.v[2]) + \")\";\n      }\n    } else if (data.ty === \"gf\" || data.ty === \"gs\") {\n      elementData.s = PropertyFactory.getProp(this || _global, data.s, 1, null, this || _global);\n      elementData.e = PropertyFactory.getProp(this || _global, data.e, 1, null, this || _global);\n      elementData.h = PropertyFactory.getProp(this || _global, data.h || {\n        k: 0\n      }, 0, 0.01, this || _global);\n      elementData.a = PropertyFactory.getProp(this || _global, data.a || {\n        k: 0\n      }, 0, degToRads, this || _global);\n      elementData.g = new GradientProperty(this || _global, data.g, this || _global);\n    }\n\n    elementData.o = PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global);\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      styleElem.lc = (this || _global).lcEnum[data.lc] || \"round\";\n      styleElem.lj = (this || _global).ljEnum[data.lj] || \"round\";\n\n      if (data.lj == 1) {\n        // eslint-disable-line eqeqeq\n        styleElem.ml = data.ml;\n      }\n\n      elementData.w = PropertyFactory.getProp(this || _global, data.w, 0, null, this || _global);\n\n      if (!elementData.w.k) {\n        styleElem.wi = elementData.w.v;\n      }\n\n      if (data.d) {\n        var d = new DashProperty(this || _global, data.d, \"canvas\", this || _global);\n        elementData.d = d;\n\n        if (!elementData.d.k) {\n          styleElem.da = elementData.d.dashArray;\n          styleElem.do = elementData.d.dashoffset[0];\n        }\n      }\n    } else {\n      styleElem.r = data.r === 2 ? \"evenodd\" : \"nonzero\";\n    }\n\n    (this || _global).stylesList.push(styleElem);\n\n    elementData.style = styleElem;\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createGroupElement = function () {\n    var elementData = {\n      it: [],\n      prevViewData: []\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createTransformElement = function (data) {\n    var elementData = {\n      transform: {\n        opacity: 1,\n        _opMdf: false,\n        key: (this || _global).transformsManager.getNewKey(),\n        op: PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global),\n        mProps: TransformPropertyFactory.getTransformProperty(this || _global, data, this || _global)\n      }\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createShapeElement = function (data) {\n    var elementData = new CVShapeData(this || _global, data, (this || _global).stylesList, (this || _global).transformsManager);\n\n    (this || _global).shapes.push(elementData);\n\n    this.addShapeToModifiers(elementData);\n    return elementData;\n  };\n\n  CVShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n  };\n\n  CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).stylesList[i].transforms.push(transform);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.removeTransformFromStyleList = function () {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).stylesList[i].transforms.pop();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.closeStyles = function (styles) {\n    var i;\n    var len = styles.length;\n\n    for (i = 0; i < len; i += 1) {\n      styles[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var processedPos;\n    var modifier;\n    var currentTransform;\n    var ownTransforms = [].concat(transforms);\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._shouldRender = shouldRender;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === \"fl\" || arr[i].ty === \"st\" || arr[i].ty === \"gf\" || arr[i].ty === \"gs\") {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === \"gr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n      } else if (arr[i].ty === \"tr\") {\n        if (!processedPos) {\n          currentTransform = this.createTransformElement(arr[i]);\n          itemsData[i] = currentTransform;\n        }\n\n        ownTransforms.push(itemsData[i]);\n        this.addTransformToStyleList(itemsData[i]);\n      } else if (arr[i].ty === \"sh\" || arr[i].ty === \"rc\" || arr[i].ty === \"el\" || arr[i].ty === \"sr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i]);\n        }\n      } else if (arr[i].ty === \"tm\" || arr[i].ty === \"rd\" || arr[i].ty === \"pb\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === \"rp\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\n          shouldRender = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    this.removeTransformFromStyleList();\n    this.closeStyles(ownStyles);\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.renderInnerContent = function () {\n    (this || _global).transformHelper.opacity = 1;\n    (this || _global).transformHelper._opMdf = false;\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n\n    this.renderShape((this || _global).transformHelper, (this || _global).shapesData, (this || _global).itemsData, true);\n  };\n\n  CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n    if (parentTransform._opMdf || groupTransform.op._mdf || (this || _global)._isFirstFrame) {\n      groupTransform.opacity = parentTransform.opacity;\n      groupTransform.opacity *= groupTransform.op.v;\n      groupTransform._opMdf = true;\n    }\n  };\n\n  CVShapeElement.prototype.drawLayer = function () {\n    var i;\n    var len = (this || _global).stylesList.length;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var elems;\n    var nodes;\n    var renderer = (this || _global).globalData.renderer;\n    var ctx = (this || _global).globalData.canvasContext;\n    var type;\n    var currentStyle;\n\n    for (i = 0; i < len; i += 1) {\n      currentStyle = (this || _global).stylesList[i];\n      type = currentStyle.type; // Skipping style when\n      // Stroke width equals 0\n      // style should not be rendered (extra unused repeaters)\n      // current opacity equals 0\n      // global opacity equals 0\n\n      if (!((type === \"st\" || type === \"gs\") && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || (this || _global).globalData.currentGlobalAlpha === 0)) {\n        renderer.save();\n        elems = currentStyle.elements;\n\n        if (type === \"st\" || type === \"gs\") {\n          ctx.strokeStyle = type === \"st\" ? currentStyle.co : currentStyle.grd;\n          ctx.lineWidth = currentStyle.wi;\n          ctx.lineCap = currentStyle.lc;\n          ctx.lineJoin = currentStyle.lj;\n          ctx.miterLimit = currentStyle.ml || 0;\n        } else {\n          ctx.fillStyle = type === \"fl\" ? currentStyle.co : currentStyle.grd;\n        }\n\n        renderer.ctxOpacity(currentStyle.coOp);\n\n        if (type !== \"st\" && type !== \"gs\") {\n          ctx.beginPath();\n        }\n\n        renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n        jLen = elems.length;\n\n        for (j = 0; j < jLen; j += 1) {\n          if (type === \"st\" || type === \"gs\") {\n            ctx.beginPath();\n\n            if (currentStyle.da) {\n              ctx.setLineDash(currentStyle.da);\n              ctx.lineDashOffset = currentStyle.do;\n            }\n          }\n\n          nodes = elems[j].trNodes;\n          kLen = nodes.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            if (nodes[k].t === \"m\") {\n              ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n            } else if (nodes[k].t === \"c\") {\n              ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n            } else {\n              ctx.closePath();\n            }\n          }\n\n          if (type === \"st\" || type === \"gs\") {\n            ctx.stroke();\n\n            if (currentStyle.da) {\n              ctx.setLineDash((this || _global).dashResetter);\n            }\n          }\n        }\n\n        if (type !== \"st\" && type !== \"gs\") {\n          ctx.fill(currentStyle.r);\n        }\n\n        renderer.restore();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n    var i;\n    var len = items.length - 1;\n    var groupTransform;\n    groupTransform = parentTransform;\n\n    for (i = len; i >= 0; i -= 1) {\n      if (items[i].ty === \"tr\") {\n        groupTransform = data[i].transform;\n        this.renderShapeTransform(parentTransform, groupTransform);\n      } else if (items[i].ty === \"sh\" || items[i].ty === \"el\" || items[i].ty === \"rc\" || items[i].ty === \"sr\") {\n        this.renderPath(items[i], data[i]);\n      } else if (items[i].ty === \"fl\") {\n        this.renderFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"st\") {\n        this.renderStroke(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"gf\" || items[i].ty === \"gs\") {\n        this.renderGradientFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"gr\") {\n        this.renderShape(groupTransform, items[i].it, data[i].it);\n      } else if (items[i].ty === \"tm\") {//\n      }\n    }\n\n    if (isMain) {\n      this.drawLayer();\n    }\n  };\n\n  CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n    if ((this || _global)._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n      var shapeNodes = styledShape.trNodes;\n      var paths = shape.paths;\n      var i;\n      var len;\n      var j;\n      var jLen = paths._length;\n      shapeNodes.length = 0;\n      var groupTransformMat = styledShape.transforms.finalTransform;\n\n      for (j = 0; j < jLen; j += 1) {\n        var pathNodes = paths.shapes[j];\n\n        if (pathNodes && pathNodes.v) {\n          len = pathNodes._length;\n\n          for (i = 1; i < len; i += 1) {\n            if (i === 1) {\n              shapeNodes.push({\n                t: \"m\",\n                p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n              });\n            }\n\n            shapeNodes.push({\n              t: \"c\",\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n            });\n          }\n\n          if (len === 1) {\n            shapeNodes.push({\n              t: \"m\",\n              p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n            });\n          }\n\n          if (pathNodes.c && len) {\n            shapeNodes.push({\n              t: \"c\",\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n            });\n            shapeNodes.push({\n              t: \"z\"\n            });\n          }\n        }\n      }\n\n      styledShape.trNodes = shapeNodes;\n    }\n  };\n\n  CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n    if (pathData.hd !== true && pathData._shouldRender) {\n      var i;\n      var len = itemData.styledShapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n\n    if (itemData.c._mdf || (this || _global)._isFirstFrame) {\n      styleElem.co = \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\";\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || (this || _global)._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n  };\n\n  CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var grd;\n\n    if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n      var ctx = (this || _global).globalData.canvasContext;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (styleData.t === 1) {\n        grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n      } else {\n        var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n        var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n        var percent = itemData.h.v;\n\n        if (percent >= 1) {\n          percent = 0.99;\n        } else if (percent <= -1) {\n          percent = -0.99;\n        }\n\n        var dist = rad * percent;\n        var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n        var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n        grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n      }\n\n      var i;\n      var len = styleData.g.p;\n      var cValues = itemData.g.c;\n      var opacity = 1;\n\n      for (i = 0; i < len; i += 1) {\n        if (itemData.g._hasOpacity && itemData.g._collapsable) {\n          opacity = itemData.g.o[i * 2 + 1];\n        }\n\n        grd.addColorStop(cValues[i * 4] / 100, \"rgba(\" + cValues[i * 4 + 1] + \",\" + cValues[i * 4 + 2] + \",\" + cValues[i * 4 + 3] + \",\" + opacity + \")\");\n      }\n\n      styleElem.grd = grd;\n    }\n\n    styleElem.coOp = itemData.o.v * groupTransform.opacity;\n  };\n\n  CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var d = itemData.d;\n\n    if (d && (d._mdf || (this || _global)._isFirstFrame)) {\n      styleElem.da = d.dashArray;\n      styleElem.do = d.dashoffset[0];\n    }\n\n    if (itemData.c._mdf || (this || _global)._isFirstFrame) {\n      styleElem.co = \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\";\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || (this || _global)._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n\n    if (itemData.w._mdf || (this || _global)._isFirstFrame) {\n      styleElem.wi = itemData.w.v;\n    }\n  };\n\n  CVShapeElement.prototype.destroy = function () {\n    (this || _global).shapesData = null;\n    (this || _global).globalData = null;\n    (this || _global).canvasContext = null;\n    (this || _global).stylesList.length = 0;\n    (this || _global).itemsData.length = 0;\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\n  SVGShapeElement, IImageElement */\n\n\n  function CVSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n  CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVSolidElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.fillStyle = (this || _global).data.sc;\n    ctx.fillRect(0, 0, (this || _global).data.sw, (this || _global).data.sh); //\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\n  RenderableElement, ITextElement, createTag, createSizedArray */\n\n\n  function CVTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).yOffset = 0;\n    (this || _global).fillColorAnim = false;\n    (this || _global).strokeColorAnim = false;\n    (this || _global).strokeWidthAnim = false;\n    (this || _global).stroke = false;\n    (this || _global).fill = false;\n    (this || _global).justifyOffset = 0;\n    (this || _global).currentRender = null;\n    (this || _global).renderType = \"canvas\";\n    (this || _global).values = {\n      fill: \"rgba(0,0,0,0)\",\n      stroke: \"rgba(0,0,0,0)\",\n      sWidth: 0,\n      fValue: \"\"\n    };\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n  CVTextElement.prototype.tHelper = createTag(\"canvas\").getContext(\"2d\");\n\n  CVTextElement.prototype.buildNewText = function () {\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var hasFill = false;\n\n    if (documentData.fc) {\n      hasFill = true;\n      (this || _global).values.fill = this.buildColor(documentData.fc);\n    } else {\n      (this || _global).values.fill = \"rgba(0,0,0,0)\";\n    }\n\n    (this || _global).fill = hasFill;\n    var hasStroke = false;\n\n    if (documentData.sc) {\n      hasStroke = true;\n      (this || _global).values.stroke = this.buildColor(documentData.sc);\n      (this || _global).values.sWidth = documentData.sw;\n    }\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    var matrixHelper = (this || _global).mHelper;\n    (this || _global).stroke = hasStroke;\n    (this || _global).values.fValue = documentData.finalSize + \"px \" + (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily;\n    len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n    var charData;\n    var shapeData;\n    var k;\n    var kLen;\n    var shapes;\n    var j;\n    var jLen;\n    var pathNodes;\n    var commands;\n    var pathArr;\n    var singleShape = (this || _global).data.singleShape;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n      shapeData = charData && charData.data || {};\n      matrixHelper.reset();\n\n      if (singleShape && letters[i].n) {\n        xPos = -trackingOffset;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        firstLine = false;\n      }\n\n      shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n      jLen = shapes.length;\n      matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n      if (singleShape) {\n        this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n      }\n\n      commands = createSizedArray(jLen);\n\n      for (j = 0; j < jLen; j += 1) {\n        kLen = shapes[j].ks.k.i.length;\n        pathNodes = shapes[j].ks.k;\n        pathArr = [];\n\n        for (k = 1; k < kLen; k += 1) {\n          if (k === 1) {\n            pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n          }\n\n          pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n        }\n\n        pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n        commands[j] = pathArr;\n      }\n\n      if (singleShape) {\n        xPos += letters[i].l;\n        xPos += trackingOffset;\n      }\n\n      if ((this || _global).textSpans[cnt]) {\n        (this || _global).textSpans[cnt].elem = commands;\n      } else {\n        (this || _global).textSpans[cnt] = {\n          elem: commands\n        };\n      }\n\n      cnt += 1;\n    }\n  };\n\n  CVTextElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.font = (this || _global).values.fValue;\n    ctx.lineCap = \"butt\";\n    ctx.lineJoin = \"miter\";\n    ctx.miterLimit = 4;\n\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n    }\n\n    var i;\n    var len;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var renderedLetters = (this || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var lastFill = null;\n    var lastStroke = null;\n    var lastStrokeW = null;\n    var commands;\n    var pathArr;\n\n    for (i = 0; i < len; i += 1) {\n      if (!letters[i].n) {\n        renderedLetter = renderedLetters[i];\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.save();\n\n          (this || _global).globalData.renderer.ctxTransform(renderedLetter.p);\n\n          (this || _global).globalData.renderer.ctxOpacity(renderedLetter.o);\n        }\n\n        if ((this || _global).fill) {\n          if (renderedLetter && renderedLetter.fc) {\n            if (lastFill !== renderedLetter.fc) {\n              lastFill = renderedLetter.fc;\n              ctx.fillStyle = renderedLetter.fc;\n            }\n          } else if (lastFill !== (this || _global).values.fill) {\n            lastFill = (this || _global).values.fill;\n            ctx.fillStyle = (this || _global).values.fill;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          (this || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n\n        }\n\n        if ((this || _global).stroke) {\n          if (renderedLetter && renderedLetter.sw) {\n            if (lastStrokeW !== renderedLetter.sw) {\n              lastStrokeW = renderedLetter.sw;\n              ctx.lineWidth = renderedLetter.sw;\n            }\n          } else if (lastStrokeW !== (this || _global).values.sWidth) {\n            lastStrokeW = (this || _global).values.sWidth;\n            ctx.lineWidth = (this || _global).values.sWidth;\n          }\n\n          if (renderedLetter && renderedLetter.sc) {\n            if (lastStroke !== renderedLetter.sc) {\n              lastStroke = renderedLetter.sc;\n              ctx.strokeStyle = renderedLetter.sc;\n            }\n          } else if (lastStroke !== (this || _global).values.stroke) {\n            lastStroke = (this || _global).values.stroke;\n            ctx.strokeStyle = (this || _global).values.stroke;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          (this || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n\n        }\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.restore();\n        }\n      }\n    }\n  };\n\n  function CVEffects() {}\n\n  CVEffects.prototype.renderFrame = function () {};\n  /* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\n\n\n  function HBaseElement() {}\n\n  HBaseElement.prototype = {\n    checkBlendMode: function () {},\n    initRendererElement: function () {\n      (this || _global).baseElement = createTag((this || _global).data.tg || \"div\");\n\n      if ((this || _global).data.hasMask) {\n        (this || _global).svgElement = createNS(\"svg\");\n        (this || _global).layerElement = createNS(\"g\");\n        (this || _global).maskedElement = (this || _global).layerElement;\n\n        (this || _global).svgElement.appendChild((this || _global).layerElement);\n\n        (this || _global).baseElement.appendChild((this || _global).svgElement);\n      } else {\n        (this || _global).layerElement = (this || _global).baseElement;\n      }\n\n      styleDiv((this || _global).baseElement);\n    },\n    createContainerElements: function () {\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n      (this || _global).transformedElement = (this || _global).baseElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).data.cl);\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      var transformedElementStyle = (this || _global).transformedElement ? (this || _global).transformedElement.style : {};\n\n      if ((this || _global).finalTransform._matMdf) {\n        var matrixValue = (this || _global).finalTransform.mat.toCSS();\n\n        transformedElementStyle.transform = matrixValue;\n        transformedElementStyle.webkitTransform = matrixValue;\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        transformedElementStyle.opacity = (this || _global).finalTransform.mProp.o.v;\n      }\n    },\n    renderFrame: function () {\n      // If it is exported as hidden (data.hd === true) no need to render\n      // If it is not visible no need to render\n      if ((this || _global).data.hd || (this || _global).hidden) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.renderElement();\n      this.renderInnerContent();\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).layerElement = null;\n      (this || _global).transformedElement = null;\n\n      if ((this || _global).matteElement) {\n        (this || _global).matteElement = null;\n      }\n\n      if ((this || _global).maskManager) {\n        (this || _global).maskManager.destroy();\n\n        (this || _global).maskManager = null;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n    },\n    addEffects: function () {},\n    setMatte: function () {}\n  };\n  HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n  HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n  HBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, createNS, createTag */\n\n  function HSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n  HSolidElement.prototype.createContent = function () {\n    var rect;\n\n    if ((this || _global).data.hasMask) {\n      rect = createNS(\"rect\");\n      rect.setAttribute(\"width\", (this || _global).data.sw);\n      rect.setAttribute(\"height\", (this || _global).data.sh);\n      rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.sw);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.sh);\n    } else {\n      rect = createTag(\"div\");\n      rect.style.width = (this || _global).data.sw + \"px\";\n      rect.style.height = (this || _global).data.sh + \"px\";\n      rect.style.backgroundColor = (this || _global).data.sc;\n    }\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\n\n\n  function HCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = !data.hasMask;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : [];\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);\n  HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n  HCompElement.prototype.createContainerElements = function () {\n    this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.h);\n\n      (this || _global).transformedElement = (this || _global).baseElement;\n    } else {\n      (this || _global).transformedElement = (this || _global).layerElement;\n    }\n  };\n\n  HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n    var j = 0;\n    var nextElement;\n\n    while (j < pos) {\n      if ((this || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n        nextElement = (this || _global).elements[j].getBaseElement();\n      }\n\n      j += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(elem, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(elem);\n    }\n  };\n  /* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\n  HierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\n\n\n  function HShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).animatedContents = [];\n    (this || _global).shapesContainer = createNS(\"g\");\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    (this || _global).prevViewData = [];\n    (this || _global).currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n  HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n  HShapeElement.prototype.createContent = function () {\n    var cont;\n    (this || _global).baseElement.style.fontSize = 0;\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).layerElement.appendChild((this || _global).shapesContainer);\n\n      cont = (this || _global).svgElement;\n    } else {\n      cont = createNS(\"svg\");\n      var size = (this || _global).comp.data ? (this || _global).comp.data : (this || _global).globalData.compSize;\n      cont.setAttribute(\"width\", size.w);\n      cont.setAttribute(\"height\", size.h);\n      cont.appendChild((this || _global).shapesContainer);\n\n      (this || _global).layerElement.appendChild(cont);\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).shapesContainer, 0, [], true);\n    this.filterUniqueShapes();\n    (this || _global).shapeCont = cont;\n  };\n\n  HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n    var i;\n    var len = transformers.length;\n\n    for (i = 0; i < len; i += 1) {\n      point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n    }\n\n    return point;\n  };\n\n  HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n    var shape = item.sh.v;\n    var transformers = item.transformers;\n    var i;\n    var len = shape._length;\n    var vPoint;\n    var oPoint;\n    var nextIPoint;\n    var nextVPoint;\n\n    if (len <= 1) {\n      return;\n    }\n\n    for (i = 0; i < len - 1; i += 1) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n\n    if (shape.c) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n  };\n\n  HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n    this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n    var bounds = (this || _global).shapeBoundingBox;\n    boundingBox.x = bmMin(bounds.left, boundingBox.x);\n    boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n    boundingBox.y = bmMin(bounds.top, boundingBox.y);\n    boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n  };\n\n  HShapeElement.prototype.shapeBoundingBox = {\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0\n  };\n  HShapeElement.prototype.tempBoundingBox = {\n    x: 0,\n    xMax: 0,\n    y: 0,\n    yMax: 0,\n    width: 0,\n    height: 0\n  };\n\n  HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n    var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n    for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n      // eslint-disable-line no-plusplus\n      b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n      a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n      c = 3 * p1[i] - 3 * p0[i];\n      b |= 0; // eslint-disable-line no-bitwise\n\n      a |= 0; // eslint-disable-line no-bitwise\n\n      c |= 0; // eslint-disable-line no-bitwise\n\n      if (a === 0 && b === 0) {//\n      } else if (a === 0) {\n        t = -c / b;\n\n        if (t > 0 && t < 1) {\n          bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n        }\n      } else {\n        b2ac = b * b - 4 * c * a;\n\n        if (b2ac >= 0) {\n          t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n          if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n          t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n          if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n        }\n      }\n    }\n\n    (this || _global).shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n    (this || _global).shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n    (this || _global).shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n    (this || _global).shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n  };\n\n  HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n    return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n  };\n\n  HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n    var i;\n    var len = itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (itemsData[i] && itemsData[i].sh) {\n        this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n      } else if (itemsData[i] && itemsData[i].it) {\n        this.calculateBoundingBox(itemsData[i].it, boundingBox);\n      }\n    }\n  };\n\n  HShapeElement.prototype.currentBoxContains = function (box) {\n    return (this || _global).currentBBox.x <= box.x && (this || _global).currentBBox.y <= box.y && (this || _global).currentBBox.width + (this || _global).currentBBox.x >= box.x + box.width && (this || _global).currentBBox.height + (this || _global).currentBBox.y >= box.y + box.height;\n  };\n\n  HShapeElement.prototype.renderInnerContent = function () {\n    this._renderShapeFrame();\n\n    if (!(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var tempBoundingBox = (this || _global).tempBoundingBox;\n      var max = 999999;\n      tempBoundingBox.x = max;\n      tempBoundingBox.xMax = -max;\n      tempBoundingBox.y = max;\n      tempBoundingBox.yMax = -max;\n      this.calculateBoundingBox((this || _global).itemsData, tempBoundingBox);\n      tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n      tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n      if (this.currentBoxContains(tempBoundingBox)) {\n        return;\n      }\n\n      var changed = false;\n\n      if ((this || _global).currentBBox.w !== tempBoundingBox.width) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n\n        (this || _global).shapeCont.setAttribute(\"width\", tempBoundingBox.width);\n\n        changed = true;\n      }\n\n      if ((this || _global).currentBBox.h !== tempBoundingBox.height) {\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n\n        (this || _global).shapeCont.setAttribute(\"height\", tempBoundingBox.height);\n\n        changed = true;\n      }\n\n      if (changed || (this || _global).currentBBox.x !== tempBoundingBox.x || (this || _global).currentBBox.y !== tempBoundingBox.y) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n        (this || _global).currentBBox.x = tempBoundingBox.x;\n        (this || _global).currentBBox.y = tempBoundingBox.y;\n\n        (this || _global).shapeCont.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        var shapeStyle = (this || _global).shapeCont.style;\n        var shapeTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        shapeStyle.transform = shapeTransform;\n        shapeStyle.webkitTransform = shapeTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS */\n\n\n  function HTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).textPaths = [];\n    (this || _global).currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n    (this || _global).renderType = \"svg\";\n    (this || _global).isMasked = false;\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n  HTextElement.prototype.createContent = function () {\n    (this || _global).isMasked = this.checkMasks();\n\n    if ((this || _global).isMasked) {\n      (this || _global).renderType = \"svg\";\n      (this || _global).compW = (this || _global).comp.data.w;\n      (this || _global).compH = (this || _global).comp.data.h;\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).compW);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).compH);\n\n      var g = createNS(\"g\");\n\n      (this || _global).maskedElement.appendChild(g);\n\n      (this || _global).innerElem = g;\n    } else {\n      (this || _global).renderType = \"html\";\n      (this || _global).innerElem = (this || _global).layerElement;\n    }\n\n    this.checkParenting();\n  };\n\n  HTextElement.prototype.buildNewText = function () {\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var innerElemStyle = (this || _global).innerElem.style;\n    var textColor = documentData.fc ? this.buildColor(documentData.fc) : \"rgba(0,0,0,0)\";\n    innerElemStyle.fill = textColor;\n    innerElemStyle.color = textColor;\n\n    if (documentData.sc) {\n      innerElemStyle.stroke = this.buildColor(documentData.sc);\n      innerElemStyle.strokeWidth = documentData.sw + \"px\";\n    }\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (!(this || _global).globalData.fontManager.chars) {\n      innerElemStyle.fontSize = documentData.finalSize + \"px\";\n      innerElemStyle.lineHeight = documentData.finalSize + \"px\";\n\n      if (fontData.fClass) {\n        (this || _global).innerElem.className = fontData.fClass;\n      } else {\n        innerElemStyle.fontFamily = fontData.fFamily;\n        var fWeight = documentData.fWeight;\n        var fStyle = documentData.fStyle;\n        innerElemStyle.fontStyle = fStyle;\n        innerElemStyle.fontWeight = fWeight;\n      }\n    }\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    len = letters.length;\n    var tSpan;\n    var tParent;\n    var tCont;\n    var matrixHelper = (this || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).globalData.fontManager.chars) {\n        if (!(this || _global).textPaths[cnt]) {\n          tSpan = createNS(\"path\");\n          tSpan.setAttribute(\"stroke-linecap\", \"butt\");\n          tSpan.setAttribute(\"stroke-linejoin\", \"round\");\n          tSpan.setAttribute(\"stroke-miterlimit\", \"4\");\n        } else {\n          tSpan = (this || _global).textPaths[cnt];\n        }\n\n        if (!(this || _global).isMasked) {\n          if ((this || _global).textSpans[cnt]) {\n            tParent = (this || _global).textSpans[cnt];\n            tCont = tParent.children[0];\n          } else {\n            tParent = createTag(\"div\");\n            tParent.style.lineHeight = 0;\n            tCont = createNS(\"svg\");\n            tCont.appendChild(tSpan);\n            styleDiv(tParent);\n          }\n        }\n      } else if (!(this || _global).isMasked) {\n        if ((this || _global).textSpans[cnt]) {\n          tParent = (this || _global).textSpans[cnt];\n          tSpan = (this || _global).textPaths[cnt];\n        } else {\n          tParent = createTag(\"span\");\n          styleDiv(tParent);\n          tSpan = createTag(\"span\");\n          styleDiv(tSpan);\n          tParent.appendChild(tSpan);\n        }\n      } else {\n        tSpan = (this || _global).textPaths[cnt] ? (this || _global).textPaths[cnt] : createNS(\"text\");\n      } // tSpan.setAttribute('visibility', 'hidden');\n\n\n      if ((this || _global).globalData.fontManager.chars) {\n        var charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n\n        var shapeData;\n\n        if (charData) {\n          shapeData = charData.data;\n        } else {\n          shapeData = null;\n        }\n\n        matrixHelper.reset();\n\n        if (shapeData && shapeData.shapes) {\n          shapes = shapeData.shapes[0].it;\n          matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n          shapeStr = this.createPathShape(matrixHelper, shapes);\n          tSpan.setAttribute(\"d\", shapeStr);\n        }\n\n        if (!(this || _global).isMasked) {\n          (this || _global).innerElem.appendChild(tParent);\n\n          if (shapeData && shapeData.shapes) {\n            // document.body.appendChild is needed to get exact measure of shape\n            document.body.appendChild(tCont);\n            var boundingBox = tCont.getBBox();\n            tCont.setAttribute(\"width\", boundingBox.width + 2);\n            tCont.setAttribute(\"height\", boundingBox.height + 2);\n            tCont.setAttribute(\"viewBox\", boundingBox.x - 1 + \" \" + (boundingBox.y - 1) + \" \" + (boundingBox.width + 2) + \" \" + (boundingBox.height + 2));\n            var tContStyle = tCont.style;\n            var tContTranslation = \"translate(\" + (boundingBox.x - 1) + \"px,\" + (boundingBox.y - 1) + \"px)\";\n            tContStyle.transform = tContTranslation;\n            tContStyle.webkitTransform = tContTranslation;\n            letters[i].yOffset = boundingBox.y - 1;\n          } else {\n            tCont.setAttribute(\"width\", 1);\n            tCont.setAttribute(\"height\", 1);\n          }\n\n          tParent.appendChild(tCont);\n        } else {\n          (this || _global).innerElem.appendChild(tSpan);\n        }\n      } else {\n        tSpan.textContent = letters[i].val;\n        tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n\n        if (!(this || _global).isMasked) {\n          (this || _global).innerElem.appendChild(tParent); //\n\n\n          var tStyle = tSpan.style;\n          var tSpanTranslation = \"translate3d(0,\" + -documentData.finalSize / 1.2 + \"px,0)\";\n          tStyle.transform = tSpanTranslation;\n          tStyle.webkitTransform = tSpanTranslation;\n        } else {\n          (this || _global).innerElem.appendChild(tSpan);\n        }\n      } //\n\n\n      if (!(this || _global).isMasked) {\n        (this || _global).textSpans[cnt] = tParent;\n      } else {\n        (this || _global).textSpans[cnt] = tSpan;\n      }\n\n      (this || _global).textSpans[cnt].style.display = \"block\";\n      (this || _global).textPaths[cnt] = tSpan;\n      cnt += 1;\n    }\n\n    while (cnt < (this || _global).textSpans.length) {\n      (this || _global).textSpans[cnt].style.display = \"none\";\n      cnt += 1;\n    }\n  };\n\n  HTextElement.prototype.renderInnerContent = function () {\n    var svgStyle;\n\n    if ((this || _global).data.singleShape) {\n      if (!(this || _global)._isFirstFrame && !(this || _global).lettersChangedFlag) {\n        return;\n      }\n\n      if ((this || _global).isMasked && (this || _global).finalTransform._matMdf) {\n        // Todo Benchmark if using this is better than getBBox\n        (this || _global).svgElement.setAttribute(\"viewBox\", -(this || _global).finalTransform.mProp.p.v[0] + \" \" + -(this || _global).finalTransform.mProp.p.v[1] + \" \" + (this || _global).compW + \" \" + (this || _global).compH);\n\n        svgStyle = (this || _global).svgElement.style;\n        var translation = \"translate(\" + -(this || _global).finalTransform.mProp.p.v[0] + \"px,\" + -(this || _global).finalTransform.mProp.p.v[1] + \"px)\";\n        svgStyle.transform = translation;\n        svgStyle.webkitTransform = translation;\n      }\n    }\n\n    (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n    if (!(this || _global).lettersChangedFlag && !(this || _global).textAnimator.lettersChangedFlag) {\n      return;\n    }\n\n    var i;\n    var len;\n    var count = 0;\n    var renderedLetters = (this || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var textSpan;\n    var textPath;\n\n    for (i = 0; i < len; i += 1) {\n      if (letters[i].n) {\n        count += 1;\n      } else {\n        textSpan = (this || _global).textSpans[i];\n        textPath = (this || _global).textPaths[i];\n        renderedLetter = renderedLetters[count];\n        count += 1;\n\n        if (renderedLetter._mdf.m) {\n          if (!(this || _global).isMasked) {\n            textSpan.style.webkitTransform = renderedLetter.m;\n            textSpan.style.transform = renderedLetter.m;\n          } else {\n            textSpan.setAttribute(\"transform\", renderedLetter.m);\n          }\n        } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n        textSpan.style.opacity = renderedLetter.o;\n\n        if (renderedLetter.sw && renderedLetter._mdf.sw) {\n          textPath.setAttribute(\"stroke-width\", renderedLetter.sw);\n        }\n\n        if (renderedLetter.sc && renderedLetter._mdf.sc) {\n          textPath.setAttribute(\"stroke\", renderedLetter.sc);\n        }\n\n        if (renderedLetter.fc && renderedLetter._mdf.fc) {\n          textPath.setAttribute(\"fill\", renderedLetter.fc);\n          textPath.style.color = renderedLetter.fc;\n        }\n      }\n    }\n\n    if ((this || _global).innerElem.getBBox && !(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var boundingBox = (this || _global).innerElem.getBBox();\n\n      if ((this || _global).currentBBox.w !== boundingBox.width) {\n        (this || _global).currentBBox.w = boundingBox.width;\n\n        (this || _global).svgElement.setAttribute(\"width\", boundingBox.width);\n      }\n\n      if ((this || _global).currentBBox.h !== boundingBox.height) {\n        (this || _global).currentBBox.h = boundingBox.height;\n\n        (this || _global).svgElement.setAttribute(\"height\", boundingBox.height);\n      }\n\n      var margin = 1;\n\n      if ((this || _global).currentBBox.w !== boundingBox.width + margin * 2 || (this || _global).currentBBox.h !== boundingBox.height + margin * 2 || (this || _global).currentBBox.x !== boundingBox.x - margin || (this || _global).currentBBox.y !== boundingBox.y - margin) {\n        (this || _global).currentBBox.w = boundingBox.width + margin * 2;\n        (this || _global).currentBBox.h = boundingBox.height + margin * 2;\n        (this || _global).currentBBox.x = boundingBox.x - margin;\n        (this || _global).currentBBox.y = boundingBox.y - margin;\n\n        (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        svgStyle = (this || _global).svgElement.style;\n        var svgTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        svgStyle.transform = svgTransform;\n        svgStyle.webkitTransform = svgTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\n  FrameElement, RenderableElement, createNS */\n\n\n  function HImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n  HImageElement.prototype.createContent = function () {\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    var img = new Image();\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).imageElem = createNS(\"image\");\n\n      (this || _global).imageElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n      (this || _global).imageElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n      (this || _global).imageElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n      (this || _global).layerElement.appendChild((this || _global).imageElem);\n\n      (this || _global).baseElement.setAttribute(\"width\", (this || _global).assetData.w);\n\n      (this || _global).baseElement.setAttribute(\"height\", (this || _global).assetData.h);\n    } else {\n      (this || _global).layerElement.appendChild(img);\n    }\n\n    img.crossOrigin = \"anonymous\";\n    img.src = assetPath;\n\n    if ((this || _global).data.ln) {\n      (this || _global).baseElement.setAttribute(\"id\", (this || _global).data.ln);\n    }\n  };\n  /* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\n\n\n  function HCameraElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initHierarchy();\n    var getProp = PropertyFactory.getProp;\n    (this || _global).pe = getProp(this || _global, data.pe, 0, 0, this || _global);\n\n    if (data.ks.p.s) {\n      (this || _global).px = getProp(this || _global, data.ks.p.x, 1, 0, this || _global);\n      (this || _global).py = getProp(this || _global, data.ks.p.y, 1, 0, this || _global);\n      (this || _global).pz = getProp(this || _global, data.ks.p.z, 1, 0, this || _global);\n    } else {\n      (this || _global).p = getProp(this || _global, data.ks.p, 1, 0, this || _global);\n    }\n\n    if (data.ks.a) {\n      (this || _global).a = getProp(this || _global, data.ks.a, 1, 0, this || _global);\n    }\n\n    if (data.ks.or.k.length && data.ks.or.k[0].to) {\n      var i;\n      var len = data.ks.or.k.length;\n\n      for (i = 0; i < len; i += 1) {\n        data.ks.or.k[i].to = null;\n        data.ks.or.k[i].ti = null;\n      }\n    }\n\n    (this || _global).or = getProp(this || _global, data.ks.or, 1, degToRads, this || _global);\n    (this || _global).or.sh = true;\n    (this || _global).rx = getProp(this || _global, data.ks.rx, 0, degToRads, this || _global);\n    (this || _global).ry = getProp(this || _global, data.ks.ry, 0, degToRads, this || _global);\n    (this || _global).rz = getProp(this || _global, data.ks.rz, 0, degToRads, this || _global);\n    (this || _global).mat = new Matrix();\n    (this || _global)._prevMat = new Matrix();\n    (this || _global)._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n    (this || _global).finalTransform = {\n      mProp: this || _global\n    };\n  }\n\n  extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n  HCameraElement.prototype.setup = function () {\n    var i;\n    var len = (this || _global).comp.threeDElements.length;\n    var comp;\n    var perspectiveStyle;\n    var containerStyle;\n\n    for (i = 0; i < len; i += 1) {\n      // [perspectiveElem,container]\n      comp = (this || _global).comp.threeDElements[i];\n\n      if (comp.type === \"3d\") {\n        perspectiveStyle = comp.perspectiveElem.style;\n        containerStyle = comp.container.style;\n        var perspective = (this || _global).pe.v + \"px\";\n        var origin = \"0px 0px 0px\";\n        var matrix = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n        perspectiveStyle.perspective = perspective;\n        perspectiveStyle.webkitPerspective = perspective;\n        containerStyle.transformOrigin = origin;\n        containerStyle.mozTransformOrigin = origin;\n        containerStyle.webkitTransformOrigin = origin;\n        perspectiveStyle.transform = matrix;\n        perspectiveStyle.webkitTransform = matrix;\n      }\n    }\n  };\n\n  HCameraElement.prototype.createElements = function () {};\n\n  HCameraElement.prototype.hide = function () {};\n\n  HCameraElement.prototype.renderFrame = function () {\n    var _mdf = (this || _global)._isFirstFrame;\n    var i;\n    var len;\n\n    if ((this || _global).hierarchy) {\n      len = (this || _global).hierarchy.length;\n\n      for (i = 0; i < len; i += 1) {\n        _mdf = (this || _global).hierarchy[i].finalTransform.mProp._mdf || _mdf;\n      }\n    }\n\n    if (_mdf || (this || _global).pe._mdf || (this || _global).p && (this || _global).p._mdf || (this || _global).px && ((this || _global).px._mdf || (this || _global).py._mdf || (this || _global).pz._mdf) || (this || _global).rx._mdf || (this || _global).ry._mdf || (this || _global).rz._mdf || (this || _global).or._mdf || (this || _global).a && (this || _global).a._mdf) {\n      (this || _global).mat.reset();\n\n      if ((this || _global).hierarchy) {\n        len = (this || _global).hierarchy.length - 1;\n\n        for (i = len; i >= 0; i -= 1) {\n          var mTransf = (this || _global).hierarchy[i].finalTransform.mProp;\n\n          (this || _global).mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n\n          (this || _global).mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n\n          (this || _global).mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n        }\n      }\n\n      if ((this || _global).p) {\n        (this || _global).mat.translate(-(this || _global).p.v[0], -(this || _global).p.v[1], (this || _global).p.v[2]);\n      } else {\n        (this || _global).mat.translate(-(this || _global).px.v, -(this || _global).py.v, (this || _global).pz.v);\n      }\n\n      if ((this || _global).a) {\n        var diffVector;\n\n        if ((this || _global).p) {\n          diffVector = [(this || _global).p.v[0] - (this || _global).a.v[0], (this || _global).p.v[1] - (this || _global).a.v[1], (this || _global).p.v[2] - (this || _global).a.v[2]];\n        } else {\n          diffVector = [(this || _global).px.v - (this || _global).a.v[0], (this || _global).py.v - (this || _global).a.v[1], (this || _global).pz.v - (this || _global).a.v[2]];\n        }\n\n        var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n        var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n        var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n        var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n        var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n\n        (this || _global).mat.rotateY(mRotationY).rotateX(-mRotationX);\n      }\n\n      (this || _global).mat.rotateX(-(this || _global).rx.v).rotateY(-(this || _global).ry.v).rotateZ((this || _global).rz.v);\n\n      (this || _global).mat.rotateX(-(this || _global).or.v[0]).rotateY(-(this || _global).or.v[1]).rotateZ((this || _global).or.v[2]);\n\n      (this || _global).mat.translate((this || _global).globalData.compSize.w / 2, (this || _global).globalData.compSize.h / 2, 0);\n\n      (this || _global).mat.translate(0, 0, (this || _global).pe.v);\n\n      var hasMatrixChanged = !(this || _global)._prevMat.equals((this || _global).mat);\n\n      if ((hasMatrixChanged || (this || _global).pe._mdf) && (this || _global).comp.threeDElements) {\n        len = (this || _global).comp.threeDElements.length;\n        var comp;\n        var perspectiveStyle;\n        var containerStyle;\n\n        for (i = 0; i < len; i += 1) {\n          comp = (this || _global).comp.threeDElements[i];\n\n          if (comp.type === \"3d\") {\n            if (hasMatrixChanged) {\n              var matValue = (this || _global).mat.toCSS();\n\n              containerStyle = comp.container.style;\n              containerStyle.transform = matValue;\n              containerStyle.webkitTransform = matValue;\n            }\n\n            if ((this || _global).pe._mdf) {\n              perspectiveStyle = comp.perspectiveElem.style;\n              perspectiveStyle.perspective = (this || _global).pe.v + \"px\";\n              perspectiveStyle.webkitPerspective = (this || _global).pe.v + \"px\";\n            }\n          }\n        }\n\n        (this || _global).mat.clone((this || _global)._prevMat);\n      }\n    }\n\n    (this || _global)._isFirstFrame = false;\n  };\n\n  HCameraElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  HCameraElement.prototype.destroy = function () {};\n\n  HCameraElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  function HEffects() {}\n\n  HEffects.prototype.renderFrame = function () {};\n  /* global createTag, AnimationItem */\n\n  /* exported animationManager */\n\n\n  var animationManager = function () {\n    var moduleOb = {};\n    var registeredAnimations = [];\n    var initTime = 0;\n    var len = 0;\n    var playingAnimationsNum = 0;\n    var _stopped = true;\n    var _isFrozen = false;\n\n    function removeElement(ev) {\n      var i = 0;\n      var animItem = ev.target;\n\n      while (i < len) {\n        if (registeredAnimations[i].animation === animItem) {\n          registeredAnimations.splice(i, 1);\n          i -= 1;\n          len -= 1;\n\n          if (!animItem.isPaused) {\n            subtractPlayingCount();\n          }\n        }\n\n        i += 1;\n      }\n    }\n\n    function registerAnimation(element, animationData) {\n      if (!element) {\n        return null;\n      }\n\n      var i = 0;\n\n      while (i < len) {\n        if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n          return registeredAnimations[i].animation;\n        }\n\n        i += 1;\n      }\n\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, element);\n      animItem.setData(element, animationData);\n      return animItem;\n    }\n\n    function getRegisteredAnimations() {\n      var i;\n      var lenAnims = registeredAnimations.length;\n      var animations = [];\n\n      for (i = 0; i < lenAnims; i += 1) {\n        animations.push(registeredAnimations[i].animation);\n      }\n\n      return animations;\n    }\n\n    function addPlayingCount() {\n      playingAnimationsNum += 1;\n      activate();\n    }\n\n    function subtractPlayingCount() {\n      playingAnimationsNum -= 1;\n    }\n\n    function setupAnimation(animItem, element) {\n      animItem.addEventListener(\"destroy\", removeElement);\n      animItem.addEventListener(\"_active\", addPlayingCount);\n      animItem.addEventListener(\"_idle\", subtractPlayingCount);\n      registeredAnimations.push({\n        elem: element,\n        animation: animItem\n      });\n      len += 1;\n    }\n\n    function loadAnimation(params) {\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, null);\n      animItem.setParams(params);\n      return animItem;\n    }\n\n    function setSpeed(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setSpeed(val, animation);\n      }\n    }\n\n    function setDirection(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setDirection(val, animation);\n      }\n    }\n\n    function play(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.play(animation);\n      }\n    }\n\n    function resume(nowTime) {\n      var elapsedTime = nowTime - initTime;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.advanceTime(elapsedTime);\n      }\n\n      initTime = nowTime;\n\n      if (playingAnimationsNum && !_isFrozen) {\n        window.requestAnimationFrame(resume);\n      } else {\n        _stopped = true;\n      }\n    }\n\n    function first(nowTime) {\n      initTime = nowTime;\n      window.requestAnimationFrame(resume);\n    }\n\n    function pause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.pause(animation);\n      }\n    }\n\n    function goToAndStop(value, isFrame, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n      }\n    }\n\n    function stop(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.stop(animation);\n      }\n    }\n\n    function togglePause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.togglePause(animation);\n      }\n    }\n\n    function destroy(animation) {\n      var i;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        registeredAnimations[i].animation.destroy(animation);\n      }\n    }\n\n    function searchAnimations(animationData, standalone, renderer) {\n      var animElements = [].concat([].slice.call(document.getElementsByClassName(\"lottie\")), [].slice.call(document.getElementsByClassName(\"bodymovin\")));\n      var i;\n      var lenAnims = animElements.length;\n\n      for (i = 0; i < lenAnims; i += 1) {\n        if (renderer) {\n          animElements[i].setAttribute(\"data-bm-type\", renderer);\n        }\n\n        registerAnimation(animElements[i], animationData);\n      }\n\n      if (standalone && lenAnims === 0) {\n        if (!renderer) {\n          renderer = \"svg\";\n        }\n\n        var body = document.getElementsByTagName(\"body\")[0];\n        body.innerText = \"\";\n        var div = createTag(\"div\");\n        div.style.width = \"100%\";\n        div.style.height = \"100%\";\n        div.setAttribute(\"data-bm-type\", renderer);\n        body.appendChild(div);\n        registerAnimation(div, animationData);\n      }\n    }\n\n    function resize() {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.resize();\n      }\n    }\n\n    function activate() {\n      if (!_isFrozen && playingAnimationsNum) {\n        if (_stopped) {\n          window.requestAnimationFrame(first);\n          _stopped = false;\n        }\n      }\n    }\n\n    function freeze() {\n      _isFrozen = true;\n    }\n\n    function unfreeze() {\n      _isFrozen = false;\n      activate();\n    }\n\n    function setVolume(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setVolume(val, animation);\n      }\n    }\n\n    function mute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.mute(animation);\n      }\n    }\n\n    function unmute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.unmute(animation);\n      }\n    }\n\n    moduleOb.registerAnimation = registerAnimation;\n    moduleOb.loadAnimation = loadAnimation;\n    moduleOb.setSpeed = setSpeed;\n    moduleOb.setDirection = setDirection;\n    moduleOb.play = play;\n    moduleOb.pause = pause;\n    moduleOb.stop = stop;\n    moduleOb.togglePause = togglePause;\n    moduleOb.searchAnimations = searchAnimations;\n    moduleOb.resize = resize; // moduleOb.start = start;\n\n    moduleOb.goToAndStop = goToAndStop;\n    moduleOb.destroy = destroy;\n    moduleOb.freeze = freeze;\n    moduleOb.unfreeze = unfreeze;\n    moduleOb.setVolume = setVolume;\n    moduleOb.mute = mute;\n    moduleOb.unmute = unmute;\n    moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n    return moduleOb;\n  }();\n  /* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\n  CanvasRenderer, SVGRenderer, HybridRenderer, assetLoader, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\n  BMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\n  BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\n\n\n  var AnimationItem = function () {\n    (this || _global)._cbs = [];\n    (this || _global).name = \"\";\n    (this || _global).path = \"\";\n    (this || _global).isLoaded = false;\n    (this || _global).currentFrame = 0;\n    (this || _global).currentRawFrame = 0;\n    (this || _global).firstFrame = 0;\n    (this || _global).totalFrames = 0;\n    (this || _global).frameRate = 0;\n    (this || _global).frameMult = 0;\n    (this || _global).playSpeed = 1;\n    (this || _global).playDirection = 1;\n    (this || _global).playCount = 0;\n    (this || _global).animationData = {};\n    (this || _global).assets = [];\n    (this || _global).isPaused = true;\n    (this || _global).autoplay = false;\n    (this || _global).loop = true;\n    (this || _global).renderer = null;\n    (this || _global).animationID = createElementID();\n    (this || _global).assetsPath = \"\";\n    (this || _global).timeCompleted = 0;\n    (this || _global).segmentPos = 0;\n    (this || _global).isSubframeEnabled = subframeEnabled;\n    (this || _global).segments = [];\n    (this || _global)._idle = true;\n    (this || _global)._completedLoop = false;\n    (this || _global).projectInterface = ProjectInterface();\n    (this || _global).imagePreloader = new ImagePreloader();\n    (this || _global).audioController = audioControllerFactory();\n    (this || _global).markers = [];\n  };\n\n  extendPrototype([BaseEvent], AnimationItem);\n\n  AnimationItem.prototype.setParams = function (params) {\n    if (params.wrapper || params.container) {\n      (this || _global).wrapper = params.wrapper || params.container;\n    }\n\n    var animType = \"svg\";\n\n    if (params.animType) {\n      animType = params.animType;\n    } else if (params.renderer) {\n      animType = params.renderer;\n    }\n\n    switch (animType) {\n      case \"canvas\":\n        (this || _global).renderer = new CanvasRenderer(this || _global, params.rendererSettings);\n        break;\n\n      case \"svg\":\n        (this || _global).renderer = new SVGRenderer(this || _global, params.rendererSettings);\n        break;\n\n      default:\n        (this || _global).renderer = new HybridRenderer(this || _global, params.rendererSettings);\n        break;\n    }\n\n    (this || _global).imagePreloader.setCacheType(animType, (this || _global).renderer.globalData.defs);\n\n    (this || _global).renderer.setProjectInterface((this || _global).projectInterface);\n\n    (this || _global).animType = animType;\n\n    if (params.loop === \"\" || params.loop === null || params.loop === undefined || params.loop === true) {\n      (this || _global).loop = true;\n    } else if (params.loop === false) {\n      (this || _global).loop = false;\n    } else {\n      (this || _global).loop = parseInt(params.loop, 10);\n    }\n\n    (this || _global).autoplay = \"autoplay\" in params ? params.autoplay : true;\n    (this || _global).name = params.name ? params.name : \"\";\n    (this || _global).autoloadSegments = Object.prototype.hasOwnProperty.call(params, \"autoloadSegments\") ? params.autoloadSegments : true;\n    (this || _global).assetsPath = params.assetsPath;\n    (this || _global).initialSegment = params.initialSegment;\n\n    if (params.audioFactory) {\n      (this || _global).audioController.setAudioFactory(params.audioFactory);\n    }\n\n    if (params.animationData) {\n      this.configAnimation(params.animationData);\n    } else if (params.path) {\n      if (params.path.lastIndexOf(\"\\\\\") !== -1) {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"\\\\\") + 1);\n      } else {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"/\") + 1);\n      }\n\n      (this || _global).fileName = params.path.substr(params.path.lastIndexOf(\"/\") + 1);\n      (this || _global).fileName = (this || _global).fileName.substr(0, (this || _global).fileName.lastIndexOf(\".json\"));\n      assetLoader.load(params.path, (this || _global).configAnimation.bind(this || _global), function () {\n        this.trigger(\"data_failed\");\n      }.bind(this || _global));\n    }\n  };\n\n  AnimationItem.prototype.setData = function (wrapper, animationData) {\n    if (animationData) {\n      if (typeof animationData !== \"object\") {\n        animationData = JSON.parse(animationData);\n      }\n    }\n\n    var params = {\n      wrapper: wrapper,\n      animationData: animationData\n    };\n    var wrapperAttributes = wrapper.attributes;\n    params.path = wrapperAttributes.getNamedItem(\"data-animation-path\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-animation-path\").value : wrapperAttributes.getNamedItem(\"data-bm-path\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-path\").value : wrapperAttributes.getNamedItem(\"bm-path\") ? wrapperAttributes.getNamedItem(\"bm-path\").value : \"\";\n    params.animType = wrapperAttributes.getNamedItem(\"data-anim-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-type\").value : wrapperAttributes.getNamedItem(\"data-bm-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-type\").value : wrapperAttributes.getNamedItem(\"bm-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"bm-type\").value : wrapperAttributes.getNamedItem(\"data-bm-renderer\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-renderer\").value : wrapperAttributes.getNamedItem(\"bm-renderer\") ? wrapperAttributes.getNamedItem(\"bm-renderer\").value : \"canvas\";\n    var loop = wrapperAttributes.getNamedItem(\"data-anim-loop\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-loop\").value : wrapperAttributes.getNamedItem(\"data-bm-loop\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-loop\").value : wrapperAttributes.getNamedItem(\"bm-loop\") ? wrapperAttributes.getNamedItem(\"bm-loop\").value : \"\";\n\n    if (loop === \"false\") {\n      params.loop = false;\n    } else if (loop === \"true\") {\n      params.loop = true;\n    } else if (loop !== \"\") {\n      params.loop = parseInt(loop, 10);\n    }\n\n    var autoplay = wrapperAttributes.getNamedItem(\"data-anim-autoplay\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-autoplay\").value : wrapperAttributes.getNamedItem(\"data-bm-autoplay\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-autoplay\").value : wrapperAttributes.getNamedItem(\"bm-autoplay\") ? wrapperAttributes.getNamedItem(\"bm-autoplay\").value : true;\n    params.autoplay = autoplay !== \"false\";\n    params.name = wrapperAttributes.getNamedItem(\"data-name\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-name\").value : wrapperAttributes.getNamedItem(\"data-bm-name\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-name\").value : wrapperAttributes.getNamedItem(\"bm-name\") ? wrapperAttributes.getNamedItem(\"bm-name\").value : \"\";\n    var prerender = wrapperAttributes.getNamedItem(\"data-anim-prerender\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-prerender\").value : wrapperAttributes.getNamedItem(\"data-bm-prerender\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-prerender\").value : wrapperAttributes.getNamedItem(\"bm-prerender\") ? wrapperAttributes.getNamedItem(\"bm-prerender\").value : \"\";\n\n    if (prerender === \"false\") {\n      params.prerender = false;\n    }\n\n    this.setParams(params);\n  };\n\n  AnimationItem.prototype.includeLayers = function (data) {\n    if (data.op > (this || _global).animationData.op) {\n      (this || _global).animationData.op = data.op;\n      (this || _global).totalFrames = Math.floor(data.op - (this || _global).animationData.ip);\n    }\n\n    var layers = (this || _global).animationData.layers;\n    var i;\n    var len = layers.length;\n    var newLayers = data.layers;\n    var j;\n    var jLen = newLayers.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      i = 0;\n\n      while (i < len) {\n        if (layers[i].id === newLayers[j].id) {\n          layers[i] = newLayers[j];\n          break;\n        }\n\n        i += 1;\n      }\n    }\n\n    if (data.chars || data.fonts) {\n      (this || _global).renderer.globalData.fontManager.addChars(data.chars);\n\n      (this || _global).renderer.globalData.fontManager.addFonts(data.fonts, (this || _global).renderer.globalData.defs);\n    }\n\n    if (data.assets) {\n      len = data.assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).animationData.assets.push(data.assets[i]);\n      }\n    }\n\n    (this || _global).animationData.__complete = false;\n    dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n    (this || _global).renderer.includeLayers(data.layers);\n\n    if (expressionsPlugin) {\n      expressionsPlugin.initExpressions(this || _global);\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.loadNextSegment = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments || segments.length === 0 || !(this || _global).autoloadSegments) {\n      this.trigger(\"data_ready\");\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      return;\n    }\n\n    var segment = segments.shift();\n    (this || _global).timeCompleted = segment.time * (this || _global).frameRate;\n    var segmentPath = (this || _global).path + (this || _global).fileName + \"_\" + (this || _global).segmentPos + \".json\";\n    (this || _global).segmentPos += 1;\n    assetLoader.load(segmentPath, (this || _global).includeLayers.bind(this || _global), function () {\n      this.trigger(\"data_failed\");\n    }.bind(this || _global));\n  };\n\n  AnimationItem.prototype.loadSegments = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments) {\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.imagesLoaded = function () {\n    this.trigger(\"loaded_images\");\n    this.checkLoaded();\n  };\n\n  AnimationItem.prototype.preloadImages = function () {\n    (this || _global).imagePreloader.setAssetsPath((this || _global).assetsPath);\n\n    (this || _global).imagePreloader.setPath((this || _global).path);\n\n    (this || _global).imagePreloader.loadAssets((this || _global).animationData.assets, (this || _global).imagesLoaded.bind(this || _global));\n  };\n\n  AnimationItem.prototype.configAnimation = function (animData) {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).animationData = animData;\n\n      if ((this || _global).initialSegment) {\n        (this || _global).totalFrames = Math.floor((this || _global).initialSegment[1] - (this || _global).initialSegment[0]);\n        (this || _global).firstFrame = Math.round((this || _global).initialSegment[0]);\n      } else {\n        (this || _global).totalFrames = Math.floor((this || _global).animationData.op - (this || _global).animationData.ip);\n        (this || _global).firstFrame = Math.round((this || _global).animationData.ip);\n      }\n\n      (this || _global).renderer.configAnimation(animData);\n\n      if (!animData.assets) {\n        animData.assets = [];\n      }\n\n      (this || _global).assets = (this || _global).animationData.assets;\n      (this || _global).frameRate = (this || _global).animationData.fr;\n      (this || _global).frameMult = (this || _global).animationData.fr / 1000;\n\n      (this || _global).renderer.searchExtraCompositions(animData.assets);\n\n      (this || _global).markers = markerParser(animData.markers || []);\n      this.trigger(\"config_ready\");\n      this.preloadImages();\n      this.loadSegments();\n      this.updaFrameModifier();\n      this.waitForFontsLoaded();\n\n      if ((this || _global).isPaused) {\n        (this || _global).audioController.pause();\n      }\n    } catch (error) {\n      this.triggerConfigError(error);\n    }\n  };\n\n  AnimationItem.prototype.waitForFontsLoaded = function () {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    if ((this || _global).renderer.globalData.fontManager.isLoaded) {\n      this.checkLoaded();\n    } else {\n      setTimeout((this || _global).waitForFontsLoaded.bind(this || _global), 20);\n    }\n  };\n\n  AnimationItem.prototype.checkLoaded = function () {\n    if (!(this || _global).isLoaded && (this || _global).renderer.globalData.fontManager.isLoaded && ((this || _global).imagePreloader.loadedImages() || (this || _global).renderer.rendererType !== \"canvas\") && (this || _global).imagePreloader.loadedFootages()) {\n      (this || _global).isLoaded = true;\n      dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n      if (expressionsPlugin) {\n        expressionsPlugin.initExpressions(this || _global);\n      }\n\n      (this || _global).renderer.initItems();\n\n      setTimeout(function () {\n        this.trigger(\"DOMLoaded\");\n      }.bind(this || _global), 0);\n      this.gotoFrame();\n\n      if ((this || _global).autoplay) {\n        this.play();\n      }\n    }\n  };\n\n  AnimationItem.prototype.resize = function () {\n    (this || _global).renderer.updateContainerSize();\n  };\n\n  AnimationItem.prototype.setSubframe = function (flag) {\n    (this || _global).isSubframeEnabled = !!flag;\n  };\n\n  AnimationItem.prototype.gotoFrame = function () {\n    (this || _global).currentFrame = (this || _global).isSubframeEnabled ? (this || _global).currentRawFrame : ~~(this || _global).currentRawFrame; // eslint-disable-line no-bitwise\n\n    if ((this || _global).timeCompleted !== (this || _global).totalFrames && (this || _global).currentFrame > (this || _global).timeCompleted) {\n      (this || _global).currentFrame = (this || _global).timeCompleted;\n    }\n\n    this.trigger(\"enterFrame\");\n    this.renderFrame();\n  };\n\n  AnimationItem.prototype.renderFrame = function () {\n    if ((this || _global).isLoaded === false || !(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).renderer.renderFrame((this || _global).currentFrame + (this || _global).firstFrame);\n    } catch (error) {\n      this.triggerRenderFrameError(error);\n    }\n  };\n\n  AnimationItem.prototype.play = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      (this || _global).isPaused = false;\n\n      (this || _global).audioController.resume();\n\n      if ((this || _global)._idle) {\n        (this || _global)._idle = false;\n        this.trigger(\"_active\");\n      }\n    }\n  };\n\n  AnimationItem.prototype.pause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === false) {\n      (this || _global).isPaused = true;\n      (this || _global)._idle = true;\n      this.trigger(\"_idle\");\n\n      (this || _global).audioController.pause();\n    }\n  };\n\n  AnimationItem.prototype.togglePause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      this.play();\n    } else {\n      this.pause();\n    }\n  };\n\n  AnimationItem.prototype.stop = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    this.pause();\n    (this || _global).playCount = 0;\n    (this || _global)._completedLoop = false;\n    this.setCurrentRawFrameValue(0);\n  };\n\n  AnimationItem.prototype.getMarkerData = function (markerName) {\n    var marker;\n\n    for (var i = 0; i < (this || _global).markers.length; i += 1) {\n      marker = (this || _global).markers[i];\n\n      if (marker.payload && marker.payload.name === markerName) {\n        return marker;\n      }\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        this.goToAndStop(marker.time, true);\n      }\n    } else if (isFrame) {\n      this.setCurrentRawFrameValue(value);\n    } else {\n      this.setCurrentRawFrameValue(value * (this || _global).frameModifier);\n    }\n\n    this.pause();\n  };\n\n  AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        if (!marker.duration) {\n          this.goToAndStop(marker.time, true);\n        } else {\n          this.playSegments([marker.time, marker.time + marker.duration], true);\n        }\n      }\n    } else {\n      this.goToAndStop(numValue, isFrame, name);\n    }\n\n    this.play();\n  };\n\n  AnimationItem.prototype.advanceTime = function (value) {\n    if ((this || _global).isPaused === true || (this || _global).isLoaded === false) {\n      return;\n    }\n\n    var nextValue = (this || _global).currentRawFrame + value * (this || _global).frameModifier;\n    var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n    // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n    if (nextValue >= (this || _global).totalFrames - 1 && (this || _global).frameModifier > 0) {\n      if (!(this || _global).loop || (this || _global).playCount === (this || _global).loop) {\n        if (!this.checkSegments(nextValue > (this || _global).totalFrames ? nextValue % (this || _global).totalFrames : 0)) {\n          _isComplete = true;\n          nextValue = (this || _global).totalFrames - 1;\n        }\n      } else if (nextValue >= (this || _global).totalFrames) {\n        (this || _global).playCount += 1;\n\n        if (!this.checkSegments(nextValue % (this || _global).totalFrames)) {\n          this.setCurrentRawFrameValue(nextValue % (this || _global).totalFrames);\n          (this || _global)._completedLoop = true;\n          this.trigger(\"loopComplete\");\n        }\n      } else {\n        this.setCurrentRawFrameValue(nextValue);\n      }\n    } else if (nextValue < 0) {\n      if (!this.checkSegments(nextValue % (this || _global).totalFrames)) {\n        if ((this || _global).loop && !((this || _global).playCount-- <= 0 && (this || _global).loop !== true)) {\n          // eslint-disable-line no-plusplus\n          this.setCurrentRawFrameValue((this || _global).totalFrames + nextValue % (this || _global).totalFrames);\n\n          if (!(this || _global)._completedLoop) {\n            (this || _global)._completedLoop = true;\n          } else {\n            this.trigger(\"loopComplete\");\n          }\n        } else {\n          _isComplete = true;\n          nextValue = 0;\n        }\n      }\n    } else {\n      this.setCurrentRawFrameValue(nextValue);\n    }\n\n    if (_isComplete) {\n      this.setCurrentRawFrameValue(nextValue);\n      this.pause();\n      this.trigger(\"complete\");\n    }\n  };\n\n  AnimationItem.prototype.adjustSegment = function (arr, offset) {\n    (this || _global).playCount = 0;\n\n    if (arr[1] < arr[0]) {\n      if ((this || _global).frameModifier > 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(-1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[0] - arr[1];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).firstFrame = arr[1];\n      this.setCurrentRawFrameValue((this || _global).totalFrames - 0.001 - offset);\n    } else if (arr[1] > arr[0]) {\n      if ((this || _global).frameModifier < 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[1] - arr[0];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).firstFrame = arr[0];\n      this.setCurrentRawFrameValue(0.001 + offset);\n    }\n\n    this.trigger(\"segmentStart\");\n  };\n\n  AnimationItem.prototype.setSegment = function (init, end) {\n    var pendingFrame = -1;\n\n    if ((this || _global).isPaused) {\n      if ((this || _global).currentRawFrame + (this || _global).firstFrame < init) {\n        pendingFrame = init;\n      } else if ((this || _global).currentRawFrame + (this || _global).firstFrame > end) {\n        pendingFrame = end - init;\n      }\n    }\n\n    (this || _global).firstFrame = init;\n    (this || _global).totalFrames = end - init;\n    (this || _global).timeCompleted = (this || _global).totalFrames;\n\n    if (pendingFrame !== -1) {\n      this.goToAndStop(pendingFrame, true);\n    }\n  };\n\n  AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n    if (forceFlag) {\n      (this || _global).segments.length = 0;\n    }\n\n    if (typeof arr[0] === \"object\") {\n      var i;\n      var len = arr.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).segments.push(arr[i]);\n      }\n    } else {\n      (this || _global).segments.push(arr);\n    }\n\n    if ((this || _global).segments.length && forceFlag) {\n      this.adjustSegment((this || _global).segments.shift(), 0);\n    }\n\n    if ((this || _global).isPaused) {\n      this.play();\n    }\n  };\n\n  AnimationItem.prototype.resetSegments = function (forceFlag) {\n    (this || _global).segments.length = 0;\n\n    (this || _global).segments.push([(this || _global).animationData.ip, (this || _global).animationData.op]); // this.segments.push([this.animationData.ip*this.frameRate,Math.floor(this.animationData.op - this.animationData.ip+this.animationData.ip*this.frameRate)]);\n\n\n    if (forceFlag) {\n      this.checkSegments(0);\n    }\n  };\n\n  AnimationItem.prototype.checkSegments = function (offset) {\n    if ((this || _global).segments.length) {\n      this.adjustSegment((this || _global).segments.shift(), offset);\n      return true;\n    }\n\n    return false;\n  };\n\n  AnimationItem.prototype.destroy = function (name) {\n    if (name && (this || _global).name !== name || !(this || _global).renderer) {\n      return;\n    }\n\n    (this || _global).renderer.destroy();\n\n    (this || _global).imagePreloader.destroy();\n\n    this.trigger(\"destroy\");\n    (this || _global)._cbs = null;\n    (this || _global).onEnterFrame = null;\n    (this || _global).onLoopComplete = null;\n    (this || _global).onComplete = null;\n    (this || _global).onSegmentStart = null;\n    (this || _global).onDestroy = null;\n    (this || _global).renderer = null;\n    (this || _global).renderer = null;\n    (this || _global).imagePreloader = null;\n    (this || _global).projectInterface = null;\n  };\n\n  AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n    (this || _global).currentRawFrame = value;\n    this.gotoFrame();\n  };\n\n  AnimationItem.prototype.setSpeed = function (val) {\n    (this || _global).playSpeed = val;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setDirection = function (val) {\n    (this || _global).playDirection = val < 0 ? -1 : 1;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setVolume = function (val, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.setVolume(val);\n  };\n\n  AnimationItem.prototype.getVolume = function () {\n    return (this || _global).audioController.getVolume();\n  };\n\n  AnimationItem.prototype.mute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.mute();\n  };\n\n  AnimationItem.prototype.unmute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.unmute();\n  };\n\n  AnimationItem.prototype.updaFrameModifier = function () {\n    (this || _global).frameModifier = (this || _global).frameMult * (this || _global).playSpeed * (this || _global).playDirection;\n\n    (this || _global).audioController.setRate((this || _global).playSpeed * (this || _global).playDirection);\n  };\n\n  AnimationItem.prototype.getPath = function () {\n    return (this || _global).path;\n  };\n\n  AnimationItem.prototype.getAssetsPath = function (assetData) {\n    var path = \"\";\n\n    if (assetData.e) {\n      path = assetData.p;\n    } else if ((this || _global).assetsPath) {\n      var imagePath = assetData.p;\n\n      if (imagePath.indexOf(\"images/\") !== -1) {\n        imagePath = imagePath.split(\"/\")[1];\n      }\n\n      path = (this || _global).assetsPath + imagePath;\n    } else {\n      path = (this || _global).path;\n      path += assetData.u ? assetData.u : \"\";\n      path += assetData.p;\n    }\n\n    return path;\n  };\n\n  AnimationItem.prototype.getAssetData = function (id) {\n    var i = 0;\n    var len = (this || _global).assets.length;\n\n    while (i < len) {\n      if (id === (this || _global).assets[i].id) {\n        return (this || _global).assets[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.hide = function () {\n    (this || _global).renderer.hide();\n  };\n\n  AnimationItem.prototype.show = function () {\n    (this || _global).renderer.show();\n  };\n\n  AnimationItem.prototype.getDuration = function (isFrame) {\n    return isFrame ? (this || _global).totalFrames : (this || _global).totalFrames / (this || _global).frameRate;\n  };\n\n  AnimationItem.prototype.trigger = function (name) {\n    if ((this || _global)._cbs && (this || _global)._cbs[name]) {\n      switch (name) {\n        case \"enterFrame\":\n          this.triggerEvent(name, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameModifier));\n          break;\n\n        case \"loopComplete\":\n          this.triggerEvent(name, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n          break;\n\n        case \"complete\":\n          this.triggerEvent(name, new BMCompleteEvent(name, (this || _global).frameMult));\n          break;\n\n        case \"segmentStart\":\n          this.triggerEvent(name, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n          break;\n\n        case \"destroy\":\n          this.triggerEvent(name, new BMDestroyEvent(name, this || _global));\n          break;\n\n        default:\n          this.triggerEvent(name);\n      }\n    }\n\n    if (name === \"enterFrame\" && (this || _global).onEnterFrame) {\n      (this || _global).onEnterFrame.call(this || _global, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameMult));\n    }\n\n    if (name === \"loopComplete\" && (this || _global).onLoopComplete) {\n      (this || _global).onLoopComplete.call(this || _global, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n    }\n\n    if (name === \"complete\" && (this || _global).onComplete) {\n      (this || _global).onComplete.call(this || _global, new BMCompleteEvent(name, (this || _global).frameMult));\n    }\n\n    if (name === \"segmentStart\" && (this || _global).onSegmentStart) {\n      (this || _global).onSegmentStart.call(this || _global, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n    }\n\n    if (name === \"destroy\" && (this || _global).onDestroy) {\n      (this || _global).onDestroy.call(this || _global, new BMDestroyEvent(name, this || _global));\n    }\n  };\n\n  AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n    var error = new BMRenderFrameErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n\n  AnimationItem.prototype.triggerConfigError = function (nativeError) {\n    var error = new BMConfigErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n  /* global CompExpressionInterface, expressionsPlugin: writable */\n\n  /* exported expressionsPlugin */\n\n\n  var Expressions = function () {\n    var ob = {};\n    ob.initExpressions = initExpressions;\n\n    function initExpressions(animation) {\n      var stackCount = 0;\n      var registers = [];\n\n      function pushExpression() {\n        stackCount += 1;\n      }\n\n      function popExpression() {\n        stackCount -= 1;\n\n        if (stackCount === 0) {\n          releaseInstances();\n        }\n      }\n\n      function registerExpressionProperty(expression) {\n        if (registers.indexOf(expression) === -1) {\n          registers.push(expression);\n        }\n      }\n\n      function releaseInstances() {\n        var i;\n        var len = registers.length;\n\n        for (i = 0; i < len; i += 1) {\n          registers[i].release();\n        }\n\n        registers.length = 0;\n      }\n\n      animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n      animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n      animation.renderer.globalData.pushExpression = pushExpression;\n      animation.renderer.globalData.popExpression = popExpression;\n      animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n    }\n\n    return ob;\n  }();\n\n  expressionsPlugin = Expressions;\n  /* eslint-disable camelcase, no-unused-vars */\n\n  /* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\n\n  var ExpressionManager = function () {\n    'use strict';\n\n    var ob = {};\n    var Math = BMMath;\n    var window = null;\n    var document = null;\n\n    function $bm_isInstanceOfArray(arr) {\n      return arr.constructor === Array || arr.constructor === Float32Array;\n    }\n\n    function isNumerable(tOfV, v) {\n      return tOfV === \"number\" || tOfV === \"boolean\" || tOfV === \"string\" || v instanceof Number;\n    }\n\n    function $bm_neg(a) {\n      var tOfA = typeof a;\n\n      if (tOfA === \"number\" || tOfA === \"boolean\" || a instanceof Number) {\n        return -a;\n      }\n\n      if ($bm_isInstanceOfArray(a)) {\n        var i;\n        var lenA = a.length;\n        var retArr = [];\n\n        for (i = 0; i < lenA; i += 1) {\n          retArr[i] = -a[i];\n        }\n\n        return retArr;\n      }\n\n      if (a.propType) {\n        return a.v;\n      }\n\n      return -a;\n    }\n\n    var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, \"easeIn\").get;\n    var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, \"easeOut\").get;\n    var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, \"easeInOut\").get;\n\n    function sum(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n\n      if (tOfA === \"string\" || tOfB === \"string\") {\n        return a + b;\n      }\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a + b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] += b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a + b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === \"number\" || a[i] instanceof Number) && (typeof b[i] === \"number\" || b[i] instanceof Number)) {\n            retArr[i] = a[i] + b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    var add = sum;\n\n    function sub(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        if (tOfA === \"string\") {\n          a = parseInt(a, 10);\n        }\n\n        if (tOfB === \"string\") {\n          b = parseInt(b, 10);\n        }\n\n        return a - b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] -= b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a - b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === \"number\" || a[i] instanceof Number) && (typeof b[i] === \"number\" || b[i] instanceof Number)) {\n            retArr[i] = a[i] - b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    function mul(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a * b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] * b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a * b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function div(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a / b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] / b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a / b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function mod(a, b) {\n      if (typeof a === \"string\") {\n        a = parseInt(a, 10);\n      }\n\n      if (typeof b === \"string\") {\n        b = parseInt(b, 10);\n      }\n\n      return a % b;\n    }\n\n    var $bm_sum = sum;\n    var $bm_sub = sub;\n    var $bm_mul = mul;\n    var $bm_div = div;\n    var $bm_mod = mod;\n\n    function clamp(num, min, max) {\n      if (min > max) {\n        var mm = max;\n        max = min;\n        min = mm;\n      }\n\n      return Math.min(Math.max(num, min), max);\n    }\n\n    function radiansToDegrees(val) {\n      return val / degToRads;\n    }\n\n    var radians_to_degrees = radiansToDegrees;\n\n    function degreesToRadians(val) {\n      return val * degToRads;\n    }\n\n    var degrees_to_radians = radiansToDegrees;\n    var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n    function length(arr1, arr2) {\n      if (typeof arr1 === \"number\" || arr1 instanceof Number) {\n        arr2 = arr2 || 0;\n        return Math.abs(arr1 - arr2);\n      }\n\n      if (!arr2) {\n        arr2 = helperLengthArray;\n      }\n\n      var i;\n      var len = Math.min(arr1.length, arr2.length);\n      var addedLength = 0;\n\n      for (i = 0; i < len; i += 1) {\n        addedLength += Math.pow(arr2[i] - arr1[i], 2);\n      }\n\n      return Math.sqrt(addedLength);\n    }\n\n    function normalize(vec) {\n      return div(vec, length(vec));\n    }\n\n    function rgbToHsl(val) {\n      var r = val[0];\n      var g = val[1];\n      var b = val[2];\n      var max = Math.max(r, g, b);\n      var min = Math.min(r, g, b);\n      var h;\n      var s;\n      var l = (max + min) / 2;\n\n      if (max === min) {\n        h = 0; // achromatic\n\n        s = 0; // achromatic\n      } else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n        switch (max) {\n          case r:\n            h = (g - b) / d + (g < b ? 6 : 0);\n            break;\n\n          case g:\n            h = (b - r) / d + 2;\n            break;\n\n          case b:\n            h = (r - g) / d + 4;\n            break;\n\n          default:\n            break;\n        }\n\n        h /= 6;\n      }\n\n      return [h, s, l, val[3]];\n    }\n\n    function hue2rgb(p, q, t) {\n      if (t < 0) t += 1;\n      if (t > 1) t -= 1;\n      if (t < 1 / 6) return p + (q - p) * 6 * t;\n      if (t < 1 / 2) return q;\n      if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n      return p;\n    }\n\n    function hslToRgb(val) {\n      var h = val[0];\n      var s = val[1];\n      var l = val[2];\n      var r;\n      var g;\n      var b;\n\n      if (s === 0) {\n        r = l; // achromatic\n\n        b = l; // achromatic\n\n        g = l; // achromatic\n      } else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1 / 3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1 / 3);\n      }\n\n      return [r, g, b, val[3]];\n    }\n\n    function linear(t, tMin, tMax, value1, value2) {\n      if (value1 === undefined || value2 === undefined) {\n        value1 = tMin;\n        value2 = tMax;\n        tMin = 0;\n        tMax = 1;\n      }\n\n      if (tMax < tMin) {\n        var _tMin = tMax;\n        tMax = tMin;\n        tMin = _tMin;\n      }\n\n      if (t <= tMin) {\n        return value1;\n      }\n\n      if (t >= tMax) {\n        return value2;\n      }\n\n      var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n      if (!value1.length) {\n        return value1 + (value2 - value1) * perc;\n      }\n\n      var i;\n      var len = value1.length;\n      var arr = createTypedArray(\"float32\", len);\n\n      for (i = 0; i < len; i += 1) {\n        arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n      }\n\n      return arr;\n    }\n\n    function random(min, max) {\n      if (max === undefined) {\n        if (min === undefined) {\n          min = 0;\n          max = 1;\n        } else {\n          max = min;\n          min = undefined;\n        }\n      }\n\n      if (max.length) {\n        var i;\n        var len = max.length;\n\n        if (!min) {\n          min = createTypedArray(\"float32\", len);\n        }\n\n        var arr = createTypedArray(\"float32\", len);\n        var rnd = BMMath.random();\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = min[i] + rnd * (max[i] - min[i]);\n        }\n\n        return arr;\n      }\n\n      if (min === undefined) {\n        min = 0;\n      }\n\n      var rndm = BMMath.random();\n      return min + rndm * (max - min);\n    }\n\n    function createPath(points, inTangents, outTangents, closed) {\n      var i;\n      var len = points.length;\n      var path = shapePool.newElement();\n      path.setPathData(!!closed, len);\n      var arrPlaceholder = [0, 0];\n      var inVertexPoint;\n      var outVertexPoint;\n\n      for (i = 0; i < len; i += 1) {\n        inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n        outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n        path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n      }\n\n      return path;\n    }\n\n    function initiateExpression(elem, data, property) {\n      var val = data.x;\n      var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n      var _needsRandom = val.indexOf(\"random\") !== -1;\n\n      var elemType = elem.data.ty;\n      var transform;\n      var $bm_transform;\n      var content;\n      var effect;\n      var thisProperty = property;\n      thisProperty.valueAtTime = thisProperty.getValueAtTime;\n      Object.defineProperty(thisProperty, \"value\", {\n        get: function () {\n          return thisProperty.v;\n        }\n      });\n      elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n      elem.comp.displayStartTime = 0;\n      var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      var width = elem.data.sw ? elem.data.sw : 0;\n      var height = elem.data.sh ? elem.data.sh : 0;\n      var name = elem.data.nm;\n      var loopIn;\n      var loop_in;\n      var loopOut;\n      var loop_out;\n      var smooth;\n      var toWorld;\n      var fromWorld;\n      var fromComp;\n      var toComp;\n      var fromCompToSurface;\n      var position;\n      var rotation;\n      var anchorPoint;\n      var scale;\n      var thisLayer;\n      var thisComp;\n      var mask;\n      var valueAtTime;\n      var velocityAtTime;\n      var scoped_bm_rt;\n      var expression_function = eval(\"[function _expression_function(){\" + val + \";scoped_bm_rt=$bm_rt}]\")[0]; // eslint-disable-line no-eval\n\n      var numKeys = property.kf ? data.k.length : 0;\n      var active = !(this || _global).data || (this || _global).data.hd !== true;\n\n      var wiggle = function wiggle(freq, amp) {\n        var iWiggle;\n        var j;\n        var lenWiggle = (this || _global).pv.length ? (this || _global).pv.length : 1;\n        var addedAmps = createTypedArray(\"float32\", lenWiggle);\n        freq = 5;\n        var iterations = Math.floor(time * freq);\n        iWiggle = 0;\n        j = 0;\n\n        while (iWiggle < iterations) {\n          // var rnd = BMMath.random();\n          for (j = 0; j < lenWiggle; j += 1) {\n            addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n          }\n\n          iWiggle += 1;\n        } // var rnd2 = BMMath.random();\n\n\n        var periods = time * freq;\n        var perc = periods - Math.floor(periods);\n        var arr = createTypedArray(\"float32\", lenWiggle);\n\n        if (lenWiggle > 1) {\n          for (j = 0; j < lenWiggle; j += 1) {\n            arr[j] = (this || _global).pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n            // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n          }\n\n          return arr;\n        }\n\n        return (this || _global).pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n      }.bind(this || _global);\n\n      if (thisProperty.loopIn) {\n        loopIn = thisProperty.loopIn.bind(thisProperty);\n        loop_in = loopIn;\n      }\n\n      if (thisProperty.loopOut) {\n        loopOut = thisProperty.loopOut.bind(thisProperty);\n        loop_out = loopOut;\n      }\n\n      if (thisProperty.smooth) {\n        smooth = thisProperty.smooth.bind(thisProperty);\n      }\n\n      function loopInDuration(type, duration) {\n        return loopIn(type, duration, true);\n      }\n\n      function loopOutDuration(type, duration) {\n        return loopOut(type, duration, true);\n      }\n\n      if ((this || _global).getValueAtTime) {\n        valueAtTime = (this || _global).getValueAtTime.bind(this || _global);\n      }\n\n      if ((this || _global).getVelocityAtTime) {\n        velocityAtTime = (this || _global).getVelocityAtTime.bind(this || _global);\n      }\n\n      var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n      function lookAt(elem1, elem2) {\n        var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n        var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n        var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n        return [yaw, pitch, 0];\n      }\n\n      function easeOut(t, tMin, tMax, val1, val2) {\n        return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function easeIn(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n      }\n\n      function ease(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function applyEase(fn, t, tMin, tMax, val1, val2) {\n        if (val1 === undefined) {\n          val1 = tMin;\n          val2 = tMax;\n        } else {\n          t = (t - tMin) / (tMax - tMin);\n        }\n\n        if (t > 1) {\n          t = 1;\n        } else if (t < 0) {\n          t = 0;\n        }\n\n        var mult = fn(t);\n\n        if ($bm_isInstanceOfArray(val1)) {\n          var iKey;\n          var lenKey = val1.length;\n          var arr = createTypedArray(\"float32\", lenKey);\n\n          for (iKey = 0; iKey < lenKey; iKey += 1) {\n            arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n          }\n\n          return arr;\n        }\n\n        return (val2 - val1) * mult + val1;\n      }\n\n      function nearestKey(time) {\n        var iKey;\n        var lenKey = data.k.length;\n        var index;\n        var keyTime;\n\n        if (!data.k.length || typeof data.k[0] === \"number\") {\n          index = 0;\n          keyTime = 0;\n        } else {\n          index = -1;\n          time *= elem.comp.globalData.frameRate;\n\n          if (time < data.k[0].t) {\n            index = 1;\n            keyTime = data.k[0].t;\n          } else {\n            for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n              if (time === data.k[iKey].t) {\n                index = iKey + 1;\n                keyTime = data.k[iKey].t;\n                break;\n              } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n                if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n                  index = iKey + 2;\n                  keyTime = data.k[iKey + 1].t;\n                } else {\n                  index = iKey + 1;\n                  keyTime = data.k[iKey].t;\n                }\n\n                break;\n              }\n            }\n\n            if (index === -1) {\n              index = iKey + 1;\n              keyTime = data.k[iKey].t;\n            }\n          }\n        }\n\n        var obKey = {};\n        obKey.index = index;\n        obKey.time = keyTime / elem.comp.globalData.frameRate;\n        return obKey;\n      }\n\n      function key(ind) {\n        var obKey;\n        var iKey;\n        var lenKey;\n\n        if (!data.k.length || typeof data.k[0] === \"number\") {\n          throw new Error(\"The property has no keyframe at index \" + ind);\n        }\n\n        ind -= 1;\n        obKey = {\n          time: data.k[ind].t / elem.comp.globalData.frameRate,\n          value: []\n        };\n        var arr = Object.prototype.hasOwnProperty.call(data.k[ind], \"s\") ? data.k[ind].s : data.k[ind - 1].e;\n        lenKey = arr.length;\n\n        for (iKey = 0; iKey < lenKey; iKey += 1) {\n          obKey[iKey] = arr[iKey];\n          obKey.value[iKey] = arr[iKey];\n        }\n\n        return obKey;\n      }\n\n      function framesToTime(frames, fps) {\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return frames / fps;\n      }\n\n      function timeToFrames(t, fps) {\n        if (!t && t !== 0) {\n          t = time;\n        }\n\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return t * fps;\n      }\n\n      function seedRandom(seed) {\n        BMMath.seedrandom(randSeed + seed);\n      }\n\n      function sourceRectAtTime() {\n        return elem.sourceRectAtTime();\n      }\n\n      function substring(init, end) {\n        if (typeof value === \"string\") {\n          if (end === undefined) {\n            return value.substring(init);\n          }\n\n          return value.substring(init, end);\n        }\n\n        return \"\";\n      }\n\n      function substr(init, end) {\n        if (typeof value === \"string\") {\n          if (end === undefined) {\n            return value.substr(init);\n          }\n\n          return value.substr(init, end);\n        }\n\n        return \"\";\n      }\n\n      function posterizeTime(framesPerSecond) {\n        time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n        value = valueAtTime(time);\n      }\n\n      var time;\n      var velocity;\n      var value;\n      var text;\n      var textIndex;\n      var textTotal;\n      var selectorValue;\n      var index = elem.data.ind;\n      var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n      var parent;\n      var randSeed = Math.floor(Math.random() * 1000000);\n      var globalData = elem.globalData;\n\n      function executeExpression(_value) {\n        // globalData.pushExpression();\n        value = _value;\n\n        if (_needsRandom) {\n          seedRandom(randSeed);\n        }\n\n        if ((this || _global).frameExpressionId === elem.globalData.frameId && (this || _global).propType !== \"textSelector\") {\n          return value;\n        }\n\n        if ((this || _global).propType === \"textSelector\") {\n          textIndex = (this || _global).textIndex;\n          textTotal = (this || _global).textTotal;\n          selectorValue = (this || _global).selectorValue;\n        }\n\n        if (!thisLayer) {\n          text = elem.layerInterface.text;\n          thisLayer = elem.layerInterface;\n          thisComp = elem.comp.compInterface;\n          toWorld = thisLayer.toWorld.bind(thisLayer);\n          fromWorld = thisLayer.fromWorld.bind(thisLayer);\n          fromComp = thisLayer.fromComp.bind(thisLayer);\n          toComp = thisLayer.toComp.bind(thisLayer);\n          mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n          fromCompToSurface = fromComp;\n        }\n\n        if (!transform) {\n          transform = elem.layerInterface(\"ADBE Transform Group\");\n          $bm_transform = transform;\n\n          if (transform) {\n            anchorPoint = transform.anchorPoint;\n            /* position = transform.position;\r\n                      rotation = transform.rotation;\r\n                      scale = transform.scale; */\n          }\n        }\n\n        if (elemType === 4 && !content) {\n          content = thisLayer(\"ADBE Root Vectors Group\");\n        }\n\n        if (!effect) {\n          effect = thisLayer(4);\n        }\n\n        hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n        if (hasParent && !parent) {\n          parent = elem.hierarchy[0].layerInterface;\n        }\n\n        time = (this || _global).comp.renderedFrame / (this || _global).comp.globalData.frameRate;\n\n        if (needsVelocity) {\n          velocity = velocityAtTime(time);\n        }\n\n        expression_function();\n        (this || _global).frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n\n        if (scoped_bm_rt.propType === \"shape\") {\n          scoped_bm_rt = scoped_bm_rt.v;\n        } // globalData.popExpression();\n\n\n        return scoped_bm_rt;\n      }\n\n      return executeExpression;\n    }\n\n    ob.initiateExpression = initiateExpression;\n    return ob;\n  }();\n  /* global ExpressionManager, createTypedArray */\n\n  /* exported expressionHelpers */\n\n\n  var expressionHelpers = function () {\n    function searchExpressions(elem, data, prop) {\n      if (data.x) {\n        prop.k = true;\n        prop.x = true;\n        prop.initiateExpression = ExpressionManager.initiateExpression;\n        prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n      }\n    }\n\n    function getValueAtTime(frameNum) {\n      frameNum *= (this || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastFrame) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastFrame < frameNum ? (this || _global)._cachingAtTime.lastIndex : 0;\n        (this || _global)._cachingAtTime.value = this.interpolateValue(frameNum, (this || _global)._cachingAtTime);\n        (this || _global)._cachingAtTime.lastFrame = frameNum;\n      }\n\n      return (this || _global)._cachingAtTime.value;\n    }\n\n    function getSpeedAtTime(frameNum) {\n      var delta = -0.01;\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var speed = 0;\n\n      if (v1.length) {\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          speed += Math.pow(v2[i] - v1[i], 2);\n        }\n\n        speed = Math.sqrt(speed) * 100;\n      } else {\n        speed = 0;\n      }\n\n      return speed;\n    }\n\n    function getVelocityAtTime(frameNum) {\n      if ((this || _global).vel !== undefined) {\n        return (this || _global).vel;\n      }\n\n      var delta = -0.001; // frameNum += this.elem.data.st;\n\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var velocity;\n\n      if (v1.length) {\n        velocity = createTypedArray(\"float32\", v1.length);\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          // removing frameRate\n          // if needed, don't add it here\n          // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n          velocity[i] = (v2[i] - v1[i]) / delta;\n        }\n      } else {\n        velocity = (v2 - v1) / delta;\n      }\n\n      return velocity;\n    }\n\n    function getStaticValueAtTime() {\n      return (this || _global).pv;\n    }\n\n    function setGroupProperty(propertyGroup) {\n      (this || _global).propertyGroup = propertyGroup;\n    }\n\n    return {\n      searchExpressions: searchExpressions,\n      getSpeedAtTime: getSpeedAtTime,\n      getVelocityAtTime: getVelocityAtTime,\n      getValueAtTime: getValueAtTime,\n      getStaticValueAtTime: getStaticValueAtTime,\n      setGroupProperty: setGroupProperty\n    };\n  }();\n  /* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\n  initialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\n\n\n  (function addPropertyDecorator() {\n    function loopOut(type, duration, durationFlag) {\n      if (!(this || _global).k || !(this || _global).keyframes) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n      if (currentFrame <= lastKeyFrame) {\n        return (this || _global).pv;\n      }\n\n      var cycleDuration;\n      var firstKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, lastKeyFrame - (this || _global).elem.data.ip);\n        } else {\n          cycleDuration = Math.abs(lastKeyFrame - (this || _global).elem.comp.globalData.frameRate * duration);\n        }\n\n        firstKeyFrame = lastKeyFrame - cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === \"pingpong\") {\n        var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if (iterations % 2 !== 0) {\n          return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n\n        var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n          }\n\n          return ret;\n        }\n\n        return (endV - initV) * repeats + current;\n      } else if (type === \"continue\") {\n        var lastValue = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(lastValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / (this || _global).comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n          }\n\n          return ret;\n        }\n\n        return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n      }\n\n      return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function loopIn(type, duration, durationFlag) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var firstKeyFrame = keyframes[0].t;\n\n      if (currentFrame >= firstKeyFrame) {\n        return (this || _global).pv;\n      }\n\n      var cycleDuration;\n      var lastKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        lastKeyFrame = keyframes[duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, (this || _global).elem.data.op - firstKeyFrame);\n        } else {\n          cycleDuration = Math.abs((this || _global).elem.comp.globalData.frameRate * duration);\n        }\n\n        lastKeyFrame = firstKeyFrame + cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === \"pingpong\") {\n        var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n        if (iterations % 2 === 0) {\n          return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0);\n        var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n        if ((this || _global).pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n          }\n\n          return ret;\n        }\n\n        return current - (endV - initV) * repeats;\n      } else if (type === \"continue\") {\n        var firstValue = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(firstValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n          }\n\n          return ret;\n        }\n\n        return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n      }\n\n      return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function smooth(width, samples) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      width = (width || 0.4) * 0.5;\n      samples = Math.floor(samples || 5);\n\n      if (samples <= 1) {\n        return (this || _global).pv;\n      }\n\n      var currentTime = (this || _global).comp.renderedFrame / (this || _global).comp.globalData.frameRate;\n      var initFrame = currentTime - width;\n      var endFrame = currentTime + width;\n      var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n      var i = 0;\n      var j = 0;\n      var value;\n\n      if ((this || _global).pv.length) {\n        value = createTypedArray(\"float32\", (this || _global).pv.length);\n      } else {\n        value = 0;\n      }\n\n      var sampleValue;\n\n      while (i < samples) {\n        sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n        if ((this || _global).pv.length) {\n          for (j = 0; j < (this || _global).pv.length; j += 1) {\n            value[j] += sampleValue[j];\n          }\n        } else {\n          value += sampleValue;\n        }\n\n        i += 1;\n      }\n\n      if ((this || _global).pv.length) {\n        for (j = 0; j < (this || _global).pv.length; j += 1) {\n          value[j] /= samples;\n        }\n      } else {\n        value /= samples;\n      }\n\n      return value;\n    }\n\n    function getTransformValueAtTime(time) {\n      if (!(this || _global)._transformCachingAtTime) {\n        (this || _global)._transformCachingAtTime = {\n          v: new Matrix()\n        };\n      } /// /\n\n\n      var matrix = (this || _global)._transformCachingAtTime.v;\n      matrix.cloneFromProps((this || _global).pre.props);\n\n      if ((this || _global).appliedTransformations < 1) {\n        var anchor = (this || _global).a.getValueAtTime(time);\n\n        matrix.translate(-anchor[0] * (this || _global).a.mult, -anchor[1] * (this || _global).a.mult, anchor[2] * (this || _global).a.mult);\n      }\n\n      if ((this || _global).appliedTransformations < 2) {\n        var scale = (this || _global).s.getValueAtTime(time);\n\n        matrix.scale(scale[0] * (this || _global).s.mult, scale[1] * (this || _global).s.mult, scale[2] * (this || _global).s.mult);\n      }\n\n      if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n        var skew = (this || _global).sk.getValueAtTime(time);\n\n        var skewAxis = (this || _global).sa.getValueAtTime(time);\n\n        matrix.skewFromAxis(-skew * (this || _global).sk.mult, skewAxis * (this || _global).sa.mult);\n      }\n\n      if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotation = (this || _global).r.getValueAtTime(time);\n\n        matrix.rotate(-rotation * (this || _global).r.mult);\n      } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotationZ = (this || _global).rz.getValueAtTime(time);\n\n        var rotationY = (this || _global).ry.getValueAtTime(time);\n\n        var rotationX = (this || _global).rx.getValueAtTime(time);\n\n        var orientation = (this || _global).or.getValueAtTime(time);\n\n        matrix.rotateZ(-rotationZ * (this || _global).rz.mult).rotateY(rotationY * (this || _global).ry.mult).rotateX(rotationX * (this || _global).rx.mult).rotateZ(-orientation[2] * (this || _global).or.mult).rotateY(orientation[1] * (this || _global).or.mult).rotateX(orientation[0] * (this || _global).or.mult);\n      }\n\n      if ((this || _global).data.p && (this || _global).data.p.s) {\n        var positionX = (this || _global).px.getValueAtTime(time);\n\n        var positionY = (this || _global).py.getValueAtTime(time);\n\n        if ((this || _global).data.p.z) {\n          var positionZ = (this || _global).pz.getValueAtTime(time);\n\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, -positionZ * (this || _global).pz.mult);\n        } else {\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, 0);\n        }\n      } else {\n        var position = (this || _global).p.getValueAtTime(time);\n\n        matrix.translate(position[0] * (this || _global).p.mult, position[1] * (this || _global).p.mult, -position[2] * (this || _global).p.mult);\n      }\n\n      return matrix; /// /\n    }\n\n    function getTransformStaticValueAtTime() {\n      return (this || _global).v.clone(new Matrix());\n    }\n\n    var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n    TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n      var prop = getTransformProperty(elem, data, container);\n\n      if (prop.dynamicProperties.length) {\n        prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      return prop;\n    };\n\n    var propertyGetProp = PropertyFactory.getProp;\n\n    PropertyFactory.getProp = function (elem, data, type, mult, container) {\n      var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n      // prop.loopOut = loopOut;\n      // prop.loopIn = loopIn;\n\n      if (prop.kf) {\n        prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      prop.loopOut = loopOut;\n      prop.loopIn = loopIn;\n      prop.smooth = smooth;\n      prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n      prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n      prop.numKeys = data.a === 1 ? data.k.length : 0;\n      prop.propertyIndex = data.ix;\n      var value = 0;\n\n      if (type !== 0) {\n        value = createTypedArray(\"float32\", data.a === 1 ? data.k[0].s.length : data.k.length);\n      }\n\n      prop._cachingAtTime = {\n        lastFrame: initialDefaultFrame,\n        lastIndex: 0,\n        value: value\n      };\n      expressionHelpers.searchExpressions(elem, data, prop);\n\n      if (prop.k) {\n        container.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n\n    function getShapeValueAtTime(frameNum) {\n      // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n      if (!(this || _global)._cachingAtTime) {\n        (this || _global)._cachingAtTime = {\n          shapeValue: shapePool.clone((this || _global).pv),\n          lastIndex: 0,\n          lastTime: initialDefaultFrame\n        };\n      }\n\n      frameNum *= (this || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastTime) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastTime < frameNum ? (this || _global)._caching.lastIndex : 0;\n        (this || _global)._cachingAtTime.lastTime = frameNum;\n        this.interpolateShape(frameNum, (this || _global)._cachingAtTime.shapeValue, (this || _global)._cachingAtTime);\n      }\n\n      return (this || _global)._cachingAtTime.shapeValue;\n    }\n\n    var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n    var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n    function ShapeExpressions() {}\n\n    ShapeExpressions.prototype = {\n      vertices: function (prop, time) {\n        if ((this || _global).k) {\n          this.getValue();\n        }\n\n        var shapePath = (this || _global).v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        var i;\n        var len = shapePath._length;\n        var vertices = shapePath[prop];\n        var points = shapePath.v;\n        var arr = createSizedArray(len);\n\n        for (i = 0; i < len; i += 1) {\n          if (prop === \"i\" || prop === \"o\") {\n            arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n          } else {\n            arr[i] = [vertices[i][0], vertices[i][1]];\n          }\n        }\n\n        return arr;\n      },\n      points: function (time) {\n        return this.vertices(\"v\", time);\n      },\n      inTangents: function (time) {\n        return this.vertices(\"i\", time);\n      },\n      outTangents: function (time) {\n        return this.vertices(\"o\", time);\n      },\n      isClosed: function () {\n        return (this || _global).v.c;\n      },\n      pointOnPath: function (perc, time) {\n        var shapePath = (this || _global).v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        if (!(this || _global)._segmentsLength) {\n          (this || _global)._segmentsLength = bez.getSegmentsLength(shapePath);\n        }\n\n        var segmentsLength = (this || _global)._segmentsLength;\n        var lengths = segmentsLength.lengths;\n        var lengthPos = segmentsLength.totalLength * perc;\n        var i = 0;\n        var len = lengths.length;\n        var accumulatedLength = 0;\n        var pt;\n\n        while (i < len) {\n          if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n            var initIndex = i;\n            var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n            var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n            pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n            break;\n          } else {\n            accumulatedLength += lengths[i].addedLength;\n          }\n\n          i += 1;\n        }\n\n        if (!pt) {\n          pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n        }\n\n        return pt;\n      },\n      vectorOnPath: function (perc, time, vectorType) {\n        // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n        if (perc == 1) {\n          // eslint-disable-line eqeqeq\n          perc = (this || _global).v.c;\n        } else if (perc == 0) {\n          // eslint-disable-line eqeqeq\n          perc = 0.999;\n        }\n\n        var pt1 = this.pointOnPath(perc, time);\n        var pt2 = this.pointOnPath(perc + 0.001, time);\n        var xLength = pt2[0] - pt1[0];\n        var yLength = pt2[1] - pt1[1];\n        var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n        if (magnitude === 0) {\n          return [0, 0];\n        }\n\n        var unitVector = vectorType === \"tangent\" ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n        return unitVector;\n      },\n      tangentOnPath: function (perc, time) {\n        return this.vectorOnPath(perc, time, \"tangent\");\n      },\n      normalOnPath: function (perc, time) {\n        return this.vectorOnPath(perc, time, \"normal\");\n      },\n      setGroupProperty: expressionHelpers.setGroupProperty,\n      getValueAtTime: expressionHelpers.getStaticValueAtTime\n    };\n    extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n    extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n    KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n    KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n    var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n    ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n      var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n      prop.propertyIndex = data.ix;\n      prop.lock = false;\n\n      if (type === 3) {\n        expressionHelpers.searchExpressions(elem, data.pt, prop);\n      } else if (type === 4) {\n        expressionHelpers.searchExpressions(elem, data.ks, prop);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n  })();\n  /* global ExpressionManager, TextProperty */\n\n\n  (function addDecorator() {\n    function searchExpressions() {\n      if ((this || _global).data.d.x) {\n        (this || _global).calculateExpression = ExpressionManager.initiateExpression.bind(this || _global)((this || _global).elem, (this || _global).data.d, this || _global);\n        this.addEffect((this || _global).getExpressionValue.bind(this || _global));\n        return true;\n      }\n\n      return null;\n    }\n\n    TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n      var newValue = this.calculateExpression(text);\n\n      if (currentValue.t !== newValue) {\n        var newData = {};\n        this.copyData(newData, currentValue);\n        newData.t = newValue.toString();\n        newData.__complete = false;\n        return newData;\n      }\n\n      return currentValue;\n    };\n\n    TextProperty.prototype.searchProperty = function () {\n      var isKeyframed = this.searchKeyframes();\n      var hasExpressions = this.searchExpressions();\n      (this || _global).kf = isKeyframed || hasExpressions;\n      return (this || _global).kf;\n    };\n\n    TextProperty.prototype.searchExpressions = searchExpressions;\n  })();\n  /* global propertyGroupFactory, PropertyInterface */\n\n  /* exported ShapePathInterface */\n\n\n  var ShapePathInterface = function () {\n    return function pathInterfaceFactory(shape, view, propertyGroup) {\n      var prop = view.sh;\n\n      function interfaceFunction(val) {\n        if (val === \"Shape\" || val === \"shape\" || val === \"Path\" || val === \"path\" || val === \"ADBE Vector Shape\" || val === 2) {\n          return interfaceFunction.path;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      prop.setGroupProperty(PropertyInterface(\"Path\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        path: {\n          get: function () {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        shape: {\n          get: function () {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        ix: {\n          value: shape.ix\n        },\n        propertyIndex: {\n          value: shape.ix\n        },\n        mn: {\n          value: shape.mn\n        },\n        propertyGroup: {\n          value: propertyGroup\n        }\n      });\n      return interfaceFunction;\n    };\n  }();\n  /* exported propertyGroupFactory */\n\n\n  var propertyGroupFactory = function () {\n    return function (interfaceFunction, parentPropertyGroup) {\n      return function (val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return parentPropertyGroup(val - 1);\n      };\n    };\n  }();\n  /* exported PropertyInterface */\n\n\n  var PropertyInterface = function () {\n    return function (propertyName, propertyGroup) {\n      var interfaceFunction = {\n        _name: propertyName\n      };\n\n      function _propertyGroup(val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return propertyGroup(val - 1);\n      }\n\n      return _propertyGroup;\n    };\n  }();\n  /* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\n\n  /* exported ShapeExpressionInterface */\n\n\n  var ShapeExpressionInterface = function () {\n    function iterateElements(shapes, view, propertyGroup) {\n      var arr = [];\n      var i;\n      var len = shapes ? shapes.length : 0;\n\n      for (i = 0; i < len; i += 1) {\n        if (shapes[i].ty === \"gr\") {\n          arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"fl\") {\n          arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"st\") {\n          arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"tm\") {\n          arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"tr\") {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n        } else if (shapes[i].ty === \"el\") {\n          arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"sr\") {\n          arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"sh\") {\n          arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rc\") {\n          arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rd\") {\n          arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rp\") {\n          arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n        }\n      }\n\n      return arr;\n    }\n\n    function contentsInterfaceFactory(shape, view, propertyGroup) {\n      var interfaces;\n\n      var interfaceFunction = function _interfaceFunction(value) {\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        if (typeof value === \"number\") {\n          return interfaces[value - 1];\n        }\n\n        return null;\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n      interfaceFunction.numProperties = interfaces.length;\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.transform = transformInterface;\n      interfaceFunction.propertyIndex = shape.cix;\n      interfaceFunction._name = shape.nm;\n      return interfaceFunction;\n    }\n\n    function groupInterfaceFactory(shape, view, propertyGroup) {\n      var interfaceFunction = function _interfaceFunction(value) {\n        switch (value) {\n          case \"ADBE Vectors Group\":\n          case \"Contents\":\n          case 2:\n            return interfaceFunction.content;\n          // Not necessary for now. Keeping them here in case a new case appears\n          // case 'ADBE Vector Transform Group':\n          // case 3:\n\n          default:\n            return interfaceFunction.transform;\n        }\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.content = content;\n      interfaceFunction.transform = transformInterface;\n      Object.defineProperty(interfaceFunction, \"_name\", {\n        get: function () {\n          return shape.nm;\n        }\n      }); // interfaceFunction.content = interfaceFunction;\n\n      interfaceFunction.numProperties = shape.np;\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.nm = shape.nm;\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function fillInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === \"Color\" || val === \"color\") {\n          return interfaceFunction.color;\n        }\n\n        if (val === \"Opacity\" || val === \"opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface(\"Color\", propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Opacity\", propertyGroup));\n      return interfaceFunction;\n    }\n\n    function strokeInterfaceFactory(shape, view, propertyGroup) {\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n      function addPropertyToDashOb(i) {\n        Object.defineProperty(dashOb, shape.d[i].nm, {\n          get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n        });\n      }\n\n      var i;\n      var len = shape.d ? shape.d.length : 0;\n      var dashOb = {};\n\n      for (i = 0; i < len; i += 1) {\n        addPropertyToDashOb(i);\n        view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n      }\n\n      function interfaceFunction(val) {\n        if (val === \"Color\" || val === \"color\") {\n          return interfaceFunction.color;\n        }\n\n        if (val === \"Opacity\" || val === \"opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        if (val === \"Stroke Width\" || val === \"stroke width\") {\n          return interfaceFunction.strokeWidth;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        strokeWidth: {\n          get: ExpressionPropertyInterface(view.w)\n        },\n        dash: {\n          get: function () {\n            return dashOb;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface(\"Color\", _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      view.w.setGroupProperty(PropertyInterface(\"Stroke Width\", _propertyGroup));\n      return interfaceFunction;\n    }\n\n    function trimInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === shape.e.ix || val === \"End\" || val === \"end\") {\n          return interfaceFunction.end;\n        }\n\n        if (val === shape.s.ix) {\n          return interfaceFunction.start;\n        }\n\n        if (val === shape.o.ix) {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      view.s.setGroupProperty(PropertyInterface(\"Start\", _propertyGroup));\n      view.e.setGroupProperty(PropertyInterface(\"End\", _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Offset\", _propertyGroup));\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.propertyGroup = propertyGroup;\n      Object.defineProperties(interfaceFunction, {\n        start: {\n          get: ExpressionPropertyInterface(view.s)\n        },\n        end: {\n          get: ExpressionPropertyInterface(view.e)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function transformInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.a.ix === value || value === \"Anchor Point\") {\n          return interfaceFunction.anchorPoint;\n        }\n\n        if (shape.o.ix === value || value === \"Opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        if (shape.p.ix === value || value === \"Position\") {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value || value === \"Rotation\" || value === \"ADBE Vector Rotation\") {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.s.ix === value || value === \"Scale\") {\n          return interfaceFunction.scale;\n        }\n\n        if (shape.sk && shape.sk.ix === value || value === \"Skew\") {\n          return interfaceFunction.skew;\n        }\n\n        if (shape.sa && shape.sa.ix === value || value === \"Skew Axis\") {\n          return interfaceFunction.skewAxis;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      view.transform.mProps.o.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      view.transform.mProps.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      view.transform.mProps.a.setGroupProperty(PropertyInterface(\"Anchor Point\", _propertyGroup));\n      view.transform.mProps.s.setGroupProperty(PropertyInterface(\"Scale\", _propertyGroup));\n      view.transform.mProps.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n\n      if (view.transform.mProps.sk) {\n        view.transform.mProps.sk.setGroupProperty(PropertyInterface(\"Skew\", _propertyGroup));\n        view.transform.mProps.sa.setGroupProperty(PropertyInterface(\"Skew Angle\", _propertyGroup));\n      }\n\n      view.transform.op.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        opacity: {\n          get: ExpressionPropertyInterface(view.transform.mProps.o)\n        },\n        position: {\n          get: ExpressionPropertyInterface(view.transform.mProps.p)\n        },\n        anchorPoint: {\n          get: ExpressionPropertyInterface(view.transform.mProps.a)\n        },\n        scale: {\n          get: ExpressionPropertyInterface(view.transform.mProps.s)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(view.transform.mProps.r)\n        },\n        skew: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sk)\n        },\n        skewAxis: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sa)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.ty = \"tr\";\n      interfaceFunction.mn = shape.mn;\n      interfaceFunction.propertyGroup = propertyGroup;\n      return interfaceFunction;\n    }\n\n    function ellipseInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.s.ix === value) {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      prop.s.setGroupProperty(PropertyInterface(\"Size\", _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function starInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.pt.ix === value) {\n          return interfaceFunction.points;\n        }\n\n        if (shape.or.ix === value || value === \"ADBE Vector Star Outer Radius\") {\n          return interfaceFunction.outerRadius;\n        }\n\n        if (shape.os.ix === value) {\n          return interfaceFunction.outerRoundness;\n        }\n\n        if (shape.ir && (shape.ir.ix === value || value === \"ADBE Vector Star Inner Radius\")) {\n          return interfaceFunction.innerRadius;\n        }\n\n        if (shape.is && shape.is.ix === value) {\n          return interfaceFunction.innerRoundness;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.or.setGroupProperty(PropertyInterface(\"Outer Radius\", _propertyGroup));\n      prop.os.setGroupProperty(PropertyInterface(\"Outer Roundness\", _propertyGroup));\n      prop.pt.setGroupProperty(PropertyInterface(\"Points\", _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n\n      if (shape.ir) {\n        prop.ir.setGroupProperty(PropertyInterface(\"Inner Radius\", _propertyGroup));\n        prop.is.setGroupProperty(PropertyInterface(\"Inner Roundness\", _propertyGroup));\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        points: {\n          get: ExpressionPropertyInterface(prop.pt)\n        },\n        outerRadius: {\n          get: ExpressionPropertyInterface(prop.or)\n        },\n        outerRoundness: {\n          get: ExpressionPropertyInterface(prop.os)\n        },\n        innerRadius: {\n          get: ExpressionPropertyInterface(prop.ir)\n        },\n        innerRoundness: {\n          get: ExpressionPropertyInterface(prop.is)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function rectInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.roundness;\n        }\n\n        if (shape.s.ix === value || value === \"Size\" || value === \"ADBE Vector Rect Size\") {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      prop.s.setGroupProperty(PropertyInterface(\"Size\", _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        roundness: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function roundedInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.r.ix === value || value === \"Round Corners 1\") {\n          return interfaceFunction.radius;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.rd.setGroupProperty(PropertyInterface(\"Radius\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        radius: {\n          get: ExpressionPropertyInterface(prop.rd)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function repeaterInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.c.ix === value || value === \"Copies\") {\n          return interfaceFunction.copies;\n        }\n\n        if (shape.o.ix === value || value === \"Offset\") {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.c.setGroupProperty(PropertyInterface(\"Copies\", _propertyGroup));\n      prop.o.setGroupProperty(PropertyInterface(\"Offset\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        copies: {\n          get: ExpressionPropertyInterface(prop.c)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(prop.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    return function (shapes, view, propertyGroup) {\n      var interfaces;\n\n      function _interfaceFunction(value) {\n        if (typeof value === \"number\") {\n          value = value === undefined ? 1 : value;\n\n          if (value === 0) {\n            return propertyGroup;\n          }\n\n          return interfaces[value - 1];\n        }\n\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      function parentGroupWrapper() {\n        return propertyGroup;\n      }\n\n      _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n      interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n      _interfaceFunction.numProperties = interfaces.length;\n      _interfaceFunction._name = \"Contents\";\n      return _interfaceFunction;\n    };\n  }();\n  /* exported TextExpressionInterface */\n\n\n  var TextExpressionInterface = function () {\n    return function (elem) {\n      var _prevValue;\n\n      var _sourceText;\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case \"ADBE Text Document\":\n            return _thisLayerFunction.sourceText;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisLayerFunction, \"sourceText\", {\n        get: function () {\n          elem.textProperty.getValue();\n          var stringValue = elem.textProperty.currentData.t;\n\n          if (stringValue !== _prevValue) {\n            elem.textProperty.currentData.t = _prevValue;\n            _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n            // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n            _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n          }\n\n          return _sourceText;\n        }\n      });\n      return _thisLayerFunction;\n    };\n  }();\n  /* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\n\n  /* exported LayerExpressionInterface */\n\n\n  var LayerExpressionInterface = function () {\n    function getMatrix(time) {\n      var toWorldMat = new Matrix();\n\n      if (time !== undefined) {\n        var propMatrix = (this || _global)._elem.finalTransform.mProp.getValueAtTime(time);\n\n        propMatrix.clone(toWorldMat);\n      } else {\n        var transformMat = (this || _global)._elem.finalTransform.mProp;\n        transformMat.applyToMatrix(toWorldMat);\n      }\n\n      return toWorldMat;\n    }\n\n    function toWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function toWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function fromWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function fromWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function applyPoint(matrix, arr) {\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n    }\n\n    function invertPoint(matrix, arr) {\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.inversePoint(arr);\n    }\n\n    function fromComp(arr) {\n      var toWorldMat = new Matrix();\n      toWorldMat.reset();\n\n      (this || _global)._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n        }\n\n        return toWorldMat.inversePoint(arr);\n      }\n\n      return toWorldMat.inversePoint(arr);\n    }\n\n    function sampleImage() {\n      return [1, 1, 1, 1];\n    }\n\n    return function (elem) {\n      var transformInterface;\n\n      function _registerMaskInterface(maskManager) {\n        _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n      }\n\n      function _registerEffectsInterface(effects) {\n        _thisLayerFunction.effect = effects;\n      }\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case \"ADBE Root Vectors Group\":\n          case \"Contents\":\n          case 2:\n            return _thisLayerFunction.shapeInterface;\n\n          case 1:\n          case 6:\n          case \"Transform\":\n          case \"transform\":\n          case \"ADBE Transform Group\":\n            return transformInterface;\n\n          case 4:\n          case \"ADBE Effect Parade\":\n          case \"effects\":\n          case \"Effects\":\n            return _thisLayerFunction.effect;\n\n          case \"ADBE Text Properties\":\n            return _thisLayerFunction.textInterface;\n\n          default:\n            return null;\n        }\n      }\n\n      _thisLayerFunction.getMatrix = getMatrix;\n      _thisLayerFunction.invertPoint = invertPoint;\n      _thisLayerFunction.applyPoint = applyPoint;\n      _thisLayerFunction.toWorld = toWorld;\n      _thisLayerFunction.toWorldVec = toWorldVec;\n      _thisLayerFunction.fromWorld = fromWorld;\n      _thisLayerFunction.fromWorldVec = fromWorldVec;\n      _thisLayerFunction.toComp = toWorld;\n      _thisLayerFunction.fromComp = fromComp;\n      _thisLayerFunction.sampleImage = sampleImage;\n      _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n      _thisLayerFunction._elem = elem;\n      transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n      var anchorPointDescriptor = getDescriptor(transformInterface, \"anchorPoint\");\n      Object.defineProperties(_thisLayerFunction, {\n        hasParent: {\n          get: function () {\n            return elem.hierarchy.length;\n          }\n        },\n        parent: {\n          get: function () {\n            return elem.hierarchy[0].layerInterface;\n          }\n        },\n        rotation: getDescriptor(transformInterface, \"rotation\"),\n        scale: getDescriptor(transformInterface, \"scale\"),\n        position: getDescriptor(transformInterface, \"position\"),\n        opacity: getDescriptor(transformInterface, \"opacity\"),\n        anchorPoint: anchorPointDescriptor,\n        anchor_point: anchorPointDescriptor,\n        transform: {\n          get: function () {\n            return transformInterface;\n          }\n        },\n        active: {\n          get: function () {\n            return elem.isInRange;\n          }\n        }\n      });\n      _thisLayerFunction.startTime = elem.data.st;\n      _thisLayerFunction.index = elem.data.ind;\n      _thisLayerFunction.source = elem.data.refId;\n      _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n      _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n      _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      _thisLayerFunction._name = elem.data.nm;\n      _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n      _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n      return _thisLayerFunction;\n    };\n  }();\n  /* global */\n\n  /* exported FootageInterface */\n\n\n  var FootageInterface = function () {\n    var outlineInterfaceFactory = function (elem) {\n      var currentPropertyName = \"\";\n      var currentProperty = elem.getFootageData();\n\n      function init() {\n        currentPropertyName = \"\";\n        currentProperty = elem.getFootageData();\n        return searchProperty;\n      }\n\n      function searchProperty(value) {\n        if (currentProperty[value]) {\n          currentPropertyName = value;\n          currentProperty = currentProperty[value];\n\n          if (typeof currentProperty === \"object\") {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        var propertyNameIndex = value.indexOf(currentPropertyName);\n\n        if (propertyNameIndex !== -1) {\n          var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n          currentProperty = currentProperty[index];\n\n          if (typeof currentProperty === \"object\") {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        return \"\";\n      }\n\n      return init;\n    };\n\n    var dataInterfaceFactory = function (elem) {\n      function interfaceFunction(value) {\n        if (value === \"Outline\") {\n          return interfaceFunction.outlineInterface();\n        }\n\n        return null;\n      }\n\n      interfaceFunction._name = \"Outline\";\n      interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n      return interfaceFunction;\n    };\n\n    return function (elem) {\n      function _interfaceFunction(value) {\n        if (value === \"Data\") {\n          return _interfaceFunction.dataInterface;\n        }\n\n        return null;\n      }\n\n      _interfaceFunction._name = \"Data\";\n      _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n      return _interfaceFunction;\n    };\n  }();\n  /* exported CompExpressionInterface */\n\n\n  var CompExpressionInterface = function () {\n    return function (comp) {\n      function _thisLayerFunction(name) {\n        var i = 0;\n        var len = comp.layers.length;\n\n        while (i < len) {\n          if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n            return comp.elements[i].layerInterface;\n          }\n\n          i += 1;\n        }\n\n        return null; // return {active:false};\n      }\n\n      Object.defineProperty(_thisLayerFunction, \"_name\", {\n        value: comp.data.nm\n      });\n      _thisLayerFunction.layer = _thisLayerFunction;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n      _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n      _thisLayerFunction.displayStartTime = 0;\n      _thisLayerFunction.numLayers = comp.layers.length;\n      return _thisLayerFunction;\n    };\n  }();\n  /* global ExpressionPropertyInterface */\n\n  /* exported TransformExpressionInterface */\n\n\n  var TransformExpressionInterface = function () {\n    return function (transform) {\n      function _thisFunction(name) {\n        switch (name) {\n          case \"scale\":\n          case \"Scale\":\n          case \"ADBE Scale\":\n          case 6:\n            return _thisFunction.scale;\n\n          case \"rotation\":\n          case \"Rotation\":\n          case \"ADBE Rotation\":\n          case \"ADBE Rotate Z\":\n          case 10:\n            return _thisFunction.rotation;\n\n          case \"ADBE Rotate X\":\n            return _thisFunction.xRotation;\n\n          case \"ADBE Rotate Y\":\n            return _thisFunction.yRotation;\n\n          case \"position\":\n          case \"Position\":\n          case \"ADBE Position\":\n          case 2:\n            return _thisFunction.position;\n\n          case \"ADBE Position_0\":\n            return _thisFunction.xPosition;\n\n          case \"ADBE Position_1\":\n            return _thisFunction.yPosition;\n\n          case \"ADBE Position_2\":\n            return _thisFunction.zPosition;\n\n          case \"anchorPoint\":\n          case \"AnchorPoint\":\n          case \"Anchor Point\":\n          case \"ADBE AnchorPoint\":\n          case 1:\n            return _thisFunction.anchorPoint;\n\n          case \"opacity\":\n          case \"Opacity\":\n          case 11:\n            return _thisFunction.opacity;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisFunction, \"rotation\", {\n        get: ExpressionPropertyInterface(transform.r || transform.rz)\n      });\n      Object.defineProperty(_thisFunction, \"zRotation\", {\n        get: ExpressionPropertyInterface(transform.rz || transform.r)\n      });\n      Object.defineProperty(_thisFunction, \"xRotation\", {\n        get: ExpressionPropertyInterface(transform.rx)\n      });\n      Object.defineProperty(_thisFunction, \"yRotation\", {\n        get: ExpressionPropertyInterface(transform.ry)\n      });\n      Object.defineProperty(_thisFunction, \"scale\", {\n        get: ExpressionPropertyInterface(transform.s)\n      });\n\n      var _px;\n\n      var _py;\n\n      var _pz;\n\n      var _transformFactory;\n\n      if (transform.p) {\n        _transformFactory = ExpressionPropertyInterface(transform.p);\n      } else {\n        _px = ExpressionPropertyInterface(transform.px);\n        _py = ExpressionPropertyInterface(transform.py);\n\n        if (transform.pz) {\n          _pz = ExpressionPropertyInterface(transform.pz);\n        }\n      }\n\n      Object.defineProperty(_thisFunction, \"position\", {\n        get: function () {\n          if (transform.p) {\n            return _transformFactory();\n          }\n\n          return [_px(), _py(), _pz ? _pz() : 0];\n        }\n      });\n      Object.defineProperty(_thisFunction, \"xPosition\", {\n        get: ExpressionPropertyInterface(transform.px)\n      });\n      Object.defineProperty(_thisFunction, \"yPosition\", {\n        get: ExpressionPropertyInterface(transform.py)\n      });\n      Object.defineProperty(_thisFunction, \"zPosition\", {\n        get: ExpressionPropertyInterface(transform.pz)\n      });\n      Object.defineProperty(_thisFunction, \"anchorPoint\", {\n        get: ExpressionPropertyInterface(transform.a)\n      });\n      Object.defineProperty(_thisFunction, \"opacity\", {\n        get: ExpressionPropertyInterface(transform.o)\n      });\n      Object.defineProperty(_thisFunction, \"skew\", {\n        get: ExpressionPropertyInterface(transform.sk)\n      });\n      Object.defineProperty(_thisFunction, \"skewAxis\", {\n        get: ExpressionPropertyInterface(transform.sa)\n      });\n      Object.defineProperty(_thisFunction, \"orientation\", {\n        get: ExpressionPropertyInterface(transform.or)\n      });\n      return _thisFunction;\n    };\n  }();\n  /* exported ProjectInterface */\n\n\n  ProjectInterface = function () {\n    function registerComposition(comp) {\n      (this || _global).compositions.push(comp);\n    }\n\n    return function () {\n      function _thisProjectFunction(name) {\n        var i = 0;\n        var len = (this || _global).compositions.length;\n\n        while (i < len) {\n          if ((this || _global).compositions[i].data && (this || _global).compositions[i].data.nm === name) {\n            if ((this || _global).compositions[i].prepareFrame && (this || _global).compositions[i].data.xt) {\n              (this || _global).compositions[i].prepareFrame((this || _global).currentFrame);\n            }\n\n            return (this || _global).compositions[i].compInterface;\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      _thisProjectFunction.compositions = [];\n      _thisProjectFunction.currentFrame = 0;\n      _thisProjectFunction.registerComposition = registerComposition;\n      return _thisProjectFunction;\n    };\n  }();\n  /* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\n\n  /* exported EffectsExpressionInterface */\n\n\n  var EffectsExpressionInterface = function () {\n    var ob = {\n      createEffectsInterface: createEffectsInterface\n    };\n\n    function createEffectsInterface(elem, propertyGroup) {\n      if (elem.effectsManager) {\n        var effectElements = [];\n        var effectsData = elem.data.ef;\n        var i;\n        var len = elem.effectsManager.effectElements.length;\n\n        for (i = 0; i < len; i += 1) {\n          effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n        }\n\n        var effects = elem.data.ef || [];\n\n        var groupInterface = function (name) {\n          i = 0;\n          len = effects.length;\n\n          while (i < len) {\n            if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n              return effectElements[i];\n            }\n\n            i += 1;\n          }\n\n          return null;\n        };\n\n        Object.defineProperty(groupInterface, \"numProperties\", {\n          get: function () {\n            return effects.length;\n          }\n        });\n        return groupInterface;\n      }\n\n      return null;\n    }\n\n    function createGroupInterface(data, elements, propertyGroup, elem) {\n      function groupInterface(name) {\n        var effects = data.ef;\n        var i = 0;\n        var len = effects.length;\n\n        while (i < len) {\n          if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n            if (effects[i].ty === 5) {\n              return effectElements[i];\n            }\n\n            return effectElements[i]();\n          }\n\n          i += 1;\n        }\n\n        throw new Error();\n      }\n\n      var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n      var effectElements = [];\n      var i;\n      var len = data.ef.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (data.ef[i].ty === 5) {\n          effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n        } else {\n          effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n        }\n      }\n\n      if (data.mn === \"ADBE Color Control\") {\n        Object.defineProperty(groupInterface, \"color\", {\n          get: function () {\n            return effectElements[0]();\n          }\n        });\n      }\n\n      Object.defineProperties(groupInterface, {\n        numProperties: {\n          get: function () {\n            return data.np;\n          }\n        },\n        _name: {\n          value: data.nm\n        },\n        propertyGroup: {\n          value: _propertyGroup\n        }\n      });\n      groupInterface.enabled = data.en !== 0;\n      groupInterface.active = groupInterface.enabled;\n      return groupInterface;\n    }\n\n    function createValueInterface(element, type, elem, propertyGroup) {\n      var expressionProperty = ExpressionPropertyInterface(element.p);\n\n      function interfaceFunction() {\n        if (type === 10) {\n          return elem.comp.compInterface(element.p.v);\n        }\n\n        return expressionProperty();\n      }\n\n      if (element.p.setGroupProperty) {\n        element.p.setGroupProperty(PropertyInterface(\"\", propertyGroup));\n      }\n\n      return interfaceFunction;\n    }\n\n    return ob;\n  }();\n  /* global createSizedArray */\n\n  /* exported MaskManagerInterface */\n\n\n  var MaskManagerInterface = function () {\n    function MaskInterface(mask, data) {\n      (this || _global)._mask = mask;\n      (this || _global)._data = data;\n    }\n\n    Object.defineProperty(MaskInterface.prototype, \"maskPath\", {\n      get: function () {\n        if ((this || _global)._mask.prop.k) {\n          (this || _global)._mask.prop.getValue();\n        }\n\n        return (this || _global)._mask.prop;\n      }\n    });\n    Object.defineProperty(MaskInterface.prototype, \"maskOpacity\", {\n      get: function () {\n        if ((this || _global)._mask.op.k) {\n          (this || _global)._mask.op.getValue();\n        }\n\n        return (this || _global)._mask.op.v * 100;\n      }\n    });\n\n    var MaskManager = function (maskManager) {\n      var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n      var i;\n      var len = maskManager.viewData.length;\n\n      for (i = 0; i < len; i += 1) {\n        _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n      }\n\n      var maskFunction = function (name) {\n        i = 0;\n\n        while (i < len) {\n          if (maskManager.masksProperties[i].nm === name) {\n            return _masksInterfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      };\n\n      return maskFunction;\n    };\n\n    return MaskManager;\n  }();\n  /* global createTypedArray */\n\n  /* exported ExpressionPropertyInterface */\n\n\n  var ExpressionPropertyInterface = function () {\n    var defaultUnidimensionalValue = {\n      pv: 0,\n      v: 0,\n      mult: 1\n    };\n    var defaultMultidimensionalValue = {\n      pv: [0, 0, 0],\n      v: [0, 0, 0],\n      mult: 1\n    };\n\n    function completeProperty(expressionValue, property, type) {\n      Object.defineProperty(expressionValue, \"velocity\", {\n        get: function () {\n          return property.getVelocityAtTime(property.comp.currentFrame);\n        }\n      });\n      expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n      expressionValue.key = function (pos) {\n        if (!expressionValue.numKeys) {\n          return 0;\n        }\n\n        var value = \"\";\n\n        if (\"s\" in property.keyframes[pos - 1]) {\n          value = property.keyframes[pos - 1].s;\n        } else if (\"e\" in property.keyframes[pos - 2]) {\n          value = property.keyframes[pos - 2].e;\n        } else {\n          value = property.keyframes[pos - 2].s;\n        }\n\n        var valueProp = type === \"unidimensional\" ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n        valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n        valueProp.value = type === \"unidimensional\" ? value[0] : value;\n        return valueProp;\n      };\n\n      expressionValue.valueAtTime = property.getValueAtTime;\n      expressionValue.speedAtTime = property.getSpeedAtTime;\n      expressionValue.velocityAtTime = property.getVelocityAtTime;\n      expressionValue.propertyGroup = property.propertyGroup;\n    }\n\n    function UnidimensionalPropertyInterface(property) {\n      if (!property || !(\"pv\" in property)) {\n        property = defaultUnidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var val = property.pv * mult;\n      var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n      expressionValue.value = val;\n      completeProperty(expressionValue, property, \"unidimensional\");\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        val = property.v * mult;\n\n        if (expressionValue.value !== val) {\n          expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n          expressionValue.value = val;\n          completeProperty(expressionValue, property, \"unidimensional\");\n        }\n\n        return expressionValue;\n      };\n    }\n\n    function MultidimensionalPropertyInterface(property) {\n      if (!property || !(\"pv\" in property)) {\n        property = defaultMultidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var len = property.data && property.data.l || property.pv.length;\n      var expressionValue = createTypedArray(\"float32\", len);\n      var arrValue = createTypedArray(\"float32\", len);\n      expressionValue.value = arrValue;\n      completeProperty(expressionValue, property, \"multidimensional\");\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        for (var i = 0; i < len; i += 1) {\n          arrValue[i] = property.v[i] * mult;\n          expressionValue[i] = arrValue[i];\n        }\n\n        return expressionValue;\n      };\n    } // TODO: try to avoid using this getter\n\n\n    function defaultGetter() {\n      return defaultUnidimensionalValue;\n    }\n\n    return function (property) {\n      if (!property) {\n        return defaultGetter;\n      }\n\n      if (property.propType === \"unidimensional\") {\n        return UnidimensionalPropertyInterface(property);\n      }\n\n      return MultidimensionalPropertyInterface(property);\n    };\n  }();\n  /* global expressionHelpers, TextSelectorProp, ExpressionManager */\n\n  /* exported TextExpressionSelectorProp */\n\n\n  (function () {\n    var TextExpressionSelectorProp = function () {\n      // eslint-disable-line no-unused-vars\n      function getValueProxy(index, total) {\n        (this || _global).textIndex = index + 1;\n        (this || _global).textTotal = total;\n        (this || _global).v = this.getValue() * (this || _global).mult;\n        return (this || _global).v;\n      }\n\n      return function TextExpressionSelectorPropFactory(elem, data) {\n        (this || _global).pv = 1;\n        (this || _global).comp = elem.comp;\n        (this || _global).elem = elem;\n        (this || _global).mult = 0.01;\n        (this || _global).propType = \"textSelector\";\n        (this || _global).textTotal = data.totalChars;\n        (this || _global).selectorValue = 100;\n        (this || _global).lastValue = [1, 1, 1];\n        (this || _global).k = true;\n        (this || _global).x = true;\n        (this || _global).getValue = ExpressionManager.initiateExpression.bind(this || _global)(elem, data, this || _global);\n        (this || _global).getMult = getValueProxy;\n        (this || _global).getVelocityAtTime = expressionHelpers.getVelocityAtTime;\n\n        if ((this || _global).kf) {\n          (this || _global).getValueAtTime = expressionHelpers.getValueAtTime.bind(this || _global);\n        } else {\n          (this || _global).getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this || _global);\n        }\n\n        (this || _global).setGroupProperty = expressionHelpers.setGroupProperty;\n      };\n    }();\n\n    var propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\n\n    TextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\n      if (data.t === 1) {\n        return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\n      }\n\n      return propertyGetTextProp(elem, data, arr);\n    };\n  })();\n  /* global PropertyFactory */\n\n  /* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\n\n\n  function SliderEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function AngleEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function ColorEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function PointEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function LayerIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function MaskIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function CheckboxEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function NoValueEffect() {\n    (this || _global).p = {};\n  }\n  /* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\n  MaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\n\n\n  function EffectsManager(data, element) {\n    var effects = data.ef || [];\n    (this || _global).effectElements = [];\n    var i;\n    var len = effects.length;\n    var effectItem;\n\n    for (i = 0; i < len; i += 1) {\n      effectItem = new GroupEffect(effects[i], element);\n\n      (this || _global).effectElements.push(effectItem);\n    }\n  }\n\n  function GroupEffect(data, element) {\n    this.init(data, element);\n  }\n\n  extendPrototype([DynamicPropertyContainer], GroupEffect);\n  GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n  GroupEffect.prototype.init = function (data, element) {\n    (this || _global).data = data;\n    (this || _global).effectElements = [];\n    this.initDynamicPropertyContainer(element);\n    var i;\n    var len = (this || _global).data.ef.length;\n    var eff;\n    var effects = (this || _global).data.ef;\n\n    for (i = 0; i < len; i += 1) {\n      eff = null;\n\n      switch (effects[i].ty) {\n        case 0:\n          eff = new SliderEffect(effects[i], element, this || _global);\n          break;\n\n        case 1:\n          eff = new AngleEffect(effects[i], element, this || _global);\n          break;\n\n        case 2:\n          eff = new ColorEffect(effects[i], element, this || _global);\n          break;\n\n        case 3:\n          eff = new PointEffect(effects[i], element, this || _global);\n          break;\n\n        case 4:\n        case 7:\n          eff = new CheckboxEffect(effects[i], element, this || _global);\n          break;\n\n        case 10:\n          eff = new LayerIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 11:\n          eff = new MaskIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 5:\n          eff = new EffectsManager(effects[i], element, this || _global);\n          break;\n        // case 6:\n\n        default:\n          eff = new NoValueEffect(effects[i], element, this || _global);\n          break;\n      }\n\n      if (eff) {\n        (this || _global).effectElements.push(eff);\n      }\n    }\n  };\n\n  var lottie = {};\n\n  function setLocationHref(href) {\n    locationHref = href;\n  }\n\n  function searchAnimations() {\n    if (standalone === true) {\n      animationManager.searchAnimations(animationData, standalone, renderer);\n    } else {\n      animationManager.searchAnimations();\n    }\n  }\n\n  function setSubframeRendering(flag) {\n    subframeEnabled = flag;\n  }\n\n  function loadAnimation(params) {\n    if (standalone === true) {\n      params.animationData = JSON.parse(animationData);\n    }\n\n    return animationManager.loadAnimation(params);\n  }\n\n  function setQuality(value) {\n    if (typeof value === \"string\") {\n      switch (value) {\n        case \"high\":\n          defaultCurveSegments = 200;\n          break;\n\n        default:\n        case \"medium\":\n          defaultCurveSegments = 50;\n          break;\n\n        case \"low\":\n          defaultCurveSegments = 10;\n          break;\n      }\n    } else if (!isNaN(value) && value > 1) {\n      defaultCurveSegments = value;\n    }\n\n    if (defaultCurveSegments >= 50) {\n      roundValues(false);\n    } else {\n      roundValues(true);\n    }\n  }\n\n  function inBrowser() {\n    return typeof navigator !== \"undefined\";\n  }\n\n  function installPlugin(type, plugin) {\n    if (type === \"expressions\") {\n      expressionsPlugin = plugin;\n    }\n  }\n\n  function getFactory(name) {\n    switch (name) {\n      case \"propertyFactory\":\n        return PropertyFactory;\n\n      case \"shapePropertyFactory\":\n        return ShapePropertyFactory;\n\n      case \"matrix\":\n        return Matrix;\n\n      default:\n        return null;\n    }\n  }\n\n  lottie.play = animationManager.play;\n  lottie.pause = animationManager.pause;\n  lottie.setLocationHref = setLocationHref;\n  lottie.togglePause = animationManager.togglePause;\n  lottie.setSpeed = animationManager.setSpeed;\n  lottie.setDirection = animationManager.setDirection;\n  lottie.stop = animationManager.stop;\n  lottie.searchAnimations = searchAnimations;\n  lottie.registerAnimation = animationManager.registerAnimation;\n  lottie.loadAnimation = loadAnimation;\n  lottie.setSubframeRendering = setSubframeRendering;\n  lottie.resize = animationManager.resize; // lottie.start = start;\n\n  lottie.goToAndStop = animationManager.goToAndStop;\n  lottie.destroy = animationManager.destroy;\n  lottie.setQuality = setQuality;\n  lottie.inBrowser = inBrowser;\n  lottie.installPlugin = installPlugin;\n  lottie.freeze = animationManager.freeze;\n  lottie.unfreeze = animationManager.unfreeze;\n  lottie.setVolume = animationManager.setVolume;\n  lottie.mute = animationManager.mute;\n  lottie.unmute = animationManager.unmute;\n  lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n  lottie.__getFactory = getFactory;\n  lottie.version = \"5.7.8\";\n\n  function checkReady() {\n    if (document.readyState === \"complete\") {\n      clearInterval(readyStateCheckInterval);\n      searchAnimations();\n    }\n  }\n\n  function getQueryVariable(variable) {\n    var vars = queryString.split(\"&\");\n\n    for (var i = 0; i < vars.length; i += 1) {\n      var pair = vars[i].split(\"=\");\n\n      if (decodeURIComponent(pair[0]) == variable) {\n        // eslint-disable-line eqeqeq\n        return decodeURIComponent(pair[1]);\n      }\n    }\n\n    return null;\n  }\n\n  var standalone = \"__[STANDALONE]__\";\n  var animationData = \"__[ANIMATIONDATA]__\";\n  var renderer = \"\";\n  var queryString;\n\n  if (standalone) {\n    var scripts = document.getElementsByTagName(\"script\");\n    var index = scripts.length - 1;\n    var myScript = scripts[index] || {\n      src: \"\"\n    };\n    queryString = myScript.src.replace(/^[^\\?]+\\??/, \"\"); // eslint-disable-line no-useless-escape\n\n    renderer = getQueryVariable(\"renderer\");\n  }\n\n  var readyStateCheckInterval = setInterval(checkReady, 100);\n  return lottie;\n});\nvar exports$1 = exports;\n\nexport default exports$1;\n\n//# sourceMappingURL=npm:lottie-web@5.7.8!cjs.map","export { default } from \"/npm:lottie-web@5.7.8!cjs\";\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useCallback,useEffect}from\"react\";import{motion,addPropertyControls,ControlType,RenderTarget}from\"framer\";import{defaultEvents}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{useAutoMotionValue}from\"https://framer.com/m/framer/useAutoMotionValue.js@0.3.0\";import lottie from\"https://jspm.dev/lottie-web@5.7.8\";var SrcType;(function(SrcType){SrcType[\"File\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));var Poster;(function(Poster){Poster[\"Auto\"]=\"Auto\";Poster[\"Custom\"]=\"Custom\";})(Poster||(Poster={}));const placeholderUrl=\"https://misc.framerstatic.com/lottie/logo.json\";/**\n * LOTTIE\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 350\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export function Lottie(props){const{style,srcUrl,srcFile,srcType,poster,progress:progressRaw,playing,loop,posterProgress,pauseOnCanvas,isForwardsDirection,speed,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,onComplete}=props;const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const shouldPlay=(!pauseOnCanvas||!isOnCanvas)&&playing;const direction=isForwardsDirection?1:-1;const isCustomPoster=poster===\"Custom\";const el=useRef();const didInitialMount=useRef(false);const animationInfo=useRef({data:null,animation:null,duration:null});const progress=useAutoMotionValue(progressRaw,{transform:v=>v*.01});const play=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.play();};const pause=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.pause();};const destroy=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.destroy();};const scrubTo=useCallback((normalizedProgress,shouldPlayAfter)=>{if(!animationInfo.current.duration||!animationInfo.current.animation)return;// Lottie gets weird when scrubbing to the exact last frame\nconst frameNumberTarget=normalizedProgress===1?animationInfo.current.duration-1:normalizedProgress*animationInfo.current.duration;if(shouldPlayAfter)animationInfo.current.animation.goToAndPlay(frameNumberTarget,true);else animationInfo.current.animation.goToAndStop(frameNumberTarget,true);},[]);const fetchLottieData=useCallback(async url=>{if(!url)return null;const data=await fetch(url,{method:\"GET\",credentials:\"omit\",redirect:\"follow\"}).then(d=>d.json());return data;},[]);// Fetch lottie animation & start setup\nconst init=useCallback(async()=>{// Clear current animation\ndestroy();let dataUrl;if(srcType===\"URL\")dataUrl=srcUrl;if(srcType===\"Upload\")dataUrl=srcFile;if(!dataUrl){console.warn(\"No valid Lottie animation provided\");dataUrl=placeholderUrl;}const data=await fetchLottieData(dataUrl);animationInfo.current.data=data;return setup(didInitialMount.current);},[srcType,srcUrl,srcFile]);// Create Lottie animation\nconst setup=useCallback(shouldPlayAfter=>{if(!el.current)return;destroy();const options={container:el.current,renderer:\"svg\",loop:loop,autoplay:shouldPlay,animationData:animationInfo.current.data,rendererSettings:{preserveAspectRatio:\"xMidYMid slice\"}};const anim=animationInfo.current.animation=lottie.loadAnimation(options);animationInfo.current.duration=anim.getDuration(true);anim.setDirection(direction);anim.setSpeed(speed);didInitialMount.current=true;if(isOnCanvas&&isCustomPoster)scrubTo(posterProgress,false);else scrubTo(progress.get(),shouldPlay||shouldPlayAfter);return()=>{anim.destroy();};},[loop,shouldPlay,speed,direction,isOnCanvas,isCustomPoster,posterProgress]);// Initial setup or re-init when source changes\nuseEffect(()=>{let cleanup;init().then(c=>cleanup=c);return()=>{if(cleanup)cleanup();};},[srcType,srcFile,srcUrl]);// No run-time option for loop option, recreating anim\nuseEffect(()=>{if(!didInitialMount.current)return;return setup(false);},[loop]);// Perf hack lets see if anyone notices\nuseEffect(()=>lottie.setQuality(isOnCanvas?\"low\":\"medium\"),[]);// useEffect(() => {\n//     if (!isOnCanvas) return\n//     const normalizedProgress = progress.get() * 0.01\n//     if (shouldPlay) scrubTo(normalizedProgress, true)\n//     else scrubTo(normalizedProgress, false)\n// }, [progressRaw, shouldPlay])\nuseEffect(()=>progress.onChange(val=>{if(isOnCanvas)return;if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);}),[]);useEffect(()=>{const val=progress.get();if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);},[progressRaw]);useEffect(()=>{if(!isOnCanvas)return;const normalizedPosterProgress=posterProgress*.01;if(isCustomPoster)scrubTo(normalizedPosterProgress,false);else scrubTo(progress.get(),false);},[isCustomPoster,posterProgress]);useEffect(()=>{var _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.animation))return;animationInfo.current.animation.setSpeed(speed);scrubTo(progress.get(),true);},[speed]);useEffect(()=>{var _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.animation))return;animationInfo.current.animation.setDirection(direction);scrubTo(progress.get(),true);},[direction]);useEffect(()=>{if(shouldPlay)play();else pause();},[shouldPlay]);return /*#__PURE__*/_jsx(motion.div,{ref:el,style:style,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp});}Lottie.defaultProps={height:200,width:200,srcType:\"URL\",pauseOnCanvas:true,srcUrl:placeholderUrl,progress:0,poster:\"Auto\",posterProgress:0};addPropertyControls(Lottie,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",placeholder:\"../example.json\",hidden:props=>props.srcType===\"Upload\"},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"json\"],hidden:props=>props.srcType===\"URL\"},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},// Temporarily disabling for perf\npauseOnCanvas:{type:ControlType.Boolean,title:\"Canvas\",disabledTitle:\"Play\",enabledTitle:\"Pause\",hidden:props=>props.playing===false},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},isForwardsDirection:{title:\"Direction\",type:ControlType.Boolean,enabledTitle:\"Normal\",disabledTitle:\"Reverse\"},speed:{type:ControlType.Number,defaultValue:1,min:0,max:10,step:.5,displayStepper:true,unit:\"x\"},poster:{title:\"Poster\",type:ControlType.Enum,options:[\"Auto\",\"Custom\"],displaySegmentedControl:true},posterProgress:{title:\" \",type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({poster})=>poster===\"Auto\"},progress:{title:\"Progress\",type:ControlType.Number,max:100,min:0,unit:\"%\",description:\"This component is made for JSON files. [Learn more here](https://lottiefiles.com/what-is-lottie).\"},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"Lottie\":{\"type\":\"reactComponent\",\"name\":\"Lottie\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"350\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lottie.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useRef,useState}from\"react\";const placeholderUrl=\"https://lottie.host/d826e0a7-b7e8-4072-8afe-c943ed2dd2ca/DpX3m5yT5Z.lottie\";/**\n * DOT LOTTIE\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 200\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function DotLottie(props){return /*#__PURE__*/_jsx(OptimizationFriendly,{loading:/*#__PURE__*/_jsx(\"div\",{}),loaded:/*#__PURE__*/_jsx(LottiePlayer,{...props})});}function LottiePlayer(props){/* Checks */const isCanvas=RenderTarget.current()===RenderTarget.canvas;const lottieInstanceRef=useRef(null);const shouldPlay=isCanvas||props.hover===true||props.autoplay===false?null:true;/* File or URL */let src;switch(props.srcType){case\"url\":src=props.srcUrl;break;case\"file\":src=props.srcFile;break;default:src=placeholderUrl;break;}/* Progress */const[isReady,setIsReady]=useState(false);/* For canvas states */useEffect(()=>{if(!lottieInstanceRef.current)return;lottieInstanceRef.current.addEventListener(\"ready\",()=>setIsReady(true));},[]);useEffect(()=>{if(!lottieInstanceRef.current)return;lottieInstanceRef.current.seek(`${props.progress}%`);},[isReady,props.progress]);const lastVariant=useRef();/* For component variant support */useEffect(()=>{if(isCanvas)return;if(lastVariant.current!==props.autoplay){if(!lottieInstanceRef.current)return;if(props.autoplay===true){lottieInstanceRef.current.play();}if(props.autoplay===false){lottieInstanceRef.current.pause();}}lastVariant.current=props.autoplay;},[props.autoplay]);return(// @ts-ignore\n/*#__PURE__*/_jsx(\"dotlottie-player\",{src:src,ref:lottieInstanceRef,autoplay:shouldPlay,loop:props.loop?true:null,hover:props.hover?true:null,controls:props.controls?true:null,background:props.background?props.background:null,speed:props.speed,direction:props.direction,style:{...props.style,width:\"100%\",height:\"100%\"}},src));}DotLottie.defaultProps={srcUrl:placeholderUrl,autoplay:true,background:\"#05F\",controls:false,direction:1,hover:false,loop:true,speed:1};DotLottie.displayName=\"Dot Lottie\";addPropertyControls(DotLottie,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"url\",\"file\"],optionTitles:[\"URL\",\"File\"]},srcUrl:{type:ControlType.String,title:\"Link\",placeholder:\"../example.lottie\",hidden:props=>props.srcType===\"file\"},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"lottie\",\"json\"],hidden:props=>props.srcType===\"url\"},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:true},background:{type:ControlType.Color,title:\"Backdrop\",defaultValue:\"#05F\"},controls:{type:ControlType.Boolean,title:\"Controls\"},direction:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"1\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"1\",\"-1\"],optionTitles:[\"Normal\",\"Reverse\"]},hover:{type:ControlType.Boolean,title:\"Hover Play\"},loop:{type:ControlType.Boolean,title:\"Loop\"},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:1,max:10,unit:\"x\",step:.5,displayStepper:true},progress:{type:ControlType.Number,title:\"Progress\",defaultValue:0,min:0,max:100,step:1,description:\"This component is made for Lottie files. [Learn more here](https://dotlottie.io/).\"}});/* For SSG */function OptimizationFriendly({loading,loaded}){const[isLoading,setLoading]=React.useState(true);// We can't load web-components in ssg on the server,\n// so we defer rendering until we hit the client.\nReact.useEffect(()=>{import(\"https://unpkg.com/@dotlottie/player-component@2.7.12/dist/dotlottie-player.js\").then(()=>{setLoading(false);});},[]);return isLoading?loading:loaded;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DotLottie\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"200\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DotLottie.map","// Generated by Framer (a72a541)\nexport const props={FHHMccz3B:{borderRadius:15,bottomLeftRadius:15,bottomRightRadius:15,darkTheme:\"framerDark\",font:{fontFamily:'\"Fragment Mono\", monospace',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"1.5em\"},isMixedBorderRadius:false,lightTheme:\"framerLight\",padding:30,paddingBottom:30,paddingLeft:30,paddingPerSide:false,paddingRight:30,paddingTop:30,theme:\"framerDark\",themeMode:\"Static\",topLeftRadius:15,topRightRadius:15}};export const fonts={FHHMccz3B:[{explicitInter:true,fonts:[{cssFamilyName:\"Fragment Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"Fragment Mono\",url:\"https://fonts.gstatic.com/s/fragmentmono/v6/4iCr6K5wfMRRjxp0DA6-2CLnN4FNh4UI_1U.woff2\",weight:\"400\"}]}]};\nexport const __FramerMetadata__ = {\"exports\":{\"props\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a72a541)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Josefin Sans-700\",\"GF;Josefin Sans-700italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Josefin Sans\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"Josefin Sans\",url:\"https://fonts.gstatic.com/s/josefinsans/v34/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_N_XXMRrLgTsQV0.woff2\",weight:\"700\"},{cssFamilyName:\"Josefin Sans\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"Josefin Sans\",url:\"https://fonts.gstatic.com/s/josefinsans/v34/Qw3JZQNVED7rKGKxtqIqX5EUCGZ2dIn0FyA96fCTU4VhLybpUV3MEQ.woff2\",weight:\"700\"}]}];export const css=['.framer-6g5v2 .framer-styles-preset-1daus99:not(.rich-text-wrapper), .framer-6g5v2 .framer-styles-preset-1daus99.rich-text-wrapper h1 { --framer-font-family: \"Josefin Sans\", \"Josefin Sans Placeholder\", sans-serif; --framer-font-family-italic: \"Josefin Sans\", \"Josefin Sans Placeholder\", sans-serif; --framer-font-open-type-features: \\'cv01\\' on, \\'cv09\\' on, \\'ss03\\' on; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 3.5); --framer-font-style: normal; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-italic: 700; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: var(--token-454e57e1-449f-43f8-8a3b-cb13f28f0278, #e0e0e0); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-6g5v2\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a72a541)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-hb6Xz .framer-styles-preset-aqyyvd:not(.rich-text-wrapper), .framer-hb6Xz .framer-styles-preset-aqyyvd.rich-text-wrapper a { --framer-link-text-color: var(--token-7673eb66-ce35-4484-bad0-0a3b8557696c, #fcb514); }\"];export const className=\"framer-hb6Xz\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a72a541)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Montserrat-italic\",\"FS;Montserrat-semibold italic\",\"FS;Montserrat-bold italic\",\"FS;Montserrat-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/CC6FT7O535LIU5P34T6V2W7R57LGKSDT/KUZZS4REMM64PV6S4GGM77HZQUVJPYU2/3ZPIFBJ6EZFOZSYT4ISIO7DHQQODA5IR.woff2\",weight:\"400\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/NHQSXRPK2WZQNSVXVPHNEWQTX6ASEI3T/LQUMI7WZAOIVAXJCVJ7ABTISRT4ZYBQO/SOTTHSMCKKCT5M6IOCQJ5LOSJSXCUBMQ.woff2\",weight:\"600\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/WVRVHC26IF7VQKSULH6U5DSAGCYOIAQ7/CPARYH2DVA55XB4ZSTA7WTMPVZAVMNA5/BOBO2BRVXZQHPXSPDS5WN3IZQ5SL56OZ.woff2\",weight:\"700\"}]}];export const css=['.framer-Yr1Fo .framer-styles-preset-d67equ:not(.rich-text-wrapper), .framer-Yr1Fo .framer-styles-preset-d67equ.rich-text-wrapper blockquote { --framer-blockquote-font-family: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-blockquote-font-family-bold: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-blockquote-font-family-bold-italic: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-blockquote-font-family-italic: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-blockquote-font-size: 16px; --framer-blockquote-font-style: italic; --framer-blockquote-font-style-bold: italic; --framer-blockquote-font-style-bold-italic: italic; --framer-blockquote-font-style-italic: italic; --framer-blockquote-font-variation-axes: normal; --framer-blockquote-font-weight: 400; --framer-blockquote-font-weight-bold: 600; --framer-blockquote-font-weight-bold-italic: 700; --framer-blockquote-font-weight-italic: 400; --framer-blockquote-letter-spacing: 0em; --framer-blockquote-line-height: 1.8em; --framer-blockquote-paragraph-spacing: 20px; --framer-blockquote-text-color: var(--token-454e57e1-449f-43f8-8a3b-cb13f28f0278, #e0e0e0); --framer-blockquote-text-stroke-color: initial; --framer-blockquote-text-stroke-width: initial; --framer-font-open-type-features: normal; padding: 0px 0px 0px 22px; position: relative; }','.framer-Yr1Fo .framer-styles-preset-d67equ:not(.rich-text-wrapper)::before, .framer-Yr1Fo .framer-styles-preset-d67equ.rich-text-wrapper blockquote::before { background-color: #dddddd; border-radius: 1px; content: \" \"; display: block; height: 100%; left: 0px; position: absolute; top: 0px; width: 2px; }'];export const className=\"framer-Yr1Fo\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a72a541)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Montserrat-regular\",\"FS;Montserrat-bold\",\"FS;Montserrat-bold italic\",\"FS;Montserrat-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/NZ67QOF3FXYLOR27ABJOZVKKBKNRMKMF/EHBFE55HTLOOJHTZSLD54GSL3EBTAFNQ/DI2GHUWG3WKRXISSCTNDMTWKWZC25UIW.woff2\",weight:\"400\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/KDZE2GHZ4MXZP7RVHASNN75AFABT2ZB2/G33WYZOWF5RLCYVGCMU5BFGBXH4DMKUK/SHZ3SDA4YUDBQPNRSIGO7XNSCQQUBDYR.woff2\",weight:\"700\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/WVRVHC26IF7VQKSULH6U5DSAGCYOIAQ7/CPARYH2DVA55XB4ZSTA7WTMPVZAVMNA5/BOBO2BRVXZQHPXSPDS5WN3IZQ5SL56OZ.woff2\",weight:\"700\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/CC6FT7O535LIU5P34T6V2W7R57LGKSDT/KUZZS4REMM64PV6S4GGM77HZQUVJPYU2/3ZPIFBJ6EZFOZSYT4ISIO7DHQQODA5IR.woff2\",weight:\"400\"}]}];export const css=['.framer-3zp79 .framer-styles-preset-110zfx4:not(.rich-text-wrapper), .framer-3zp79 .framer-styles-preset-110zfx4.rich-text-wrapper h3 { --framer-font-family: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-family-bold: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-family-italic: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: -0.01em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-454e57e1-449f-43f8-8a3b-cb13f28f0278, #e0e0e0); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-3zp79\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a72a541)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Montserrat-bold\",\"FS;Montserrat-black\",\"FS;Montserrat-black italic\",\"FS;Montserrat-bold italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/KDZE2GHZ4MXZP7RVHASNN75AFABT2ZB2/G33WYZOWF5RLCYVGCMU5BFGBXH4DMKUK/SHZ3SDA4YUDBQPNRSIGO7XNSCQQUBDYR.woff2\",weight:\"700\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/M2RQDXLDLQ2S4ZZ66VQTDSO3OSHWKVY7/JAIF7WXHMOCSPDMQNJH4MHWPR2PHW2YE/C5NBF6PXS6YLHRF7TAQGFAEBX23GMCRA.woff2\",weight:\"900\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XJQZ5FAAHWM4Y24NF2Z7WYOSV6YPTE5O/EO2YIKJILBXPJTK6LHM7BXB3WCNBRFIW/3ITIUZWY6HV7DWK4WDWMNDJF4FUBLRZN.woff2\",weight:\"900\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/WVRVHC26IF7VQKSULH6U5DSAGCYOIAQ7/CPARYH2DVA55XB4ZSTA7WTMPVZAVMNA5/BOBO2BRVXZQHPXSPDS5WN3IZQ5SL56OZ.woff2\",weight:\"700\"}]}];export const css=['.framer-SMsSQ .framer-styles-preset-13cg9la:not(.rich-text-wrapper), .framer-SMsSQ .framer-styles-preset-13cg9la.rich-text-wrapper h4 { --framer-font-family: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-family-bold: \"Montserrat\", sans-serif; --framer-font-family-bold-italic: \"Montserrat\", sans-serif; --framer-font-family-italic: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 22px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 900; --framer-font-weight-bold-italic: 900; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: var(--token-454e57e1-449f-43f8-8a3b-cb13f28f0278, #e0e0e0); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-SMsSQ\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (22e536a)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Montserrat-extrabold\",\"FS;Montserrat-extrabold\",\"FS;Montserrat-extrabold italic\",\"FS;Montserrat-extrabold italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/JXYTN5EJMI2L5HT6DLJ6ADWEKWUDLIUL/RQGLUYA34WAGWBJDMV73S4VWJ3XX5S34/UKL6CY2W4IEGAEO6DES7XSSIJFRRXNXQ.woff2\",weight:\"800\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/4GDHX7UKIWUECAZH4LFXLFBN6SGIGHLC/ZGPPPCTRP2ITCQH34OUDWFQNVDMOHNXA/2P5KWF6MERNVRGCBNN3SBY3U52PCA3KI.woff2\",weight:\"800\"}]}];export const css=['.framer-uLjlM .framer-styles-preset-ukk6hk:not(.rich-text-wrapper), .framer-uLjlM .framer-styles-preset-ukk6hk.rich-text-wrapper h2 { --framer-font-family: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-family-bold: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-family-italic: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 30px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 800; --framer-font-weight-bold: 800; --framer-font-weight-bold-italic: 800; --framer-font-weight-italic: 800; --framer-letter-spacing: -0.01em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-454e57e1-449f-43f8-8a3b-cb13f28f0278, #e0e0e0); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-uLjlM\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a72a541)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Montserrat-semibold\",\"FS;Montserrat-black\",\"FS;Montserrat-black italic\",\"FS;Montserrat-semibold italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/DELXRVKO253LHPYOBD6KD7EW3TJKXCXF/L6SILXET3P727LN5N75LL5PG77IET2IT/6DP3DAT2N5LSQGN5ISPRN63WPP32A54A.woff2\",weight:\"600\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/M2RQDXLDLQ2S4ZZ66VQTDSO3OSHWKVY7/JAIF7WXHMOCSPDMQNJH4MHWPR2PHW2YE/C5NBF6PXS6YLHRF7TAQGFAEBX23GMCRA.woff2\",weight:\"900\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/XJQZ5FAAHWM4Y24NF2Z7WYOSV6YPTE5O/EO2YIKJILBXPJTK6LHM7BXB3WCNBRFIW/3ITIUZWY6HV7DWK4WDWMNDJF4FUBLRZN.woff2\",weight:\"900\"},{cssFamilyName:\"Montserrat\",source:\"fontshare\",style:\"italic\",uiFamilyName:\"Montserrat\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/NHQSXRPK2WZQNSVXVPHNEWQTX6ASEI3T/LQUMI7WZAOIVAXJCVJ7ABTISRT4ZYBQO/SOTTHSMCKKCT5M6IOCQJ5LOSJSXCUBMQ.woff2\",weight:\"600\"}]}];export const css=['.framer-2yO9X .framer-styles-preset-963y6r:not(.rich-text-wrapper), .framer-2yO9X .framer-styles-preset-963y6r.rich-text-wrapper p { --framer-font-family: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-family-bold: \"Montserrat\", sans-serif; --framer-font-family-bold-italic: \"Montserrat\", sans-serif; --framer-font-family-italic: \"Montserrat\", \"Montserrat Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 900; --framer-font-weight-bold-italic: 900; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-454e57e1-449f-43f8-8a3b-cb13f28f0278, #e0e0e0); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-2yO9X\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a72a541)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper), .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table { border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; border-color: rgba(153, 153, 153, 0.25); border-style: solid; border-top-left-radius: 8px; border-top-right-radius: 8px; border-width: 1px; overflow: hidden; }\",\".framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper) th, .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table th, .framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper) td, .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table td { padding: 10px; }\",\".framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper) th, .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table th { background-color: rgba(153, 153, 153, 0.1); }\",\".framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper) tr + tr td, .framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper) tr + tr th, .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table tr + tr td, .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table tr + tr th { border-top-color: rgba(153, 153, 153, 0.25); border-top-style: solid; border-top-width: 1px; }\",\".framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper) td + td, .framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper) th + th, .framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper) td + th, .framer-dMaEs .framer-styles-preset-no1dwr:not(.rich-text-wrapper) th + td, .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table td + td, .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table th + th, .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table td + th, .framer-dMaEs .framer-styles-preset-no1dwr.rich-text-wrapper table th + td { border-left-color: rgba(153, 153, 153, 0.25); border-left-style: solid; border-left-width: 1px; }\"];export const className=\"framer-dMaEs\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (a72a541)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Fragment Mono-regular\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Fragment Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"Fragment Mono\",url:\"https://fonts.gstatic.com/s/fragmentmono/v6/4iCr6K5wfMRRjxp0DA6-2CLnN4FNh4UI_1U.woff2\",weight:\"400\"}]}];export const css=['.framer-5BIRx .framer-styles-preset-ep8xdu:not(.rich-text-wrapper), .framer-5BIRx .framer-styles-preset-ep8xdu.rich-text-wrapper code { --framer-code-font-family: \"Fragment Mono\", monospace; --framer-code-font-style: normal; --framer-code-font-weight: 400; --framer-code-text-color: #333; --framer-font-size-scale: 1; background-color: rgba(0, 0, 0, 0.1); border-bottom-left-radius: 6px; border-bottom-right-radius: 6px; border-top-left-radius: 6px; border-top-right-radius: 6px; padding-bottom: 0.1em; padding-left: 0.2em; padding-right: 0.2em; padding-top: 0.1em; }'];export const className=\"framer-5BIRx\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","var t,e=Object.create,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(t,e,n)=>e in t?r(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,u=(t,e)=>function(){return e||(0,t[i(t)[0]])((e={exports:{}}).exports,e),e.exports;},l=(t,e,s,o)=>{if(e&&\"object\"==typeof e||\"function\"==typeof e)for(let u of i(e))a.call(t,u)||u===s||r(t,u,{get:()=>e[u],enumerable:!(o=n(e,u))||o.enumerable});return t;},h=(t,n,i)=>(i=null!=t?e(s(t)):{},l(// If the importer is in node compatibility mode or this is not an ESM\n    // file that has been converted to a CommonJS file using a Babel-\n    // compatible transform (i.e. \"__esModule\" has not been set), then set\n    // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n    !n&&t&&t.__esModule?i:r(i,\"default\",{value:t,enumerable:!0}),t)),c=(t,e,r)=>o(t,\"symbol\"!=typeof e?e+\"\":e,r),f=u({\"../../../node_modules/dataloader/index.js\"(t,e){var r,n=/* @__PURE__ */function(){function t(t,e){if(\"function\"!=typeof t)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: \"+t+\".\");this._batchLoadFn=t,this._maxBatchSize=function(t){if(!(!t||!1!==t.batch))return 1;var e=t&&t.maxBatchSize;if(void 0===e)return 1/0;if(\"number\"!=typeof e||e<1)throw TypeError(\"maxBatchSize must be a positive number: \"+e);return e;}(e),this._batchScheduleFn=function(t){var e=t&&t.batchScheduleFn;if(void 0===e)return i;if(\"function\"!=typeof e)throw TypeError(\"batchScheduleFn must be a function: \"+e);return e;}(e),this._cacheKeyFn=function(t){var e=t&&t.cacheKeyFn;if(void 0===e)return function(t){return t;};if(\"function\"!=typeof e)throw TypeError(\"cacheKeyFn must be a function: \"+e);return e;}(e),this._cacheMap=function(t){if(!(!t||!1!==t.cache))return null;var e=t&&t.cacheMap;if(void 0===e)return /* @__PURE__ */new Map;if(null!==e){var r=[\"get\",\"set\",\"delete\",\"clear\"].filter(function(t){return e&&\"function\"!=typeof e[t];});if(0!==r.length)throw TypeError(\"Custom cacheMap missing methods: \"+r.join(\", \"));}return e;}(e),this._batch=null,this.name=e&&e.name?e.name:null;}var e=t.prototype;return e.load=function(t){if(null==t)throw TypeError(\"The loader.load() function must be called with a value, but got: \"+String(t)+\".\");var e=function(t){var e=t._batch;if(null!==e&&!e.hasDispatched&&e.keys.length<t._maxBatchSize)return e;var r={hasDispatched:!1,keys:[],callbacks:[]};return t._batch=r,t._batchScheduleFn(function(){(function(t,e){var r;if(e.hasDispatched=!0,0===e.keys.length){a(e);return;}try{r=t._batchLoadFn(e.keys);}catch(r){return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: \"+String(r)+\".\"));}if(!r||\"function\"!=typeof r.then)return s(t,e,TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: \"+String(r)+\".\"));r.then(function(t){if(!o(t))throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: \"+String(t)+\".\");if(t.length!==e.keys.length)throw TypeError(\"DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys.\\n\\nKeys:\\n\"+String(e.keys)+\"\\n\\nValues:\\n\"+String(t));a(e);for(var r=0;r<e.callbacks.length;r++){var n=t[r];n instanceof Error?e.callbacks[r].reject(n):e.callbacks[r].resolve(n);}}).catch(function(r){s(t,e,r);});})(t,r);}),r;}(this),r=this._cacheMap,n=this._cacheKeyFn(t);if(r){var i=r.get(n);if(i){var u=e.cacheHits||(e.cacheHits=[]);return new Promise(function(t){u.push(function(){t(i);});});}}e.keys.push(t);var l=new Promise(function(t,r){e.callbacks.push({resolve:t,reject:r});});return r&&r.set(n,l),l;},e.loadMany=function(t){if(!o(t))throw TypeError(\"The loader.loadMany() function must be called with Array<key> but got: \"+t+\".\");for(var e=[],r=0;r<t.length;r++)e.push(this.load(t[r]).catch(function(t){return t;}));return Promise.all(e);},e.clear=function(t){var e=this._cacheMap;if(e){var r=this._cacheKeyFn(t);e.delete(r);}return this;},e.clearAll=function(){var t=this._cacheMap;return t&&t.clear(),this;},e.prime=function(t,e){var r=this._cacheMap;if(r){var n,i=this._cacheKeyFn(t);void 0===r.get(i)&&(e instanceof Error?(n=Promise.reject(e)).catch(function(){}):n=Promise.resolve(e),r.set(i,n));}return this;},t;}(),i=\"object\"==typeof process&&\"function\"==typeof process.nextTick?function(t){r||(r=Promise.resolve()),r.then(function(){process.nextTick(t);});}:\"function\"==typeof setImmediate?function(t){setImmediate(t);}:function(t){setTimeout(t);};function s(t,e,r){a(e);for(var n=0;n<e.keys.length;n++)t.clear(e.keys[n]),e.callbacks[n].reject(r);}function a(t){if(t.cacheHits)for(var e=0;e<t.cacheHits.length;e++)t.cacheHits[e]();}function o(t){return\"object\"==typeof t&&null!==t&&\"number\"==typeof t.length&&(0===t.length||t.length>0&&Object.prototype.hasOwnProperty.call(t,t.length-1));}e.exports=n;}}),d=h(f(),1),g={Uint8:1,Uint16:2,Uint32:4,BigUint64:8,Int8:1,Int16:2,Int32:4,BigInt64:8,Float32:4,Float64:8},p=class{getOffset(){return this.offset;}ensureLength(t){let e=this.bytes.length;if(!(this.offset+t<=e))throw Error(\"Reading out of bounds\");}readUint8(){let t=g.Uint8;this.ensureLength(t);let e=this.view.getUint8(this.offset);return this.offset+=t,e;}readUint16(){let t=g.Uint16;this.ensureLength(t);let e=this.view.getUint16(this.offset);return this.offset+=t,e;}readUint32(){let t=g.Uint32;this.ensureLength(t);let e=this.view.getUint32(this.offset);return this.offset+=t,e;}readUint64(){let t=this.readBigUint64();return Number(t);}readBigUint64(){let t=g.BigUint64;this.ensureLength(t);let e=this.view.getBigUint64(this.offset);return this.offset+=t,e;}readInt8(){let t=g.Int8;this.ensureLength(t);let e=this.view.getInt8(this.offset);return this.offset+=t,e;}readInt16(){let t=g.Int16;this.ensureLength(t);let e=this.view.getInt16(this.offset);return this.offset+=t,e;}readInt32(){let t=g.Int32;this.ensureLength(t);let e=this.view.getInt32(this.offset);return this.offset+=t,e;}readInt64(){let t=this.readBigInt64();return Number(t);}readBigInt64(){let t=g.BigInt64;this.ensureLength(t);let e=this.view.getBigInt64(this.offset);return this.offset+=t,e;}readFloat32(){let t=g.Float32;this.ensureLength(t);let e=this.view.getFloat32(this.offset);return this.offset+=t,e;}readFloat64(){let t=g.Float64;this.ensureLength(t);let e=this.view.getFloat64(this.offset);return this.offset+=t,e;}readBytes(t){let e=this.offset,r=e+t,n=this.bytes.subarray(e,r);return this.offset=r,n;}readString(){let t=this.readUint32(),e=this.readBytes(t);return this.decoder.decode(e);}readJson(){let t=this.readString();return JSON.parse(t);}constructor(t){this.bytes=t,c(this,\"offset\",0),c(this,\"view\"),c(this,\"decoder\",new TextDecoder),this.view=v(this.bytes);}};function v(t){return new DataView(t.buffer,t.byteOffset,t.byteLength);}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nimport{ControlType as y}from\"framer\";// ../../library/src/utils/utils.ts\nvar m=\"undefined\"!=typeof window,w=m&&\"function\"==typeof window.requestIdleCallback;// src/code-generation/components/cms/bundled/assert.ts\nfunction I(t,...e){if(!t)throw Error(\"Assertion Error\"+(e.length>0?\": \"+e.join(\" \"):\"\"));}function b(t){throw Error(`Unexpected value: ${t}`);}// src/code-generation/components/cms/bundled/BufferWriter.ts\nvar U=1024,S=1.5,k=t=>2**t-1,L=t=>-(2**(t-1)),B=t=>2**(t-1)-1,E={Uint8:0,Uint16:0,Uint32:0,Uint64:0,BigUint64:0,Int8:L(8),Int16:L(16),Int32:L(32),Int64:Number.MIN_SAFE_INTEGER,BigInt64:-(BigInt(2)**BigInt(63))},M={Uint8:k(8),Uint16:k(16),Uint32:k(32),Uint64:Number.MAX_SAFE_INTEGER,BigUint64:BigInt(2)**BigInt(64)-BigInt(1),Int8:B(8),Int16:B(16),Int32:B(32),Int64:Number.MAX_SAFE_INTEGER,BigInt64:BigInt(2)**BigInt(63)-BigInt(1)};function T(t,e,r,n){I(t>=e,t,\"outside lower bound for\",n),I(t<=r,t,\"outside upper bound for\",n);}var F=class{getOffset(){return this.offset;}slice(t=0,e=this.offset){return this.bytes.slice(t,e);}subarray(t=0,e=this.offset){return this.bytes.subarray(t,e);}ensureLength(t){let e=this.bytes.length;if(this.offset+t<=e)return;let r=new Uint8Array(Math.ceil(e*S)+t);r.set(this.bytes),this.bytes=r,this.view=v(r);}writeUint8(t){T(t,E.Uint8,M.Uint8,\"Uint8\");let e=g.Uint8;this.ensureLength(e),this.view.setUint8(this.offset,t),this.offset+=e;}writeUint16(t){T(t,E.Uint16,M.Uint16,\"Uint16\");let e=g.Uint16;this.ensureLength(e),this.view.setUint16(this.offset,t),this.offset+=e;}writeUint32(t){T(t,E.Uint32,M.Uint32,\"Uint32\");let e=g.Uint32;this.ensureLength(e),this.view.setUint32(this.offset,t),this.offset+=e;}writeUint64(t){T(t,E.Uint64,M.Uint64,\"Uint64\");let e=BigInt(t);this.writeBigUint64(e);}writeBigUint64(t){T(t,E.BigUint64,M.BigUint64,\"BigUint64\");let e=g.BigUint64;this.ensureLength(e),this.view.setBigUint64(this.offset,t),this.offset+=e;}writeInt8(t){T(t,E.Int8,M.Int8,\"Int8\");let e=g.Int8;this.ensureLength(e),this.view.setInt8(this.offset,t),this.offset+=e;}writeInt16(t){T(t,E.Int16,M.Int16,\"Int16\");let e=g.Int16;this.ensureLength(e),this.view.setInt16(this.offset,t),this.offset+=e;}writeInt32(t){T(t,E.Int32,M.Int32,\"Int32\");let e=g.Int32;this.ensureLength(e),this.view.setInt32(this.offset,t),this.offset+=e;}writeInt64(t){T(t,E.Int64,M.Int64,\"Int64\");let e=BigInt(t);this.writeBigInt64(e);}writeBigInt64(t){T(t,E.BigInt64,M.BigInt64,\"BigInt64\");let e=g.BigInt64;this.ensureLength(e),this.view.setBigInt64(this.offset,t),this.offset+=e;}writeFloat32(t){let e=g.Float32;this.ensureLength(e),this.view.setFloat32(this.offset,t),this.offset+=e;}writeFloat64(t){let e=g.Float64;this.ensureLength(e),this.view.setFloat64(this.offset,t),this.offset+=e;}writeBytes(t){let e=t.length;this.ensureLength(e),this.bytes.set(t,this.offset),this.offset+=e;}encodeString(t){let e=this.encodedStrings.get(t);if(e)return e;let r=this.encoder.encode(t);return this.encodedStrings.set(t,r),r;}writeString(t){let e=this.encodeString(t),r=e.length;this.writeUint32(r),this.writeBytes(e);}writeJson(t){let e=JSON.stringify(t);this.writeString(e);}constructor(){c(this,\"offset\",0),c(this,\"bytes\",new Uint8Array(U)),c(this,\"view\",v(this.bytes)),c(this,\"encoder\",new TextEncoder),c(this,\"encodedStrings\",/* @__PURE__ */new Map);}};// src/utils/typeChecks.ts\nfunction x(t){return\"string\"==typeof t;}function N(t){return Number.isFinite(t);}function A(t){return null===t;}// src/code-generation/components/cms/bundled/models/DatabaseItemPointerModel.ts\nvar O=class t{static fromString(e){let[r,n,i]=e.split(\"/\").map(Number);return I(N(r),\"Invalid chunkId\"),I(N(n),\"Invalid offset\"),I(N(i),\"Invalid length\"),new t(r,n,i);}toString(){return`${this.chunkId}/${this.offset}/${this.length}`;}static read(e){let r=e.readUint16(),n=e.readUint32(),i=e.readUint32();return new t(r,n,i);}write(t){t.writeUint16(this.chunkId),t.writeUint32(this.offset),t.writeUint32(this.length);}compare(t){return this.chunkId<t.chunkId?-1:this.chunkId>t.chunkId?1:this.offset<t.offset?-1:this.offset>t.offset?1:(I(this.length===t.length),0);}constructor(t,e,r){this.chunkId=t,this.offset=e,this.length=r;}};// src/code-generation/components/cms/bundled/models/DatabaseValueModel.ts\nimport{ControlType as P}from\"framer\";function R(t){if(A(t))return 0/* Null */;switch(t.type){case P.Array:return 1/* Array */;case P.Boolean:return 2/* Boolean */;case P.Color:return 3/* Color */;case P.Date:return 4/* Date */;case P.Enum:return 5/* Enum */;case P.File:return 6/* File */;case P.ResponsiveImage:return 10/* ResponsiveImage */;case P.Link:return 7/* Link */;case P.Number:return 8/* Number */;case P.Object:return 9/* Object */;case P.RichText:return 11/* RichText */;case P.String:return 12/* String */;case P.VectorSetItem:return 13/* VectorSetItem */;default:b(t);}}function q(e){let r=e.readUint16(),n=[];for(let i=0;i<r;i++){let r=t.read(e);n.push(r);}return{type:P.Array,value:n};}function _(e,r){for(let n of(e.writeUint16(r.value.length),r.value))t.write(e,n);}function D(e,r,n){let i=e.value.length,s=r.value.length;if(i<s)return -1;if(i>s)return 1;for(let s=0;s<i;s++){let i=e.value[s],a=r.value[s],o=t.compare(i,a,n);if(0!==o)return o;}return 0;}function j(t){return{type:P.Boolean,value:0!==t.readUint8()};}function C(t,e){t.writeUint8(e.value?1:0);}function J(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function V(t){return{type:P.Color,value:t.readString()};}function W(t,e){t.writeString(e.value);}function $(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function z(t){let e=t.readInt64(),r=new Date(e);return{type:P.Date,value:r.toISOString()};}function G(t,e){let r=new Date(e.value),n=r.getTime();t.writeInt64(n);}function K(t,e){let r=new Date(t.value),n=new Date(e.value);return r<n?-1:r>n?1:0;}function H(t){return{type:P.Enum,value:t.readString()};}function X(t,e){t.writeString(e.value);}function Q(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function Y(t){return{type:P.File,value:t.readString()};}function Z(t,e){t.writeString(e.value);}function tt(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function te(t){return{type:P.Link,value:t.readJson()};}function tr(t,e){t.writeJson(e.value);}function tn(t,e){let r=JSON.stringify(t.value),n=JSON.stringify(e.value);return r<n?-1:r>n?1:0;}function ti(t){return{type:P.Number,value:t.readFloat64()};}function ts(t,e){t.writeFloat64(e.value);}function ta(t,e){return t.value<e.value?-1:t.value>e.value?1:0;}function to(e){let r=e.readUint16(),n={};for(let i=0;i<r;i++){let r=e.readString();n[r]=t.read(e);}return{type:P.Object,value:n};}function tu(e,r){let n=Object.entries(r.value);for(let[r,i]of(e.writeUint16(n.length),n))e.writeString(r),t.write(e,i);}function tl(e,r,n){let i=Object.keys(e.value).sort(),s=Object.keys(r.value).sort();if(i.length<s.length)return -1;if(i.length>s.length)return 1;for(let a=0;a<i.length;a++){let o=i[a],u=s[a];if(o<u)return -1;if(o>u)return 1;let l=e.value[o]??null,h=r.value[u]??null,c=t.compare(l,h,n);if(0!==c)return c;}return 0;}function th(t){return{type:P.ResponsiveImage,value:t.readJson()};}function tc(t,e){t.writeJson(e.value);}function tf(t,e){let r=JSON.stringify(t.value),n=JSON.stringify(e.value);return r<n?-1:r>n?1:0;}function td(t){let e=t.readInt8();if(0===e)return{type:P.RichText,value:t.readUint32()};if(1===e)return{type:P.RichText,value:t.readString()};throw Error(\"Invalid rich text pointer\");}function tg(t,e){if(N(e.value)){t.writeInt8(0),t.writeUint32(e.value);return;}if(x(e.value)){t.writeInt8(1),t.writeString(e.value);return;}throw Error(\"Invalid rich text pointer\");}function tp(t,e){let r=t.value,n=e.value;if(N(r)&&N(n)||x(r)&&x(n))return r<n?-1:r>n?1:0;throw Error(\"Invalid rich text pointer\");}function tv(t){return{type:P.String,value:t.readString()};}function ty(t,e){t.writeString(e.value);}function tm(t,e,r){let n=t.value,i=e.value;return(0/* CaseInsensitive */===r.type&&(n=t.value.toLowerCase(),i=e.value.toLowerCase()),n<i)?-1:n>i?1:0;}function tw(t){return{type:P.VectorSetItem,value:t.readUint32()};}function tI(t,e){t.writeUint32(e.value);}function tb(t,e){let r=t.value,n=e.value;return r<n?-1:r>n?1:0;}(t=>{t.read=function(t){let e=t.readUint8();switch(e){case 0/* Null */:return null;case 1/* Array */:return q(t);case 2/* Boolean */:return j(t);case 3/* Color */:return V(t);case 4/* Date */:return z(t);case 5/* Enum */:return H(t);case 6/* File */:return Y(t);case 7/* Link */:return te(t);case 8/* Number */:return ti(t);case 9/* Object */:return to(t);case 10/* ResponsiveImage */:return th(t);case 11/* RichText */:return td(t);case 12/* String */:return tv(t);case 13/* VectorSetItem */:return tw(t);default:b(e);}},t.write=function(t,e){let r=R(e);if(t.writeUint8(r),!A(e))switch(e.type){case P.Array:return _(t,e);case P.Boolean:return C(t,e);case P.Color:return W(t,e);case P.Date:return G(t,e);case P.Enum:return X(t,e);case P.File:return Z(t,e);case P.Link:return tr(t,e);case P.Number:return ts(t,e);case P.Object:return tu(t,e);case P.ResponsiveImage:return tc(t,e);case P.RichText:return tg(t,e);case P.VectorSetItem:return tI(t,e);case P.String:return ty(t,e);default:b(e);}},t.compare=function(t,e,r){let n=R(t),i=R(e);if(n<i)return -1;if(n>i)return 1;if(A(t)||A(e))return 0;switch(t.type){case P.Array:return I(e.type===P.Array),D(t,e,r);case P.Boolean:return I(e.type===P.Boolean),J(t,e);case P.Color:return I(e.type===P.Color),$(t,e);case P.Date:return I(e.type===P.Date),K(t,e);case P.Enum:return I(e.type===P.Enum),Q(t,e);case P.File:return I(e.type===P.File),tt(t,e);case P.Link:return I(e.type===P.Link),tn(t,e);case P.Number:return I(e.type===P.Number),ta(t,e);case P.Object:return I(e.type===P.Object),tl(t,e,r);case P.ResponsiveImage:return I(e.type===P.ResponsiveImage),tf(t,e);case P.RichText:return I(e.type===P.RichText),tp(t,e);case P.VectorSetItem:return I(e.type===P.VectorSetItem),tb(t,e);case P.String:return I(e.type===P.String),tm(t,e,r);default:b(t);}};})(t||(t={}));// src/code-generation/components/cms/bundled/models/DatabaseDictionaryIndexModel.ts\nvar tU=class e{sortEntries(){this.entries.sort((e,r)=>{for(let n=0;n<this.fieldNames.length;n++){let i=e.values[n],s=r.values[n],a=t.compare(i,s,this.options.collation);if(0!==a)return a;}return e.pointer.compare(r.pointer);});}static deserialize(r){let n=new p(r),i=n.readJson(),s=n.readUint8(),a=[];for(let t=0;t<s;t++){let t=n.readString();a.push(t);}let o=new e(a,{collation:i}),u=n.readUint32();for(let e=0;e<u;e++){let e=[];for(let r=0;r<s;r++){let r=t.read(n);e.push(r);}let r=O.read(n);o.entries.push({values:e,pointer:r});}return o;}serialize(){let e=new F;for(let t of(e.writeJson(this.options.collation),e.writeUint8(this.fieldNames.length),this.fieldNames))e.writeString(t);for(let r of(this.sortEntries(),e.writeUint32(this.entries.length),this.entries)){let{values:n,pointer:i}=r;for(let r of n)t.write(e,r);i.write(e);}return e.subarray();}addItem(t,e){let r=this.fieldNames.map(e=>t.getField(e)??null);this.entries.push({values:r,pointer:e});}constructor(t,e){this.fieldNames=t,this.options=e,c(this,\"entries\",[]);}},tS=3,tk=250,tL=[408,// Request Timeout\n429,// Too Many Requests\n500,// Internal Server Error\n502,// Bad Gateway\n503,// Service Unavailable\n504],tB=async(t,e)=>{let r=0;for(;;){try{let n=await fetch(t,e);if(!tL.includes(n.status)||++r>tS)return n;}catch(t){if(e?.signal?.aborted||++r>tS)throw t;}await tE(r);}};async function tE(t){let e=Math.floor(tk*(Math.random()+1)*2**(t-1));await new Promise(t=>{setTimeout(t,e);});}// src/code-generation/components/cms/bundled/rangeRequest.ts\nasync function tM(t,e){let r=tx(e),n=[],i=0;for(let t of r)n.push(`${t.from}-${t.to-1}`),i+=t.to-t.from;let s=new URL(t),a=n.join(\",\");s.searchParams.set(\"range\",a);let o=await tB(s);if(200!==o.status)throw Error(`Request failed: ${o.status} ${o.statusText}`);let u=await o.arrayBuffer(),l=new Uint8Array(u);if(l.length!==i)throw Error(\"Request failed: Unexpected response length\");let h=new tT,c=0;for(let t of r){let e=t.to-t.from,r=c+e,n=l.subarray(c,r);h.write(t.from,n),c=r;}return e.map(t=>h.read(t.from,t.to-t.from));}var tT=class{read(t,e){for(let r of this.chunks){if(t<r.start)break;if(t>r.end)continue;if(t+e>r.end)break;let n=t-r.start,i=n+e;return r.data.slice(n,i);}throw Error(\"Missing data\");}write(t,e){let r=t,n=r+e.length,i=0,s=this.chunks.length;for(;i<s;i++){let t=this.chunks[i];if(I(t,\"Missing chunk\"),!(r>t.end)){if(r>t.start){let n=r-t.start,i=t.data.subarray(0,n);e=tF(i,e),r=t.start;}break;}}for(;s>i;s--){let t=this.chunks[s-1];if(I(t,\"Missing chunk\"),!(n<t.start)){if(n<t.end){let r=n-t.start,i=t.data.subarray(r);e=tF(e,i),n=t.end;}break;}}let a={start:r,end:n,data:e},o=s-i;this.chunks.splice(i,o,a);}constructor(){c(this,\"chunks\",[]);}};function tF(t,e){let r=t.length+e.length,n=new Uint8Array(r);return n.set(t,0),n.set(e,t.length),n;}function tx(t){I(t.length>0,\"Must have at least one range\");let e=[...t].sort((t,e)=>t.from-e.from),r=[];for(let t of e){let e=r.length-1,n=r[e];n&&t.from<=n.to?r[e]={from:n.from,to:Math.max(n.to,t.to)}:r.push(t);}return r;}// src/code-generation/components/cms/bundled/DatabaseDictionaryIndex.ts\nvar tN=class{async loadModel(){let[t]=await tM(this.options.url,[this.options.range]);return I(t,\"Failed to load model\"),tU.deserialize(t);}async getModel(){return this.modelPromise??=this.loadModel(),this.model??=await this.modelPromise,this.model;}async lookupItems(t){I(t.length===this.fields.length,\"Invalid query length\");let e=await this.getModel(),r=t.reduce((t,e,r)=>t.flatMap(t=>{switch(e.type){case\"All\"/* All */:return[t];case\"Equals\"/* Equals */:return this.queryEquals(t,e,r);case\"NotEquals\"/* NotEquals */:return this.queryNotEquals(t,e,r);case\"LessThan\"/* LessThan */:return this.queryLessThan(t,e,r);case\"GreaterThan\"/* GreaterThan */:return this.queryGreaterThan(t,e,r);case\"Contains\"/* Contains */:return this.queryContains(t,e,r);case\"StartsWith\"/* StartsWith */:return this.queryStartsWith(t,e,r);case\"EndsWith\"/* EndsWith */:return this.queryEndsWith(t,e,r);default:b(e);}}),[e.entries]),n=[];for(let t of r)for(let e of t){let t={};for(let r=0;r<this.options.fieldNames.length;r++){let n=this.options.fieldNames[r],i=e.values[r];t[n]=i;}n.push({pointer:e.pointer.toString(),data:t});}return n;}queryEquals(t,e,r){let n=this.getLeftMost(t,r,e.value),i=this.getRightMost(t,r,e.value),s=t.slice(n,i+1);return s.length>0?[s]:[];}queryNotEquals(t,e,r){let n=this.getLeftMost(t,r,e.value),i=this.getRightMost(t,r,e.value),s=[],a=t.slice(0,n);a.length>0&&s.push(a);let o=t.slice(i+1);return o.length>0&&s.push(o),s;}queryLessThan(t,e,r){let n=this.getRightMost(t,r,null);if(t=t.slice(n+1),e.inclusive){let n=this.getRightMost(t,r,e.value),i=t.slice(0,n+1);return i.length>0?[i]:[];}let i=this.getLeftMost(t,r,e.value),s=t.slice(0,i);return s.length>0?[s]:[];}queryGreaterThan(t,e,r){let n=this.getRightMost(t,r,null);if(t=t.slice(n+1),e.inclusive){let n=this.getLeftMost(t,r,e.value),i=t.slice(n);return i.length>0?[i]:[];}let i=this.getRightMost(t,r,e.value),s=t.slice(i+1);return s.length>0?[s]:[];}queryContains(t,e,r){return this.findItems(t,r,t=>{if(t?.type!==y.String||e.value?.type!==y.String)return!1;let r=t.value,n=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),n=n.toLowerCase()),r.includes(n);});}queryStartsWith(t,e,r){return this.findItems(t,r,t=>{if(t?.type!==y.String||e.value?.type!==y.String)return!1;let r=t.value,n=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),n=n.toLowerCase()),r.startsWith(n);});}queryEndsWith(t,e,r){return this.findItems(t,r,t=>{if(t?.type!==y.String||e.value?.type!==y.String)return!1;let r=t.value,n=e.value.value;return 0/* CaseInsensitive */===this.collation.type&&(r=r.toLowerCase(),n=n.toLowerCase()),r.endsWith(n);});}/**\n   * Returns the index of the left most entry that is equal to the target.\n   *\n   * ```text\n   *   Left most\n   *       ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the left most entry that is equal to the target.\n   */getLeftMost(e,r,n){let i=0,s=e.length;for(;i<s;){let a=i+s>>1,o=e[a],u=o.values[r];0>t.compare(u,n,this.collation)?i=a+1:s=a;}return i;}/**\n   * Returns the index of the right most entry that is equal to the target.\n   *\n   * ```text\n   *              Right most\n   *                   ↓\n   * ┌───┬───┬───┬───┬───┬───┐\n   * │ 1 │ 2 │ 2 │ 2 │ 2 │ 3 │\n   * └───┴───┴───┴───┴───┴───┘\n   * ```\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param target The target value to search for.\n   * @returns The index of the right most entry that is equal to the target.\n   */getRightMost(e,r,n){let i=0,s=e.length;for(;i<s;){let a=i+s>>1,o=e[a],u=o.values[r];t.compare(u,n,this.collation)>0?s=a:i=a+1;}return s-1;}/**\n   * Finds all items that are matching the predicate and groups adjacent items together.\n   *\n   * @param entries The entries array to search in.\n   * @param position The position of the value in the entry.\n   * @param predicate The predicate to match the values against.\n   * @returns An array of chunks that match the predicate.\n   */findItems(t,e,r){let n=[],i=0;for(let s=0;s<t.length;s++){let a=t[s],o=a.values[e],u=r(o);if(!u){if(i<s){let e=t.slice(i,s);n.push(e);}i=s+1;}}if(i<t.length){let e=t.slice(i);n.push(e);}return n;}constructor(t){this.options=t,c(this,\"schema\"),c(this,\"fields\"),c(this,\"supportedLookupTypes\",[\"All\"/* All */,\"Equals\"/* Equals */,\"NotEquals\"/* NotEquals */,\"LessThan\"/* LessThan */,\"GreaterThan\"/* GreaterThan */,\"Contains\"/* Contains */,\"StartsWith\"/* StartsWith */,\"EndsWith\"/* EndsWith */]),c(this,\"modelPromise\"),c(this,\"model\"),c(this,\"collation\");let e={},r=[];for(let t of this.options.fieldNames){let n=this.options.collectionSchema[t];I(n,\"Missing definition for field\",t),e[t]=n,r.push({type:\"Identifier\",name:t});}this.schema=e,this.fields=r,this.collation=this.options.collation;}},tA=class e{static read(r){let n=new e,i=r.readUint16();for(let e=0;e<i;e++){let e=r.readString(),i=t.read(r);n.setField(e,i);}return n;}write(e){for(let[r,n]of(e.writeUint16(this.fields.size),this.fields))e.writeString(r),t.write(e,n);}getData(){let t={};for(let[e,r]of this.fields)t[e]=r;return t;}setField(t,e){this.fields.set(t,e);}getField(t){return this.fields.get(t);}constructor(){c(this,\"fields\",/* @__PURE__ */new Map);}},tO=class{scanItems(){return this.itemsPromise??=tB(this.url).then(async t=>{if(!t.ok)throw Error(`Request failed: ${t.status} ${t.statusText}`);let e=await t.arrayBuffer(),r=new Uint8Array(e),n=new p(r),i=[],s=n.readUint32();for(let t=0;t<s;t++){let t=n.getOffset(),e=tA.read(n),r=n.getOffset()-t,s=new O(this.id,t,r),a=s.toString(),o={pointer:a,data:e.getData()};this.itemLoader.prime(a,o),i.push(o);}return i;}),this.itemsPromise;}resolveItem(t){return this.itemLoader.load(t);}constructor(t,e){this.id=t,this.url=e,c(this,\"itemsPromise\"),c(this,\"itemLoader\",new d.default(async t=>{let e=t.map(t=>{let e=O.fromString(t);return{from:e.offset,to:e.offset+e.length};}),r=await tM(this.url,e);return r.map((e,r)=>{let n=new p(e),i=tA.read(n),s=t[r];return I(s,\"Missing pointer\"),{pointer:s,data:i.getData()};});}));}},tP=class{async scanItems(){let t=await Promise.all(this.chunks.map(async t=>t.scanItems()));return t.flat();}resolveItems(t){return Promise.all(t.map(t=>{let e=O.fromString(t),r=this.chunks[e.chunkId];return I(r,\"Missing chunk\"),r.resolveItem(t);}));}compareItems(t,e){let r=O.fromString(t.pointer),n=O.fromString(e.pointer);return r.compare(n);}compareValues(e,r,n){return t.compare(e,r,n);}constructor(t){this.options=t,c(this,\"id\"),c(this,\"schema\"),c(this,\"indexes\"),c(this,\"resolveRichText\"),c(this,\"resolveVectorSetItem\"),c(this,\"chunks\"),this.chunks=this.options.chunks.map((t,e)=>new tO(e,t)),this.schema=t.schema,this.indexes=t.indexes,this.resolveRichText=t.resolveRichText,this.resolveVectorSetItem=t.resolveVectorSetItem,this.id=t.id;}};export{tP as DatabaseCollection,tN as DatabaseDictionaryIndex};\nexport const __FramerMetadata__ = {\"exports\":{\"DatabaseCollection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DatabaseDictionaryIndex\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{jsx as e}from\"react/jsx-runtime\";import{ComponentPresetsConsumer as t,Link as r,motion as n}from\"framer\";// ../../library/src/router/lazy.tsx\nimport{isValidElement as o}from\"react\";// ../../library/src/utils/utils.ts\nvar i,a=\"undefined\"!=typeof window,l=a&&\"function\"==typeof window.requestIdleCallback,u=\"preload\";function f(e){return\"object\"==typeof e&&null!==e&&!/*#__PURE__*/o(e)&&u in e;}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nimport{Fragment as c,createElement as p}from\"react\";// src/code-generation/components/cms/bundled/assert.ts\nfunction s(e,...t){if(!e)throw Error(\"Assertion Error\"+(t.length>0?\": \"+t.join(\" \"):\"\"));}// src/code-generation/components/cms/bundled/getRichTextJsonResolver.tsx?bundle\nvar m=((i=m||{})[i.Fragment=1]=\"Fragment\",i[i.Link=2]=\"Link\",i[i.Module=3]=\"Module\",i[i.Tag=4]=\"Tag\",i[i.Text=5]=\"Text\",i);function d(o){let i=/* @__PURE__ */new Map;return a=>{let l=i.get(a);if(l)return l;let u=JSON.parse(a),m=function i(a){switch(a[0]){case 1/* Fragment */:{let[,...e]=a,t=e.map(i);return /*#__PURE__*/p(c,void 0,...t);}case 2/* Link */:{let[,e,...t]=a,n=t.map(i);return /*#__PURE__*/p(r,e,...n);}case 3/* Module */:{let[,r,n,l]=a;for(let e of l){let t=n[e];t&&(n[e]=i(t));}let u=o[r];return s(u,\"Module not found\"),f(u)&&u.preload(),/*#__PURE__*/e(t,{componentIdentifier:r,children:t=>/*#__PURE__*/e(u,{...t,...n})});}case 4/* Tag */:{let[,e,t,...r]=a,o=r.map(i);if(\"a\"===e)return /*#__PURE__*/p(n.a,t,...o);return /*#__PURE__*/p(e,t,...o);}case 5/* Text */:{let[,e]=a;return e;}}}(u);return i.set(a,m),m;};}export{m as RichTextJsonType,d as getRichTextJsonResolver};\nexport const __FramerMetadata__ = {\"exports\":{\"RichTextJsonType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getRichTextJsonResolver\":{\"type\":\"reactComponent\",\"name\":\"getRichTextJsonResolver\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (08b35c4)\nimport{addPropertyControls as e,ControlType as t,lazy as l,QueryEngine as a}from\"framer\";import{DatabaseCollection as r,DatabaseDictionaryIndex as i}from\"./PMzuy7Jy_-0.js\";import{getRichTextJsonResolver as o}from\"./PMzuy7Jy_-1.js\";let n=l(()=>import(\"https://framerusercontent.com/modules/pVk4QsoHxASnVtUBp6jr/ttReBBOK4JjO79S16uu9/CodeBlock.js\")),m={bnv0I682E:{isNullable:!0,type:t.ResponsiveImage},createdAt:{isNullable:!0,type:t.Date},DYPt1neZe:{isNullable:!0,type:t.RichText},id:{isNullable:!1,type:t.String},J4pNnIWfY:{isNullable:!0,type:t.String},kOcd2RkZy:{isNullable:!0,type:t.String},nextItemId:{isNullable:!0,type:t.String},previousItemId:{isNullable:!0,type:t.String},updatedAt:{isNullable:!0,type:t.Date},xTS8qzuAR:{isNullable:!0,type:t.Date}},u=[\"id\"],c={type:1},d=[\"previousItemId\"],f=[\"nextItemId\"],s=[\"id\",\"J4pNnIWfY\"],p=[\"J4pNnIWfY\",\"id\"],y=[\"kOcd2RkZy\"],I={type:0},h=[\"xTS8qzuAR\"],g=[\"J4pNnIWfY\"],N=[\"bnv0I682E\"],w=[\"DYPt1neZe\"],R=[],S=e=>{let t=R[e];if(t)return t().then(e=>e.default);},x={\"module:pVk4QsoHxASnVtUBp6jr/ttReBBOK4JjO79S16uu9/CodeBlock.js:default\":n},J=o(x),P=new a,z={collectionByLocaleId:{default:new r({chunks:[new URL(\"./PMzuy7Jy_-chunk-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")],id:\"1dfc2510-7c67-4c3a-abaa-de7202aaf33adefault\",indexes:[new i({collation:c,collectionSchema:m,fieldNames:u,range:{from:0,to:193},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")}),new i({collation:c,collectionSchema:m,fieldNames:d,range:{from:193,to:385},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")}),new i({collation:c,collectionSchema:m,fieldNames:f,range:{from:385,to:573},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")}),new i({collation:c,collectionSchema:m,fieldNames:s,range:{from:573,to:974},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")}),new i({collation:c,collectionSchema:m,fieldNames:p,range:{from:974,to:1375},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")}),new i({collation:I,collectionSchema:m,fieldNames:y,range:{from:1375,to:1677},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")}),new i({collation:I,collectionSchema:m,fieldNames:h,range:{from:1677,to:1842},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")}),new i({collation:I,collectionSchema:m,fieldNames:g,range:{from:1842,to:2139},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")}),new i({collation:I,collectionSchema:m,fieldNames:N,range:{from:2139,to:5672},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")}),new i({collation:I,collectionSchema:m,fieldNames:w,range:{from:5672,to:23742},url:new URL(\"./PMzuy7Jy_-indexes-default-0.framercms\",\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\").href.replace(\"/modules/\",\"/cms/\")})],resolveRichText:J,resolveVectorSetItem:S,schema:m})},displayName:\"Projects\",id:\"1dfc2510-7c67-4c3a-abaa-de7202aaf33a\"};export default z;e(z,{kOcd2RkZy:{defaultValue:\"\",title:\"Title\",type:t.String},xTS8qzuAR:{title:\"Date\",type:t.Date},J4pNnIWfY:{preventLocalization:!1,title:\"Slug\",type:t.String},bnv0I682E:{__defaultAssetReference:\"data:framer/asset-reference,d4DYq28IaBOSdIBQ1Rp9tTwHVcY.png?originalFilename=Placeholder%403x.png&preferredSize=auto&width=2880&height=1800\",title:\"Image\",type:t.ResponsiveImage},DYPt1neZe:{defaultValue:\"\",title:\"Content\",type:t.RichText},createdAt:{title:\"Created\",type:t.Date},updatedAt:{title:\"Updated\",type:t.Date},previousItemId:{dataIdentifier:\"local-module:collection/PMzuy7Jy_:default\",title:\"Previous\",type:t.CollectionReference},nextItemId:{dataIdentifier:\"local-module:collection/PMzuy7Jy_:default\",title:\"Next\",type:t.CollectionReference}});export const enumToDisplayNameFunctions={};export const utils={async getSlugByRecordId(e,t){let[l]=await P.query({from:{data:z,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"J4pNnIWfY\",type:\"Identifier\"}],where:{left:{name:\"id\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},t);return l?.J4pNnIWfY;},async getRecordIdBySlug(e,t){let[l]=await P.query({from:{data:z,type:\"Collection\"},limit:{type:\"LiteralValue\",value:1},select:[{name:\"id\",type:\"Identifier\"}],where:{left:{name:\"J4pNnIWfY\",type:\"Identifier\"},operator:\"==\",right:{type:\"LiteralValue\",value:e},type:\"BinaryOperation\"}},t);return l?.id;}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"data\",\"name\":\"data\",\"annotations\":{\"framerEnumToDisplayNameUtils\":\"2\",\"framerColorSyntax\":\"false\",\"framerContractVersion\":\"1\",\"framerRecordIdKey\":\"id\",\"framerSlug\":\"J4pNnIWfY\",\"framerCollectionId\":\"PMzuy7Jy_\",\"framerCollectionUtils\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerData\":\"true\"}},\"enumToDisplayNameFunctions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"utils\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (08b35c4)\nexport default function metadata(params,activeLocale){return{breakpoints:[{hash:\"1nxfz50\",mediaQuery:\"(min-width: 1586px)\"},{hash:\"1c85pqc\",mediaQuery:\"(min-width: 1200px) and (max-width: 1585.98px)\"},{hash:\"24nwd3\",mediaQuery:\"(min-width: 767px) and (max-width: 1199.98px)\"},{hash:\"nwcm8r\",mediaQuery:\"(max-width: 766.98px)\"}],description:\"A personal landing page with about section, navigation bar, hero image space, and social footer.\",elements:{BBM8pNwxF:\"shakes-edu\",Bmdrz_Ron:\"shake-tab\",cb3BxqGoN:\"blank-home\",ckcjmIiNn:\"suco-tab\",clgcfEkOY:\"bluecifer\",E5dzv4Koo:\"about-section-scroll\",GfaKXkvpE:\"iceburg\",GHg_bNHUg:\"regis\",glbV7YEFT:\"ers-light\",GLJHBY8rv:\"duquesne\",gT8Tl8Z6n:\"additional-experience\",IBdkWw3l4:\"about-me-title\",J5o_DHINb:\"clock-tower\",Ji5pKTbue:\"about-me \",K_HqMUPjx:\"letstalk-scroll\",KIwvaBGCM:\"casa-bonita\",l4PToXBV3:\"experience-section\",mDUVrLR2F:\"home\",mhaq5UVFP:\"ou-section\",NoMYeEYZC:\"schooner\",OCE0gBG78:\"about-me-part-2\",oQyHTwmhg:\"route-at-a-glance\",p0sZ6bMKd:\"mobile-section-route \",pAAInUB3T:\"project-section\",R9OiaBaW6:\"end-about\",rRhU6ewmV:\"trout-tab\",ruqACkrVo:\"istonish-tab\",SJT0_cuhS:\"tmobile-tab\",sLZgUOKzi:\"ac-tab\",TaRDl3knD:\"bear-top-test\",tTQATK2MN:\"suco-tab-1\",uF2ipTTY8:\"blue-bear-1\",UPnOzzvGC:\"lets-talk\",wUkM0600t:\"wells-fargo\",xXxSG2jnT:\"curios-tab\",YhkPnlv1b:\"port-image \",zfove8t9t:\"m365-tab\",ZJ2Nxta_R:\"journey-section\",zO9vJxT3L:\"blue-bear\"},robots:\"max-image-preview:large\",serializationId:\"framer-V3h7k\",title:\"Landing Page\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (08b35c4)\nexport default function metadata(params,activeLocale){return{description:\"Made with Framer\",favicon:\"https://framerusercontent.com/assets/hWdsZbACHX9qTJI9fn5dkbl2gBk.svg\",robots:\"max-image-preview:large\",title:\"My Framer Site\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (08b35c4)\nimport{getWhereExpressionFromPathVariables,QueryEngine}from\"framer\";import Projects from\"https://framerusercontent.com/modules/c4Oep6TOkLc1LxNQoSEn/IF91AXprZp2XhxKVA4ea/PMzuy7Jy_.js\";import siteMetadata from\"https://framerusercontent.com/modules/nk8yQb2XcPoVavt8CZ1Y/9rSEvCC18Ekk4diUbdBM/siteMetadata.js\";const toString=value=>{return typeof value===\"string\"?value:String(value);};const toImageSrc=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value.src;}return typeof value===\"string\"?value:undefined;};export default function metadata(params,activeLocale){const kOcd2RkZy=params?.[\"kOcd2RkZy\"];const bnv0I682E=params?.[\"bnv0I682E\"];return{breakpoints:[{hash:\"ge04ks\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"lp7cul\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"1if7lqo\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-ZYUxm\",socialImage:toImageSrc(bnv0I682E),title:`${kOcd2RkZy!==undefined?toString(kOcd2RkZy):\"{{kOcd2RkZy}}\"} - My Framer Site`,viewport:\"width=device-width\"};}export async function fetchMetadata(pathVariables,activeLocale){const queryEngine=new QueryEngine;const query={from:{alias:\"bwV8JXdD4\",data:Projects,type:\"Collection\"},select:[{collection:\"bwV8JXdD4\",name:\"kOcd2RkZy\",type:\"Identifier\"},{collection:\"bwV8JXdD4\",name:\"bnv0I682E\",type:\"Identifier\"}],where:getWhereExpressionFromPathVariables(pathVariables,\"bwV8JXdD4\")};const result=await queryEngine.query(query,activeLocale);if(result.length===0){throw new Error(\"No data matches pathVariables\");}const params=result[0];return metadata(params,activeLocale);}export async function fetchAllMetadata(pathVariableKeys,activeLocale){const queryEngine=new QueryEngine;const query={from:{alias:\"bwV8JXdD4\",data:Projects,type:\"Collection\"},select:[{collection:\"bwV8JXdD4\",name:\"kOcd2RkZy\",type:\"Identifier\"},{collection:\"bwV8JXdD4\",name:\"bnv0I682E\",type:\"Identifier\"}]};for(const pathVariableKey of pathVariableKeys){query.select.push({collection:\"bwV8JXdD4\",name:pathVariableKey,type:\"Identifier\"});}const results=await queryEngine.query(query,activeLocale);return results.map(result=>({metadata:metadata(result,activeLocale),pathVariables:Object.fromEntries(pathVariableKeys.map(pathVariableKey=>[pathVariableKey,result[pathVariableKey]]))}));}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"fetchMetadata\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fetchAllMetadata\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/common/dist/index.js\nvar DefaultBufferLength=1024;var nextPropID=0;var Range=class{constructor(from,to){this.from=from;this.to=to;}};var NodeProp=class{/**\n  This is meant to be used with\n  [`NodeSet.extend`](#common.NodeSet.extend) or\n  [`LRParser.configure`](#lr.ParserConfig.props) to compute\n  prop values for each node type in the set. Takes a [match\n  object](#common.NodeType^match) or function that returns undefined\n  if the node type doesn't get this prop, and the prop's value if\n  it does.\n  */add(match){if(this.perNode)throw new RangeError(\"Can't add per-node props to node types\");if(typeof match!=\"function\")match=NodeType.match(match);return type=>{let result=match(type);return result===void 0?null:[this,result];};}/**\n  Create a new node prop type.\n  */constructor(config={}){this.id=nextPropID++;this.perNode=!!config.perNode;this.deserialize=config.deserialize||(()=>{throw new Error(\"This node type doesn't define a deserialize function\");});}};NodeProp.closedBy=new NodeProp({deserialize:str=>str.split(\" \")});NodeProp.openedBy=new NodeProp({deserialize:str=>str.split(\" \")});NodeProp.group=new NodeProp({deserialize:str=>str.split(\" \")});NodeProp.isolate=new NodeProp({deserialize:value=>{if(value&&value!=\"rtl\"&&value!=\"ltr\"&&value!=\"auto\")throw new RangeError(\"Invalid value for isolate: \"+value);return value||\"auto\";}});NodeProp.contextHash=new NodeProp({perNode:true});NodeProp.lookAhead=new NodeProp({perNode:true});NodeProp.mounted=new NodeProp({perNode:true});var MountedTree=class{/**\n  @internal\n  */static get(tree){return tree&&tree.props&&tree.props[NodeProp.mounted.id];}constructor(tree,overlay,parser){this.tree=tree;this.overlay=overlay;this.parser=parser;}};var noProps=/* @__PURE__ */Object.create(null);var NodeType=class _NodeType{/**\n  Define a node type.\n  */static define(spec){let props=spec.props&&spec.props.length?/* @__PURE__ */Object.create(null):noProps;let flags=(spec.top?1:0)|(spec.skipped?2:0)|(spec.error?4:0)|(spec.name==null?8:0);let type=new _NodeType(spec.name||\"\",props,spec.id,flags);if(spec.props)for(let src of spec.props){if(!Array.isArray(src))src=src(type);if(src){if(src[0].perNode)throw new RangeError(\"Can't store a per-node prop on a node type\");props[src[0].id]=src[1];}}return type;}/**\n  Retrieves a node prop for this type. Will return `undefined` if\n  the prop isn't present on this node.\n  */prop(prop){return this.props[prop.id];}/**\n  True when this is the top node of a grammar.\n  */get isTop(){return(this.flags&1)>0;}/**\n  True when this node is produced by a skip rule.\n  */get isSkipped(){return(this.flags&2)>0;}/**\n  Indicates whether this is an error node.\n  */get isError(){return(this.flags&4)>0;}/**\n  When true, this node type doesn't correspond to a user-declared\n  named node, for example because it is used to cache repetition.\n  */get isAnonymous(){return(this.flags&8)>0;}/**\n  Returns true when this node's name or one of its\n  [groups](#common.NodeProp^group) matches the given string.\n  */is(name){if(typeof name==\"string\"){if(this.name==name)return true;let group=this.prop(NodeProp.group);return group?group.indexOf(name)>-1:false;}return this.id==name;}/**\n  Create a function from node types to arbitrary values by\n  specifying an object whose property names are node or\n  [group](#common.NodeProp^group) names. Often useful with\n  [`NodeProp.add`](#common.NodeProp.add). You can put multiple\n  names, separated by spaces, in a single property name to map\n  multiple node names to a single value.\n  */static match(map){let direct=/* @__PURE__ */Object.create(null);for(let prop in map)for(let name of prop.split(\" \"))direct[name]=map[prop];return node=>{for(let groups=node.prop(NodeProp.group),i=-1;i<(groups?groups.length:0);i++){let found=direct[i<0?node.name:groups[i]];if(found)return found;}};}/**\n  @internal\n  */constructor(name,props,id,flags=0){this.name=name;this.props=props;this.id=id;this.flags=flags;}};NodeType.none=new NodeType(\"\",/* @__PURE__ */Object.create(null),0,8);var NodeSet=class _NodeSet{/**\n  Create a copy of this set with some node properties added. The\n  arguments to this method can be created with\n  [`NodeProp.add`](#common.NodeProp.add).\n  */extend(...props){let newTypes=[];for(let type of this.types){let newProps=null;for(let source of props){let add=source(type);if(add){if(!newProps)newProps=Object.assign({},type.props);newProps[add[0].id]=add[1];}}newTypes.push(newProps?new NodeType(type.name,newProps,type.id,type.flags):type);}return new _NodeSet(newTypes);}/**\n  Create a set with the given types. The `id` property of each\n  type should correspond to its position within the array.\n  */constructor(types){this.types=types;for(let i=0;i<types.length;i++)if(types[i].id!=i)throw new RangeError(\"Node type ids should correspond to array positions when creating a node set\");}};var CachedNode=/* @__PURE__ */new WeakMap;var CachedInnerNode=/* @__PURE__ */new WeakMap;var IterMode;(function(IterMode2){IterMode2[IterMode2[\"ExcludeBuffers\"]=1]=\"ExcludeBuffers\";IterMode2[IterMode2[\"IncludeAnonymous\"]=2]=\"IncludeAnonymous\";IterMode2[IterMode2[\"IgnoreMounts\"]=4]=\"IgnoreMounts\";IterMode2[IterMode2[\"IgnoreOverlays\"]=8]=\"IgnoreOverlays\";})(IterMode||(IterMode={}));var Tree=class _Tree{/**\n  @internal\n  */toString(){let mounted=MountedTree.get(this);if(mounted&&!mounted.overlay)return mounted.tree.toString();let children=\"\";for(let ch of this.children){let str=ch.toString();if(str){if(children)children+=\",\";children+=str;}}return!this.type.name?children:(/\\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(children.length?\"(\"+children+\")\":\"\");}/**\n  Get a [tree cursor](#common.TreeCursor) positioned at the top of\n  the tree. Mode can be used to [control](#common.IterMode) which\n  nodes the cursor visits.\n  */cursor(mode=0){return new TreeCursor(this.topNode,mode);}/**\n  Get a [tree cursor](#common.TreeCursor) pointing into this tree\n  at the given position and side (see\n  [`moveTo`](#common.TreeCursor.moveTo).\n  */cursorAt(pos,side=0,mode=0){let scope=CachedNode.get(this)||this.topNode;let cursor=new TreeCursor(scope);cursor.moveTo(pos,side);CachedNode.set(this,cursor._tree);return cursor;}/**\n  Get a [syntax node](#common.SyntaxNode) object for the top of the\n  tree.\n  */get topNode(){return new TreeNode(this,0,0,null);}/**\n  Get the [syntax node](#common.SyntaxNode) at the given position.\n  If `side` is -1, this will move into nodes that end at the\n  position. If 1, it'll move into nodes that start at the\n  position. With 0, it'll only enter nodes that cover the position\n  from both sides.\n  \n  Note that this will not enter\n  [overlays](#common.MountedTree.overlay), and you often want\n  [`resolveInner`](#common.Tree.resolveInner) instead.\n  */resolve(pos,side=0){let node=resolveNode(CachedNode.get(this)||this.topNode,pos,side,false);CachedNode.set(this,node);return node;}/**\n  Like [`resolve`](#common.Tree.resolve), but will enter\n  [overlaid](#common.MountedTree.overlay) nodes, producing a syntax node\n  pointing into the innermost overlaid tree at the given position\n  (with parent links going through all parent structure, including\n  the host trees).\n  */resolveInner(pos,side=0){let node=resolveNode(CachedInnerNode.get(this)||this.topNode,pos,side,true);CachedInnerNode.set(this,node);return node;}/**\n  In some situations, it can be useful to iterate through all\n  nodes around a position, including those in overlays that don't\n  directly cover the position. This method gives you an iterator\n  that will produce all nodes, from small to big, around the given\n  position.\n  */resolveStack(pos,side=0){return stackIterator(this,pos,side);}/**\n  Iterate over the tree and its children, calling `enter` for any\n  node that touches the `from`/`to` region (if given) before\n  running over such a node's children, and `leave` (if given) when\n  leaving the node. When `enter` returns `false`, that node will\n  not have its children iterated over (or `leave` called).\n  */iterate(spec){let{enter,leave,from=0,to=this.length}=spec;let mode=spec.mode||0,anon=(mode&IterMode.IncludeAnonymous)>0;for(let c=this.cursor(mode|IterMode.IncludeAnonymous);;){let entered=false;if(c.from<=to&&c.to>=from&&(!anon&&c.type.isAnonymous||enter(c)!==false)){if(c.firstChild())continue;entered=true;}for(;;){if(entered&&leave&&(anon||!c.type.isAnonymous))leave(c);if(c.nextSibling())break;if(!c.parent())return;entered=true;}}}/**\n  Get the value of the given [node prop](#common.NodeProp) for this\n  node. Works with both per-node and per-type props.\n  */prop(prop){return!prop.perNode?this.type.prop(prop):this.props?this.props[prop.id]:void 0;}/**\n  Returns the node's [per-node props](#common.NodeProp.perNode) in a\n  format that can be passed to the [`Tree`](#common.Tree)\n  constructor.\n  */get propValues(){let result=[];if(this.props)for(let id in this.props)result.push([+id,this.props[id]]);return result;}/**\n  Balance the direct children of this tree, producing a copy of\n  which may have children grouped into subtrees with type\n  [`NodeType.none`](#common.NodeType^none).\n  */balance(config={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(children,positions,length)=>new _Tree(this.type,children,positions,length,this.propValues),config.makeTree||((children,positions,length)=>new _Tree(NodeType.none,children,positions,length)));}/**\n  Build a tree from a postfix-ordered buffer of node information,\n  or a cursor over such a buffer.\n  */static build(data){return buildTree(data);}/**\n  Construct a new tree. See also [`Tree.build`](#common.Tree^build).\n  */constructor(type,children,positions,length,props){this.type=type;this.children=children;this.positions=positions;this.length=length;this.props=null;if(props&&props.length){this.props=/* @__PURE__ */Object.create(null);for(let[prop,value]of props)this.props[typeof prop==\"number\"?prop:prop.id]=value;}}};Tree.empty=new Tree(NodeType.none,[],[],0);var FlatBufferCursor=class _FlatBufferCursor{get id(){return this.buffer[this.index-4];}get start(){return this.buffer[this.index-3];}get end(){return this.buffer[this.index-2];}get size(){return this.buffer[this.index-1];}get pos(){return this.index;}next(){this.index-=4;}fork(){return new _FlatBufferCursor(this.buffer,this.index);}constructor(buffer,index){this.buffer=buffer;this.index=index;}};var TreeBuffer=class _TreeBuffer{/**\n  @internal\n  */get type(){return NodeType.none;}/**\n  @internal\n  */toString(){let result=[];for(let index=0;index<this.buffer.length;){result.push(this.childString(index));index=this.buffer[index+3];}return result.join(\",\");}/**\n  @internal\n  */childString(index){let id=this.buffer[index],endIndex=this.buffer[index+3];let type=this.set.types[id],result=type.name;if(/\\W/.test(result)&&!type.isError)result=JSON.stringify(result);index+=4;if(endIndex==index)return result;let children=[];while(index<endIndex){children.push(this.childString(index));index=this.buffer[index+3];}return result+\"(\"+children.join(\",\")+\")\";}/**\n  @internal\n  */findChild(startIndex,endIndex,dir,pos,side){let{buffer}=this,pick=-1;for(let i=startIndex;i!=endIndex;i=buffer[i+3]){if(checkSide(side,pos,buffer[i+1],buffer[i+2])){pick=i;if(dir>0)break;}}return pick;}/**\n  @internal\n  */slice(startI,endI,from){let b=this.buffer;let copy=new Uint16Array(endI-startI),len=0;for(let i=startI,j=0;i<endI;){copy[j++]=b[i++];copy[j++]=b[i++]-from;let to=copy[j++]=b[i++]-from;copy[j++]=b[i++]-startI;len=Math.max(len,to);}return new _TreeBuffer(copy,len,this.set);}/**\n  Create a tree buffer.\n  */constructor(buffer,length,set){this.buffer=buffer;this.length=length;this.set=set;}};function checkSide(side,pos,from,to){switch(side){case-2:return from<pos;case-1:return to>=pos&&from<pos;case 0:return from<pos&&to>pos;case 1:return from<=pos&&to>pos;case 2:return to>pos;case 4:return true;}}function resolveNode(node,pos,side,overlays){var _a;while(node.from==node.to||(side<1?node.from>=pos:node.from>pos)||(side>-1?node.to<=pos:node.to<pos)){let parent=!overlays&&node instanceof TreeNode&&node.index<0?null:node.parent;if(!parent)return node;node=parent;}let mode=overlays?0:IterMode.IgnoreOverlays;if(overlays)for(let scan=node,parent=scan.parent;parent;scan=parent,parent=scan.parent){if(scan instanceof TreeNode&&scan.index<0&&((_a=parent.enter(pos,side,mode))===null||_a===void 0?void 0:_a.from)!=scan.from)node=parent;}for(;;){let inner=node.enter(pos,side,mode);if(!inner)return node;node=inner;}}var BaseNode=class{cursor(mode=0){return new TreeCursor(this,mode);}getChild(type,before=null,after=null){let r=getChildren(this,type,before,after);return r.length?r[0]:null;}getChildren(type,before=null,after=null){return getChildren(this,type,before,after);}resolve(pos,side=0){return resolveNode(this,pos,side,false);}resolveInner(pos,side=0){return resolveNode(this,pos,side,true);}matchContext(context){return matchNodeContext(this.parent,context);}enterUnfinishedNodesBefore(pos){let scan=this.childBefore(pos),node=this;while(scan){let last=scan.lastChild;if(!last||last.to!=scan.to)break;if(last.type.isError&&last.from==last.to){node=scan;scan=last.prevSibling;}else{scan=last;}}return node;}get node(){return this;}get next(){return this.parent;}};var TreeNode=class _TreeNode extends BaseNode{get type(){return this._tree.type;}get name(){return this._tree.type.name;}get to(){return this.from+this._tree.length;}nextChild(i,dir,pos,side,mode=0){for(let parent=this;;){for(let{children,positions}=parent._tree,e=dir>0?children.length:-1;i!=e;i+=dir){let next=children[i],start=positions[i]+parent.from;if(!checkSide(side,pos,start,start+next.length))continue;if(next instanceof TreeBuffer){if(mode&IterMode.ExcludeBuffers)continue;let index=next.findChild(0,next.buffer.length,dir,pos-start,side);if(index>-1)return new BufferNode(new BufferContext(parent,next,i,start),null,index);}else if(mode&IterMode.IncludeAnonymous||!next.type.isAnonymous||hasChild(next)){let mounted;if(!(mode&IterMode.IgnoreMounts)&&(mounted=MountedTree.get(next))&&!mounted.overlay)return new _TreeNode(mounted.tree,start,i,parent);let inner=new _TreeNode(next,start,i,parent);return mode&IterMode.IncludeAnonymous||!inner.type.isAnonymous?inner:inner.nextChild(dir<0?next.children.length-1:0,dir,pos,side);}}if(mode&IterMode.IncludeAnonymous||!parent.type.isAnonymous)return null;if(parent.index>=0)i=parent.index+dir;else i=dir<0?-1:parent._parent._tree.children.length;parent=parent._parent;if(!parent)return null;}}get firstChild(){return this.nextChild(0,1,0,4);}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4);}childAfter(pos){return this.nextChild(0,1,pos,2);}childBefore(pos){return this.nextChild(this._tree.children.length-1,-1,pos,-2);}enter(pos,side,mode=0){let mounted;if(!(mode&IterMode.IgnoreOverlays)&&(mounted=MountedTree.get(this._tree))&&mounted.overlay){let rPos=pos-this.from;for(let{from,to}of mounted.overlay){if((side>0?from<=rPos:from<rPos)&&(side<0?to>=rPos:to>rPos))return new _TreeNode(mounted.tree,mounted.overlay[0].from+this.from,-1,this);}}return this.nextChild(0,1,pos,side,mode);}nextSignificantParent(){let val=this;while(val.type.isAnonymous&&val._parent)val=val._parent;return val;}get parent(){return this._parent?this._parent.nextSignificantParent():null;}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null;}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null;}get tree(){return this._tree;}toTree(){return this._tree;}/**\n  @internal\n  */toString(){return this._tree.toString();}constructor(_tree,from,index,_parent){super();this._tree=_tree;this.from=from;this.index=index;this._parent=_parent;}};function getChildren(node,type,before,after){let cur=node.cursor(),result=[];if(!cur.firstChild())return result;if(before!=null)for(let found=false;!found;){found=cur.type.is(before);if(!cur.nextSibling())return result;}for(;;){if(after!=null&&cur.type.is(after))return result;if(cur.type.is(type))result.push(cur.node);if(!cur.nextSibling())return after==null?result:[];}}function matchNodeContext(node,context,i=context.length-1){for(let p=node;i>=0;p=p.parent){if(!p)return false;if(!p.type.isAnonymous){if(context[i]&&context[i]!=p.name)return false;i--;}}return true;}var BufferContext=class{constructor(parent,buffer,index,start){this.parent=parent;this.buffer=buffer;this.index=index;this.start=start;}};var BufferNode=class _BufferNode extends BaseNode{get name(){return this.type.name;}get from(){return this.context.start+this.context.buffer.buffer[this.index+1];}get to(){return this.context.start+this.context.buffer.buffer[this.index+2];}child(dir,pos,side){let{buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.context.start,side);return index<0?null:new _BufferNode(this.context,this,index);}get firstChild(){return this.child(1,0,4);}get lastChild(){return this.child(-1,0,4);}childAfter(pos){return this.child(1,pos,2);}childBefore(pos){return this.child(-1,pos,-2);}enter(pos,side,mode=0){if(mode&IterMode.ExcludeBuffers)return null;let{buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],side>0?1:-1,pos-this.context.start,side);return index<0?null:new _BufferNode(this.context,this,index);}get parent(){return this._parent||this.context.parent.nextSignificantParent();}externalSibling(dir){return this._parent?null:this.context.parent.nextChild(this.context.index+dir,dir,0,4);}get nextSibling(){let{buffer}=this.context;let after=buffer.buffer[this.index+3];if(after<(this._parent?buffer.buffer[this._parent.index+3]:buffer.buffer.length))return new _BufferNode(this.context,this._parent,after);return this.externalSibling(1);}get prevSibling(){let{buffer}=this.context;let parentStart=this._parent?this._parent.index+4:0;if(this.index==parentStart)return this.externalSibling(-1);return new _BufferNode(this.context,this._parent,buffer.findChild(parentStart,this.index,-1,0,4));}get tree(){return null;}toTree(){let children=[],positions=[];let{buffer}=this.context;let startI=this.index+4,endI=buffer.buffer[this.index+3];if(endI>startI){let from=buffer.buffer[this.index+1];children.push(buffer.slice(startI,endI,from));positions.push(0);}return new Tree(this.type,children,positions,this.to-this.from);}/**\n  @internal\n  */toString(){return this.context.buffer.childString(this.index);}constructor(context,_parent,index){super();this.context=context;this._parent=_parent;this.index=index;this.type=context.buffer.set.types[context.buffer.buffer[index]];}};function iterStack(heads){if(!heads.length)return null;let pick=0,picked=heads[0];for(let i=1;i<heads.length;i++){let node=heads[i];if(node.from>picked.from||node.to<picked.to){picked=node;pick=i;}}let next=picked instanceof TreeNode&&picked.index<0?null:picked.parent;let newHeads=heads.slice();if(next)newHeads[pick]=next;else newHeads.splice(pick,1);return new StackIterator(newHeads,picked);}var StackIterator=class{get next(){return iterStack(this.heads);}constructor(heads,node){this.heads=heads;this.node=node;}};function stackIterator(tree,pos,side){let inner=tree.resolveInner(pos,side),layers=null;for(let scan=inner instanceof TreeNode?inner:inner.context.parent;scan;scan=scan.parent){if(scan.index<0){let parent=scan.parent;(layers||(layers=[inner])).push(parent.resolve(pos,side));scan=parent;}else{let mount=MountedTree.get(scan.tree);if(mount&&mount.overlay&&mount.overlay[0].from<=pos&&mount.overlay[mount.overlay.length-1].to>=pos){let root=new TreeNode(mount.tree,mount.overlay[0].from+scan.from,-1,scan);(layers||(layers=[inner])).push(resolveNode(root,pos,side,false));}}}return layers?iterStack(layers):inner;}var TreeCursor=class{/**\n  Shorthand for `.type.name`.\n  */get name(){return this.type.name;}yieldNode(node){if(!node)return false;this._tree=node;this.type=node.type;this.from=node.from;this.to=node.to;return true;}yieldBuf(index,type){this.index=index;let{start,buffer}=this.buffer;this.type=type||buffer.set.types[buffer.buffer[index]];this.from=start+buffer.buffer[index+1];this.to=start+buffer.buffer[index+2];return true;}/**\n  @internal\n  */yield(node){if(!node)return false;if(node instanceof TreeNode){this.buffer=null;return this.yieldNode(node);}this.buffer=node.context;return this.yieldBuf(node.index,node.type);}/**\n  @internal\n  */toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString();}/**\n  @internal\n  */enterChild(dir,pos,side){if(!this.buffer)return this.yield(this._tree.nextChild(dir<0?this._tree._tree.children.length-1:0,dir,pos,side,this.mode));let{buffer}=this.buffer;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.buffer.start,side);if(index<0)return false;this.stack.push(this.index);return this.yieldBuf(index);}/**\n  Move the cursor to this node's first child. When this returns\n  false, the node has no child, and the cursor has not been moved.\n  */firstChild(){return this.enterChild(1,0,4);}/**\n  Move the cursor to this node's last child.\n  */lastChild(){return this.enterChild(-1,0,4);}/**\n  Move the cursor to the first child that ends after `pos`.\n  */childAfter(pos){return this.enterChild(1,pos,2);}/**\n  Move to the last child that starts before `pos`.\n  */childBefore(pos){return this.enterChild(-1,pos,-2);}/**\n  Move the cursor to the child around `pos`. If side is -1 the\n  child may end at that position, when 1 it may start there. This\n  will also enter [overlaid](#common.MountedTree.overlay)\n  [mounted](#common.NodeProp^mounted) trees unless `overlays` is\n  set to false.\n  */enter(pos,side,mode=this.mode){if(!this.buffer)return this.yield(this._tree.enter(pos,side,mode));return mode&IterMode.ExcludeBuffers?false:this.enterChild(1,pos,side);}/**\n  Move to the node's parent node, if this isn't the top node.\n  */parent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let parent=this.mode&IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();this.buffer=null;return this.yieldNode(parent);}/**\n  @internal\n  */sibling(dir){if(!this.buffer)return!this._tree._parent?false:this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+dir,dir,0,4,this.mode));let{buffer}=this.buffer,d=this.stack.length-1;if(dir<0){let parentStart=d<0?0:this.stack[d]+4;if(this.index!=parentStart)return this.yieldBuf(buffer.findChild(parentStart,this.index,-1,0,4));}else{let after=buffer.buffer[this.index+3];if(after<(d<0?buffer.buffer.length:buffer.buffer[this.stack[d]+3]))return this.yieldBuf(after);}return d<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+dir,dir,0,4,this.mode)):false;}/**\n  Move to this node's next sibling, if any.\n  */nextSibling(){return this.sibling(1);}/**\n  Move to this node's previous sibling, if any.\n  */prevSibling(){return this.sibling(-1);}atLastNode(dir){let index,parent,{buffer}=this;if(buffer){if(dir>0){if(this.index<buffer.buffer.buffer.length)return false;}else{for(let i=0;i<this.index;i++)if(buffer.buffer.buffer[i+3]<this.index)return false;}({index,parent}=buffer);}else{({index,_parent:parent}=this._tree);}for(;parent;{index,_parent:parent}=parent){if(index>-1)for(let i=index+dir,e=dir<0?-1:parent._tree.children.length;i!=e;i+=dir){let child=parent._tree.children[i];if(this.mode&IterMode.IncludeAnonymous||child instanceof TreeBuffer||!child.type.isAnonymous||hasChild(child))return false;}}return true;}move(dir,enter){if(enter&&this.enterChild(dir,0,4))return true;for(;;){if(this.sibling(dir))return true;if(this.atLastNode(dir)||!this.parent())return false;}}/**\n  Move to the next node in a\n  [pre-order](https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR)\n  traversal, going from a node to its first child or, if the\n  current node is empty or `enter` is false, its next sibling or\n  the next sibling of the first parent node that has one.\n  */next(enter=true){return this.move(1,enter);}/**\n  Move to the next node in a last-to-first pre-order traversal. A\n  node is followed by its last child or, if it has none, its\n  previous sibling or the previous sibling of the first parent\n  node that has one.\n  */prev(enter=true){return this.move(-1,enter);}/**\n  Move the cursor to the innermost node that covers `pos`. If\n  `side` is -1, it will enter nodes that end at `pos`. If it is 1,\n  it will enter nodes that start at `pos`.\n  */moveTo(pos,side=0){while(this.from==this.to||(side<1?this.from>=pos:this.from>pos)||(side>-1?this.to<=pos:this.to<pos))if(!this.parent())break;while(this.enterChild(1,pos,side)){}return this;}/**\n  Get a [syntax node](#common.SyntaxNode) at the cursor's current\n  position.\n  */get node(){if(!this.buffer)return this._tree;let cache=this.bufferNode,result=null,depth=0;if(cache&&cache.context==this.buffer){scan:for(let index=this.index,d=this.stack.length;d>=0;){for(let c=cache;c;c=c._parent)if(c.index==index){if(index==this.index)return c;result=c;depth=d+1;break scan;}index=this.stack[--d];}}for(let i=depth;i<this.stack.length;i++)result=new BufferNode(this.buffer,result,this.stack[i]);return this.bufferNode=new BufferNode(this.buffer,result,this.index);}/**\n  Get the [tree](#common.Tree) that represents the current node, if\n  any. Will return null when the node is in a [tree\n  buffer](#common.TreeBuffer).\n  */get tree(){return this.buffer?null:this._tree._tree;}/**\n  Iterate over the current node and all its descendants, calling\n  `enter` when entering a node and `leave`, if given, when leaving\n  one. When `enter` returns `false`, any children of that node are\n  skipped, and `leave` isn't called for it.\n  */iterate(enter,leave){for(let depth=0;;){let mustLeave=false;if(this.type.isAnonymous||enter(this)!==false){if(this.firstChild()){depth++;continue;}if(!this.type.isAnonymous)mustLeave=true;}for(;;){if(mustLeave&&leave)leave(this);mustLeave=this.type.isAnonymous;if(!depth)return;if(this.nextSibling())break;this.parent();depth--;mustLeave=true;}}}/**\n  Test whether the current node matches a given context—a sequence\n  of direct parent node names. Empty strings in the context array\n  are treated as wildcards.\n  */matchContext(context){if(!this.buffer)return matchNodeContext(this.node.parent,context);let{buffer}=this.buffer,{types}=buffer.set;for(let i=context.length-1,d=this.stack.length-1;i>=0;d--){if(d<0)return matchNodeContext(this._tree,context,i);let type=types[buffer.buffer[this.stack[d]]];if(!type.isAnonymous){if(context[i]&&context[i]!=type.name)return false;i--;}}return true;}/**\n  @internal\n  */constructor(node,mode=0){this.mode=mode;this.buffer=null;this.stack=[];this.index=0;this.bufferNode=null;if(node instanceof TreeNode){this.yieldNode(node);}else{this._tree=node.context.parent;this.buffer=node.context;for(let n=node._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=node;this.yieldBuf(node.index);}}};function hasChild(tree){return tree.children.some(ch=>ch instanceof TreeBuffer||!ch.type.isAnonymous||hasChild(ch));}function buildTree(data){var _a;let{buffer,nodeSet,maxBufferLength=DefaultBufferLength,reused=[],minRepeatType=nodeSet.types.length}=data;let cursor=Array.isArray(buffer)?new FlatBufferCursor(buffer,buffer.length):buffer;let types=nodeSet.types;let contextHash=0,lookAhead=0;function takeNode(parentStart,minPos,children2,positions2,inRepeat,depth){let{id,start,end,size}=cursor;let lookAheadAtStart=lookAhead,contextAtStart=contextHash;while(size<0){cursor.next();if(size==-1){let node2=reused[id];children2.push(node2);positions2.push(start-parentStart);return;}else if(size==-3){contextHash=id;return;}else if(size==-4){lookAhead=id;return;}else{throw new RangeError(`Unrecognized record size: ${size}`);}}let type=types[id],node,buffer2;let startPos=start-parentStart;if(end-start<=maxBufferLength&&(buffer2=findBufferSize(cursor.pos-minPos,inRepeat))){let data2=new Uint16Array(buffer2.size-buffer2.skip);let endPos=cursor.pos-buffer2.size,index=data2.length;while(cursor.pos>endPos)index=copyToBuffer(buffer2.start,data2,index);node=new TreeBuffer(data2,end-buffer2.start,nodeSet);startPos=buffer2.start-parentStart;}else{let endPos=cursor.pos-size;cursor.next();let localChildren=[],localPositions=[];let localInRepeat=id>=minRepeatType?id:-1;let lastGroup=0,lastEnd=end;while(cursor.pos>endPos){if(localInRepeat>=0&&cursor.id==localInRepeat&&cursor.size>=0){if(cursor.end<=lastEnd-maxBufferLength){makeRepeatLeaf(localChildren,localPositions,start,lastGroup,cursor.end,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);lastGroup=localChildren.length;lastEnd=cursor.end;}cursor.next();}else if(depth>2500){takeFlatNode(start,endPos,localChildren,localPositions);}else{takeNode(start,endPos,localChildren,localPositions,localInRepeat,depth+1);}}if(localInRepeat>=0&&lastGroup>0&&lastGroup<localChildren.length)makeRepeatLeaf(localChildren,localPositions,start,lastGroup,start,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);localChildren.reverse();localPositions.reverse();if(localInRepeat>-1&&lastGroup>0){let make=makeBalanced(type,contextAtStart);node=balanceRange(type,localChildren,localPositions,0,localChildren.length,0,end-start,make,make);}else{node=makeTree(type,localChildren,localPositions,end-start,lookAheadAtStart-end,contextAtStart);}}children2.push(node);positions2.push(startPos);}function takeFlatNode(parentStart,minPos,children2,positions2){let nodes=[];let nodeCount=0,stopAt=-1;while(cursor.pos>minPos){let{id,start,end,size}=cursor;if(size>4){cursor.next();}else if(stopAt>-1&&start<stopAt){break;}else{if(stopAt<0)stopAt=end-maxBufferLength;nodes.push(id,start,end);nodeCount++;cursor.next();}}if(nodeCount){let buffer2=new Uint16Array(nodeCount*4);let start=nodes[nodes.length-2];for(let i=nodes.length-3,j=0;i>=0;i-=3){buffer2[j++]=nodes[i];buffer2[j++]=nodes[i+1]-start;buffer2[j++]=nodes[i+2]-start;buffer2[j++]=j;}children2.push(new TreeBuffer(buffer2,nodes[2]-start,nodeSet));positions2.push(start-parentStart);}}function makeBalanced(type,contextHash2){return(children2,positions2,length2)=>{let lookAhead2=0,lastI=children2.length-1,last,lookAheadProp;if(lastI>=0&&(last=children2[lastI])instanceof Tree){if(!lastI&&last.type==type&&last.length==length2)return last;if(lookAheadProp=last.prop(NodeProp.lookAhead))lookAhead2=positions2[lastI]+last.length+lookAheadProp;}return makeTree(type,children2,positions2,length2,lookAhead2,contextHash2);};}function makeRepeatLeaf(children2,positions2,base,i,from,to,type,lookAhead2,contextHash2){let localChildren=[],localPositions=[];while(children2.length>i){localChildren.push(children2.pop());localPositions.push(positions2.pop()+base-from);}children2.push(makeTree(nodeSet.types[type],localChildren,localPositions,to-from,lookAhead2-to,contextHash2));positions2.push(from-base);}function makeTree(type,children2,positions2,length2,lookAhead2,contextHash2,props){if(contextHash2){let pair=[NodeProp.contextHash,contextHash2];props=props?[pair].concat(props):[pair];}if(lookAhead2>25){let pair=[NodeProp.lookAhead,lookAhead2];props=props?[pair].concat(props):[pair];}return new Tree(type,children2,positions2,length2,props);}function findBufferSize(maxSize,inRepeat){let fork=cursor.fork();let size=0,start=0,skip=0,minStart=fork.end-maxBufferLength;let result={size:0,start:0,skip:0};scan:for(let minPos=fork.pos-maxSize;fork.pos>minPos;){let nodeSize2=fork.size;if(fork.id==inRepeat&&nodeSize2>=0){result.size=size;result.start=start;result.skip=skip;skip+=4;size+=4;fork.next();continue;}let startPos=fork.pos-nodeSize2;if(nodeSize2<0||startPos<minPos||fork.start<minStart)break;let localSkipped=fork.id>=minRepeatType?4:0;let nodeStart=fork.start;fork.next();while(fork.pos>startPos){if(fork.size<0){if(fork.size==-3)localSkipped+=4;else break scan;}else if(fork.id>=minRepeatType){localSkipped+=4;}fork.next();}start=nodeStart;size+=nodeSize2;skip+=localSkipped;}if(inRepeat<0||size==maxSize){result.size=size;result.start=start;result.skip=skip;}return result.size>4?result:void 0;}function copyToBuffer(bufferStart,buffer2,index){let{id,start,end,size}=cursor;cursor.next();if(size>=0&&id<minRepeatType){let startIndex=index;if(size>4){let endPos=cursor.pos-(size-4);while(cursor.pos>endPos)index=copyToBuffer(bufferStart,buffer2,index);}buffer2[--index]=startIndex;buffer2[--index]=end-bufferStart;buffer2[--index]=start-bufferStart;buffer2[--index]=id;}else if(size==-3){contextHash=id;}else if(size==-4){lookAhead=id;}return index;}let children=[],positions=[];while(cursor.pos>0)takeNode(data.start||0,data.bufferStart||0,children,positions,-1,0);let length=(_a=data.length)!==null&&_a!==void 0?_a:children.length?positions[0]+children[0].length:0;return new Tree(types[data.topID],children.reverse(),positions.reverse(),length);}var nodeSizeCache=/* @__PURE__ */new WeakMap;function nodeSize(balanceType,node){if(!balanceType.isAnonymous||node instanceof TreeBuffer||node.type!=balanceType)return 1;let size=nodeSizeCache.get(node);if(size==null){size=1;for(let child of node.children){if(child.type!=balanceType||!(child instanceof Tree)){size=1;break;}size+=nodeSize(balanceType,child);}nodeSizeCache.set(node,size);}return size;}function balanceRange(balanceType,children,positions,from,to,start,length,mkTop,mkTree){let total=0;for(let i=from;i<to;i++)total+=nodeSize(balanceType,children[i]);let maxChild=Math.ceil(total*1.5/8);let localChildren=[],localPositions=[];function divide(children2,positions2,from2,to2,offset){for(let i=from2;i<to2;){let groupFrom=i,groupStart=positions2[i],groupSize=nodeSize(balanceType,children2[i]);i++;for(;i<to2;i++){let nextSize=nodeSize(balanceType,children2[i]);if(groupSize+nextSize>=maxChild)break;groupSize+=nextSize;}if(i==groupFrom+1){if(groupSize>maxChild){let only=children2[groupFrom];divide(only.children,only.positions,0,only.children.length,positions2[groupFrom]+offset);continue;}localChildren.push(children2[groupFrom]);}else{let length2=positions2[i-1]+children2[i-1].length-groupStart;localChildren.push(balanceRange(balanceType,children2,positions2,groupFrom,i,groupStart,length2,null,mkTree));}localPositions.push(groupStart+offset-start);}}divide(children,positions,from,to,0);return(mkTop||mkTree)(localChildren,localPositions,length);}var NodeWeakMap=class{setBuffer(buffer,index,value){let inner=this.map.get(buffer);if(!inner)this.map.set(buffer,inner=/* @__PURE__ */new Map);inner.set(index,value);}getBuffer(buffer,index){let inner=this.map.get(buffer);return inner&&inner.get(index);}/**\n  Set the value for this syntax node.\n  */set(node,value){if(node instanceof BufferNode)this.setBuffer(node.context.buffer,node.index,value);else if(node instanceof TreeNode)this.map.set(node.tree,value);}/**\n  Retrieve value for this syntax node, if it exists in the map.\n  */get(node){return node instanceof BufferNode?this.getBuffer(node.context.buffer,node.index):node instanceof TreeNode?this.map.get(node.tree):void 0;}/**\n  Set the value for the node that a cursor currently points to.\n  */cursorSet(cursor,value){if(cursor.buffer)this.setBuffer(cursor.buffer.buffer,cursor.index,value);else this.map.set(cursor.tree,value);}/**\n  Retrieve the value for the node that a cursor currently points\n  to.\n  */cursorGet(cursor){return cursor.buffer?this.getBuffer(cursor.buffer.buffer,cursor.index):this.map.get(cursor.tree);}constructor(){this.map=/* @__PURE__ */new WeakMap;}};var TreeFragment=class _TreeFragment{/**\n  Whether the start of the fragment represents the start of a\n  parse, or the end of a change. (In the second case, it may not\n  be safe to reuse some nodes at the start, depending on the\n  parsing algorithm.)\n  */get openStart(){return(this.open&1)>0;}/**\n  Whether the end of the fragment represents the end of a\n  full-document parse, or the start of a change.\n  */get openEnd(){return(this.open&2)>0;}/**\n  Create a set of fragments from a freshly parsed tree, or update\n  an existing set of fragments by replacing the ones that overlap\n  with a tree with content from the new tree. When `partial` is\n  true, the parse is treated as incomplete, and the resulting\n  fragment has [`openEnd`](#common.TreeFragment.openEnd) set to\n  true.\n  */static addTree(tree,fragments=[],partial=false){let result=[new _TreeFragment(0,tree.length,tree,0,false,partial)];for(let f of fragments)if(f.to>tree.length)result.push(f);return result;}/**\n  Apply a set of edits to an array of fragments, removing or\n  splitting fragments as necessary to remove edited ranges, and\n  adjusting offsets for fragments that moved.\n  */static applyChanges(fragments,changes,minGap=128){if(!changes.length)return fragments;let result=[];let fI=1,nextF=fragments.length?fragments[0]:null;for(let cI=0,pos=0,off=0;;cI++){let nextC=cI<changes.length?changes[cI]:null;let nextPos=nextC?nextC.fromA:1e9;if(nextPos-pos>=minGap)while(nextF&&nextF.from<nextPos){let cut=nextF;if(pos>=cut.from||nextPos<=cut.to||off){let fFrom=Math.max(cut.from,pos)-off,fTo=Math.min(cut.to,nextPos)-off;cut=fFrom>=fTo?null:new _TreeFragment(fFrom,fTo,cut.tree,cut.offset+off,cI>0,!!nextC);}if(cut)result.push(cut);if(nextF.to>nextPos)break;nextF=fI<fragments.length?fragments[fI++]:null;}if(!nextC)break;pos=nextC.toA;off=nextC.toA-nextC.toB;}return result;}/**\n  Construct a tree fragment. You'll usually want to use\n  [`addTree`](#common.TreeFragment^addTree) and\n  [`applyChanges`](#common.TreeFragment^applyChanges) instead of\n  calling this directly.\n  */constructor(from,to,tree,offset,openStart=false,openEnd=false){this.from=from;this.to=to;this.tree=tree;this.offset=offset;this.open=(openStart?1:0)|(openEnd?2:0);}};var Parser=class{/**\n  Start a parse, returning a [partial parse](#common.PartialParse)\n  object. [`fragments`](#common.TreeFragment) can be passed in to\n  make the parse incremental.\n  \n  By default, the entire input is parsed. You can pass `ranges`,\n  which should be a sorted array of non-empty, non-overlapping\n  ranges, to parse only those ranges. The tree returned in that\n  case will start at `ranges[0].from`.\n  */startParse(input,fragments,ranges){if(typeof input==\"string\")input=new StringInput(input);ranges=!ranges?[new Range(0,input.length)]:ranges.length?ranges.map(r=>new Range(r.from,r.to)):[new Range(0,0)];return this.createParse(input,fragments||[],ranges);}/**\n  Run a full parse, returning the resulting tree.\n  */parse(input,fragments,ranges){let parse=this.startParse(input,fragments,ranges);for(;;){let done=parse.advance();if(done)return done;}}};var StringInput=class{get length(){return this.string.length;}chunk(from){return this.string.slice(from);}get lineChunks(){return false;}read(from,to){return this.string.slice(from,to);}constructor(string){this.string=string;}};function parseMixed(nest){return(parse,input,fragments,ranges)=>new MixedParse(parse,nest,input,fragments,ranges);}var InnerParse=class{constructor(parser,parse,overlay,target,from){this.parser=parser;this.parse=parse;this.overlay=overlay;this.target=target;this.from=from;}};function checkRanges(ranges){if(!ranges.length||ranges.some(r=>r.from>=r.to))throw new RangeError(\"Invalid inner parse ranges given: \"+JSON.stringify(ranges));}var ActiveOverlay=class{constructor(parser,predicate,mounts,index,start,target,prev){this.parser=parser;this.predicate=predicate;this.mounts=mounts;this.index=index;this.start=start;this.target=target;this.prev=prev;this.depth=0;this.ranges=[];}};var stoppedInner=new NodeProp({perNode:true});var MixedParse=class{advance(){if(this.baseParse){let done2=this.baseParse.advance();if(!done2)return null;this.baseParse=null;this.baseTree=done2;this.startInner();if(this.stoppedAt!=null)for(let inner2 of this.inner)inner2.parse.stopAt(this.stoppedAt);}if(this.innerDone==this.inner.length){let result=this.baseTree;if(this.stoppedAt!=null)result=new Tree(result.type,result.children,result.positions,result.length,result.propValues.concat([[stoppedInner,this.stoppedAt]]));return result;}let inner=this.inner[this.innerDone],done=inner.parse.advance();if(done){this.innerDone++;let props=Object.assign(/* @__PURE__ */Object.create(null),inner.target.props);props[NodeProp.mounted.id]=new MountedTree(done,inner.overlay,inner.parser);inner.target.props=props;}return null;}get parsedPos(){if(this.baseParse)return 0;let pos=this.input.length;for(let i=this.innerDone;i<this.inner.length;i++){if(this.inner[i].from<pos)pos=Math.min(pos,this.inner[i].parse.parsedPos);}return pos;}stopAt(pos){this.stoppedAt=pos;if(this.baseParse)this.baseParse.stopAt(pos);else for(let i=this.innerDone;i<this.inner.length;i++)this.inner[i].parse.stopAt(pos);}startInner(){let fragmentCursor=new FragmentCursor(this.fragments);let overlay=null;let covered=null;let cursor=new TreeCursor(new TreeNode(this.baseTree,this.ranges[0].from,0,null),IterMode.IncludeAnonymous|IterMode.IgnoreMounts);scan:for(let nest,isCovered;;){let enter=true,range;if(this.stoppedAt!=null&&cursor.from>=this.stoppedAt){enter=false;}else if(fragmentCursor.hasNode(cursor)){if(overlay){let match=overlay.mounts.find(m=>m.frag.from<=cursor.from&&m.frag.to>=cursor.to&&m.mount.overlay);if(match)for(let r of match.mount.overlay){let from=r.from+match.pos,to=r.to+match.pos;if(from>=cursor.from&&to<=cursor.to&&!overlay.ranges.some(r2=>r2.from<to&&r2.to>from))overlay.ranges.push({from,to});}}enter=false;}else if(covered&&(isCovered=checkCover(covered.ranges,cursor.from,cursor.to))){enter=isCovered!=2;}else if(!cursor.type.isAnonymous&&(nest=this.nest(cursor,this.input))&&(cursor.from<cursor.to||!nest.overlay)){if(!cursor.tree)materialize(cursor);let oldMounts=fragmentCursor.findMounts(cursor.from,nest.parser);if(typeof nest.overlay==\"function\"){overlay=new ActiveOverlay(nest.parser,nest.overlay,oldMounts,this.inner.length,cursor.from,cursor.tree,overlay);}else{let ranges=punchRanges(this.ranges,nest.overlay||(cursor.from<cursor.to?[new Range(cursor.from,cursor.to)]:[]));if(ranges.length)checkRanges(ranges);if(ranges.length||!nest.overlay)this.inner.push(new InnerParse(nest.parser,ranges.length?nest.parser.startParse(this.input,enterFragments(oldMounts,ranges),ranges):nest.parser.startParse(\"\"),nest.overlay?nest.overlay.map(r=>new Range(r.from-cursor.from,r.to-cursor.from)):null,cursor.tree,ranges.length?ranges[0].from:cursor.from));if(!nest.overlay)enter=false;else if(ranges.length)covered={ranges,depth:0,prev:covered};}}else if(overlay&&(range=overlay.predicate(cursor))){if(range===true)range=new Range(cursor.from,cursor.to);if(range.from<range.to){let last=overlay.ranges.length-1;if(last>=0&&overlay.ranges[last].to==range.from)overlay.ranges[last]={from:overlay.ranges[last].from,to:range.to};else overlay.ranges.push(range);}}if(enter&&cursor.firstChild()){if(overlay)overlay.depth++;if(covered)covered.depth++;}else{for(;;){if(cursor.nextSibling())break;if(!cursor.parent())break scan;if(overlay&&!--overlay.depth){let ranges=punchRanges(this.ranges,overlay.ranges);if(ranges.length){checkRanges(ranges);this.inner.splice(overlay.index,0,new InnerParse(overlay.parser,overlay.parser.startParse(this.input,enterFragments(overlay.mounts,ranges),ranges),overlay.ranges.map(r=>new Range(r.from-overlay.start,r.to-overlay.start)),overlay.target,ranges[0].from));}overlay=overlay.prev;}if(covered&&!--covered.depth)covered=covered.prev;}}}}constructor(base,nest,input,fragments,ranges){this.nest=nest;this.input=input;this.fragments=fragments;this.ranges=ranges;this.inner=[];this.innerDone=0;this.baseTree=null;this.stoppedAt=null;this.baseParse=base;}};function checkCover(covered,from,to){for(let range of covered){if(range.from>=to)break;if(range.to>from)return range.from<=from&&range.to>=to?2:1;}return 0;}function sliceBuf(buf,startI,endI,nodes,positions,off){if(startI<endI){let from=buf.buffer[startI+1];nodes.push(buf.slice(startI,endI,from));positions.push(from-off);}}function materialize(cursor){let{node}=cursor,stack=[];let buffer=node.context.buffer;do{stack.push(cursor.index);cursor.parent();}while(!cursor.tree)let base=cursor.tree,i=base.children.indexOf(buffer);let buf=base.children[i],b=buf.buffer,newStack=[i];function split(startI,endI,type,innerOffset,length,stackPos){let targetI=stack[stackPos];let children=[],positions=[];sliceBuf(buf,startI,targetI,children,positions,innerOffset);let from=b[targetI+1],to=b[targetI+2];newStack.push(children.length);let child=stackPos?split(targetI+4,b[targetI+3],buf.set.types[b[targetI]],from,to-from,stackPos-1):node.toTree();children.push(child);positions.push(from-innerOffset);sliceBuf(buf,b[targetI+3],endI,children,positions,innerOffset);return new Tree(type,children,positions,length);}base.children[i]=split(0,b.length,NodeType.none,0,buf.length,stack.length-1);for(let index of newStack){let tree=cursor.tree.children[index],pos=cursor.tree.positions[index];cursor.yield(new TreeNode(tree,pos+cursor.from,index,cursor._tree));}}var StructureCursor=class{// Move to the first node (in pre-order) that starts at or after `pos`.\nmoveTo(pos){let{cursor}=this,p=pos-this.offset;while(!this.done&&cursor.from<p){if(cursor.to>=pos&&cursor.enter(p,1,IterMode.IgnoreOverlays|IterMode.ExcludeBuffers));else if(!cursor.next(false))this.done=true;}}hasNode(cursor){this.moveTo(cursor.from);if(!this.done&&this.cursor.from+this.offset==cursor.from&&this.cursor.tree){for(let tree=this.cursor.tree;;){if(tree==cursor.tree)return true;if(tree.children.length&&tree.positions[0]==0&&tree.children[0]instanceof Tree)tree=tree.children[0];else break;}}return false;}constructor(root,offset){this.offset=offset;this.done=false;this.cursor=root.cursor(IterMode.IncludeAnonymous|IterMode.IgnoreMounts);}};var FragmentCursor=class{hasNode(node){while(this.curFrag&&node.from>=this.curTo)this.nextFrag();return this.curFrag&&this.curFrag.from<=node.from&&this.curTo>=node.to&&this.inner.hasNode(node);}nextFrag(){var _a;this.fragI++;if(this.fragI==this.fragments.length){this.curFrag=this.inner=null;}else{let frag=this.curFrag=this.fragments[this.fragI];this.curTo=(_a=frag.tree.prop(stoppedInner))!==null&&_a!==void 0?_a:frag.to;this.inner=new StructureCursor(frag.tree,-frag.offset);}}findMounts(pos,parser){var _a;let result=[];if(this.inner){this.inner.cursor.moveTo(pos,1);for(let pos2=this.inner.cursor.node;pos2;pos2=pos2.parent){let mount=(_a=pos2.tree)===null||_a===void 0?void 0:_a.prop(NodeProp.mounted);if(mount&&mount.parser==parser){for(let i=this.fragI;i<this.fragments.length;i++){let frag=this.fragments[i];if(frag.from>=pos2.to)break;if(frag.tree==this.curFrag.tree)result.push({frag,pos:pos2.from-frag.offset,mount});}}}}return result;}constructor(fragments){var _a;this.fragments=fragments;this.curTo=0;this.fragI=0;if(fragments.length){let first=this.curFrag=fragments[0];this.curTo=(_a=first.tree.prop(stoppedInner))!==null&&_a!==void 0?_a:first.to;this.inner=new StructureCursor(first.tree,-first.offset);}else{this.curFrag=this.inner=null;}}};function punchRanges(outer,ranges){let copy=null,current=ranges;for(let i=1,j=0;i<outer.length;i++){let gapFrom=outer[i-1].to,gapTo=outer[i].from;for(;j<current.length;j++){let r=current[j];if(r.from>=gapTo)break;if(r.to<=gapFrom)continue;if(!copy)current=copy=ranges.slice();if(r.from<gapFrom){copy[j]=new Range(r.from,gapFrom);if(r.to>gapTo)copy.splice(j+1,0,new Range(gapTo,r.to));}else if(r.to>gapTo){copy[j--]=new Range(gapTo,r.to);}else{copy.splice(j--,1);}}}return current;}function findCoverChanges(a,b,from,to){let iA=0,iB=0,inA=false,inB=false,pos=-1e9;let result=[];for(;;){let nextA=iA==a.length?1e9:inA?a[iA].to:a[iA].from;let nextB=iB==b.length?1e9:inB?b[iB].to:b[iB].from;if(inA!=inB){let start=Math.max(pos,from),end=Math.min(nextA,nextB,to);if(start<end)result.push(new Range(start,end));}pos=Math.min(nextA,nextB);if(pos==1e9)break;if(nextA==pos){if(!inA)inA=true;else{inA=false;iA++;}}if(nextB==pos){if(!inB)inB=true;else{inB=false;iB++;}}}return result;}function enterFragments(mounts,ranges){let result=[];for(let{pos,mount,frag}of mounts){let startPos=pos+(mount.overlay?mount.overlay[0].from:0),endPos=startPos+mount.tree.length;let from=Math.max(frag.from,startPos),to=Math.min(frag.to,endPos);if(mount.overlay){let overlay=mount.overlay.map(r=>new Range(r.from+pos,r.to+pos));let changes=findCoverChanges(ranges,overlay,from,to);for(let i=0,pos2=from;;i++){let last=i==changes.length,end=last?to:changes[i].from;if(end>pos2)result.push(new TreeFragment(pos2,end,mount.tree,-startPos,frag.from>=pos2||frag.openStart,frag.to<=end||frag.openEnd));if(last)break;pos2=changes[i].to;}}else{result.push(new TreeFragment(from,to,mount.tree,-startPos,frag.from>=startPos||frag.openStart,frag.to<=endPos||frag.openEnd));}}return result;}export{DefaultBufferLength,IterMode,MountedTree,NodeProp,NodeSet,NodeType,NodeWeakMap,Parser,Tree,TreeBuffer,TreeCursor,TreeFragment,parseMixed,};\nexport const __FramerMetadata__ = {\"exports\":{\"TreeFragment\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeCursor\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IterMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Tree\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeWeakMap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DefaultBufferLength\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeBuffer\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeSet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MountedTree\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseMixed\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Parser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lezer_common.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/lr/dist/index.js\nimport{Parser,NodeProp,NodeSet,NodeType,DefaultBufferLength,Tree,IterMode}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/MGamyd2UebFXXyjBfB8y/lezer_common.js\";var Stack=class _Stack{/// @internal\ntoString(){return`[${this.stack.filter((_,i)=>i%3==0).concat(this.state)}]@${this.pos}${this.score?\"!\"+this.score:\"\"}`;}// Start an empty stack\n/// @internal\nstatic start(p,state,pos=0){let cx=p.parser.context;return new _Stack(p,[],state,pos,pos,0,[],0,cx?new StackContext(cx,cx.start):null,0,null);}/// The stack's current [context](#lr.ContextTracker) value, if\n/// any. Its type will depend on the context tracker's type\n/// parameter, or it will be `null` if there is no context\n/// tracker.\nget context(){return this.curContext?this.curContext.context:null;}// Push a state onto the stack, tracking its start position as well\n// as the buffer base at that point.\n/// @internal\npushState(state,start){this.stack.push(this.state,start,this.bufferBase+this.buffer.length);this.state=state;}// Apply a reduce action\n/// @internal\nreduce(action){var _a;let depth=action>>19,type=action&65535;let{parser}=this.p;let dPrec=parser.dynamicPrecedence(type);if(dPrec)this.score+=dPrec;if(depth==0){this.pushState(parser.getGoto(this.state,type,true),this.reducePos);if(type<parser.minRepeatTerm)this.storeNode(type,this.reducePos,this.reducePos,4,true);this.reduceContext(type,this.reducePos);return;}let base=this.stack.length-(depth-1)*3-(action&262144?6:0);let start=base?this.stack[base-2]:this.p.ranges[0].from,size=this.reducePos-start;if(size>=2e3&&!((_a=this.p.parser.nodeSet.types[type])===null||_a===void 0?void 0:_a.isAnonymous)){if(start==this.p.lastBigReductionStart){this.p.bigReductionCount++;this.p.lastBigReductionSize=size;}else if(this.p.lastBigReductionSize<size){this.p.bigReductionCount=1;this.p.lastBigReductionStart=start;this.p.lastBigReductionSize=size;}}let bufferBase=base?this.stack[base-1]:0,count=this.bufferBase+this.buffer.length-bufferBase;if(type<parser.minRepeatTerm||action&131072){let pos=parser.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(type,start,pos,count+4,true);}if(action&262144){this.state=this.stack[base];}else{let baseStateID=this.stack[base-3];this.state=parser.getGoto(baseStateID,type,true);}while(this.stack.length>base)this.stack.pop();this.reduceContext(type,start);}// Shift a value into the buffer\n/// @internal\nstoreNode(term,start,end,size=4,isReduce=false){if(term==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let cur=this,top=this.buffer.length;if(top==0&&cur.parent){top=cur.bufferBase-cur.parent.bufferBase;cur=cur.parent;}if(top>0&&cur.buffer[top-4]==0&&cur.buffer[top-1]>-1){if(start==end)return;if(cur.buffer[top-2]>=start){cur.buffer[top-2]=end;return;}}}if(!isReduce||this.pos==end){this.buffer.push(term,start,end,size);}else{let index=this.buffer.length;if(index>0&&this.buffer[index-4]!=0)while(index>0&&this.buffer[index-2]>end){this.buffer[index]=this.buffer[index-4];this.buffer[index+1]=this.buffer[index-3];this.buffer[index+2]=this.buffer[index-2];this.buffer[index+3]=this.buffer[index-1];index-=4;if(size>4)size-=4;}this.buffer[index]=term;this.buffer[index+1]=start;this.buffer[index+2]=end;this.buffer[index+3]=size;}}// Apply a shift action\n/// @internal\nshift(action,next,nextEnd){let start=this.pos;if(action&131072){this.pushState(action&65535,this.pos);}else if((action&262144)==0){let nextState=action,{parser}=this.p;if(nextEnd>this.pos||next<=parser.maxNode){this.pos=nextEnd;if(!parser.stateFlag(nextState,1))this.reducePos=nextEnd;}this.pushState(nextState,start);this.shiftContext(next,start);if(next<=parser.maxNode)this.buffer.push(next,start,nextEnd,4);}else{this.pos=nextEnd;this.shiftContext(next,start);if(next<=this.p.parser.maxNode)this.buffer.push(next,start,nextEnd,4);}}// Apply an action\n/// @internal\napply(action,next,nextEnd){if(action&65536)this.reduce(action);else this.shift(action,next,nextEnd);}// Add a prebuilt (reused) node into the buffer.\n/// @internal\nuseNode(value,next){let index=this.p.reused.length-1;if(index<0||this.p.reused[index]!=value){this.p.reused.push(value);index++;}let start=this.pos;this.reducePos=this.pos=start+value.length;this.pushState(next,start);this.buffer.push(index,start,this.reducePos,-1);if(this.curContext)this.updateContext(this.curContext.tracker.reuse(this.curContext.context,value,this,this.p.stream.reset(this.pos-value.length)));}// Split the stack. Due to the buffer sharing and the fact\n// that `this.stack` tends to stay quite shallow, this isn't very\n// expensive.\n/// @internal\nsplit(){let parent=this;let off=parent.buffer.length;while(off>0&&parent.buffer[off-2]>parent.reducePos)off-=4;let buffer=parent.buffer.slice(off),base=parent.bufferBase+off;while(parent&&base==parent.bufferBase)parent=parent.parent;return new _Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,buffer,base,this.curContext,this.lookAhead,parent);}// Try to recover from an error by 'deleting' (ignoring) one token.\n/// @internal\nrecoverByDelete(next,nextEnd){let isNode=next<=this.p.parser.maxNode;if(isNode)this.storeNode(next,this.pos,nextEnd,4);this.storeNode(0,this.pos,nextEnd,isNode?8:4);this.pos=this.reducePos=nextEnd;this.score-=190;}/// Check if the given term would be able to be shifted (optionally\n/// after some reductions) on this stack. This can be useful for\n/// external tokenizers that want to make sure they only provide a\n/// given token when it applies.\ncanShift(term){for(let sim=new SimulatedStack(this);;){let action=this.p.parser.stateSlot(sim.state,4)||this.p.parser.hasAction(sim.state,term);if(action==0)return false;if((action&65536)==0)return true;sim.reduce(action);}}// Apply up to Recover.MaxNext recovery actions that conceptually\n// inserts some missing token or rule.\n/// @internal\nrecoverByInsert(next){if(this.stack.length>=300)return[];let nextStates=this.p.parser.nextStates(this.state);if(nextStates.length>4<<1||this.stack.length>=120){let best=[];for(let i=0,s;i<nextStates.length;i+=2){if((s=nextStates[i+1])!=this.state&&this.p.parser.hasAction(s,next))best.push(nextStates[i],s);}if(this.stack.length<120)for(let i=0;best.length<4<<1&&i<nextStates.length;i+=2){let s=nextStates[i+1];if(!best.some((v,i2)=>i2&1&&v==s))best.push(nextStates[i],s);}nextStates=best;}let result=[];for(let i=0;i<nextStates.length&&result.length<4;i+=2){let s=nextStates[i+1];if(s==this.state)continue;let stack=this.split();stack.pushState(s,this.pos);stack.storeNode(0,stack.pos,stack.pos,4,true);stack.shiftContext(nextStates[i],this.pos);stack.score-=200;result.push(stack);}return result;}// Force a reduce, if possible. Return false if that can't\n// be done.\n/// @internal\nforceReduce(){let{parser}=this.p;let reduce=parser.stateSlot(this.state,5);if((reduce&65536)==0)return false;if(!parser.validAction(this.state,reduce)){let depth=reduce>>19,term=reduce&65535;let target=this.stack.length-depth*3;if(target<0||parser.getGoto(this.stack[target],term,false)<0){let backup=this.findForcedReduction();if(backup==null)return false;reduce=backup;}this.storeNode(0,this.reducePos,this.reducePos,4,true);this.score-=100;}this.reducePos=this.pos;this.reduce(reduce);return true;}/// Try to scan through the automaton to find some kind of reduction\n/// that can be applied. Used when the regular ForcedReduce field\n/// isn't a valid action. @internal\nfindForcedReduction(){let{parser}=this.p,seen=[];let explore=(state,depth)=>{if(seen.includes(state))return;seen.push(state);return parser.allActions(state,action=>{if(action&(262144|131072));else if(action&65536){let rDepth=(action>>19)-depth;if(rDepth>1){let term=action&65535,target=this.stack.length-rDepth*3;if(target>=0&&parser.getGoto(this.stack[target],term,false)>=0)return rDepth<<19|65536|term;}}else{let found=explore(action,depth+1);if(found!=null)return found;}});};return explore(this.state,0);}/// @internal\nforceAll(){while(!this.p.parser.stateFlag(this.state,2)){if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,true);break;}}return this;}/// Check whether this state has no further actions (assumed to be a direct descendant of the\n/// top state, since any other states must be able to continue\n/// somehow). @internal\nget deadEnd(){if(this.stack.length!=3)return false;let{parser}=this.p;return parser.data[parser.stateSlot(this.state,1)]==65535&&!parser.stateSlot(this.state,4);}/// Restart the stack (put it back in its start state). Only safe\n/// when this.stack.length == 3 (state is directly below the top\n/// state). @internal\nrestart(){this.state=this.stack[0];this.stack.length=0;}/// @internal\nsameState(other){if(this.state!=other.state||this.stack.length!=other.stack.length)return false;for(let i=0;i<this.stack.length;i+=3)if(this.stack[i]!=other.stack[i])return false;return true;}/// Get the parser used by this stack.\nget parser(){return this.p.parser;}/// Test whether a given dialect (by numeric ID, as exported from\n/// the terms file) is enabled.\ndialectEnabled(dialectID){return this.p.parser.dialect.flags[dialectID];}shiftContext(term,start){if(this.curContext)this.updateContext(this.curContext.tracker.shift(this.curContext.context,term,this,this.p.stream.reset(start)));}reduceContext(term,start){if(this.curContext)this.updateContext(this.curContext.tracker.reduce(this.curContext.context,term,this,this.p.stream.reset(start)));}/// @internal\nemitContext(){let last=this.buffer.length-1;if(last<0||this.buffer[last]!=-3)this.buffer.push(this.curContext.hash,this.pos,this.pos,-3);}/// @internal\nemitLookAhead(){let last=this.buffer.length-1;if(last<0||this.buffer[last]!=-4)this.buffer.push(this.lookAhead,this.pos,this.pos,-4);}updateContext(context){if(context!=this.curContext.context){let newCx=new StackContext(this.curContext.tracker,context);if(newCx.hash!=this.curContext.hash)this.emitContext();this.curContext=newCx;}}/// @internal\nsetLookAhead(lookAhead){if(lookAhead>this.lookAhead){this.emitLookAhead();this.lookAhead=lookAhead;}}/// @internal\nclose(){if(this.curContext&&this.curContext.tracker.strict)this.emitContext();if(this.lookAhead>0)this.emitLookAhead();}/// @internal\nconstructor(p,stack,state,reducePos,pos,score,buffer,bufferBase,curContext,lookAhead=0,parent){this.p=p;this.stack=stack;this.state=state;this.reducePos=reducePos;this.pos=pos;this.score=score;this.buffer=buffer;this.bufferBase=bufferBase;this.curContext=curContext;this.lookAhead=lookAhead;this.parent=parent;}};var StackContext=class{constructor(tracker,context){this.tracker=tracker;this.context=context;this.hash=tracker.strict?tracker.hash(context):0;}};var Recover;(function(Recover2){Recover2[Recover2[\"Insert\"]=200]=\"Insert\";Recover2[Recover2[\"Delete\"]=190]=\"Delete\";Recover2[Recover2[\"Reduce\"]=100]=\"Reduce\";Recover2[Recover2[\"MaxNext\"]=4]=\"MaxNext\";Recover2[Recover2[\"MaxInsertStackDepth\"]=300]=\"MaxInsertStackDepth\";Recover2[Recover2[\"DampenInsertStackDepth\"]=120]=\"DampenInsertStackDepth\";Recover2[Recover2[\"MinBigReduction\"]=2e3]=\"MinBigReduction\";})(Recover||(Recover={}));var SimulatedStack=class{reduce(action){let term=action&65535,depth=action>>19;if(depth==0){if(this.stack==this.start.stack)this.stack=this.stack.slice();this.stack.push(this.state,0,0);this.base+=3;}else{this.base-=(depth-1)*3;}let goto=this.start.p.parser.getGoto(this.stack[this.base-3],term,true);this.state=goto;}constructor(start){this.start=start;this.state=start.state;this.stack=start.stack;this.base=this.stack.length;}};var StackBufferCursor=class _StackBufferCursor{static create(stack,pos=stack.bufferBase+stack.buffer.length){return new _StackBufferCursor(stack,pos,pos-stack.bufferBase);}maybeNext(){let next=this.stack.parent;if(next!=null){this.index=this.stack.bufferBase-next.bufferBase;this.stack=next;this.buffer=next.buffer;}}get id(){return this.buffer[this.index-4];}get start(){return this.buffer[this.index-3];}get end(){return this.buffer[this.index-2];}get size(){return this.buffer[this.index-1];}next(){this.index-=4;this.pos-=4;if(this.index==0)this.maybeNext();}fork(){return new _StackBufferCursor(this.stack,this.pos,this.index);}constructor(stack,pos,index){this.stack=stack;this.pos=pos;this.index=index;this.buffer=stack.buffer;if(this.index==0)this.maybeNext();}};function decodeArray(input,Type=Uint16Array){if(typeof input!=\"string\")return input;let array=null;for(let pos=0,out=0;pos<input.length;){let value=0;for(;;){let next=input.charCodeAt(pos++),stop=false;if(next==126){value=65535;break;}if(next>=92)next--;if(next>=34)next--;let digit=next-32;if(digit>=46){digit-=46;stop=true;}value+=digit;if(stop)break;value*=46;}if(array)array[out++]=value;else array=new Type(value);}return array;}var CachedToken=class{constructor(){this.start=-1;this.value=-1;this.end=-1;this.extended=-1;this.lookAhead=0;this.mask=0;this.context=0;}};var nullToken=new CachedToken;var InputStream=class{/// @internal\nresolveOffset(offset,assoc){let range=this.range,index=this.rangeIndex;let pos=this.pos+offset;while(pos<range.from){if(!index)return null;let next=this.ranges[--index];pos-=range.from-next.to;range=next;}while(assoc<0?pos>range.to:pos>=range.to){if(index==this.ranges.length-1)return null;let next=this.ranges[++index];pos+=next.from-range.to;range=next;}return pos;}/// @internal\nclipPos(pos){if(pos>=this.range.from&&pos<this.range.to)return pos;for(let range of this.ranges)if(range.to>pos)return Math.max(pos,range.from);return this.end;}/// Look at a code unit near the stream position. `.peek(0)` equals\n/// `.next`, `.peek(-1)` gives you the previous character, and so\n/// on.\n///\n/// Note that looking around during tokenizing creates dependencies\n/// on potentially far-away content, which may reduce the\n/// effectiveness incremental parsing—when looking forward—or even\n/// cause invalid reparses when looking backward more than 25 code\n/// units, since the library does not track lookbehind.\npeek(offset){let idx=this.chunkOff+offset,pos,result;if(idx>=0&&idx<this.chunk.length){pos=this.pos+offset;result=this.chunk.charCodeAt(idx);}else{let resolved=this.resolveOffset(offset,1);if(resolved==null)return-1;pos=resolved;if(pos>=this.chunk2Pos&&pos<this.chunk2Pos+this.chunk2.length){result=this.chunk2.charCodeAt(pos-this.chunk2Pos);}else{let i=this.rangeIndex,range=this.range;while(range.to<=pos)range=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=pos);if(pos+this.chunk2.length>range.to)this.chunk2=this.chunk2.slice(0,range.to-pos);result=this.chunk2.charCodeAt(0);}}if(pos>=this.token.lookAhead)this.token.lookAhead=pos+1;return result;}/// Accept a token. By default, the end of the token is set to the\n/// current stream position, but you can pass an offset (relative to\n/// the stream position) to change that.\nacceptToken(token,endOffset=0){let end=endOffset?this.resolveOffset(endOffset,-1):this.pos;if(end==null||end<this.token.start)throw new RangeError(\"Token end out of bounds\");this.token.value=token;this.token.end=end;}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk,chunkPos}=this;this.chunk=this.chunk2;this.chunkPos=this.chunk2Pos;this.chunk2=chunk;this.chunk2Pos=chunkPos;this.chunkOff=this.pos-this.chunkPos;}else{this.chunk2=this.chunk;this.chunk2Pos=this.chunkPos;let nextChunk=this.input.chunk(this.pos);let end=this.pos+nextChunk.length;this.chunk=end>this.range.to?nextChunk.slice(0,this.range.to-this.pos):nextChunk;this.chunkPos=this.pos;this.chunkOff=0;}}readNext(){if(this.chunkOff>=this.chunk.length){this.getChunk();if(this.chunkOff==this.chunk.length)return this.next=-1;}return this.next=this.chunk.charCodeAt(this.chunkOff);}/// Move the stream forward N (defaults to 1) code units. Returns\n/// the new value of [`next`](#lr.InputStream.next).\nadvance(n=1){this.chunkOff+=n;while(this.pos+n>=this.range.to){if(this.rangeIndex==this.ranges.length-1)return this.setDone();n-=this.range.to-this.pos;this.range=this.ranges[++this.rangeIndex];this.pos=this.range.from;}this.pos+=n;if(this.pos>=this.token.lookAhead)this.token.lookAhead=this.pos+1;return this.readNext();}setDone(){this.pos=this.chunkPos=this.end;this.range=this.ranges[this.rangeIndex=this.ranges.length-1];this.chunk=\"\";return this.next=-1;}/// @internal\nreset(pos,token){if(token){this.token=token;token.start=pos;token.lookAhead=pos+1;token.value=token.extended=-1;}else{this.token=nullToken;}if(this.pos!=pos){this.pos=pos;if(pos==this.end){this.setDone();return this;}while(pos<this.range.from)this.range=this.ranges[--this.rangeIndex];while(pos>=this.range.to)this.range=this.ranges[++this.rangeIndex];if(pos>=this.chunkPos&&pos<this.chunkPos+this.chunk.length){this.chunkOff=pos-this.chunkPos;}else{this.chunk=\"\";this.chunkOff=0;}this.readNext();}return this;}/// @internal\nread(from,to){if(from>=this.chunkPos&&to<=this.chunkPos+this.chunk.length)return this.chunk.slice(from-this.chunkPos,to-this.chunkPos);if(from>=this.chunk2Pos&&to<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(from-this.chunk2Pos,to-this.chunk2Pos);if(from>=this.range.from&&to<=this.range.to)return this.input.read(from,to);let result=\"\";for(let r of this.ranges){if(r.from>=to)break;if(r.to>from)result+=this.input.read(Math.max(r.from,from),Math.min(r.to,to));}return result;}/// @internal\nconstructor(input,ranges){this.input=input;this.ranges=ranges;this.chunk=\"\";this.chunkOff=0;this.chunk2=\"\";this.chunk2Pos=0;this.next=-1;this.token=nullToken;this.rangeIndex=0;this.pos=this.chunkPos=ranges[0].from;this.range=ranges[0];this.end=ranges[ranges.length-1].to;this.readNext();}};var TokenGroup=class{token(input,stack){let{parser}=stack.p;readToken(this.data,input,stack,this.id,parser.data,parser.tokenPrecTable);}constructor(data,id2){this.data=data;this.id=id2;}};TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=false;var LocalTokenGroup=class{token(input,stack){let start=input.pos,skipped=0;for(;;){readToken(this.data,input,stack,0,this.data,this.precTable);if(input.token.value>-1)break;if(this.elseToken==null)return;if(input.next<0)break;input.advance();input.reset(input.pos,input.token);skipped++;}if(skipped){input.reset(start,input.token);input.acceptToken(this.elseToken,skipped);}}constructor(data,precTable,elseToken){this.precTable=precTable;this.elseToken=elseToken;this.data=typeof data==\"string\"?decodeArray(data):data;}};LocalTokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=false;var ExternalTokenizer=class{/// Create a tokenizer. The first argument is the function that,\n/// given an input stream, scans for the types of tokens it\n/// recognizes at the stream's position, and calls\n/// [`acceptToken`](#lr.InputStream.acceptToken) when it finds\n/// one.\nconstructor(token,options={}){this.token=token;this.contextual=!!options.contextual;this.fallback=!!options.fallback;this.extend=!!options.extend;}};function readToken(data,input,stack,group,precTable,precOffset){let state=0,groupMask=1<<group,{dialect}=stack.p.parser;scan:for(;;){if((groupMask&data[state])==0)break;let accEnd=data[state+1];for(let i=state+3;i<accEnd;i+=2)if((data[i+1]&groupMask)>0){let term=data[i];if(dialect.allows(term)&&(input.token.value==-1||input.token.value==term||overrides(term,input.token.value,precTable,precOffset))){input.acceptToken(term);break;}}let next=input.next,low=0,high=data[state+2];if(input.next<0&&high>low&&data[accEnd+high*3-3]==65535&&data[accEnd+high*3-3]==65535){state=data[accEnd+high*3-1];continue scan;}for(;low<high;){let mid=low+high>>1;let index=accEnd+mid+(mid<<1);let from=data[index],to=data[index+1]||65536;if(next<from)high=mid;else if(next>=to)low=mid+1;else{state=data[index+2];input.advance();continue scan;}}break;}}function findOffset(data,start,term){for(let i=start,next;(next=data[i])!=65535;i++)if(next==term)return i-start;return-1;}function overrides(token,prev,tableData,tableOffset){let iPrev=findOffset(tableData,tableOffset,prev);return iPrev<0||findOffset(tableData,tableOffset,token)<iPrev;}var verbose=typeof process!=\"undefined\"&&process.env&&/\\bparse\\b/.test(process.env.LOG);var stackIDs=null;var Safety;(function(Safety2){Safety2[Safety2[\"Margin\"]=25]=\"Margin\";})(Safety||(Safety={}));function cutAt(tree,pos,side){let cursor=tree.cursor(IterMode.IncludeAnonymous);cursor.moveTo(pos);for(;;){if(!(side<0?cursor.childBefore(pos):cursor.childAfter(pos)))for(;;){if((side<0?cursor.to<pos:cursor.from>pos)&&!cursor.type.isError)return side<0?Math.max(0,Math.min(cursor.to-1,pos-25)):Math.min(tree.length,Math.max(cursor.from+1,pos+25));if(side<0?cursor.prevSibling():cursor.nextSibling())break;if(!cursor.parent())return side<0?0:tree.length;}}}var FragmentCursor=class{nextFragment(){let fr=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(fr){this.safeFrom=fr.openStart?cutAt(fr.tree,fr.from+fr.offset,1)-fr.offset:fr.from;this.safeTo=fr.openEnd?cutAt(fr.tree,fr.to+fr.offset,-1)-fr.offset:fr.to;while(this.trees.length){this.trees.pop();this.start.pop();this.index.pop();}this.trees.push(fr.tree);this.start.push(-fr.offset);this.index.push(0);this.nextStart=this.safeFrom;}else{this.nextStart=1e9;}}// `pos` must be >= any previously given `pos` for this cursor\nnodeAt(pos){if(pos<this.nextStart)return null;while(this.fragment&&this.safeTo<=pos)this.nextFragment();if(!this.fragment)return null;for(;;){let last=this.trees.length-1;if(last<0){this.nextFragment();return null;}let top=this.trees[last],index=this.index[last];if(index==top.children.length){this.trees.pop();this.start.pop();this.index.pop();continue;}let next=top.children[index];let start=this.start[last]+top.positions[index];if(start>pos){this.nextStart=start;return null;}if(next instanceof Tree){if(start==pos){if(start<this.safeFrom)return null;let end=start+next.length;if(end<=this.safeTo){let lookAhead=next.prop(NodeProp.lookAhead);if(!lookAhead||end+lookAhead<this.fragment.to)return next;}}this.index[last]++;if(start+next.length>=Math.max(this.safeFrom,pos)){this.trees.push(next);this.start.push(start);this.index.push(0);}}else{this.index[last]++;this.nextStart=start+next.length;}}}constructor(fragments,nodeSet){this.fragments=fragments;this.nodeSet=nodeSet;this.i=0;this.fragment=null;this.safeFrom=-1;this.safeTo=-1;this.trees=[];this.start=[];this.index=[];this.nextFragment();}};var TokenCache=class{getActions(stack){let actionIndex=0;let main=null;let{parser}=stack.p,{tokenizers}=parser;let mask=parser.stateSlot(stack.state,3);let context=stack.curContext?stack.curContext.hash:0;let lookAhead=0;for(let i=0;i<tokenizers.length;i++){if((1<<i&mask)==0)continue;let tokenizer=tokenizers[i],token=this.tokens[i];if(main&&!tokenizer.fallback)continue;if(tokenizer.contextual||token.start!=stack.pos||token.mask!=mask||token.context!=context){this.updateCachedToken(token,tokenizer,stack);token.mask=mask;token.context=context;}if(token.lookAhead>token.end+25)lookAhead=Math.max(token.lookAhead,lookAhead);if(token.value!=0){let startIndex=actionIndex;if(token.extended>-1)actionIndex=this.addActions(stack,token.extended,token.end,actionIndex);actionIndex=this.addActions(stack,token.value,token.end,actionIndex);if(!tokenizer.extend){main=token;if(actionIndex>startIndex)break;}}}while(this.actions.length>actionIndex)this.actions.pop();if(lookAhead)stack.setLookAhead(lookAhead);if(!main&&stack.pos==this.stream.end){main=new CachedToken;main.value=stack.p.parser.eofTerm;main.start=main.end=stack.pos;actionIndex=this.addActions(stack,main.value,main.end,actionIndex);}this.mainToken=main;return this.actions;}getMainToken(stack){if(this.mainToken)return this.mainToken;let main=new CachedToken,{pos,p}=stack;main.start=pos;main.end=Math.min(pos+1,p.stream.end);main.value=pos==p.stream.end?p.parser.eofTerm:0;return main;}updateCachedToken(token,tokenizer,stack){let start=this.stream.clipPos(stack.pos);tokenizer.token(this.stream.reset(start,token),stack);if(token.value>-1){let{parser}=stack.p;for(let i=0;i<parser.specialized.length;i++)if(parser.specialized[i]==token.value){let result=parser.specializers[i](this.stream.read(token.start,token.end),stack);if(result>=0&&stack.p.parser.dialect.allows(result>>1)){if((result&1)==0)token.value=result>>1;else token.extended=result>>1;break;}}}else{token.value=0;token.end=this.stream.clipPos(start+1);}}putAction(action,token,end,index){for(let i=0;i<index;i+=3)if(this.actions[i]==action)return index;this.actions[index++]=action;this.actions[index++]=token;this.actions[index++]=end;return index;}addActions(stack,token,end,index){let{state}=stack,{parser}=stack.p,{data}=parser;for(let set=0;set<2;set++){for(let i=parser.stateSlot(state,set?2:1);;i+=3){if(data[i]==65535){if(data[i+1]==1){i=pair(data,i+2);}else{if(index==0&&data[i+1]==2)index=this.putAction(pair(data,i+2),token,end,index);break;}}if(data[i]==token)index=this.putAction(pair(data,i+1),token,end,index);}}return index;}constructor(parser,stream){this.stream=stream;this.tokens=[];this.mainToken=null;this.actions=[];this.tokens=parser.tokenizers.map(_=>new CachedToken);}};var Rec;(function(Rec2){Rec2[Rec2[\"Distance\"]=5]=\"Distance\";Rec2[Rec2[\"MaxRemainingPerStep\"]=3]=\"MaxRemainingPerStep\";Rec2[Rec2[\"MinBufferLengthPrune\"]=500]=\"MinBufferLengthPrune\";Rec2[Rec2[\"ForceReduceLimit\"]=10]=\"ForceReduceLimit\";Rec2[Rec2[\"CutDepth\"]=15e3]=\"CutDepth\";Rec2[Rec2[\"CutTo\"]=9e3]=\"CutTo\";Rec2[Rec2[\"MaxLeftAssociativeReductionCount\"]=300]=\"MaxLeftAssociativeReductionCount\";Rec2[Rec2[\"MaxStackCount\"]=12]=\"MaxStackCount\";})(Rec||(Rec={}));var Parse=class{get parsedPos(){return this.minStackPos;}// Move the parser forward. This will process all parse stacks at\n// `this.pos` and try to advance them to a further position. If no\n// stack for such a position is found, it'll start error-recovery.\n//\n// When the parse is finished, this will return a syntax tree. When\n// not, it returns `null`.\nadvance(){let stacks=this.stacks,pos=this.minStackPos;let newStacks=this.stacks=[];let stopped,stoppedTokens;if(this.bigReductionCount>300&&stacks.length==1){let[s]=stacks;while(s.forceReduce()&&s.stack.length&&s.stack[s.stack.length-2]>=this.lastBigReductionStart){}this.bigReductionCount=this.lastBigReductionSize=0;}for(let i=0;i<stacks.length;i++){let stack=stacks[i];for(;;){this.tokens.mainToken=null;if(stack.pos>pos){newStacks.push(stack);}else if(this.advanceStack(stack,newStacks,stacks)){continue;}else{if(!stopped){stopped=[];stoppedTokens=[];}stopped.push(stack);let tok=this.tokens.getMainToken(stack);stoppedTokens.push(tok.value,tok.end);}break;}}if(!newStacks.length){let finished=stopped&&findFinished(stopped);if(finished)return this.stackToTree(finished);if(this.parser.strict){if(verbose&&stopped)console.log(\"Stuck with token \"+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):\"none\"));throw new SyntaxError(\"No parse at \"+pos);}if(!this.recovering)this.recovering=5;}if(this.recovering&&stopped){let finished=this.stoppedAt!=null&&stopped[0].pos>this.stoppedAt?stopped[0]:this.runRecovery(stopped,stoppedTokens,newStacks);if(finished)return this.stackToTree(finished.forceAll());}if(this.recovering){let maxRemaining=this.recovering==1?1:this.recovering*3;if(newStacks.length>maxRemaining){newStacks.sort((a,b)=>b.score-a.score);while(newStacks.length>maxRemaining)newStacks.pop();}if(newStacks.some(s=>s.reducePos>pos))this.recovering--;}else if(newStacks.length>1){outer:for(let i=0;i<newStacks.length-1;i++){let stack=newStacks[i];for(let j=i+1;j<newStacks.length;j++){let other=newStacks[j];if(stack.sameState(other)||stack.buffer.length>500&&other.buffer.length>500){if((stack.score-other.score||stack.buffer.length-other.buffer.length)>0){newStacks.splice(j--,1);}else{newStacks.splice(i--,1);continue outer;}}}}if(newStacks.length>12)newStacks.splice(12,newStacks.length-12);}this.minStackPos=newStacks[0].pos;for(let i=1;i<newStacks.length;i++)if(newStacks[i].pos<this.minStackPos)this.minStackPos=newStacks[i].pos;return null;}stopAt(pos){if(this.stoppedAt!=null&&this.stoppedAt<pos)throw new RangeError(\"Can't move stoppedAt forward\");this.stoppedAt=pos;}// Returns an updated version of the given stack, or null if the\n// stack can't advance normally. When `split` and `stacks` are\n// given, stacks split off by ambiguous operations will be pushed to\n// `split`, or added to `stacks` if they move `pos` forward.\nadvanceStack(stack,stacks,split){let start=stack.pos,{parser}=this;let base=verbose?this.stackID(stack)+\" -> \":\"\";if(this.stoppedAt!=null&&start>this.stoppedAt)return stack.forceReduce()?stack:null;if(this.fragments){let strictCx=stack.curContext&&stack.curContext.tracker.strict,cxHash=strictCx?stack.curContext.hash:0;for(let cached=this.fragments.nodeAt(start);cached;){let match=this.parser.nodeSet.types[cached.type.id]==cached.type?parser.getGoto(stack.state,cached.type.id):-1;if(match>-1&&cached.length&&(!strictCx||(cached.prop(NodeProp.contextHash)||0)==cxHash)){stack.useNode(cached,match);if(verbose)console.log(base+this.stackID(stack)+` (via reuse of ${parser.getName(cached.type.id)})`);return true;}if(!(cached instanceof Tree)||cached.children.length==0||cached.positions[0]>0)break;let inner=cached.children[0];if(inner instanceof Tree&&cached.positions[0]==0)cached=inner;else break;}}let defaultReduce=parser.stateSlot(stack.state,4);if(defaultReduce>0){stack.reduce(defaultReduce);if(verbose)console.log(base+this.stackID(stack)+` (via always-reduce ${parser.getName(defaultReduce&65535)})`);return true;}if(stack.stack.length>=15e3){while(stack.stack.length>9e3&&stack.forceReduce()){}}let actions=this.tokens.getActions(stack);for(let i=0;i<actions.length;){let action=actions[i++],term=actions[i++],end=actions[i++];let last=i==actions.length||!split;let localStack=last?stack:stack.split();localStack.apply(action,term,end);if(verbose)console.log(base+this.stackID(localStack)+` (via ${(action&65536)==0?\"shift\":`reduce of ${parser.getName(action&65535)}`} for ${parser.getName(term)} @ ${start}${localStack==stack?\"\":\", split\"})`);if(last)return true;else if(localStack.pos>start)stacks.push(localStack);else split.push(localStack);}return false;}// Advance a given stack forward as far as it will go. Returns the\n// (possibly updated) stack if it got stuck, or null if it moved\n// forward and was given to `pushStackDedup`.\nadvanceFully(stack,newStacks){let pos=stack.pos;for(;;){if(!this.advanceStack(stack,null,null))return false;if(stack.pos>pos){pushStackDedup(stack,newStacks);return true;}}}runRecovery(stacks,tokens,newStacks){let finished=null,restarted=false;for(let i=0;i<stacks.length;i++){let stack=stacks[i],token=tokens[i<<1],tokenEnd=tokens[(i<<1)+1];let base=verbose?this.stackID(stack)+\" -> \":\"\";if(stack.deadEnd){if(restarted)continue;restarted=true;stack.restart();if(verbose)console.log(base+this.stackID(stack)+\" (restarted)\");let done=this.advanceFully(stack,newStacks);if(done)continue;}let force=stack.split(),forceBase=base;for(let j=0;force.forceReduce()&&j<10;j++){if(verbose)console.log(forceBase+this.stackID(force)+\" (via force-reduce)\");let done=this.advanceFully(force,newStacks);if(done)break;if(verbose)forceBase=this.stackID(force)+\" -> \";}for(let insert of stack.recoverByInsert(token)){if(verbose)console.log(base+this.stackID(insert)+\" (via recover-insert)\");this.advanceFully(insert,newStacks);}if(this.stream.end>stack.pos){if(tokenEnd==stack.pos){tokenEnd++;token=0;}stack.recoverByDelete(token,tokenEnd);if(verbose)console.log(base+this.stackID(stack)+` (via recover-delete ${this.parser.getName(token)})`);pushStackDedup(stack,newStacks);}else if(!finished||finished.score<stack.score){finished=stack;}}return finished;}// Convert the stack's buffer to a syntax tree.\nstackToTree(stack){stack.close();return Tree.build({buffer:StackBufferCursor.create(stack),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:stack.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm});}stackID(stack){let id2=(stackIDs||(stackIDs=/* @__PURE__ */new WeakMap)).get(stack);if(!id2)stackIDs.set(stack,id2=String.fromCodePoint(this.nextStackID++));return id2+stack;}constructor(parser,input,fragments,ranges){this.parser=parser;this.input=input;this.ranges=ranges;this.recovering=0;this.nextStackID=9812;this.minStackPos=0;this.reused=[];this.stoppedAt=null;this.lastBigReductionStart=-1;this.lastBigReductionSize=0;this.bigReductionCount=0;this.stream=new InputStream(input,ranges);this.tokens=new TokenCache(parser,this.stream);this.topTerm=parser.top[1];let{from}=ranges[0];this.stacks=[Stack.start(this,parser.top[0],from)];this.fragments=fragments.length&&this.stream.end-from>parser.bufferLength*4?new FragmentCursor(fragments,parser.nodeSet):null;}};function pushStackDedup(stack,newStacks){for(let i=0;i<newStacks.length;i++){let other=newStacks[i];if(other.pos==stack.pos&&other.sameState(stack)){if(newStacks[i].score<stack.score)newStacks[i]=stack;return;}}newStacks.push(stack);}var Dialect=class{allows(term){return!this.disabled||this.disabled[term]==0;}constructor(source,flags,disabled){this.source=source;this.flags=flags;this.disabled=disabled;}};var id=x=>x;var ContextTracker=class{/// Define a context tracker.\nconstructor(spec){this.start=spec.start;this.shift=spec.shift||id;this.reduce=spec.reduce||id;this.reuse=spec.reuse||id;this.hash=spec.hash||(()=>0);this.strict=spec.strict!==false;}};var LRParser=class _LRParser extends Parser{createParse(input,fragments,ranges){let parse=new Parse(this,input,fragments,ranges);for(let w of this.wrappers)parse=w(parse,input,fragments,ranges);return parse;}/// Get a goto table entry @internal\ngetGoto(state,term,loose=false){let table=this.goto;if(term>=table[0])return-1;for(let pos=table[term+1];;){let groupTag=table[pos++],last=groupTag&1;let target=table[pos++];if(last&&loose)return target;for(let end=pos+(groupTag>>1);pos<end;pos++)if(table[pos]==state)return target;if(last)return-1;}}/// Check if this state has an action for a given terminal @internal\nhasAction(state,terminal){let data=this.data;for(let set=0;set<2;set++){for(let i=this.stateSlot(state,set?2:1),next;;i+=3){if((next=data[i])==65535){if(data[i+1]==1)next=data[i=pair(data,i+2)];else if(data[i+1]==2)return pair(data,i+2);else break;}if(next==terminal||next==0)return pair(data,i+1);}}return 0;}/// @internal\nstateSlot(state,slot){return this.states[state*6+slot];}/// @internal\nstateFlag(state,flag){return(this.stateSlot(state,0)&flag)>0;}/// @internal\nvalidAction(state,action){return!!this.allActions(state,a=>a==action?true:null);}/// @internal\nallActions(state,action){let deflt=this.stateSlot(state,4);let result=deflt?action(deflt):void 0;for(let i=this.stateSlot(state,1);result==null;i+=3){if(this.data[i]==65535){if(this.data[i+1]==1)i=pair(this.data,i+2);else break;}result=action(pair(this.data,i+1));}return result;}/// Get the states that can follow this one through shift actions or\n/// goto jumps. @internal\nnextStates(state){let result=[];for(let i=this.stateSlot(state,1);;i+=3){if(this.data[i]==65535){if(this.data[i+1]==1)i=pair(this.data,i+2);else break;}if((this.data[i+2]&65536>>16)==0){let value=this.data[i+1];if(!result.some((v,i2)=>i2&1&&v==value))result.push(this.data[i],value);}}return result;}/// Configure the parser. Returns a new parser instance that has the\n/// given settings modified. Settings not provided in `config` are\n/// kept from the original parser.\nconfigure(config){let copy=Object.assign(Object.create(_LRParser.prototype),this);if(config.props)copy.nodeSet=this.nodeSet.extend(...config.props);if(config.top){let info=this.topRules[config.top];if(!info)throw new RangeError(`Invalid top rule name ${config.top}`);copy.top=info;}if(config.tokenizers)copy.tokenizers=this.tokenizers.map(t=>{let found=config.tokenizers.find(r=>r.from==t);return found?found.to:t;});if(config.specializers){copy.specializers=this.specializers.slice();copy.specializerSpecs=this.specializerSpecs.map((s,i)=>{let found=config.specializers.find(r=>r.from==s.external);if(!found)return s;let spec=Object.assign(Object.assign({},s),{external:found.to});copy.specializers[i]=getSpecializer(spec);return spec;});}if(config.contextTracker)copy.context=config.contextTracker;if(config.dialect)copy.dialect=this.parseDialect(config.dialect);if(config.strict!=null)copy.strict=config.strict;if(config.wrap)copy.wrappers=copy.wrappers.concat(config.wrap);if(config.bufferLength!=null)copy.bufferLength=config.bufferLength;return copy;}/// Tells you whether any [parse wrappers](#lr.ParserConfig.wrap)\n/// are registered for this parser.\nhasWrappers(){return this.wrappers.length>0;}/// Returns the name associated with a given term. This will only\n/// work for all terms when the parser was generated with the\n/// `--names` option. By default, only the names of tagged terms are\n/// stored.\ngetName(term){return this.termNames?this.termNames[term]:String(term<=this.maxNode&&this.nodeSet.types[term].name||term);}/// The eof term id is always allocated directly after the node\n/// types. @internal\nget eofTerm(){return this.maxNode+1;}/// The type of top node produced by the parser.\nget topNode(){return this.nodeSet.types[this.top[1]];}/// @internal\ndynamicPrecedence(term){let prec=this.dynamicPrecedences;return prec==null?0:prec[term]||0;}/// @internal\nparseDialect(dialect){let values=Object.keys(this.dialects),flags=values.map(()=>false);if(dialect)for(let part of dialect.split(\" \")){let id2=values.indexOf(part);if(id2>=0)flags[id2]=true;}let disabled=null;for(let i=0;i<values.length;i++)if(!flags[i]){for(let j=this.dialects[values[i]],id2;(id2=this.data[j++])!=65535;)(disabled||(disabled=new Uint8Array(this.maxTerm+1)))[id2]=1;}return new Dialect(dialect,flags,disabled);}/// Used by the output of the parser generator. Not available to\n/// user code. @hide\nstatic deserialize(spec){return new _LRParser(spec);}/// @internal\nconstructor(spec){super();this.wrappers=[];if(spec.version!=14)throw new RangeError(`Parser version (${spec.version}) doesn't match runtime version (${14})`);let nodeNames=spec.nodeNames.split(\" \");this.minRepeatTerm=nodeNames.length;for(let i=0;i<spec.repeatNodeCount;i++)nodeNames.push(\"\");let topTerms=Object.keys(spec.topRules).map(r=>spec.topRules[r][1]);let nodeProps=[];for(let i=0;i<nodeNames.length;i++)nodeProps.push([]);function setProp(nodeID,prop,value){nodeProps[nodeID].push([prop,prop.deserialize(String(value))]);}if(spec.nodeProps)for(let propSpec of spec.nodeProps){let prop=propSpec[0];if(typeof prop==\"string\")prop=NodeProp[prop];for(let i=1;i<propSpec.length;){let next=propSpec[i++];if(next>=0){setProp(next,prop,propSpec[i++]);}else{let value=propSpec[i+-next];for(let j=-next;j>0;j--)setProp(propSpec[i++],prop,value);i++;}}}this.nodeSet=new NodeSet(nodeNames.map((name,i)=>NodeType.define({name:i>=this.minRepeatTerm?void 0:name,id:i,props:nodeProps[i],top:topTerms.indexOf(i)>-1,error:i==0,skipped:spec.skippedNodes&&spec.skippedNodes.indexOf(i)>-1})));if(spec.propSources)this.nodeSet=this.nodeSet.extend(...spec.propSources);this.strict=false;this.bufferLength=DefaultBufferLength;let tokenArray=decodeArray(spec.tokenData);this.context=spec.context;this.specializerSpecs=spec.specialized||[];this.specialized=new Uint16Array(this.specializerSpecs.length);for(let i=0;i<this.specializerSpecs.length;i++)this.specialized[i]=this.specializerSpecs[i].term;this.specializers=this.specializerSpecs.map(getSpecializer);this.states=decodeArray(spec.states,Uint32Array);this.data=decodeArray(spec.stateData);this.goto=decodeArray(spec.goto);this.maxTerm=spec.maxTerm;this.tokenizers=spec.tokenizers.map(value=>typeof value==\"number\"?new TokenGroup(tokenArray,value):value);this.topRules=spec.topRules;this.dialects=spec.dialects||{};this.dynamicPrecedences=spec.dynamicPrecedences||null;this.tokenPrecTable=spec.tokenPrec;this.termNames=spec.termNames||null;this.maxNode=this.nodeSet.types.length-1;this.dialect=this.parseDialect();this.top=this.topRules[Object.keys(this.topRules)[0]];}};function pair(data,off){return data[off]|data[off+1]<<16;}function findFinished(stacks){let best=null;for(let stack of stacks){let stopped=stack.p.stoppedAt;if((stack.pos==stack.p.stream.end||stopped!=null&&stack.pos>stopped)&&stack.p.parser.stateFlag(stack.state,2)&&(!best||best.score<stack.score))best=stack;}return best;}function getSpecializer(spec){if(spec.external){let mask=spec.extend?1:0;return(value,stack)=>spec.external(value,stack)<<1|mask;}return spec.get;}export{ContextTracker,ExternalTokenizer,InputStream,LRParser,LocalTokenGroup,Stack,};\nexport const __FramerMetadata__ = {\"exports\":{\"ExternalTokenizer\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LocalTokenGroup\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Stack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LRParser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputStream\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContextTracker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lezer_lr.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/highlight/dist/index.js\nimport{NodeProp}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/MGamyd2UebFXXyjBfB8y/lezer_common.js\";var nextTagID=0;var Tag=class _Tag{/**\n  Define a new tag. If `parent` is given, the tag is treated as a\n  sub-tag of that parent, and\n  [highlighters](#highlight.tagHighlighter) that don't mention\n  this tag will try to fall back to the parent tag (or grandparent\n  tag, etc).\n  */static define(parent){if(parent===null||parent===void 0?void 0:parent.base)throw new Error(\"Can not derive from a modified tag\");let tag=new _Tag([],null,[]);tag.set.push(tag);if(parent)for(let t2 of parent.set)tag.set.push(t2);return tag;}/**\n  Define a tag _modifier_, which is a function that, given a tag,\n  will return a tag that is a subtag of the original. Applying the\n  same modifier to a twice tag will return the same value (`m1(t1)\n  == m1(t1)`) and applying multiple modifiers will, regardless or\n  order, produce the same tag (`m1(m2(t1)) == m2(m1(t1))`).\n  \n  When multiple modifiers are applied to a given base tag, each\n  smaller set of modifiers is registered as a parent, so that for\n  example `m1(m2(m3(t1)))` is a subtype of `m1(m2(t1))`,\n  `m1(m3(t1)`, and so on.\n  */static defineModifier(){let mod=new Modifier;return tag=>{if(tag.modified.indexOf(mod)>-1)return tag;return Modifier.get(tag.base||tag,tag.modified.concat(mod).sort((a,b)=>a.id-b.id));};}/**\n  @internal\n  */constructor(set,base,modified){this.set=set;this.base=base;this.modified=modified;this.id=nextTagID++;}};var nextModifierID=0;var Modifier=class _Modifier{static get(base,mods){if(!mods.length)return base;let exists=mods[0].instances.find(t2=>t2.base==base&&sameArray(mods,t2.modified));if(exists)return exists;let set=[],tag=new Tag(set,base,mods);for(let m of mods)m.instances.push(tag);let configs=powerSet(mods);for(let parent of base.set)if(!parent.modified.length)for(let config of configs)set.push(_Modifier.get(parent,config));return tag;}constructor(){this.instances=[];this.id=nextModifierID++;}};function sameArray(a,b){return a.length==b.length&&a.every((x,i)=>x==b[i]);}function powerSet(array){let sets=[[]];for(let i=0;i<array.length;i++){for(let j=0,e=sets.length;j<e;j++){sets.push(sets[j].concat(array[i]));}}return sets.sort((a,b)=>b.length-a.length);}function styleTags(spec){let byName=/* @__PURE__ */Object.create(null);for(let prop in spec){let tags2=spec[prop];if(!Array.isArray(tags2))tags2=[tags2];for(let part of prop.split(\" \"))if(part){let pieces=[],mode=2,rest=part;for(let pos=0;;){if(rest==\"...\"&&pos>0&&pos+3==part.length){mode=1;break;}let m=/^\"(?:[^\"\\\\]|\\\\.)*?\"|[^\\/!]+/.exec(rest);if(!m)throw new RangeError(\"Invalid path: \"+part);pieces.push(m[0]==\"*\"?\"\":m[0][0]=='\"'?JSON.parse(m[0]):m[0]);pos+=m[0].length;if(pos==part.length)break;let next=part[pos++];if(pos==part.length&&next==\"!\"){mode=0;break;}if(next!=\"/\")throw new RangeError(\"Invalid path: \"+part);rest=part.slice(pos);}let last=pieces.length-1,inner=pieces[last];if(!inner)throw new RangeError(\"Invalid path: \"+part);let rule=new Rule(tags2,mode,last>0?pieces.slice(0,last):null);byName[inner]=rule.sort(byName[inner]);}}return ruleNodeProp.add(byName);}var ruleNodeProp=new NodeProp;var Rule=class{get opaque(){return this.mode==0;}get inherit(){return this.mode==1;}sort(other){if(!other||other.depth<this.depth){this.next=other;return this;}other.next=this.sort(other.next);return other;}get depth(){return this.context?this.context.length:0;}constructor(tags2,mode,context,next){this.tags=tags2;this.mode=mode;this.context=context;this.next=next;}};Rule.empty=new Rule([],2,null);function tagHighlighter(tags2,options){let map=/* @__PURE__ */Object.create(null);for(let style of tags2){if(!Array.isArray(style.tag))map[style.tag.id]=style.class;else for(let tag of style.tag)map[tag.id]=style.class;}let{scope,all=null}=options||{};return{style:tags3=>{let cls=all;for(let tag of tags3){for(let sub of tag.set){let tagClass=map[sub.id];if(tagClass){cls=cls?cls+\" \"+tagClass:tagClass;break;}}}return cls;},scope};}function highlightTags(highlighters,tags2){let result=null;for(let highlighter of highlighters){let value=highlighter.style(tags2);if(value)result=result?result+\" \"+value:value;}return result;}function highlightTree(tree,highlighter,putStyle,from=0,to=tree.length){let builder=new HighlightBuilder(from,Array.isArray(highlighter)?highlighter:[highlighter],putStyle);builder.highlightRange(tree.cursor(),from,to,\"\",builder.highlighters);builder.flush(to);}var HighlightBuilder=class{startSpan(at,cls){if(cls!=this.class){this.flush(at);if(at>this.at)this.at=at;this.class=cls;}}flush(to){if(to>this.at&&this.class)this.span(this.at,to,this.class);}highlightRange(cursor,from,to,inheritedClass,highlighters){let{type,from:start,to:end}=cursor;if(start>=to||end<=from)return;if(type.isTop)highlighters=this.highlighters.filter(h=>!h.scope||h.scope(type));let cls=inheritedClass;let rule=getStyleTags(cursor)||Rule.empty;let tagCls=highlightTags(highlighters,rule.tags);if(tagCls){if(cls)cls+=\" \";cls+=tagCls;if(rule.mode==1)inheritedClass+=(inheritedClass?\" \":\"\")+tagCls;}this.startSpan(Math.max(from,start),cls);if(rule.opaque)return;let mounted=cursor.tree&&cursor.tree.prop(NodeProp.mounted);if(mounted&&mounted.overlay){let inner=cursor.node.enter(mounted.overlay[0].from+start,1);let innerHighlighters=this.highlighters.filter(h=>!h.scope||h.scope(mounted.tree.type));let hasChild=cursor.firstChild();for(let i=0,pos=start;;i++){let next=i<mounted.overlay.length?mounted.overlay[i]:null;let nextPos=next?next.from+start:end;let rangeFrom=Math.max(from,pos),rangeTo=Math.min(to,nextPos);if(rangeFrom<rangeTo&&hasChild){while(cursor.from<rangeTo){this.highlightRange(cursor,rangeFrom,rangeTo,inheritedClass,highlighters);this.startSpan(Math.min(rangeTo,cursor.to),cls);if(cursor.to>=nextPos||!cursor.nextSibling())break;}}if(!next||nextPos>to)break;pos=next.to+start;if(pos>from){this.highlightRange(inner.cursor(),Math.max(from,next.from+start),Math.min(to,pos),\"\",innerHighlighters);this.startSpan(Math.min(to,pos),cls);}}if(hasChild)cursor.parent();}else if(cursor.firstChild()){if(mounted)inheritedClass=\"\";do{if(cursor.to<=from)continue;if(cursor.from>=to)break;this.highlightRange(cursor,from,to,inheritedClass,highlighters);this.startSpan(Math.min(to,cursor.to),cls);}while(cursor.nextSibling())cursor.parent();}}constructor(at,highlighters,span){this.at=at;this.highlighters=highlighters;this.span=span;this.class=\"\";}};function getStyleTags(node){let rule=node.type.prop(ruleNodeProp);while(rule&&rule.context&&!node.matchContext(rule.context))rule=rule.next;return rule||null;}var t=Tag.define;var comment=t();var name=t();var typeName=t(name);var propertyName=t(name);var literal=t();var string=t(literal);var number=t(literal);var content=t();var heading=t(content);var keyword=t();var operator=t();var punctuation=t();var bracket=t(punctuation);var meta=t();var tags={/**\n  A comment.\n  */comment,/**\n  A line [comment](#highlight.tags.comment).\n  */lineComment:t(comment),/**\n  A block [comment](#highlight.tags.comment).\n  */blockComment:t(comment),/**\n  A documentation [comment](#highlight.tags.comment).\n  */docComment:t(comment),/**\n  Any kind of identifier.\n  */name,/**\n  The [name](#highlight.tags.name) of a variable.\n  */variableName:t(name),/**\n  A type [name](#highlight.tags.name).\n  */typeName,/**\n  A tag name (subtag of [`typeName`](#highlight.tags.typeName)).\n  */tagName:t(typeName),/**\n  A property or field [name](#highlight.tags.name).\n  */propertyName,/**\n  An attribute name (subtag of [`propertyName`](#highlight.tags.propertyName)).\n  */attributeName:t(propertyName),/**\n  The [name](#highlight.tags.name) of a class.\n  */className:t(name),/**\n  A label [name](#highlight.tags.name).\n  */labelName:t(name),/**\n  A namespace [name](#highlight.tags.name).\n  */namespace:t(name),/**\n  The [name](#highlight.tags.name) of a macro.\n  */macroName:t(name),/**\n  A literal value.\n  */literal,/**\n  A string [literal](#highlight.tags.literal).\n  */string,/**\n  A documentation [string](#highlight.tags.string).\n  */docString:t(string),/**\n  A character literal (subtag of [string](#highlight.tags.string)).\n  */character:t(string),/**\n  An attribute value (subtag of [string](#highlight.tags.string)).\n  */attributeValue:t(string),/**\n  A number [literal](#highlight.tags.literal).\n  */number,/**\n  An integer [number](#highlight.tags.number) literal.\n  */integer:t(number),/**\n  A floating-point [number](#highlight.tags.number) literal.\n  */float:t(number),/**\n  A boolean [literal](#highlight.tags.literal).\n  */bool:t(literal),/**\n  Regular expression [literal](#highlight.tags.literal).\n  */regexp:t(literal),/**\n  An escape [literal](#highlight.tags.literal), for example a\n  backslash escape in a string.\n  */escape:t(literal),/**\n  A color [literal](#highlight.tags.literal).\n  */color:t(literal),/**\n  A URL [literal](#highlight.tags.literal).\n  */url:t(literal),/**\n  A language keyword.\n  */keyword,/**\n  The [keyword](#highlight.tags.keyword) for the self or this\n  object.\n  */self:t(keyword),/**\n  The [keyword](#highlight.tags.keyword) for null.\n  */null:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) denoting some atomic value.\n  */atom:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) that represents a unit.\n  */unit:t(keyword),/**\n  A modifier [keyword](#highlight.tags.keyword).\n  */modifier:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) that acts as an operator.\n  */operatorKeyword:t(keyword),/**\n  A control-flow related [keyword](#highlight.tags.keyword).\n  */controlKeyword:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) that defines something.\n  */definitionKeyword:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) related to defining or\n  interfacing with modules.\n  */moduleKeyword:t(keyword),/**\n  An operator.\n  */operator,/**\n  An [operator](#highlight.tags.operator) that dereferences something.\n  */derefOperator:t(operator),/**\n  Arithmetic-related [operator](#highlight.tags.operator).\n  */arithmeticOperator:t(operator),/**\n  Logical [operator](#highlight.tags.operator).\n  */logicOperator:t(operator),/**\n  Bit [operator](#highlight.tags.operator).\n  */bitwiseOperator:t(operator),/**\n  Comparison [operator](#highlight.tags.operator).\n  */compareOperator:t(operator),/**\n  [Operator](#highlight.tags.operator) that updates its operand.\n  */updateOperator:t(operator),/**\n  [Operator](#highlight.tags.operator) that defines something.\n  */definitionOperator:t(operator),/**\n  Type-related [operator](#highlight.tags.operator).\n  */typeOperator:t(operator),/**\n  Control-flow [operator](#highlight.tags.operator).\n  */controlOperator:t(operator),/**\n  Program or markup punctuation.\n  */punctuation,/**\n  [Punctuation](#highlight.tags.punctuation) that separates\n  things.\n  */separator:t(punctuation),/**\n  Bracket-style [punctuation](#highlight.tags.punctuation).\n  */bracket,/**\n  Angle [brackets](#highlight.tags.bracket) (usually `<` and `>`\n  tokens).\n  */angleBracket:t(bracket),/**\n  Square [brackets](#highlight.tags.bracket) (usually `[` and `]`\n  tokens).\n  */squareBracket:t(bracket),/**\n  Parentheses (usually `(` and `)` tokens). Subtag of\n  [bracket](#highlight.tags.bracket).\n  */paren:t(bracket),/**\n  Braces (usually `{` and `}` tokens). Subtag of\n  [bracket](#highlight.tags.bracket).\n  */brace:t(bracket),/**\n  Content, for example plain text in XML or markup documents.\n  */content,/**\n  [Content](#highlight.tags.content) that represents a heading.\n  */heading,/**\n  A level 1 [heading](#highlight.tags.heading).\n  */heading1:t(heading),/**\n  A level 2 [heading](#highlight.tags.heading).\n  */heading2:t(heading),/**\n  A level 3 [heading](#highlight.tags.heading).\n  */heading3:t(heading),/**\n  A level 4 [heading](#highlight.tags.heading).\n  */heading4:t(heading),/**\n  A level 5 [heading](#highlight.tags.heading).\n  */heading5:t(heading),/**\n  A level 6 [heading](#highlight.tags.heading).\n  */heading6:t(heading),/**\n  A prose separator (such as a horizontal rule).\n  */contentSeparator:t(content),/**\n  [Content](#highlight.tags.content) that represents a list.\n  */list:t(content),/**\n  [Content](#highlight.tags.content) that represents a quote.\n  */quote:t(content),/**\n  [Content](#highlight.tags.content) that is emphasized.\n  */emphasis:t(content),/**\n  [Content](#highlight.tags.content) that is styled strong.\n  */strong:t(content),/**\n  [Content](#highlight.tags.content) that is part of a link.\n  */link:t(content),/**\n  [Content](#highlight.tags.content) that is styled as code or\n  monospace.\n  */monospace:t(content),/**\n  [Content](#highlight.tags.content) that has a strike-through\n  style.\n  */strikethrough:t(content),/**\n  Inserted text in a change-tracking format.\n  */inserted:t(),/**\n  Deleted text.\n  */deleted:t(),/**\n  Changed text.\n  */changed:t(),/**\n  An invalid or unsyntactic element.\n  */invalid:t(),/**\n  Metadata or meta-instruction.\n  */meta,/**\n  [Metadata](#highlight.tags.meta) that applies to the entire\n  document.\n  */documentMeta:t(meta),/**\n  [Metadata](#highlight.tags.meta) that annotates or adds\n  attributes to a given syntactic element.\n  */annotation:t(meta),/**\n  Processing instruction or preprocessor directive. Subtag of\n  [meta](#highlight.tags.meta).\n  */processingInstruction:t(meta),/**\n  [Modifier](#highlight.Tag^defineModifier) that indicates that a\n  given element is being defined. Expected to be used with the\n  various [name](#highlight.tags.name) tags.\n  */definition:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) that indicates that\n  something is constant. Mostly expected to be used with\n  [variable names](#highlight.tags.variableName).\n  */constant:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) used to indicate that\n  a [variable](#highlight.tags.variableName) or [property\n  name](#highlight.tags.propertyName) is being called or defined\n  as a function.\n  */function:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) that can be applied to\n  [names](#highlight.tags.name) to indicate that they belong to\n  the language's standard environment.\n  */standard:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) that indicates a given\n  [names](#highlight.tags.name) is local to some scope.\n  */local:Tag.defineModifier(),/**\n  A generic variant [modifier](#highlight.Tag^defineModifier) that\n  can be used to tag language-specific alternative variants of\n  some common tag. It is recommended for themes to define special\n  forms of at least the [string](#highlight.tags.string) and\n  [variable name](#highlight.tags.variableName) tags, since those\n  come up a lot.\n  */special:Tag.defineModifier()};var classHighlighter=tagHighlighter([{tag:tags.link,class:\"tok-link\"},{tag:tags.heading,class:\"tok-heading\"},{tag:tags.emphasis,class:\"tok-emphasis\"},{tag:tags.strong,class:\"tok-strong\"},{tag:tags.keyword,class:\"tok-keyword\"},{tag:tags.atom,class:\"tok-atom\"},{tag:tags.bool,class:\"tok-bool\"},{tag:tags.url,class:\"tok-url\"},{tag:tags.labelName,class:\"tok-labelName\"},{tag:tags.inserted,class:\"tok-inserted\"},{tag:tags.deleted,class:\"tok-deleted\"},{tag:tags.literal,class:\"tok-literal\"},{tag:tags.string,class:\"tok-string\"},{tag:tags.number,class:\"tok-number\"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:\"tok-string2\"},{tag:tags.variableName,class:\"tok-variableName\"},{tag:tags.local(tags.variableName),class:\"tok-variableName tok-local\"},{tag:tags.definition(tags.variableName),class:\"tok-variableName tok-definition\"},{tag:tags.special(tags.variableName),class:\"tok-variableName2\"},{tag:tags.definition(tags.propertyName),class:\"tok-propertyName tok-definition\"},{tag:tags.typeName,class:\"tok-typeName\"},{tag:tags.namespace,class:\"tok-namespace\"},{tag:tags.className,class:\"tok-className\"},{tag:tags.macroName,class:\"tok-macroName\"},{tag:tags.propertyName,class:\"tok-propertyName\"},{tag:tags.operator,class:\"tok-operator\"},{tag:tags.comment,class:\"tok-comment\"},{tag:tags.meta,class:\"tok-meta\"},{tag:tags.invalid,class:\"tok-invalid\"},{tag:tags.punctuation,class:\"tok-punctuation\"}]);export{Tag,classHighlighter,getStyleTags,highlightTree,styleTags,tagHighlighter,tags,};\nexport const __FramerMetadata__ = {\"exports\":{\"highlightTree\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"styleTags\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tags\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tagHighlighter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Tag\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"classHighlighter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getStyleTags\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lezer_highlight.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@marijn/find-cluster-break/src/index.js\nvar rangeFrom=[];var rangeTo=[];(()=>{let numbers=\"lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o\".split(\",\").map(s=>s?parseInt(s,36):1);for(let i=0,n=0;i<numbers.length;i++)(i%2?rangeTo:rangeFrom).push(n=n+numbers[i]);})();function isExtendingChar(code){if(code<768)return false;for(let from=0,to=rangeFrom.length;;){let mid=from+to>>1;if(code<rangeFrom[mid])to=mid;else if(code>=rangeTo[mid])from=mid+1;else return true;if(from==to)return false;}}function isRegionalIndicator(code){return code>=127462&&code<=127487;}var ZWJ=8205;function findClusterBreak(str,pos,forward=true,includeExtending=true){return(forward?nextClusterBreak:prevClusterBreak)(str,pos,includeExtending);}function nextClusterBreak(str,pos,includeExtending){if(pos==str.length)return pos;if(pos&&surrogateLow(str.charCodeAt(pos))&&surrogateHigh(str.charCodeAt(pos-1)))pos--;let prev=codePointAt(str,pos);pos+=codePointSize(prev);while(pos<str.length){let next=codePointAt(str,pos);if(prev==ZWJ||next==ZWJ||includeExtending&&isExtendingChar(next)){pos+=codePointSize(next);prev=next;}else if(isRegionalIndicator(next)){let countBefore=0,i=pos-2;while(i>=0&&isRegionalIndicator(codePointAt(str,i))){countBefore++;i-=2;}if(countBefore%2==0)break;else pos+=2;}else{break;}}return pos;}function prevClusterBreak(str,pos,includeExtending){while(pos>0){let found=nextClusterBreak(str,pos-2,includeExtending);if(found<pos)return found;pos--;}return 0;}function codePointAt(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);if(!surrogateLow(code1))return code0;return(code0-55296<<10)+(code1-56320)+65536;}function surrogateLow(ch){return ch>=56320&&ch<57344;}function surrogateHigh(ch){return ch>=55296&&ch<56320;}function codePointSize(code){return code<65536?1:2;}// ../../node_modules/@codemirror/state/dist/index.js\nvar Text=class _Text{/**\n  Get the line description around the given position.\n  */lineAt(pos){if(pos<0||pos>this.length)throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);return this.lineInner(pos,false,1,0);}/**\n  Get the description for the given (1-based) line number.\n  */line(n){if(n<1||n>this.lines)throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);return this.lineInner(n,true,1,0);}/**\n  Replace a range of the text with the given content.\n  */replace(from,to,text){[from,to]=clip(this,from,to);let parts=[];this.decompose(0,from,parts,2);if(text.length)text.decompose(0,text.length,parts,1|2);this.decompose(to,this.length,parts,1);return TextNode.from(parts,this.length-(to-from)+text.length);}/**\n  Append another document to this one.\n  */append(other){return this.replace(this.length,this.length,other);}/**\n  Retrieve the text between the given points.\n  */slice(from,to=this.length){[from,to]=clip(this,from,to);let parts=[];this.decompose(from,to,parts,0);return TextNode.from(parts,to-from);}/**\n  Test whether this text is equal to another instance.\n  */eq(other){if(other==this)return true;if(other.length!=this.length||other.lines!=this.lines)return false;let start=this.scanIdentical(other,1),end=this.length-this.scanIdentical(other,-1);let a=new RawTextCursor(this),b=new RawTextCursor(other);for(let skip=start,pos=start;;){a.next(skip);b.next(skip);skip=0;if(a.lineBreak!=b.lineBreak||a.done!=b.done||a.value!=b.value)return false;pos+=a.value.length;if(a.done||pos>=end)return true;}}/**\n  Iterate over the text. When `dir` is `-1`, iteration happens\n  from end to start. This will return lines and the breaks between\n  them as separate strings.\n  */iter(dir=1){return new RawTextCursor(this,dir);}/**\n  Iterate over a range of the text. When `from` > `to`, the\n  iterator will run in reverse.\n  */iterRange(from,to=this.length){return new PartialTextCursor(this,from,to);}/**\n  Return a cursor that iterates over the given range of lines,\n  _without_ returning the line breaks between, and yielding empty\n  strings for empty lines.\n  \n  When `from` and `to` are given, they should be 1-based line numbers.\n  */iterLines(from,to){let inner;if(from==null){inner=this.iter();}else{if(to==null)to=this.lines+1;let start=this.line(from).from;inner=this.iterRange(start,Math.max(start,to==this.lines+1?this.length:to<=1?0:this.line(to-1).to));}return new LineCursor(inner);}/**\n  Return the document as a string, using newline characters to\n  separate lines.\n  */toString(){return this.sliceString(0);}/**\n  Convert the document to an array of lines (which can be\n  deserialized again via [`Text.of`](https://codemirror.net/6/docs/ref/#state.Text^of)).\n  */toJSON(){let lines=[];this.flatten(lines);return lines;}/**\n  Create a `Text` instance for the given array of lines.\n  */static of(text){if(text.length==0)throw new RangeError(\"A document must have at least one line\");if(text.length==1&&!text[0])return _Text.empty;return text.length<=32?new TextLeaf(text):TextNode.from(TextLeaf.split(text,[]));}/**\n  @internal\n  */constructor(){}};var TextLeaf=class _TextLeaf extends Text{get lines(){return this.text.length;}get children(){return null;}lineInner(target,isLine,line,offset){for(let i=0;;i++){let string=this.text[i],end=offset+string.length;if((isLine?line:end)>=target)return new Line(offset,end,line,string);offset=end+1;line++;}}decompose(from,to,target,open){let text=from<=0&&to>=this.length?this:new _TextLeaf(sliceText(this.text,from,to),Math.min(to,this.length)-Math.max(0,from));if(open&1){let prev=target.pop();let joined=appendText(text.text,prev.text.slice(),0,text.length);if(joined.length<=32){target.push(new _TextLeaf(joined,prev.length+text.length));}else{let mid=joined.length>>1;target.push(new _TextLeaf(joined.slice(0,mid)),new _TextLeaf(joined.slice(mid)));}}else{target.push(text);}}replace(from,to,text){if(!(text instanceof _TextLeaf))return super.replace(from,to,text);[from,to]=clip(this,from,to);let lines=appendText(this.text,appendText(text.text,sliceText(this.text,0,from)),to);let newLen=this.length+text.length-(to-from);if(lines.length<=32)return new _TextLeaf(lines,newLen);return TextNode.from(_TextLeaf.split(lines,[]),newLen);}sliceString(from,to=this.length,lineSep=\"\\n\"){[from,to]=clip(this,from,to);let result=\"\";for(let pos=0,i=0;pos<=to&&i<this.text.length;i++){let line=this.text[i],end=pos+line.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=line.slice(Math.max(0,from-pos),to-pos);pos=end+1;}return result;}flatten(target){for(let line of this.text)target.push(line);}scanIdentical(){return 0;}static split(text,target){let part=[],len=-1;for(let line of text){part.push(line);len+=line.length+1;if(part.length==32){target.push(new _TextLeaf(part,len));part=[];len=-1;}}if(len>-1)target.push(new _TextLeaf(part,len));return target;}constructor(text,length=textLength(text)){super();this.text=text;this.length=length;}};var TextNode=class _TextNode extends Text{lineInner(target,isLine,line,offset){for(let i=0;;i++){let child=this.children[i],end=offset+child.length,endLine=line+child.lines-1;if((isLine?endLine:end)>=target)return child.lineInner(target,isLine,line,offset);offset=end+1;line=endLine+1;}}decompose(from,to,target,open){for(let i=0,pos=0;pos<=to&&i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from<=end&&to>=pos){let childOpen=open&((pos<=from?1:0)|(end>=to?2:0));if(pos>=from&&end<=to&&!childOpen)target.push(child);else child.decompose(from-pos,to-pos,target,childOpen);}pos=end+1;}}replace(from,to,text){[from,to]=clip(this,from,to);if(text.lines<this.lines)for(let i=0,pos=0;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from>=pos&&to<=end){let updated=child.replace(from-pos,to-pos,text);let totalLines=this.lines-child.lines+updated.lines;if(updated.lines<totalLines>>5-1&&updated.lines>totalLines>>5+1){let copy=this.children.slice();copy[i]=updated;return new _TextNode(copy,this.length-(to-from)+text.length);}return super.replace(pos,end,updated);}pos=end+1;}return super.replace(from,to,text);}sliceString(from,to=this.length,lineSep=\"\\n\"){[from,to]=clip(this,from,to);let result=\"\";for(let i=0,pos=0;i<this.children.length&&pos<=to;i++){let child=this.children[i],end=pos+child.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=child.sliceString(from-pos,to-pos,lineSep);pos=end+1;}return result;}flatten(target){for(let child of this.children)child.flatten(target);}scanIdentical(other,dir){if(!(other instanceof _TextNode))return 0;let length=0;let[iA,iB,eA,eB]=dir>0?[0,0,this.children.length,other.children.length]:[this.children.length-1,other.children.length-1,-1,-1];for(;;iA+=dir,iB+=dir){if(iA==eA||iB==eB)return length;let chA=this.children[iA],chB=other.children[iB];if(chA!=chB)return length+chA.scanIdentical(chB,dir);length+=chA.length+1;}}static from(children,length=children.reduce((l,ch)=>l+ch.length+1,-1)){let lines=0;for(let ch of children)lines+=ch.lines;if(lines<32){let flat=[];for(let ch of children)ch.flatten(flat);return new TextLeaf(flat,length);}let chunk=Math.max(32,lines>>5),maxChunk=chunk<<1,minChunk=chunk>>1;let chunked=[],currentLines=0,currentLen=-1,currentChunk=[];function add(child){let last;if(child.lines>maxChunk&&child instanceof _TextNode){for(let node of child.children)add(node);}else if(child.lines>minChunk&&(currentLines>minChunk||!currentLines)){flush();chunked.push(child);}else if(child instanceof TextLeaf&&currentLines&&(last=currentChunk[currentChunk.length-1])instanceof TextLeaf&&child.lines+last.lines<=32){currentLines+=child.lines;currentLen+=child.length+1;currentChunk[currentChunk.length-1]=new TextLeaf(last.text.concat(child.text),last.length+1+child.length);}else{if(currentLines+child.lines>chunk)flush();currentLines+=child.lines;currentLen+=child.length+1;currentChunk.push(child);}}function flush(){if(currentLines==0)return;chunked.push(currentChunk.length==1?currentChunk[0]:_TextNode.from(currentChunk,currentLen));currentLen=-1;currentLines=currentChunk.length=0;}for(let child of children)add(child);flush();return chunked.length==1?chunked[0]:new _TextNode(chunked,length);}constructor(children,length){super();this.children=children;this.length=length;this.lines=0;for(let child of children)this.lines+=child.lines;}};Text.empty=/* @__PURE__ */new TextLeaf([\"\"],0);function textLength(text){let length=-1;for(let line of text)length+=line.length+1;return length;}function appendText(text,target,from=0,to=1e9){for(let pos=0,i=0,first=true;i<text.length&&pos<=to;i++){let line=text[i],end=pos+line.length;if(end>=from){if(end>to)line=line.slice(0,to-pos);if(pos<from)line=line.slice(from-pos);if(first){target[target.length-1]+=line;first=false;}else target.push(line);}pos=end+1;}return target;}function sliceText(text,from,to){return appendText(text,[\"\"],from,to);}var RawTextCursor=class{nextInner(skip,dir){this.done=this.lineBreak=false;for(;;){let last=this.nodes.length-1;let top=this.nodes[last],offsetValue=this.offsets[last],offset=offsetValue>>1;let size=top instanceof TextLeaf?top.text.length:top.children.length;if(offset==(dir>0?size:0)){if(last==0){this.done=true;this.value=\"\";return this;}if(dir>0)this.offsets[last-1]++;this.nodes.pop();this.offsets.pop();}else if((offsetValue&1)==(dir>0?0:1)){this.offsets[last]+=dir;if(skip==0){this.lineBreak=true;this.value=\"\\n\";return this;}skip--;}else if(top instanceof TextLeaf){let next=top.text[offset+(dir<0?-1:0)];this.offsets[last]+=dir;if(next.length>Math.max(0,skip)){this.value=skip==0?next:dir>0?next.slice(skip):next.slice(0,next.length-skip);return this;}skip-=next.length;}else{let next=top.children[offset+(dir<0?-1:0)];if(skip>next.length){skip-=next.length;this.offsets[last]+=dir;}else{if(dir<0)this.offsets[last]--;this.nodes.push(next);this.offsets.push(dir>0?1:(next instanceof TextLeaf?next.text.length:next.children.length)<<1);}}}}next(skip=0){if(skip<0){this.nextInner(-skip,-this.dir);skip=this.value.length;}return this.nextInner(skip,this.dir);}constructor(text,dir=1){this.dir=dir;this.done=false;this.lineBreak=false;this.value=\"\";this.nodes=[text];this.offsets=[dir>0?1:(text instanceof TextLeaf?text.text.length:text.children.length)<<1];}};var PartialTextCursor=class{nextInner(skip,dir){if(dir<0?this.pos<=this.from:this.pos>=this.to){this.value=\"\";this.done=true;return this;}skip+=Math.max(0,dir<0?this.pos-this.to:this.from-this.pos);let limit=dir<0?this.pos-this.from:this.to-this.pos;if(skip>limit)skip=limit;limit-=skip;let{value}=this.cursor.next(skip);this.pos+=(value.length+skip)*dir;this.value=value.length<=limit?value:dir<0?value.slice(value.length-limit):value.slice(0,limit);this.done=!this.value;return this;}next(skip=0){if(skip<0)skip=Math.max(skip,this.from-this.pos);else if(skip>0)skip=Math.min(skip,this.to-this.pos);return this.nextInner(skip,this.cursor.dir);}get lineBreak(){return this.cursor.lineBreak&&this.value!=\"\";}constructor(text,start,end){this.value=\"\";this.done=false;this.cursor=new RawTextCursor(text,start>end?-1:1);this.pos=start>end?text.length:0;this.from=Math.min(start,end);this.to=Math.max(start,end);}};var LineCursor=class{next(skip=0){let{done,lineBreak,value}=this.inner.next(skip);if(done&&this.afterBreak){this.value=\"\";this.afterBreak=false;}else if(done){this.done=true;this.value=\"\";}else if(lineBreak){if(this.afterBreak){this.value=\"\";}else{this.afterBreak=true;this.next();}}else{this.value=value;this.afterBreak=false;}return this;}get lineBreak(){return false;}constructor(inner){this.inner=inner;this.afterBreak=true;this.value=\"\";this.done=false;}};if(typeof Symbol!=\"undefined\"){Text.prototype[Symbol.iterator]=function(){return this.iter();};RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this;};}var Line=class{/**\n  The length of the line (not including any line break after it).\n  */get length(){return this.to-this.from;}/**\n  @internal\n  */constructor(from,to,number,text){this.from=from;this.to=to;this.number=number;this.text=text;}};function clip(text,from,to){from=Math.max(0,Math.min(text.length,from));return[from,Math.max(from,Math.min(text.length,to))];}function findClusterBreak2(str,pos,forward=true,includeExtending=true){return findClusterBreak(str,pos,forward,includeExtending);}function surrogateLow2(ch){return ch>=56320&&ch<57344;}function surrogateHigh2(ch){return ch>=55296&&ch<56320;}function codePointAt2(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh2(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);if(!surrogateLow2(code1))return code0;return(code0-55296<<10)+(code1-56320)+65536;}function fromCodePoint(code){if(code<=65535)return String.fromCharCode(code);code-=65536;return String.fromCharCode((code>>10)+55296,(code&1023)+56320);}function codePointSize2(code){return code<65536?1:2;}var DefaultSplit=/\\r\\n?|\\n/;var MapMode=/* @__PURE__ */function(MapMode2){MapMode2[MapMode2[\"Simple\"]=0]=\"Simple\";MapMode2[MapMode2[\"TrackDel\"]=1]=\"TrackDel\";MapMode2[MapMode2[\"TrackBefore\"]=2]=\"TrackBefore\";MapMode2[MapMode2[\"TrackAfter\"]=3]=\"TrackAfter\";return MapMode2;}(MapMode||(MapMode={}));var ChangeDesc=class _ChangeDesc{/**\n  The length of the document before the change.\n  */get length(){let result=0;for(let i=0;i<this.sections.length;i+=2)result+=this.sections[i];return result;}/**\n  The length of the document after the change.\n  */get newLength(){let result=0;for(let i=0;i<this.sections.length;i+=2){let ins=this.sections[i+1];result+=ins<0?this.sections[i]:ins;}return result;}/**\n  False when there are actual changes in this set.\n  */get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0;}/**\n  Iterate over the unchanged parts left by these changes. `posA`\n  provides the position of the range in the old document, `posB`\n  the new position in the changed document.\n  */iterGaps(f){for(let i=0,posA=0,posB=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0){f(posA,posB,len);posB+=len;}else{posB+=ins;}posA+=len;}}/**\n  Iterate over the ranges changed by these changes. (See\n  [`ChangeSet.iterChanges`](https://codemirror.net/6/docs/ref/#state.ChangeSet.iterChanges) for a\n  variant that also provides you with the inserted text.)\n  `fromA`/`toA` provides the extent of the change in the starting\n  document, `fromB`/`toB` the extent of the replacement in the\n  changed document.\n  \n  When `individual` is true, adjacent changes (which are kept\n  separate for [position mapping](https://codemirror.net/6/docs/ref/#state.ChangeDesc.mapPos)) are\n  reported separately.\n  */iterChangedRanges(f,individual=false){iterChanges(this,f,individual);}/**\n  Get a description of the inverted form of these changes.\n  */get invertedDesc(){let sections=[];for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0)sections.push(len,ins);else sections.push(ins,len);}return new _ChangeDesc(sections);}/**\n  Compute the combined effect of applying another set of changes\n  after this one. The length of the document after this set should\n  match the length before `other`.\n  */composeDesc(other){return this.empty?other:other.empty?this:composeSets(this,other);}/**\n  Map this description, which should start with the same document\n  as `other`, over another set of changes, so that it can be\n  applied after it. When `before` is true, map as if the changes\n  in `this` happened before the ones in `other`.\n  */mapDesc(other,before=false){return other.empty?this:mapSet(this,other,before);}mapPos(pos,assoc=-1,mode=MapMode.Simple){let posA=0,posB=0;for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++],endA=posA+len;if(ins<0){if(endA>pos)return posB+(pos-posA);posB+=len;}else{if(mode!=MapMode.Simple&&endA>=pos&&(mode==MapMode.TrackDel&&posA<pos&&endA>pos||mode==MapMode.TrackBefore&&posA<pos||mode==MapMode.TrackAfter&&endA>pos))return null;if(endA>pos||endA==pos&&assoc<0&&!len)return pos==posA||assoc<0?posB:posB+ins;posB+=ins;}posA=endA;}if(pos>posA)throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);return posB;}/**\n  Check whether these changes touch a given range. When one of the\n  changes entirely covers the range, the string `\"cover\"` is\n  returned.\n  */touchesRange(from,to=from){for(let i=0,pos=0;i<this.sections.length&&pos<=to;){let len=this.sections[i++],ins=this.sections[i++],end=pos+len;if(ins>=0&&pos<=to&&end>=from)return pos<from&&end>to?\"cover\":true;pos=end;}return false;}/**\n  @internal\n  */toString(){let result=\"\";for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];result+=(result?\" \":\"\")+len+(ins>=0?\":\"+ins:\"\");}return result;}/**\n  Serialize this change desc to a JSON-representable value.\n  */toJSON(){return this.sections;}/**\n  Create a change desc from its JSON representation (as produced\n  by [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeDesc.toJSON).\n  */static fromJSON(json){if(!Array.isArray(json)||json.length%2||json.some(a=>typeof a!=\"number\"))throw new RangeError(\"Invalid JSON representation of ChangeDesc\");return new _ChangeDesc(json);}/**\n  @internal\n  */static create(sections){return new _ChangeDesc(sections);}// Sections are encoded as pairs of integers. The first is the\n// length in the current document, and the second is -1 for\n// unaffected sections, and the length of the replacement content\n// otherwise. So an insertion would be (0, n>0), a deletion (n>0,\n// 0), and a replacement two positive numbers.\n/**\n  @internal\n  */constructor(sections){this.sections=sections;}};var ChangeSet=class _ChangeSet extends ChangeDesc{/**\n  Apply the changes to a document, returning the modified\n  document.\n  */apply(doc){if(this.length!=doc.length)throw new RangeError(\"Applying change set to a document with the wrong length\");iterChanges(this,(fromA,toA,fromB,_toB,text)=>doc=doc.replace(fromB,fromB+(toA-fromA),text),false);return doc;}mapDesc(other,before=false){return mapSet(this,other,before,true);}/**\n  Given the document as it existed _before_ the changes, return a\n  change set that represents the inverse of this set, which could\n  be used to go from the document created by the changes back to\n  the document as it existed before the changes.\n  */invert(doc){let sections=this.sections.slice(),inserted=[];for(let i=0,pos=0;i<sections.length;i+=2){let len=sections[i],ins=sections[i+1];if(ins>=0){sections[i]=ins;sections[i+1]=len;let index=i>>1;while(inserted.length<index)inserted.push(Text.empty);inserted.push(len?doc.slice(pos,pos+len):Text.empty);}pos+=len;}return new _ChangeSet(sections,inserted);}/**\n  Combine two subsequent change sets into a single set. `other`\n  must start in the document produced by `this`. If `this` goes\n  `docA` → `docB` and `other` represents `docB` → `docC`, the\n  returned value will represent the change `docA` → `docC`.\n  */compose(other){return this.empty?other:other.empty?this:composeSets(this,other,true);}/**\n  Given another change set starting in the same document, maps this\n  change set over the other, producing a new change set that can be\n  applied to the document produced by applying `other`. When\n  `before` is `true`, order changes as if `this` comes before\n  `other`, otherwise (the default) treat `other` as coming first.\n  \n  Given two changes `A` and `B`, `A.compose(B.map(A))` and\n  `B.compose(A.map(B, true))` will produce the same document. This\n  provides a basic form of [operational\n  transformation](https://en.wikipedia.org/wiki/Operational_transformation),\n  and can be used for collaborative editing.\n  */map(other,before=false){return other.empty?this:mapSet(this,other,before,true);}/**\n  Iterate over the changed ranges in the document, calling `f` for\n  each, with the range in the original document (`fromA`-`toA`)\n  and the range that replaces it in the new document\n  (`fromB`-`toB`).\n  \n  When `individual` is true, adjacent changes are reported\n  separately.\n  */iterChanges(f,individual=false){iterChanges(this,f,individual);}/**\n  Get a [change description](https://codemirror.net/6/docs/ref/#state.ChangeDesc) for this change\n  set.\n  */get desc(){return ChangeDesc.create(this.sections);}/**\n  @internal\n  */filter(ranges){let resultSections=[],resultInserted=[],filteredSections=[];let iter=new SectionIter(this);done:for(let i=0,pos=0;;){let next=i==ranges.length?1e9:ranges[i++];while(pos<next||pos==next&&iter.len==0){if(iter.done)break done;let len=Math.min(iter.len,next-pos);addSection(filteredSections,len,-1);let ins=iter.ins==-1?-1:iter.off==0?iter.ins:0;addSection(resultSections,len,ins);if(ins>0)addInsert(resultInserted,resultSections,iter.text);iter.forward(len);pos+=len;}let end=ranges[i++];while(pos<end){if(iter.done)break done;let len=Math.min(iter.len,end-pos);addSection(resultSections,len,-1);addSection(filteredSections,len,iter.ins==-1?-1:iter.off==0?iter.ins:0);iter.forward(len);pos+=len;}}return{changes:new _ChangeSet(resultSections,resultInserted),filtered:ChangeDesc.create(filteredSections)};}/**\n  Serialize this change set to a JSON-representable value.\n  */toJSON(){let parts=[];for(let i=0;i<this.sections.length;i+=2){let len=this.sections[i],ins=this.sections[i+1];if(ins<0)parts.push(len);else if(ins==0)parts.push([len]);else parts.push([len].concat(this.inserted[i>>1].toJSON()));}return parts;}/**\n  Create a change set for the given changes, for a document of the\n  given length, using `lineSep` as line separator.\n  */static of(changes,length,lineSep){let sections=[],inserted=[],pos=0;let total=null;function flush(force=false){if(!force&&!sections.length)return;if(pos<length)addSection(sections,length-pos,-1);let set=new _ChangeSet(sections,inserted);total=total?total.compose(set.map(total)):set;sections=[];inserted=[];pos=0;}function process(spec){if(Array.isArray(spec)){for(let sub of spec)process(sub);}else if(spec instanceof _ChangeSet){if(spec.length!=length)throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);flush();total=total?total.compose(spec.map(total)):spec;}else{let{from,to=from,insert:insert2}=spec;if(from>to||from<0||to>length)throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);let insText=!insert2?Text.empty:typeof insert2==\"string\"?Text.of(insert2.split(lineSep||DefaultSplit)):insert2;let insLen=insText.length;if(from==to&&insLen==0)return;if(from<pos)flush();if(from>pos)addSection(sections,from-pos,-1);addSection(sections,to-from,insLen);addInsert(inserted,sections,insText);pos=to;}}process(changes);flush(!total);return total;}/**\n  Create an empty changeset of the given length.\n  */static empty(length){return new _ChangeSet(length?[length,-1]:[],[]);}/**\n  Create a changeset from its JSON representation (as produced by\n  [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeSet.toJSON).\n  */static fromJSON(json){if(!Array.isArray(json))throw new RangeError(\"Invalid JSON representation of ChangeSet\");let sections=[],inserted=[];for(let i=0;i<json.length;i++){let part=json[i];if(typeof part==\"number\"){sections.push(part,-1);}else if(!Array.isArray(part)||typeof part[0]!=\"number\"||part.some((e,i2)=>i2&&typeof e!=\"string\")){throw new RangeError(\"Invalid JSON representation of ChangeSet\");}else if(part.length==1){sections.push(part[0],0);}else{while(inserted.length<i)inserted.push(Text.empty);inserted[i]=Text.of(part.slice(1));sections.push(part[0],inserted[i].length);}}return new _ChangeSet(sections,inserted);}/**\n  @internal\n  */static createSet(sections,inserted){return new _ChangeSet(sections,inserted);}constructor(sections,inserted){super(sections);this.inserted=inserted;}};function addSection(sections,len,ins,forceJoin=false){if(len==0&&ins<=0)return;let last=sections.length-2;if(last>=0&&ins<=0&&ins==sections[last+1])sections[last]+=len;else if(last>=0&&len==0&&sections[last]==0)sections[last+1]+=ins;else if(forceJoin){sections[last]+=len;sections[last+1]+=ins;}else sections.push(len,ins);}function addInsert(values,sections,value){if(value.length==0)return;let index=sections.length-2>>1;if(index<values.length){values[values.length-1]=values[values.length-1].append(value);}else{while(values.length<index)values.push(Text.empty);values.push(value);}}function iterChanges(desc,f,individual){let inserted=desc.inserted;for(let posA=0,posB=0,i=0;i<desc.sections.length;){let len=desc.sections[i++],ins=desc.sections[i++];if(ins<0){posA+=len;posB+=len;}else{let endA=posA,endB=posB,text=Text.empty;for(;;){endA+=len;endB+=ins;if(ins&&inserted)text=text.append(inserted[i-2>>1]);if(individual||i==desc.sections.length||desc.sections[i+1]<0)break;len=desc.sections[i++];ins=desc.sections[i++];}f(posA,endA,posB,endB,text);posA=endA;posB=endB;}}}function mapSet(setA,setB,before,mkSet=false){let sections=[],insert2=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let inserted=-1;;){if(a.done&&b.len||b.done&&a.len){throw new Error(\"Mismatched change set lengths\");}else if(a.ins==-1&&b.ins==-1){let len=Math.min(a.len,b.len);addSection(sections,len,-1);a.forward(len);b.forward(len);}else if(b.ins>=0&&(a.ins<0||inserted==a.i||a.off==0&&(b.len<a.len||b.len==a.len&&!before))){let len=b.len;addSection(sections,b.ins,-1);while(len){let piece=Math.min(a.len,len);if(a.ins>=0&&inserted<a.i&&a.len<=piece){addSection(sections,0,a.ins);if(insert2)addInsert(insert2,sections,a.text);inserted=a.i;}a.forward(piece);len-=piece;}b.next();}else if(a.ins>=0){let len=0,left=a.len;while(left){if(b.ins==-1){let piece=Math.min(left,b.len);len+=piece;left-=piece;b.forward(piece);}else if(b.ins==0&&b.len<left){left-=b.len;b.next();}else{break;}}addSection(sections,len,inserted<a.i?a.ins:0);if(insert2&&inserted<a.i)addInsert(insert2,sections,a.text);inserted=a.i;a.forward(a.len-left);}else if(a.done&&b.done){return insert2?ChangeSet.createSet(sections,insert2):ChangeDesc.create(sections);}else{throw new Error(\"Mismatched change set lengths\");}}}function composeSets(setA,setB,mkSet=false){let sections=[];let insert2=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let open=false;;){if(a.done&&b.done){return insert2?ChangeSet.createSet(sections,insert2):ChangeDesc.create(sections);}else if(a.ins==0){addSection(sections,a.len,0,open);a.next();}else if(b.len==0&&!b.done){addSection(sections,0,b.ins,open);if(insert2)addInsert(insert2,sections,b.text);b.next();}else if(a.done||b.done){throw new Error(\"Mismatched change set lengths\");}else{let len=Math.min(a.len2,b.len),sectionLen=sections.length;if(a.ins==-1){let insB=b.ins==-1?-1:b.off?0:b.ins;addSection(sections,len,insB,open);if(insert2&&insB)addInsert(insert2,sections,b.text);}else if(b.ins==-1){addSection(sections,a.off?0:a.len,len,open);if(insert2)addInsert(insert2,sections,a.textBit(len));}else{addSection(sections,a.off?0:a.len,b.off?0:b.ins,open);if(insert2&&!b.off)addInsert(insert2,sections,b.text);}open=(a.ins>len||b.ins>=0&&b.len>len)&&(open||sections.length>sectionLen);a.forward2(len);b.forward(len);}}}var SectionIter=class{next(){let{sections}=this.set;if(this.i<sections.length){this.len=sections[this.i++];this.ins=sections[this.i++];}else{this.len=0;this.ins=-2;}this.off=0;}get done(){return this.ins==-2;}get len2(){return this.ins<0?this.len:this.ins;}get text(){let{inserted}=this.set,index=this.i-2>>1;return index>=inserted.length?Text.empty:inserted[index];}textBit(len){let{inserted}=this.set,index=this.i-2>>1;return index>=inserted.length&&!len?Text.empty:inserted[index].slice(this.off,len==null?void 0:this.off+len);}forward(len){if(len==this.len)this.next();else{this.len-=len;this.off+=len;}}forward2(len){if(this.ins==-1)this.forward(len);else if(len==this.ins)this.next();else{this.ins-=len;this.off+=len;}}constructor(set){this.set=set;this.i=0;this.next();}};var SelectionRange=class _SelectionRange{/**\n  The anchor of the range—the side that doesn't move when you\n  extend it.\n  */get anchor(){return this.flags&32?this.to:this.from;}/**\n  The head of the range, which is moved when the range is\n  [extended](https://codemirror.net/6/docs/ref/#state.SelectionRange.extend).\n  */get head(){return this.flags&32?this.from:this.to;}/**\n  True when `anchor` and `head` are at the same position.\n  */get empty(){return this.from==this.to;}/**\n  If this is a cursor that is explicitly associated with the\n  character on one of its sides, this returns the side. -1 means\n  the character before its position, 1 the character after, and 0\n  means no association.\n  */get assoc(){return this.flags&8?-1:this.flags&16?1:0;}/**\n  The bidirectional text level associated with this cursor, if\n  any.\n  */get bidiLevel(){let level=this.flags&7;return level==7?null:level;}/**\n  The goal column (stored vertical offset) associated with a\n  cursor. This is used to preserve the vertical position when\n  [moving](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) across\n  lines of different length.\n  */get goalColumn(){let value=this.flags>>6;return value==16777215?void 0:value;}/**\n  Map this range through a change, producing a valid range in the\n  updated document.\n  */map(change,assoc=-1){let from,to;if(this.empty){from=to=change.mapPos(this.from,assoc);}else{from=change.mapPos(this.from,1);to=change.mapPos(this.to,-1);}return from==this.from&&to==this.to?this:new _SelectionRange(from,to,this.flags);}/**\n  Extend this range to cover at least `from` to `to`.\n  */extend(from,to=from){if(from<=this.anchor&&to>=this.anchor)return EditorSelection.range(from,to);let head=Math.abs(from-this.anchor)>Math.abs(to-this.anchor)?from:to;return EditorSelection.range(this.anchor,head);}/**\n  Compare this range to another range.\n  */eq(other,includeAssoc=false){return this.anchor==other.anchor&&this.head==other.head&&(!includeAssoc||!this.empty||this.assoc==other.assoc);}/**\n  Return a JSON-serializable object representing the range.\n  */toJSON(){return{anchor:this.anchor,head:this.head};}/**\n  Convert a JSON representation of a range to a `SelectionRange`\n  instance.\n  */static fromJSON(json){if(!json||typeof json.anchor!=\"number\"||typeof json.head!=\"number\")throw new RangeError(\"Invalid JSON representation for SelectionRange\");return EditorSelection.range(json.anchor,json.head);}/**\n  @internal\n  */static create(from,to,flags){return new _SelectionRange(from,to,flags);}constructor(from,to,flags){this.from=from;this.to=to;this.flags=flags;}};var EditorSelection=class _EditorSelection{/**\n  Map a selection through a change. Used to adjust the selection\n  position for changes.\n  */map(change,assoc=-1){if(change.empty)return this;return _EditorSelection.create(this.ranges.map(r=>r.map(change,assoc)),this.mainIndex);}/**\n  Compare this selection to another selection. By default, ranges\n  are compared only by position. When `includeAssoc` is true,\n  cursor ranges must also have the same\n  [`assoc`](https://codemirror.net/6/docs/ref/#state.SelectionRange.assoc) value.\n  */eq(other,includeAssoc=false){if(this.ranges.length!=other.ranges.length||this.mainIndex!=other.mainIndex)return false;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(other.ranges[i],includeAssoc))return false;return true;}/**\n  Get the primary selection range. Usually, you should make sure\n  your code applies to _all_ ranges, by using methods like\n  [`changeByRange`](https://codemirror.net/6/docs/ref/#state.EditorState.changeByRange).\n  */get main(){return this.ranges[this.mainIndex];}/**\n  Make sure the selection only has one range. Returns a selection\n  holding only the main range from this selection.\n  */asSingle(){return this.ranges.length==1?this:new _EditorSelection([this.main],0);}/**\n  Extend this selection with an extra range.\n  */addRange(range,main=true){return _EditorSelection.create([range].concat(this.ranges),main?0:this.mainIndex+1);}/**\n  Replace a given range with another range, and then normalize the\n  selection to merge and sort ranges if necessary.\n  */replaceRange(range,which=this.mainIndex){let ranges=this.ranges.slice();ranges[which]=range;return _EditorSelection.create(ranges,this.mainIndex);}/**\n  Convert this selection to an object that can be serialized to\n  JSON.\n  */toJSON(){return{ranges:this.ranges.map(r=>r.toJSON()),main:this.mainIndex};}/**\n  Create a selection from a JSON representation.\n  */static fromJSON(json){if(!json||!Array.isArray(json.ranges)||typeof json.main!=\"number\"||json.main>=json.ranges.length)throw new RangeError(\"Invalid JSON representation for EditorSelection\");return new _EditorSelection(json.ranges.map(r=>SelectionRange.fromJSON(r)),json.main);}/**\n  Create a selection holding a single range.\n  */static single(anchor,head=anchor){return new _EditorSelection([_EditorSelection.range(anchor,head)],0);}/**\n  Sort and merge the given set of ranges, creating a valid\n  selection.\n  */static create(ranges,mainIndex=0){if(ranges.length==0)throw new RangeError(\"A selection needs at least one range\");for(let pos=0,i=0;i<ranges.length;i++){let range=ranges[i];if(range.empty?range.from<=pos:range.from<pos)return _EditorSelection.normalized(ranges.slice(),mainIndex);pos=range.to;}return new _EditorSelection(ranges,mainIndex);}/**\n  Create a cursor selection range at the given position. You can\n  safely ignore the optional arguments in most situations.\n  */static cursor(pos,assoc=0,bidiLevel,goalColumn){return SelectionRange.create(pos,pos,(assoc==0?0:assoc<0?8:16)|(bidiLevel==null?7:Math.min(6,bidiLevel))|(goalColumn!==null&&goalColumn!==void 0?goalColumn:16777215)<<6);}/**\n  Create a selection range.\n  */static range(anchor,head,goalColumn,bidiLevel){let flags=(goalColumn!==null&&goalColumn!==void 0?goalColumn:16777215)<<6|(bidiLevel==null?7:Math.min(6,bidiLevel));return head<anchor?SelectionRange.create(head,anchor,32|16|flags):SelectionRange.create(anchor,head,(head>anchor?8:0)|flags);}/**\n  @internal\n  */static normalized(ranges,mainIndex=0){let main=ranges[mainIndex];ranges.sort((a,b)=>a.from-b.from);mainIndex=ranges.indexOf(main);for(let i=1;i<ranges.length;i++){let range=ranges[i],prev=ranges[i-1];if(range.empty?range.from<=prev.to:range.from<prev.to){let from=prev.from,to=Math.max(range.to,prev.to);if(i<=mainIndex)mainIndex--;ranges.splice(--i,2,range.anchor>range.head?_EditorSelection.range(to,from):_EditorSelection.range(from,to));}}return new _EditorSelection(ranges,mainIndex);}constructor(ranges,mainIndex){this.ranges=ranges;this.mainIndex=mainIndex;}};function checkSelection(selection,docLength){for(let range of selection.ranges)if(range.to>docLength)throw new RangeError(\"Selection points outside of document\");}var nextID=0;var Facet=class _Facet{/**\n  Returns a facet reader for this facet, which can be used to\n  [read](https://codemirror.net/6/docs/ref/#state.EditorState.facet) it but not to define values for it.\n  */get reader(){return this;}/**\n  Define a new facet.\n  */static define(config={}){return new _Facet(config.combine||(a=>a),config.compareInput||((a,b)=>a===b),config.compare||(!config.combine?sameArray:(a,b)=>a===b),!!config.static,config.enables);}/**\n  Returns an extension that adds the given value to this facet.\n  */of(value){return new FacetProvider([],this,0,value);}/**\n  Create an extension that computes a value for the facet from a\n  state. You must take care to declare the parts of the state that\n  this value depends on, since your function is only called again\n  for a new state when one of those parts changed.\n  \n  In cases where your value depends only on a single field, you'll\n  want to use the [`from`](https://codemirror.net/6/docs/ref/#state.Facet.from) method instead.\n  */compute(deps,get){if(this.isStatic)throw new Error(\"Can't compute a static facet\");return new FacetProvider(deps,this,1,get);}/**\n  Create an extension that computes zero or more values for this\n  facet from a state.\n  */computeN(deps,get){if(this.isStatic)throw new Error(\"Can't compute a static facet\");return new FacetProvider(deps,this,2,get);}from(field,get){if(!get)get=x=>x;return this.compute([field],state=>get(state.field(field)));}constructor(combine,compareInput,compare2,isStatic,enables){this.combine=combine;this.compareInput=compareInput;this.compare=compare2;this.isStatic=isStatic;this.id=nextID++;this.default=combine([]);this.extensions=typeof enables==\"function\"?enables(this):enables;}};function sameArray(a,b){return a==b||a.length==b.length&&a.every((e,i)=>e===b[i]);}var FacetProvider=class{dynamicSlot(addresses){var _a;let getter=this.value;let compare2=this.facet.compareInput;let id=this.id,idx=addresses[id]>>1,multi=this.type==2;let depDoc=false,depSel=false,depAddrs=[];for(let dep of this.dependencies){if(dep==\"doc\")depDoc=true;else if(dep==\"selection\")depSel=true;else if((((_a=addresses[dep.id])!==null&&_a!==void 0?_a:1)&1)==0)depAddrs.push(addresses[dep.id]);}return{create(state){state.values[idx]=getter(state);return 1;},update(state,tr){if(depDoc&&tr.docChanged||depSel&&(tr.docChanged||tr.selection)||ensureAll(state,depAddrs)){let newVal=getter(state);if(multi?!compareArray(newVal,state.values[idx],compare2):!compare2(newVal,state.values[idx])){state.values[idx]=newVal;return 1;}}return 0;},reconfigure:(state,oldState)=>{let newVal,oldAddr=oldState.config.address[id];if(oldAddr!=null){let oldVal=getAddr(oldState,oldAddr);if(this.dependencies.every(dep=>{return dep instanceof Facet?oldState.facet(dep)===state.facet(dep):dep instanceof StateField?oldState.field(dep,false)==state.field(dep,false):true;})||(multi?compareArray(newVal=getter(state),oldVal,compare2):compare2(newVal=getter(state),oldVal))){state.values[idx]=oldVal;return 0;}}else{newVal=getter(state);}state.values[idx]=newVal;return 1;}};}constructor(dependencies,facet,type,value){this.dependencies=dependencies;this.facet=facet;this.type=type;this.value=value;this.id=nextID++;}};function compareArray(a,b,compare2){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(!compare2(a[i],b[i]))return false;return true;}function ensureAll(state,addrs){let changed=false;for(let addr of addrs)if(ensureAddr(state,addr)&1)changed=true;return changed;}function dynamicFacetSlot(addresses,facet,providers){let providerAddrs=providers.map(p=>addresses[p.id]);let providerTypes=providers.map(p=>p.type);let dynamic=providerAddrs.filter(p=>!(p&1));let idx=addresses[facet.id]>>1;function get(state){let values=[];for(let i=0;i<providerAddrs.length;i++){let value=getAddr(state,providerAddrs[i]);if(providerTypes[i]==2)for(let val of value)values.push(val);else values.push(value);}return facet.combine(values);}return{create(state){for(let addr of providerAddrs)ensureAddr(state,addr);state.values[idx]=get(state);return 1;},update(state,tr){if(!ensureAll(state,dynamic))return 0;let value=get(state);if(facet.compare(value,state.values[idx]))return 0;state.values[idx]=value;return 1;},reconfigure(state,oldState){let depChanged=ensureAll(state,providerAddrs);let oldProviders=oldState.config.facets[facet.id],oldValue=oldState.facet(facet);if(oldProviders&&!depChanged&&sameArray(providers,oldProviders)){state.values[idx]=oldValue;return 0;}let value=get(state);if(facet.compare(value,oldValue)){state.values[idx]=oldValue;return 0;}state.values[idx]=value;return 1;}};}var initField=/* @__PURE__ */Facet.define({static:true});var StateField=class _StateField{/**\n  Define a state field.\n  */static define(config){let field=new _StateField(nextID++,config.create,config.update,config.compare||((a,b)=>a===b),config);if(config.provide)field.provides=config.provide(field);return field;}create(state){let init=state.facet(initField).find(i=>i.field==this);return((init===null||init===void 0?void 0:init.create)||this.createF)(state);}/**\n  @internal\n  */slot(addresses){let idx=addresses[this.id]>>1;return{create:state=>{state.values[idx]=this.create(state);return 1;},update:(state,tr)=>{let oldVal=state.values[idx];let value=this.updateF(oldVal,tr);if(this.compareF(oldVal,value))return 0;state.values[idx]=value;return 1;},reconfigure:(state,oldState)=>{let init=state.facet(initField),oldInit=oldState.facet(initField),reInit;if((reInit=init.find(i=>i.field==this))&&reInit!=oldInit.find(i=>i.field==this)){state.values[idx]=reInit.create(state);return 1;}if(oldState.config.address[this.id]!=null){state.values[idx]=oldState.field(this);return 0;}state.values[idx]=this.create(state);return 1;}};}/**\n  Returns an extension that enables this field and overrides the\n  way it is initialized. Can be useful when you need to provide a\n  non-default starting value for the field.\n  */init(create){return[this,initField.of({field:this,create})];}/**\n  State field instances can be used as\n  [`Extension`](https://codemirror.net/6/docs/ref/#state.Extension) values to enable the field in a\n  given state.\n  */get extension(){return this;}constructor(id,createF,updateF,compareF,spec){this.id=id;this.createF=createF;this.updateF=updateF;this.compareF=compareF;this.spec=spec;this.provides=void 0;}};var Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(value){return ext=>new PrecExtension(ext,value);}var Prec={/**\n  The highest precedence level, for extensions that should end up\n  near the start of the precedence ordering.\n  */highest:/* @__PURE__ */prec(Prec_.highest),/**\n  A higher-than-default precedence, for extensions that should\n  come before those with default precedence.\n  */high:/* @__PURE__ */prec(Prec_.high),/**\n  The default precedence, which is also used for extensions\n  without an explicit precedence.\n  */default:/* @__PURE__ */prec(Prec_.default),/**\n  A lower-than-default precedence.\n  */low:/* @__PURE__ */prec(Prec_.low),/**\n  The lowest precedence level. Meant for things that should end up\n  near the end of the extension order.\n  */lowest:/* @__PURE__ */prec(Prec_.lowest)};var PrecExtension=class{constructor(inner,prec2){this.inner=inner;this.prec=prec2;}};var Compartment=class _Compartment{/**\n  Create an instance of this compartment to add to your [state\n  configuration](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions).\n  */of(ext){return new CompartmentInstance(this,ext);}/**\n  Create an [effect](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) that\n  reconfigures this compartment.\n  */reconfigure(content){return _Compartment.reconfigure.of({compartment:this,extension:content});}/**\n  Get the current content of the compartment in the state, or\n  `undefined` if it isn't present.\n  */get(state){return state.config.compartments.get(this);}};var CompartmentInstance=class{constructor(compartment,inner){this.compartment=compartment;this.inner=inner;}};var Configuration=class _Configuration{staticFacet(facet){let addr=this.address[facet.id];return addr==null?facet.default:this.staticValues[addr>>1];}static resolve(base,compartments,oldState){let fields=[];let facets=/* @__PURE__ */Object.create(null);let newCompartments=/* @__PURE__ */new Map;for(let ext of flatten(base,compartments,newCompartments)){if(ext instanceof StateField)fields.push(ext);else(facets[ext.facet.id]||(facets[ext.facet.id]=[])).push(ext);}let address=/* @__PURE__ */Object.create(null);let staticValues=[];let dynamicSlots=[];for(let field of fields){address[field.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>field.slot(a));}let oldFacets=oldState===null||oldState===void 0?void 0:oldState.config.facets;for(let id in facets){let providers=facets[id],facet=providers[0].facet;let oldProviders=oldFacets&&oldFacets[id]||[];if(providers.every(p=>p.type==0)){address[facet.id]=staticValues.length<<1|1;if(sameArray(oldProviders,providers)){staticValues.push(oldState.facet(facet));}else{let value=facet.combine(providers.map(p=>p.value));staticValues.push(oldState&&facet.compare(value,oldState.facet(facet))?oldState.facet(facet):value);}}else{for(let p of providers){if(p.type==0){address[p.id]=staticValues.length<<1|1;staticValues.push(p.value);}else{address[p.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>p.dynamicSlot(a));}}address[facet.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>dynamicFacetSlot(a,facet,providers));}}let dynamic=dynamicSlots.map(f=>f(address));return new _Configuration(base,newCompartments,dynamic,address,staticValues,facets);}constructor(base,compartments,dynamicSlots,address,staticValues,facets){this.base=base;this.compartments=compartments;this.dynamicSlots=dynamicSlots;this.address=address;this.staticValues=staticValues;this.facets=facets;this.statusTemplate=[];while(this.statusTemplate.length<dynamicSlots.length)this.statusTemplate.push(0);}};function flatten(extension,compartments,newCompartments){let result=[[],[],[],[],[]];let seen=/* @__PURE__ */new Map;function inner(ext,prec2){let known=seen.get(ext);if(known!=null){if(known<=prec2)return;let found=result[known].indexOf(ext);if(found>-1)result[known].splice(found,1);if(ext instanceof CompartmentInstance)newCompartments.delete(ext.compartment);}seen.set(ext,prec2);if(Array.isArray(ext)){for(let e of ext)inner(e,prec2);}else if(ext instanceof CompartmentInstance){if(newCompartments.has(ext.compartment))throw new RangeError(`Duplicate use of compartment in extensions`);let content=compartments.get(ext.compartment)||ext.inner;newCompartments.set(ext.compartment,content);inner(content,prec2);}else if(ext instanceof PrecExtension){inner(ext.inner,ext.prec);}else if(ext instanceof StateField){result[prec2].push(ext);if(ext.provides)inner(ext.provides,prec2);}else if(ext instanceof FacetProvider){result[prec2].push(ext);if(ext.facet.extensions)inner(ext.facet.extensions,Prec_.default);}else{let content=ext.extension;if(!content)throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);inner(content,prec2);}}inner(extension,Prec_.default);return result.reduce((a,b)=>a.concat(b));}function ensureAddr(state,addr){if(addr&1)return 2;let idx=addr>>1;let status=state.status[idx];if(status==4)throw new Error(\"Cyclic dependency between fields and/or facets\");if(status&2)return status;state.status[idx]=4;let changed=state.computeSlot(state,state.config.dynamicSlots[idx]);return state.status[idx]=2|changed;}function getAddr(state,addr){return addr&1?state.config.staticValues[addr>>1]:state.values[addr>>1];}var languageData=/* @__PURE__ */Facet.define();var allowMultipleSelections=/* @__PURE__ */Facet.define({combine:values=>values.some(v=>v),static:true});var lineSeparator=/* @__PURE__ */Facet.define({combine:values=>values.length?values[0]:void 0,static:true});var changeFilter=/* @__PURE__ */Facet.define();var transactionFilter=/* @__PURE__ */Facet.define();var transactionExtender=/* @__PURE__ */Facet.define();var readOnly=/* @__PURE__ */Facet.define({combine:values=>values.length?values[0]:false});var Annotation=class{/**\n  Define a new type of annotation.\n  */static define(){return new AnnotationType;}/**\n  @internal\n  */constructor(type,value){this.type=type;this.value=value;}};var AnnotationType=class{/**\n  Create an instance of this annotation.\n  */of(value){return new Annotation(this,value);}};var StateEffectType=class{/**\n  Create a [state effect](https://codemirror.net/6/docs/ref/#state.StateEffect) instance of this\n  type.\n  */of(value){return new StateEffect(this,value);}/**\n  @internal\n  */constructor(map){this.map=map;}};var StateEffect=class _StateEffect{/**\n  Map this effect through a position mapping. Will return\n  `undefined` when that ends up deleting the effect.\n  */map(mapping){let mapped=this.type.map(this.value,mapping);return mapped===void 0?void 0:mapped==this.value?this:new _StateEffect(this.type,mapped);}/**\n  Tells you whether this effect object is of a given\n  [type](https://codemirror.net/6/docs/ref/#state.StateEffectType).\n  */is(type){return this.type==type;}/**\n  Define a new effect type. The type parameter indicates the type\n  of values that his effect holds. It should be a type that\n  doesn't include `undefined`, since that is used in\n  [mapping](https://codemirror.net/6/docs/ref/#state.StateEffect.map) to indicate that an effect is\n  removed.\n  */static define(spec={}){return new StateEffectType(spec.map||(v=>v));}/**\n  Map an array of effects through a change set.\n  */static mapEffects(effects,mapping){if(!effects.length)return effects;let result=[];for(let effect of effects){let mapped=effect.map(mapping);if(mapped)result.push(mapped);}return result;}/**\n  @internal\n  */constructor(type,value){this.type=type;this.value=value;}};StateEffect.reconfigure=/* @__PURE__ */StateEffect.define();StateEffect.appendConfig=/* @__PURE__ */StateEffect.define();var Transaction=class _Transaction{/**\n  @internal\n  */static create(startState,changes,selection,effects,annotations,scrollIntoView){return new _Transaction(startState,changes,selection,effects,annotations,scrollIntoView);}/**\n  The new document produced by the transaction. Contrary to\n  [`.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state)`.doc`, accessing this won't\n  force the entire new state to be computed right away, so it is\n  recommended that [transaction\n  filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) use this getter\n  when they need to look at the new document.\n  */get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc));}/**\n  The new selection produced by the transaction. If\n  [`this.selection`](https://codemirror.net/6/docs/ref/#state.Transaction.selection) is undefined,\n  this will [map](https://codemirror.net/6/docs/ref/#state.EditorSelection.map) the start state's\n  current selection through the changes made by the transaction.\n  */get newSelection(){return this.selection||this.startState.selection.map(this.changes);}/**\n  The new state created by the transaction. Computed on demand\n  (but retained for subsequent access), so it is recommended not to\n  access it in [transaction\n  filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) when possible.\n  */get state(){if(!this._state)this.startState.applyTransaction(this);return this._state;}/**\n  Get the value of the given annotation type, if any.\n  */annotation(type){for(let ann of this.annotations)if(ann.type==type)return ann.value;return void 0;}/**\n  Indicates whether the transaction changed the document.\n  */get docChanged(){return!this.changes.empty;}/**\n  Indicates whether this transaction reconfigures the state\n  (through a [configuration compartment](https://codemirror.net/6/docs/ref/#state.Compartment) or\n  with a top-level configuration\n  [effect](https://codemirror.net/6/docs/ref/#state.StateEffect^reconfigure).\n  */get reconfigured(){return this.startState.config!=this.state.config;}/**\n  Returns true if the transaction has a [user\n  event](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent) annotation that is equal to\n  or more specific than `event`. For example, if the transaction\n  has `\"select.pointer\"` as user event, `\"select\"` and\n  `\"select.pointer\"` will match it.\n  */isUserEvent(event){let e=this.annotation(_Transaction.userEvent);return!!(e&&(e==event||e.length>event.length&&e.slice(0,event.length)==event&&e[event.length]==\".\"));}constructor(startState,changes,selection,effects,annotations,scrollIntoView){this.startState=startState;this.changes=changes;this.selection=selection;this.effects=effects;this.annotations=annotations;this.scrollIntoView=scrollIntoView;this._doc=null;this._state=null;if(selection)checkSelection(selection,changes.newLength);if(!annotations.some(a=>a.type==_Transaction.time))this.annotations=annotations.concat(_Transaction.time.of(Date.now()));}};Transaction.time=/* @__PURE__ */Annotation.define();Transaction.userEvent=/* @__PURE__ */Annotation.define();Transaction.addToHistory=/* @__PURE__ */Annotation.define();Transaction.remote=/* @__PURE__ */Annotation.define();function joinRanges(a,b){let result=[];for(let iA=0,iB=0;;){let from,to;if(iA<a.length&&(iB==b.length||b[iB]>=a[iA])){from=a[iA++];to=a[iA++];}else if(iB<b.length){from=b[iB++];to=b[iB++];}else return result;if(!result.length||result[result.length-1]<from)result.push(from,to);else if(result[result.length-1]<to)result[result.length-1]=to;}}function mergeTransaction(a,b,sequential){var _a;let mapForA,mapForB,changes;if(sequential){mapForA=b.changes;mapForB=ChangeSet.empty(b.changes.length);changes=a.changes.compose(b.changes);}else{mapForA=b.changes.map(a.changes);mapForB=a.changes.mapDesc(b.changes,true);changes=a.changes.compose(mapForA);}return{changes,selection:b.selection?b.selection.map(mapForB):(_a=a.selection)===null||_a===void 0?void 0:_a.map(mapForA),effects:StateEffect.mapEffects(a.effects,mapForA).concat(StateEffect.mapEffects(b.effects,mapForB)),annotations:a.annotations.length?a.annotations.concat(b.annotations):b.annotations,scrollIntoView:a.scrollIntoView||b.scrollIntoView};}function resolveTransactionInner(state,spec,docSize){let sel=spec.selection,annotations=asArray(spec.annotations);if(spec.userEvent)annotations=annotations.concat(Transaction.userEvent.of(spec.userEvent));return{changes:spec.changes instanceof ChangeSet?spec.changes:ChangeSet.of(spec.changes||[],docSize,state.facet(lineSeparator)),selection:sel&&(sel instanceof EditorSelection?sel:EditorSelection.single(sel.anchor,sel.head)),effects:asArray(spec.effects),annotations,scrollIntoView:!!spec.scrollIntoView};}function resolveTransaction(state,specs,filter){let s=resolveTransactionInner(state,specs.length?specs[0]:{},state.doc.length);if(specs.length&&specs[0].filter===false)filter=false;for(let i=1;i<specs.length;i++){if(specs[i].filter===false)filter=false;let seq=!!specs[i].sequential;s=mergeTransaction(s,resolveTransactionInner(state,specs[i],seq?s.changes.newLength:state.doc.length),seq);}let tr=Transaction.create(state,s.changes,s.selection,s.effects,s.annotations,s.scrollIntoView);return extendTransaction(filter?filterTransaction(tr):tr);}function filterTransaction(tr){let state=tr.startState;let result=true;for(let filter of state.facet(changeFilter)){let value=filter(tr);if(value===false){result=false;break;}if(Array.isArray(value))result=result===true?value:joinRanges(result,value);}if(result!==true){let changes,back;if(result===false){back=tr.changes.invertedDesc;changes=ChangeSet.empty(state.doc.length);}else{let filtered=tr.changes.filter(result);changes=filtered.changes;back=filtered.filtered.mapDesc(filtered.changes).invertedDesc;}tr=Transaction.create(state,changes,tr.selection&&tr.selection.map(back),StateEffect.mapEffects(tr.effects,back),tr.annotations,tr.scrollIntoView);}let filters=state.facet(transactionFilter);for(let i=filters.length-1;i>=0;i--){let filtered=filters[i](tr);if(filtered instanceof Transaction)tr=filtered;else if(Array.isArray(filtered)&&filtered.length==1&&filtered[0]instanceof Transaction)tr=filtered[0];else tr=resolveTransaction(state,asArray(filtered),false);}return tr;}function extendTransaction(tr){let state=tr.startState,extenders=state.facet(transactionExtender),spec=tr;for(let i=extenders.length-1;i>=0;i--){let extension=extenders[i](tr);if(extension&&Object.keys(extension).length)spec=mergeTransaction(spec,resolveTransactionInner(state,extension,tr.changes.newLength),true);}return spec==tr?tr:Transaction.create(state,tr.changes,tr.selection,spec.effects,spec.annotations,spec.scrollIntoView);}var none=[];function asArray(value){return value==null?none:Array.isArray(value)?value:[value];}var CharCategory=/* @__PURE__ */function(CharCategory2){CharCategory2[CharCategory2[\"Word\"]=0]=\"Word\";CharCategory2[CharCategory2[\"Space\"]=1]=\"Space\";CharCategory2[CharCategory2[\"Other\"]=2]=\"Other\";return CharCategory2;}(CharCategory||(CharCategory={}));var nonASCIISingleCaseWordChar=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;var wordChar;try{wordChar=/* @__PURE__ */new RegExp(\"[\\\\p{Alphabetic}\\\\p{Number}_]\",\"u\");}catch(_){}function hasWordChar(str){if(wordChar)return wordChar.test(str);for(let i=0;i<str.length;i++){let ch=str[i];if(/\\w/.test(ch)||ch>\"\\x80\"&&(ch.toUpperCase()!=ch.toLowerCase()||nonASCIISingleCaseWordChar.test(ch)))return true;}return false;}function makeCategorizer(wordChars){return char=>{if(!/\\S/.test(char))return CharCategory.Space;if(hasWordChar(char))return CharCategory.Word;for(let i=0;i<wordChars.length;i++)if(char.indexOf(wordChars[i])>-1)return CharCategory.Word;return CharCategory.Other;};}var EditorState=class _EditorState{field(field,require2=true){let addr=this.config.address[field.id];if(addr==null){if(require2)throw new RangeError(\"Field is not present in this state\");return void 0;}ensureAddr(this,addr);return getAddr(this,addr);}/**\n  Create a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction) that updates this\n  state. Any number of [transaction specs](https://codemirror.net/6/docs/ref/#state.TransactionSpec)\n  can be passed. Unless\n  [`sequential`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.sequential) is set, the\n  [changes](https://codemirror.net/6/docs/ref/#state.TransactionSpec.changes) (if any) of each spec\n  are assumed to start in the _current_ document (not the document\n  produced by previous specs), and its\n  [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) and\n  [effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) are assumed to refer\n  to the document created by its _own_ changes. The resulting\n  transaction contains the combined effect of all the different\n  specs. For [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection), later\n  specs take precedence over earlier ones.\n  */update(...specs){return resolveTransaction(this,specs,true);}/**\n  @internal\n  */applyTransaction(tr){let conf=this.config,{base,compartments}=conf;for(let effect of tr.effects){if(effect.is(Compartment.reconfigure)){if(conf){compartments=/* @__PURE__ */new Map;conf.compartments.forEach((val,key)=>compartments.set(key,val));conf=null;}compartments.set(effect.value.compartment,effect.value.extension);}else if(effect.is(StateEffect.reconfigure)){conf=null;base=effect.value;}else if(effect.is(StateEffect.appendConfig)){conf=null;base=asArray(base).concat(effect.value);}}let startValues;if(!conf){conf=Configuration.resolve(base,compartments,this);let intermediateState=new _EditorState(conf,this.doc,this.selection,conf.dynamicSlots.map(()=>null),(state,slot)=>slot.reconfigure(state,this),null);startValues=intermediateState.values;}else{startValues=tr.startState.values.slice();}let selection=tr.startState.facet(allowMultipleSelections)?tr.newSelection:tr.newSelection.asSingle();new _EditorState(conf,tr.newDoc,selection,startValues,(state,slot)=>slot.update(state,tr),tr);}/**\n  Create a [transaction spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec) that\n  replaces every selection range with the given content.\n  */replaceSelection(text){if(typeof text==\"string\")text=this.toText(text);return this.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:text},range:EditorSelection.cursor(range.from+text.length)}));}/**\n  Create a set of changes and a new selection by running the given\n  function for each range in the active selection. The function\n  can return an optional set of changes (in the coordinate space\n  of the start document), plus an updated range (in the coordinate\n  space of the document produced by the call's own changes). This\n  method will merge all the changes and ranges into a single\n  changeset and selection, and return it as a [transaction\n  spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec), which can be passed to\n  [`update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n  */changeByRange(f){let sel=this.selection;let result1=f(sel.ranges[0]);let changes=this.changes(result1.changes),ranges=[result1.range];let effects=asArray(result1.effects);for(let i=1;i<sel.ranges.length;i++){let result=f(sel.ranges[i]);let newChanges=this.changes(result.changes),newMapped=newChanges.map(changes);for(let j=0;j<i;j++)ranges[j]=ranges[j].map(newMapped);let mapBy=changes.mapDesc(newChanges,true);ranges.push(result.range.map(mapBy));changes=changes.compose(newMapped);effects=StateEffect.mapEffects(effects,newMapped).concat(StateEffect.mapEffects(asArray(result.effects),mapBy));}return{changes,selection:EditorSelection.create(ranges,sel.mainIndex),effects};}/**\n  Create a [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet) from the given change\n  description, taking the state's document length and line\n  separator into account.\n  */changes(spec=[]){if(spec instanceof ChangeSet)return spec;return ChangeSet.of(spec,this.doc.length,this.facet(_EditorState.lineSeparator));}/**\n  Using the state's [line\n  separator](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator), create a\n  [`Text`](https://codemirror.net/6/docs/ref/#state.Text) instance from the given string.\n  */toText(string){return Text.of(string.split(this.facet(_EditorState.lineSeparator)||DefaultSplit));}/**\n  Return the given range of the document as a string.\n  */sliceDoc(from=0,to=this.doc.length){return this.doc.sliceString(from,to,this.lineBreak);}/**\n  Get the value of a state [facet](https://codemirror.net/6/docs/ref/#state.Facet).\n  */facet(facet){let addr=this.config.address[facet.id];if(addr==null)return facet.default;ensureAddr(this,addr);return getAddr(this,addr);}/**\n  Convert this state to a JSON-serializable object. When custom\n  fields should be serialized, you can pass them in as an object\n  mapping property names (in the resulting object, which should\n  not use `doc` or `selection`) to fields.\n  */toJSON(fields){let result={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(fields)for(let prop in fields){let value=fields[prop];if(value instanceof StateField&&this.config.address[value.id]!=null)result[prop]=value.spec.toJSON(this.field(fields[prop]),this);}return result;}/**\n  Deserialize a state from its JSON representation. When custom\n  fields should be deserialized, pass the same object you passed\n  to [`toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) when serializing as\n  third argument.\n  */static fromJSON(json,config={},fields){if(!json||typeof json.doc!=\"string\")throw new RangeError(\"Invalid JSON representation for EditorState\");let fieldInit=[];if(fields)for(let prop in fields){if(Object.prototype.hasOwnProperty.call(json,prop)){let field=fields[prop],value=json[prop];fieldInit.push(field.init(state=>field.spec.fromJSON(value,state)));}}return _EditorState.create({doc:json.doc,selection:EditorSelection.fromJSON(json.selection),extensions:config.extensions?fieldInit.concat([config.extensions]):fieldInit});}/**\n  Create a new state. You'll usually only need this when\n  initializing an editor—updated states are created by applying\n  transactions.\n  */static create(config={}){let configuration=Configuration.resolve(config.extensions||[],/* @__PURE__ */new Map);let doc=config.doc instanceof Text?config.doc:Text.of((config.doc||\"\").split(configuration.staticFacet(_EditorState.lineSeparator)||DefaultSplit));let selection=!config.selection?EditorSelection.single(0):config.selection instanceof EditorSelection?config.selection:EditorSelection.single(config.selection.anchor,config.selection.head);checkSelection(selection,doc.length);if(!configuration.staticFacet(allowMultipleSelections))selection=selection.asSingle();return new _EditorState(configuration,doc,selection,configuration.dynamicSlots.map(()=>null),(state,slot)=>slot.create(state),null);}/**\n  The size (in columns) of a tab in the document, determined by\n  the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet.\n  */get tabSize(){return this.facet(_EditorState.tabSize);}/**\n  Get the proper [line-break](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)\n  string for this state.\n  */get lineBreak(){return this.facet(_EditorState.lineSeparator)||\"\\n\";}/**\n  Returns true when the editor is\n  [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only.\n  */get readOnly(){return this.facet(readOnly);}/**\n  Look up a translation for the given phrase (via the\n  [`phrases`](https://codemirror.net/6/docs/ref/#state.EditorState^phrases) facet), or return the\n  original string if no translation is found.\n  \n  If additional arguments are passed, they will be inserted in\n  place of markers like `$1` (for the first value) and `$2`, etc.\n  A single `$` is equivalent to `$1`, and `$$` will produce a\n  literal dollar sign.\n  */phrase(phrase,...insert2){for(let map of this.facet(_EditorState.phrases))if(Object.prototype.hasOwnProperty.call(map,phrase)){phrase=map[phrase];break;}if(insert2.length)phrase=phrase.replace(/\\$(\\$|\\d*)/g,(m,i)=>{if(i==\"$\")return\"$\";let n=+(i||1);return!n||n>insert2.length?m:insert2[n-1];});return phrase;}/**\n  Find the values for a given language data field, provided by the\n  the [`languageData`](https://codemirror.net/6/docs/ref/#state.EditorState^languageData) facet.\n  \n  Examples of language data fields are...\n  \n  - [`\"commentTokens\"`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) for specifying\n    comment syntax.\n  - [`\"autocomplete\"`](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion^config.override)\n    for providing language-specific completion sources.\n  - [`\"wordChars\"`](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) for adding\n    characters that should be considered part of words in this\n    language.\n  - [`\"closeBrackets\"`](https://codemirror.net/6/docs/ref/#autocomplete.CloseBracketConfig) controls\n    bracket closing behavior.\n  */languageDataAt(name,pos,side=-1){let values=[];for(let provider of this.facet(languageData)){for(let result of provider(this,pos,side)){if(Object.prototype.hasOwnProperty.call(result,name))values.push(result[name]);}}return values;}/**\n  Return a function that can categorize strings (expected to\n  represent a single [grapheme cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak))\n  into one of:\n  \n   - Word (contains an alphanumeric character or a character\n     explicitly listed in the local language's `\"wordChars\"`\n     language data, which should be a string)\n   - Space (contains only whitespace)\n   - Other (anything else)\n  */charCategorizer(at){return makeCategorizer(this.languageDataAt(\"wordChars\",at).join(\"\"));}/**\n  Find the word at the given position, meaning the range\n  containing all [word](https://codemirror.net/6/docs/ref/#state.CharCategory.Word) characters\n  around it. If no word characters are adjacent to the position,\n  this returns null.\n  */wordAt(pos){let{text,from,length}=this.doc.lineAt(pos);let cat=this.charCategorizer(pos);let start=pos-from,end=pos-from;while(start>0){let prev=findClusterBreak2(text,start,false);if(cat(text.slice(prev,start))!=CharCategory.Word)break;start=prev;}while(end<length){let next=findClusterBreak2(text,end);if(cat(text.slice(end,next))!=CharCategory.Word)break;end=next;}return start==end?null:EditorSelection.range(start+from,end+from);}constructor(config,doc,selection,values,computeSlot,tr){this.config=config;this.doc=doc;this.selection=selection;this.values=values;this.status=config.statusTemplate.slice();this.computeSlot=computeSlot;if(tr)tr._state=this;for(let i=0;i<this.config.dynamicSlots.length;i++)ensureAddr(this,i<<1);this.computeSlot=null;}};EditorState.allowMultipleSelections=allowMultipleSelections;EditorState.tabSize=/* @__PURE__ */Facet.define({combine:values=>values.length?values[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=/* @__PURE__ */Facet.define({compare(a,b){let kA=Object.keys(a),kB=Object.keys(b);return kA.length==kB.length&&kA.every(k=>a[k]==b[k]);}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=/* @__PURE__ */StateEffect.define();function combineConfig(configs,defaults,combine={}){let result={};for(let config of configs)for(let key of Object.keys(config)){let value=config[key],current=result[key];if(current===void 0)result[key]=value;else if(current===value||value===void 0);else if(Object.hasOwnProperty.call(combine,key))result[key]=combine[key](current,value);else throw new Error(\"Config merge conflict for field \"+key);}for(let key in defaults)if(result[key]===void 0)result[key]=defaults[key];return result;}var RangeValue=class{/**\n  Compare this value with another value. Used when comparing\n  rangesets. The default implementation compares by identity.\n  Unless you are only creating a fixed number of unique instances\n  of your value type, it is a good idea to implement this\n  properly.\n  */eq(other){return this==other;}/**\n  Create a [range](https://codemirror.net/6/docs/ref/#state.Range) with this value.\n  */range(from,to=from){return Range.create(from,to,this);}};RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=false;RangeValue.prototype.mapMode=MapMode.TrackDel;var Range=class _Range{/**\n  @internal\n  */static create(from,to,value){return new _Range(from,to,value);}constructor(from,to,value){this.from=from;this.to=to;this.value=value;}};function cmpRange(a,b){return a.from-b.from||a.value.startSide-b.value.startSide;}var Chunk=class _Chunk{get length(){return this.to[this.to.length-1];}// Find the index of the given position and side. Use the ranges'\n// `from` pos when `end == false`, `to` when `end == true`.\nfindIndex(pos,side,end,startAt=0){let arr=end?this.to:this.from;for(let lo=startAt,hi=arr.length;;){if(lo==hi)return lo;let mid=lo+hi>>1;let diff=arr[mid]-pos||(end?this.value[mid].endSide:this.value[mid].startSide)-side;if(mid==lo)return diff>=0?lo:hi;if(diff>=0)hi=mid;else lo=mid+1;}}between(offset,from,to,f){for(let i=this.findIndex(from,-1e9,true),e=this.findIndex(to,1e9,false,i);i<e;i++)if(f(this.from[i]+offset,this.to[i]+offset,this.value[i])===false)return false;}map(offset,changes){let value=[],from=[],to=[],newPos=-1,maxPoint=-1;for(let i=0;i<this.value.length;i++){let val=this.value[i],curFrom=this.from[i]+offset,curTo=this.to[i]+offset,newFrom,newTo;if(curFrom==curTo){let mapped=changes.mapPos(curFrom,val.startSide,val.mapMode);if(mapped==null)continue;newFrom=newTo=mapped;if(val.startSide!=val.endSide){newTo=changes.mapPos(curFrom,val.endSide);if(newTo<newFrom)continue;}}else{newFrom=changes.mapPos(curFrom,val.startSide);newTo=changes.mapPos(curTo,val.endSide);if(newFrom>newTo||newFrom==newTo&&val.startSide>0&&val.endSide<=0)continue;}if((newTo-newFrom||val.endSide-val.startSide)<0)continue;if(newPos<0)newPos=newFrom;if(val.point)maxPoint=Math.max(maxPoint,newTo-newFrom);value.push(val);from.push(newFrom-newPos);to.push(newTo-newPos);}return{mapped:value.length?new _Chunk(from,to,value,maxPoint):null,pos:newPos};}constructor(from,to,value,maxPoint){this.from=from;this.to=to;this.value=value;this.maxPoint=maxPoint;}};var RangeSet=class _RangeSet{/**\n  @internal\n  */static create(chunkPos,chunk,nextLayer,maxPoint){return new _RangeSet(chunkPos,chunk,nextLayer,maxPoint);}/**\n  @internal\n  */get length(){let last=this.chunk.length-1;return last<0?0:Math.max(this.chunkEnd(last),this.nextLayer.length);}/**\n  The number of ranges in the set.\n  */get size(){if(this.isEmpty)return 0;let size=this.nextLayer.size;for(let chunk of this.chunk)size+=chunk.value.length;return size;}/**\n  @internal\n  */chunkEnd(index){return this.chunkPos[index]+this.chunk[index].length;}/**\n  Update the range set, optionally adding new ranges or filtering\n  out existing ones.\n  \n  (Note: The type parameter is just there as a kludge to work\n  around TypeScript variance issues that prevented `RangeSet<X>`\n  from being a subtype of `RangeSet<Y>` when `X` is a subtype of\n  `Y`.)\n  */update(updateSpec){let{add=[],sort=false,filterFrom=0,filterTo=this.length}=updateSpec;let filter=updateSpec.filter;if(add.length==0&&!filter)return this;if(sort)add=add.slice().sort(cmpRange);if(this.isEmpty)return add.length?_RangeSet.of(add):this;let cur=new LayerCursor(this,null,-1).goto(0),i=0,spill=[];let builder=new RangeSetBuilder;while(cur.value||i<add.length){if(i<add.length&&(cur.from-add[i].from||cur.startSide-add[i].value.startSide)>=0){let range=add[i++];if(!builder.addInner(range.from,range.to,range.value))spill.push(range);}else if(cur.rangeIndex==1&&cur.chunkIndex<this.chunk.length&&(i==add.length||this.chunkEnd(cur.chunkIndex)<add[i].from)&&(!filter||filterFrom>this.chunkEnd(cur.chunkIndex)||filterTo<this.chunkPos[cur.chunkIndex])&&builder.addChunk(this.chunkPos[cur.chunkIndex],this.chunk[cur.chunkIndex])){cur.nextChunk();}else{if(!filter||filterFrom>cur.to||filterTo<cur.from||filter(cur.from,cur.to,cur.value)){if(!builder.addInner(cur.from,cur.to,cur.value))spill.push(Range.create(cur.from,cur.to,cur.value));}cur.next();}}return builder.finishInner(this.nextLayer.isEmpty&&!spill.length?_RangeSet.empty:this.nextLayer.update({add:spill,filter,filterFrom,filterTo}));}/**\n  Map this range set through a set of changes, return the new set.\n  */map(changes){if(changes.empty||this.isEmpty)return this;let chunks=[],chunkPos=[],maxPoint=-1;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];let touch=changes.touchesRange(start,start+chunk.length);if(touch===false){maxPoint=Math.max(maxPoint,chunk.maxPoint);chunks.push(chunk);chunkPos.push(changes.mapPos(start));}else if(touch===true){let{mapped,pos}=chunk.map(start,changes);if(mapped){maxPoint=Math.max(maxPoint,mapped.maxPoint);chunks.push(mapped);chunkPos.push(pos);}}}let next=this.nextLayer.map(changes);return chunks.length==0?next:new _RangeSet(chunkPos,chunks,next||_RangeSet.empty,maxPoint);}/**\n  Iterate over the ranges that touch the region `from` to `to`,\n  calling `f` for each. There is no guarantee that the ranges will\n  be reported in any specific order. When the callback returns\n  `false`, iteration stops.\n  */between(from,to,f){if(this.isEmpty)return;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];if(to>=start&&from<=start+chunk.length&&chunk.between(start,from-start,to-start,f)===false)return;}this.nextLayer.between(from,to,f);}/**\n  Iterate over the ranges in this set, in order, including all\n  ranges that end at or after `from`.\n  */iter(from=0){return HeapCursor.from([this]).goto(from);}/**\n  @internal\n  */get isEmpty(){return this.nextLayer==this;}/**\n  Iterate over the ranges in a collection of sets, in order,\n  starting from `from`.\n  */static iter(sets,from=0){return HeapCursor.from(sets).goto(from);}/**\n  Iterate over two groups of sets, calling methods on `comparator`\n  to notify it of possible differences.\n  */static compare(oldSets,newSets,textDiff,comparator,minPointSize=-1){let a=oldSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let b=newSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let sharedChunks=findSharedChunks(a,b,textDiff);let sideA=new SpanCursor(a,sharedChunks,minPointSize);let sideB=new SpanCursor(b,sharedChunks,minPointSize);textDiff.iterGaps((fromA,fromB,length)=>compare(sideA,fromA,sideB,fromB,length,comparator));if(textDiff.empty&&textDiff.length==0)compare(sideA,0,sideB,0,0,comparator);}/**\n  Compare the contents of two groups of range sets, returning true\n  if they are equivalent in the given range.\n  */static eq(oldSets,newSets,from=0,to){if(to==null)to=1e9-1;let a=oldSets.filter(set=>!set.isEmpty&&newSets.indexOf(set)<0);let b=newSets.filter(set=>!set.isEmpty&&oldSets.indexOf(set)<0);if(a.length!=b.length)return false;if(!a.length)return true;let sharedChunks=findSharedChunks(a,b);let sideA=new SpanCursor(a,sharedChunks,0).goto(from),sideB=new SpanCursor(b,sharedChunks,0).goto(from);for(;;){if(sideA.to!=sideB.to||!sameValues(sideA.active,sideB.active)||sideA.point&&(!sideB.point||!sideA.point.eq(sideB.point)))return false;if(sideA.to>to)return true;sideA.next();sideB.next();}}/**\n  Iterate over a group of range sets at the same time, notifying\n  the iterator about the ranges covering every given piece of\n  content. Returns the open count (see\n  [`SpanIterator.span`](https://codemirror.net/6/docs/ref/#state.SpanIterator.span)) at the end\n  of the iteration.\n  */static spans(sets,from,to,iterator,minPointSize=-1){let cursor=new SpanCursor(sets,null,minPointSize).goto(from),pos=from;let openRanges=cursor.openStart;for(;;){let curTo=Math.min(cursor.to,to);if(cursor.point){let active=cursor.activeForPoint(cursor.to);let openCount=cursor.pointFrom<from?active.length+1:cursor.point.startSide<0?active.length:Math.min(active.length,openRanges);iterator.point(pos,curTo,cursor.point,active,openCount,cursor.pointRank);openRanges=Math.min(cursor.openEnd(curTo),active.length);}else if(curTo>pos){iterator.span(pos,curTo,cursor.active,openRanges);openRanges=cursor.openEnd(curTo);}if(cursor.to>to)return openRanges+(cursor.point&&cursor.to>to?1:0);pos=cursor.to;cursor.next();}}/**\n  Create a range set for the given range or array of ranges. By\n  default, this expects the ranges to be _sorted_ (by start\n  position and, if two start at the same position,\n  `value.startSide`). You can pass `true` as second argument to\n  cause the method to sort them.\n  */static of(ranges,sort=false){let build=new RangeSetBuilder;for(let range of ranges instanceof Range?[ranges]:sort?lazySort(ranges):ranges)build.add(range.from,range.to,range.value);return build.finish();}/**\n  Join an array of range sets into a single set.\n  */static join(sets){if(!sets.length)return _RangeSet.empty;let result=sets[sets.length-1];for(let i=sets.length-2;i>=0;i--){for(let layer=sets[i];layer!=_RangeSet.empty;layer=layer.nextLayer)result=new _RangeSet(layer.chunkPos,layer.chunk,result,Math.max(layer.maxPoint,result.maxPoint));}return result;}constructor(chunkPos,chunk,nextLayer,maxPoint){this.chunkPos=chunkPos;this.chunk=chunk;this.nextLayer=nextLayer;this.maxPoint=maxPoint;}};RangeSet.empty=/* @__PURE__ */new RangeSet([],[],null,-1);function lazySort(ranges){if(ranges.length>1)for(let prev=ranges[0],i=1;i<ranges.length;i++){let cur=ranges[i];if(cmpRange(prev,cur)>0)return ranges.slice().sort(cmpRange);prev=cur;}return ranges;}RangeSet.empty.nextLayer=RangeSet.empty;var RangeSetBuilder=class _RangeSetBuilder{finishChunk(newArrays){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint));this.chunkPos.push(this.chunkStart);this.chunkStart=-1;this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint);this.maxPoint=-1;if(newArrays){this.from=[];this.to=[];this.value=[];}}/**\n  Add a range. Ranges should be added in sorted (by `from` and\n  `value.startSide`) order.\n  */add(from,to,value){if(!this.addInner(from,to,value))(this.nextLayer||(this.nextLayer=new _RangeSetBuilder)).add(from,to,value);}/**\n  @internal\n  */addInner(from,to,value){let diff=from-this.lastTo||value.startSide-this.last.endSide;if(diff<=0&&(from-this.lastFrom||value.startSide-this.last.startSide)<0)throw new Error(\"Ranges must be added sorted by `from` position and `startSide`\");if(diff<0)return false;if(this.from.length==250)this.finishChunk(true);if(this.chunkStart<0)this.chunkStart=from;this.from.push(from-this.chunkStart);this.to.push(to-this.chunkStart);this.last=value;this.lastFrom=from;this.lastTo=to;this.value.push(value);if(value.point)this.maxPoint=Math.max(this.maxPoint,to-from);return true;}/**\n  @internal\n  */addChunk(from,chunk){if((from-this.lastTo||chunk.value[0].startSide-this.last.endSide)<0)return false;if(this.from.length)this.finishChunk(true);this.setMaxPoint=Math.max(this.setMaxPoint,chunk.maxPoint);this.chunks.push(chunk);this.chunkPos.push(from);let last=chunk.value.length-1;this.last=chunk.value[last];this.lastFrom=chunk.from[last]+from;this.lastTo=chunk.to[last]+from;return true;}/**\n  Finish the range set. Returns the new set. The builder can't be\n  used anymore after this has been called.\n  */finish(){return this.finishInner(RangeSet.empty);}/**\n  @internal\n  */finishInner(next){if(this.from.length)this.finishChunk(false);if(this.chunks.length==0)return next;let result=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(next):next,this.setMaxPoint);this.from=null;return result;}/**\n  Create an empty builder.\n  */constructor(){this.chunks=[];this.chunkPos=[];this.chunkStart=-1;this.last=null;this.lastFrom=-1e9;this.lastTo=-1e9;this.from=[];this.to=[];this.value=[];this.maxPoint=-1;this.setMaxPoint=-1;this.nextLayer=null;}};function findSharedChunks(a,b,textDiff){let inA=/* @__PURE__ */new Map;for(let set of a)for(let i=0;i<set.chunk.length;i++)if(set.chunk[i].maxPoint<=0)inA.set(set.chunk[i],set.chunkPos[i]);let shared=/* @__PURE__ */new Set;for(let set of b)for(let i=0;i<set.chunk.length;i++){let known=inA.get(set.chunk[i]);if(known!=null&&(textDiff?textDiff.mapPos(known):known)==set.chunkPos[i]&&!(textDiff===null||textDiff===void 0?void 0:textDiff.touchesRange(known,known+set.chunk[i].length)))shared.add(set.chunk[i]);}return shared;}var LayerCursor=class{get startSide(){return this.value?this.value.startSide:0;}get endSide(){return this.value?this.value.endSide:0;}goto(pos,side=-1e9){this.chunkIndex=this.rangeIndex=0;this.gotoInner(pos,side,false);return this;}gotoInner(pos,side,forward){while(this.chunkIndex<this.layer.chunk.length){let next=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(next)||this.layer.chunkEnd(this.chunkIndex)<pos||next.maxPoint<this.minPoint))break;this.chunkIndex++;forward=false;}if(this.chunkIndex<this.layer.chunk.length){let rangeIndex=this.layer.chunk[this.chunkIndex].findIndex(pos-this.layer.chunkPos[this.chunkIndex],side,true);if(!forward||this.rangeIndex<rangeIndex)this.setRangeIndex(rangeIndex);}this.next();}forward(pos,side){if((this.to-pos||this.endSide-side)<0)this.gotoInner(pos,side,true);}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9;this.value=null;break;}else{let chunkPos=this.layer.chunkPos[this.chunkIndex],chunk=this.layer.chunk[this.chunkIndex];let from=chunkPos+chunk.from[this.rangeIndex];this.from=from;this.to=chunkPos+chunk.to[this.rangeIndex];this.value=chunk.value[this.rangeIndex];this.setRangeIndex(this.rangeIndex+1);if(this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break;}}}setRangeIndex(index){if(index==this.layer.chunk[this.chunkIndex].value.length){this.chunkIndex++;if(this.skip){while(this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]))this.chunkIndex++;}this.rangeIndex=0;}else{this.rangeIndex=index;}}nextChunk(){this.chunkIndex++;this.rangeIndex=0;this.next();}compare(other){return this.from-other.from||this.startSide-other.startSide||this.rank-other.rank||this.to-other.to||this.endSide-other.endSide;}constructor(layer,skip,minPoint,rank=0){this.layer=layer;this.skip=skip;this.minPoint=minPoint;this.rank=rank;}};var HeapCursor=class _HeapCursor{static from(sets,skip=null,minPoint=-1){let heap=[];for(let i=0;i<sets.length;i++){for(let cur=sets[i];!cur.isEmpty;cur=cur.nextLayer){if(cur.maxPoint>=minPoint)heap.push(new LayerCursor(cur,skip,minPoint,i));}}return heap.length==1?heap[0]:new _HeapCursor(heap);}get startSide(){return this.value?this.value.startSide:0;}goto(pos,side=-1e9){for(let cur of this.heap)cur.goto(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);this.next();return this;}forward(pos,side){for(let cur of this.heap)cur.forward(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);if((this.to-pos||this.value.endSide-side)<0)this.next();}next(){if(this.heap.length==0){this.from=this.to=1e9;this.value=null;this.rank=-1;}else{let top=this.heap[0];this.from=top.from;this.to=top.to;this.value=top.value;this.rank=top.rank;if(top.value)top.next();heapBubble(this.heap,0);}}constructor(heap){this.heap=heap;}};function heapBubble(heap,index){for(let cur=heap[index];;){let childIndex=(index<<1)+1;if(childIndex>=heap.length)break;let child=heap[childIndex];if(childIndex+1<heap.length&&child.compare(heap[childIndex+1])>=0){child=heap[childIndex+1];childIndex++;}if(cur.compare(child)<0)break;heap[childIndex]=cur;heap[index]=child;index=childIndex;}}var SpanCursor=class{goto(pos,side=-1e9){this.cursor.goto(pos,side);this.active.length=this.activeTo.length=this.activeRank.length=0;this.minActive=-1;this.to=pos;this.endSide=side;this.openStart=-1;this.next();return this;}forward(pos,side){while(this.minActive>-1&&(this.activeTo[this.minActive]-pos||this.active[this.minActive].endSide-side)<0)this.removeActive(this.minActive);this.cursor.forward(pos,side);}removeActive(index){remove(this.active,index);remove(this.activeTo,index);remove(this.activeRank,index);this.minActive=findMinIndex(this.active,this.activeTo);}addActive(trackOpen){let i=0,{value,to,rank}=this.cursor;while(i<this.activeRank.length&&(rank-this.activeRank[i]||to-this.activeTo[i])>0)i++;insert(this.active,i,value);insert(this.activeTo,i,to);insert(this.activeRank,i,rank);if(trackOpen)insert(trackOpen,i,this.cursor.from);this.minActive=findMinIndex(this.active,this.activeTo);}// After calling this, if `this.point` != null, the next range is a\n// point. Otherwise, it's a regular range, covered by `this.active`.\nnext(){let from=this.to,wasPoint=this.point;this.point=null;let trackOpen=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>from){this.to=this.activeTo[a];this.endSide=this.active[a].endSide;break;}this.removeActive(a);if(trackOpen)remove(trackOpen,a);}else if(!this.cursor.value){this.to=this.endSide=1e9;break;}else if(this.cursor.from>from){this.to=this.cursor.from;this.endSide=this.cursor.startSide;break;}else{let nextVal=this.cursor.value;if(!nextVal.point){this.addActive(trackOpen);this.cursor.next();}else if(wasPoint&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to){this.cursor.next();}else{this.point=nextVal;this.pointFrom=this.cursor.from;this.pointRank=this.cursor.rank;this.to=this.cursor.to;this.endSide=nextVal.endSide;this.cursor.next();this.forward(this.to,this.endSide);break;}}}if(trackOpen){this.openStart=0;for(let i=trackOpen.length-1;i>=0&&trackOpen[i]<from;i--)this.openStart++;}}activeForPoint(to){if(!this.active.length)return this.active;let active=[];for(let i=this.active.length-1;i>=0;i--){if(this.activeRank[i]<this.pointRank)break;if(this.activeTo[i]>to||this.activeTo[i]==to&&this.active[i].endSide>=this.point.endSide)active.push(this.active[i]);}return active.reverse();}openEnd(to){let open=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>to;i--)open++;return open;}constructor(sets,skip,minPoint){this.minPoint=minPoint;this.active=[];this.activeTo=[];this.activeRank=[];this.minActive=-1;this.point=null;this.pointFrom=0;this.pointRank=0;this.to=-1e9;this.endSide=0;this.openStart=-1;this.cursor=HeapCursor.from(sets,skip,minPoint);}};function compare(a,startA,b,startB,length,comparator){a.goto(startA);b.goto(startB);let endB=startB+length;let pos=startB,dPos=startB-startA;for(;;){let dEnd=a.to+dPos-b.to,diff=dEnd||a.endSide-b.endSide;let end=diff<0?a.to+dPos:b.to,clipEnd=Math.min(end,endB);if(a.point||b.point){if(!(a.point&&b.point&&(a.point==b.point||a.point.eq(b.point))&&sameValues(a.activeForPoint(a.to),b.activeForPoint(b.to))))comparator.comparePoint(pos,clipEnd,a.point,b.point);}else{if(clipEnd>pos&&!sameValues(a.active,b.active))comparator.compareRange(pos,clipEnd,a.active,b.active);}if(end>endB)break;if((dEnd||a.openEnd!=b.openEnd)&&comparator.boundChange)comparator.boundChange(end);pos=end;if(diff<=0)a.next();if(diff>=0)b.next();}}function sameValues(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(a[i]!=b[i]&&!a[i].eq(b[i]))return false;return true;}function remove(array,index){for(let i=index,e=array.length-1;i<e;i++)array[i]=array[i+1];array.pop();}function insert(array,index,value){for(let i=array.length-1;i>=index;i--)array[i+1]=array[i];array[index]=value;}function findMinIndex(value,array){let found=-1,foundPos=1e9;for(let i=0;i<array.length;i++)if((array[i]-foundPos||value[i].endSide-value[found].endSide)<0){found=i;foundPos=array[i];}return found;}function countColumn(string,tabSize,to=string.length){let n=0;for(let i=0;i<to&&i<string.length;){if(string.charCodeAt(i)==9){n+=tabSize-n%tabSize;i++;}else{n++;i=findClusterBreak2(string,i);}}return n;}function findColumn(string,col,tabSize,strict){for(let i=0,n=0;;){if(n>=col)return i;if(i==string.length)break;n+=string.charCodeAt(i)==9?tabSize-n%tabSize:1;i=findClusterBreak2(string,i);}return strict===true?-1:string.length;}export{Annotation,AnnotationType,ChangeDesc,ChangeSet,CharCategory,Compartment,EditorSelection,EditorState,Facet,Line,MapMode,Prec,Range,RangeSet,RangeSetBuilder,RangeValue,SelectionRange,StateEffect,StateEffectType,StateField,Text,Transaction,codePointAt2 as codePointAt,codePointSize2 as codePointSize,combineConfig,countColumn,findClusterBreak2 as findClusterBreak,findColumn,fromCodePoint,};\nexport const __FramerMetadata__ = {\"exports\":{\"AnnotationType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Facet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Text\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Compartment\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Prec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Transaction\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ChangeDesc\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ChangeSet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Line\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fromCodePoint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RangeSetBuilder\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StateEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"findClusterBreak\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"codePointAt\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MapMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Annotation\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SelectionRange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"findColumn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"combineConfig\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RangeSet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StateEffectType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CharCategory\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorSelection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"codePointSize\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countColumn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StateField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Range\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RangeValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./codemirror_state.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/view/dist/index.js\nimport{Text,RangeSet,MapMode,RangeValue,findClusterBreak,EditorSelection,Facet,StateEffect,ChangeSet,findColumn,CharCategory,EditorState,Annotation,Transaction,Prec,codePointAt,codePointSize,combineConfig,StateField,RangeSetBuilder,countColumn}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/TWvikt1kG1sKU5G0pMRF/codemirror_state.js\";// ../../node_modules/style-mod/src/style-mod.js\nvar C=\"ͼ\";var COUNT=typeof Symbol==\"undefined\"?\"__\"+C:Symbol.for(C);var SET=typeof Symbol==\"undefined\"?\"__styleSet\"+Math.floor(Math.random()*1e8):Symbol(\"styleSet\");var top=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:{};var StyleModule=class{// :: () → string\n// Returns a string containing the module's CSS rules.\ngetRules(){return this.rules.join(\"\\n\");}// :: () → string\n// Generate a new unique CSS class name.\nstatic newName(){let id=top[COUNT]||1;top[COUNT]=id+1;return C+id.toString(36);}// :: (union<Document, ShadowRoot>, union<[StyleModule], StyleModule>, ?{nonce: ?string})\n//\n// Mount the given set of modules in the given DOM root, which ensures\n// that the CSS rules defined by the module are available in that\n// context.\n//\n// Rules are only added to the document once per root.\n//\n// Rule order will follow the order of the modules, so that rules from\n// modules later in the array take precedence of those from earlier\n// modules. If you call this function multiple times for the same root\n// in a way that changes the order of already mounted modules, the old\n// order will be changed.\n//\n// If a Content Security Policy nonce is provided, it is added to\n// the `<style>` tag generated by the library.\nstatic mount(root,modules,options){let set=root[SET],nonce=options&&options.nonce;if(!set)set=new StyleSet(root,nonce);else if(nonce)set.setNonce(nonce);set.mount(Array.isArray(modules)?modules:[modules],root);}// :: (Object<Style>, ?{finish: ?(string) → string})\n// Create a style module from the given spec.\n//\n// When `finish` is given, it is called on regular (non-`@`)\n// selectors (after `&` expansion) to compute the final selector.\nconstructor(spec,options){this.rules=[];let{finish}=options||{};function splitSelector(selector){return/^@/.test(selector)?[selector]:selector.split(/,\\s*/);}function render(selectors,spec2,target,isKeyframes){let local=[],isAt=/^@(\\w+)\\b/.exec(selectors[0]),keyframes=isAt&&isAt[1]==\"keyframes\";if(isAt&&spec2==null)return target.push(selectors[0]+\";\");for(let prop in spec2){let value=spec2[prop];if(/&/.test(prop)){render(prop.split(/,\\s*/).map(part=>selectors.map(sel=>part.replace(/&/,sel))).reduce((a,b)=>a.concat(b)),value,target);}else if(value&&typeof value==\"object\"){if(!isAt)throw new RangeError(\"The value of a property (\"+prop+\") should be a primitive value.\");render(splitSelector(prop),value,local,keyframes);}else if(value!=null){local.push(prop.replace(/_.*/,\"\").replace(/[A-Z]/g,l=>\"-\"+l.toLowerCase())+\": \"+value+\";\");}}if(local.length||keyframes){target.push((finish&&!isAt&&!isKeyframes?selectors.map(finish):selectors).join(\", \")+\" {\"+local.join(\" \")+\"}\");}}for(let prop in spec)render(splitSelector(prop),spec[prop],this.rules);}};var adoptedSet=/* @__PURE__ */new Map;var StyleSet=class{mount(modules,root){let sheet=this.sheet;let pos=0,j=0;for(let i=0;i<modules.length;i++){let mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&index>-1){this.modules.splice(index,1);j--;index=-1;}if(index==-1){this.modules.splice(j++,0,mod);if(sheet)for(let k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++);}else{while(j<index)pos+=this.modules[j++].rules.length;pos+=mod.rules.length;j++;}}if(sheet){if(root.adoptedStyleSheets.indexOf(this.sheet)<0)root.adoptedStyleSheets=[this.sheet,...root.adoptedStyleSheets];}else{let text=\"\";for(let i=0;i<this.modules.length;i++)text+=this.modules[i].getRules()+\"\\n\";this.styleTag.textContent=text;let target=root.head||root;if(this.styleTag.parentNode!=target)target.insertBefore(this.styleTag,target.firstChild);}}setNonce(nonce){if(this.styleTag&&this.styleTag.getAttribute(\"nonce\")!=nonce)this.styleTag.setAttribute(\"nonce\",nonce);}constructor(root,nonce){let doc2=root.ownerDocument||root,win=doc2.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){let adopted=adoptedSet.get(doc2);if(adopted)return root[SET]=adopted;this.sheet=new win.CSSStyleSheet;adoptedSet.set(doc2,this);}else{this.styleTag=doc2.createElement(\"style\");if(nonce)this.styleTag.setAttribute(\"nonce\",nonce);}this.modules=[];root[SET]=this;}};// ../../node_modules/w3c-keyname/index.js\nvar base={8:\"Backspace\",9:\"Tab\",10:\"Enter\",12:\"NumLock\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",44:\"PrintScreen\",45:\"Insert\",46:\"Delete\",59:\";\",61:\"=\",91:\"Meta\",92:\"Meta\",106:\"*\",107:\"+\",108:\",\",109:\"-\",110:\".\",111:\"/\",144:\"NumLock\",145:\"ScrollLock\",160:\"Shift\",161:\"Shift\",162:\"Control\",163:\"Control\",164:\"Alt\",165:\"Alt\",173:\"-\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"};var shift={48:\")\",49:\"!\",50:\"@\",51:\"#\",52:\"$\",53:\"%\",54:\"^\",55:\"&\",56:\"*\",57:\"(\",59:\":\",61:\"+\",173:\"_\",186:\":\",187:\"+\",188:\"<\",189:\"_\",190:\">\",191:\"?\",192:\"~\",219:\"{\",220:\"|\",221:\"}\",222:'\"'};var mac=typeof navigator!=\"undefined\"&&/Mac/.test(navigator.platform);var ie=typeof navigator!=\"undefined\"&&/MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);for(i=0;i<10;i++)base[48+i]=base[96+i]=String(i);var i;for(i=1;i<=24;i++)base[i+111]=\"F\"+i;var i;for(i=65;i<=90;i++){base[i]=String.fromCharCode(i+32);shift[i]=String.fromCharCode(i);}var i;for(code in base)if(!shift.hasOwnProperty(code))shift[code]=base[code];var code;function keyName(event){var ignoreKey=mac&&event.metaKey&&event.shiftKey&&!event.ctrlKey&&!event.altKey||ie&&event.shiftKey&&event.key&&event.key.length==1||event.key==\"Unidentified\";var name=!ignoreKey&&event.key||(event.shiftKey?shift:base)[event.keyCode]||event.key||\"Unidentified\";if(name==\"Esc\")name=\"Escape\";if(name==\"Del\")name=\"Delete\";if(name==\"Left\")name=\"ArrowLeft\";if(name==\"Up\")name=\"ArrowUp\";if(name==\"Right\")name=\"ArrowRight\";if(name==\"Down\")name=\"ArrowDown\";return name;}// ../../node_modules/@codemirror/view/dist/index.js\nfunction getSelection(root){let target;if(root.nodeType==11){target=root.getSelection?root:root.ownerDocument;}else{target=root;}return target.getSelection();}function contains(dom,node){return node?dom==node||dom.contains(node.nodeType!=1?node.parentNode:node):false;}function hasSelection(dom,selection){if(!selection.anchorNode)return false;try{return contains(dom,selection.anchorNode);}catch(_){return false;}}function clientRectsFor(dom){if(dom.nodeType==3)return textRange(dom,0,dom.nodeValue.length).getClientRects();else if(dom.nodeType==1)return dom.getClientRects();else return[];}function isEquivalentPosition(node,off,targetNode,targetOff){return targetNode?scanFor(node,off,targetNode,targetOff,-1)||scanFor(node,off,targetNode,targetOff,1):false;}function domIndex(node){for(var index=0;;index++){node=node.previousSibling;if(!node)return index;}}function isBlockElement(node){return node.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\\d|SECTION|PRE)$/.test(node.nodeName);}function scanFor(node,off,targetNode,targetOff,dir){for(;;){if(node==targetNode&&off==targetOff)return true;if(off==(dir<0?0:maxOffset(node))){if(node.nodeName==\"DIV\")return false;let parent=node.parentNode;if(!parent||parent.nodeType!=1)return false;off=domIndex(node)+(dir<0?0:1);node=parent;}else if(node.nodeType==1){node=node.childNodes[off+(dir<0?-1:0)];if(node.nodeType==1&&node.contentEditable==\"false\")return false;off=dir<0?maxOffset(node):0;}else{return false;}}}function maxOffset(node){return node.nodeType==3?node.nodeValue.length:node.childNodes.length;}function flattenRect(rect,left){let x=left?rect.left:rect.right;return{left:x,right:x,top:rect.top,bottom:rect.bottom};}function windowRect(win){let vp=win.visualViewport;if(vp)return{left:0,right:vp.width,top:0,bottom:vp.height};return{left:0,right:win.innerWidth,top:0,bottom:win.innerHeight};}function getScale(elt,rect){let scaleX=rect.width/elt.offsetWidth;let scaleY=rect.height/elt.offsetHeight;if(scaleX>.995&&scaleX<1.005||!isFinite(scaleX)||Math.abs(rect.width-elt.offsetWidth)<1)scaleX=1;if(scaleY>.995&&scaleY<1.005||!isFinite(scaleY)||Math.abs(rect.height-elt.offsetHeight)<1)scaleY=1;return{scaleX,scaleY};}function scrollRectIntoView(dom,rect,side,x,y,xMargin,yMargin,ltr){let doc2=dom.ownerDocument,win=doc2.defaultView||window;for(let cur=dom,stop=false;cur&&!stop;){if(cur.nodeType==1){let bounding,top2=cur==doc2.body;let scaleX=1,scaleY=1;if(top2){bounding=windowRect(win);}else{if(/^(fixed|sticky)$/.test(getComputedStyle(cur).position))stop=true;if(cur.scrollHeight<=cur.clientHeight&&cur.scrollWidth<=cur.clientWidth){cur=cur.assignedSlot||cur.parentNode;continue;}let rect2=cur.getBoundingClientRect();({scaleX,scaleY}=getScale(cur,rect2));bounding={left:rect2.left,right:rect2.left+cur.clientWidth*scaleX,top:rect2.top,bottom:rect2.top+cur.clientHeight*scaleY};}let moveX=0,moveY=0;if(y==\"nearest\"){if(rect.top<bounding.top){moveY=rect.top-(bounding.top+yMargin);if(side>0&&rect.bottom>bounding.bottom+moveY)moveY=rect.bottom-bounding.bottom+yMargin;}else if(rect.bottom>bounding.bottom){moveY=rect.bottom-bounding.bottom+yMargin;if(side<0&&rect.top-moveY<bounding.top)moveY=rect.top-(bounding.top+yMargin);}}else{let rectHeight=rect.bottom-rect.top,boundingHeight=bounding.bottom-bounding.top;let targetTop=y==\"center\"&&rectHeight<=boundingHeight?rect.top+rectHeight/2-boundingHeight/2:y==\"start\"||y==\"center\"&&side<0?rect.top-yMargin:rect.bottom-boundingHeight+yMargin;moveY=targetTop-bounding.top;}if(x==\"nearest\"){if(rect.left<bounding.left){moveX=rect.left-(bounding.left+xMargin);if(side>0&&rect.right>bounding.right+moveX)moveX=rect.right-bounding.right+xMargin;}else if(rect.right>bounding.right){moveX=rect.right-bounding.right+xMargin;if(side<0&&rect.left<bounding.left+moveX)moveX=rect.left-(bounding.left+xMargin);}}else{let targetLeft=x==\"center\"?rect.left+(rect.right-rect.left)/2-(bounding.right-bounding.left)/2:x==\"start\"==ltr?rect.left-xMargin:rect.right-(bounding.right-bounding.left)+xMargin;moveX=targetLeft-bounding.left;}if(moveX||moveY){if(top2){win.scrollBy(moveX,moveY);}else{let movedX=0,movedY=0;if(moveY){let start=cur.scrollTop;cur.scrollTop+=moveY/scaleY;movedY=(cur.scrollTop-start)*scaleY;}if(moveX){let start=cur.scrollLeft;cur.scrollLeft+=moveX/scaleX;movedX=(cur.scrollLeft-start)*scaleX;}rect={left:rect.left-movedX,top:rect.top-movedY,right:rect.right-movedX,bottom:rect.bottom-movedY};if(movedX&&Math.abs(movedX-moveX)<1)x=\"nearest\";if(movedY&&Math.abs(movedY-moveY)<1)y=\"nearest\";}}if(top2)break;if(rect.top<bounding.top||rect.bottom>bounding.bottom||rect.left<bounding.left||rect.right>bounding.right)rect={left:Math.max(rect.left,bounding.left),right:Math.min(rect.right,bounding.right),top:Math.max(rect.top,bounding.top),bottom:Math.min(rect.bottom,bounding.bottom)};cur=cur.assignedSlot||cur.parentNode;}else if(cur.nodeType==11){cur=cur.host;}else{break;}}}function scrollableParents(dom){let doc2=dom.ownerDocument,x,y;for(let cur=dom.parentNode;cur;){if(cur==doc2.body||x&&y){break;}else if(cur.nodeType==1){if(!y&&cur.scrollHeight>cur.clientHeight)y=cur;if(!x&&cur.scrollWidth>cur.clientWidth)x=cur;cur=cur.assignedSlot||cur.parentNode;}else if(cur.nodeType==11){cur=cur.host;}else{break;}}return{x,y};}var DOMSelectionState=class{eq(domSel){return this.anchorNode==domSel.anchorNode&&this.anchorOffset==domSel.anchorOffset&&this.focusNode==domSel.focusNode&&this.focusOffset==domSel.focusOffset;}setRange(range){let{anchorNode,focusNode}=range;this.set(anchorNode,Math.min(range.anchorOffset,anchorNode?maxOffset(anchorNode):0),focusNode,Math.min(range.focusOffset,focusNode?maxOffset(focusNode):0));}set(anchorNode,anchorOffset,focusNode,focusOffset){this.anchorNode=anchorNode;this.anchorOffset=anchorOffset;this.focusNode=focusNode;this.focusOffset=focusOffset;}constructor(){this.anchorNode=null;this.anchorOffset=0;this.focusNode=null;this.focusOffset=0;}};var preventScrollSupported=null;function focusPreventScroll(dom){if(dom.setActive)return dom.setActive();if(preventScrollSupported)return dom.focus(preventScrollSupported);let stack=[];for(let cur=dom;cur;cur=cur.parentNode){stack.push(cur,cur.scrollTop,cur.scrollLeft);if(cur==cur.ownerDocument)break;}dom.focus(preventScrollSupported==null?{get preventScroll(){preventScrollSupported={preventScroll:true};return true;}}:void 0);if(!preventScrollSupported){preventScrollSupported=false;for(let i=0;i<stack.length;){let elt=stack[i++],top2=stack[i++],left=stack[i++];if(elt.scrollTop!=top2)elt.scrollTop=top2;if(elt.scrollLeft!=left)elt.scrollLeft=left;}}}var scratchRange;function textRange(node,from,to=from){let range=scratchRange||(scratchRange=document.createRange());range.setEnd(node,to);range.setStart(node,from);return range;}function dispatchKey(elt,name,code,mods){let options={key:name,code:name,keyCode:code,which:code,cancelable:true};if(mods)({altKey:options.altKey,ctrlKey:options.ctrlKey,shiftKey:options.shiftKey,metaKey:options.metaKey}=mods);let down=new KeyboardEvent(\"keydown\",options);down.synthetic=true;elt.dispatchEvent(down);let up=new KeyboardEvent(\"keyup\",options);up.synthetic=true;elt.dispatchEvent(up);return down.defaultPrevented||up.defaultPrevented;}function getRoot(node){while(node){if(node&&(node.nodeType==9||node.nodeType==11&&node.host))return node;node=node.assignedSlot||node.parentNode;}return null;}function clearAttributes(node){while(node.attributes.length)node.removeAttributeNode(node.attributes[0]);}function atElementStart(doc2,selection){let node=selection.focusNode,offset=selection.focusOffset;if(!node||selection.anchorNode!=node||selection.anchorOffset!=offset)return false;offset=Math.min(offset,maxOffset(node));for(;;){if(offset){if(node.nodeType!=1)return false;let prev=node.childNodes[offset-1];if(prev.contentEditable==\"false\")offset--;else{node=prev;offset=maxOffset(node);}}else if(node==doc2){return true;}else{offset=domIndex(node);node=node.parentNode;}}}function isScrolledToBottom(elt){return elt.scrollTop>Math.max(1,elt.scrollHeight-elt.clientHeight-4);}function textNodeBefore(startNode,startOffset){for(let node=startNode,offset=startOffset;;){if(node.nodeType==3&&offset>0){return{node,offset};}else if(node.nodeType==1&&offset>0){if(node.contentEditable==\"false\")return null;node=node.childNodes[offset-1];offset=maxOffset(node);}else if(node.parentNode&&!isBlockElement(node)){offset=domIndex(node);node=node.parentNode;}else{return null;}}}function textNodeAfter(startNode,startOffset){for(let node=startNode,offset=startOffset;;){if(node.nodeType==3&&offset<node.nodeValue.length){return{node,offset};}else if(node.nodeType==1&&offset<node.childNodes.length){if(node.contentEditable==\"false\")return null;node=node.childNodes[offset];offset=0;}else if(node.parentNode&&!isBlockElement(node)){offset=domIndex(node)+1;node=node.parentNode;}else{return null;}}}var DOMPos=class _DOMPos{static before(dom,precise){return new _DOMPos(dom.parentNode,domIndex(dom),precise);}static after(dom,precise){return new _DOMPos(dom.parentNode,domIndex(dom)+1,precise);}constructor(node,offset,precise=true){this.node=node;this.offset=offset;this.precise=precise;}};var noChildren=[];var ContentView=class _ContentView{get overrideDOMText(){return null;}get posAtStart(){return this.parent?this.parent.posBefore(this):0;}get posAtEnd(){return this.posAtStart+this.length;}posBefore(view){let pos=this.posAtStart;for(let child of this.children){if(child==view)return pos;pos+=child.length+child.breakAfter;}throw new RangeError(\"Invalid child in posBefore\");}posAfter(view){return this.posBefore(view)+view.length;}sync(view,track){if(this.flags&2){let parent=this.dom;let prev=null,next;for(let child of this.children){if(child.flags&7){if(!child.dom&&(next=prev?prev.nextSibling:parent.firstChild)){let contentView=_ContentView.get(next);if(!contentView||!contentView.parent&&contentView.canReuseDOM(child))child.reuseDOM(next);}child.sync(view,track);child.flags&=~7;}next=prev?prev.nextSibling:parent.firstChild;if(track&&!track.written&&track.node==parent&&next!=child.dom)track.written=true;if(child.dom.parentNode==parent){while(next&&next!=child.dom)next=rm$1(next);}else{parent.insertBefore(child.dom,next);}prev=child.dom;}next=prev?prev.nextSibling:parent.firstChild;if(next&&track&&track.node==parent)track.written=true;while(next)next=rm$1(next);}else if(this.flags&1){for(let child of this.children)if(child.flags&7){child.sync(view,track);child.flags&=~7;}}}reuseDOM(_dom){}localPosFromDOM(node,offset){let after;if(node==this.dom){after=this.dom.childNodes[offset];}else{let bias=maxOffset(node)==0?0:offset==0?-1:1;for(;;){let parent=node.parentNode;if(parent==this.dom)break;if(bias==0&&parent.firstChild!=parent.lastChild){if(node==parent.firstChild)bias=-1;else bias=1;}node=parent;}if(bias<0)after=node;else after=node.nextSibling;}if(after==this.dom.firstChild)return 0;while(after&&!_ContentView.get(after))after=after.nextSibling;if(!after)return this.length;for(let i=0,pos=0;;i++){let child=this.children[i];if(child.dom==after)return pos;pos+=child.length+child.breakAfter;}}domBoundsAround(from,to,offset=0){let fromI=-1,fromStart=-1,toI=-1,toEnd=-1;for(let i=0,pos=offset,prevEnd=offset;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(pos<from&&end>to)return child.domBoundsAround(from,to,pos);if(end>=from&&fromI==-1){fromI=i;fromStart=pos;}if(pos>to&&child.dom.parentNode==this.dom){toI=i;toEnd=prevEnd;break;}prevEnd=end;pos=end+child.breakAfter;}return{from:fromStart,to:toEnd<0?offset+this.length:toEnd,startDOM:(fromI?this.children[fromI-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:toI<this.children.length&&toI>=0?this.children[toI].dom:null};}markDirty(andParent=false){this.flags|=2;this.markParentsDirty(andParent);}markParentsDirty(childList){for(let parent=this.parent;parent;parent=parent.parent){if(childList)parent.flags|=2;if(parent.flags&1)return;parent.flags|=1;childList=false;}}setParent(parent){if(this.parent!=parent){this.parent=parent;if(this.flags&7)this.markParentsDirty(true);}}setDOM(dom){if(this.dom==dom)return;if(this.dom)this.dom.cmView=null;this.dom=dom;dom.cmView=this;}get rootView(){for(let v=this;;){let parent=v.parent;if(!parent)return v;v=parent;}}replaceChildren(from,to,children=noChildren){this.markDirty();for(let i=from;i<to;i++){let child=this.children[i];if(child.parent==this&&children.indexOf(child)<0)child.destroy();}if(children.length<250)this.children.splice(from,to-from,...children);else this.children=[].concat(this.children.slice(0,from),children,this.children.slice(to));for(let i=0;i<children.length;i++)children[i].setParent(this);}ignoreMutation(_rec){return false;}ignoreEvent(_event){return false;}childCursor(pos=this.length){return new ChildCursor(this.children,pos,this.children.length);}childPos(pos,bias=1){return this.childCursor().findPos(pos,bias);}toString(){let name=this.constructor.name.replace(\"View\",\"\");return name+(this.children.length?\"(\"+this.children.join()+\")\":this.length?\"[\"+(name==\"Text\"?this.text:this.length)+\"]\":\"\")+(this.breakAfter?\"#\":\"\");}static get(node){return node.cmView;}get isEditable(){return true;}get isWidget(){return false;}get isHidden(){return false;}merge(from,to,source,hasStart,openStart,openEnd){return false;}become(other){return false;}canReuseDOM(other){return other.constructor==this.constructor&&!((this.flags|other.flags)&8);}// When this is a zero-length view with a side, this should return a\n// number <= 0 to indicate it is before its position, or a\n// number > 0 when after its position.\ngetSide(){return 0;}destroy(){for(let child of this.children)if(child.parent==this)child.destroy();this.parent=null;}constructor(){this.parent=null;this.dom=null;this.flags=2;}};ContentView.prototype.breakAfter=0;function rm$1(dom){let next=dom.nextSibling;dom.parentNode.removeChild(dom);return next;}var ChildCursor=class{findPos(pos,bias=1){for(;;){if(pos>this.pos||pos==this.pos&&(bias>0||this.i==0||this.children[this.i-1].breakAfter)){this.off=pos-this.pos;return this;}let next=this.children[--this.i];this.pos-=next.length+next.breakAfter;}}constructor(children,pos,i){this.children=children;this.pos=pos;this.i=i;this.off=0;}};function replaceRange(parent,fromI,fromOff,toI,toOff,insert,breakAtStart,openStart,openEnd){let{children}=parent;let before=children.length?children[fromI]:null;let last=insert.length?insert[insert.length-1]:null;let breakAtEnd=last?last.breakAfter:breakAtStart;if(fromI==toI&&before&&!breakAtStart&&!breakAtEnd&&insert.length<2&&before.merge(fromOff,toOff,insert.length?last:null,fromOff==0,openStart,openEnd))return;if(toI<children.length){let after=children[toI];if(after&&(toOff<after.length||after.breakAfter&&(last===null||last===void 0?void 0:last.breakAfter))){if(fromI==toI){after=after.split(toOff);toOff=0;}if(!breakAtEnd&&last&&after.merge(0,toOff,last,true,0,openEnd)){insert[insert.length-1]=after;}else{if(toOff||after.children.length&&!after.children[0].length)after.merge(0,toOff,null,false,0,openEnd);insert.push(after);}}else if(after===null||after===void 0?void 0:after.breakAfter){if(last)last.breakAfter=1;else breakAtStart=1;}toI++;}if(before){before.breakAfter=breakAtStart;if(fromOff>0){if(!breakAtStart&&insert.length&&before.merge(fromOff,before.length,insert[0],false,openStart,0)){before.breakAfter=insert.shift().breakAfter;}else if(fromOff<before.length||before.children.length&&before.children[before.children.length-1].length==0){before.merge(fromOff,before.length,null,false,openStart,0);}fromI++;}}while(fromI<toI&&insert.length){if(children[toI-1].become(insert[insert.length-1])){toI--;insert.pop();openEnd=insert.length?0:openStart;}else if(children[fromI].become(insert[0])){fromI++;insert.shift();openStart=insert.length?0:openEnd;}else{break;}}if(!insert.length&&fromI&&toI<children.length&&!children[fromI-1].breakAfter&&children[toI].merge(0,0,children[fromI-1],false,openStart,openEnd))fromI--;if(fromI<toI||insert.length)parent.replaceChildren(fromI,toI,insert);}function mergeChildrenInto(parent,from,to,insert,openStart,openEnd){let cur=parent.childCursor();let{i:toI,off:toOff}=cur.findPos(to,1);let{i:fromI,off:fromOff}=cur.findPos(from,-1);let dLen=from-to;for(let view of insert)dLen+=view.length;parent.length+=dLen;replaceRange(parent,fromI,fromOff,toI,toOff,insert,0,openStart,openEnd);}var nav=typeof navigator!=\"undefined\"?navigator:{userAgent:\"\",vendor:\"\",platform:\"\"};var doc=typeof document!=\"undefined\"?document:{documentElement:{style:{}}};var ie_edge=/* @__PURE__ *//Edge\\/(\\d+)/.exec(nav.userAgent);var ie_upto10=/* @__PURE__ *//MSIE \\d/.test(nav.userAgent);var ie_11up=/* @__PURE__ *//Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(nav.userAgent);var ie2=!!(ie_upto10||ie_11up||ie_edge);var gecko=!ie2&&/* @__PURE__ *//gecko\\/(\\d+)/i.test(nav.userAgent);var chrome=!ie2&&/* @__PURE__ *//Chrome\\/(\\d+)/.exec(nav.userAgent);var webkit=\"webkitFontSmoothing\"in doc.documentElement.style;var safari=!ie2&&/* @__PURE__ *//Apple Computer/.test(nav.vendor);var ios=safari&&/* @__PURE__ */(/Mobile\\/\\w+/.test(nav.userAgent)||nav.maxTouchPoints>2);var browser={mac:ios||/* @__PURE__ *//Mac/.test(nav.platform),windows:/* @__PURE__ *//Win/.test(nav.platform),linux:/* @__PURE__ *//Linux|X11/.test(nav.platform),ie:ie2,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+/* @__PURE__ */(/Firefox\\/(\\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios,android:/* @__PURE__ *//Android\\b/.test(nav.userAgent),webkit,safari,webkit_version:webkit?+/* @__PURE__ */(/\\bAppleWebKit\\/(\\d+)/.exec(nav.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?\"tab-size\":\"-moz-tab-size\"};var MaxJoinLen=256;var TextView=class _TextView extends ContentView{get length(){return this.text.length;}createDOM(textDOM){this.setDOM(textDOM||document.createTextNode(this.text));}sync(view,track){if(!this.dom)this.createDOM();if(this.dom.nodeValue!=this.text){if(track&&track.node==this.dom)track.written=true;this.dom.nodeValue=this.text;}}reuseDOM(dom){if(dom.nodeType==3)this.createDOM(dom);}merge(from,to,source){if(this.flags&8||source&&(!(source instanceof _TextView)||this.length-(to-from)+source.length>MaxJoinLen||source.flags&8))return false;this.text=this.text.slice(0,from)+(source?source.text:\"\")+this.text.slice(to);this.markDirty();return true;}split(from){let result=new _TextView(this.text.slice(from));this.text=this.text.slice(0,from);this.markDirty();result.flags|=this.flags&8;return result;}localPosFromDOM(node,offset){return node==this.dom?offset:offset?this.text.length:0;}domAtPos(pos){return new DOMPos(this.dom,pos);}domBoundsAround(_from,_to,offset){return{from:offset,to:offset+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling};}coordsAt(pos,side){return textCoords(this.dom,pos,side);}constructor(text){super();this.text=text;}};var MarkView=class _MarkView extends ContentView{setAttrs(dom){clearAttributes(dom);if(this.mark.class)dom.className=this.mark.class;if(this.mark.attrs)for(let name in this.mark.attrs)dom.setAttribute(name,this.mark.attrs[name]);return dom;}canReuseDOM(other){return super.canReuseDOM(other)&&!((this.flags|other.flags)&8);}reuseDOM(node){if(node.nodeName==this.mark.tagName.toUpperCase()){this.setDOM(node);this.flags|=4|2;}}sync(view,track){if(!this.dom)this.setDOM(this.setAttrs(document.createElement(this.mark.tagName)));else if(this.flags&4)this.setAttrs(this.dom);super.sync(view,track);}merge(from,to,source,_hasStart,openStart,openEnd){if(source&&(!(source instanceof _MarkView&&source.mark.eq(this.mark))||from&&openStart<=0||to<this.length&&openEnd<=0))return false;mergeChildrenInto(this,from,to,source?source.children.slice():[],openStart-1,openEnd-1);this.markDirty();return true;}split(from){let result=[],off=0,detachFrom=-1,i=0;for(let elt of this.children){let end=off+elt.length;if(end>from)result.push(off<from?elt.split(from-off):elt);if(detachFrom<0&&off>=from)detachFrom=i;off=end;i++;}let length=this.length-from;this.length=from;if(detachFrom>-1){this.children.length=detachFrom;this.markDirty();}return new _MarkView(this.mark,result,length);}domAtPos(pos){return inlineDOMAtPos(this,pos);}coordsAt(pos,side){return coordsInChildren(this,pos,side);}constructor(mark,children=[],length=0){super();this.mark=mark;this.children=children;this.length=length;for(let ch of children)ch.setParent(this);}};function textCoords(text,pos,side){let length=text.nodeValue.length;if(pos>length)pos=length;let from=pos,to=pos,flatten=0;if(pos==0&&side<0||pos==length&&side>=0){if(!(browser.chrome||browser.gecko)){if(pos){from--;flatten=1;}else if(to<length){to++;flatten=-1;}}}else{if(side<0)from--;else if(to<length)to++;}let rects=textRange(text,from,to).getClientRects();if(!rects.length)return null;let rect=rects[(flatten?flatten<0:side>=0)?0:rects.length-1];if(browser.safari&&!flatten&&rect.width==0)rect=Array.prototype.find.call(rects,r=>r.width)||rect;return flatten?flattenRect(rect,flatten<0):rect||null;}var WidgetView=class _WidgetView extends ContentView{static create(widget,length,side){return new _WidgetView(widget,length,side);}split(from){let result=_WidgetView.create(this.widget,this.length-from,this.side);this.length-=from;return result;}sync(view){if(!this.dom||!this.widget.updateDOM(this.dom,view)){if(this.dom&&this.prevWidget)this.prevWidget.destroy(this.dom);this.prevWidget=null;this.setDOM(this.widget.toDOM(view));if(!this.widget.editable)this.dom.contentEditable=\"false\";}}getSide(){return this.side;}merge(from,to,source,hasStart,openStart,openEnd){if(source&&(!(source instanceof _WidgetView)||!this.widget.compare(source.widget)||from>0&&openStart<=0||to<this.length&&openEnd<=0))return false;this.length=from+(source?source.length:0)+(this.length-to);return true;}become(other){if(other instanceof _WidgetView&&other.side==this.side&&this.widget.constructor==other.widget.constructor){if(!this.widget.compare(other.widget))this.markDirty(true);if(this.dom&&!this.prevWidget)this.prevWidget=this.widget;this.widget=other.widget;this.length=other.length;return true;}return false;}ignoreMutation(){return true;}ignoreEvent(event){return this.widget.ignoreEvent(event);}get overrideDOMText(){if(this.length==0)return Text.empty;let top2=this;while(top2.parent)top2=top2.parent;let{view}=top2,text=view&&view.state.doc,start=this.posAtStart;return text?text.slice(start,start+this.length):Text.empty;}domAtPos(pos){return(this.length?pos==0:this.side>0)?DOMPos.before(this.dom):DOMPos.after(this.dom,pos==this.length);}domBoundsAround(){return null;}coordsAt(pos,side){let custom=this.widget.coordsAt(this.dom,pos,side);if(custom)return custom;let rects=this.dom.getClientRects(),rect=null;if(!rects.length)return null;let fromBack=this.side?this.side<0:pos>0;for(let i=fromBack?rects.length-1:0;;i+=fromBack?-1:1){rect=rects[i];if(pos>0?i==0:i==rects.length-1||rect.top<rect.bottom)break;}return flattenRect(rect,!fromBack);}get isEditable(){return false;}get isWidget(){return true;}get isHidden(){return this.widget.isHidden;}destroy(){super.destroy();if(this.dom)this.widget.destroy(this.dom);}constructor(widget,length,side){super();this.widget=widget;this.length=length;this.side=side;this.prevWidget=null;}};var WidgetBufferView=class _WidgetBufferView extends ContentView{get length(){return 0;}merge(){return false;}become(other){return other instanceof _WidgetBufferView&&other.side==this.side;}split(){return new _WidgetBufferView(this.side);}sync(){if(!this.dom){let dom=document.createElement(\"img\");dom.className=\"cm-widgetBuffer\";dom.setAttribute(\"aria-hidden\",\"true\");this.setDOM(dom);}}getSide(){return this.side;}domAtPos(pos){return this.side>0?DOMPos.before(this.dom):DOMPos.after(this.dom);}localPosFromDOM(){return 0;}domBoundsAround(){return null;}coordsAt(pos){return this.dom.getBoundingClientRect();}get overrideDOMText(){return Text.empty;}get isHidden(){return true;}constructor(side){super();this.side=side;}};TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineDOMAtPos(parent,pos){let dom=parent.dom,{children}=parent,i=0;for(let off=0;i<children.length;i++){let child=children[i],end=off+child.length;if(end==off&&child.getSide()<=0)continue;if(pos>off&&pos<end&&child.dom.parentNode==dom)return child.domAtPos(pos-off);if(pos<=off)break;off=end;}for(let j=i;j>0;j--){let prev=children[j-1];if(prev.dom.parentNode==dom)return prev.domAtPos(prev.length);}for(let j=i;j<children.length;j++){let next=children[j];if(next.dom.parentNode==dom)return next.domAtPos(0);}return new DOMPos(dom,0);}function joinInlineInto(parent,view,open){let last,{children}=parent;if(open>0&&view instanceof MarkView&&children.length&&(last=children[children.length-1])instanceof MarkView&&last.mark.eq(view.mark)){joinInlineInto(last,view.children[0],open-1);}else{children.push(view);view.setParent(parent);}parent.length+=view.length;}function coordsInChildren(view,pos,side){let before=null,beforePos=-1,after=null,afterPos=-1;function scan(view2,pos2){for(let i=0,off=0;i<view2.children.length&&off<=pos2;i++){let child=view2.children[i],end=off+child.length;if(end>=pos2){if(child.children.length){scan(child,pos2-off);}else if((!after||after.isHidden&&(side>0||onSameLine(after,child)))&&(end>pos2||off==end&&child.getSide()>0)){after=child;afterPos=pos2-off;}else if(off<pos2||off==end&&child.getSide()<0&&!child.isHidden){before=child;beforePos=pos2-off;}}off=end;}}scan(view,pos);let target=(side<0?before:after)||before||after;if(target)return target.coordsAt(Math.max(0,target==before?beforePos:afterPos),side);return fallbackRect(view);}function fallbackRect(view){let last=view.dom.lastChild;if(!last)return view.dom.getBoundingClientRect();let rects=clientRectsFor(last);return rects[rects.length-1]||null;}function onSameLine(a,b){let posA=a.coordsAt(0,1),posB=b.coordsAt(0,1);return posA&&posB&&posB.top<posA.bottom;}function combineAttrs(source,target){for(let name in source){if(name==\"class\"&&target.class)target.class+=\" \"+source.class;else if(name==\"style\"&&target.style)target.style+=\";\"+source.style;else target[name]=source[name];}return target;}var noAttrs=/* @__PURE__ */Object.create(null);function attrsEq(a,b,ignore){if(a==b)return true;if(!a)a=noAttrs;if(!b)b=noAttrs;let keysA=Object.keys(a),keysB=Object.keys(b);if(keysA.length-(ignore&&keysA.indexOf(ignore)>-1?1:0)!=keysB.length-(ignore&&keysB.indexOf(ignore)>-1?1:0))return false;for(let key of keysA){if(key!=ignore&&(keysB.indexOf(key)==-1||a[key]!==b[key]))return false;}return true;}function updateAttrs(dom,prev,attrs){let changed=false;if(prev){for(let name in prev)if(!(attrs&&name in attrs)){changed=true;if(name==\"style\")dom.style.cssText=\"\";else dom.removeAttribute(name);}}if(attrs){for(let name in attrs)if(!(prev&&prev[name]==attrs[name])){changed=true;if(name==\"style\")dom.style.cssText=attrs[name];else dom.setAttribute(name,attrs[name]);}}return changed;}function getAttrs(dom){let attrs=/* @__PURE__ */Object.create(null);for(let i=0;i<dom.attributes.length;i++){let attr=dom.attributes[i];attrs[attr.name]=attr.value;}return attrs;}var WidgetType=class{/**\n  Compare this instance to another instance of the same type.\n  (TypeScript can't express this, but only instances of the same\n  specific class will be passed to this method.) This is used to\n  avoid redrawing widgets when they are replaced by a new\n  decoration of the same type. The default implementation just\n  returns `false`, which will cause new instances of the widget to\n  always be redrawn.\n  */eq(widget){return false;}/**\n  Update a DOM element created by a widget of the same type (but\n  different, non-`eq` content) to reflect this widget. May return\n  true to indicate that it could update, false to indicate it\n  couldn't (in which case the widget will be redrawn). The default\n  implementation just returns false.\n  */updateDOM(dom,view){return false;}/**\n  @internal\n  */compare(other){return this==other||this.constructor==other.constructor&&this.eq(other);}/**\n  The estimated height this widget will have, to be used when\n  estimating the height of content that hasn't been drawn. May\n  return -1 to indicate you don't know. The default implementation\n  returns -1.\n  */get estimatedHeight(){return-1;}/**\n  For inline widgets that are displayed inline (as opposed to\n  `inline-block`) and introduce line breaks (through `<br>` tags\n  or textual newlines), this must indicate the amount of line\n  breaks they introduce. Defaults to 0.\n  */get lineBreaks(){return 0;}/**\n  Can be used to configure which kinds of events inside the widget\n  should be ignored by the editor. The default is to ignore all\n  events.\n  */ignoreEvent(event){return true;}/**\n  Override the way screen coordinates for positions at/in the\n  widget are found. `pos` will be the offset into the widget, and\n  `side` the side of the position that is being queried—less than\n  zero for before, greater than zero for after, and zero for\n  directly at that position.\n  */coordsAt(dom,pos,side){return null;}/**\n  @internal\n  */get isHidden(){return false;}/**\n  @internal\n  */get editable(){return false;}/**\n  This is called when the an instance of the widget is removed\n  from the editor view.\n  */destroy(dom){}};var BlockType=/* @__PURE__ */function(BlockType2){BlockType2[BlockType2[\"Text\"]=0]=\"Text\";BlockType2[BlockType2[\"WidgetBefore\"]=1]=\"WidgetBefore\";BlockType2[BlockType2[\"WidgetAfter\"]=2]=\"WidgetAfter\";BlockType2[BlockType2[\"WidgetRange\"]=3]=\"WidgetRange\";return BlockType2;}(BlockType||(BlockType={}));var Decoration=class extends RangeValue{/**\n  @internal\n  */get heightRelevant(){return false;}/**\n  Create a mark decoration, which influences the styling of the\n  content in its range. Nested mark decorations will cause nested\n  DOM elements to be created. Nesting order is determined by\n  precedence of the [facet](https://codemirror.net/6/docs/ref/#view.EditorView^decorations), with\n  the higher-precedence decorations creating the inner DOM nodes.\n  Such elements are split on line boundaries and on the boundaries\n  of lower-precedence decorations.\n  */static mark(spec){return new MarkDecoration(spec);}/**\n  Create a widget decoration, which displays a DOM element at the\n  given position.\n  */static widget(spec){let side=Math.max(-1e4,Math.min(1e4,spec.side||0)),block=!!spec.block;side+=block&&!spec.inlineOrder?side>0?3e8:-4e8:side>0?1e8:-1e8;return new PointDecoration(spec,side,side,block,spec.widget||null,false);}/**\n  Create a replace decoration which replaces the given range with\n  a widget, or simply hides it.\n  */static replace(spec){let block=!!spec.block,startSide,endSide;if(spec.isBlockGap){startSide=-5e8;endSide=4e8;}else{let{start,end}=getInclusive(spec,block);startSide=(start?block?-3e8:-1:5e8)-1;endSide=(end?block?2e8:1:-6e8)+1;}return new PointDecoration(spec,startSide,endSide,block,spec.widget||null,true);}/**\n  Create a line decoration, which can add DOM attributes to the\n  line starting at the given position.\n  */static line(spec){return new LineDecoration(spec);}/**\n  Build a [`DecorationSet`](https://codemirror.net/6/docs/ref/#view.DecorationSet) from the given\n  decorated range or ranges. If the ranges aren't already sorted,\n  pass `true` for `sort` to make the library sort them for you.\n  */static set(of,sort=false){return RangeSet.of(of,sort);}/**\n  @internal\n  */hasHeight(){return this.widget?this.widget.estimatedHeight>-1:false;}constructor(startSide,endSide,widget,spec){super();this.startSide=startSide;this.endSide=endSide;this.widget=widget;this.spec=spec;}};Decoration.none=RangeSet.empty;var MarkDecoration=class _MarkDecoration extends Decoration{eq(other){var _a,_b;return this==other||other instanceof _MarkDecoration&&this.tagName==other.tagName&&(this.class||((_a=this.attrs)===null||_a===void 0?void 0:_a.class))==(other.class||((_b=other.attrs)===null||_b===void 0?void 0:_b.class))&&attrsEq(this.attrs,other.attrs,\"class\");}range(from,to=from){if(from>=to)throw new RangeError(\"Mark decorations may not be empty\");return super.range(from,to);}constructor(spec){let{start,end}=getInclusive(spec);super(start?-1:5e8,end?1:-6e8,null,spec);this.tagName=spec.tagName||\"span\";this.class=spec.class||\"\";this.attrs=spec.attributes||null;}};MarkDecoration.prototype.point=false;var LineDecoration=class _LineDecoration extends Decoration{eq(other){return other instanceof _LineDecoration&&this.spec.class==other.spec.class&&attrsEq(this.spec.attributes,other.spec.attributes);}range(from,to=from){if(to!=from)throw new RangeError(\"Line decoration ranges must be zero-length\");return super.range(from,to);}constructor(spec){super(-2e8,-2e8,null,spec);}};LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=true;var PointDecoration=class _PointDecoration extends Decoration{// Only relevant when this.block == true\nget type(){return this.startSide!=this.endSide?BlockType.WidgetRange:this.startSide<=0?BlockType.WidgetBefore:BlockType.WidgetAfter;}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0);}eq(other){return other instanceof _PointDecoration&&widgetsEq(this.widget,other.widget)&&this.block==other.block&&this.startSide==other.startSide&&this.endSide==other.endSide;}range(from,to=from){if(this.isReplace&&(from>to||from==to&&this.startSide>0&&this.endSide<=0))throw new RangeError(\"Invalid range for replacement decoration\");if(!this.isReplace&&to!=from)throw new RangeError(\"Widget decorations can only have zero-length ranges\");return super.range(from,to);}constructor(spec,startSide,endSide,block,widget,isReplace){super(startSide,endSide,widget,spec);this.block=block;this.isReplace=isReplace;this.mapMode=!block?MapMode.TrackDel:startSide<=0?MapMode.TrackBefore:MapMode.TrackAfter;}};PointDecoration.prototype.point=true;function getInclusive(spec,block=false){let{inclusiveStart:start,inclusiveEnd:end}=spec;if(start==null)start=spec.inclusive;if(end==null)end=spec.inclusive;return{start:start!==null&&start!==void 0?start:block,end:end!==null&&end!==void 0?end:block};}function widgetsEq(a,b){return a==b||!!(a&&b&&a.compare(b));}function addRange(from,to,ranges,margin=0){let last=ranges.length-1;if(last>=0&&ranges[last]+margin>=from)ranges[last]=Math.max(ranges[last],to);else ranges.push(from,to);}var LineView=class _LineView extends ContentView{// Consumes source\nmerge(from,to,source,hasStart,openStart,openEnd){if(source){if(!(source instanceof _LineView))return false;if(!this.dom)source.transferDOM(this);}if(hasStart)this.setDeco(source?source.attrs:null);mergeChildrenInto(this,from,to,source?source.children.slice():[],openStart,openEnd);return true;}split(at){let end=new _LineView;end.breakAfter=this.breakAfter;if(this.length==0)return end;let{i,off}=this.childPos(at);if(off){end.append(this.children[i].split(off),0);this.children[i].merge(off,this.children[i].length,null,false,0,0);i++;}for(let j=i;j<this.children.length;j++)end.append(this.children[j],0);while(i>0&&this.children[i-1].length==0)this.children[--i].destroy();this.children.length=i;this.markDirty();this.length=at;return end;}transferDOM(other){if(!this.dom)return;this.markDirty();other.setDOM(this.dom);other.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs;this.prevAttrs=void 0;this.dom=null;}setDeco(attrs){if(!attrsEq(this.attrs,attrs)){if(this.dom){this.prevAttrs=this.attrs;this.markDirty();}this.attrs=attrs;}}append(child,openStart){joinInlineInto(this,child,openStart);}// Only called when building a line view in ContentBuilder\naddLineDeco(deco){let attrs=deco.spec.attributes,cls=deco.spec.class;if(attrs)this.attrs=combineAttrs(attrs,this.attrs||{});if(cls)this.attrs=combineAttrs({class:cls},this.attrs||{});}domAtPos(pos){return inlineDOMAtPos(this,pos);}reuseDOM(node){if(node.nodeName==\"DIV\"){this.setDOM(node);this.flags|=4|2;}}sync(view,track){var _a;if(!this.dom){this.setDOM(document.createElement(\"div\"));this.dom.className=\"cm-line\";this.prevAttrs=this.attrs?null:void 0;}else if(this.flags&4){clearAttributes(this.dom);this.dom.className=\"cm-line\";this.prevAttrs=this.attrs?null:void 0;}if(this.prevAttrs!==void 0){updateAttrs(this.dom,this.prevAttrs,this.attrs);this.dom.classList.add(\"cm-line\");this.prevAttrs=void 0;}super.sync(view,track);let last=this.dom.lastChild;while(last&&ContentView.get(last) instanceof MarkView)last=last.lastChild;if(!last||!this.length||last.nodeName!=\"BR\"&&((_a=ContentView.get(last))===null||_a===void 0?void 0:_a.isEditable)==false&&(!browser.ios||!this.children.some(ch=>ch instanceof TextView))){let hack=document.createElement(\"BR\");hack.cmIgnore=true;this.dom.appendChild(hack);}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let totalWidth=0,textHeight;for(let child of this.children){if(!(child instanceof TextView)||/[^ -~]/.test(child.text))return null;let rects=clientRectsFor(child.dom);if(rects.length!=1)return null;totalWidth+=rects[0].width;textHeight=rects[0].height;}return!totalWidth?null:{lineHeight:this.dom.getBoundingClientRect().height,charWidth:totalWidth/this.length,textHeight};}coordsAt(pos,side){let rect=coordsInChildren(this,pos,side);if(!this.children.length&&rect&&this.parent){let{heightOracle}=this.parent.view.viewState,height=rect.bottom-rect.top;if(Math.abs(height-heightOracle.lineHeight)<2&&heightOracle.textHeight<height){let dist2=(height-heightOracle.textHeight)/2;return{top:rect.top+dist2,bottom:rect.bottom-dist2,left:rect.left,right:rect.left};}}return rect;}become(other){return other instanceof _LineView&&this.children.length==0&&other.children.length==0&&attrsEq(this.attrs,other.attrs)&&this.breakAfter==other.breakAfter;}covers(){return true;}static find(docView,pos){for(let i=0,off=0;i<docView.children.length;i++){let block=docView.children[i],end=off+block.length;if(end>=pos){if(block instanceof _LineView)return block;if(end>pos)break;}off=end+block.breakAfter;}return null;}constructor(){super(...arguments);this.children=[];this.length=0;this.prevAttrs=void 0;this.attrs=null;this.breakAfter=0;}};var BlockWidgetView=class _BlockWidgetView extends ContentView{merge(from,to,source,_takeDeco,openStart,openEnd){if(source&&(!(source instanceof _BlockWidgetView)||!this.widget.compare(source.widget)||from>0&&openStart<=0||to<this.length&&openEnd<=0))return false;this.length=from+(source?source.length:0)+(this.length-to);return true;}domAtPos(pos){return pos==0?DOMPos.before(this.dom):DOMPos.after(this.dom,pos==this.length);}split(at){let len=this.length-at;this.length=at;let end=new _BlockWidgetView(this.widget,len,this.deco);end.breakAfter=this.breakAfter;return end;}get children(){return noChildren;}sync(view){if(!this.dom||!this.widget.updateDOM(this.dom,view)){if(this.dom&&this.prevWidget)this.prevWidget.destroy(this.dom);this.prevWidget=null;this.setDOM(this.widget.toDOM(view));if(!this.widget.editable)this.dom.contentEditable=\"false\";}}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):Text.empty;}domBoundsAround(){return null;}become(other){if(other instanceof _BlockWidgetView&&other.widget.constructor==this.widget.constructor){if(!other.widget.compare(this.widget))this.markDirty(true);if(this.dom&&!this.prevWidget)this.prevWidget=this.widget;this.widget=other.widget;this.length=other.length;this.deco=other.deco;this.breakAfter=other.breakAfter;return true;}return false;}ignoreMutation(){return true;}ignoreEvent(event){return this.widget.ignoreEvent(event);}get isEditable(){return false;}get isWidget(){return true;}coordsAt(pos,side){let custom=this.widget.coordsAt(this.dom,pos,side);if(custom)return custom;if(this.widget instanceof BlockGapWidget)return null;return flattenRect(this.dom.getBoundingClientRect(),this.length?pos==0:side<=0);}destroy(){super.destroy();if(this.dom)this.widget.destroy(this.dom);}covers(side){let{startSide,endSide}=this.deco;return startSide==endSide?false:side<0?startSide<0:endSide>0;}constructor(widget,length,deco){super();this.widget=widget;this.length=length;this.deco=deco;this.breakAfter=0;this.prevWidget=null;}};var BlockGapWidget=class extends WidgetType{toDOM(){let elt=document.createElement(\"div\");elt.className=\"cm-gap\";this.updateDOM(elt);return elt;}eq(other){return other.height==this.height;}updateDOM(elt){elt.style.height=this.height+\"px\";return true;}get editable(){return true;}get estimatedHeight(){return this.height;}ignoreEvent(){return false;}constructor(height){super();this.height=height;}};var ContentBuilder=class _ContentBuilder{posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let last=this.content[this.content.length-1];return!(last.breakAfter||last instanceof BlockWidgetView&&last.deco.endSide<0);}getLine(){if(!this.curLine){this.content.push(this.curLine=new LineView);this.atCursorPos=true;}return this.curLine;}flushBuffer(active=this.bufferMarks){if(this.pendingBuffer){this.curLine.append(wrapMarks(new WidgetBufferView(-1),active),active.length);this.pendingBuffer=0;}}addBlockWidget(view){this.flushBuffer();this.curLine=null;this.content.push(view);}finish(openEnd){if(this.pendingBuffer&&openEnd<=this.bufferMarks.length)this.flushBuffer();else this.pendingBuffer=0;if(!this.posCovered()&&!(openEnd&&this.content.length&&this.content[this.content.length-1]instanceof BlockWidgetView))this.getLine();}buildText(length,active,openStart){while(length>0){if(this.textOff==this.text.length){let{value,lineBreak,done}=this.cursor.next(this.skip);this.skip=0;if(done)throw new Error(\"Ran out of text content when drawing inline views\");if(lineBreak){if(!this.posCovered())this.getLine();if(this.content.length)this.content[this.content.length-1].breakAfter=1;else this.breakAtStart=1;this.flushBuffer();this.curLine=null;this.atCursorPos=true;length--;continue;}else{this.text=value;this.textOff=0;}}let take=Math.min(this.text.length-this.textOff,length,512);this.flushBuffer(active.slice(active.length-openStart));this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+take)),active),openStart);this.atCursorPos=true;this.textOff+=take;length-=take;openStart=0;}}span(from,to,active,openStart){this.buildText(to-from,active,openStart);this.pos=to;if(this.openStart<0)this.openStart=openStart;}point(from,to,deco,active,openStart,index){if(this.disallowBlockEffectsFor[index]&&deco instanceof PointDecoration){if(deco.block)throw new RangeError(\"Block decorations may not be specified via plugins\");if(to>this.doc.lineAt(this.pos).to)throw new RangeError(\"Decorations that replace line breaks may not be specified via plugins\");}let len=to-from;if(deco instanceof PointDecoration){if(deco.block){if(deco.startSide>0&&!this.posCovered())this.getLine();this.addBlockWidget(new BlockWidgetView(deco.widget||NullWidget.block,len,deco));}else{let view=WidgetView.create(deco.widget||NullWidget.inline,len,len?0:deco.startSide);let cursorBefore=this.atCursorPos&&!view.isEditable&&openStart<=active.length&&(from<to||deco.startSide>0);let cursorAfter=!view.isEditable&&(from<to||openStart>active.length||deco.startSide<=0);let line=this.getLine();if(this.pendingBuffer==2&&!cursorBefore&&!view.isEditable)this.pendingBuffer=0;this.flushBuffer(active);if(cursorBefore){line.append(wrapMarks(new WidgetBufferView(1),active),openStart);openStart=active.length+Math.max(0,openStart-active.length);}line.append(wrapMarks(view,active),openStart);this.atCursorPos=cursorAfter;this.pendingBuffer=!cursorAfter?0:from<to||openStart>active.length?1:2;if(this.pendingBuffer)this.bufferMarks=active.slice();}}else if(this.doc.lineAt(this.pos).from==this.pos){this.getLine().addLineDeco(deco);}if(len){if(this.textOff+len<=this.text.length){this.textOff+=len;}else{this.skip+=len-(this.text.length-this.textOff);this.text=\"\";this.textOff=0;}this.pos=to;}if(this.openStart<0)this.openStart=openStart;}static build(text,from,to,decorations2,dynamicDecorationMap){let builder=new _ContentBuilder(text,from,to,dynamicDecorationMap);builder.openEnd=RangeSet.spans(decorations2,from,to,builder);if(builder.openStart<0)builder.openStart=builder.openEnd;builder.finish(builder.openEnd);return builder;}constructor(doc2,pos,end,disallowBlockEffectsFor){this.doc=doc2;this.pos=pos;this.end=end;this.disallowBlockEffectsFor=disallowBlockEffectsFor;this.content=[];this.curLine=null;this.breakAtStart=0;this.pendingBuffer=0;this.bufferMarks=[];this.atCursorPos=true;this.openStart=-1;this.openEnd=-1;this.text=\"\";this.textOff=0;this.cursor=doc2.iter();this.skip=pos;}};function wrapMarks(view,active){for(let mark of active)view=new MarkView(mark,[view],view.length);return view;}var NullWidget=class extends WidgetType{eq(other){return other.tag==this.tag;}toDOM(){return document.createElement(this.tag);}updateDOM(elt){return elt.nodeName.toLowerCase()==this.tag;}get isHidden(){return true;}constructor(tag){super();this.tag=tag;}};NullWidget.inline=/* @__PURE__ */new NullWidget(\"span\");NullWidget.block=/* @__PURE__ */new NullWidget(\"div\");var Direction=/* @__PURE__ */function(Direction2){Direction2[Direction2[\"LTR\"]=0]=\"LTR\";Direction2[Direction2[\"RTL\"]=1]=\"RTL\";return Direction2;}(Direction||(Direction={}));var LTR=Direction.LTR;var RTL=Direction.RTL;function dec(str){let result=[];for(let i=0;i<str.length;i++)result.push(1<<+str[i]);return result;}var LowTypes=/* @__PURE__ */dec(\"88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008\");var ArabicTypes=/* @__PURE__ */dec(\"4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333\");var Brackets=/* @__PURE__ */Object.create(null);var BracketStack=[];for(let p of[\"()\",\"[]\",\"{}\"]){let l=/* @__PURE__ */p.charCodeAt(0),r=/* @__PURE__ */p.charCodeAt(1);Brackets[l]=r;Brackets[r]=-l;}function charType(ch){return ch<=247?LowTypes[ch]:1424<=ch&&ch<=1524?2:1536<=ch&&ch<=1785?ArabicTypes[ch-1536]:1774<=ch&&ch<=2220?4:8192<=ch&&ch<=8204?256:64336<=ch&&ch<=65023?4:1;}var BidiRE=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\ufb50-\\ufdff]/;var BidiSpan=class{/**\n  The direction of this span.\n  */get dir(){return this.level%2?RTL:LTR;}/**\n  @internal\n  */side(end,dir){return this.dir==dir==end?this.to:this.from;}/**\n  @internal\n  */forward(forward,dir){return forward==(this.dir==dir);}/**\n  @internal\n  */static find(order,index,level,assoc){let maybe=-1;for(let i=0;i<order.length;i++){let span=order[i];if(span.from<=index&&span.to>=index){if(span.level==level)return i;if(maybe<0||(assoc!=0?assoc<0?span.from<index:span.to>index:order[maybe].level>span.level))maybe=i;}}if(maybe<0)throw new RangeError(\"Index out of range\");return maybe;}/**\n  @internal\n  */constructor(from,to,level){this.from=from;this.to=to;this.level=level;}};function isolatesEq(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let iA=a[i],iB=b[i];if(iA.from!=iB.from||iA.to!=iB.to||iA.direction!=iB.direction||!isolatesEq(iA.inner,iB.inner))return false;}return true;}var types=[];function computeCharTypes(line,rFrom,rTo,isolates,outerType){for(let iI=0;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;let prevType=iI?256:outerType;for(let i=from,prev=prevType,prevStrong=prevType;i<to;i++){let type=charType(line.charCodeAt(i));if(type==512)type=prev;else if(type==8&&prevStrong==4)type=16;types[i]=type==4?2:type;if(type&7)prevStrong=type;prev=type;}for(let i=from,prev=prevType,prevStrong=prevType;i<to;i++){let type=types[i];if(type==128){if(i<to-1&&prev==types[i+1]&&prev&24)type=types[i]=prev;else types[i]=256;}else if(type==64){let end=i+1;while(end<to&&types[end]==64)end++;let replace2=i&&prev==8||end<rTo&&types[end]==8?prevStrong==1?1:8:256;for(let j=i;j<end;j++)types[j]=replace2;i=end-1;}else if(type==8&&prevStrong==1){types[i]=1;}prev=type;if(type&7)prevStrong=type;}}}function processBracketPairs(line,rFrom,rTo,isolates,outerType){let oppositeType=outerType==1?2:1;for(let iI=0,sI=0,context=0;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;for(let i=from,ch,br,type;i<to;i++){if(br=Brackets[ch=line.charCodeAt(i)]){if(br<0){for(let sJ=sI-3;sJ>=0;sJ-=3){if(BracketStack[sJ+1]==-br){let flags=BracketStack[sJ+2];let type2=flags&2?outerType:!(flags&4)?0:flags&1?oppositeType:outerType;if(type2)types[i]=types[BracketStack[sJ]]=type2;sI=sJ;break;}}}else if(BracketStack.length==189){break;}else{BracketStack[sI++]=i;BracketStack[sI++]=ch;BracketStack[sI++]=context;}}else if((type=types[i])==2||type==1){let embed=type==outerType;context=embed?0:1;for(let sJ=sI-3;sJ>=0;sJ-=3){let cur=BracketStack[sJ+2];if(cur&2)break;if(embed){BracketStack[sJ+2]|=2;}else{if(cur&4)break;BracketStack[sJ+2]|=4;}}}}}}function processNeutrals(rFrom,rTo,isolates,outerType){for(let iI=0,prev=outerType;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;for(let i=from;i<to;){let type=types[i];if(type==256){let end=i+1;for(;;){if(end==to){if(iI==isolates.length)break;end=isolates[iI++].to;to=iI<isolates.length?isolates[iI].from:rTo;}else if(types[end]==256){end++;}else{break;}}let beforeL=prev==1;let afterL=(end<rTo?types[end]:outerType)==1;let replace2=beforeL==afterL?beforeL?1:2:outerType;for(let j=end,jI=iI,fromJ=jI?isolates[jI-1].to:rFrom;j>i;){if(j==fromJ){j=isolates[--jI].from;fromJ=jI?isolates[jI-1].to:rFrom;}types[--j]=replace2;}i=end;}else{prev=type;i++;}}}}function emitSpans(line,from,to,level,baseLevel,isolates,order){let ourType=level%2?2:1;if(level%2==baseLevel%2){for(let iCh=from,iI=0;iCh<to;){let sameDir=true,isNum=false;if(iI==isolates.length||iCh<isolates[iI].from){let next=types[iCh];if(next!=ourType){sameDir=false;isNum=next==16;}}let recurse=!sameDir&&ourType==1?[]:null;let localLevel=sameDir?level:level+1;let iScan=iCh;run:for(;;){if(iI<isolates.length&&iScan==isolates[iI].from){if(isNum)break run;let iso=isolates[iI];if(!sameDir)for(let upto=iso.to,jI=iI+1;;){if(upto==to)break run;if(jI<isolates.length&&isolates[jI].from==upto)upto=isolates[jI++].to;else if(types[upto]==ourType)break run;else break;}iI++;if(recurse){recurse.push(iso);}else{if(iso.from>iCh)order.push(new BidiSpan(iCh,iso.from,localLevel));let dirSwap=iso.direction==LTR!=!(localLevel%2);computeSectionOrder(line,dirSwap?level+1:level,baseLevel,iso.inner,iso.from,iso.to,order);iCh=iso.to;}iScan=iso.to;}else if(iScan==to||(sameDir?types[iScan]!=ourType:types[iScan]==ourType)){break;}else{iScan++;}}if(recurse)emitSpans(line,iCh,iScan,level+1,baseLevel,recurse,order);else if(iCh<iScan)order.push(new BidiSpan(iCh,iScan,localLevel));iCh=iScan;}}else{for(let iCh=to,iI=isolates.length;iCh>from;){let sameDir=true,isNum=false;if(!iI||iCh>isolates[iI-1].to){let next=types[iCh-1];if(next!=ourType){sameDir=false;isNum=next==16;}}let recurse=!sameDir&&ourType==1?[]:null;let localLevel=sameDir?level:level+1;let iScan=iCh;run:for(;;){if(iI&&iScan==isolates[iI-1].to){if(isNum)break run;let iso=isolates[--iI];if(!sameDir)for(let upto=iso.from,jI=iI;;){if(upto==from)break run;if(jI&&isolates[jI-1].to==upto)upto=isolates[--jI].from;else if(types[upto-1]==ourType)break run;else break;}if(recurse){recurse.push(iso);}else{if(iso.to<iCh)order.push(new BidiSpan(iso.to,iCh,localLevel));let dirSwap=iso.direction==LTR!=!(localLevel%2);computeSectionOrder(line,dirSwap?level+1:level,baseLevel,iso.inner,iso.from,iso.to,order);iCh=iso.from;}iScan=iso.from;}else if(iScan==from||(sameDir?types[iScan-1]!=ourType:types[iScan-1]==ourType)){break;}else{iScan--;}}if(recurse)emitSpans(line,iScan,iCh,level+1,baseLevel,recurse,order);else if(iScan<iCh)order.push(new BidiSpan(iScan,iCh,localLevel));iCh=iScan;}}}function computeSectionOrder(line,level,baseLevel,isolates,from,to,order){let outerType=level%2?2:1;computeCharTypes(line,from,to,isolates,outerType);processBracketPairs(line,from,to,isolates,outerType);processNeutrals(from,to,isolates,outerType);emitSpans(line,from,to,level,baseLevel,isolates,order);}function computeOrder(line,direction,isolates){if(!line)return[new BidiSpan(0,0,direction==RTL?1:0)];if(direction==LTR&&!isolates.length&&!BidiRE.test(line))return trivialOrder(line.length);if(isolates.length)while(line.length>types.length)types[types.length]=256;let order=[],level=direction==LTR?0:1;computeSectionOrder(line,level,level,isolates,0,line.length,order);return order;}function trivialOrder(length){return[new BidiSpan(0,length,0)];}var movedOver=\"\";function moveVisually(line,order,dir,start,forward){var _a;let startIndex=start.head-line.from;let spanI=BidiSpan.find(order,startIndex,(_a=start.bidiLevel)!==null&&_a!==void 0?_a:-1,start.assoc);let span=order[spanI],spanEnd=span.side(forward,dir);if(startIndex==spanEnd){let nextI=spanI+=forward?1:-1;if(nextI<0||nextI>=order.length)return null;span=order[spanI=nextI];startIndex=span.side(!forward,dir);spanEnd=span.side(forward,dir);}let nextIndex=findClusterBreak(line.text,startIndex,span.forward(forward,dir));if(nextIndex<span.from||nextIndex>span.to)nextIndex=spanEnd;movedOver=line.text.slice(Math.min(startIndex,nextIndex),Math.max(startIndex,nextIndex));let nextSpan=spanI==(forward?order.length-1:0)?null:order[spanI+(forward?1:-1)];if(nextSpan&&nextIndex==spanEnd&&nextSpan.level+(forward?0:1)<span.level)return EditorSelection.cursor(nextSpan.side(!forward,dir)+line.from,nextSpan.forward(forward,dir)?1:-1,nextSpan.level);return EditorSelection.cursor(nextIndex+line.from,span.forward(forward,dir)?-1:1,span.level);}function autoDirection(text,from,to){for(let i=from;i<to;i++){let type=charType(text.charCodeAt(i));if(type==1)return LTR;if(type==2||type==4)return RTL;}return LTR;}var clickAddsSelectionRange=/* @__PURE__ */Facet.define();var dragMovesSelection$1=/* @__PURE__ */Facet.define();var mouseSelectionStyle=/* @__PURE__ */Facet.define();var exceptionSink=/* @__PURE__ */Facet.define();var updateListener=/* @__PURE__ */Facet.define();var inputHandler=/* @__PURE__ */Facet.define();var focusChangeEffect=/* @__PURE__ */Facet.define();var clipboardInputFilter=/* @__PURE__ */Facet.define();var clipboardOutputFilter=/* @__PURE__ */Facet.define();var perLineTextDirection=/* @__PURE__ */Facet.define({combine:values=>values.some(x=>x)});var nativeSelectionHidden=/* @__PURE__ */Facet.define({combine:values=>values.some(x=>x)});var scrollHandler=/* @__PURE__ */Facet.define();var ScrollTarget=class _ScrollTarget{map(changes){return changes.empty?this:new _ScrollTarget(this.range.map(changes),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot);}clip(state){return this.range.to<=state.doc.length?this:new _ScrollTarget(EditorSelection.cursor(state.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot);}constructor(range,y=\"nearest\",x=\"nearest\",yMargin=5,xMargin=5,isSnapshot=false){this.range=range;this.y=y;this.x=x;this.yMargin=yMargin;this.xMargin=xMargin;this.isSnapshot=isSnapshot;}};var scrollIntoView=/* @__PURE__ */StateEffect.define({map:(t,ch)=>t.map(ch)});var setEditContextFormatting=/* @__PURE__ */StateEffect.define();function logException(state,exception,context){let handler=state.facet(exceptionSink);if(handler.length)handler[0](exception);else if(window.onerror)window.onerror(String(exception),context,void 0,void 0,exception);else if(context)console.error(context+\":\",exception);else console.error(exception);}var editable=/* @__PURE__ */Facet.define({combine:values=>values.length?values[0]:true});var nextPluginID=0;var viewPlugin=/* @__PURE__ */Facet.define();var ViewPlugin=class _ViewPlugin{/**\n  Define a plugin from a constructor function that creates the\n  plugin's value, given an editor view.\n  */static define(create,spec){const{eventHandlers,eventObservers,provide,decorations:deco}=spec||{};return new _ViewPlugin(nextPluginID++,create,eventHandlers,eventObservers,plugin2=>{let ext=[viewPlugin.of(plugin2)];if(deco)ext.push(decorations.of(view=>{let pluginInst=view.plugin(plugin2);return pluginInst?deco(pluginInst):Decoration.none;}));if(provide)ext.push(provide(plugin2));return ext;});}/**\n  Create a plugin for a class whose constructor takes a single\n  editor view as argument.\n  */static fromClass(cls,spec){return _ViewPlugin.define(view=>new cls(view),spec);}constructor(id,create,domEventHandlers,domEventObservers,buildExtensions){this.id=id;this.create=create;this.domEventHandlers=domEventHandlers;this.domEventObservers=domEventObservers;this.extension=buildExtensions(this);}};var PluginInstance=class{update(view){if(!this.value){if(this.spec){try{this.value=this.spec.create(view);}catch(e){logException(view.state,e,\"CodeMirror plugin crashed\");this.deactivate();}}}else if(this.mustUpdate){let update=this.mustUpdate;this.mustUpdate=null;if(this.value.update){try{this.value.update(update);}catch(e){logException(update.state,e,\"CodeMirror plugin crashed\");if(this.value.destroy)try{this.value.destroy();}catch(_){}this.deactivate();}}}return this;}destroy(view){var _a;if((_a=this.value)===null||_a===void 0?void 0:_a.destroy){try{this.value.destroy();}catch(e){logException(view.state,e,\"CodeMirror plugin crashed\");}}}deactivate(){this.spec=this.value=null;}constructor(spec){this.spec=spec;this.mustUpdate=null;this.value=null;}};var editorAttributes=/* @__PURE__ */Facet.define();var contentAttributes=/* @__PURE__ */Facet.define();var decorations=/* @__PURE__ */Facet.define();var outerDecorations=/* @__PURE__ */Facet.define();var atomicRanges=/* @__PURE__ */Facet.define();var bidiIsolatedRanges=/* @__PURE__ */Facet.define();function getIsolatedRanges(view,line){let isolates=view.state.facet(bidiIsolatedRanges);if(!isolates.length)return isolates;let sets=isolates.map(i=>i instanceof Function?i(view):i);let result=[];RangeSet.spans(sets,line.from,line.to,{point(){},span(fromDoc,toDoc,active,open){let from=fromDoc-line.from,to=toDoc-line.from;let level=result;for(let i=active.length-1;i>=0;i--,open--){let direction=active[i].spec.bidiIsolate,update;if(direction==null)direction=autoDirection(line.text,from,to);if(open>0&&level.length&&(update=level[level.length-1]).to==from&&update.direction==direction){update.to=to;level=update.inner;}else{let add={from,to,direction,inner:[]};level.push(add);level=add.inner;}}}});return result;}var scrollMargins=/* @__PURE__ */Facet.define();function getScrollMargins(view){let left=0,right=0,top2=0,bottom=0;for(let source of view.state.facet(scrollMargins)){let m=source(view);if(m){if(m.left!=null)left=Math.max(left,m.left);if(m.right!=null)right=Math.max(right,m.right);if(m.top!=null)top2=Math.max(top2,m.top);if(m.bottom!=null)bottom=Math.max(bottom,m.bottom);}}return{left,right,top:top2,bottom};}var styleModule=/* @__PURE__ */Facet.define();var ChangedRange=class _ChangedRange{join(other){return new _ChangedRange(Math.min(this.fromA,other.fromA),Math.max(this.toA,other.toA),Math.min(this.fromB,other.fromB),Math.max(this.toB,other.toB));}addToSet(set){let i=set.length,me=this;for(;i>0;i--){let range=set[i-1];if(range.fromA>me.toA)continue;if(range.toA<me.fromA)break;me=me.join(range);set.splice(i-1,1);}set.splice(i,0,me);return set;}static extendWithRanges(diff,ranges){if(ranges.length==0)return diff;let result=[];for(let dI=0,rI=0,posA=0,posB=0;;dI++){let next=dI==diff.length?null:diff[dI],off=posA-posB;let end=next?next.fromB:1e9;while(rI<ranges.length&&ranges[rI]<end){let from=ranges[rI],to=ranges[rI+1];let fromB=Math.max(posB,from),toB=Math.min(end,to);if(fromB<=toB)new _ChangedRange(fromB+off,toB+off,fromB,toB).addToSet(result);if(to>end)break;else rI+=2;}if(!next)return result;new _ChangedRange(next.fromA,next.toA,next.fromB,next.toB).addToSet(result);posA=next.toA;posB=next.toB;}}constructor(fromA,toA,fromB,toB){this.fromA=fromA;this.toA=toA;this.fromB=fromB;this.toB=toB;}};var ViewUpdate=class _ViewUpdate{/**\n  @internal\n  */static create(view,state,transactions){return new _ViewUpdate(view,state,transactions);}/**\n  Tells you whether the [viewport](https://codemirror.net/6/docs/ref/#view.EditorView.viewport) or\n  [visible ranges](https://codemirror.net/6/docs/ref/#view.EditorView.visibleRanges) changed in this\n  update.\n  */get viewportChanged(){return(this.flags&4)>0;}/**\n  Returns true when\n  [`viewportChanged`](https://codemirror.net/6/docs/ref/#view.ViewUpdate.viewportChanged) is true\n  and the viewport change is not just the result of mapping it in\n  response to document changes.\n  */get viewportMoved(){return(this.flags&8)>0;}/**\n  Indicates whether the height of a block element in the editor\n  changed in this update.\n  */get heightChanged(){return(this.flags&2)>0;}/**\n  Returns true when the document was modified or the size of the\n  editor, or elements within the editor, changed.\n  */get geometryChanged(){return this.docChanged||(this.flags&(16|2))>0;}/**\n  True when this update indicates a focus change.\n  */get focusChanged(){return(this.flags&1)>0;}/**\n  Whether the document changed in this update.\n  */get docChanged(){return!this.changes.empty;}/**\n  Whether the selection was explicitly set in this update.\n  */get selectionSet(){return this.transactions.some(tr=>tr.selection);}/**\n  @internal\n  */get empty(){return this.flags==0&&this.transactions.length==0;}constructor(view,state,transactions){this.view=view;this.state=state;this.transactions=transactions;this.flags=0;this.startState=view.state;this.changes=ChangeSet.empty(this.startState.doc.length);for(let tr of transactions)this.changes=this.changes.compose(tr.changes);let changedRanges=[];this.changes.iterChangedRanges((fromA,toA,fromB,toB)=>changedRanges.push(new ChangedRange(fromA,toA,fromB,toB)));this.changedRanges=changedRanges;}};var DocView=class extends ContentView{get length(){return this.view.state.doc.length;}// Update the document view to a given state.\nupdate(update){var _a;let changedRanges=update.changedRanges;if(this.minWidth>0&&changedRanges.length){if(!changedRanges.every(({fromA,toA})=>toA<this.minWidthFrom||fromA>this.minWidthTo)){this.minWidth=this.minWidthFrom=this.minWidthTo=0;}else{this.minWidthFrom=update.changes.mapPos(this.minWidthFrom,1);this.minWidthTo=update.changes.mapPos(this.minWidthTo,1);}}this.updateEditContextFormatting(update);let readCompositionAt=-1;if(this.view.inputState.composing>=0&&!this.view.observer.editContext){if((_a=this.domChanged)===null||_a===void 0?void 0:_a.newSel)readCompositionAt=this.domChanged.newSel.head;else if(!touchesComposition(update.changes,this.hasComposition)&&!update.selectionSet)readCompositionAt=update.state.selection.main.head;}let composition=readCompositionAt>-1?findCompositionRange(this.view,update.changes,readCompositionAt):null;this.domChanged=null;if(this.hasComposition){this.markedForComposition.clear();let{from,to}=this.hasComposition;changedRanges=new ChangedRange(from,to,update.changes.mapPos(from,-1),update.changes.mapPos(to,1)).addToSet(changedRanges.slice());}this.hasComposition=composition?{from:composition.range.fromB,to:composition.range.toB}:null;if((browser.ie||browser.chrome)&&!composition&&update&&update.state.doc.lines!=update.startState.doc.lines)this.forceSelection=true;let prevDeco=this.decorations,deco=this.updateDeco();let decoDiff=findChangedDeco(prevDeco,deco,update.changes);changedRanges=ChangedRange.extendWithRanges(changedRanges,decoDiff);if(!(this.flags&7)&&changedRanges.length==0){return false;}else{this.updateInner(changedRanges,update.startState.doc.length,composition);if(update.transactions.length)this.lastUpdate=Date.now();return true;}}// Used by update and the constructor do perform the actual DOM\n// update\nupdateInner(changes,oldLength,composition){this.view.viewState.mustMeasureContent=true;this.updateChildren(changes,oldLength,composition);let{observer}=this.view;observer.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+\"px\";this.dom.style.flexBasis=this.minWidth?this.minWidth+\"px\":\"\";let track=browser.chrome||browser.ios?{node:observer.selectionRange.focusNode,written:false}:void 0;this.sync(this.view,track);this.flags&=~7;if(track&&(track.written||observer.selectionRange.focusNode!=track.node))this.forceSelection=true;this.dom.style.height=\"\";});this.markedForComposition.forEach(cView=>cView.flags&=~8);let gaps=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length){for(let child of this.children)if(child instanceof BlockWidgetView&&child.widget instanceof BlockGapWidget)gaps.push(child.dom);}observer.updateGaps(gaps);}updateChildren(changes,oldLength,composition){let ranges=composition?composition.range.addToSet(changes.slice()):changes;let cursor=this.childCursor(oldLength);for(let i=ranges.length-1;;i--){let next=i>=0?ranges[i]:null;if(!next)break;let{fromA,toA,fromB,toB}=next,content,breakAtStart,openStart,openEnd;if(composition&&composition.range.fromB<toB&&composition.range.toB>fromB){let before=ContentBuilder.build(this.view.state.doc,fromB,composition.range.fromB,this.decorations,this.dynamicDecorationMap);let after=ContentBuilder.build(this.view.state.doc,composition.range.toB,toB,this.decorations,this.dynamicDecorationMap);breakAtStart=before.breakAtStart;openStart=before.openStart;openEnd=after.openEnd;let compLine=this.compositionView(composition);if(after.breakAtStart){compLine.breakAfter=1;}else if(after.content.length&&compLine.merge(compLine.length,compLine.length,after.content[0],false,after.openStart,0)){compLine.breakAfter=after.content[0].breakAfter;after.content.shift();}if(before.content.length&&compLine.merge(0,0,before.content[before.content.length-1],true,0,before.openEnd)){before.content.pop();}content=before.content.concat(compLine).concat(after.content);}else{({content,breakAtStart,openStart,openEnd}=ContentBuilder.build(this.view.state.doc,fromB,toB,this.decorations,this.dynamicDecorationMap));}let{i:toI,off:toOff}=cursor.findPos(toA,1);let{i:fromI,off:fromOff}=cursor.findPos(fromA,-1);replaceRange(this,fromI,fromOff,toI,toOff,content,breakAtStart,openStart,openEnd);}if(composition)this.fixCompositionDOM(composition);}updateEditContextFormatting(update){this.editContextFormatting=this.editContextFormatting.map(update.changes);for(let tr of update.transactions)for(let effect of tr.effects)if(effect.is(setEditContextFormatting)){this.editContextFormatting=effect.value;}}compositionView(composition){let cur=new TextView(composition.text.nodeValue);cur.flags|=8;for(let{deco}of composition.marks)cur=new MarkView(deco,[cur],cur.length);let line=new LineView;line.append(cur,0);return line;}fixCompositionDOM(composition){let fix=(dom,cView2)=>{cView2.flags|=8|(cView2.children.some(c=>c.flags&7)?1:0);this.markedForComposition.add(cView2);let prev=ContentView.get(dom);if(prev&&prev!=cView2)prev.dom=null;cView2.setDOM(dom);};let pos=this.childPos(composition.range.fromB,1);let cView=this.children[pos.i];fix(composition.line,cView);for(let i=composition.marks.length-1;i>=-1;i--){pos=cView.childPos(pos.off,1);cView=cView.children[pos.i];fix(i>=0?composition.marks[i].node:composition.text,cView);}}// Sync the DOM selection to this.state.selection\nupdateSelection(mustRead=false,fromPointer=false){if(mustRead||!this.view.observer.selectionRange.focusNode)this.view.observer.readSelectionRange();let activeElt=this.view.root.activeElement,focused=activeElt==this.dom;let selectionNotFocus=!focused&&!(this.view.state.facet(editable)||this.dom.tabIndex>-1)&&hasSelection(this.dom,this.view.observer.selectionRange)&&!(activeElt&&this.dom.contains(activeElt));if(!(focused||fromPointer||selectionNotFocus))return;let force=this.forceSelection;this.forceSelection=false;let main=this.view.state.selection.main;let anchor=this.moveToLine(this.domAtPos(main.anchor));let head=main.empty?anchor:this.moveToLine(this.domAtPos(main.head));if(browser.gecko&&main.empty&&!this.hasComposition&&betweenUneditable(anchor)){let dummy=document.createTextNode(\"\");this.view.observer.ignore(()=>anchor.node.insertBefore(dummy,anchor.node.childNodes[anchor.offset]||null));anchor=head=new DOMPos(dummy,0);force=true;}let domSel=this.view.observer.selectionRange;if(force||!domSel.focusNode||(!isEquivalentPosition(anchor.node,anchor.offset,domSel.anchorNode,domSel.anchorOffset)||!isEquivalentPosition(head.node,head.offset,domSel.focusNode,domSel.focusOffset))&&!this.suppressWidgetCursorChange(domSel,main)){this.view.observer.ignore(()=>{if(browser.android&&browser.chrome&&this.dom.contains(domSel.focusNode)&&inUneditable(domSel.focusNode,this.dom)){this.dom.blur();this.dom.focus({preventScroll:true});}let rawSel=getSelection(this.view.root);if(!rawSel);else if(main.empty){if(browser.gecko){let nextTo=nextToUneditable(anchor.node,anchor.offset);if(nextTo&&nextTo!=(1|2)){let text=(nextTo==1?textNodeBefore:textNodeAfter)(anchor.node,anchor.offset);if(text)anchor=new DOMPos(text.node,text.offset);}}rawSel.collapse(anchor.node,anchor.offset);if(main.bidiLevel!=null&&rawSel.caretBidiLevel!==void 0)rawSel.caretBidiLevel=main.bidiLevel;}else if(rawSel.extend){rawSel.collapse(anchor.node,anchor.offset);try{rawSel.extend(head.node,head.offset);}catch(_){}}else{let range=document.createRange();if(main.anchor>main.head)[anchor,head]=[head,anchor];range.setEnd(head.node,head.offset);range.setStart(anchor.node,anchor.offset);rawSel.removeAllRanges();rawSel.addRange(range);}if(selectionNotFocus&&this.view.root.activeElement==this.dom){this.dom.blur();if(activeElt)activeElt.focus();}});this.view.observer.setSelectionRange(anchor,head);}this.impreciseAnchor=anchor.precise?null:new DOMPos(domSel.anchorNode,domSel.anchorOffset);this.impreciseHead=head.precise?null:new DOMPos(domSel.focusNode,domSel.focusOffset);}// If a zero-length widget is inserted next to the cursor during\n// composition, avoid moving it across it and disrupting the\n// composition.\nsuppressWidgetCursorChange(sel,cursor){return this.hasComposition&&cursor.empty&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset)&&this.posFromDOM(sel.focusNode,sel.focusOffset)==cursor.head;}enforceCursorAssoc(){if(this.hasComposition)return;let{view}=this,cursor=view.state.selection.main;let sel=getSelection(view.root);let{anchorNode,anchorOffset}=view.observer.selectionRange;if(!sel||!cursor.empty||!cursor.assoc||!sel.modify)return;let line=LineView.find(this,cursor.head);if(!line)return;let lineStart=line.posAtStart;if(cursor.head==lineStart||cursor.head==lineStart+line.length)return;let before=this.coordsAt(cursor.head,-1),after=this.coordsAt(cursor.head,1);if(!before||!after||before.bottom>after.top)return;let dom=this.domAtPos(cursor.head+cursor.assoc);sel.collapse(dom.node,dom.offset);sel.modify(\"move\",cursor.assoc<0?\"forward\":\"backward\",\"lineboundary\");view.observer.readSelectionRange();let newRange=view.observer.selectionRange;if(view.docView.posFromDOM(newRange.anchorNode,newRange.anchorOffset)!=cursor.from)sel.collapse(anchorNode,anchorOffset);}// If a position is in/near a block widget, move it to a nearby text\n// line, since we don't want the cursor inside a block widget.\nmoveToLine(pos){let dom=this.dom,newPos;if(pos.node!=dom)return pos;for(let i=pos.offset;!newPos&&i<dom.childNodes.length;i++){let view=ContentView.get(dom.childNodes[i]);if(view instanceof LineView)newPos=view.domAtPos(0);}for(let i=pos.offset-1;!newPos&&i>=0;i--){let view=ContentView.get(dom.childNodes[i]);if(view instanceof LineView)newPos=view.domAtPos(view.length);}return newPos?new DOMPos(newPos.node,newPos.offset,true):pos;}nearest(dom){for(let cur=dom;cur;){let domView=ContentView.get(cur);if(domView&&domView.rootView==this)return domView;cur=cur.parentNode;}return null;}posFromDOM(node,offset){let view=this.nearest(node);if(!view)throw new RangeError(\"Trying to find position for a DOM position outside of the document\");return view.localPosFromDOM(node,offset)+view.posAtStart;}domAtPos(pos){let{i,off}=this.childCursor().findPos(pos,-1);for(;i<this.children.length-1;){let child=this.children[i];if(off<child.length||child instanceof LineView)break;i++;off=0;}return this.children[i].domAtPos(off);}coordsAt(pos,side){let best=null,bestPos=0;for(let off=this.length,i=this.children.length-1;i>=0;i--){let child=this.children[i],end=off-child.breakAfter,start=end-child.length;if(end<pos)break;if(start<=pos&&(start<pos||child.covers(-1))&&(end>pos||child.covers(1))&&(!best||child instanceof LineView&&!(best instanceof LineView&&side>=0))){best=child;bestPos=start;}else if(best&&start==pos&&end==pos&&child instanceof BlockWidgetView&&Math.abs(side)<2){if(child.deco.startSide<0)break;else if(i)best=null;}off=start;}return best?best.coordsAt(pos-bestPos,side):null;}coordsForChar(pos){let{i,off}=this.childPos(pos,1),child=this.children[i];if(!(child instanceof LineView))return null;while(child.children.length){let{i:i2,off:childOff}=child.childPos(off,1);for(;;i2++){if(i2==child.children.length)return null;if((child=child.children[i2]).length)break;}off=childOff;}if(!(child instanceof TextView))return null;let end=findClusterBreak(child.text,off);if(end==off)return null;let rects=textRange(child.dom,off,end).getClientRects();for(let i2=0;i2<rects.length;i2++){let rect=rects[i2];if(i2==rects.length-1||rect.top<rect.bottom&&rect.left<rect.right)return rect;}return null;}measureVisibleLineHeights(viewport){let result=[],{from,to}=viewport;let contentWidth=this.view.contentDOM.clientWidth;let isWider=contentWidth>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1;let widest=-1,ltr=this.view.textDirection==Direction.LTR;for(let pos=0,i=0;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(end>to)break;if(pos>=from){let childRect=child.dom.getBoundingClientRect();result.push(childRect.height);if(isWider){let last=child.dom.lastChild;let rects=last?clientRectsFor(last):[];if(rects.length){let rect=rects[rects.length-1];let width=ltr?rect.right-childRect.left:childRect.right-rect.left;if(width>widest){widest=width;this.minWidth=contentWidth;this.minWidthFrom=pos;this.minWidthTo=end;}}}}pos=end+child.breakAfter;}return result;}textDirectionAt(pos){let{i}=this.childPos(pos,1);return getComputedStyle(this.children[i].dom).direction==\"rtl\"?Direction.RTL:Direction.LTR;}measureTextSize(){for(let child of this.children){if(child instanceof LineView){let measure=child.measureTextSize();if(measure)return measure;}}let dummy=document.createElement(\"div\"),lineHeight,charWidth,textHeight;dummy.className=\"cm-line\";dummy.style.width=\"99999px\";dummy.style.position=\"absolute\";dummy.textContent=\"abc def ghi jkl mno pqr stu\";this.view.observer.ignore(()=>{this.dom.appendChild(dummy);let rect=clientRectsFor(dummy.firstChild)[0];lineHeight=dummy.getBoundingClientRect().height;charWidth=rect?rect.width/27:7;textHeight=rect?rect.height:lineHeight;dummy.remove();});return{lineHeight,charWidth,textHeight};}childCursor(pos=this.length){let i=this.children.length;if(i)pos-=this.children[--i].length;return new ChildCursor(this.children,pos,i);}computeBlockGapDeco(){let deco=[],vs=this.view.viewState;for(let pos=0,i=0;;i++){let next=i==vs.viewports.length?null:vs.viewports[i];let end=next?next.from-1:this.length;if(end>pos){let height=(vs.lineBlockAt(end).bottom-vs.lineBlockAt(pos).top)/this.view.scaleY;deco.push(Decoration.replace({widget:new BlockGapWidget(height),block:true,inclusive:true,isBlockGap:true}).range(pos,end));}if(!next)break;pos=next.to+1;}return Decoration.set(deco);}updateDeco(){let i=1;let allDeco=this.view.state.facet(decorations).map(d=>{let dynamic=this.dynamicDecorationMap[i++]=typeof d==\"function\";return dynamic?d(this.view):d;});let dynamicOuter=false,outerDeco=this.view.state.facet(outerDecorations).map((d,i2)=>{let dynamic=typeof d==\"function\";if(dynamic)dynamicOuter=true;return dynamic?d(this.view):d;});if(outerDeco.length){this.dynamicDecorationMap[i++]=dynamicOuter;allDeco.push(RangeSet.join(outerDeco));}this.decorations=[this.editContextFormatting,...allDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];while(i<this.decorations.length)this.dynamicDecorationMap[i++]=false;return this.decorations;}scrollIntoView(target){if(target.isSnapshot){let ref=this.view.viewState.lineBlockAt(target.range.head);this.view.scrollDOM.scrollTop=ref.top-target.yMargin;this.view.scrollDOM.scrollLeft=target.xMargin;return;}for(let handler of this.view.state.facet(scrollHandler)){try{if(handler(this.view,target.range,target))return true;}catch(e){logException(this.view.state,e,\"scroll handler\");}}let{range}=target;let rect=this.coordsAt(range.head,range.empty?range.assoc:range.head>range.anchor?-1:1),other;if(!rect)return;if(!range.empty&&(other=this.coordsAt(range.anchor,range.anchor>range.head?-1:1)))rect={left:Math.min(rect.left,other.left),top:Math.min(rect.top,other.top),right:Math.max(rect.right,other.right),bottom:Math.max(rect.bottom,other.bottom)};let margins=getScrollMargins(this.view);let targetRect={left:rect.left-margins.left,top:rect.top-margins.top,right:rect.right+margins.right,bottom:rect.bottom+margins.bottom};let{offsetWidth,offsetHeight}=this.view.scrollDOM;scrollRectIntoView(this.view.scrollDOM,targetRect,range.head<range.anchor?-1:1,target.x,target.y,Math.max(Math.min(target.xMargin,offsetWidth),-offsetWidth),Math.max(Math.min(target.yMargin,offsetHeight),-offsetHeight),this.view.textDirection==Direction.LTR);}constructor(view){super();this.view=view;this.decorations=[];this.dynamicDecorationMap=[false];this.domChanged=null;this.hasComposition=null;this.markedForComposition=/* @__PURE__ */new Set;this.editContextFormatting=Decoration.none;this.lastCompositionAfterCursor=false;this.minWidth=0;this.minWidthFrom=0;this.minWidthTo=0;this.impreciseAnchor=null;this.impreciseHead=null;this.forceSelection=false;this.lastUpdate=Date.now();this.setDOM(view.contentDOM);this.children=[new LineView];this.children[0].setParent(this);this.updateDeco();this.updateInner([new ChangedRange(0,0,0,view.state.doc.length)],0,null);}};function betweenUneditable(pos){return pos.node.nodeType==1&&pos.node.firstChild&&(pos.offset==0||pos.node.childNodes[pos.offset-1].contentEditable==\"false\")&&(pos.offset==pos.node.childNodes.length||pos.node.childNodes[pos.offset].contentEditable==\"false\");}function findCompositionNode(view,headPos){let sel=view.observer.selectionRange;if(!sel.focusNode)return null;let textBefore=textNodeBefore(sel.focusNode,sel.focusOffset);let textAfter=textNodeAfter(sel.focusNode,sel.focusOffset);let textNode=textBefore||textAfter;if(textAfter&&textBefore&&textAfter.node!=textBefore.node){let descAfter=ContentView.get(textAfter.node);if(!descAfter||descAfter instanceof TextView&&descAfter.text!=textAfter.node.nodeValue){textNode=textAfter;}else if(view.docView.lastCompositionAfterCursor){let descBefore=ContentView.get(textBefore.node);if(!(!descBefore||descBefore instanceof TextView&&descBefore.text!=textBefore.node.nodeValue))textNode=textAfter;}}view.docView.lastCompositionAfterCursor=textNode!=textBefore;if(!textNode)return null;let from=headPos-textNode.offset;return{from,to:from+textNode.node.nodeValue.length,node:textNode.node};}function findCompositionRange(view,changes,headPos){let found=findCompositionNode(view,headPos);if(!found)return null;let{node:textNode,from,to}=found,text=textNode.nodeValue;if(/[\\n\\r]/.test(text))return null;if(view.state.doc.sliceString(found.from,found.to)!=text)return null;let inv=changes.invertedDesc;let range=new ChangedRange(inv.mapPos(from),inv.mapPos(to),from,to);let marks=[];for(let parent=textNode.parentNode;;parent=parent.parentNode){let parentView=ContentView.get(parent);if(parentView instanceof MarkView)marks.push({node:parent,deco:parentView.mark});else if(parentView instanceof LineView||parent.nodeName==\"DIV\"&&parent.parentNode==view.contentDOM)return{range,text:textNode,marks,line:parent};else if(parent!=view.contentDOM)marks.push({node:parent,deco:new MarkDecoration({inclusive:true,attributes:getAttrs(parent),tagName:parent.tagName.toLowerCase()})});else return null;}}function nextToUneditable(node,offset){if(node.nodeType!=1)return 0;return(offset&&node.childNodes[offset-1].contentEditable==\"false\"?1:0)|(offset<node.childNodes.length&&node.childNodes[offset].contentEditable==\"false\"?2:0);}var DecorationComparator$1=class DecorationComparator{compareRange(from,to){addRange(from,to,this.changes);}comparePoint(from,to){addRange(from,to,this.changes);}boundChange(pos){addRange(pos,pos,this.changes);}constructor(){this.changes=[];}};function findChangedDeco(a,b,diff){let comp=new DecorationComparator$1;RangeSet.compare(a,b,diff,comp);return comp.changes;}function inUneditable(node,inside2){for(let cur=node;cur&&cur!=inside2;cur=cur.assignedSlot||cur.parentNode){if(cur.nodeType==1&&cur.contentEditable==\"false\"){return true;}}return false;}function touchesComposition(changes,composition){let touched=false;if(composition)changes.iterChangedRanges((from,to)=>{if(from<composition.to&&to>composition.from)touched=true;});return touched;}function groupAt(state,pos,bias=1){let categorize=state.charCategorizer(pos);let line=state.doc.lineAt(pos),linePos=pos-line.from;if(line.length==0)return EditorSelection.cursor(pos);if(linePos==0)bias=1;else if(linePos==line.length)bias=-1;let from=linePos,to=linePos;if(bias<0)from=findClusterBreak(line.text,linePos,false);else to=findClusterBreak(line.text,linePos);let cat=categorize(line.text.slice(from,to));while(from>0){let prev=findClusterBreak(line.text,from,false);if(categorize(line.text.slice(prev,from))!=cat)break;from=prev;}while(to<line.length){let next=findClusterBreak(line.text,to);if(categorize(line.text.slice(to,next))!=cat)break;to=next;}return EditorSelection.range(from+line.from,to+line.from);}function getdx(x,rect){return rect.left>x?rect.left-x:Math.max(0,x-rect.right);}function getdy(y,rect){return rect.top>y?rect.top-y:Math.max(0,y-rect.bottom);}function yOverlap(a,b){return a.top<b.bottom-1&&a.bottom>b.top+1;}function upTop(rect,top2){return top2<rect.top?{top:top2,left:rect.left,right:rect.right,bottom:rect.bottom}:rect;}function upBot(rect,bottom){return bottom>rect.bottom?{top:rect.top,left:rect.left,right:rect.right,bottom}:rect;}function domPosAtCoords(parent,x,y){let closest,closestRect,closestX,closestY,closestOverlap=false;let above,below,aboveRect,belowRect;for(let child=parent.firstChild;child;child=child.nextSibling){let rects=clientRectsFor(child);for(let i=0;i<rects.length;i++){let rect=rects[i];if(closestRect&&yOverlap(closestRect,rect))rect=upTop(upBot(rect,closestRect.bottom),closestRect.top);let dx=getdx(x,rect),dy=getdy(y,rect);if(dx==0&&dy==0)return child.nodeType==3?domPosInText(child,x,y):domPosAtCoords(child,x,y);if(!closest||closestY>dy||closestY==dy&&closestX>dx){closest=child;closestRect=rect;closestX=dx;closestY=dy;let side=dy?y<rect.top?-1:1:dx?x<rect.left?-1:1:0;closestOverlap=!side||(side>0?i<rects.length-1:i>0);}if(dx==0){if(y>rect.bottom&&(!aboveRect||aboveRect.bottom<rect.bottom)){above=child;aboveRect=rect;}else if(y<rect.top&&(!belowRect||belowRect.top>rect.top)){below=child;belowRect=rect;}}else if(aboveRect&&yOverlap(aboveRect,rect)){aboveRect=upBot(aboveRect,rect.bottom);}else if(belowRect&&yOverlap(belowRect,rect)){belowRect=upTop(belowRect,rect.top);}}}if(aboveRect&&aboveRect.bottom>=y){closest=above;closestRect=aboveRect;}else if(belowRect&&belowRect.top<=y){closest=below;closestRect=belowRect;}if(!closest)return{node:parent,offset:0};let clipX=Math.max(closestRect.left,Math.min(closestRect.right,x));if(closest.nodeType==3)return domPosInText(closest,clipX,y);if(closestOverlap&&closest.contentEditable!=\"false\")return domPosAtCoords(closest,clipX,y);let offset=Array.prototype.indexOf.call(parent.childNodes,closest)+(x>=(closestRect.left+closestRect.right)/2?1:0);return{node:parent,offset};}function domPosInText(node,x,y){let len=node.nodeValue.length;let closestOffset=-1,closestDY=1e9,generalSide=0;for(let i=0;i<len;i++){let rects=textRange(node,i,i+1).getClientRects();for(let j=0;j<rects.length;j++){let rect=rects[j];if(rect.top==rect.bottom)continue;if(!generalSide)generalSide=x-rect.left;let dy=(rect.top>y?rect.top-y:y-rect.bottom)-1;if(rect.left-1<=x&&rect.right+1>=x&&dy<closestDY){let right=x>=(rect.left+rect.right)/2,after=right;if(browser.chrome||browser.gecko){let rectBefore=textRange(node,i).getBoundingClientRect();if(rectBefore.left==rect.right)after=!right;}if(dy<=0)return{node,offset:i+(after?1:0)};closestOffset=i+(after?1:0);closestDY=dy;}}}return{node,offset:closestOffset>-1?closestOffset:generalSide>0?node.nodeValue.length:0};}function posAtCoords(view,coords,precise,bias=-1){var _a,_b;let content=view.contentDOM.getBoundingClientRect(),docTop=content.top+view.viewState.paddingTop;let block,{docHeight}=view.viewState;let{x,y}=coords,yOffset=y-docTop;if(yOffset<0)return 0;if(yOffset>docHeight)return view.state.doc.length;for(let halfLine=view.viewState.heightOracle.textHeight/2,bounced=false;;){block=view.elementAtHeight(yOffset);if(block.type==BlockType.Text)break;for(;;){yOffset=bias>0?block.bottom+halfLine:block.top-halfLine;if(yOffset>=0&&yOffset<=docHeight)break;if(bounced)return precise?null:0;bounced=true;bias=-bias;}}y=docTop+yOffset;let lineStart=block.from;if(lineStart<view.viewport.from)return view.viewport.from==0?0:precise?null:posAtCoordsImprecise(view,content,block,x,y);if(lineStart>view.viewport.to)return view.viewport.to==view.state.doc.length?view.state.doc.length:precise?null:posAtCoordsImprecise(view,content,block,x,y);let doc2=view.dom.ownerDocument;let root=view.root.elementFromPoint?view.root:doc2;let element=root.elementFromPoint(x,y);if(element&&!view.contentDOM.contains(element))element=null;if(!element){x=Math.max(content.left+1,Math.min(content.right-1,x));element=root.elementFromPoint(x,y);if(element&&!view.contentDOM.contains(element))element=null;}let node,offset=-1;if(element&&((_a=view.docView.nearest(element))===null||_a===void 0?void 0:_a.isEditable)!=false){if(doc2.caretPositionFromPoint){let pos=doc2.caretPositionFromPoint(x,y);if(pos)({offsetNode:node,offset}=pos);}else if(doc2.caretRangeFromPoint){let range=doc2.caretRangeFromPoint(x,y);if(range){({startContainer:node,startOffset:offset}=range);if(!view.contentDOM.contains(node)||browser.safari&&isSuspiciousSafariCaretResult(node,offset,x)||browser.chrome&&isSuspiciousChromeCaretResult(node,offset,x))node=void 0;}}if(node)offset=Math.min(maxOffset(node),offset);}if(!node||!view.docView.dom.contains(node)){let line=LineView.find(view.docView,lineStart);if(!line)return yOffset>block.top+block.height/2?block.to:block.from;({node,offset}=domPosAtCoords(line.dom,x,y));}let nearest=view.docView.nearest(node);if(!nearest)return null;if(nearest.isWidget&&((_b=nearest.dom)===null||_b===void 0?void 0:_b.nodeType)==1){let rect=nearest.dom.getBoundingClientRect();return coords.y<rect.top||coords.y<=rect.bottom&&coords.x<=(rect.left+rect.right)/2?nearest.posAtStart:nearest.posAtEnd;}else{return nearest.localPosFromDOM(node,offset)+nearest.posAtStart;}}function posAtCoordsImprecise(view,contentRect,block,x,y){let into=Math.round((x-contentRect.left)*view.defaultCharacterWidth);if(view.lineWrapping&&block.height>view.defaultLineHeight*1.5){let textHeight=view.viewState.heightOracle.textHeight;let line=Math.floor((y-block.top-(view.defaultLineHeight-textHeight)*.5)/textHeight);into+=line*view.viewState.heightOracle.lineLength;}let content=view.state.sliceDoc(block.from,block.to);return block.from+findColumn(content,into,view.state.tabSize);}function isSuspiciousSafariCaretResult(node,offset,x){let len;if(node.nodeType!=3||offset!=(len=node.nodeValue.length))return false;for(let next=node.nextSibling;next;next=next.nextSibling)if(next.nodeType!=1||next.nodeName!=\"BR\")return false;return textRange(node,len-1,len).getBoundingClientRect().left>x;}function isSuspiciousChromeCaretResult(node,offset,x){if(offset!=0)return false;for(let cur=node;;){let parent=cur.parentNode;if(!parent||parent.nodeType!=1||parent.firstChild!=cur)return false;if(parent.classList.contains(\"cm-line\"))break;cur=parent;}let rect=node.nodeType==1?node.getBoundingClientRect():textRange(node,0,Math.max(node.nodeValue.length,1)).getBoundingClientRect();return x-rect.left>5;}function blockAt(view,pos){let line=view.lineBlockAt(pos);if(Array.isArray(line.type))for(let l of line.type){if(l.to>pos||l.to==pos&&(l.to==line.to||l.type==BlockType.Text))return l;}return line;}function moveToLineBoundary(view,start,forward,includeWrap){let line=blockAt(view,start.head);let coords=!includeWrap||line.type!=BlockType.Text||!(view.lineWrapping||line.widgetLineBreaks)?null:view.coordsAtPos(start.assoc<0&&start.head>line.from?start.head-1:start.head);if(coords){let editorRect=view.dom.getBoundingClientRect();let direction=view.textDirectionAt(line.from);let pos=view.posAtCoords({x:forward==(direction==Direction.LTR)?editorRect.right-1:editorRect.left+1,y:(coords.top+coords.bottom)/2});if(pos!=null)return EditorSelection.cursor(pos,forward?-1:1);}return EditorSelection.cursor(forward?line.to:line.from,forward?-1:1);}function moveByChar(view,start,forward,by){let line=view.state.doc.lineAt(start.head),spans=view.bidiSpans(line);let direction=view.textDirectionAt(line.from);for(let cur=start,check=null;;){let next=moveVisually(line,spans,direction,cur,forward),char=movedOver;if(!next){if(line.number==(forward?view.state.doc.lines:1))return cur;char=\"\\n\";line=view.state.doc.line(line.number+(forward?1:-1));spans=view.bidiSpans(line);next=view.visualLineSide(line,!forward);}if(!check){if(!by)return next;check=by(char);}else if(!check(char)){return cur;}cur=next;}}function byGroup(view,pos,start){let categorize=view.state.charCategorizer(pos);let cat=categorize(start);return next=>{let nextCat=categorize(next);if(cat==CharCategory.Space)cat=nextCat;return cat==nextCat;};}function moveVertically(view,start,forward,distance){let startPos=start.head,dir=forward?1:-1;if(startPos==(forward?view.state.doc.length:0))return EditorSelection.cursor(startPos,start.assoc);let goal=start.goalColumn,startY;let rect=view.contentDOM.getBoundingClientRect();let startCoords=view.coordsAtPos(startPos,start.assoc||-1),docTop=view.documentTop;if(startCoords){if(goal==null)goal=startCoords.left-rect.left;startY=dir<0?startCoords.top:startCoords.bottom;}else{let line=view.viewState.lineBlockAt(startPos);if(goal==null)goal=Math.min(rect.right-rect.left,view.defaultCharacterWidth*(startPos-line.from));startY=(dir<0?line.top:line.bottom)+docTop;}let resolvedGoal=rect.left+goal;let dist2=distance!==null&&distance!==void 0?distance:view.viewState.heightOracle.textHeight>>1;for(let extra=0;;extra+=10){let curY=startY+(dist2+extra)*dir;let pos=posAtCoords(view,{x:resolvedGoal,y:curY},false,dir);if(curY<rect.top||curY>rect.bottom||(dir<0?pos<startPos:pos>startPos)){let charRect=view.docView.coordsForChar(pos);let assoc=!charRect||curY<charRect.top?-1:1;return EditorSelection.cursor(pos,assoc,void 0,goal);}}}function skipAtomicRanges(atoms,pos,bias){for(;;){let moved=0;for(let set of atoms){set.between(pos-1,pos+1,(from,to,value)=>{if(pos>from&&pos<to){let side=moved||bias||(pos-from<to-pos?-1:1);pos=side<0?from:to;moved=side;}});}if(!moved)return pos;}}function skipAtoms(view,oldPos,pos){let newPos=skipAtomicRanges(view.state.facet(atomicRanges).map(f=>f(view)),pos.from,oldPos.head>pos.from?-1:1);return newPos==pos.from?pos:EditorSelection.cursor(newPos,newPos<pos.from?1:-1);}var LineBreakPlaceholder=\"￿\";var DOMReader=class{append(text){this.text+=text;}lineBreak(){this.text+=LineBreakPlaceholder;}readRange(start,end){if(!start)return this;let parent=start.parentNode;for(let cur=start;;){this.findPointBefore(parent,cur);let oldLen=this.text.length;this.readNode(cur);let next=cur.nextSibling;if(next==end)break;let view=ContentView.get(cur),nextView=ContentView.get(next);if(view&&nextView?view.breakAfter:(view?view.breakAfter:isBlockElement(cur))||isBlockElement(next)&&(cur.nodeName!=\"BR\"||cur.cmIgnore)&&this.text.length>oldLen)this.lineBreak();cur=next;}this.findPointBefore(parent,end);return this;}readTextNode(node){let text=node.nodeValue;for(let point of this.points)if(point.node==node)point.pos=this.text.length+Math.min(point.offset,text.length);for(let off=0,re=this.lineSeparator?null:/\\r\\n?|\\n/g;;){let nextBreak=-1,breakSize=1,m;if(this.lineSeparator){nextBreak=text.indexOf(this.lineSeparator,off);breakSize=this.lineSeparator.length;}else if(m=re.exec(text)){nextBreak=m.index;breakSize=m[0].length;}this.append(text.slice(off,nextBreak<0?text.length:nextBreak));if(nextBreak<0)break;this.lineBreak();if(breakSize>1){for(let point of this.points)if(point.node==node&&point.pos>this.text.length)point.pos-=breakSize-1;}off=nextBreak+breakSize;}}readNode(node){if(node.cmIgnore)return;let view=ContentView.get(node);let fromView=view&&view.overrideDOMText;if(fromView!=null){this.findPointInside(node,fromView.length);for(let i=fromView.iter();!i.next().done;){if(i.lineBreak)this.lineBreak();else this.append(i.value);}}else if(node.nodeType==3){this.readTextNode(node);}else if(node.nodeName==\"BR\"){if(node.nextSibling)this.lineBreak();}else if(node.nodeType==1){this.readRange(node.firstChild,null);}}findPointBefore(node,next){for(let point of this.points)if(point.node==node&&node.childNodes[point.offset]==next)point.pos=this.text.length;}findPointInside(node,length){for(let point of this.points)if(node.nodeType==3?point.node==node:node.contains(point.node))point.pos=this.text.length+(isAtEnd(node,point.node,point.offset)?length:0);}constructor(points,state){this.points=points;this.text=\"\";this.lineSeparator=state.facet(EditorState.lineSeparator);}};function isAtEnd(parent,node,offset){for(;;){if(!node||offset<maxOffset(node))return false;if(node==parent)return true;offset=domIndex(node)+1;node=node.parentNode;}}var DOMPoint=class{constructor(node,offset){this.node=node;this.offset=offset;this.pos=-1;}};var DOMChange=class{constructor(view,start,end,typeOver){this.typeOver=typeOver;this.bounds=null;this.text=\"\";this.domChanged=start>-1;let{impreciseHead:iHead,impreciseAnchor:iAnchor}=view.docView;if(view.state.readOnly&&start>-1){this.newSel=null;}else if(start>-1&&(this.bounds=view.docView.domBoundsAround(start,end,0))){let selPoints=iHead||iAnchor?[]:selectionPoints(view);let reader=new DOMReader(selPoints,view.state);reader.readRange(this.bounds.startDOM,this.bounds.endDOM);this.text=reader.text;this.newSel=selectionFromPoints(selPoints,this.bounds.from);}else{let domSel=view.observer.selectionRange;let head=iHead&&iHead.node==domSel.focusNode&&iHead.offset==domSel.focusOffset||!contains(view.contentDOM,domSel.focusNode)?view.state.selection.main.head:view.docView.posFromDOM(domSel.focusNode,domSel.focusOffset);let anchor=iAnchor&&iAnchor.node==domSel.anchorNode&&iAnchor.offset==domSel.anchorOffset||!contains(view.contentDOM,domSel.anchorNode)?view.state.selection.main.anchor:view.docView.posFromDOM(domSel.anchorNode,domSel.anchorOffset);let vp=view.viewport;if((browser.ios||browser.chrome)&&view.state.selection.main.empty&&head!=anchor&&(vp.from>0||vp.to<view.state.doc.length)){let from=Math.min(head,anchor),to=Math.max(head,anchor);let offFrom=vp.from-from,offTo=vp.to-to;if((offFrom==0||offFrom==1||from==0)&&(offTo==0||offTo==-1||to==view.state.doc.length)){head=0;anchor=view.state.doc.length;}}this.newSel=EditorSelection.single(anchor,head);}}};function applyDOMChange(view,domChange){let change;let{newSel}=domChange,sel=view.state.selection.main;let lastKey=view.inputState.lastKeyTime>Date.now()-100?view.inputState.lastKeyCode:-1;if(domChange.bounds){let{from,to}=domChange.bounds;let preferredPos=sel.from,preferredSide=null;if(lastKey===8||browser.android&&domChange.text.length<to-from){preferredPos=sel.to;preferredSide=\"end\";}let diff=findDiff(view.state.doc.sliceString(from,to,LineBreakPlaceholder),domChange.text,preferredPos-from,preferredSide);if(diff){if(browser.chrome&&lastKey==13&&diff.toB==diff.from+2&&domChange.text.slice(diff.from,diff.toB)==LineBreakPlaceholder+LineBreakPlaceholder)diff.toB--;change={from:from+diff.from,to:from+diff.toA,insert:Text.of(domChange.text.slice(diff.from,diff.toB).split(LineBreakPlaceholder))};}}else if(newSel&&(!view.hasFocus&&view.state.facet(editable)||newSel.main.eq(sel))){newSel=null;}if(!change&&!newSel)return false;if(!change&&domChange.typeOver&&!sel.empty&&newSel&&newSel.main.empty){change={from:sel.from,to:sel.to,insert:view.state.doc.slice(sel.from,sel.to)};}else if((browser.mac||browser.android)&&change&&change.from==change.to&&change.from==sel.head-1&&/^\\. ?$/.test(change.insert.toString())&&view.contentDOM.getAttribute(\"autocorrect\")==\"off\"){if(newSel&&change.insert.length==2)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:change.from,to:change.to,insert:Text.of([change.insert.toString().replace(\".\",\" \")])};}else if(change&&change.from>=sel.from&&change.to<=sel.to&&(change.from!=sel.from||change.to!=sel.to)&&sel.to-sel.from-(change.to-change.from)<=4){change={from:sel.from,to:sel.to,insert:view.state.doc.slice(sel.from,change.from).append(change.insert).append(view.state.doc.slice(change.to,sel.to))};}else if(browser.chrome&&change&&change.from==change.to&&change.from==sel.head&&change.insert.toString()==\"\\n \"&&view.lineWrapping){if(newSel)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:sel.from,to:sel.to,insert:Text.of([\" \"])};}if(change){return applyDOMChangeInner(view,change,newSel,lastKey);}else if(newSel&&!newSel.main.eq(sel)){let scrollIntoView2=false,userEvent=\"select\";if(view.inputState.lastSelectionTime>Date.now()-50){if(view.inputState.lastSelectionOrigin==\"select\")scrollIntoView2=true;userEvent=view.inputState.lastSelectionOrigin;}view.dispatch({selection:newSel,scrollIntoView:scrollIntoView2,userEvent});return true;}else{return false;}}function applyDOMChangeInner(view,change,newSel,lastKey=-1){if(browser.ios&&view.inputState.flushIOSKey(change))return true;let sel=view.state.selection.main;if(browser.android&&(change.to==sel.to&&// GBoard will sometimes remove a space it just inserted\n// after a completion when you press enter\n(change.from==sel.from||change.from==sel.from-1&&view.state.sliceDoc(change.from,sel.from)==\" \")&&change.insert.length==1&&change.insert.lines==2&&dispatchKey(view.contentDOM,\"Enter\",13)||(change.from==sel.from-1&&change.to==sel.to&&change.insert.length==0||lastKey==8&&change.insert.length<change.to-change.from&&change.to>sel.head)&&dispatchKey(view.contentDOM,\"Backspace\",8)||change.from==sel.from&&change.to==sel.to+1&&change.insert.length==0&&dispatchKey(view.contentDOM,\"Delete\",46)))return true;let text=change.insert.toString();if(view.inputState.composing>=0)view.inputState.composing++;let defaultTr;let defaultInsert=()=>defaultTr||(defaultTr=applyDefaultInsert(view,change,newSel));if(!view.state.facet(inputHandler).some(h=>h(view,change.from,change.to,text,defaultInsert)))view.dispatch(defaultInsert());return true;}function applyDefaultInsert(view,change,newSel){let tr,startState=view.state,sel=startState.selection.main;if(change.from>=sel.from&&change.to<=sel.to&&change.to-change.from>=(sel.to-sel.from)/3&&(!newSel||newSel.main.empty&&newSel.main.from==change.from+change.insert.length)&&view.inputState.composing<0){let before=sel.from<change.from?startState.sliceDoc(sel.from,change.from):\"\";let after=sel.to>change.to?startState.sliceDoc(change.to,sel.to):\"\";tr=startState.replaceSelection(view.state.toText(before+change.insert.sliceString(0,void 0,view.state.lineBreak)+after));}else{let changes=startState.changes(change);let mainSel=newSel&&newSel.main.to<=changes.newLength?newSel.main:void 0;if(startState.selection.ranges.length>1&&view.inputState.composing>=0&&change.to<=sel.to&&change.to>=sel.to-10){let replaced=view.state.sliceDoc(change.from,change.to);let compositionRange,composition=newSel&&findCompositionNode(view,newSel.main.head);if(composition){let dLen=change.insert.length-(change.to-change.from);compositionRange={from:composition.from,to:composition.to-dLen};}else{compositionRange=view.state.doc.lineAt(sel.head);}let offset=sel.to-change.to,size=sel.to-sel.from;tr=startState.changeByRange(range=>{if(range.from==sel.from&&range.to==sel.to)return{changes,range:mainSel||range.map(changes)};let to=range.to-offset,from=to-replaced.length;if(range.to-range.from!=size||view.state.sliceDoc(from,to)!=replaced||// Unfortunately, there's no way to make multiple\n// changes in the same node work without aborting\n// composition, so cursors in the composition range are\n// ignored.\nrange.to>=compositionRange.from&&range.from<=compositionRange.to)return{range};let rangeChanges=startState.changes({from,to,insert:change.insert}),selOff=range.to-sel.to;return{changes:rangeChanges,range:!mainSel?range.map(rangeChanges):EditorSelection.range(Math.max(0,mainSel.anchor+selOff),Math.max(0,mainSel.head+selOff))};});}else{tr={changes,selection:mainSel&&startState.selection.replaceRange(mainSel)};}}let userEvent=\"input.type\";if(view.composing||view.inputState.compositionPendingChange&&view.inputState.compositionEndedAt>Date.now()-50){view.inputState.compositionPendingChange=false;userEvent+=\".compose\";if(view.inputState.compositionFirstChange){userEvent+=\".start\";view.inputState.compositionFirstChange=false;}}return startState.update(tr,{userEvent,scrollIntoView:true});}function findDiff(a,b,preferredPos,preferredSide){let minLen=Math.min(a.length,b.length);let from=0;while(from<minLen&&a.charCodeAt(from)==b.charCodeAt(from))from++;if(from==minLen&&a.length==b.length)return null;let toA=a.length,toB=b.length;while(toA>0&&toB>0&&a.charCodeAt(toA-1)==b.charCodeAt(toB-1)){toA--;toB--;}if(preferredSide==\"end\"){let adjust=Math.max(0,from-Math.min(toA,toB));preferredPos-=toA+adjust-from;}if(toA<from&&a.length<b.length){let move=preferredPos<=from&&preferredPos>=toA?from-preferredPos:0;from-=move;toB=from+(toB-toA);toA=from;}else if(toB<from){let move=preferredPos<=from&&preferredPos>=toB?from-preferredPos:0;from-=move;toA=from+(toA-toB);toB=from;}return{from,toA,toB};}function selectionPoints(view){let result=[];if(view.root.activeElement!=view.contentDOM)return result;let{anchorNode,anchorOffset,focusNode,focusOffset}=view.observer.selectionRange;if(anchorNode){result.push(new DOMPoint(anchorNode,anchorOffset));if(focusNode!=anchorNode||focusOffset!=anchorOffset)result.push(new DOMPoint(focusNode,focusOffset));}return result;}function selectionFromPoints(points,base2){if(points.length==0)return null;let anchor=points[0].pos,head=points.length==2?points[1].pos:anchor;return anchor>-1&&head>-1?EditorSelection.single(anchor+base2,head+base2):null;}var InputState=class{setSelectionOrigin(origin){this.lastSelectionOrigin=origin;this.lastSelectionTime=Date.now();}handleEvent(event){if(!eventBelongsToEditor(this.view,event)||this.ignoreDuringComposition(event))return;if(event.type==\"keydown\"&&this.keydown(event))return;if(this.view.updateState!=0)Promise.resolve().then(()=>this.runHandlers(event.type,event));else this.runHandlers(event.type,event);}runHandlers(type,event){let handlers2=this.handlers[type];if(handlers2){for(let observer of handlers2.observers)observer(this.view,event);for(let handler of handlers2.handlers){if(event.defaultPrevented)break;if(handler(this.view,event)){event.preventDefault();break;}}}}ensureHandlers(plugins){let handlers2=computeHandlers(plugins),prev=this.handlers,dom=this.view.contentDOM;for(let type in handlers2)if(type!=\"scroll\"){let passive=!handlers2[type].handlers.length;let exists=prev[type];if(exists&&passive!=!exists.handlers.length){dom.removeEventListener(type,this.handleEvent);exists=null;}if(!exists)dom.addEventListener(type,this.handleEvent,{passive});}for(let type in prev)if(type!=\"scroll\"&&!handlers2[type])dom.removeEventListener(type,this.handleEvent);this.handlers=handlers2;}keydown(event){this.lastKeyCode=event.keyCode;this.lastKeyTime=Date.now();if(event.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return true;if(this.tabFocusMode>0&&event.keyCode!=27&&modifierCodes.indexOf(event.keyCode)<0)this.tabFocusMode=-1;if(browser.android&&browser.chrome&&!event.synthetic&&(event.keyCode==13||event.keyCode==8)){this.view.observer.delayAndroidKey(event.key,event.keyCode);return true;}let pending;if(browser.ios&&!event.synthetic&&!event.altKey&&!event.metaKey&&((pending=PendingKeys.find(key=>key.keyCode==event.keyCode))&&!event.ctrlKey||EmacsyPendingKeys.indexOf(event.key)>-1&&event.ctrlKey&&!event.shiftKey)){this.pendingIOSKey=pending||event;setTimeout(()=>this.flushIOSKey(),250);return true;}if(event.keyCode!=229)this.view.observer.forceFlush();return false;}flushIOSKey(change){let key=this.pendingIOSKey;if(!key)return false;if(key.key==\"Enter\"&&change&&change.from<change.to&&/^\\S+$/.test(change.insert.toString()))return false;this.pendingIOSKey=void 0;return dispatchKey(this.view.contentDOM,key.key,key.keyCode,key instanceof KeyboardEvent?key:void 0);}ignoreDuringComposition(event){if(!/^key/.test(event.type))return false;if(this.composing>0)return true;if(browser.safari&&!browser.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100){this.compositionPendingKey=false;return true;}return false;}startMouseSelection(mouseSelection){if(this.mouseSelection)this.mouseSelection.destroy();this.mouseSelection=mouseSelection;}update(update){this.view.observer.update(update);if(this.mouseSelection)this.mouseSelection.update(update);if(this.draggedContent&&update.docChanged)this.draggedContent=this.draggedContent.map(update.changes);if(update.transactions.length)this.lastKeyCode=this.lastSelectionTime=0;}destroy(){if(this.mouseSelection)this.mouseSelection.destroy();}constructor(view){this.view=view;this.lastKeyCode=0;this.lastKeyTime=0;this.lastTouchTime=0;this.lastFocusTime=0;this.lastScrollTop=0;this.lastScrollLeft=0;this.pendingIOSKey=void 0;this.tabFocusMode=-1;this.lastSelectionOrigin=null;this.lastSelectionTime=0;this.lastContextMenu=0;this.scrollHandlers=[];this.handlers=/* @__PURE__ */Object.create(null);this.composing=-1;this.compositionFirstChange=null;this.compositionEndedAt=0;this.compositionPendingKey=false;this.compositionPendingChange=false;this.mouseSelection=null;this.draggedContent=null;this.handleEvent=this.handleEvent.bind(this);this.notifiedFocused=view.hasFocus;if(browser.safari)view.contentDOM.addEventListener(\"input\",()=>null);if(browser.gecko)firefoxCopyCutHack(view.contentDOM.ownerDocument);}};function bindHandler(plugin2,handler){return(view,event)=>{try{return handler.call(plugin2,event,view);}catch(e){logException(view.state,e);}};}function computeHandlers(plugins){let result=/* @__PURE__ */Object.create(null);function record(type){return result[type]||(result[type]={observers:[],handlers:[]});}for(let plugin2 of plugins){let spec=plugin2.spec;if(spec&&spec.domEventHandlers)for(let type in spec.domEventHandlers){let f=spec.domEventHandlers[type];if(f)record(type).handlers.push(bindHandler(plugin2.value,f));}if(spec&&spec.domEventObservers)for(let type in spec.domEventObservers){let f=spec.domEventObservers[type];if(f)record(type).observers.push(bindHandler(plugin2.value,f));}}for(let type in handlers)record(type).handlers.push(handlers[type]);for(let type in observers)record(type).observers.push(observers[type]);return result;}var PendingKeys=[{key:\"Backspace\",keyCode:8,inputType:\"deleteContentBackward\"},{key:\"Enter\",keyCode:13,inputType:\"insertParagraph\"},{key:\"Enter\",keyCode:13,inputType:\"insertLineBreak\"},{key:\"Delete\",keyCode:46,inputType:\"deleteContentForward\"}];var EmacsyPendingKeys=\"dthko\";var modifierCodes=[16,17,18,20,91,92,224,225];var dragScrollMargin=6;function dragScrollSpeed(dist2){return Math.max(0,dist2)*.7+8;}function dist(a,b){return Math.max(Math.abs(a.clientX-b.clientX),Math.abs(a.clientY-b.clientY));}var MouseSelection=class{start(event){if(this.dragging===false)this.select(event);}move(event){if(event.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&dist(this.startEvent,event)<10)return;this.select(this.lastEvent=event);let sx=0,sy=0;let left=0,top2=0,right=this.view.win.innerWidth,bottom=this.view.win.innerHeight;if(this.scrollParents.x)({left,right}=this.scrollParents.x.getBoundingClientRect());if(this.scrollParents.y)({top:top2,bottom}=this.scrollParents.y.getBoundingClientRect());let margins=getScrollMargins(this.view);if(event.clientX-margins.left<=left+dragScrollMargin)sx=-dragScrollSpeed(left-event.clientX);else if(event.clientX+margins.right>=right-dragScrollMargin)sx=dragScrollSpeed(event.clientX-right);if(event.clientY-margins.top<=top2+dragScrollMargin)sy=-dragScrollSpeed(top2-event.clientY);else if(event.clientY+margins.bottom>=bottom-dragScrollMargin)sy=dragScrollSpeed(event.clientY-bottom);this.setScrollSpeed(sx,sy);}up(event){if(this.dragging==null)this.select(this.lastEvent);if(!this.dragging)event.preventDefault();this.destroy();}destroy(){this.setScrollSpeed(0,0);let doc2=this.view.contentDOM.ownerDocument;doc2.removeEventListener(\"mousemove\",this.move);doc2.removeEventListener(\"mouseup\",this.up);this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null;}setScrollSpeed(sx,sy){this.scrollSpeed={x:sx,y:sy};if(sx||sy){if(this.scrolling<0)this.scrolling=setInterval(()=>this.scroll(),50);}else if(this.scrolling>-1){clearInterval(this.scrolling);this.scrolling=-1;}}scroll(){let{x,y}=this.scrollSpeed;if(x&&this.scrollParents.x){this.scrollParents.x.scrollLeft+=x;x=0;}if(y&&this.scrollParents.y){this.scrollParents.y.scrollTop+=y;y=0;}if(x||y)this.view.win.scrollBy(x,y);if(this.dragging===false)this.select(this.lastEvent);}skipAtoms(sel){let ranges=null;for(let i=0;i<sel.ranges.length;i++){let range=sel.ranges[i],updated=null;if(range.empty){let pos=skipAtomicRanges(this.atoms,range.from,0);if(pos!=range.from)updated=EditorSelection.cursor(pos,-1);}else{let from=skipAtomicRanges(this.atoms,range.from,-1);let to=skipAtomicRanges(this.atoms,range.to,1);if(from!=range.from||to!=range.to)updated=EditorSelection.range(range.from==range.anchor?from:to,range.from==range.head?from:to);}if(updated){if(!ranges)ranges=sel.ranges.slice();ranges[i]=updated;}}return ranges?EditorSelection.create(ranges,sel.mainIndex):sel;}select(event){let{view}=this,selection=this.skipAtoms(this.style.get(event,this.extend,this.multiple));if(this.mustSelect||!selection.eq(view.state.selection,this.dragging===false))this.view.dispatch({selection,userEvent:\"select.pointer\"});this.mustSelect=false;}update(update){if(update.transactions.some(tr=>tr.isUserEvent(\"input.type\")))this.destroy();else if(this.style.update(update))setTimeout(()=>this.select(this.lastEvent),20);}constructor(view,startEvent,style,mustSelect){this.view=view;this.startEvent=startEvent;this.style=style;this.mustSelect=mustSelect;this.scrollSpeed={x:0,y:0};this.scrolling=-1;this.lastEvent=startEvent;this.scrollParents=scrollableParents(view.contentDOM);this.atoms=view.state.facet(atomicRanges).map(f=>f(view));let doc2=view.contentDOM.ownerDocument;doc2.addEventListener(\"mousemove\",this.move=this.move.bind(this));doc2.addEventListener(\"mouseup\",this.up=this.up.bind(this));this.extend=startEvent.shiftKey;this.multiple=view.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(view,startEvent);this.dragging=isInPrimarySelection(view,startEvent)&&getClickType(startEvent)==1?null:false;}};function addsSelectionRange(view,event){let facet=view.state.facet(clickAddsSelectionRange);return facet.length?facet[0](event):browser.mac?event.metaKey:event.ctrlKey;}function dragMovesSelection(view,event){let facet=view.state.facet(dragMovesSelection$1);return facet.length?facet[0](event):browser.mac?!event.altKey:!event.ctrlKey;}function isInPrimarySelection(view,event){let{main}=view.state.selection;if(main.empty)return false;let sel=getSelection(view.root);if(!sel||sel.rangeCount==0)return true;let rects=sel.getRangeAt(0).getClientRects();for(let i=0;i<rects.length;i++){let rect=rects[i];if(rect.left<=event.clientX&&rect.right>=event.clientX&&rect.top<=event.clientY&&rect.bottom>=event.clientY)return true;}return false;}function eventBelongsToEditor(view,event){if(!event.bubbles)return true;if(event.defaultPrevented)return false;for(let node=event.target,cView;node!=view.contentDOM;node=node.parentNode)if(!node||node.nodeType==11||(cView=ContentView.get(node))&&cView.ignoreEvent(event))return false;return true;}var handlers=/* @__PURE__ */Object.create(null);var observers=/* @__PURE__ */Object.create(null);var brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(view){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement(\"textarea\"));target.style.cssText=\"position: fixed; left: -10000px; top: 10px\";target.focus();setTimeout(()=>{view.focus();target.remove();doPaste(view,target.value);},50);}function textFilter(state,facet,text){for(let filter of state.facet(facet))text=filter(text,state);return text;}function doPaste(view,input){input=textFilter(view.state,clipboardInputFilter,input);let{state}=view,changes,i=1,text=state.toText(input);let byLine=text.lines==state.selection.ranges.length;let linewise=lastLinewiseCopy!=null&&state.selection.ranges.every(r=>r.empty)&&lastLinewiseCopy==text.toString();if(linewise){let lastLine=-1;changes=state.changeByRange(range=>{let line=state.doc.lineAt(range.from);if(line.from==lastLine)return{range};lastLine=line.from;let insert=state.toText((byLine?text.line(i++).text:input)+state.lineBreak);return{changes:{from:line.from,insert},range:EditorSelection.cursor(range.from+insert.length)};});}else if(byLine){changes=state.changeByRange(range=>{let line=text.line(i++);return{changes:{from:range.from,to:range.to,insert:line.text},range:EditorSelection.cursor(range.from+line.length)};});}else{changes=state.replaceSelection(text);}view.dispatch(changes,{userEvent:\"input.paste\",scrollIntoView:true});}observers.scroll=view=>{view.inputState.lastScrollTop=view.scrollDOM.scrollTop;view.inputState.lastScrollLeft=view.scrollDOM.scrollLeft;};handlers.keydown=(view,event)=>{view.inputState.setSelectionOrigin(\"select\");if(event.keyCode==27&&view.inputState.tabFocusMode!=0)view.inputState.tabFocusMode=Date.now()+2e3;return false;};observers.touchstart=(view,e)=>{view.inputState.lastTouchTime=Date.now();view.inputState.setSelectionOrigin(\"select.pointer\");};observers.touchmove=view=>{view.inputState.setSelectionOrigin(\"select.pointer\");};handlers.mousedown=(view,event)=>{view.observer.flush();if(view.inputState.lastTouchTime>Date.now()-2e3)return false;let style=null;for(let makeStyle of view.state.facet(mouseSelectionStyle)){style=makeStyle(view,event);if(style)break;}if(!style&&event.button==0)style=basicMouseSelection(view,event);if(style){let mustFocus=!view.hasFocus;view.inputState.startMouseSelection(new MouseSelection(view,event,style,mustFocus));if(mustFocus)view.observer.ignore(()=>{focusPreventScroll(view.contentDOM);let active=view.root.activeElement;if(active&&!active.contains(view.contentDOM))active.blur();});let mouseSel=view.inputState.mouseSelection;if(mouseSel){mouseSel.start(event);return mouseSel.dragging===false;}}return false;};function rangeForClick(view,pos,bias,type){if(type==1){return EditorSelection.cursor(pos,bias);}else if(type==2){return groupAt(view.state,pos,bias);}else{let visual=LineView.find(view.docView,pos),line=view.state.doc.lineAt(visual?visual.posAtEnd:pos);let from=visual?visual.posAtStart:line.from,to=visual?visual.posAtEnd:line.to;if(to<view.state.doc.length&&to==line.to)to++;return EditorSelection.range(from,to);}}var inside=(x,y,rect)=>y>=rect.top&&y<=rect.bottom&&x>=rect.left&&x<=rect.right;function findPositionSide(view,pos,x,y){let line=LineView.find(view.docView,pos);if(!line)return 1;let off=pos-line.posAtStart;if(off==0)return 1;if(off==line.length)return-1;let before=line.coordsAt(off,-1);if(before&&inside(x,y,before))return-1;let after=line.coordsAt(off,1);if(after&&inside(x,y,after))return 1;return before&&before.bottom>=y?-1:1;}function queryPos(view,event){let pos=view.posAtCoords({x:event.clientX,y:event.clientY},false);return{pos,bias:findPositionSide(view,pos,event.clientX,event.clientY)};}var BadMouseDetail=browser.ie&&browser.ie_version<=11;var lastMouseDown=null;var lastMouseDownCount=0;var lastMouseDownTime=0;function getClickType(event){if(!BadMouseDetail)return event.detail;let last=lastMouseDown,lastTime=lastMouseDownTime;lastMouseDown=event;lastMouseDownTime=Date.now();return lastMouseDownCount=!last||lastTime>Date.now()-400&&Math.abs(last.clientX-event.clientX)<2&&Math.abs(last.clientY-event.clientY)<2?(lastMouseDownCount+1)%3:1;}function basicMouseSelection(view,event){let start=queryPos(view,event),type=getClickType(event);let startSel=view.state.selection;return{update(update){if(update.docChanged){start.pos=update.changes.mapPos(start.pos);startSel=startSel.map(update.changes);}},get(event2,extend,multiple){let cur=queryPos(view,event2),removed;let range=rangeForClick(view,cur.pos,cur.bias,type);if(start.pos!=cur.pos&&!extend){let startRange=rangeForClick(view,start.pos,start.bias,type);let from=Math.min(startRange.from,range.from),to=Math.max(startRange.to,range.to);range=from<range.from?EditorSelection.range(from,to):EditorSelection.range(to,from);}if(extend)return startSel.replaceRange(startSel.main.extend(range.from,range.to));else if(multiple&&type==1&&startSel.ranges.length>1&&(removed=removeRangeAround(startSel,cur.pos)))return removed;else if(multiple)return startSel.addRange(range);else return EditorSelection.create([range]);}};}function removeRangeAround(sel,pos){for(let i=0;i<sel.ranges.length;i++){let{from,to}=sel.ranges[i];if(from<=pos&&to>=pos)return EditorSelection.create(sel.ranges.slice(0,i).concat(sel.ranges.slice(i+1)),sel.mainIndex==i?0:sel.mainIndex-(sel.mainIndex>i?1:0));}return null;}handlers.dragstart=(view,event)=>{let{selection:{main:range}}=view.state;if(event.target.draggable){let cView=view.docView.nearest(event.target);if(cView&&cView.isWidget){let from=cView.posAtStart,to=from+cView.length;if(from>=range.to||to<=range.from)range=EditorSelection.range(from,to);}}let{inputState}=view;if(inputState.mouseSelection)inputState.mouseSelection.dragging=true;inputState.draggedContent=range;if(event.dataTransfer){event.dataTransfer.setData(\"Text\",textFilter(view.state,clipboardOutputFilter,view.state.sliceDoc(range.from,range.to)));event.dataTransfer.effectAllowed=\"copyMove\";}return false;};handlers.dragend=view=>{view.inputState.draggedContent=null;return false;};function dropText(view,event,text,direct){text=textFilter(view.state,clipboardInputFilter,text);if(!text)return;let dropPos=view.posAtCoords({x:event.clientX,y:event.clientY},false);let{draggedContent}=view.inputState;let del=direct&&draggedContent&&dragMovesSelection(view,event)?{from:draggedContent.from,to:draggedContent.to}:null;let ins={from:dropPos,insert:text};let changes=view.state.changes(del?[del,ins]:ins);view.focus();view.dispatch({changes,selection:{anchor:changes.mapPos(dropPos,-1),head:changes.mapPos(dropPos,1)},userEvent:del?\"move.drop\":\"input.drop\"});view.inputState.draggedContent=null;}handlers.drop=(view,event)=>{if(!event.dataTransfer)return false;if(view.state.readOnly)return true;let files=event.dataTransfer.files;if(files&&files.length){let text=Array(files.length),read=0;let finishFile=()=>{if(++read==files.length)dropText(view,event,text.filter(s=>s!=null).join(view.state.lineBreak),false);};for(let i=0;i<files.length;i++){let reader=new FileReader;reader.onerror=finishFile;reader.onload=()=>{if(!/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(reader.result))text[i]=reader.result;finishFile();};reader.readAsText(files[i]);}return true;}else{let text=event.dataTransfer.getData(\"Text\");if(text){dropText(view,event,text,true);return true;}}return false;};handlers.paste=(view,event)=>{if(view.state.readOnly)return true;view.observer.flush();let data=brokenClipboardAPI?null:event.clipboardData;if(data){doPaste(view,data.getData(\"text/plain\")||data.getData(\"text/uri-list\"));return true;}else{capturePaste(view);return false;}};function captureCopy(view,text){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement(\"textarea\"));target.style.cssText=\"position: fixed; left: -10000px; top: 10px\";target.value=text;target.focus();target.selectionEnd=text.length;target.selectionStart=0;setTimeout(()=>{target.remove();view.focus();},50);}function copiedRange(state){let content=[],ranges=[],linewise=false;for(let range of state.selection.ranges)if(!range.empty){content.push(state.sliceDoc(range.from,range.to));ranges.push(range);}if(!content.length){let upto=-1;for(let{from}of state.selection.ranges){let line=state.doc.lineAt(from);if(line.number>upto){content.push(line.text);ranges.push({from:line.from,to:Math.min(state.doc.length,line.to+1)});}upto=line.number;}linewise=true;}return{text:textFilter(state,clipboardOutputFilter,content.join(state.lineBreak)),ranges,linewise};}var lastLinewiseCopy=null;handlers.copy=handlers.cut=(view,event)=>{let{text,ranges,linewise}=copiedRange(view.state);if(!text&&!linewise)return false;lastLinewiseCopy=linewise?text:null;if(event.type==\"cut\"&&!view.state.readOnly)view.dispatch({changes:ranges,scrollIntoView:true,userEvent:\"delete.cut\"});let data=brokenClipboardAPI?null:event.clipboardData;if(data){data.clearData();data.setData(\"text/plain\",text);return true;}else{captureCopy(view,text);return false;}};var isFocusChange=/* @__PURE__ */Annotation.define();function focusChangeTransaction(state,focus){let effects=[];for(let getEffect of state.facet(focusChangeEffect)){let effect=getEffect(state,focus);if(effect)effects.push(effect);}return effects?state.update({effects,annotations:isFocusChange.of(true)}):null;}function updateForFocusChange(view){setTimeout(()=>{let focus=view.hasFocus;if(focus!=view.inputState.notifiedFocused){let tr=focusChangeTransaction(view.state,focus);if(tr)view.dispatch(tr);else view.update([]);}},10);}observers.focus=view=>{view.inputState.lastFocusTime=Date.now();if(!view.scrollDOM.scrollTop&&(view.inputState.lastScrollTop||view.inputState.lastScrollLeft)){view.scrollDOM.scrollTop=view.inputState.lastScrollTop;view.scrollDOM.scrollLeft=view.inputState.lastScrollLeft;}updateForFocusChange(view);};observers.blur=view=>{view.observer.clearSelectionRange();updateForFocusChange(view);};observers.compositionstart=observers.compositionupdate=view=>{if(view.observer.editContext)return;if(view.inputState.compositionFirstChange==null)view.inputState.compositionFirstChange=true;if(view.inputState.composing<0){view.inputState.composing=0;}};observers.compositionend=view=>{if(view.observer.editContext)return;view.inputState.composing=-1;view.inputState.compositionEndedAt=Date.now();view.inputState.compositionPendingKey=true;view.inputState.compositionPendingChange=view.observer.pendingRecords().length>0;view.inputState.compositionFirstChange=null;if(browser.chrome&&browser.android){view.observer.flushSoon();}else if(view.inputState.compositionPendingChange){Promise.resolve().then(()=>view.observer.flush());}else{setTimeout(()=>{if(view.inputState.composing<0&&view.docView.hasComposition)view.update([]);},50);}};observers.contextmenu=view=>{view.inputState.lastContextMenu=Date.now();};handlers.beforeinput=(view,event)=>{var _a,_b;if(event.inputType==\"insertReplacementText\"&&view.observer.editContext){let text=(_a=event.dataTransfer)===null||_a===void 0?void 0:_a.getData(\"text/plain\"),ranges=event.getTargetRanges();if(text&&ranges.length){let r=ranges[0];let from=view.posAtDOM(r.startContainer,r.startOffset),to=view.posAtDOM(r.endContainer,r.endOffset);applyDOMChangeInner(view,{from,to,insert:view.state.toText(text)},null);return true;}}let pending;if(browser.chrome&&browser.android&&(pending=PendingKeys.find(key=>key.inputType==event.inputType))){view.observer.delayAndroidKey(pending.key,pending.keyCode);if(pending.key==\"Backspace\"||pending.key==\"Delete\"){let startViewHeight=((_b=window.visualViewport)===null||_b===void 0?void 0:_b.height)||0;setTimeout(()=>{var _a2;if((((_a2=window.visualViewport)===null||_a2===void 0?void 0:_a2.height)||0)>startViewHeight+10&&view.hasFocus){view.contentDOM.blur();view.focus();}},100);}}if(browser.ios&&event.inputType==\"deleteContentForward\"){view.observer.flushSoon();}if(browser.safari&&event.inputType==\"insertText\"&&view.inputState.composing>=0){setTimeout(()=>observers.compositionend(view,event),20);}return false;};var appliedFirefoxHack=/* @__PURE__ */new Set;function firefoxCopyCutHack(doc2){if(!appliedFirefoxHack.has(doc2)){appliedFirefoxHack.add(doc2);doc2.addEventListener(\"copy\",()=>{});doc2.addEventListener(\"cut\",()=>{});}}var wrappingWhiteSpace=[\"pre-wrap\",\"normal\",\"pre-line\",\"break-spaces\"];var heightChangeFlag=false;function clearHeightChangeFlag(){heightChangeFlag=false;}var HeightOracle=class{heightForGap(from,to){let lines=this.doc.lineAt(to).number-this.doc.lineAt(from).number+1;if(this.lineWrapping)lines+=Math.max(0,Math.ceil((to-from-lines*this.lineLength*.5)/this.lineLength));return this.lineHeight*lines;}heightForLine(length){if(!this.lineWrapping)return this.lineHeight;let lines=1+Math.max(0,Math.ceil((length-this.lineLength)/(this.lineLength-5)));return lines*this.lineHeight;}setDoc(doc2){this.doc=doc2;return this;}mustRefreshForWrapping(whiteSpace){return wrappingWhiteSpace.indexOf(whiteSpace)>-1!=this.lineWrapping;}mustRefreshForHeights(lineHeights){let newHeight=false;for(let i=0;i<lineHeights.length;i++){let h=lineHeights[i];if(h<0){i++;}else if(!this.heightSamples[Math.floor(h*10)]){newHeight=true;this.heightSamples[Math.floor(h*10)]=true;}}return newHeight;}refresh(whiteSpace,lineHeight,charWidth,textHeight,lineLength,knownHeights){let lineWrapping=wrappingWhiteSpace.indexOf(whiteSpace)>-1;let changed=Math.round(lineHeight)!=Math.round(this.lineHeight)||this.lineWrapping!=lineWrapping;this.lineWrapping=lineWrapping;this.lineHeight=lineHeight;this.charWidth=charWidth;this.textHeight=textHeight;this.lineLength=lineLength;if(changed){this.heightSamples={};for(let i=0;i<knownHeights.length;i++){let h=knownHeights[i];if(h<0)i++;else this.heightSamples[Math.floor(h*10)]=true;}}return changed;}constructor(lineWrapping){this.lineWrapping=lineWrapping;this.doc=Text.empty;this.heightSamples={};this.lineHeight=14;this.charWidth=7;this.textHeight=14;this.lineLength=30;}};var MeasuredHeights=class{get more(){return this.index<this.heights.length;}constructor(from,heights){this.from=from;this.heights=heights;this.index=0;}};var BlockInfo=class _BlockInfo{/**\n  The type of element this is. When querying lines, this may be\n  an array of all the blocks that make up the line.\n  */get type(){return typeof this._content==\"number\"?BlockType.Text:Array.isArray(this._content)?this._content:this._content.type;}/**\n  The end of the element as a document position.\n  */get to(){return this.from+this.length;}/**\n  The bottom position of the element.\n  */get bottom(){return this.top+this.height;}/**\n  If this is a widget block, this will return the widget\n  associated with it.\n  */get widget(){return this._content instanceof PointDecoration?this._content.widget:null;}/**\n  If this is a textblock, this holds the number of line breaks\n  that appear in widgets inside the block.\n  */get widgetLineBreaks(){return typeof this._content==\"number\"?this._content:0;}/**\n  @internal\n  */join(other){let content=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(other._content)?other._content:[other]);return new _BlockInfo(this.from,this.length+other.length,this.top,this.height+other.height,content);}/**\n  @internal\n  */constructor(from,length,top2,height,_content){this.from=from;this.length=length;this.top=top2;this.height=height;this._content=_content;}};var QueryType=/* @__PURE__ */function(QueryType2){QueryType2[QueryType2[\"ByPos\"]=0]=\"ByPos\";QueryType2[QueryType2[\"ByHeight\"]=1]=\"ByHeight\";QueryType2[QueryType2[\"ByPosNoHeight\"]=2]=\"ByPosNoHeight\";return QueryType2;}(QueryType||(QueryType={}));var Epsilon=.001;var HeightMap=class _HeightMap{get outdated(){return(this.flags&2)>0;}set outdated(value){this.flags=(value?2:0)|this.flags&~2;}setHeight(height){if(this.height!=height){if(Math.abs(this.height-height)>Epsilon)heightChangeFlag=true;this.height=height;}}// Base case is to replace a leaf node, which simply builds a tree\n// from the new nodes and returns that (HeightMapBranch and\n// HeightMapGap override this to actually use from/to)\nreplace(_from,_to,nodes){return _HeightMap.of(nodes);}// Again, these are base cases, and are overridden for branch and gap nodes.\ndecomposeLeft(_to,result){result.push(this);}decomposeRight(_from,result){result.push(this);}applyChanges(decorations2,oldDoc,oracle,changes){let me=this,doc2=oracle.doc;for(let i=changes.length-1;i>=0;i--){let{fromA,toA,fromB,toB}=changes[i];let start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle.setDoc(oldDoc),0,0);let end=start.to>=toA?start:me.lineAt(toA,QueryType.ByPosNoHeight,oracle,0,0);toB+=end.to-toA;toA=end.to;while(i>0&&start.from<=changes[i-1].toA){fromA=changes[i-1].fromA;fromB=changes[i-1].fromB;i--;if(fromA<start.from)start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle,0,0);}fromB+=start.from-fromA;fromA=start.from;let nodes=NodeBuilder.build(oracle.setDoc(doc2),decorations2,fromB,toB);me=replace(me,me.replace(fromA,toA,nodes));}return me.updateHeight(oracle,0);}static empty(){return new HeightMapText(0,0);}// nodes uses null values to indicate the position of line breaks.\n// There are never line breaks at the start or end of the array, or\n// two line breaks next to each other, and the array isn't allowed\n// to be empty (same restrictions as return value from the builder).\nstatic of(nodes){if(nodes.length==1)return nodes[0];let i=0,j=nodes.length,before=0,after=0;for(;;){if(i==j){if(before>after*2){let split=nodes[i-1];if(split.break)nodes.splice(--i,1,split.left,null,split.right);else nodes.splice(--i,1,split.left,split.right);j+=1+split.break;before-=split.size;}else if(after>before*2){let split=nodes[j];if(split.break)nodes.splice(j,1,split.left,null,split.right);else nodes.splice(j,1,split.left,split.right);j+=2+split.break;after-=split.size;}else{break;}}else if(before<after){let next=nodes[i++];if(next)before+=next.size;}else{let next=nodes[--j];if(next)after+=next.size;}}let brk=0;if(nodes[i-1]==null){brk=1;i--;}else if(nodes[i]==null){brk=1;j++;}return new HeightMapBranch(_HeightMap.of(nodes.slice(0,i)),brk,_HeightMap.of(nodes.slice(j)));}constructor(length,height,flags=2){this.length=length;this.height=height;this.flags=flags;}};function replace(old,val){if(old==val)return old;if(old.constructor!=val.constructor)heightChangeFlag=true;return val;}HeightMap.prototype.size=1;var HeightMapBlock=class extends HeightMap{blockAt(_height,_oracle,top2,offset){return new BlockInfo(offset,this.length,top2,this.height,this.deco||0);}lineAt(_value,_type,oracle,top2,offset){return this.blockAt(0,oracle,top2,offset);}forEachLine(from,to,oracle,top2,offset,f){if(from<=offset+this.length&&to>=offset)f(this.blockAt(0,oracle,top2,offset));}updateHeight(oracle,offset=0,_force=false,measured){if(measured&&measured.from<=offset&&measured.more)this.setHeight(measured.heights[measured.index++]);this.outdated=false;return this;}toString(){return`block(${this.length})`;}constructor(length,height,deco){super(length,height);this.deco=deco;}};var HeightMapText=class _HeightMapText extends HeightMapBlock{blockAt(_height,_oracle,top2,offset){return new BlockInfo(offset,this.length,top2,this.height,this.breaks);}replace(_from,_to,nodes){let node=nodes[0];if(nodes.length==1&&(node instanceof _HeightMapText||node instanceof HeightMapGap&&node.flags&4)&&Math.abs(this.length-node.length)<10){if(node instanceof HeightMapGap)node=new _HeightMapText(node.length,this.height);else node.height=this.height;if(!this.outdated)node.outdated=false;return node;}else{return HeightMap.of(nodes);}}updateHeight(oracle,offset=0,force=false,measured){if(measured&&measured.from<=offset&&measured.more)this.setHeight(measured.heights[measured.index++]);else if(force||this.outdated)this.setHeight(Math.max(this.widgetHeight,oracle.heightForLine(this.length-this.collapsed))+this.breaks*oracle.lineHeight);this.outdated=false;return this;}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:\"\"}${this.widgetHeight?\":\"+this.widgetHeight:\"\"})`;}constructor(length,height){super(length,height,null);this.collapsed=0;this.widgetHeight=0;this.breaks=0;}};var HeightMapGap=class _HeightMapGap extends HeightMap{heightMetrics(oracle,offset){let firstLine=oracle.doc.lineAt(offset).number,lastLine=oracle.doc.lineAt(offset+this.length).number;let lines=lastLine-firstLine+1;let perLine,perChar=0;if(oracle.lineWrapping){let totalPerLine=Math.min(this.height,oracle.lineHeight*lines);perLine=totalPerLine/lines;if(this.length>lines+1)perChar=(this.height-totalPerLine)/(this.length-lines-1);}else{perLine=this.height/lines;}return{firstLine,lastLine,perLine,perChar};}blockAt(height,oracle,top2,offset){let{firstLine,lastLine,perLine,perChar}=this.heightMetrics(oracle,offset);if(oracle.lineWrapping){let guess=offset+(height<oracle.lineHeight?0:Math.round(Math.max(0,Math.min(1,(height-top2)/this.height))*this.length));let line=oracle.doc.lineAt(guess),lineHeight=perLine+line.length*perChar;let lineTop=Math.max(top2,height-lineHeight/2);return new BlockInfo(line.from,line.length,lineTop,lineHeight,0);}else{let line=Math.max(0,Math.min(lastLine-firstLine,Math.floor((height-top2)/perLine)));let{from,length}=oracle.doc.line(firstLine+line);return new BlockInfo(from,length,top2+perLine*line,perLine,0);}}lineAt(value,type,oracle,top2,offset){if(type==QueryType.ByHeight)return this.blockAt(value,oracle,top2,offset);if(type==QueryType.ByPosNoHeight){let{from,to}=oracle.doc.lineAt(value);return new BlockInfo(from,to-from,0,0,0);}let{firstLine,perLine,perChar}=this.heightMetrics(oracle,offset);let line=oracle.doc.lineAt(value),lineHeight=perLine+line.length*perChar;let linesAbove=line.number-firstLine;let lineTop=top2+perLine*linesAbove+perChar*(line.from-offset-linesAbove);return new BlockInfo(line.from,line.length,Math.max(top2,Math.min(lineTop,top2+this.height-lineHeight)),lineHeight,0);}forEachLine(from,to,oracle,top2,offset,f){from=Math.max(from,offset);to=Math.min(to,offset+this.length);let{firstLine,perLine,perChar}=this.heightMetrics(oracle,offset);for(let pos=from,lineTop=top2;pos<=to;){let line=oracle.doc.lineAt(pos);if(pos==from){let linesAbove=line.number-firstLine;lineTop+=perLine*linesAbove+perChar*(from-offset-linesAbove);}let lineHeight=perLine+perChar*line.length;f(new BlockInfo(line.from,line.length,lineTop,lineHeight,0));lineTop+=lineHeight;pos=line.to+1;}}replace(from,to,nodes){let after=this.length-to;if(after>0){let last=nodes[nodes.length-1];if(last instanceof _HeightMapGap)nodes[nodes.length-1]=new _HeightMapGap(last.length+after);else nodes.push(null,new _HeightMapGap(after-1));}if(from>0){let first=nodes[0];if(first instanceof _HeightMapGap)nodes[0]=new _HeightMapGap(from+first.length);else nodes.unshift(new _HeightMapGap(from-1),null);}return HeightMap.of(nodes);}decomposeLeft(to,result){result.push(new _HeightMapGap(to-1),null);}decomposeRight(from,result){result.push(null,new _HeightMapGap(this.length-from-1));}updateHeight(oracle,offset=0,force=false,measured){let end=offset+this.length;if(measured&&measured.from<=offset+this.length&&measured.more){let nodes=[],pos=Math.max(offset,measured.from),singleHeight=-1;if(measured.from>offset)nodes.push(new _HeightMapGap(measured.from-offset-1).updateHeight(oracle,offset));while(pos<=end&&measured.more){let len=oracle.doc.lineAt(pos).length;if(nodes.length)nodes.push(null);let height=measured.heights[measured.index++];if(singleHeight==-1)singleHeight=height;else if(Math.abs(height-singleHeight)>=Epsilon)singleHeight=-2;let line=new HeightMapText(len,height);line.outdated=false;nodes.push(line);pos+=len+1;}if(pos<=end)nodes.push(null,new _HeightMapGap(end-pos).updateHeight(oracle,pos));let result=HeightMap.of(nodes);if(singleHeight<0||Math.abs(result.height-this.height)>=Epsilon||Math.abs(singleHeight-this.heightMetrics(oracle,offset).perLine)>=Epsilon)heightChangeFlag=true;return replace(this,result);}else if(force||this.outdated){this.setHeight(oracle.heightForGap(offset,offset+this.length));this.outdated=false;}return this;}toString(){return`gap(${this.length})`;}constructor(length){super(length,0);}};var HeightMapBranch=class extends HeightMap{get break(){return this.flags&1;}blockAt(height,oracle,top2,offset){let mid=top2+this.left.height;return height<mid?this.left.blockAt(height,oracle,top2,offset):this.right.blockAt(height,oracle,mid,offset+this.left.length+this.break);}lineAt(value,type,oracle,top2,offset){let rightTop=top2+this.left.height,rightOffset=offset+this.left.length+this.break;let left=type==QueryType.ByHeight?value<rightTop:value<rightOffset;let base2=left?this.left.lineAt(value,type,oracle,top2,offset):this.right.lineAt(value,type,oracle,rightTop,rightOffset);if(this.break||(left?base2.to<rightOffset:base2.from>rightOffset))return base2;let subQuery=type==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;if(left)return base2.join(this.right.lineAt(rightOffset,subQuery,oracle,rightTop,rightOffset));else return this.left.lineAt(rightOffset,subQuery,oracle,top2,offset).join(base2);}forEachLine(from,to,oracle,top2,offset,f){let rightTop=top2+this.left.height,rightOffset=offset+this.left.length+this.break;if(this.break){if(from<rightOffset)this.left.forEachLine(from,to,oracle,top2,offset,f);if(to>=rightOffset)this.right.forEachLine(from,to,oracle,rightTop,rightOffset,f);}else{let mid=this.lineAt(rightOffset,QueryType.ByPos,oracle,top2,offset);if(from<mid.from)this.left.forEachLine(from,mid.from-1,oracle,top2,offset,f);if(mid.to>=from&&mid.from<=to)f(mid);if(to>mid.to)this.right.forEachLine(mid.to+1,to,oracle,rightTop,rightOffset,f);}}replace(from,to,nodes){let rightStart=this.left.length+this.break;if(to<rightStart)return this.balanced(this.left.replace(from,to,nodes),this.right);if(from>this.left.length)return this.balanced(this.left,this.right.replace(from-rightStart,to-rightStart,nodes));let result=[];if(from>0)this.decomposeLeft(from,result);let left=result.length;for(let node of nodes)result.push(node);if(from>0)mergeGaps(result,left-1);if(to<this.length){let right=result.length;this.decomposeRight(to,result);mergeGaps(result,right);}return HeightMap.of(result);}decomposeLeft(to,result){let left=this.left.length;if(to<=left)return this.left.decomposeLeft(to,result);result.push(this.left);if(this.break){left++;if(to>=left)result.push(null);}if(to>left)this.right.decomposeLeft(to-left,result);}decomposeRight(from,result){let left=this.left.length,right=left+this.break;if(from>=right)return this.right.decomposeRight(from-right,result);if(from<left)this.left.decomposeRight(from,result);if(this.break&&from<right)result.push(null);result.push(this.right);}balanced(left,right){if(left.size>2*right.size||right.size>2*left.size)return HeightMap.of(this.break?[left,null,right]:[left,right]);this.left=replace(this.left,left);this.right=replace(this.right,right);this.setHeight(left.height+right.height);this.outdated=left.outdated||right.outdated;this.size=left.size+right.size;this.length=left.length+this.break+right.length;return this;}updateHeight(oracle,offset=0,force=false,measured){let{left,right}=this,rightStart=offset+left.length+this.break,rebalance=null;if(measured&&measured.from<=offset+left.length&&measured.more)rebalance=left=left.updateHeight(oracle,offset,force,measured);else left.updateHeight(oracle,offset,force);if(measured&&measured.from<=rightStart+right.length&&measured.more)rebalance=right=right.updateHeight(oracle,rightStart,force,measured);else right.updateHeight(oracle,rightStart,force);if(rebalance)return this.balanced(left,right);this.height=this.left.height+this.right.height;this.outdated=false;return this;}toString(){return this.left+(this.break?\" \":\"-\")+this.right;}constructor(left,brk,right){super(left.length+brk+right.length,left.height+right.height,brk|(left.outdated||right.outdated?2:0));this.left=left;this.right=right;this.size=left.size+right.size;}};function mergeGaps(nodes,around){let before,after;if(nodes[around]==null&&(before=nodes[around-1])instanceof HeightMapGap&&(after=nodes[around+1])instanceof HeightMapGap)nodes.splice(around-1,3,new HeightMapGap(before.length+1+after.length));}var relevantWidgetHeight=5;var NodeBuilder=class _NodeBuilder{get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering;}span(_from,to){if(this.lineStart>-1){let end=Math.min(to,this.lineEnd),last=this.nodes[this.nodes.length-1];if(last instanceof HeightMapText)last.length+=end-this.pos;else if(end>this.pos||!this.isCovered)this.nodes.push(new HeightMapText(end-this.pos,-1));this.writtenTo=end;if(to>end){this.nodes.push(null);this.writtenTo++;this.lineStart=-1;}}this.pos=to;}point(from,to,deco){if(from<to||deco.heightRelevant){let height=deco.widget?deco.widget.estimatedHeight:0;let breaks=deco.widget?deco.widget.lineBreaks:0;if(height<0)height=this.oracle.lineHeight;let len=to-from;if(deco.block){this.addBlock(new HeightMapBlock(len,height,deco));}else if(len||breaks||height>=relevantWidgetHeight){this.addLineDeco(height,breaks,len);}}else if(to>from){this.span(from,to);}if(this.lineEnd>-1&&this.lineEnd<this.pos)this.lineEnd=this.oracle.doc.lineAt(this.pos).to;}enterLine(){if(this.lineStart>-1)return;let{from,to}=this.oracle.doc.lineAt(this.pos);this.lineStart=from;this.lineEnd=to;if(this.writtenTo<from){if(this.writtenTo<from-1||this.nodes[this.nodes.length-1]==null)this.nodes.push(this.blankContent(this.writtenTo,from-1));this.nodes.push(null);}if(this.pos>from)this.nodes.push(new HeightMapText(this.pos-from,-1));this.writtenTo=this.pos;}blankContent(from,to){let gap=new HeightMapGap(to-from);if(this.oracle.doc.lineAt(from).to==to)gap.flags|=4;return gap;}ensureLine(){this.enterLine();let last=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(last instanceof HeightMapText)return last;let line=new HeightMapText(0,-1);this.nodes.push(line);return line;}addBlock(block){this.enterLine();let deco=block.deco;if(deco&&deco.startSide>0&&!this.isCovered)this.ensureLine();this.nodes.push(block);this.writtenTo=this.pos=this.pos+block.length;if(deco&&deco.endSide>0)this.covering=block;}addLineDeco(height,breaks,length){let line=this.ensureLine();line.length+=length;line.collapsed+=length;line.widgetHeight=Math.max(line.widgetHeight,height);line.breaks+=breaks;this.writtenTo=this.pos=this.pos+length;}finish(from){let last=this.nodes.length==0?null:this.nodes[this.nodes.length-1];if(this.lineStart>-1&&!(last instanceof HeightMapText)&&!this.isCovered)this.nodes.push(new HeightMapText(0,-1));else if(this.writtenTo<this.pos||last==null)this.nodes.push(this.blankContent(this.writtenTo,this.pos));let pos=from;for(let node of this.nodes){if(node instanceof HeightMapText)node.updateHeight(this.oracle,pos);pos+=node?node.length:1;}return this.nodes;}// Always called with a region that on both sides either stretches\n// to a line break or the end of the document.\n// The returned array uses null to indicate line breaks, but never\n// starts or ends in a line break, or has multiple line breaks next\n// to each other.\nstatic build(oracle,decorations2,from,to){let builder=new _NodeBuilder(from,oracle);RangeSet.spans(decorations2,from,to,builder,0);return builder.finish(from);}constructor(pos,oracle){this.pos=pos;this.oracle=oracle;this.nodes=[];this.lineStart=-1;this.lineEnd=-1;this.covering=null;this.writtenTo=pos;}};function heightRelevantDecoChanges(a,b,diff){let comp=new DecorationComparator2;RangeSet.compare(a,b,diff,comp,0);return comp.changes;}var DecorationComparator2=class{compareRange(){}comparePoint(from,to,a,b){if(from<to||a&&a.heightRelevant||b&&b.heightRelevant)addRange(from,to,this.changes,5);}constructor(){this.changes=[];}};function visiblePixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();let doc2=dom.ownerDocument,win=doc2.defaultView||window;let left=Math.max(0,rect.left),right=Math.min(win.innerWidth,rect.right);let top2=Math.max(0,rect.top),bottom=Math.min(win.innerHeight,rect.bottom);for(let parent=dom.parentNode;parent&&parent!=doc2.body;){if(parent.nodeType==1){let elt=parent;let style=window.getComputedStyle(elt);if((elt.scrollHeight>elt.clientHeight||elt.scrollWidth>elt.clientWidth)&&style.overflow!=\"visible\"){let parentRect=elt.getBoundingClientRect();left=Math.max(left,parentRect.left);right=Math.min(right,parentRect.right);top2=Math.max(top2,parentRect.top);bottom=Math.min(parent==dom.parentNode?win.innerHeight:bottom,parentRect.bottom);}parent=style.position==\"absolute\"||style.position==\"fixed\"?elt.offsetParent:elt.parentNode;}else if(parent.nodeType==11){parent=parent.host;}else{break;}}return{left:left-rect.left,right:Math.max(left,right)-rect.left,top:top2-(rect.top+paddingTop),bottom:Math.max(top2,bottom)-(rect.top+paddingTop)};}function inWindow(elt){let rect=elt.getBoundingClientRect(),win=elt.ownerDocument.defaultView||window;return rect.left<win.innerWidth&&rect.right>0&&rect.top<win.innerHeight&&rect.bottom>0;}function fullPixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();return{left:0,right:rect.right-rect.left,top:paddingTop,bottom:rect.bottom-(rect.top+paddingTop)};}var LineGap=class{static same(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let gA=a[i],gB=b[i];if(gA.from!=gB.from||gA.to!=gB.to||gA.size!=gB.size)return false;}return true;}draw(viewState,wrapping){return Decoration.replace({widget:new LineGapWidget(this.displaySize*(wrapping?viewState.scaleY:viewState.scaleX),wrapping)}).range(this.from,this.to);}constructor(from,to,size,displaySize){this.from=from;this.to=to;this.size=size;this.displaySize=displaySize;}};var LineGapWidget=class extends WidgetType{eq(other){return other.size==this.size&&other.vertical==this.vertical;}toDOM(){let elt=document.createElement(\"div\");if(this.vertical){elt.style.height=this.size+\"px\";}else{elt.style.width=this.size+\"px\";elt.style.height=\"2px\";elt.style.display=\"inline-block\";}return elt;}get estimatedHeight(){return this.vertical?this.size:-1;}constructor(size,vertical){super();this.size=size;this.vertical=vertical;}};var ViewState=class{updateForViewport(){let viewports=[this.viewport],{main}=this.state.selection;for(let i=0;i<=1;i++){let pos=i?main.head:main.anchor;if(!viewports.some(({from,to})=>pos>=from&&pos<=to)){let{from,to}=this.lineBlockAt(pos);viewports.push(new Viewport(from,to));}}this.viewports=viewports.sort((a,b)=>a.from-b.from);return this.updateScaler();}updateScaler(){let scaler=this.scaler;this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle,this.heightMap,this.viewports);return scaler.eq(this.scaler)?0:2;}updateViewportLines(){this.viewportLines=[];this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,block=>{this.viewportLines.push(scaleBlock(block,this.scaler));});}update(update,scrollTarget=null){this.state=update.state;let prevDeco=this.stateDeco;this.stateDeco=this.state.facet(decorations).filter(d=>typeof d!=\"function\");let contentChanges=update.changedRanges;let heightChanges=ChangedRange.extendWithRanges(contentChanges,heightRelevantDecoChanges(prevDeco,this.stateDeco,update?update.changes:ChangeSet.empty(this.state.doc.length)));let prevHeight=this.heightMap.height;let scrollAnchor=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);clearHeightChangeFlag();this.heightMap=this.heightMap.applyChanges(this.stateDeco,update.startState.doc,this.heightOracle.setDoc(this.state.doc),heightChanges);if(this.heightMap.height!=prevHeight||heightChangeFlag)update.flags|=2;if(scrollAnchor){this.scrollAnchorPos=update.changes.mapPos(scrollAnchor.from,-1);this.scrollAnchorHeight=scrollAnchor.top;}else{this.scrollAnchorPos=-1;this.scrollAnchorHeight=this.heightMap.height;}let viewport=heightChanges.length?this.mapViewport(this.viewport,update.changes):this.viewport;if(scrollTarget&&(scrollTarget.range.head<viewport.from||scrollTarget.range.head>viewport.to)||!this.viewportIsAppropriate(viewport))viewport=this.getViewport(0,scrollTarget);let viewportChange=viewport.from!=this.viewport.from||viewport.to!=this.viewport.to;this.viewport=viewport;update.flags|=this.updateForViewport();if(viewportChange||!update.changes.empty||update.flags&2)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,update.changes)));update.flags|=this.computeVisibleRanges(update.changes);if(scrollTarget)this.scrollTarget=scrollTarget;if(!this.mustEnforceCursorAssoc&&update.selectionSet&&update.view.lineWrapping&&update.state.selection.main.empty&&update.state.selection.main.assoc&&!update.state.facet(nativeSelectionHidden))this.mustEnforceCursorAssoc=true;}measure(view){let dom=view.contentDOM,style=window.getComputedStyle(dom);let oracle=this.heightOracle;let whiteSpace=style.whiteSpace;this.defaultTextDirection=style.direction==\"rtl\"?Direction.RTL:Direction.LTR;let refresh=this.heightOracle.mustRefreshForWrapping(whiteSpace);let domRect=dom.getBoundingClientRect();let measureContent=refresh||this.mustMeasureContent||this.contentDOMHeight!=domRect.height;this.contentDOMHeight=domRect.height;this.mustMeasureContent=false;let result=0,bias=0;if(domRect.width&&domRect.height){let{scaleX,scaleY}=getScale(dom,domRect);if(scaleX>.005&&Math.abs(this.scaleX-scaleX)>.005||scaleY>.005&&Math.abs(this.scaleY-scaleY)>.005){this.scaleX=scaleX;this.scaleY=scaleY;result|=16;refresh=measureContent=true;}}let paddingTop=(parseInt(style.paddingTop)||0)*this.scaleY;let paddingBottom=(parseInt(style.paddingBottom)||0)*this.scaleY;if(this.paddingTop!=paddingTop||this.paddingBottom!=paddingBottom){this.paddingTop=paddingTop;this.paddingBottom=paddingBottom;result|=16|2;}if(this.editorWidth!=view.scrollDOM.clientWidth){if(oracle.lineWrapping)measureContent=true;this.editorWidth=view.scrollDOM.clientWidth;result|=16;}let scrollTop=view.scrollDOM.scrollTop*this.scaleY;if(this.scrollTop!=scrollTop){this.scrollAnchorHeight=-1;this.scrollTop=scrollTop;}this.scrolledToBottom=isScrolledToBottom(view.scrollDOM);let pixelViewport=(this.printing?fullPixelRange:visiblePixelRange)(dom,this.paddingTop);let dTop=pixelViewport.top-this.pixelViewport.top,dBottom=pixelViewport.bottom-this.pixelViewport.bottom;this.pixelViewport=pixelViewport;let inView=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(inView!=this.inView){this.inView=inView;if(inView)measureContent=true;}if(!this.inView&&!this.scrollTarget&&!inWindow(view.dom))return 0;let contentWidth=domRect.width;if(this.contentDOMWidth!=contentWidth||this.editorHeight!=view.scrollDOM.clientHeight){this.contentDOMWidth=domRect.width;this.editorHeight=view.scrollDOM.clientHeight;result|=16;}if(measureContent){let lineHeights=view.docView.measureVisibleLineHeights(this.viewport);if(oracle.mustRefreshForHeights(lineHeights))refresh=true;if(refresh||oracle.lineWrapping&&Math.abs(contentWidth-this.contentDOMWidth)>oracle.charWidth){let{lineHeight,charWidth,textHeight}=view.docView.measureTextSize();refresh=lineHeight>0&&oracle.refresh(whiteSpace,lineHeight,charWidth,textHeight,contentWidth/charWidth,lineHeights);if(refresh){view.docView.minWidth=0;result|=16;}}if(dTop>0&&dBottom>0)bias=Math.max(dTop,dBottom);else if(dTop<0&&dBottom<0)bias=Math.min(dTop,dBottom);clearHeightChangeFlag();for(let vp of this.viewports){let heights=vp.from==this.viewport.from?lineHeights:view.docView.measureVisibleLineHeights(vp);this.heightMap=(refresh?HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle,[new ChangedRange(0,0,0,view.state.doc.length)]):this.heightMap).updateHeight(oracle,0,refresh,new MeasuredHeights(vp.from,heights));}if(heightChangeFlag)result|=2;}let viewportChange=!this.viewportIsAppropriate(this.viewport,bias)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);if(viewportChange){if(result&2)result|=this.updateScaler();this.viewport=this.getViewport(bias,this.scrollTarget);result|=this.updateForViewport();}if(result&2||viewportChange)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(refresh?[]:this.lineGaps,view));result|=this.computeVisibleRanges();if(this.mustEnforceCursorAssoc){this.mustEnforceCursorAssoc=false;view.docView.enforceCursorAssoc();}return result;}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top);}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom);}getViewport(bias,scrollTarget){let marginTop=.5-Math.max(-.5,Math.min(.5,bias/1e3/2));let map=this.heightMap,oracle=this.heightOracle;let{visibleTop,visibleBottom}=this;let viewport=new Viewport(map.lineAt(visibleTop-marginTop*1e3,QueryType.ByHeight,oracle,0,0).from,map.lineAt(visibleBottom+(1-marginTop)*1e3,QueryType.ByHeight,oracle,0,0).to);if(scrollTarget){let{head}=scrollTarget.range;if(head<viewport.from||head>viewport.to){let viewHeight=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top);let block=map.lineAt(head,QueryType.ByPos,oracle,0,0),topPos;if(scrollTarget.y==\"center\")topPos=(block.top+block.bottom)/2-viewHeight/2;else if(scrollTarget.y==\"start\"||scrollTarget.y==\"nearest\"&&head<viewport.from)topPos=block.top;else topPos=block.bottom-viewHeight;viewport=new Viewport(map.lineAt(topPos-1e3/2,QueryType.ByHeight,oracle,0,0).from,map.lineAt(topPos+viewHeight+1e3/2,QueryType.ByHeight,oracle,0,0).to);}}return viewport;}mapViewport(viewport,changes){let from=changes.mapPos(viewport.from,-1),to=changes.mapPos(viewport.to,1);return new Viewport(this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0).to);}// Checks if a given viewport covers the visible part of the\n// document and not too much beyond that.\nviewportIsAppropriate({from,to},bias=0){if(!this.inView)return true;let{top:top2}=this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0);let{bottom}=this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0);let{visibleTop,visibleBottom}=this;return(from==0||top2<=visibleTop-Math.max(10,Math.min(-bias,250)))&&(to==this.state.doc.length||bottom>=visibleBottom+Math.max(10,Math.min(bias,250)))&&top2>visibleTop-2*1e3&&bottom<visibleBottom+2*1e3;}mapLineGaps(gaps,changes){if(!gaps.length||changes.empty)return gaps;let mapped=[];for(let gap of gaps)if(!changes.touchesRange(gap.from,gap.to))mapped.push(new LineGap(changes.mapPos(gap.from),changes.mapPos(gap.to),gap.size,gap.displaySize));return mapped;}// Computes positions in the viewport where the start or end of a\n// line should be hidden, trying to reuse existing line gaps when\n// appropriate to avoid unneccesary redraws.\n// Uses crude character-counting for the positioning and sizing,\n// since actual DOM coordinates aren't always available and\n// predictable. Relies on generous margins (see LG.Margin) to hide\n// the artifacts this might produce from the user.\nensureLineGaps(current,mayMeasure){let wrapping=this.heightOracle.lineWrapping;let margin=wrapping?1e4:2e3,halfMargin=margin>>1,doubleMargin=margin<<1;if(this.defaultTextDirection!=Direction.LTR&&!wrapping)return[];let gaps=[];let addGap=(from,to,line,structure)=>{if(to-from<halfMargin)return;let sel=this.state.selection.main,avoid=[sel.from];if(!sel.empty)avoid.push(sel.to);for(let pos of avoid){if(pos>from&&pos<to){addGap(from,pos-10,line,structure);addGap(pos+10,to,line,structure);return;}}let gap=find(current,gap2=>gap2.from>=line.from&&gap2.to<=line.to&&Math.abs(gap2.from-from)<halfMargin&&Math.abs(gap2.to-to)<halfMargin&&!avoid.some(pos=>gap2.from<pos&&gap2.to>pos));if(!gap){if(to<line.to&&mayMeasure&&wrapping&&mayMeasure.visibleRanges.some(r=>r.from<=to&&r.to>=to)){let lineStart=mayMeasure.moveToLineBoundary(EditorSelection.cursor(to),false,true).head;if(lineStart>from)to=lineStart;}let size=this.gapSize(line,from,to,structure);let displaySize=wrapping||size<2e6?size:2e6;gap=new LineGap(from,to,size,displaySize);}gaps.push(gap);};let checkLine=line=>{if(line.length<doubleMargin||line.type!=BlockType.Text)return;let structure=lineStructure(line.from,line.to,this.stateDeco);if(structure.total<doubleMargin)return;let target=this.scrollTarget?this.scrollTarget.range.head:null;let viewFrom,viewTo;if(wrapping){let marginHeight=margin/this.heightOracle.lineLength*this.heightOracle.lineHeight;let top2,bot;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((this.visibleBottom-this.visibleTop)/2+marginHeight)/line.height;top2=targetFrac-spaceFrac;bot=targetFrac+spaceFrac;}else{top2=(this.visibleTop-line.top-marginHeight)/line.height;bot=(this.visibleBottom-line.top+marginHeight)/line.height;}viewFrom=findPosition(structure,top2);viewTo=findPosition(structure,bot);}else{let totalWidth=structure.total*this.heightOracle.charWidth;let marginWidth=margin*this.heightOracle.charWidth;let horizOffset=0;if(totalWidth>2e6)for(let old of current){if(old.from>=line.from&&old.from<line.to&&old.size!=old.displaySize&&old.from*this.heightOracle.charWidth+horizOffset<this.pixelViewport.left)horizOffset=old.size-old.displaySize;}let pxLeft=this.pixelViewport.left+horizOffset,pxRight=this.pixelViewport.right+horizOffset;let left,right;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((pxRight-pxLeft)/2+marginWidth)/totalWidth;left=targetFrac-spaceFrac;right=targetFrac+spaceFrac;}else{left=(pxLeft-marginWidth)/totalWidth;right=(pxRight+marginWidth)/totalWidth;}viewFrom=findPosition(structure,left);viewTo=findPosition(structure,right);}if(viewFrom>line.from)addGap(line.from,viewFrom,line,structure);if(viewTo<line.to)addGap(viewTo,line.to,line,structure);};for(let line of this.viewportLines){if(Array.isArray(line.type))line.type.forEach(checkLine);else checkLine(line);}return gaps;}gapSize(line,from,to,structure){let fraction=findFraction(structure,to)-findFraction(structure,from);if(this.heightOracle.lineWrapping){return line.height*fraction;}else{return structure.total*this.heightOracle.charWidth*fraction;}}updateLineGaps(gaps){if(!LineGap.same(gaps,this.lineGaps)){this.lineGaps=gaps;this.lineGapDeco=Decoration.set(gaps.map(gap=>gap.draw(this,this.heightOracle.lineWrapping)));}}computeVisibleRanges(changes){let deco=this.stateDeco;if(this.lineGaps.length)deco=deco.concat(this.lineGapDeco);let ranges=[];RangeSet.spans(deco,this.viewport.from,this.viewport.to,{span(from,to){ranges.push({from,to});},point(){}},20);let changed=0;if(ranges.length!=this.visibleRanges.length){changed=8|4;}else{for(let i=0;i<ranges.length&&!(changed&8);i++){let old=this.visibleRanges[i],nw=ranges[i];if(old.from!=nw.from||old.to!=nw.to){changed|=4;if(!(changes&&changes.mapPos(old.from,-1)==nw.from&&changes.mapPos(old.to,1)==nw.to))changed|=8;}}}this.visibleRanges=ranges;return changed;}lineBlockAt(pos){return pos>=this.viewport.from&&pos<=this.viewport.to&&this.viewportLines.find(b=>b.from<=pos&&b.to>=pos)||scaleBlock(this.heightMap.lineAt(pos,QueryType.ByPos,this.heightOracle,0,0),this.scaler);}lineBlockAtHeight(height){return height>=this.viewportLines[0].top&&height<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(l=>l.top<=height&&l.bottom>=height)||scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height),QueryType.ByHeight,this.heightOracle,0,0),this.scaler);}scrollAnchorAt(scrollTop){let block=this.lineBlockAtHeight(scrollTop+8);return block.from>=this.viewport.from||this.viewportLines[0].top-scrollTop>200?block:this.viewportLines[0];}elementAtHeight(height){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(height),this.heightOracle,0,0),this.scaler);}get docHeight(){return this.scaler.toDOM(this.heightMap.height);}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom;}constructor(state){this.state=state;this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0};this.inView=true;this.paddingTop=0;this.paddingBottom=0;this.contentDOMWidth=0;this.contentDOMHeight=0;this.editorHeight=0;this.editorWidth=0;this.scrollTop=0;this.scrolledToBottom=false;this.scaleX=1;this.scaleY=1;this.scrollAnchorPos=0;this.scrollAnchorHeight=-1;this.scaler=IdScaler;this.scrollTarget=null;this.printing=false;this.mustMeasureContent=true;this.defaultTextDirection=Direction.LTR;this.visibleRanges=[];this.mustEnforceCursorAssoc=false;let guessWrapping=state.facet(contentAttributes).some(v=>typeof v!=\"function\"&&v.class==\"cm-lineWrapping\");this.heightOracle=new HeightOracle(guessWrapping);this.stateDeco=state.facet(decorations).filter(d=>typeof d!=\"function\");this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(state.doc),[new ChangedRange(0,0,0,state.doc.length)]);for(let i=0;i<2;i++){this.viewport=this.getViewport(0,null);if(!this.updateForViewport())break;}this.updateViewportLines();this.lineGaps=this.ensureLineGaps([]);this.lineGapDeco=Decoration.set(this.lineGaps.map(gap=>gap.draw(this,false)));this.computeVisibleRanges();}};var Viewport=class{constructor(from,to){this.from=from;this.to=to;}};function lineStructure(from,to,stateDeco){let ranges=[],pos=from,total=0;RangeSet.spans(stateDeco,from,to,{span(){},point(from2,to2){if(from2>pos){ranges.push({from:pos,to:from2});total+=from2-pos;}pos=to2;}},20);if(pos<to){ranges.push({from:pos,to});total+=to-pos;}return{total,ranges};}function findPosition({total,ranges},ratio){if(ratio<=0)return ranges[0].from;if(ratio>=1)return ranges[ranges.length-1].to;let dist2=Math.floor(total*ratio);for(let i=0;;i++){let{from,to}=ranges[i],size=to-from;if(dist2<=size)return from+dist2;dist2-=size;}}function findFraction(structure,pos){let counted=0;for(let{from,to}of structure.ranges){if(pos<=to){counted+=pos-from;break;}counted+=to-from;}return counted/structure.total;}function find(array,f){for(let val of array)if(f(val))return val;return void 0;}var IdScaler={toDOM(n){return n;},fromDOM(n){return n;},scale:1,eq(other){return other==this;}};var BigScaler=class _BigScaler{toDOM(n){for(let i=0,base2=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.top)return domBase+(n-base2)*this.scale;if(n<=vp.bottom)return vp.domTop+(n-vp.top);base2=vp.bottom;domBase=vp.domBottom;}}fromDOM(n){for(let i=0,base2=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.domTop)return base2+(n-domBase)/this.scale;if(n<=vp.domBottom)return vp.top+(n-vp.domTop);base2=vp.bottom;domBase=vp.domBottom;}}eq(other){if(!(other instanceof _BigScaler))return false;return this.scale==other.scale&&this.viewports.length==other.viewports.length&&this.viewports.every((vp,i)=>vp.from==other.viewports[i].from&&vp.to==other.viewports[i].to);}constructor(oracle,heightMap,viewports){let vpHeight=0,base2=0,domBase=0;this.viewports=viewports.map(({from,to})=>{let top2=heightMap.lineAt(from,QueryType.ByPos,oracle,0,0).top;let bottom=heightMap.lineAt(to,QueryType.ByPos,oracle,0,0).bottom;vpHeight+=bottom-top2;return{from,to,top:top2,bottom,domTop:0,domBottom:0};});this.scale=(7e6-vpHeight)/(heightMap.height-vpHeight);for(let obj of this.viewports){obj.domTop=domBase+(obj.top-base2)*this.scale;domBase=obj.domBottom=obj.domTop+(obj.bottom-obj.top);base2=obj.bottom;}}};function scaleBlock(block,scaler){if(scaler.scale==1)return block;let bTop=scaler.toDOM(block.top),bBottom=scaler.toDOM(block.bottom);return new BlockInfo(block.from,block.length,bTop,bBottom-bTop,Array.isArray(block._content)?block._content.map(b=>scaleBlock(b,scaler)):block._content);}var theme=/* @__PURE__ */Facet.define({combine:strs=>strs.join(\" \")});var darkTheme=/* @__PURE__ */Facet.define({combine:values=>values.indexOf(true)>-1});var baseThemeID=/* @__PURE__ */StyleModule.newName();var baseLightID=/* @__PURE__ */StyleModule.newName();var baseDarkID=/* @__PURE__ */StyleModule.newName();var lightDarkIDs={\"&light\":\".\"+baseLightID,\"&dark\":\".\"+baseDarkID};function buildTheme(main,spec,scopes){return new StyleModule(spec,{finish(sel){return/&/.test(sel)?sel.replace(/&\\w*/,m=>{if(m==\"&\")return main;if(!scopes||!scopes[m])throw new RangeError(`Unsupported selector: ${m}`);return scopes[m];}):main+\" \"+sel;}});}var baseTheme$1=/* @__PURE__ */buildTheme(\".\"+baseThemeID,{\"&\":{position:\"relative !important\",boxSizing:\"border-box\",\"&.cm-focused\":{// Provide a simple default outline to make sure a focused\n// editor is visually distinct. Can't leave the default behavior\n// because that will apply to the content element, which is\n// inside the scrollable container and doesn't include the\n// gutters. We also can't use an 'auto' outline, since those\n// are, for some reason, drawn behind the element content, which\n// will cause things like the active line background to cover\n// the outline (#297).\noutline:\"1px dotted #212121\"},display:\"flex !important\",flexDirection:\"column\"},\".cm-scroller\":{display:\"flex !important\",alignItems:\"flex-start !important\",fontFamily:\"monospace\",lineHeight:1.4,height:\"100%\",overflowX:\"auto\",position:\"relative\",zIndex:0,overflowAnchor:\"none\"},\".cm-content\":{margin:0,flexGrow:2,flexShrink:0,display:\"block\",whiteSpace:\"pre\",wordWrap:\"normal\",// https://github.com/codemirror/dev/issues/456\nboxSizing:\"border-box\",minHeight:\"100%\",padding:\"4px 0\",outline:\"none\",\"&[contenteditable=true]\":{WebkitUserModify:\"read-write-plaintext-only\"}},\".cm-lineWrapping\":{whiteSpace_fallback:\"pre-wrap\",// For IE\nwhiteSpace:\"break-spaces\",wordBreak:\"break-word\",// For Safari, which doesn't support overflow-wrap: anywhere\noverflowWrap:\"anywhere\",flexShrink:1},\"&light .cm-content\":{caretColor:\"black\"},\"&dark .cm-content\":{caretColor:\"white\"},\".cm-line\":{display:\"block\",padding:\"0 2px 0 6px\"},\".cm-layer\":{position:\"absolute\",left:0,top:0,contain:\"size style\",\"& > *\":{position:\"absolute\"}},\"&light .cm-selectionBackground\":{background:\"#d9d9d9\"},\"&dark .cm-selectionBackground\":{background:\"#222\"},\"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\":{background:\"#d7d4f0\"},\"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\":{background:\"#233\"},\".cm-cursorLayer\":{pointerEvents:\"none\"},\"&.cm-focused > .cm-scroller > .cm-cursorLayer\":{animation:\"steps(1) cm-blink 1.2s infinite\"},// Two animations defined so that we can switch between them to\n// restart the animation without forcing another style\n// recomputation.\n\"@keyframes cm-blink\":{\"0%\":{},\"50%\":{opacity:0},\"100%\":{}},\"@keyframes cm-blink2\":{\"0%\":{},\"50%\":{opacity:0},\"100%\":{}},\".cm-cursor, .cm-dropCursor\":{borderLeft:\"1.2px solid black\",marginLeft:\"-0.6px\",pointerEvents:\"none\"},\".cm-cursor\":{display:\"none\"},\"&dark .cm-cursor\":{borderLeftColor:\"#ddd\"},\".cm-dropCursor\":{position:\"absolute\"},\"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor\":{display:\"block\"},\".cm-iso\":{unicodeBidi:\"isolate\"},\".cm-announced\":{position:\"fixed\",top:\"-10000px\"},\"@media print\":{\".cm-announced\":{display:\"none\"}},\"&light .cm-activeLine\":{backgroundColor:\"#cceeff44\"},\"&dark .cm-activeLine\":{backgroundColor:\"#99eeff33\"},\"&light .cm-specialChar\":{color:\"red\"},\"&dark .cm-specialChar\":{color:\"#f78\"},\".cm-gutters\":{flexShrink:0,display:\"flex\",height:\"100%\",boxSizing:\"border-box\",insetInlineStart:0,zIndex:200},\"&light .cm-gutters\":{backgroundColor:\"#f5f5f5\",color:\"#6c6c6c\",borderRight:\"1px solid #ddd\"},\"&dark .cm-gutters\":{backgroundColor:\"#333338\",color:\"#ccc\"},\".cm-gutter\":{display:\"flex !important\",// Necessary -- prevents margin collapsing\nflexDirection:\"column\",flexShrink:0,boxSizing:\"border-box\",minHeight:\"100%\",overflow:\"hidden\"},\".cm-gutterElement\":{boxSizing:\"border-box\"},\".cm-lineNumbers .cm-gutterElement\":{padding:\"0 3px 0 5px\",minWidth:\"20px\",textAlign:\"right\",whiteSpace:\"nowrap\"},\"&light .cm-activeLineGutter\":{backgroundColor:\"#e2f2ff\"},\"&dark .cm-activeLineGutter\":{backgroundColor:\"#222227\"},\".cm-panels\":{boxSizing:\"border-box\",position:\"sticky\",left:0,right:0,zIndex:300},\"&light .cm-panels\":{backgroundColor:\"#f5f5f5\",color:\"black\"},\"&light .cm-panels-top\":{borderBottom:\"1px solid #ddd\"},\"&light .cm-panels-bottom\":{borderTop:\"1px solid #ddd\"},\"&dark .cm-panels\":{backgroundColor:\"#333338\",color:\"white\"},\".cm-tab\":{display:\"inline-block\",overflow:\"hidden\",verticalAlign:\"bottom\"},\".cm-widgetBuffer\":{verticalAlign:\"text-top\",height:\"1em\",width:0,display:\"inline\"},\".cm-placeholder\":{color:\"#888\",display:\"inline-block\",verticalAlign:\"top\",userSelect:\"none\"},\".cm-highlightSpace\":{backgroundImage:\"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)\",backgroundPosition:\"center\"},\".cm-highlightTab\":{backgroundImage:`url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"20\"><path stroke=\"%23888\" stroke-width=\"1\" fill=\"none\" d=\"M1 10H196L190 5M190 15L196 10M197 4L197 16\"/></svg>')`,backgroundSize:\"auto 100%\",backgroundPosition:\"right 90%\",backgroundRepeat:\"no-repeat\"},\".cm-trailingSpace\":{backgroundColor:\"#ff332255\"},\".cm-button\":{verticalAlign:\"middle\",color:\"inherit\",fontSize:\"70%\",padding:\".2em 1em\",borderRadius:\"1px\"},\"&light .cm-button\":{backgroundImage:\"linear-gradient(#eff1f5, #d9d9df)\",border:\"1px solid #888\",\"&:active\":{backgroundImage:\"linear-gradient(#b4b4b4, #d0d3d6)\"}},\"&dark .cm-button\":{backgroundImage:\"linear-gradient(#393939, #111)\",border:\"1px solid #888\",\"&:active\":{backgroundImage:\"linear-gradient(#111, #333)\"}},\".cm-textfield\":{verticalAlign:\"middle\",color:\"inherit\",fontSize:\"70%\",border:\"1px solid silver\",padding:\".2em .5em\"},\"&light .cm-textfield\":{backgroundColor:\"white\"},\"&dark .cm-textfield\":{border:\"1px solid #555\",backgroundColor:\"inherit\"}},lightDarkIDs);var observeOptions={childList:true,characterData:true,subtree:true,attributes:true,characterDataOldValue:true};var useCharData=browser.ie&&browser.ie_version<=11;var DOMObserver=class{onScrollChanged(e){this.view.inputState.runHandlers(\"scroll\",e);if(this.intersecting)this.view.measure();}onScroll(e){if(this.intersecting)this.flush(false);if(this.editContext)this.view.requestMeasure(this.editContext.measureReq);this.onScrollChanged(e);}onResize(){if(this.resizeTimeout<0)this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1;this.view.requestMeasure();},50);}onPrint(event){if((event.type==\"change\"||!event.type)&&!event.matches)return;this.view.viewState.printing=true;this.view.measure();setTimeout(()=>{this.view.viewState.printing=false;this.view.requestMeasure();},500);}updateGaps(gaps){if(this.gapIntersection&&(gaps.length!=this.gaps.length||this.gaps.some((g,i)=>g!=gaps[i]))){this.gapIntersection.disconnect();for(let gap of gaps)this.gapIntersection.observe(gap);this.gaps=gaps;}}onSelectionChange(event){let wasChanged=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view}=this,sel=this.selectionRange;if(view.state.facet(editable)?view.root.activeElement!=this.dom:!hasSelection(this.dom,sel))return;let context=sel.anchorNode&&view.docView.nearest(sel.anchorNode);if(context&&context.ignoreEvent(event)){if(!wasChanged)this.selectionChanged=false;return;}if((browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!view.state.selection.main.empty&&// (Selection.isCollapsed isn't reliable on IE)\nsel.focusNode&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset))this.flushSoon();else this.flush(false);}readSelectionRange(){let{view}=this;let selection=getSelection(view.root);if(!selection)return false;let range=browser.safari&&view.root.nodeType==11&&view.root.activeElement==this.dom&&safariSelectionRangeHack(this.view,selection)||selection;if(!range||this.selectionRange.eq(range))return false;let local=hasSelection(this.dom,range);if(local&&!this.selectionChanged&&view.inputState.lastFocusTime>Date.now()-200&&view.inputState.lastTouchTime<Date.now()-300&&atElementStart(this.dom,range)){this.view.inputState.lastFocusTime=0;view.docView.updateSelection();return false;}this.selectionRange.setRange(range);if(local)this.selectionChanged=true;return true;}setSelectionRange(anchor,head){this.selectionRange.set(anchor.node,anchor.offset,head.node,head.offset);this.selectionChanged=false;}clearSelectionRange(){this.selectionRange.set(null,0,null,0);}listenForScroll(){this.parentCheck=-1;let i=0,changed=null;for(let dom=this.dom;dom;){if(dom.nodeType==1){if(!changed&&i<this.scrollTargets.length&&this.scrollTargets[i]==dom)i++;else if(!changed)changed=this.scrollTargets.slice(0,i);if(changed)changed.push(dom);dom=dom.assignedSlot||dom.parentNode;}else if(dom.nodeType==11){dom=dom.host;}else{break;}}if(i<this.scrollTargets.length&&!changed)changed=this.scrollTargets.slice(0,i);if(changed){for(let dom of this.scrollTargets)dom.removeEventListener(\"scroll\",this.onScroll);for(let dom of this.scrollTargets=changed)dom.addEventListener(\"scroll\",this.onScroll);}}ignore(f){if(!this.active)return f();try{this.stop();return f();}finally{this.start();this.clear();}}start(){if(this.active)return;this.observer.observe(this.dom,observeOptions);if(useCharData)this.dom.addEventListener(\"DOMCharacterDataModified\",this.onCharData);this.active=true;}stop(){if(!this.active)return;this.active=false;this.observer.disconnect();if(useCharData)this.dom.removeEventListener(\"DOMCharacterDataModified\",this.onCharData);}// Throw away any pending changes\nclear(){this.processRecords();this.queue.length=0;this.selectionChanged=false;}// Chrome Android, especially in combination with GBoard, not only\n// doesn't reliably fire regular key events, but also often\n// surrounds the effect of enter or backspace with a bunch of\n// composition events that, when interrupted, cause text duplication\n// or other kinds of corruption. This hack makes the editor back off\n// from handling DOM changes for a moment when such a key is\n// detected (via beforeinput or keydown), and then tries to flush\n// them or, if that has no effect, dispatches the given key.\ndelayAndroidKey(key,keyCode){var _a;if(!this.delayedAndroidKey){let flush=()=>{let key2=this.delayedAndroidKey;if(key2){this.clearDelayedAndroidKey();this.view.inputState.lastKeyCode=key2.keyCode;this.view.inputState.lastKeyTime=Date.now();let flushed=this.flush();if(!flushed&&key2.force)dispatchKey(this.dom,key2.key,key2.keyCode);}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(flush);}if(!this.delayedAndroidKey||key==\"Enter\")this.delayedAndroidKey={key,keyCode,// Only run the key handler when no changes are detected if\n// this isn't coming right after another change, in which case\n// it is probably part of a weird chain of updates, and should\n// be ignored if it returns the DOM to its previous state.\nforce:this.lastChange<Date.now()-50||!!((_a=this.delayedAndroidKey)===null||_a===void 0?void 0:_a.force)};}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey);this.delayedAndroidKey=null;this.flushingAndroidKey=-1;}flushSoon(){if(this.delayedFlush<0)this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1;this.flush();});}forceFlush(){if(this.delayedFlush>=0){this.view.win.cancelAnimationFrame(this.delayedFlush);this.delayedFlush=-1;}this.flush();}pendingRecords(){for(let mut of this.observer.takeRecords())this.queue.push(mut);return this.queue;}processRecords(){let records=this.pendingRecords();if(records.length)this.queue=[];let from=-1,to=-1,typeOver=false;for(let record of records){let range=this.readMutation(record);if(!range)continue;if(range.typeOver)typeOver=true;if(from==-1){({from,to}=range);}else{from=Math.min(range.from,from);to=Math.max(range.to,to);}}return{from,to,typeOver};}readChange(){let{from,to,typeOver}=this.processRecords();let newSel=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(from<0&&!newSel)return null;if(from>-1)this.lastChange=Date.now();this.view.inputState.lastFocusTime=0;this.selectionChanged=false;let change=new DOMChange(this.view,from,to,typeOver);this.view.docView.domChanged={newSel:change.newSel?change.newSel.main:null};return change;}// Apply pending changes, if any\nflush(readSelection=true){if(this.delayedFlush>=0||this.delayedAndroidKey)return false;if(readSelection)this.readSelectionRange();let domChange=this.readChange();if(!domChange){this.view.requestMeasure();return false;}let startState=this.view.state;let handled=applyDOMChange(this.view,domChange);if(this.view.state==startState&&(domChange.domChanged||domChange.newSel&&!domChange.newSel.main.eq(this.view.state.selection.main)))this.view.update([]);return handled;}readMutation(rec){let cView=this.view.docView.nearest(rec.target);if(!cView||cView.ignoreMutation(rec))return null;cView.markDirty(rec.type==\"attributes\");if(rec.type==\"attributes\")cView.flags|=4;if(rec.type==\"childList\"){let childBefore=findChild(cView,rec.previousSibling||rec.target.previousSibling,-1);let childAfter=findChild(cView,rec.nextSibling||rec.target.nextSibling,1);return{from:childBefore?cView.posAfter(childBefore):cView.posAtStart,to:childAfter?cView.posBefore(childAfter):cView.posAtEnd,typeOver:false};}else if(rec.type==\"characterData\"){return{from:cView.posAtStart,to:cView.posAtEnd,typeOver:rec.target.nodeValue==rec.oldValue};}else{return null;}}setWindow(win){if(win!=this.win){this.removeWindowListeners(this.win);this.win=win;this.addWindowListeners(this.win);}}addWindowListeners(win){win.addEventListener(\"resize\",this.onResize);if(this.printQuery){if(this.printQuery.addEventListener)this.printQuery.addEventListener(\"change\",this.onPrint);else this.printQuery.addListener(this.onPrint);}else win.addEventListener(\"beforeprint\",this.onPrint);win.addEventListener(\"scroll\",this.onScroll);win.document.addEventListener(\"selectionchange\",this.onSelectionChange);}removeWindowListeners(win){win.removeEventListener(\"scroll\",this.onScroll);win.removeEventListener(\"resize\",this.onResize);if(this.printQuery){if(this.printQuery.removeEventListener)this.printQuery.removeEventListener(\"change\",this.onPrint);else this.printQuery.removeListener(this.onPrint);}else win.removeEventListener(\"beforeprint\",this.onPrint);win.document.removeEventListener(\"selectionchange\",this.onSelectionChange);}update(update){if(this.editContext){this.editContext.update(update);if(update.startState.facet(editable)!=update.state.facet(editable))update.view.contentDOM.editContext=update.state.facet(editable)?this.editContext.editContext:null;}}destroy(){var _a,_b,_c;this.stop();(_a=this.intersection)===null||_a===void 0?void 0:_a.disconnect();(_b=this.gapIntersection)===null||_b===void 0?void 0:_b.disconnect();(_c=this.resizeScroll)===null||_c===void 0?void 0:_c.disconnect();for(let dom of this.scrollTargets)dom.removeEventListener(\"scroll\",this.onScroll);this.removeWindowListeners(this.win);clearTimeout(this.parentCheck);clearTimeout(this.resizeTimeout);this.win.cancelAnimationFrame(this.delayedFlush);this.win.cancelAnimationFrame(this.flushingAndroidKey);if(this.editContext){this.view.contentDOM.editContext=null;this.editContext.destroy();}}constructor(view){this.view=view;this.active=false;this.editContext=null;this.selectionRange=new DOMSelectionState;this.selectionChanged=false;this.delayedFlush=-1;this.resizeTimeout=-1;this.queue=[];this.delayedAndroidKey=null;this.flushingAndroidKey=-1;this.lastChange=0;this.scrollTargets=[];this.intersection=null;this.resizeScroll=null;this.intersecting=false;this.gapIntersection=null;this.gaps=[];this.printQuery=null;this.parentCheck=-1;this.dom=view.contentDOM;this.observer=new MutationObserver(mutations=>{for(let mut of mutations)this.queue.push(mut);if((browser.ie&&browser.ie_version<=11||browser.ios&&view.composing)&&mutations.some(m=>m.type==\"childList\"&&m.removedNodes.length||m.type==\"characterData\"&&m.oldValue.length>m.target.nodeValue.length))this.flushSoon();else this.flush();});if(window.EditContext&&view.constructor.EDIT_CONTEXT!==false&&// Chrome <126 doesn't support inverted selections in edit context (#1392)\n!(browser.chrome&&browser.chrome_version<126)){this.editContext=new EditContextManager(view);if(view.state.facet(editable))view.contentDOM.editContext=this.editContext.editContext;}if(useCharData)this.onCharData=event=>{this.queue.push({target:event.target,type:\"characterData\",oldValue:event.prevValue});this.flushSoon();};this.onSelectionChange=this.onSelectionChange.bind(this);this.onResize=this.onResize.bind(this);this.onPrint=this.onPrint.bind(this);this.onScroll=this.onScroll.bind(this);if(window.matchMedia)this.printQuery=window.matchMedia(\"print\");if(typeof ResizeObserver==\"function\"){this.resizeScroll=new ResizeObserver(()=>{var _a;if(((_a=this.view.docView)===null||_a===void 0?void 0:_a.lastUpdate)<Date.now()-75)this.onResize();});this.resizeScroll.observe(view.scrollDOM);}this.addWindowListeners(this.win=view.win);this.start();if(typeof IntersectionObserver==\"function\"){this.intersection=new IntersectionObserver(entries=>{if(this.parentCheck<0)this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3);if(entries.length>0&&entries[entries.length-1].intersectionRatio>0!=this.intersecting){this.intersecting=!this.intersecting;if(this.intersecting!=this.view.inView)this.onScrollChanged(document.createEvent(\"Event\"));}},{threshold:[0,.001]});this.intersection.observe(this.dom);this.gapIntersection=new IntersectionObserver(entries=>{if(entries.length>0&&entries[entries.length-1].intersectionRatio>0)this.onScrollChanged(document.createEvent(\"Event\"));},{});}this.listenForScroll();this.readSelectionRange();}};function findChild(cView,dom,dir){while(dom){let curView=ContentView.get(dom);if(curView&&curView.parent==cView)return curView;let parent=dom.parentNode;dom=parent!=cView.dom?parent:dir>0?dom.nextSibling:dom.previousSibling;}return null;}function buildSelectionRangeFromRange(view,range){let anchorNode=range.startContainer,anchorOffset=range.startOffset;let focusNode=range.endContainer,focusOffset=range.endOffset;let curAnchor=view.docView.domAtPos(view.state.selection.main.anchor);if(isEquivalentPosition(curAnchor.node,curAnchor.offset,focusNode,focusOffset))[anchorNode,anchorOffset,focusNode,focusOffset]=[focusNode,focusOffset,anchorNode,anchorOffset];return{anchorNode,anchorOffset,focusNode,focusOffset};}function safariSelectionRangeHack(view,selection){if(selection.getComposedRanges){let range=selection.getComposedRanges(view.root)[0];if(range)return buildSelectionRangeFromRange(view,range);}let found=null;function read(event){event.preventDefault();event.stopImmediatePropagation();found=event.getTargetRanges()[0];}view.contentDOM.addEventListener(\"beforeinput\",read,true);view.dom.ownerDocument.execCommand(\"indent\");view.contentDOM.removeEventListener(\"beforeinput\",read,true);return found?buildSelectionRangeFromRange(view,found):null;}var EditContextManager=class{applyEdits(update){let off=0,abort=false,pending=this.pendingContextChange;update.changes.iterChanges((fromA,toA,_fromB,_toB,insert)=>{if(abort)return;let dLen=insert.length-(toA-fromA);if(pending&&toA>=pending.to){if(pending.from==fromA&&pending.to==toA&&pending.insert.eq(insert)){pending=this.pendingContextChange=null;off+=dLen;this.to+=dLen;return;}else{pending=null;this.revertPending(update.state);}}fromA+=off;toA+=off;if(toA<=this.from){this.from+=dLen;this.to+=dLen;}else if(fromA<this.to){if(fromA<this.from||toA>this.to||this.to-this.from+insert.length>3e4){abort=true;return;}this.editContext.updateText(this.toContextPos(fromA),this.toContextPos(toA),insert.toString());this.to+=dLen;}off+=dLen;});if(pending&&!abort)this.revertPending(update.state);return!abort;}update(update){let reverted=this.pendingContextChange,startSel=update.startState.selection.main;if(this.composing&&(this.composing.drifted||!update.changes.touchesRange(startSel.from,startSel.to)&&update.transactions.some(tr=>!tr.isUserEvent(\"input.type\")&&tr.changes.touchesRange(this.from,this.to)))){this.composing.drifted=true;this.composing.editorBase=update.changes.mapPos(this.composing.editorBase);}else if(!this.applyEdits(update)||!this.rangeIsValid(update.state)){this.pendingContextChange=null;this.reset(update.state);}else if(update.docChanged||update.selectionSet||reverted){this.setSelection(update.state);}if(update.geometryChanged||update.docChanged||update.selectionSet)update.view.requestMeasure(this.measureReq);}resetRange(state){let{head}=state.selection.main;this.from=Math.max(0,head-1e4);this.to=Math.min(state.doc.length,head+1e4);}reset(state){this.resetRange(state);this.editContext.updateText(0,this.editContext.text.length,state.doc.sliceString(this.from,this.to));this.setSelection(state);}revertPending(state){let pending=this.pendingContextChange;this.pendingContextChange=null;this.editContext.updateText(this.toContextPos(pending.from),this.toContextPos(pending.from+pending.insert.length),state.doc.sliceString(pending.from,pending.to));}setSelection(state){let{main}=state.selection;let start=this.toContextPos(Math.max(this.from,Math.min(this.to,main.anchor)));let end=this.toContextPos(main.head);if(this.editContext.selectionStart!=start||this.editContext.selectionEnd!=end)this.editContext.updateSelection(start,end);}rangeIsValid(state){let{head}=state.selection.main;return!(this.from>0&&head-this.from<500||this.to<state.doc.length&&this.to-head<500||this.to-this.from>1e4*3);}toEditorPos(contextPos,clipLen=this.to-this.from){contextPos=Math.min(contextPos,clipLen);let c=this.composing;return c&&c.drifted?c.editorBase+(contextPos-c.contextBase):contextPos+this.from;}toContextPos(editorPos){let c=this.composing;return c&&c.drifted?c.contextBase+(editorPos-c.editorBase):editorPos-this.from;}destroy(){for(let event in this.handlers)this.editContext.removeEventListener(event,this.handlers[event]);}constructor(view){this.from=0;this.to=0;this.pendingContextChange=null;this.handlers=/* @__PURE__ */Object.create(null);this.composing=null;this.resetRange(view.state);let context=this.editContext=new window.EditContext({text:view.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,view.state.selection.main.anchor))),selectionEnd:this.toContextPos(view.state.selection.main.head)});this.handlers.textupdate=e=>{let main=view.state.selection.main,{anchor,head}=main;let from=this.toEditorPos(e.updateRangeStart),to=this.toEditorPos(e.updateRangeEnd);if(view.inputState.composing>=0&&!this.composing)this.composing={contextBase:e.updateRangeStart,editorBase:from,drifted:false};let change={from,to,insert:Text.of(e.text.split(\"\\n\"))};if(change.from==this.from&&anchor<this.from)change.from=anchor;else if(change.to==this.to&&anchor>this.to)change.to=anchor;if(change.from==change.to&&!change.insert.length){let newSel=EditorSelection.single(this.toEditorPos(e.selectionStart),this.toEditorPos(e.selectionEnd));if(!newSel.main.eq(main))view.dispatch({selection:newSel,userEvent:\"select\"});return;}if((browser.mac||browser.android)&&change.from==head-1&&/^\\. ?$/.test(e.text)&&view.contentDOM.getAttribute(\"autocorrect\")==\"off\")change={from,to,insert:Text.of([e.text.replace(\".\",\" \")])};this.pendingContextChange=change;if(!view.state.readOnly){let newLen=this.to-this.from+(change.to-change.from+change.insert.length);applyDOMChangeInner(view,change,EditorSelection.single(this.toEditorPos(e.selectionStart,newLen),this.toEditorPos(e.selectionEnd,newLen)));}if(this.pendingContextChange){this.revertPending(view.state);this.setSelection(view.state);}};this.handlers.characterboundsupdate=e=>{let rects=[],prev=null;for(let i=this.toEditorPos(e.rangeStart),end=this.toEditorPos(e.rangeEnd);i<end;i++){let rect=view.coordsForChar(i);prev=rect&&new DOMRect(rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top)||prev||new DOMRect;rects.push(prev);}context.updateCharacterBounds(e.rangeStart,rects);};this.handlers.textformatupdate=e=>{let deco=[];for(let format of e.getTextFormats()){let lineStyle=format.underlineStyle,thickness=format.underlineThickness;if(lineStyle!=\"None\"&&thickness!=\"None\"){let from=this.toEditorPos(format.rangeStart),to=this.toEditorPos(format.rangeEnd);if(from<to){let style=`text-decoration: underline ${lineStyle==\"Dashed\"?\"dashed \":lineStyle==\"Squiggle\"?\"wavy \":\"\"}${thickness==\"Thin\"?1:2}px`;deco.push(Decoration.mark({attributes:{style}}).range(from,to));}}}view.dispatch({effects:setEditContextFormatting.of(Decoration.set(deco))});};this.handlers.compositionstart=()=>{if(view.inputState.composing<0){view.inputState.composing=0;view.inputState.compositionFirstChange=true;}};this.handlers.compositionend=()=>{view.inputState.composing=-1;view.inputState.compositionFirstChange=null;if(this.composing){let{drifted}=this.composing;this.composing=null;if(drifted)this.reset(view.state);}};for(let event in this.handlers)context.addEventListener(event,this.handlers[event]);this.measureReq={read:view2=>{this.editContext.updateControlBounds(view2.contentDOM.getBoundingClientRect());let sel=getSelection(view2.root);if(sel&&sel.rangeCount)this.editContext.updateSelectionBounds(sel.getRangeAt(0).getBoundingClientRect());}};}};var EditorView=class _EditorView{/**\n  The current editor state.\n  */get state(){return this.viewState.state;}/**\n  To be able to display large documents without consuming too much\n  memory or overloading the browser, CodeMirror only draws the\n  code that is visible (plus a margin around it) to the DOM. This\n  property tells you the extent of the current drawn viewport, in\n  document positions.\n  */get viewport(){return this.viewState.viewport;}/**\n  When there are, for example, large collapsed ranges in the\n  viewport, its size can be a lot bigger than the actual visible\n  content. Thus, if you are doing something like styling the\n  content in the viewport, it is preferable to only do so for\n  these ranges, which are the subset of the viewport that is\n  actually drawn.\n  */get visibleRanges(){return this.viewState.visibleRanges;}/**\n  Returns false when the editor is entirely scrolled out of view\n  or otherwise hidden.\n  */get inView(){return this.viewState.inView;}/**\n  Indicates whether the user is currently composing text via\n  [IME](https://en.wikipedia.org/wiki/Input_method), and at least\n  one change has been made in the current composition.\n  */get composing(){return this.inputState.composing>0;}/**\n  Indicates whether the user is currently in composing state. Note\n  that on some platforms, like Android, this will be the case a\n  lot, since just putting the cursor on a word starts a\n  composition there.\n  */get compositionStarted(){return this.inputState.composing>=0;}/**\n  The document or shadow root that the view lives in.\n  */get root(){return this._root;}/**\n  @internal\n  */get win(){return this.dom.ownerDocument.defaultView||window;}dispatch(...input){let trs=input.length==1&&input[0]instanceof Transaction?input:input.length==1&&Array.isArray(input[0])?input[0]:[this.state.update(...input)];this.dispatchTransactions(trs,this);}/**\n  Update the view for the given array of transactions. This will\n  update the visible document and selection to match the state\n  produced by the transactions, and notify view plugins of the\n  change. You should usually call\n  [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead, which uses this\n  as a primitive.\n  */update(transactions){if(this.updateState!=0)throw new Error(\"Calls to EditorView.update are not allowed while an update is in progress\");let redrawn=false,attrsChanged=false,update;let state=this.state;for(let tr of transactions){if(tr.startState!=state)throw new RangeError(\"Trying to update state with a transaction that doesn't start from the previous state.\");state=tr.state;}if(this.destroyed){this.viewState.state=state;return;}let focus=this.hasFocus,focusFlag=0,dispatchFocus=null;if(transactions.some(tr=>tr.annotation(isFocusChange))){this.inputState.notifiedFocused=focus;focusFlag=1;}else if(focus!=this.inputState.notifiedFocused){this.inputState.notifiedFocused=focus;dispatchFocus=focusChangeTransaction(state,focus);if(!dispatchFocus)focusFlag=1;}let pendingKey=this.observer.delayedAndroidKey,domChange=null;if(pendingKey){this.observer.clearDelayedAndroidKey();domChange=this.observer.readChange();if(domChange&&!this.state.doc.eq(state.doc)||!this.state.selection.eq(state.selection))domChange=null;}else{this.observer.clear();}if(state.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(state);update=ViewUpdate.create(this,state,transactions);update.flags|=focusFlag;let scrollTarget=this.viewState.scrollTarget;try{this.updateState=2;for(let tr of transactions){if(scrollTarget)scrollTarget=scrollTarget.map(tr.changes);if(tr.scrollIntoView){let{main}=tr.state.selection;scrollTarget=new ScrollTarget(main.empty?main:EditorSelection.cursor(main.head,main.head>main.anchor?-1:1));}for(let e of tr.effects)if(e.is(scrollIntoView))scrollTarget=e.value.clip(this.state);}this.viewState.update(update,scrollTarget);this.bidiCache=CachedOrder.update(this.bidiCache,update.changes);if(!update.empty){this.updatePlugins(update);this.inputState.update(update);}redrawn=this.docView.update(update);if(this.state.facet(styleModule)!=this.styleModules)this.mountStyles();attrsChanged=this.updateAttrs();this.showAnnouncements(transactions);this.docView.updateSelection(redrawn,transactions.some(tr=>tr.isUserEvent(\"select.pointer\")));}finally{this.updateState=0;}if(update.startState.facet(theme)!=update.state.facet(theme))this.viewState.mustMeasureContent=true;if(redrawn||attrsChanged||scrollTarget||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)this.requestMeasure();if(redrawn)this.docViewUpdate();if(!update.empty)for(let listener of this.state.facet(updateListener)){try{listener(update);}catch(e){logException(this.state,e,\"update listener\");}}if(dispatchFocus||domChange)Promise.resolve().then(()=>{if(dispatchFocus&&this.state==dispatchFocus.startState)this.dispatch(dispatchFocus);if(domChange){if(!applyDOMChange(this,domChange)&&pendingKey.force)dispatchKey(this.contentDOM,pendingKey.key,pendingKey.keyCode);}});}/**\n  Reset the view to the given state. (This will cause the entire\n  document to be redrawn and all view plugins to be reinitialized,\n  so you should probably only use it when the new state isn't\n  derived from the old state. Otherwise, use\n  [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead.)\n  */setState(newState){if(this.updateState!=0)throw new Error(\"Calls to EditorView.setState are not allowed while an update is in progress\");if(this.destroyed){this.viewState.state=newState;return;}this.updateState=2;let hadFocus=this.hasFocus;try{for(let plugin2 of this.plugins)plugin2.destroy(this);this.viewState=new ViewState(newState);this.plugins=newState.facet(viewPlugin).map(spec=>new PluginInstance(spec));this.pluginMap.clear();for(let plugin2 of this.plugins)plugin2.update(this);this.docView.destroy();this.docView=new DocView(this);this.inputState.ensureHandlers(this.plugins);this.mountStyles();this.updateAttrs();this.bidiCache=[];}finally{this.updateState=0;}if(hadFocus)this.focus();this.requestMeasure();}updatePlugins(update){let prevSpecs=update.startState.facet(viewPlugin),specs=update.state.facet(viewPlugin);if(prevSpecs!=specs){let newPlugins=[];for(let spec of specs){let found=prevSpecs.indexOf(spec);if(found<0){newPlugins.push(new PluginInstance(spec));}else{let plugin2=this.plugins[found];plugin2.mustUpdate=update;newPlugins.push(plugin2);}}for(let plugin2 of this.plugins)if(plugin2.mustUpdate!=update)plugin2.destroy(this);this.plugins=newPlugins;this.pluginMap.clear();}else{for(let p of this.plugins)p.mustUpdate=update;}for(let i=0;i<this.plugins.length;i++)this.plugins[i].update(this);if(prevSpecs!=specs)this.inputState.ensureHandlers(this.plugins);}docViewUpdate(){for(let plugin2 of this.plugins){let val=plugin2.value;if(val&&val.docViewUpdate){try{val.docViewUpdate(this);}catch(e){logException(this.state,e,\"doc view update listener\");}}}}/**\n  @internal\n  */measure(flush=true){if(this.destroyed)return;if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);if(this.observer.delayedAndroidKey){this.measureScheduled=-1;this.requestMeasure();return;}this.measureScheduled=0;if(flush)this.observer.forceFlush();let updated=null;let sDOM=this.scrollDOM,scrollTop=sDOM.scrollTop*this.scaleY;let{scrollAnchorPos,scrollAnchorHeight}=this.viewState;if(Math.abs(scrollTop-this.viewState.scrollTop)>1)scrollAnchorHeight=-1;this.viewState.scrollAnchorHeight=-1;try{for(let i=0;;i++){if(scrollAnchorHeight<0){if(isScrolledToBottom(sDOM)){scrollAnchorPos=-1;scrollAnchorHeight=this.viewState.heightMap.height;}else{let block=this.viewState.scrollAnchorAt(scrollTop);scrollAnchorPos=block.from;scrollAnchorHeight=block.top;}}this.updateState=1;let changed=this.viewState.measure(this);if(!changed&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(i>5){console.warn(this.measureRequests.length?\"Measure loop restarted more than 5 times\":\"Viewport failed to stabilize\");break;}let measuring=[];if(!(changed&4))[this.measureRequests,measuring]=[measuring,this.measureRequests];let measured=measuring.map(m=>{try{return m.read(this);}catch(e){logException(this.state,e);return BadMeasure;}});let update=ViewUpdate.create(this,this.state,[]),redrawn=false;update.flags|=changed;if(!updated)updated=update;else updated.flags|=changed;this.updateState=2;if(!update.empty){this.updatePlugins(update);this.inputState.update(update);this.updateAttrs();redrawn=this.docView.update(update);if(redrawn)this.docViewUpdate();}for(let i2=0;i2<measuring.length;i2++)if(measured[i2]!=BadMeasure){try{let m=measuring[i2];if(m.write)m.write(measured[i2],this);}catch(e){logException(this.state,e);}}if(redrawn)this.docView.updateSelection(true);if(!update.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget);this.viewState.scrollTarget=null;scrollAnchorHeight=-1;continue;}else{let newAnchorHeight=scrollAnchorPos<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(scrollAnchorPos).top;let diff=newAnchorHeight-scrollAnchorHeight;if(diff>1||diff<-1){scrollTop=scrollTop+diff;sDOM.scrollTop=scrollTop/this.scaleY;scrollAnchorHeight=-1;continue;}}}break;}}}finally{this.updateState=0;this.measureScheduled=-1;}if(updated&&!updated.empty)for(let listener of this.state.facet(updateListener))listener(updated);}/**\n  Get the CSS classes for the currently active editor themes.\n  */get themeClasses(){return baseThemeID+\" \"+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+\" \"+this.state.facet(theme);}updateAttrs(){let editorAttrs=attrsFromFacet(this,editorAttributes,{class:\"cm-editor\"+(this.hasFocus?\" cm-focused \":\" \")+this.themeClasses});let contentAttrs={spellcheck:\"false\",autocorrect:\"off\",autocapitalize:\"off\",writingsuggestions:\"false\",translate:\"no\",contenteditable:!this.state.facet(editable)?\"false\":\"true\",class:\"cm-content\",style:`${browser.tabSize}: ${this.state.tabSize}`,role:\"textbox\",\"aria-multiline\":\"true\"};if(this.state.readOnly)contentAttrs[\"aria-readonly\"]=\"true\";attrsFromFacet(this,contentAttributes,contentAttrs);let changed=this.observer.ignore(()=>{let changedContent=updateAttrs(this.contentDOM,this.contentAttrs,contentAttrs);let changedEditor=updateAttrs(this.dom,this.editorAttrs,editorAttrs);return changedContent||changedEditor;});this.editorAttrs=editorAttrs;this.contentAttrs=contentAttrs;return changed;}showAnnouncements(trs){let first=true;for(let tr of trs)for(let effect of tr.effects)if(effect.is(_EditorView.announce)){if(first)this.announceDOM.textContent=\"\";first=false;let div=this.announceDOM.appendChild(document.createElement(\"div\"));div.textContent=effect.value;}}mountStyles(){this.styleModules=this.state.facet(styleModule);let nonce=this.state.facet(_EditorView.cspNonce);StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1).reverse(),nonce?{nonce}:void 0);}readMeasured(){if(this.updateState==2)throw new Error(\"Reading the editor layout isn't allowed during an update\");if(this.updateState==0&&this.measureScheduled>-1)this.measure(false);}/**\n  Schedule a layout measurement, optionally providing callbacks to\n  do custom DOM measuring followed by a DOM write phase. Using\n  this is preferable reading DOM layout directly from, for\n  example, an event handler, because it'll make sure measuring and\n  drawing done by other components is synchronized, avoiding\n  unnecessary DOM layout computations.\n  */requestMeasure(request){if(this.measureScheduled<0)this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure());if(request){if(this.measureRequests.indexOf(request)>-1)return;if(request.key!=null)for(let i=0;i<this.measureRequests.length;i++){if(this.measureRequests[i].key===request.key){this.measureRequests[i]=request;return;}}this.measureRequests.push(request);}}/**\n  Get the value of a specific plugin, if present. Note that\n  plugins that crash can be dropped from a view, so even when you\n  know you registered a given plugin, it is recommended to check\n  the return value of this method.\n  */plugin(plugin2){let known=this.pluginMap.get(plugin2);if(known===void 0||known&&known.spec!=plugin2)this.pluginMap.set(plugin2,known=this.plugins.find(p=>p.spec==plugin2)||null);return known&&known.update(this).value;}/**\n  The top position of the document, in screen coordinates. This\n  may be negative when the editor is scrolled down. Points\n  directly to the top of the first line, not above the padding.\n  */get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop;}/**\n  Reports the padding above and below the document.\n  */get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom};}/**\n  If the editor is transformed with CSS, this provides the scale\n  along the X axis. Otherwise, it will just be 1. Note that\n  transforms other than translation and scaling are not supported.\n  */get scaleX(){return this.viewState.scaleX;}/**\n  Provide the CSS transformed scale along the Y axis.\n  */get scaleY(){return this.viewState.scaleY;}/**\n  Find the text line or block widget at the given vertical\n  position (which is interpreted as relative to the [top of the\n  document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop)).\n  */elementAtHeight(height){this.readMeasured();return this.viewState.elementAtHeight(height);}/**\n  Find the line block (see\n  [`lineBlockAt`](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt) at the given\n  height, again interpreted relative to the [top of the\n  document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop).\n  */lineBlockAtHeight(height){this.readMeasured();return this.viewState.lineBlockAtHeight(height);}/**\n  Get the extent and vertical position of all [line\n  blocks](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt) in the viewport. Positions\n  are relative to the [top of the\n  document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop);\n  */get viewportLineBlocks(){return this.viewState.viewportLines;}/**\n  Find the line block around the given document position. A line\n  block is a range delimited on both sides by either a\n  non-[hidden](https://codemirror.net/6/docs/ref/#view.Decoration^replace) line break, or the\n  start/end of the document. It will usually just hold a line of\n  text, but may be broken into multiple textblocks by block\n  widgets.\n  */lineBlockAt(pos){return this.viewState.lineBlockAt(pos);}/**\n  The editor's total content height.\n  */get contentHeight(){return this.viewState.contentHeight;}/**\n  Move a cursor position by [grapheme\n  cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak). `forward` determines whether\n  the motion is away from the line start, or towards it. In\n  bidirectional text, the line is traversed in visual order, using\n  the editor's [text direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection).\n  When the start position was the last one on the line, the\n  returned position will be across the line break. If there is no\n  further line, the original position is returned.\n  \n  By default, this method moves over a single cluster. The\n  optional `by` argument can be used to move across more. It will\n  be called with the first cluster as argument, and should return\n  a predicate that determines, for each subsequent cluster,\n  whether it should also be moved over.\n  */moveByChar(start,forward,by){return skipAtoms(this,start,moveByChar(this,start,forward,by));}/**\n  Move a cursor position across the next group of either\n  [letters](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) or non-letter\n  non-whitespace characters.\n  */moveByGroup(start,forward){return skipAtoms(this,start,moveByChar(this,start,forward,initial=>byGroup(this,start.head,initial)));}/**\n  Get the cursor position visually at the start or end of a line.\n  Note that this may differ from the _logical_ position at its\n  start or end (which is simply at `line.from`/`line.to`) if text\n  at the start or end goes against the line's base text direction.\n  */visualLineSide(line,end){let order=this.bidiSpans(line),dir=this.textDirectionAt(line.from);let span=order[end?order.length-1:0];return EditorSelection.cursor(span.side(end,dir)+line.from,span.forward(!end,dir)?1:-1);}/**\n  Move to the next line boundary in the given direction. If\n  `includeWrap` is true, line wrapping is on, and there is a\n  further wrap point on the current line, the wrap point will be\n  returned. Otherwise this function will return the start or end\n  of the line.\n  */moveToLineBoundary(start,forward,includeWrap=true){return moveToLineBoundary(this,start,forward,includeWrap);}/**\n  Move a cursor position vertically. When `distance` isn't given,\n  it defaults to moving to the next line (including wrapped\n  lines). Otherwise, `distance` should provide a positive distance\n  in pixels.\n  \n  When `start` has a\n  [`goalColumn`](https://codemirror.net/6/docs/ref/#state.SelectionRange.goalColumn), the vertical\n  motion will use that as a target horizontal position. Otherwise,\n  the cursor's own horizontal position is used. The returned\n  cursor will have its goal column set to whichever column was\n  used.\n  */moveVertically(start,forward,distance){return skipAtoms(this,start,moveVertically(this,start,forward,distance));}/**\n  Find the DOM parent node and offset (child offset if `node` is\n  an element, character offset when it is a text node) at the\n  given document position.\n  \n  Note that for positions that aren't currently in\n  `visibleRanges`, the resulting DOM position isn't necessarily\n  meaningful (it may just point before or after a placeholder\n  element).\n  */domAtPos(pos){return this.docView.domAtPos(pos);}/**\n  Find the document position at the given DOM node. Can be useful\n  for associating positions with DOM events. Will raise an error\n  when `node` isn't part of the editor content.\n  */posAtDOM(node,offset=0){return this.docView.posFromDOM(node,offset);}posAtCoords(coords,precise=true){this.readMeasured();return posAtCoords(this,coords,precise);}/**\n  Get the screen coordinates at the given document position.\n  `side` determines whether the coordinates are based on the\n  element before (-1) or after (1) the position (if no element is\n  available on the given side, the method will transparently use\n  another strategy to get reasonable coordinates).\n  */coordsAtPos(pos,side=1){this.readMeasured();let rect=this.docView.coordsAt(pos,side);if(!rect||rect.left==rect.right)return rect;let line=this.state.doc.lineAt(pos),order=this.bidiSpans(line);let span=order[BidiSpan.find(order,pos-line.from,-1,side)];return flattenRect(rect,span.dir==Direction.LTR==side>0);}/**\n  Return the rectangle around a given character. If `pos` does not\n  point in front of a character that is in the viewport and\n  rendered (i.e. not replaced, not a line break), this will return\n  null. For space characters that are a line wrap point, this will\n  return the position before the line break.\n  */coordsForChar(pos){this.readMeasured();return this.docView.coordsForChar(pos);}/**\n  The default width of a character in the editor. May not\n  accurately reflect the width of all characters (given variable\n  width fonts or styling of invididual ranges).\n  */get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth;}/**\n  The default height of a line in the editor. May not be accurate\n  for all lines.\n  */get defaultLineHeight(){return this.viewState.heightOracle.lineHeight;}/**\n  The text direction\n  ([`direction`](https://developer.mozilla.org/en-US/docs/Web/CSS/direction)\n  CSS property) of the editor's content element.\n  */get textDirection(){return this.viewState.defaultTextDirection;}/**\n  Find the text direction of the block at the given position, as\n  assigned by CSS. If\n  [`perLineTextDirection`](https://codemirror.net/6/docs/ref/#view.EditorView^perLineTextDirection)\n  isn't enabled, or the given position is outside of the viewport,\n  this will always return the same as\n  [`textDirection`](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection). Note that\n  this may trigger a DOM layout.\n  */textDirectionAt(pos){let perLine=this.state.facet(perLineTextDirection);if(!perLine||pos<this.viewport.from||pos>this.viewport.to)return this.textDirection;this.readMeasured();return this.docView.textDirectionAt(pos);}/**\n  Whether this editor [wraps lines](https://codemirror.net/6/docs/ref/#view.EditorView.lineWrapping)\n  (as determined by the\n  [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space)\n  CSS property of its content element).\n  */get lineWrapping(){return this.viewState.heightOracle.lineWrapping;}/**\n  Returns the bidirectional text structure of the given line\n  (which should be in the current document) as an array of span\n  objects. The order of these spans matches the [text\n  direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection)—if that is\n  left-to-right, the leftmost spans come first, otherwise the\n  rightmost spans come first.\n  */bidiSpans(line){if(line.length>MaxBidiLine)return trivialOrder(line.length);let dir=this.textDirectionAt(line.from),isolates;for(let entry of this.bidiCache){if(entry.from==line.from&&entry.dir==dir&&(entry.fresh||isolatesEq(entry.isolates,isolates=getIsolatedRanges(this,line))))return entry.order;}if(!isolates)isolates=getIsolatedRanges(this,line);let order=computeOrder(line.text,dir,isolates);this.bidiCache.push(new CachedOrder(line.from,line.to,dir,isolates,true,order));return order;}/**\n  Check whether the editor has focus.\n  */get hasFocus(){var _a;return(this.dom.ownerDocument.hasFocus()||browser.safari&&((_a=this.inputState)===null||_a===void 0?void 0:_a.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM;}/**\n  Put focus on the editor.\n  */focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM);this.docView.updateSelection();});}/**\n  Update the [root](https://codemirror.net/6/docs/ref/##view.EditorViewConfig.root) in which the editor lives. This is only\n  necessary when moving the editor's existing DOM to a new window or shadow root.\n  */setRoot(root){if(this._root!=root){this._root=root;this.observer.setWindow((root.nodeType==9?root:root.ownerDocument).defaultView||window);this.mountStyles();}}/**\n  Clean up this editor view, removing its element from the\n  document, unregistering event handlers, and notifying\n  plugins. The view instance can no longer be used after\n  calling this.\n  */destroy(){if(this.root.activeElement==this.contentDOM)this.contentDOM.blur();for(let plugin2 of this.plugins)plugin2.destroy(this);this.plugins=[];this.inputState.destroy();this.docView.destroy();this.dom.remove();this.observer.destroy();if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.destroyed=true;}/**\n  Returns an effect that can be\n  [added](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) to a transaction to\n  cause it to scroll the given position or range into view.\n  */static scrollIntoView(pos,options={}){return scrollIntoView.of(new ScrollTarget(typeof pos==\"number\"?EditorSelection.cursor(pos):pos,options.y,options.x,options.yMargin,options.xMargin));}/**\n  Return an effect that resets the editor to its current (at the\n  time this method was called) scroll position. Note that this\n  only affects the editor's own scrollable element, not parents.\n  See also\n  [`EditorViewConfig.scrollTo`](https://codemirror.net/6/docs/ref/#view.EditorViewConfig.scrollTo).\n  \n  The effect should be used with a document identical to the one\n  it was created for. Failing to do so is not an error, but may\n  not scroll to the expected position. You can\n  [map](https://codemirror.net/6/docs/ref/#state.StateEffect.map) the effect to account for changes.\n  */scrollSnapshot(){let{scrollTop,scrollLeft}=this.scrollDOM;let ref=this.viewState.scrollAnchorAt(scrollTop);return scrollIntoView.of(new ScrollTarget(EditorSelection.cursor(ref.from),\"start\",\"start\",ref.top-scrollTop,scrollLeft,true));}/**\n  Enable or disable tab-focus mode, which disables key bindings\n  for Tab and Shift-Tab, letting the browser's default\n  focus-changing behavior go through instead. This is useful to\n  prevent trapping keyboard users in your editor.\n  \n  Without argument, this toggles the mode. With a boolean, it\n  enables (true) or disables it (false). Given a number, it\n  temporarily enables the mode until that number of milliseconds\n  have passed or another non-Tab key is pressed.\n  */setTabFocusMode(to){if(to==null)this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1;else if(typeof to==\"boolean\")this.inputState.tabFocusMode=to?0:-1;else if(this.inputState.tabFocusMode!=0)this.inputState.tabFocusMode=Date.now()+to;}/**\n  Returns an extension that can be used to add DOM event handlers.\n  The value should be an object mapping event names to handler\n  functions. For any given event, such functions are ordered by\n  extension precedence, and the first handler to return true will\n  be assumed to have handled that event, and no other handlers or\n  built-in behavior will be activated for it. These are registered\n  on the [content element](https://codemirror.net/6/docs/ref/#view.EditorView.contentDOM), except\n  for `scroll` handlers, which will be called any time the\n  editor's [scroll element](https://codemirror.net/6/docs/ref/#view.EditorView.scrollDOM) or one of\n  its parent nodes is scrolled.\n  */static domEventHandlers(handlers2){return ViewPlugin.define(()=>({}),{eventHandlers:handlers2});}/**\n  Create an extension that registers DOM event observers. Contrary\n  to event [handlers](https://codemirror.net/6/docs/ref/#view.EditorView^domEventHandlers),\n  observers can't be prevented from running by a higher-precedence\n  handler returning true. They also don't prevent other handlers\n  and observers from running when they return true, and should not\n  call `preventDefault`.\n  */static domEventObservers(observers2){return ViewPlugin.define(()=>({}),{eventObservers:observers2});}/**\n  Create a theme extension. The first argument can be a\n  [`style-mod`](https://github.com/marijnh/style-mod#documentation)\n  style spec providing the styles for the theme. These will be\n  prefixed with a generated class for the style.\n  \n  Because the selectors will be prefixed with a scope class, rule\n  that directly match the editor's [wrapper\n  element](https://codemirror.net/6/docs/ref/#view.EditorView.dom)—to which the scope class will be\n  added—need to be explicitly differentiated by adding an `&` to\n  the selector for that element—for example\n  `&.cm-focused`.\n  \n  When `dark` is set to true, the theme will be marked as dark,\n  which will cause the `&dark` rules from [base\n  themes](https://codemirror.net/6/docs/ref/#view.EditorView^baseTheme) to be used (as opposed to\n  `&light` when a light theme is active).\n  */static theme(spec,options){let prefix=StyleModule.newName();let result=[theme.of(prefix),styleModule.of(buildTheme(`.${prefix}`,spec))];if(options&&options.dark)result.push(darkTheme.of(true));return result;}/**\n  Create an extension that adds styles to the base theme. Like\n  with [`theme`](https://codemirror.net/6/docs/ref/#view.EditorView^theme), use `&` to indicate the\n  place of the editor wrapper element when directly targeting\n  that. You can also use `&dark` or `&light` instead to only\n  target editors with a dark or light theme.\n  */static baseTheme(spec){return Prec.lowest(styleModule.of(buildTheme(\".\"+baseThemeID,spec,lightDarkIDs)));}/**\n  Retrieve an editor view instance from the view's DOM\n  representation.\n  */static findFromDOM(dom){var _a;let content=dom.querySelector(\".cm-content\");let cView=content&&ContentView.get(content)||ContentView.get(dom);return((_a=cView===null||cView===void 0?void 0:cView.rootView)===null||_a===void 0?void 0:_a.view)||null;}/**\n  Construct a new view. You'll want to either provide a `parent`\n  option, or put `view.dom` into your document after creating a\n  view, so that the user can see the editor.\n  */constructor(config={}){var _a;this.plugins=[];this.pluginMap=/* @__PURE__ */new Map;this.editorAttrs={};this.contentAttrs={};this.bidiCache=[];this.destroyed=false;this.updateState=2;this.measureScheduled=-1;this.measureRequests=[];this.contentDOM=document.createElement(\"div\");this.scrollDOM=document.createElement(\"div\");this.scrollDOM.tabIndex=-1;this.scrollDOM.className=\"cm-scroller\";this.scrollDOM.appendChild(this.contentDOM);this.announceDOM=document.createElement(\"div\");this.announceDOM.className=\"cm-announced\";this.announceDOM.setAttribute(\"aria-live\",\"polite\");this.dom=document.createElement(\"div\");this.dom.appendChild(this.announceDOM);this.dom.appendChild(this.scrollDOM);if(config.parent)config.parent.appendChild(this.dom);let{dispatch}=config;this.dispatchTransactions=config.dispatchTransactions||dispatch&&(trs=>trs.forEach(tr=>dispatch(tr,this)))||(trs=>this.update(trs));this.dispatch=this.dispatch.bind(this);this._root=config.root||getRoot(config.parent)||document;this.viewState=new ViewState(config.state||EditorState.create(config));if(config.scrollTo&&config.scrollTo.is(scrollIntoView))this.viewState.scrollTarget=config.scrollTo.value.clip(this.viewState.state);this.plugins=this.state.facet(viewPlugin).map(spec=>new PluginInstance(spec));for(let plugin2 of this.plugins)plugin2.update(this);this.observer=new DOMObserver(this);this.inputState=new InputState(this);this.inputState.ensureHandlers(this.plugins);this.docView=new DocView(this);this.mountStyles();this.updateAttrs();this.updateState=0;this.requestMeasure();if((_a=document.fonts)===null||_a===void 0?void 0:_a.ready)document.fonts.ready.then(()=>this.requestMeasure());}};EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler;EditorView.clipboardInputFilter=clipboardInputFilter;EditorView.clipboardOutputFilter=clipboardOutputFilter;EditorView.scrollHandler=scrollHandler;EditorView.focusChangeEffect=focusChangeEffect;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.outerDecorations=outerDecorations;EditorView.atomicRanges=atomicRanges;EditorView.bidiIsolatedRanges=bidiIsolatedRanges;EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.cspNonce=/* @__PURE__ */Facet.define({combine:values=>values.length?values[0]:\"\"});EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=/* @__PURE__ */EditorView.contentAttributes.of({class:\"cm-lineWrapping\"});EditorView.announce=/* @__PURE__ */StateEffect.define();var MaxBidiLine=4096;var BadMeasure={};var CachedOrder=class _CachedOrder{static update(cache,changes){if(changes.empty&&!cache.some(c=>c.fresh))return cache;let result=[],lastDir=cache.length?cache[cache.length-1].dir:Direction.LTR;for(let i=Math.max(0,cache.length-10);i<cache.length;i++){let entry=cache[i];if(entry.dir==lastDir&&!changes.touchesRange(entry.from,entry.to))result.push(new _CachedOrder(changes.mapPos(entry.from,1),changes.mapPos(entry.to,-1),entry.dir,entry.isolates,false,entry.order));}return result;}constructor(from,to,dir,isolates,fresh,order){this.from=from;this.to=to;this.dir=dir;this.isolates=isolates;this.fresh=fresh;this.order=order;}};function attrsFromFacet(view,facet,base2){for(let sources=view.state.facet(facet),i=sources.length-1;i>=0;i--){let source=sources[i],value=typeof source==\"function\"?source(view):source;if(value)combineAttrs(value,base2);}return base2;}var currentPlatform=browser.mac?\"mac\":browser.windows?\"win\":browser.linux?\"linux\":\"key\";function normalizeKeyName(name,platform){const parts=name.split(/-(?!$)/);let result=parts[parts.length-1];if(result==\"Space\")result=\" \";let alt,ctrl,shift2,meta;for(let i=0;i<parts.length-1;++i){const mod=parts[i];if(/^(cmd|meta|m)$/i.test(mod))meta=true;else if(/^a(lt)?$/i.test(mod))alt=true;else if(/^(c|ctrl|control)$/i.test(mod))ctrl=true;else if(/^s(hift)?$/i.test(mod))shift2=true;else if(/^mod$/i.test(mod)){if(platform==\"mac\")meta=true;else ctrl=true;}else throw new Error(\"Unrecognized modifier name: \"+mod);}if(alt)result=\"Alt-\"+result;if(ctrl)result=\"Ctrl-\"+result;if(meta)result=\"Meta-\"+result;if(shift2)result=\"Shift-\"+result;return result;}function modifiers(name,event,shift2){if(event.altKey)name=\"Alt-\"+name;if(event.ctrlKey)name=\"Ctrl-\"+name;if(event.metaKey)name=\"Meta-\"+name;if(shift2!==false&&event.shiftKey)name=\"Shift-\"+name;return name;}var handleKeyEvents=/* @__PURE__ */Prec.default(/* @__PURE__ */EditorView.domEventHandlers({keydown(event,view){return runHandlers(getKeymap(view.state),event,view,\"editor\");}}));var keymap=/* @__PURE__ */Facet.define({enables:handleKeyEvents});var Keymaps=/* @__PURE__ */new WeakMap;function getKeymap(state){let bindings=state.facet(keymap);let map=Keymaps.get(bindings);if(!map)Keymaps.set(bindings,map=buildKeymap(bindings.reduce((a,b)=>a.concat(b),[])));return map;}function runScopeHandlers(view,event,scope){return runHandlers(getKeymap(view.state),event,view,scope);}var storedPrefix=null;var PrefixTimeout=4e3;function buildKeymap(bindings,platform=currentPlatform){let bound=/* @__PURE__ */Object.create(null);let isPrefix=/* @__PURE__ */Object.create(null);let checkPrefix=(name,is)=>{let current=isPrefix[name];if(current==null)isPrefix[name]=is;else if(current!=is)throw new Error(\"Key binding \"+name+\" is used both as a regular binding and as a multi-stroke prefix\");};let add=(scope,key,command,preventDefault,stopPropagation)=>{var _a,_b;let scopeObj=bound[scope]||(bound[scope]=/* @__PURE__ */Object.create(null));let parts=key.split(/ (?!$)/).map(k=>normalizeKeyName(k,platform));for(let i=1;i<parts.length;i++){let prefix=parts.slice(0,i).join(\" \");checkPrefix(prefix,true);if(!scopeObj[prefix])scopeObj[prefix]={preventDefault:true,stopPropagation:false,run:[view=>{let ourObj=storedPrefix={view,prefix,scope};setTimeout(()=>{if(storedPrefix==ourObj)storedPrefix=null;},PrefixTimeout);return true;}]};}let full=parts.join(\" \");checkPrefix(full,false);let binding=scopeObj[full]||(scopeObj[full]={preventDefault:false,stopPropagation:false,run:((_b=(_a=scopeObj._any)===null||_a===void 0?void 0:_a.run)===null||_b===void 0?void 0:_b.slice())||[]});if(command)binding.run.push(command);if(preventDefault)binding.preventDefault=true;if(stopPropagation)binding.stopPropagation=true;};for(let b of bindings){let scopes=b.scope?b.scope.split(\" \"):[\"editor\"];if(b.any)for(let scope of scopes){let scopeObj=bound[scope]||(bound[scope]=/* @__PURE__ */Object.create(null));if(!scopeObj._any)scopeObj._any={preventDefault:false,stopPropagation:false,run:[]};let{any}=b;for(let key in scopeObj)scopeObj[key].run.push(view=>any(view,currentKeyEvent));}let name=b[platform]||b.key;if(!name)continue;for(let scope of scopes){add(scope,name,b.run,b.preventDefault,b.stopPropagation);if(b.shift)add(scope,\"Shift-\"+name,b.shift,b.preventDefault,b.stopPropagation);}}return bound;}var currentKeyEvent=null;function runHandlers(map,event,view,scope){currentKeyEvent=event;let name=keyName(event);let charCode=codePointAt(name,0),isChar=codePointSize(charCode)==name.length&&name!=\" \";let prefix=\"\",handled=false,prevented=false,stopPropagation=false;if(storedPrefix&&storedPrefix.view==view&&storedPrefix.scope==scope){prefix=storedPrefix.prefix+\" \";if(modifierCodes.indexOf(event.keyCode)<0){prevented=true;storedPrefix=null;}}let ran=/* @__PURE__ */new Set;let runFor=binding=>{if(binding){for(let cmd of binding.run)if(!ran.has(cmd)){ran.add(cmd);if(cmd(view)){if(binding.stopPropagation)stopPropagation=true;return true;}}if(binding.preventDefault){if(binding.stopPropagation)stopPropagation=true;prevented=true;}}return false;};let scopeObj=map[scope],baseName,shiftName;if(scopeObj){if(runFor(scopeObj[prefix+modifiers(name,event,!isChar)])){handled=true;}else if(isChar&&(event.altKey||event.metaKey||event.ctrlKey)&&// Ctrl-Alt may be used for AltGr on Windows\n!(browser.windows&&event.ctrlKey&&event.altKey)&&(baseName=base[event.keyCode])&&baseName!=name){if(runFor(scopeObj[prefix+modifiers(baseName,event,true)])){handled=true;}else if(event.shiftKey&&(shiftName=shift[event.keyCode])!=name&&shiftName!=baseName&&runFor(scopeObj[prefix+modifiers(shiftName,event,false)])){handled=true;}}else if(isChar&&event.shiftKey&&runFor(scopeObj[prefix+modifiers(name,event,true)])){handled=true;}if(!handled&&runFor(scopeObj._any))handled=true;}if(prevented)handled=true;if(handled&&stopPropagation)event.stopPropagation();currentKeyEvent=null;return handled;}var RectangleMarker=class _RectangleMarker{draw(){let elt=document.createElement(\"div\");elt.className=this.className;this.adjust(elt);return elt;}update(elt,prev){if(prev.className!=this.className)return false;this.adjust(elt);return true;}adjust(elt){elt.style.left=this.left+\"px\";elt.style.top=this.top+\"px\";if(this.width!=null)elt.style.width=this.width+\"px\";elt.style.height=this.height+\"px\";}eq(p){return this.left==p.left&&this.top==p.top&&this.width==p.width&&this.height==p.height&&this.className==p.className;}/**\n  Create a set of rectangles for the given selection range,\n  assigning them theclass`className`. Will create a single\n  rectangle for empty ranges, and a set of selection-style\n  rectangles covering the range's content (in a bidi-aware\n  way) for non-empty ones.\n  */static forRange(view,className,range){if(range.empty){let pos=view.coordsAtPos(range.head,range.assoc||1);if(!pos)return[];let base2=getBase(view);return[new _RectangleMarker(className,pos.left-base2.left,pos.top-base2.top,null,pos.bottom-pos.top)];}else{return rectanglesForRange(view,className,range);}}/**\n  Create a marker with the given class and dimensions. If `width`\n  is null, the DOM element will get no width style.\n  */constructor(className,left,top2,width,height){this.className=className;this.left=left;this.top=top2;this.width=width;this.height=height;}};function getBase(view){let rect=view.scrollDOM.getBoundingClientRect();let left=view.textDirection==Direction.LTR?rect.left:rect.right-view.scrollDOM.clientWidth*view.scaleX;return{left:left-view.scrollDOM.scrollLeft*view.scaleX,top:rect.top-view.scrollDOM.scrollTop*view.scaleY};}function wrappedLine(view,pos,side,inside2){let coords=view.coordsAtPos(pos,side*2);if(!coords)return inside2;let editorRect=view.dom.getBoundingClientRect();let y=(coords.top+coords.bottom)/2;let left=view.posAtCoords({x:editorRect.left+1,y});let right=view.posAtCoords({x:editorRect.right-1,y});if(left==null||right==null)return inside2;return{from:Math.max(inside2.from,Math.min(left,right)),to:Math.min(inside2.to,Math.max(left,right))};}function rectanglesForRange(view,className,range){if(range.to<=view.viewport.from||range.from>=view.viewport.to)return[];let from=Math.max(range.from,view.viewport.from),to=Math.min(range.to,view.viewport.to);let ltr=view.textDirection==Direction.LTR;let content=view.contentDOM,contentRect=content.getBoundingClientRect(),base2=getBase(view);let lineElt=content.querySelector(\".cm-line\"),lineStyle=lineElt&&window.getComputedStyle(lineElt);let leftSide=contentRect.left+(lineStyle?parseInt(lineStyle.paddingLeft)+Math.min(0,parseInt(lineStyle.textIndent)):0);let rightSide=contentRect.right-(lineStyle?parseInt(lineStyle.paddingRight):0);let startBlock=blockAt(view,from),endBlock=blockAt(view,to);let visualStart=startBlock.type==BlockType.Text?startBlock:null;let visualEnd=endBlock.type==BlockType.Text?endBlock:null;if(visualStart&&(view.lineWrapping||startBlock.widgetLineBreaks))visualStart=wrappedLine(view,from,1,visualStart);if(visualEnd&&(view.lineWrapping||endBlock.widgetLineBreaks))visualEnd=wrappedLine(view,to,-1,visualEnd);if(visualStart&&visualEnd&&visualStart.from==visualEnd.from&&visualStart.to==visualEnd.to){return pieces(drawForLine(range.from,range.to,visualStart));}else{let top2=visualStart?drawForLine(range.from,null,visualStart):drawForWidget(startBlock,false);let bottom=visualEnd?drawForLine(null,range.to,visualEnd):drawForWidget(endBlock,true);let between=[];if((visualStart||startBlock).to<(visualEnd||endBlock).from-(visualStart&&visualEnd?1:0)||startBlock.widgetLineBreaks>1&&top2.bottom+view.defaultLineHeight/2<bottom.top)between.push(piece(leftSide,top2.bottom,rightSide,bottom.top));else if(top2.bottom<bottom.top&&view.elementAtHeight((top2.bottom+bottom.top)/2).type==BlockType.Text)top2.bottom=bottom.top=(top2.bottom+bottom.top)/2;return pieces(top2).concat(between).concat(pieces(bottom));}function piece(left,top2,right,bottom){return new RectangleMarker(className,left-base2.left,top2-base2.top,right-left,bottom-top2);}function pieces({top:top2,bottom,horizontal}){let pieces2=[];for(let i=0;i<horizontal.length;i+=2)pieces2.push(piece(horizontal[i],top2,horizontal[i+1],bottom));return pieces2;}function drawForLine(from2,to2,line){let top2=1e9,bottom=-1e9,horizontal=[];function addSpan(from3,fromOpen,to3,toOpen,dir){let fromCoords=view.coordsAtPos(from3,from3==line.to?-2:2);let toCoords=view.coordsAtPos(to3,to3==line.from?2:-2);if(!fromCoords||!toCoords)return;top2=Math.min(fromCoords.top,toCoords.top,top2);bottom=Math.max(fromCoords.bottom,toCoords.bottom,bottom);if(dir==Direction.LTR)horizontal.push(ltr&&fromOpen?leftSide:fromCoords.left,ltr&&toOpen?rightSide:toCoords.right);else horizontal.push(!ltr&&toOpen?leftSide:toCoords.left,!ltr&&fromOpen?rightSide:fromCoords.right);}let start=from2!==null&&from2!==void 0?from2:line.from,end=to2!==null&&to2!==void 0?to2:line.to;for(let r of view.visibleRanges)if(r.to>start&&r.from<end){for(let pos=Math.max(r.from,start),endPos=Math.min(r.to,end);;){let docLine=view.state.doc.lineAt(pos);for(let span of view.bidiSpans(docLine)){let spanFrom=span.from+docLine.from,spanTo=span.to+docLine.from;if(spanFrom>=endPos)break;if(spanTo>pos)addSpan(Math.max(spanFrom,pos),from2==null&&spanFrom<=start,Math.min(spanTo,endPos),to2==null&&spanTo>=end,span.dir);}pos=docLine.to+1;if(pos>=endPos)break;}}if(horizontal.length==0)addSpan(start,from2==null,end,to2==null,view.textDirection);return{top:top2,bottom,horizontal};}function drawForWidget(block,top2){let y=contentRect.top+(top2?block.top:block.bottom);return{top:y,bottom:y,horizontal:[]};}}function sameMarker(a,b){return a.constructor==b.constructor&&a.eq(b);}var LayerView=class{update(update){if(update.startState.facet(layerOrder)!=update.state.facet(layerOrder))this.setOrder(update.state);if(this.layer.update(update,this.dom)||update.geometryChanged){this.scale();update.view.requestMeasure(this.measureReq);}}docViewUpdate(view){if(this.layer.updateOnDocViewUpdate!==false)view.requestMeasure(this.measureReq);}setOrder(state){let pos=0,order=state.facet(layerOrder);while(pos<order.length&&order[pos]!=this.layer)pos++;this.dom.style.zIndex=String((this.layer.above?150:-1)-pos);}measure(){return this.layer.markers(this.view);}scale(){let{scaleX,scaleY}=this.view;if(scaleX!=this.scaleX||scaleY!=this.scaleY){this.scaleX=scaleX;this.scaleY=scaleY;this.dom.style.transform=`scale(${1/scaleX}, ${1/scaleY})`;}}draw(markers){if(markers.length!=this.drawn.length||markers.some((p,i)=>!sameMarker(p,this.drawn[i]))){let old=this.dom.firstChild,oldI=0;for(let marker of markers){if(marker.update&&old&&marker.constructor&&this.drawn[oldI].constructor&&marker.update(old,this.drawn[oldI])){old=old.nextSibling;oldI++;}else{this.dom.insertBefore(marker.draw(),old);}}while(old){let next=old.nextSibling;old.remove();old=next;}this.drawn=markers;}}destroy(){if(this.layer.destroy)this.layer.destroy(this.dom,this.view);this.dom.remove();}constructor(view,layer2){this.view=view;this.layer=layer2;this.drawn=[];this.scaleX=1;this.scaleY=1;this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)};this.dom=view.scrollDOM.appendChild(document.createElement(\"div\"));this.dom.classList.add(\"cm-layer\");if(layer2.above)this.dom.classList.add(\"cm-layer-above\");if(layer2.class)this.dom.classList.add(layer2.class);this.scale();this.dom.setAttribute(\"aria-hidden\",\"true\");this.setOrder(view.state);view.requestMeasure(this.measureReq);if(layer2.mount)layer2.mount(this.dom,view);}};var layerOrder=/* @__PURE__ */Facet.define();function layer(config){return[ViewPlugin.define(v=>new LayerView(v,config)),layerOrder.of(config)];}var selectionConfig=/* @__PURE__ */Facet.define({combine(configs){return combineConfig(configs,{cursorBlinkRate:1200,drawRangeCursor:true},{cursorBlinkRate:(a,b)=>Math.min(a,b),drawRangeCursor:(a,b)=>a||b});}});function drawSelection(config={}){return[selectionConfig.of(config),cursorLayer,selectionLayer,hideNativeSelection,nativeSelectionHidden.of(true)];}function getDrawSelectionConfig(state){return state.facet(selectionConfig);}function configChanged(update){return update.startState.facet(selectionConfig)!=update.state.facet(selectionConfig);}var cursorLayer=/* @__PURE__ */layer({above:true,markers(view){let{state}=view,conf=state.facet(selectionConfig);let cursors=[];for(let r of state.selection.ranges){let prim=r==state.selection.main;if(r.empty||conf.drawRangeCursor){let className=prim?\"cm-cursor cm-cursor-primary\":\"cm-cursor cm-cursor-secondary\";let cursor=r.empty?r:EditorSelection.cursor(r.head,r.head>r.anchor?-1:1);for(let piece of RectangleMarker.forRange(view,className,cursor))cursors.push(piece);}}return cursors;},update(update,dom){if(update.transactions.some(tr=>tr.selection))dom.style.animationName=dom.style.animationName==\"cm-blink\"?\"cm-blink2\":\"cm-blink\";let confChange=configChanged(update);if(confChange)setBlinkRate(update.state,dom);return update.docChanged||update.selectionSet||confChange;},mount(dom,view){setBlinkRate(view.state,dom);},class:\"cm-cursorLayer\"});function setBlinkRate(state,dom){dom.style.animationDuration=state.facet(selectionConfig).cursorBlinkRate+\"ms\";}var selectionLayer=/* @__PURE__ */layer({above:false,markers(view){return view.state.selection.ranges.map(r=>r.empty?[]:RectangleMarker.forRange(view,\"cm-selectionBackground\",r)).reduce((a,b)=>a.concat(b));},update(update,dom){return update.docChanged||update.selectionSet||update.viewportChanged||configChanged(update);},class:\"cm-selectionLayer\"});var hideNativeSelection=/* @__PURE__ */Prec.highest(/* @__PURE__ */EditorView.theme({\".cm-line\":{\"& ::selection, &::selection\":{backgroundColor:\"transparent !important\"},caretColor:\"transparent !important\"},\".cm-content\":{caretColor:\"transparent !important\",\"& :focus\":{caretColor:\"initial !important\",\"&::selection, & ::selection\":{backgroundColor:\"Highlight !important\"}}}}));var setDropCursorPos=/* @__PURE__ */StateEffect.define({map(pos,mapping){return pos==null?null:mapping.mapPos(pos);}});var dropCursorPos=/* @__PURE__ */StateField.define({create(){return null;},update(pos,tr){if(pos!=null)pos=tr.changes.mapPos(pos);return tr.effects.reduce((pos2,e)=>e.is(setDropCursorPos)?e.value:pos2,pos);}});var drawDropCursor=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){var _a;let cursorPos=update.state.field(dropCursorPos);if(cursorPos==null){if(this.cursor!=null){(_a=this.cursor)===null||_a===void 0?void 0:_a.remove();this.cursor=null;}}else{if(!this.cursor){this.cursor=this.view.scrollDOM.appendChild(document.createElement(\"div\"));this.cursor.className=\"cm-dropCursor\";}if(update.startState.field(dropCursorPos)!=cursorPos||update.docChanged||update.geometryChanged)this.view.requestMeasure(this.measureReq);}}readPos(){let{view}=this;let pos=view.state.field(dropCursorPos);let rect=pos!=null&&view.coordsAtPos(pos);if(!rect)return null;let outer=view.scrollDOM.getBoundingClientRect();return{left:rect.left-outer.left+view.scrollDOM.scrollLeft*view.scaleX,top:rect.top-outer.top+view.scrollDOM.scrollTop*view.scaleY,height:rect.bottom-rect.top};}drawCursor(pos){if(this.cursor){let{scaleX,scaleY}=this.view;if(pos){this.cursor.style.left=pos.left/scaleX+\"px\";this.cursor.style.top=pos.top/scaleY+\"px\";this.cursor.style.height=pos.height/scaleY+\"px\";}else{this.cursor.style.left=\"-100000px\";}}}destroy(){if(this.cursor)this.cursor.remove();}setDropPos(pos){if(this.view.state.field(dropCursorPos)!=pos)this.view.dispatch({effects:setDropCursorPos.of(pos)});}constructor(view){this.view=view;this.cursor=null;this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)};}},{eventObservers:{dragover(event){this.setDropPos(this.view.posAtCoords({x:event.clientX,y:event.clientY}));},dragleave(event){if(event.target==this.view.contentDOM||!this.view.contentDOM.contains(event.relatedTarget))this.setDropPos(null);},dragend(){this.setDropPos(null);},drop(){this.setDropPos(null);}}});function dropCursor(){return[dropCursorPos,drawDropCursor];}function iterMatches(doc2,re,from,to,f){re.lastIndex=0;for(let cursor=doc2.iterRange(from,to),pos=from,m;!cursor.next().done;pos+=cursor.value.length){if(!cursor.lineBreak)while(m=re.exec(cursor.value))f(pos+m.index,m);}}function matchRanges(view,maxLength){let visible=view.visibleRanges;if(visible.length==1&&visible[0].from==view.viewport.from&&visible[0].to==view.viewport.to)return visible;let result=[];for(let{from,to}of visible){from=Math.max(view.state.doc.lineAt(from).from,from-maxLength);to=Math.min(view.state.doc.lineAt(to).to,to+maxLength);if(result.length&&result[result.length-1].to>=from)result[result.length-1].to=to;else result.push({from,to});}return result;}var MatchDecorator=class{/**\n  Compute the full set of decorations for matches in the given\n  view's viewport. You'll want to call this when initializing your\n  plugin.\n  */createDeco(view){let build=new RangeSetBuilder,add=build.add.bind(build);for(let{from,to}of matchRanges(view,this.maxLength))iterMatches(view.state.doc,this.regexp,from,to,(from2,m)=>this.addMatch(m,view,from2,add));return build.finish();}/**\n  Update a set of decorations for a view update. `deco` _must_ be\n  the set of decorations produced by _this_ `MatchDecorator` for\n  the view state before the update.\n  */updateDeco(update,deco){let changeFrom=1e9,changeTo=-1;if(update.docChanged)update.changes.iterChanges((_f,_t,from,to)=>{if(to>=update.view.viewport.from&&from<=update.view.viewport.to){changeFrom=Math.min(from,changeFrom);changeTo=Math.max(to,changeTo);}});if(update.viewportMoved||changeTo-changeFrom>1e3)return this.createDeco(update.view);if(changeTo>-1)return this.updateRange(update.view,deco.map(update.changes),changeFrom,changeTo);return deco;}updateRange(view,deco,updateFrom,updateTo){for(let r of view.visibleRanges){let from=Math.max(r.from,updateFrom),to=Math.min(r.to,updateTo);if(to>from){let fromLine=view.state.doc.lineAt(from),toLine=fromLine.to<to?view.state.doc.lineAt(to):fromLine;let start=Math.max(r.from,fromLine.from),end=Math.min(r.to,toLine.to);if(this.boundary){for(;from>fromLine.from;from--)if(this.boundary.test(fromLine.text[from-1-fromLine.from])){start=from;break;}for(;to<toLine.to;to++)if(this.boundary.test(toLine.text[to-toLine.from])){end=to;break;}}let ranges=[],m;let add=(from2,to2,deco2)=>ranges.push(deco2.range(from2,to2));if(fromLine==toLine){this.regexp.lastIndex=start-fromLine.from;while((m=this.regexp.exec(fromLine.text))&&m.index<end-fromLine.from)this.addMatch(m,view,m.index+fromLine.from,add);}else{iterMatches(view.state.doc,this.regexp,start,end,(from2,m2)=>this.addMatch(m2,view,from2,add));}deco=deco.update({filterFrom:start,filterTo:end,filter:(from2,to2)=>from2<start||to2>end,add:ranges});}}return deco;}/**\n  Create a decorator.\n  */constructor(config){const{regexp,decoration,decorate,boundary,maxLength=1e3}=config;if(!regexp.global)throw new RangeError(\"The regular expression given to MatchDecorator should have its 'g' flag set\");this.regexp=regexp;if(decorate){this.addMatch=(match,view,from,add)=>decorate(add,from,from+match[0].length,match,view);}else if(typeof decoration==\"function\"){this.addMatch=(match,view,from,add)=>{let deco=decoration(match,view,from);if(deco)add(from,from+match[0].length,deco);};}else if(decoration){this.addMatch=(match,_view,from,add)=>add(from,from+match[0].length,decoration);}else{throw new RangeError(\"Either 'decorate' or 'decoration' should be provided to MatchDecorator\");}this.boundary=boundary;this.maxLength=maxLength;}};var UnicodeRegexpSupport=/x/.unicode!=null?\"gu\":\"g\";var Specials=/* @__PURE__ */new RegExp(\"[\\x00-\\b\\n-\\x1f\\x7f-\\x9f\\xad؜​‎‏\\u2028\\u2029‭‮⁦⁧⁩\\uFEFF￹-￼]\",UnicodeRegexpSupport);var Names={0:\"null\",7:\"bell\",8:\"backspace\",10:\"newline\",11:\"vertical tab\",13:\"carriage return\",27:\"escape\",8203:\"zero width space\",8204:\"zero width non-joiner\",8205:\"zero width joiner\",8206:\"left-to-right mark\",8207:\"right-to-left mark\",8232:\"line separator\",8237:\"left-to-right override\",8238:\"right-to-left override\",8294:\"left-to-right isolate\",8295:\"right-to-left isolate\",8297:\"pop directional isolate\",8233:\"paragraph separator\",65279:\"zero width no-break space\",65532:\"object replacement\"};var _supportsTabSize=null;function supportsTabSize(){var _a;if(_supportsTabSize==null&&typeof document!=\"undefined\"&&document.body){let styles=document.body.style;_supportsTabSize=((_a=styles.tabSize)!==null&&_a!==void 0?_a:styles.MozTabSize)!=null;}return _supportsTabSize||false;}var specialCharConfig=/* @__PURE__ */Facet.define({combine(configs){let config=combineConfig(configs,{render:null,specialChars:Specials,addSpecialChars:null});if(config.replaceTabs=!supportsTabSize())config.specialChars=new RegExp(\"\t|\"+config.specialChars.source,UnicodeRegexpSupport);if(config.addSpecialChars)config.specialChars=new RegExp(config.specialChars.source+\"|\"+config.addSpecialChars.source,UnicodeRegexpSupport);return config;}});function highlightSpecialChars(config={}){return[specialCharConfig.of(config),specialCharPlugin()];}var _plugin=null;function specialCharPlugin(){return _plugin||(_plugin=ViewPlugin.fromClass(class{makeDecorator(conf){return new MatchDecorator({regexp:conf.specialChars,decoration:(m,view,pos)=>{let{doc:doc2}=view.state;let code=codePointAt(m[0],0);if(code==9){let line=doc2.lineAt(pos);let size=view.state.tabSize,col=countColumn(line.text,size,pos-line.from);return Decoration.replace({widget:new TabWidget((size-col%size)*this.view.defaultCharacterWidth/this.view.scaleX)});}return this.decorationCache[code]||(this.decorationCache[code]=Decoration.replace({widget:new SpecialCharWidget(conf,code)}));},boundary:conf.replaceTabs?void 0:/[^]/});}update(update){let conf=update.state.facet(specialCharConfig);if(update.startState.facet(specialCharConfig)!=conf){this.decorator=this.makeDecorator(conf);this.decorations=this.decorator.createDeco(update.view);}else{this.decorations=this.decorator.updateDeco(update,this.decorations);}}constructor(view){this.view=view;this.decorations=Decoration.none;this.decorationCache=/* @__PURE__ */Object.create(null);this.decorator=this.makeDecorator(view.state.facet(specialCharConfig));this.decorations=this.decorator.createDeco(view);}},{decorations:v=>v.decorations}));}var DefaultPlaceholder=\"•\";function placeholder$1(code){if(code>=32)return DefaultPlaceholder;if(code==10)return\"␤\";return String.fromCharCode(9216+code);}var SpecialCharWidget=class extends WidgetType{eq(other){return other.code==this.code;}toDOM(view){let ph=placeholder$1(this.code);let desc=view.state.phrase(\"Control character\")+\" \"+(Names[this.code]||\"0x\"+this.code.toString(16));let custom=this.options.render&&this.options.render(this.code,desc,ph);if(custom)return custom;let span=document.createElement(\"span\");span.textContent=ph;span.title=desc;span.setAttribute(\"aria-label\",desc);span.className=\"cm-specialChar\";return span;}ignoreEvent(){return false;}constructor(options,code){super();this.options=options;this.code=code;}};var TabWidget=class extends WidgetType{eq(other){return other.width==this.width;}toDOM(){let span=document.createElement(\"span\");span.textContent=\"\t\";span.className=\"cm-tab\";span.style.width=this.width+\"px\";return span;}ignoreEvent(){return false;}constructor(width){super();this.width=width;}};var plugin=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){let{view}=update;let height=view.viewState.editorHeight-view.defaultLineHeight-view.documentPadding.top-.5;if(height>=0&&height!=this.height){this.height=height;this.attrs={style:`padding-bottom: ${height}px`};}}constructor(){this.height=1e3;this.attrs={style:\"padding-bottom: 1000px\"};}});function scrollPastEnd(){return[plugin,contentAttributes.of(view=>{var _a;return((_a=view.plugin(plugin))===null||_a===void 0?void 0:_a.attrs)||null;})];}function highlightActiveLine(){return activeLineHighlighter;}var lineDeco=/* @__PURE__ */Decoration.line({class:\"cm-activeLine\"});var activeLineHighlighter=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){if(update.docChanged||update.selectionSet)this.decorations=this.getDeco(update.view);}getDeco(view){let lastLineStart=-1,deco=[];for(let r of view.state.selection.ranges){let line=view.lineBlockAt(r.head);if(line.from>lastLineStart){deco.push(lineDeco.range(line.from));lastLineStart=line.from;}}return Decoration.set(deco);}constructor(view){this.decorations=this.getDeco(view);}},{decorations:v=>v.decorations});var Placeholder=class extends WidgetType{toDOM(view){let wrap=document.createElement(\"span\");wrap.className=\"cm-placeholder\";wrap.style.pointerEvents=\"none\";wrap.appendChild(typeof this.content==\"string\"?document.createTextNode(this.content):typeof this.content==\"function\"?this.content(view):this.content.cloneNode(true));if(typeof this.content==\"string\")wrap.setAttribute(\"aria-label\",\"placeholder \"+this.content);else wrap.setAttribute(\"aria-hidden\",\"true\");return wrap;}coordsAt(dom){let rects=dom.firstChild?clientRectsFor(dom.firstChild):[];if(!rects.length)return null;let style=window.getComputedStyle(dom.parentNode);let rect=flattenRect(rects[0],style.direction!=\"rtl\");let lineHeight=parseInt(style.lineHeight);if(rect.bottom-rect.top>lineHeight*1.5)return{left:rect.left,right:rect.right,top:rect.top,bottom:rect.top+lineHeight};return rect;}ignoreEvent(){return false;}constructor(content){super();this.content=content;}};function placeholder(content){return ViewPlugin.fromClass(class{get decorations(){return this.view.state.doc.length?Decoration.none:this.placeholder;}constructor(view){this.view=view;this.placeholder=content?Decoration.set([Decoration.widget({widget:new Placeholder(content),side:1}).range(0)]):Decoration.none;}},{decorations:v=>v.decorations});}var MaxOff=2e3;function rectangleFor(state,a,b){let startLine=Math.min(a.line,b.line),endLine=Math.max(a.line,b.line);let ranges=[];if(a.off>MaxOff||b.off>MaxOff||a.col<0||b.col<0){let startOff=Math.min(a.off,b.off),endOff=Math.max(a.off,b.off);for(let i=startLine;i<=endLine;i++){let line=state.doc.line(i);if(line.length<=endOff)ranges.push(EditorSelection.range(line.from+startOff,line.to+endOff));}}else{let startCol=Math.min(a.col,b.col),endCol=Math.max(a.col,b.col);for(let i=startLine;i<=endLine;i++){let line=state.doc.line(i);let start=findColumn(line.text,startCol,state.tabSize,true);if(start<0){ranges.push(EditorSelection.cursor(line.to));}else{let end=findColumn(line.text,endCol,state.tabSize);ranges.push(EditorSelection.range(line.from+start,line.from+end));}}}return ranges;}function absoluteColumn(view,x){let ref=view.coordsAtPos(view.viewport.from);return ref?Math.round(Math.abs((ref.left-x)/view.defaultCharacterWidth)):-1;}function getPos(view,event){let offset=view.posAtCoords({x:event.clientX,y:event.clientY},false);let line=view.state.doc.lineAt(offset),off=offset-line.from;let col=off>MaxOff?-1:off==line.length?absoluteColumn(view,event.clientX):countColumn(line.text,view.state.tabSize,offset-line.from);return{line:line.number,col,off};}function rectangleSelectionStyle(view,event){let start=getPos(view,event),startSel=view.state.selection;if(!start)return null;return{update(update){if(update.docChanged){let newStart=update.changes.mapPos(update.startState.doc.line(start.line).from);let newLine=update.state.doc.lineAt(newStart);start={line:newLine.number,col:start.col,off:Math.min(start.off,newLine.length)};startSel=startSel.map(update.changes);}},get(event2,_extend,multiple){let cur=getPos(view,event2);if(!cur)return startSel;let ranges=rectangleFor(view.state,start,cur);if(!ranges.length)return startSel;if(multiple)return EditorSelection.create(ranges.concat(startSel.ranges));else return EditorSelection.create(ranges);}};}function rectangularSelection(options){let filter=(options===null||options===void 0?void 0:options.eventFilter)||(e=>e.altKey&&e.button==0);return EditorView.mouseSelectionStyle.of((view,event)=>filter(event)?rectangleSelectionStyle(view,event):null);}var keys={Alt:[18,e=>!!e.altKey],Control:[17,e=>!!e.ctrlKey],Shift:[16,e=>!!e.shiftKey],Meta:[91,e=>!!e.metaKey]};var showCrosshair={style:\"cursor: crosshair\"};function crosshairCursor(options={}){let[code,getter]=keys[options.key||\"Alt\"];let plugin2=ViewPlugin.fromClass(class{set(isDown){if(this.isDown!=isDown){this.isDown=isDown;this.view.update([]);}}constructor(view){this.view=view;this.isDown=false;}},{eventObservers:{keydown(e){this.set(e.keyCode==code||getter(e));},keyup(e){if(e.keyCode==code||!getter(e))this.set(false);},mousemove(e){this.set(getter(e));}}});return[plugin2,EditorView.contentAttributes.of(view=>{var _a;return((_a=view.plugin(plugin2))===null||_a===void 0?void 0:_a.isDown)?showCrosshair:null;})];}var Outside=\"-10000px\";var TooltipViewManager=class{update(update,above){var _a;let input=update.state.facet(this.facet);let tooltips2=input.filter(x=>x);if(input===this.input){for(let t of this.tooltipViews)if(t.update)t.update(update);return false;}let tooltipViews=[],newAbove=above?[]:null;for(let i=0;i<tooltips2.length;i++){let tip=tooltips2[i],known=-1;if(!tip)continue;for(let i2=0;i2<this.tooltips.length;i2++){let other=this.tooltips[i2];if(other&&other.create==tip.create)known=i2;}if(known<0){tooltipViews[i]=this.createTooltipView(tip,i?tooltipViews[i-1]:null);if(newAbove)newAbove[i]=!!tip.above;}else{let tooltipView=tooltipViews[i]=this.tooltipViews[known];if(newAbove)newAbove[i]=above[known];if(tooltipView.update)tooltipView.update(update);}}for(let t of this.tooltipViews)if(tooltipViews.indexOf(t)<0){this.removeTooltipView(t);(_a=t.destroy)===null||_a===void 0?void 0:_a.call(t);}if(above){newAbove.forEach((val,i)=>above[i]=val);above.length=newAbove.length;}this.input=input;this.tooltips=tooltips2;this.tooltipViews=tooltipViews;return true;}constructor(view,facet,createTooltipView,removeTooltipView){this.facet=facet;this.createTooltipView=createTooltipView;this.removeTooltipView=removeTooltipView;this.input=view.state.facet(facet);this.tooltips=this.input.filter(t=>t);let prev=null;this.tooltipViews=this.tooltips.map(t=>prev=createTooltipView(t,prev));}};function tooltips(config={}){return tooltipConfig.of(config);}function windowSpace(view){let docElt=view.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:docElt.clientHeight,right:docElt.clientWidth};}var tooltipConfig=/* @__PURE__ */Facet.define({combine:values=>{var _a,_b,_c;return{position:browser.ios?\"absolute\":((_a=values.find(conf=>conf.position))===null||_a===void 0?void 0:_a.position)||\"fixed\",parent:((_b=values.find(conf=>conf.parent))===null||_b===void 0?void 0:_b.parent)||null,tooltipSpace:((_c=values.find(conf=>conf.tooltipSpace))===null||_c===void 0?void 0:_c.tooltipSpace)||windowSpace};}});var knownHeight=/* @__PURE__ */new WeakMap;var tooltipPlugin=/* @__PURE__ */ViewPlugin.fromClass(class{createContainer(){if(this.parent){this.container=document.createElement(\"div\");this.container.style.position=\"relative\";this.container.className=this.view.themeClasses;this.parent.appendChild(this.container);}else{this.container=this.view.dom;}}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let tooltip of this.manager.tooltipViews)this.intersectionObserver.observe(tooltip.dom);}}measureSoon(){if(this.measureTimeout<0)this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1;this.maybeMeasure();},50);}update(update){if(update.transactions.length)this.lastTransaction=Date.now();let updated=this.manager.update(update,this.above);if(updated)this.observeIntersection();let shouldMeasure=updated||update.geometryChanged;let newConfig=update.state.facet(tooltipConfig);if(newConfig.position!=this.position&&!this.madeAbsolute){this.position=newConfig.position;for(let t of this.manager.tooltipViews)t.dom.style.position=this.position;shouldMeasure=true;}if(newConfig.parent!=this.parent){if(this.parent)this.container.remove();this.parent=newConfig.parent;this.createContainer();for(let t of this.manager.tooltipViews)this.container.appendChild(t.dom);shouldMeasure=true;}else if(this.parent&&this.view.themeClasses!=this.classes){this.classes=this.container.className=this.view.themeClasses;}if(shouldMeasure)this.maybeMeasure();}createTooltip(tooltip,prev){let tooltipView=tooltip.create(this.view);let before=prev?prev.dom:null;tooltipView.dom.classList.add(\"cm-tooltip\");if(tooltip.arrow&&!tooltipView.dom.querySelector(\".cm-tooltip > .cm-tooltip-arrow\")){let arrow=document.createElement(\"div\");arrow.className=\"cm-tooltip-arrow\";tooltipView.dom.appendChild(arrow);}tooltipView.dom.style.position=this.position;tooltipView.dom.style.top=Outside;tooltipView.dom.style.left=\"0px\";this.container.insertBefore(tooltipView.dom,before);if(tooltipView.mount)tooltipView.mount(this.view);if(this.resizeObserver)this.resizeObserver.observe(tooltipView.dom);return tooltipView;}destroy(){var _a,_b,_c;this.view.win.removeEventListener(\"resize\",this.measureSoon);for(let tooltipView of this.manager.tooltipViews){tooltipView.dom.remove();(_a=tooltipView.destroy)===null||_a===void 0?void 0:_a.call(tooltipView);}if(this.parent)this.container.remove();(_b=this.resizeObserver)===null||_b===void 0?void 0:_b.disconnect();(_c=this.intersectionObserver)===null||_c===void 0?void 0:_c.disconnect();clearTimeout(this.measureTimeout);}readMeasure(){let scaleX=1,scaleY=1,makeAbsolute=false;if(this.position==\"fixed\"&&this.manager.tooltipViews.length){let{dom}=this.manager.tooltipViews[0];if(browser.gecko){makeAbsolute=dom.offsetParent!=this.container.ownerDocument.body;}else if(dom.style.top==Outside&&dom.style.left==\"0px\"){let rect=dom.getBoundingClientRect();makeAbsolute=Math.abs(rect.top+1e4)>1||Math.abs(rect.left)>1;}}if(makeAbsolute||this.position==\"absolute\"){if(this.parent){let rect=this.parent.getBoundingClientRect();if(rect.width&&rect.height){scaleX=rect.width/this.parent.offsetWidth;scaleY=rect.height/this.parent.offsetHeight;}}else{({scaleX,scaleY}=this.view.viewState);}}let visible=this.view.scrollDOM.getBoundingClientRect(),margins=getScrollMargins(this.view);return{visible:{left:visible.left+margins.left,top:visible.top+margins.top,right:visible.right-margins.right,bottom:visible.bottom-margins.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((t,i)=>{let tv=this.manager.tooltipViews[i];return tv.getCoords?tv.getCoords(t.pos):this.view.coordsAtPos(t.pos);}),size:this.manager.tooltipViews.map(({dom})=>dom.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view),scaleX,scaleY,makeAbsolute};}writeMeasure(measured){var _a;if(measured.makeAbsolute){this.madeAbsolute=true;this.position=\"absolute\";for(let t of this.manager.tooltipViews)t.dom.style.position=\"absolute\";}let{visible,space,scaleX,scaleY}=measured;let others=[];for(let i=0;i<this.manager.tooltips.length;i++){let tooltip=this.manager.tooltips[i],tView=this.manager.tooltipViews[i],{dom}=tView;let pos=measured.pos[i],size=measured.size[i];if(!pos||tooltip.clip!==false&&(pos.bottom<=Math.max(visible.top,space.top)||pos.top>=Math.min(visible.bottom,space.bottom)||pos.right<Math.max(visible.left,space.left)-.1||pos.left>Math.min(visible.right,space.right)+.1)){dom.style.top=Outside;continue;}let arrow=tooltip.arrow?tView.dom.querySelector(\".cm-tooltip-arrow\"):null;let arrowHeight=arrow?7:0;let width=size.right-size.left,height=(_a=knownHeight.get(tView))!==null&&_a!==void 0?_a:size.bottom-size.top;let offset=tView.offset||noOffset,ltr=this.view.textDirection==Direction.LTR;let left=size.width>space.right-space.left?ltr?space.left:space.right-size.width:ltr?Math.max(space.left,Math.min(pos.left-(arrow?14:0)+offset.x,space.right-width)):Math.min(Math.max(space.left,pos.left-width+(arrow?14:0)-offset.x),space.right-width);let above=this.above[i];if(!tooltip.strictSide&&(above?pos.top-height-arrowHeight-offset.y<space.top:pos.bottom+height+arrowHeight+offset.y>space.bottom)&&above==space.bottom-pos.bottom>pos.top-space.top)above=this.above[i]=!above;let spaceVert=(above?pos.top-space.top:space.bottom-pos.bottom)-arrowHeight;if(spaceVert<height&&tView.resize!==false){if(spaceVert<this.view.defaultLineHeight){dom.style.top=Outside;continue;}knownHeight.set(tView,height);dom.style.height=(height=spaceVert)/scaleY+\"px\";}else if(dom.style.height){dom.style.height=\"\";}let top2=above?pos.top-height-arrowHeight-offset.y:pos.bottom+arrowHeight+offset.y;let right=left+width;if(tView.overlap!==true){for(let r of others)if(r.left<right&&r.right>left&&r.top<top2+height&&r.bottom>top2)top2=above?r.top-height-2-arrowHeight:r.bottom+arrowHeight+2;}if(this.position==\"absolute\"){dom.style.top=(top2-measured.parent.top)/scaleY+\"px\";setLeftStyle(dom,(left-measured.parent.left)/scaleX);}else{dom.style.top=top2/scaleY+\"px\";setLeftStyle(dom,left/scaleX);}if(arrow){let arrowLeft=pos.left+(ltr?offset.x:-offset.x)-(left+14-7);arrow.style.left=arrowLeft/scaleX+\"px\";}if(tView.overlap!==true)others.push({left,top:top2,right,bottom:top2+height});dom.classList.toggle(\"cm-tooltip-above\",above);dom.classList.toggle(\"cm-tooltip-below\",!above);if(tView.positioned)tView.positioned(measured.space);}}maybeMeasure(){if(this.manager.tooltips.length){if(this.view.inView)this.view.requestMeasure(this.measureReq);if(this.inView!=this.view.inView){this.inView=this.view.inView;if(!this.inView)for(let tv of this.manager.tooltipViews)tv.dom.style.top=Outside;}}}constructor(view){this.view=view;this.above=[];this.inView=true;this.madeAbsolute=false;this.lastTransaction=0;this.measureTimeout=-1;let config=view.state.facet(tooltipConfig);this.position=config.position;this.parent=config.parent;this.classes=view.themeClasses;this.createContainer();this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this};this.resizeObserver=typeof ResizeObserver==\"function\"?new ResizeObserver(()=>this.measureSoon()):null;this.manager=new TooltipViewManager(view,showTooltip,(t,p)=>this.createTooltip(t,p),t=>{if(this.resizeObserver)this.resizeObserver.unobserve(t.dom);t.dom.remove();});this.above=this.manager.tooltips.map(t=>!!t.above);this.intersectionObserver=typeof IntersectionObserver==\"function\"?new IntersectionObserver(entries=>{if(Date.now()>this.lastTransaction-50&&entries.length>0&&entries[entries.length-1].intersectionRatio<1)this.measureSoon();},{threshold:[1]}):null;this.observeIntersection();view.win.addEventListener(\"resize\",this.measureSoon=this.measureSoon.bind(this));this.maybeMeasure();}},{eventObservers:{scroll(){this.maybeMeasure();}}});function setLeftStyle(elt,value){let current=parseInt(elt.style.left,10);if(isNaN(current)||Math.abs(value-current)>1)elt.style.left=value+\"px\";}var baseTheme=/* @__PURE__ */EditorView.baseTheme({\".cm-tooltip\":{zIndex:500,boxSizing:\"border-box\"},\"&light .cm-tooltip\":{border:\"1px solid #bbb\",backgroundColor:\"#f5f5f5\"},\"&light .cm-tooltip-section:not(:first-child)\":{borderTop:\"1px solid #bbb\"},\"&dark .cm-tooltip\":{backgroundColor:\"#333338\",color:\"white\"},\".cm-tooltip-arrow\":{height:`${7}px`,width:`${7*2}px`,position:\"absolute\",zIndex:-1,overflow:\"hidden\",\"&:before, &:after\":{content:\"''\",position:\"absolute\",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},\".cm-tooltip-above &\":{bottom:`-${7}px`,\"&:before\":{borderTop:`${7}px solid #bbb`},\"&:after\":{borderTop:`${7}px solid #f5f5f5`,bottom:\"1px\"}},\".cm-tooltip-below &\":{top:`-${7}px`,\"&:before\":{borderBottom:`${7}px solid #bbb`},\"&:after\":{borderBottom:`${7}px solid #f5f5f5`,top:\"1px\"}}},\"&dark .cm-tooltip .cm-tooltip-arrow\":{\"&:before\":{borderTopColor:\"#333338\",borderBottomColor:\"#333338\"},\"&:after\":{borderTopColor:\"transparent\",borderBottomColor:\"transparent\"}}});var noOffset={x:0,y:0};var showTooltip=/* @__PURE__ */Facet.define({enables:[tooltipPlugin,baseTheme]});var showHoverTooltip=/* @__PURE__ */Facet.define({combine:inputs=>inputs.reduce((a,i)=>a.concat(i),[])});var HoverTooltipHost=class _HoverTooltipHost{// Needs to be static so that host tooltip instances always match\nstatic create(view){return new _HoverTooltipHost(view);}createHostedView(tooltip,prev){let hostedView=tooltip.create(this.view);hostedView.dom.classList.add(\"cm-tooltip-section\");this.dom.insertBefore(hostedView.dom,prev?prev.dom.nextSibling:this.dom.firstChild);if(this.mounted&&hostedView.mount)hostedView.mount(this.view);return hostedView;}mount(view){for(let hostedView of this.manager.tooltipViews){if(hostedView.mount)hostedView.mount(view);}this.mounted=true;}positioned(space){for(let hostedView of this.manager.tooltipViews){if(hostedView.positioned)hostedView.positioned(space);}}update(update){this.manager.update(update);}destroy(){var _a;for(let t of this.manager.tooltipViews)(_a=t.destroy)===null||_a===void 0?void 0:_a.call(t);}passProp(name){let value=void 0;for(let view of this.manager.tooltipViews){let given=view[name];if(given!==void 0){if(value===void 0)value=given;else if(value!==given)return void 0;}}return value;}get offset(){return this.passProp(\"offset\");}get getCoords(){return this.passProp(\"getCoords\");}get overlap(){return this.passProp(\"overlap\");}get resize(){return this.passProp(\"resize\");}constructor(view){this.view=view;this.mounted=false;this.dom=document.createElement(\"div\");this.dom.classList.add(\"cm-tooltip-hover\");this.manager=new TooltipViewManager(view,showHoverTooltip,(t,p)=>this.createHostedView(t,p),t=>t.dom.remove());}};var showHoverTooltipHost=/* @__PURE__ */showTooltip.compute([showHoverTooltip],state=>{let tooltips2=state.facet(showHoverTooltip);if(tooltips2.length===0)return null;return{pos:Math.min(...tooltips2.map(t=>t.pos)),end:Math.max(...tooltips2.map(t=>{var _a;return(_a=t.end)!==null&&_a!==void 0?_a:t.pos;})),create:HoverTooltipHost.create,above:tooltips2[0].above,arrow:tooltips2.some(t=>t.arrow)};});var HoverPlugin=class{update(){if(this.pending){this.pending=null;clearTimeout(this.restartTimeout);this.restartTimeout=setTimeout(()=>this.startHover(),20);}}get active(){return this.view.state.field(this.field);}checkHover(){this.hoverTimeout=-1;if(this.active.length)return;let hovered=Date.now()-this.lastMove.time;if(hovered<this.hoverTime)this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-hovered);else this.startHover();}startHover(){clearTimeout(this.restartTimeout);let{view,lastMove}=this;let desc=view.docView.nearest(lastMove.target);if(!desc)return;let pos,side=1;if(desc instanceof WidgetView){pos=desc.posAtStart;}else{pos=view.posAtCoords(lastMove);if(pos==null)return;let posCoords=view.coordsAtPos(pos);if(!posCoords||lastMove.y<posCoords.top||lastMove.y>posCoords.bottom||lastMove.x<posCoords.left-view.defaultCharacterWidth||lastMove.x>posCoords.right+view.defaultCharacterWidth)return;let bidi=view.bidiSpans(view.state.doc.lineAt(pos)).find(s=>s.from<=pos&&s.to>=pos);let rtl=bidi&&bidi.dir==Direction.RTL?-1:1;side=lastMove.x<posCoords.left?-rtl:rtl;}let open=this.source(view,pos,side);if(open===null||open===void 0?void 0:open.then){let pending=this.pending={pos};open.then(result=>{if(this.pending==pending){this.pending=null;if(result&&!(Array.isArray(result)&&!result.length))view.dispatch({effects:this.setHover.of(Array.isArray(result)?result:[result])});}},e=>logException(view.state,e,\"hover tooltip\"));}else if(open&&!(Array.isArray(open)&&!open.length)){view.dispatch({effects:this.setHover.of(Array.isArray(open)?open:[open])});}}get tooltip(){let plugin2=this.view.plugin(tooltipPlugin);let index=plugin2?plugin2.manager.tooltips.findIndex(t=>t.create==HoverTooltipHost.create):-1;return index>-1?plugin2.manager.tooltipViews[index]:null;}mousemove(event){var _a,_b;this.lastMove={x:event.clientX,y:event.clientY,target:event.target,time:Date.now()};if(this.hoverTimeout<0)this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime);let{active,tooltip}=this;if(active.length&&tooltip&&!isInTooltip(tooltip.dom,event)||this.pending){let{pos}=active[0]||this.pending,end=(_b=(_a=active[0])===null||_a===void 0?void 0:_a.end)!==null&&_b!==void 0?_b:pos;if(pos==end?this.view.posAtCoords(this.lastMove)!=pos:!isOverRange(this.view,pos,end,event.clientX,event.clientY)){this.view.dispatch({effects:this.setHover.of([])});this.pending=null;}}}mouseleave(event){clearTimeout(this.hoverTimeout);this.hoverTimeout=-1;let{active}=this;if(active.length){let{tooltip}=this;let inTooltip=tooltip&&tooltip.dom.contains(event.relatedTarget);if(!inTooltip)this.view.dispatch({effects:this.setHover.of([])});else this.watchTooltipLeave(tooltip.dom);}}watchTooltipLeave(tooltip){let watch=event=>{tooltip.removeEventListener(\"mouseleave\",watch);if(this.active.length&&!this.view.dom.contains(event.relatedTarget))this.view.dispatch({effects:this.setHover.of([])});};tooltip.addEventListener(\"mouseleave\",watch);}destroy(){clearTimeout(this.hoverTimeout);this.view.dom.removeEventListener(\"mouseleave\",this.mouseleave);this.view.dom.removeEventListener(\"mousemove\",this.mousemove);}constructor(view,source,field,setHover,hoverTime){this.view=view;this.source=source;this.field=field;this.setHover=setHover;this.hoverTime=hoverTime;this.hoverTimeout=-1;this.restartTimeout=-1;this.pending=null;this.lastMove={x:0,y:0,target:view.dom,time:0};this.checkHover=this.checkHover.bind(this);view.dom.addEventListener(\"mouseleave\",this.mouseleave=this.mouseleave.bind(this));view.dom.addEventListener(\"mousemove\",this.mousemove=this.mousemove.bind(this));}};var tooltipMargin=4;function isInTooltip(tooltip,event){let{left,right,top:top2,bottom}=tooltip.getBoundingClientRect(),arrow;if(arrow=tooltip.querySelector(\".cm-tooltip-arrow\")){let arrowRect=arrow.getBoundingClientRect();top2=Math.min(arrowRect.top,top2);bottom=Math.max(arrowRect.bottom,bottom);}return event.clientX>=left-tooltipMargin&&event.clientX<=right+tooltipMargin&&event.clientY>=top2-tooltipMargin&&event.clientY<=bottom+tooltipMargin;}function isOverRange(view,from,to,x,y,margin){let rect=view.scrollDOM.getBoundingClientRect();let docBottom=view.documentTop+view.documentPadding.top+view.contentHeight;if(rect.left>x||rect.right<x||rect.top>y||Math.min(rect.bottom,docBottom)<y)return false;let pos=view.posAtCoords({x,y},false);return pos>=from&&pos<=to;}function hoverTooltip(source,options={}){let setHover=StateEffect.define();let hoverState=StateField.define({create(){return[];},update(value,tr){if(value.length){if(options.hideOnChange&&(tr.docChanged||tr.selection))value=[];else if(options.hideOn)value=value.filter(v=>!options.hideOn(tr,v));if(tr.docChanged){let mapped=[];for(let tooltip of value){let newPos=tr.changes.mapPos(tooltip.pos,-1,MapMode.TrackDel);if(newPos!=null){let copy=Object.assign(/* @__PURE__ */Object.create(null),tooltip);copy.pos=newPos;if(copy.end!=null)copy.end=tr.changes.mapPos(copy.end);mapped.push(copy);}}value=mapped;}}for(let effect of tr.effects){if(effect.is(setHover))value=effect.value;if(effect.is(closeHoverTooltipEffect))value=[];}return value;},provide:f=>showHoverTooltip.from(f)});return{active:hoverState,extension:[hoverState,ViewPlugin.define(view=>new HoverPlugin(view,source,hoverState,setHover,options.hoverTime||300)),showHoverTooltipHost]};}function getTooltip(view,tooltip){let plugin2=view.plugin(tooltipPlugin);if(!plugin2)return null;let found=plugin2.manager.tooltips.indexOf(tooltip);return found<0?null:plugin2.manager.tooltipViews[found];}function hasHoverTooltips(state){return state.facet(showHoverTooltip).some(x=>x);}var closeHoverTooltipEffect=/* @__PURE__ */StateEffect.define();var closeHoverTooltips=/* @__PURE__ */closeHoverTooltipEffect.of(null);function repositionTooltips(view){let plugin2=view.plugin(tooltipPlugin);if(plugin2)plugin2.maybeMeasure();}var panelConfig=/* @__PURE__ */Facet.define({combine(configs){let topContainer,bottomContainer;for(let c of configs){topContainer=topContainer||c.topContainer;bottomContainer=bottomContainer||c.bottomContainer;}return{topContainer,bottomContainer};}});function panels(config){return config?[panelConfig.of(config)]:[];}function getPanel(view,panel){let plugin2=view.plugin(panelPlugin);let index=plugin2?plugin2.specs.indexOf(panel):-1;return index>-1?plugin2.panels[index]:null;}var panelPlugin=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){let conf=update.state.facet(panelConfig);if(this.top.container!=conf.topContainer){this.top.sync([]);this.top=new PanelGroup(update.view,true,conf.topContainer);}if(this.bottom.container!=conf.bottomContainer){this.bottom.sync([]);this.bottom=new PanelGroup(update.view,false,conf.bottomContainer);}this.top.syncClasses();this.bottom.syncClasses();let input=update.state.facet(showPanel);if(input!=this.input){let specs=input.filter(x=>x);let panels2=[],top2=[],bottom=[],mount=[];for(let spec of specs){let known=this.specs.indexOf(spec),panel;if(known<0){panel=spec(update.view);mount.push(panel);}else{panel=this.panels[known];if(panel.update)panel.update(update);}panels2.push(panel);(panel.top?top2:bottom).push(panel);}this.specs=specs;this.panels=panels2;this.top.sync(top2);this.bottom.sync(bottom);for(let p of mount){p.dom.classList.add(\"cm-panel\");if(p.mount)p.mount();}}else{for(let p of this.panels)if(p.update)p.update(update);}}destroy(){this.top.sync([]);this.bottom.sync([]);}constructor(view){this.input=view.state.facet(showPanel);this.specs=this.input.filter(s=>s);this.panels=this.specs.map(spec=>spec(view));let conf=view.state.facet(panelConfig);this.top=new PanelGroup(view,true,conf.topContainer);this.bottom=new PanelGroup(view,false,conf.bottomContainer);this.top.sync(this.panels.filter(p=>p.top));this.bottom.sync(this.panels.filter(p=>!p.top));for(let p of this.panels){p.dom.classList.add(\"cm-panel\");if(p.mount)p.mount();}}},{provide:plugin2=>EditorView.scrollMargins.of(view=>{let value=view.plugin(plugin2);return value&&{top:value.top.scrollMargin(),bottom:value.bottom.scrollMargin()};})});var PanelGroup=class{sync(panels2){for(let p of this.panels)if(p.destroy&&panels2.indexOf(p)<0)p.destroy();this.panels=panels2;this.syncDOM();}syncDOM(){if(this.panels.length==0){if(this.dom){this.dom.remove();this.dom=void 0;}return;}if(!this.dom){this.dom=document.createElement(\"div\");this.dom.className=this.top?\"cm-panels cm-panels-top\":\"cm-panels cm-panels-bottom\";this.dom.style[this.top?\"top\":\"bottom\"]=\"0\";let parent=this.container||this.view.dom;parent.insertBefore(this.dom,this.top?parent.firstChild:null);}let curDOM=this.dom.firstChild;for(let panel of this.panels){if(panel.dom.parentNode==this.dom){while(curDOM!=panel.dom)curDOM=rm(curDOM);curDOM=curDOM.nextSibling;}else{this.dom.insertBefore(panel.dom,curDOM);}}while(curDOM)curDOM=rm(curDOM);}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top);}syncClasses(){if(!this.container||this.classes==this.view.themeClasses)return;for(let cls of this.classes.split(\" \"))if(cls)this.container.classList.remove(cls);for(let cls of(this.classes=this.view.themeClasses).split(\" \"))if(cls)this.container.classList.add(cls);}constructor(view,top2,container){this.view=view;this.top=top2;this.container=container;this.dom=void 0;this.classes=\"\";this.panels=[];this.syncClasses();}};function rm(node){let next=node.nextSibling;node.remove();return next;}var showPanel=/* @__PURE__ */Facet.define({enables:panelPlugin});var GutterMarker=class extends RangeValue{/**\n  @internal\n  */compare(other){return this==other||this.constructor==other.constructor&&this.eq(other);}/**\n  Compare this marker to another marker of the same type.\n  */eq(other){return false;}/**\n  Called if the marker has a `toDOM` method and its representation\n  was removed from a gutter.\n  */destroy(dom){}};GutterMarker.prototype.elementClass=\"\";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=true;var gutterLineClass=/* @__PURE__ */Facet.define();var gutterWidgetClass=/* @__PURE__ */Facet.define();var defaults={class:\"\",renderEmptyElements:false,elementStyle:\"\",markers:()=>RangeSet.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}};var activeGutters=/* @__PURE__ */Facet.define();function gutter(config){return[gutters(),activeGutters.of(Object.assign(Object.assign({},defaults),config))];}var unfixGutters=/* @__PURE__ */Facet.define({combine:values=>values.some(x=>x)});function gutters(config){let result=[gutterView];if(config&&config.fixed===false)result.push(unfixGutters.of(true));return result;}var gutterView=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){if(this.updateGutters(update)){let vpA=this.prevViewport,vpB=update.view.viewport;let vpOverlap=Math.min(vpA.to,vpB.to)-Math.max(vpA.from,vpB.from);this.syncGutters(vpOverlap<(vpB.to-vpB.from)*.8);}if(update.geometryChanged){this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+\"px\";}if(this.view.state.facet(unfixGutters)!=!this.fixed){this.fixed=!this.fixed;this.dom.style.position=this.fixed?\"sticky\":\"\";}this.prevViewport=update.view.viewport;}syncGutters(detach){let after=this.dom.nextSibling;if(detach)this.dom.remove();let lineClasses=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from);let classSet=[];let contexts=this.gutters.map(gutter2=>new UpdateContext(gutter2,this.view.viewport,-this.view.documentPadding.top));for(let line of this.view.viewportLineBlocks){if(classSet.length)classSet=[];if(Array.isArray(line.type)){let first=true;for(let b of line.type){if(b.type==BlockType.Text&&first){advanceCursor(lineClasses,classSet,b.from);for(let cx of contexts)cx.line(this.view,b,classSet);first=false;}else if(b.widget){for(let cx of contexts)cx.widget(this.view,b);}}}else if(line.type==BlockType.Text){advanceCursor(lineClasses,classSet,line.from);for(let cx of contexts)cx.line(this.view,line,classSet);}else if(line.widget){for(let cx of contexts)cx.widget(this.view,line);}}for(let cx of contexts)cx.finish();if(detach)this.view.scrollDOM.insertBefore(this.dom,after);}updateGutters(update){let prev=update.startState.facet(activeGutters),cur=update.state.facet(activeGutters);let change=update.docChanged||update.heightChanged||update.viewportChanged||!RangeSet.eq(update.startState.facet(gutterLineClass),update.state.facet(gutterLineClass),update.view.viewport.from,update.view.viewport.to);if(prev==cur){for(let gutter2 of this.gutters)if(gutter2.update(update))change=true;}else{change=true;let gutters2=[];for(let conf of cur){let known=prev.indexOf(conf);if(known<0){gutters2.push(new SingleGutterView(this.view,conf));}else{this.gutters[known].update(update);gutters2.push(this.gutters[known]);}}for(let g of this.gutters){g.dom.remove();if(gutters2.indexOf(g)<0)g.destroy();}for(let g of gutters2)this.dom.appendChild(g.dom);this.gutters=gutters2;}return change;}destroy(){for(let view of this.gutters)view.destroy();this.dom.remove();}constructor(view){this.view=view;this.prevViewport=view.viewport;this.dom=document.createElement(\"div\");this.dom.className=\"cm-gutters\";this.dom.setAttribute(\"aria-hidden\",\"true\");this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+\"px\";this.gutters=view.state.facet(activeGutters).map(conf=>new SingleGutterView(view,conf));for(let gutter2 of this.gutters)this.dom.appendChild(gutter2.dom);this.fixed=!view.state.facet(unfixGutters);if(this.fixed){this.dom.style.position=\"sticky\";}this.syncGutters(false);view.scrollDOM.insertBefore(this.dom,view.contentDOM);}},{provide:plugin2=>EditorView.scrollMargins.of(view=>{let value=view.plugin(plugin2);if(!value||value.gutters.length==0||!value.fixed)return null;return view.textDirection==Direction.LTR?{left:value.dom.offsetWidth*view.scaleX}:{right:value.dom.offsetWidth*view.scaleX};})});function asArray(val){return Array.isArray(val)?val:[val];}function advanceCursor(cursor,collect,pos){while(cursor.value&&cursor.from<=pos){if(cursor.from==pos)collect.push(cursor.value);cursor.next();}}var UpdateContext=class{addElement(view,block,markers){let{gutter:gutter2}=this,above=(block.top-this.height)/view.scaleY,height=block.height/view.scaleY;if(this.i==gutter2.elements.length){let newElt=new GutterElement(view,height,above,markers);gutter2.elements.push(newElt);gutter2.dom.appendChild(newElt.dom);}else{gutter2.elements[this.i].update(view,height,above,markers);}this.height=block.bottom;this.i++;}line(view,line,extraMarkers){let localMarkers=[];advanceCursor(this.cursor,localMarkers,line.from);if(extraMarkers.length)localMarkers=localMarkers.concat(extraMarkers);let forLine=this.gutter.config.lineMarker(view,line,localMarkers);if(forLine)localMarkers.unshift(forLine);let gutter2=this.gutter;if(localMarkers.length==0&&!gutter2.config.renderEmptyElements)return;this.addElement(view,line,localMarkers);}widget(view,block){let marker=this.gutter.config.widgetMarker(view,block.widget,block),markers=marker?[marker]:null;for(let cls of view.state.facet(gutterWidgetClass)){let marker2=cls(view,block.widget,block);if(marker2)(markers||(markers=[])).push(marker2);}if(markers)this.addElement(view,block,markers);}finish(){let gutter2=this.gutter;while(gutter2.elements.length>this.i){let last=gutter2.elements.pop();gutter2.dom.removeChild(last.dom);last.destroy();}}constructor(gutter2,viewport,height){this.gutter=gutter2;this.height=height;this.i=0;this.cursor=RangeSet.iter(gutter2.markers,viewport.from);}};var SingleGutterView=class{update(update){let prevMarkers=this.markers;this.markers=asArray(this.config.markers(update.view));if(this.spacer&&this.config.updateSpacer){let updated=this.config.updateSpacer(this.spacer.markers[0],update);if(updated!=this.spacer.markers[0])this.spacer.update(update.view,0,0,[updated]);}let vp=update.view.viewport;return!RangeSet.eq(this.markers,prevMarkers,vp.from,vp.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(update):false);}destroy(){for(let elt of this.elements)elt.destroy();}constructor(view,config){this.view=view;this.config=config;this.elements=[];this.spacer=null;this.dom=document.createElement(\"div\");this.dom.className=\"cm-gutter\"+(this.config.class?\" \"+this.config.class:\"\");for(let prop in config.domEventHandlers){this.dom.addEventListener(prop,event=>{let target=event.target,y;if(target!=this.dom&&this.dom.contains(target)){while(target.parentNode!=this.dom)target=target.parentNode;let rect=target.getBoundingClientRect();y=(rect.top+rect.bottom)/2;}else{y=event.clientY;}let line=view.lineBlockAtHeight(y-view.documentTop);if(config.domEventHandlers[prop](view,line,event))event.preventDefault();});}this.markers=asArray(config.markers(view));if(config.initialSpacer){this.spacer=new GutterElement(view,0,0,[config.initialSpacer(view)]);this.dom.appendChild(this.spacer.dom);this.spacer.dom.style.cssText+=\"visibility: hidden; pointer-events: none\";}}};var GutterElement=class{update(view,height,above,markers){if(this.height!=height){this.height=height;this.dom.style.height=height+\"px\";}if(this.above!=above)this.dom.style.marginTop=(this.above=above)?above+\"px\":\"\";if(!sameMarkers(this.markers,markers))this.setMarkers(view,markers);}setMarkers(view,markers){let cls=\"cm-gutterElement\",domPos=this.dom.firstChild;for(let iNew=0,iOld=0;;){let skipTo=iOld,marker=iNew<markers.length?markers[iNew++]:null,matched=false;if(marker){let c=marker.elementClass;if(c)cls+=\" \"+c;for(let i=iOld;i<this.markers.length;i++)if(this.markers[i].compare(marker)){skipTo=i;matched=true;break;}}else{skipTo=this.markers.length;}while(iOld<skipTo){let next=this.markers[iOld++];if(next.toDOM){next.destroy(domPos);let after=domPos.nextSibling;domPos.remove();domPos=after;}}if(!marker)break;if(marker.toDOM){if(matched)domPos=domPos.nextSibling;else this.dom.insertBefore(marker.toDOM(view),domPos);}if(matched)iOld++;}this.dom.className=cls;this.markers=markers;}destroy(){this.setMarkers(null,[]);}constructor(view,height,above,markers){this.height=-1;this.above=0;this.markers=[];this.dom=document.createElement(\"div\");this.dom.className=\"cm-gutterElement\";this.update(view,height,above,markers);}};function sameMarkers(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(!a[i].compare(b[i]))return false;return true;}var lineNumberMarkers=/* @__PURE__ */Facet.define();var lineNumberWidgetMarker=/* @__PURE__ */Facet.define();var lineNumberConfig=/* @__PURE__ */Facet.define({combine(values){return combineConfig(values,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(a,b){let result=Object.assign({},a);for(let event in b){let exists=result[event],add=b[event];result[event]=exists?(view,line,event2)=>exists(view,line,event2)||add(view,line,event2):add;}return result;}});}});var NumberMarker=class extends GutterMarker{eq(other){return this.number==other.number;}toDOM(){return document.createTextNode(this.number);}constructor(number){super();this.number=number;}};function formatNumber(view,number){return view.state.facet(lineNumberConfig).formatNumber(number,view.state);}var lineNumberGutter=/* @__PURE__ */activeGutters.compute([lineNumberConfig],state=>({class:\"cm-lineNumbers\",renderEmptyElements:false,markers(view){return view.state.facet(lineNumberMarkers);},lineMarker(view,line,others){if(others.some(m=>m.toDOM))return null;return new NumberMarker(formatNumber(view,view.state.doc.lineAt(line.from).number));},widgetMarker:(view,widget,block)=>{for(let m of view.state.facet(lineNumberWidgetMarker)){let result=m(view,widget,block);if(result)return result;}return null;},lineMarkerChange:update=>update.startState.facet(lineNumberConfig)!=update.state.facet(lineNumberConfig),initialSpacer(view){return new NumberMarker(formatNumber(view,maxLineNumber(view.state.doc.lines)));},updateSpacer(spacer,update){let max=formatNumber(update.view,maxLineNumber(update.view.state.doc.lines));return max==spacer.number?spacer:new NumberMarker(max);},domEventHandlers:state.facet(lineNumberConfig).domEventHandlers}));function lineNumbers(config={}){return[lineNumberConfig.of(config),gutters(),lineNumberGutter];}function maxLineNumber(lines){let last=9;while(last<lines)last=last*10+9;return last;}var activeLineGutterMarker=/* @__PURE__ */new class extends GutterMarker{constructor(){super(...arguments);this.elementClass=\"cm-activeLineGutter\";}};var activeLineGutterHighlighter=/* @__PURE__ */gutterLineClass.compute([\"selection\"],state=>{let marks=[],last=-1;for(let range of state.selection.ranges){let linePos=state.doc.lineAt(range.head).from;if(linePos>last){last=linePos;marks.push(activeLineGutterMarker.range(linePos));}}return RangeSet.of(marks);});function highlightActiveLineGutter(){return activeLineGutterHighlighter;}function matcher(decorator){return ViewPlugin.define(view=>({decorations:decorator.createDeco(view),update(u){this.decorations=decorator.updateDeco(u,this.decorations);}}),{decorations:v=>v.decorations});}var tabDeco=/* @__PURE__ */Decoration.mark({class:\"cm-highlightTab\"});var spaceDeco=/* @__PURE__ */Decoration.mark({class:\"cm-highlightSpace\"});var whitespaceHighlighter=/* @__PURE__ */matcher(/* @__PURE__ */new MatchDecorator({regexp:/\\t| /g,decoration:match=>match[0]==\"\t\"?tabDeco:spaceDeco,boundary:/\\S/}));function highlightWhitespace(){return whitespaceHighlighter;}var trailingHighlighter=/* @__PURE__ */matcher(/* @__PURE__ */new MatchDecorator({regexp:/\\s+$/g,decoration:/* @__PURE__ */Decoration.mark({class:\"cm-trailingSpace\"}),boundary:/\\S/}));function highlightTrailingWhitespace(){return trailingHighlighter;}var __test={HeightMap,HeightOracle,MeasuredHeights,QueryType,ChangedRange,computeOrder,moveVisually,clearHeightChangeFlag,getHeightChangeFlag:()=>heightChangeFlag};export{BidiSpan,BlockInfo,BlockType,Decoration,Direction,EditorView,GutterMarker,MatchDecorator,RectangleMarker,ViewPlugin,ViewUpdate,WidgetType,__test,closeHoverTooltips,crosshairCursor,drawSelection,dropCursor,getDrawSelectionConfig,getPanel,getTooltip,gutter,gutterLineClass,gutterWidgetClass,gutters,hasHoverTooltips,highlightActiveLine,highlightActiveLineGutter,highlightSpecialChars,highlightTrailingWhitespace,highlightWhitespace,hoverTooltip,keymap,layer,lineNumberMarkers,lineNumberWidgetMarker,lineNumbers,logException,panels,placeholder,rectangularSelection,repositionTooltips,runScopeHandlers,scrollPastEnd,showPanel,showTooltip,tooltips,};\nexport const __FramerMetadata__ = {\"exports\":{\"runScopeHandlers\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getDrawSelectionConfig\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"layer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RectangleMarker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MatchDecorator\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutterLineClass\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showPanel\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hoverTooltip\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorView\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightWhitespace\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlockType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"rectangularSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lineNumberMarkers\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"repositionTooltips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BidiSpan\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightActiveLineGutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scrollPastEnd\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__test\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"keymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightTrailingWhitespace\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GutterMarker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"dropCursor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"panels\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightActiveLine\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Direction\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"placeholder\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ViewPlugin\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showTooltip\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"crosshairCursor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"WidgetType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPanel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"logException\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTooltip\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"drawSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lineNumbers\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutterWidgetClass\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightSpecialChars\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasHoverTooltips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ViewUpdate\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tooltips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Decoration\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlockInfo\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutters\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lineNumberWidgetMarker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeHoverTooltips\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./codemirror_view.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/language/dist/index.js\nimport{NodeProp,Tree,IterMode,TreeFragment,Parser,NodeType,NodeSet}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/MGamyd2UebFXXyjBfB8y/lezer_common.js\";import{StateEffect,StateField,Facet,EditorState,countColumn,combineConfig,RangeSet,RangeSetBuilder,Prec}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/TWvikt1kG1sKU5G0pMRF/codemirror_state.js\";import{ViewPlugin,logException,EditorView,Decoration,WidgetType,gutter,GutterMarker}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/b3PAgW7qmQJC7rQUi9po/codemirror_view.js\";import{tags,tagHighlighter,highlightTree,styleTags}from\"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/YaHVqqT79imnSnw9WihN/lezer_highlight.js\";// ../../node_modules/style-mod/src/style-mod.js\nvar C=\"ͼ\";var COUNT=typeof Symbol==\"undefined\"?\"__\"+C:Symbol.for(C);var SET=typeof Symbol==\"undefined\"?\"__styleSet\"+Math.floor(Math.random()*1e8):Symbol(\"styleSet\");var top=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:{};var StyleModule=class{// :: () → string\n// Returns a string containing the module's CSS rules.\ngetRules(){return this.rules.join(\"\\n\");}// :: () → string\n// Generate a new unique CSS class name.\nstatic newName(){let id=top[COUNT]||1;top[COUNT]=id+1;return C+id.toString(36);}// :: (union<Document, ShadowRoot>, union<[StyleModule], StyleModule>, ?{nonce: ?string})\n//\n// Mount the given set of modules in the given DOM root, which ensures\n// that the CSS rules defined by the module are available in that\n// context.\n//\n// Rules are only added to the document once per root.\n//\n// Rule order will follow the order of the modules, so that rules from\n// modules later in the array take precedence of those from earlier\n// modules. If you call this function multiple times for the same root\n// in a way that changes the order of already mounted modules, the old\n// order will be changed.\n//\n// If a Content Security Policy nonce is provided, it is added to\n// the `<style>` tag generated by the library.\nstatic mount(root,modules,options){let set=root[SET],nonce=options&&options.nonce;if(!set)set=new StyleSet(root,nonce);else if(nonce)set.setNonce(nonce);set.mount(Array.isArray(modules)?modules:[modules],root);}// :: (Object<Style>, ?{finish: ?(string) → string})\n// Create a style module from the given spec.\n//\n// When `finish` is given, it is called on regular (non-`@`)\n// selectors (after `&` expansion) to compute the final selector.\nconstructor(spec,options){this.rules=[];let{finish}=options||{};function splitSelector(selector){return/^@/.test(selector)?[selector]:selector.split(/,\\s*/);}function render(selectors,spec2,target,isKeyframes){let local=[],isAt=/^@(\\w+)\\b/.exec(selectors[0]),keyframes=isAt&&isAt[1]==\"keyframes\";if(isAt&&spec2==null)return target.push(selectors[0]+\";\");for(let prop in spec2){let value=spec2[prop];if(/&/.test(prop)){render(prop.split(/,\\s*/).map(part=>selectors.map(sel=>part.replace(/&/,sel))).reduce((a,b)=>a.concat(b)),value,target);}else if(value&&typeof value==\"object\"){if(!isAt)throw new RangeError(\"The value of a property (\"+prop+\") should be a primitive value.\");render(splitSelector(prop),value,local,keyframes);}else if(value!=null){local.push(prop.replace(/_.*/,\"\").replace(/[A-Z]/g,l=>\"-\"+l.toLowerCase())+\": \"+value+\";\");}}if(local.length||keyframes){target.push((finish&&!isAt&&!isKeyframes?selectors.map(finish):selectors).join(\", \")+\" {\"+local.join(\" \")+\"}\");}}for(let prop in spec)render(splitSelector(prop),spec[prop],this.rules);}};var adoptedSet=/* @__PURE__ */new Map;var StyleSet=class{mount(modules,root){let sheet=this.sheet;let pos=0,j=0;for(let i=0;i<modules.length;i++){let mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&index>-1){this.modules.splice(index,1);j--;index=-1;}if(index==-1){this.modules.splice(j++,0,mod);if(sheet)for(let k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++);}else{while(j<index)pos+=this.modules[j++].rules.length;pos+=mod.rules.length;j++;}}if(sheet){if(root.adoptedStyleSheets.indexOf(this.sheet)<0)root.adoptedStyleSheets=[this.sheet,...root.adoptedStyleSheets];}else{let text=\"\";for(let i=0;i<this.modules.length;i++)text+=this.modules[i].getRules()+\"\\n\";this.styleTag.textContent=text;let target=root.head||root;if(this.styleTag.parentNode!=target)target.insertBefore(this.styleTag,target.firstChild);}}setNonce(nonce){if(this.styleTag&&this.styleTag.getAttribute(\"nonce\")!=nonce)this.styleTag.setAttribute(\"nonce\",nonce);}constructor(root,nonce){let doc=root.ownerDocument||root,win=doc.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){let adopted=adoptedSet.get(doc);if(adopted)return root[SET]=adopted;this.sheet=new win.CSSStyleSheet;adoptedSet.set(doc,this);}else{this.styleTag=doc.createElement(\"style\");if(nonce)this.styleTag.setAttribute(\"nonce\",nonce);}this.modules=[];root[SET]=this;}};// ../../node_modules/@codemirror/language/dist/index.js\nvar _a;var languageDataProp=/* @__PURE__ */new NodeProp;function defineLanguageFacet(baseData){return Facet.define({combine:baseData?values=>values.concat(baseData):void 0});}var sublanguageProp=/* @__PURE__ */new NodeProp;var Language=class{/**\n  Query whether this language is active at the given position.\n  */isActiveAt(state,pos,side=-1){return topNodeAt(state,pos,side).type.prop(languageDataProp)==this.data;}/**\n  Find the document regions that were parsed using this language.\n  The returned regions will _include_ any nested languages rooted\n  in this language, when those exist.\n  */findRegions(state){let lang=state.facet(language);if((lang===null||lang===void 0?void 0:lang.data)==this.data)return[{from:0,to:state.doc.length}];if(!lang||!lang.allowsNesting)return[];let result=[];let explore=(tree,from)=>{if(tree.prop(languageDataProp)==this.data){result.push({from,to:from+tree.length});return;}let mount=tree.prop(NodeProp.mounted);if(mount){if(mount.tree.prop(languageDataProp)==this.data){if(mount.overlay)for(let r of mount.overlay)result.push({from:r.from+from,to:r.to+from});else result.push({from,to:from+tree.length});return;}else if(mount.overlay){let size=result.length;explore(mount.tree,mount.overlay[0].from+from);if(result.length>size)return;}}for(let i=0;i<tree.children.length;i++){let ch=tree.children[i];if(ch instanceof Tree)explore(ch,tree.positions[i]+from);}};explore(syntaxTree(state),0);return result;}/**\n  Indicates whether this language allows nested languages. The\n  default implementation returns true.\n  */get allowsNesting(){return true;}/**\n  Construct a language object. If you need to invoke this\n  directly, first define a data facet with\n  [`defineLanguageFacet`](https://codemirror.net/6/docs/ref/#language.defineLanguageFacet), and then\n  configure your parser to [attach](https://codemirror.net/6/docs/ref/#language.languageDataProp) it\n  to the language's outer syntax node.\n  */constructor(data,parser,extraExtensions=[],name=\"\"){this.data=data;this.name=name;if(!EditorState.prototype.hasOwnProperty(\"tree\"))Object.defineProperty(EditorState.prototype,\"tree\",{get(){return syntaxTree(this);}});this.parser=parser;this.extension=[language.of(this),EditorState.languageData.of((state,pos,side)=>{let top2=topNodeAt(state,pos,side),data2=top2.type.prop(languageDataProp);if(!data2)return[];let base=state.facet(data2),sub=top2.type.prop(sublanguageProp);if(sub){let innerNode=top2.resolve(pos-top2.from,side);for(let sublang of sub)if(sublang.test(innerNode,state)){let data3=state.facet(sublang.facet);return sublang.type==\"replace\"?data3:data3.concat(base);}}return base;})].concat(extraExtensions);}};Language.setState=/* @__PURE__ */StateEffect.define();function topNodeAt(state,pos,side){let topLang=state.facet(language),tree=syntaxTree(state).topNode;if(!topLang||topLang.allowsNesting){for(let node=tree;node;node=node.enter(pos,side,IterMode.ExcludeBuffers))if(node.type.isTop)tree=node;}return tree;}var LRLanguage=class _LRLanguage extends Language{/**\n  Define a language from a parser.\n  */static define(spec){let data=defineLanguageFacet(spec.languageData);return new _LRLanguage(data,spec.parser.configure({props:[languageDataProp.add(type=>type.isTop?data:void 0)]}),spec.name);}/**\n  Create a new instance of this language with a reconfigured\n  version of its parser and optionally a new name.\n  */configure(options,name){return new _LRLanguage(this.data,this.parser.configure(options),name||this.name);}get allowsNesting(){return this.parser.hasWrappers();}constructor(data,parser,name){super(data,parser,[],name);this.parser=parser;}};function syntaxTree(state){let field=state.field(Language.state,false);return field?field.tree:Tree.empty;}function ensureSyntaxTree(state,upto,timeout=50){var _a2;let parse=(_a2=state.field(Language.state,false))===null||_a2===void 0?void 0:_a2.context;if(!parse)return null;let oldVieport=parse.viewport;parse.updateViewport({from:0,to:upto});let result=parse.isDone(upto)||parse.work(timeout,upto)?parse.tree:null;parse.updateViewport(oldVieport);return result;}function syntaxTreeAvailable(state,upto=state.doc.length){var _a2;return((_a2=state.field(Language.state,false))===null||_a2===void 0?void 0:_a2.context.isDone(upto))||false;}function forceParsing(view,upto=view.viewport.to,timeout=100){let success=ensureSyntaxTree(view.state,upto,timeout);if(success!=syntaxTree(view.state))view.dispatch({});return!!success;}function syntaxParserRunning(view){var _a2;return((_a2=view.plugin(parseWorker))===null||_a2===void 0?void 0:_a2.isWorking())||false;}var DocInput=class{get length(){return this.doc.length;}syncTo(pos){this.string=this.cursor.next(pos-this.cursorPos).value;this.cursorPos=pos+this.string.length;return this.cursorPos-this.string.length;}chunk(pos){this.syncTo(pos);return this.string;}get lineChunks(){return true;}read(from,to){let stringStart=this.cursorPos-this.string.length;if(from<stringStart||to>=this.cursorPos)return this.doc.sliceString(from,to);else return this.string.slice(from-stringStart,to-stringStart);}/**\n  Create an input object for the given document.\n  */constructor(doc){this.doc=doc;this.cursorPos=0;this.string=\"\";this.cursor=doc.iter();}};var currentContext=null;var ParseContext=class _ParseContext{/**\n  @internal\n  */static create(parser,state,viewport){return new _ParseContext(parser,state,[],Tree.empty,0,viewport,[],null);}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments);}/**\n  @internal\n  */work(until,upto){if(upto!=null&&upto>=this.state.doc.length)upto=void 0;if(this.tree!=Tree.empty&&this.isDone(upto!==null&&upto!==void 0?upto:this.state.doc.length)){this.takeTree();return true;}return this.withContext(()=>{var _a2;if(typeof until==\"number\"){let endTime=Date.now()+until;until=()=>Date.now()>endTime;}if(!this.parse)this.parse=this.startParse();if(upto!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>upto)&&upto<this.state.doc.length)this.parse.stopAt(upto);for(;;){let done=this.parse.advance();if(done){this.fragments=this.withoutTempSkipped(TreeFragment.addTree(done,this.fragments,this.parse.stoppedAt!=null));this.treeLen=(_a2=this.parse.stoppedAt)!==null&&_a2!==void 0?_a2:this.state.doc.length;this.tree=done;this.parse=null;if(this.treeLen<(upto!==null&&upto!==void 0?upto:this.state.doc.length))this.parse=this.startParse();else return true;}if(until())return false;}});}/**\n  @internal\n  */takeTree(){let pos,tree;if(this.parse&&(pos=this.parse.parsedPos)>=this.treeLen){if(this.parse.stoppedAt==null||this.parse.stoppedAt>pos)this.parse.stopAt(pos);this.withContext(()=>{while(!(tree=this.parse.advance())){}});this.treeLen=pos;this.tree=tree;this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,true));this.parse=null;}}withContext(f){let prev=currentContext;currentContext=this;try{return f();}finally{currentContext=prev;}}withoutTempSkipped(fragments){for(let r;r=this.tempSkipped.pop();)fragments=cutFragments(fragments,r.from,r.to);return fragments;}/**\n  @internal\n  */changes(changes,newState){let{fragments,tree,treeLen,viewport,skipped}=this;this.takeTree();if(!changes.empty){let ranges=[];changes.iterChangedRanges((fromA,toA,fromB,toB)=>ranges.push({fromA,toA,fromB,toB}));fragments=TreeFragment.applyChanges(fragments,ranges);tree=Tree.empty;treeLen=0;viewport={from:changes.mapPos(viewport.from,-1),to:changes.mapPos(viewport.to,1)};if(this.skipped.length){skipped=[];for(let r of this.skipped){let from=changes.mapPos(r.from,1),to=changes.mapPos(r.to,-1);if(from<to)skipped.push({from,to});}}}return new _ParseContext(this.parser,newState,fragments,tree,treeLen,viewport,skipped,this.scheduleOn);}/**\n  @internal\n  */updateViewport(viewport){if(this.viewport.from==viewport.from&&this.viewport.to==viewport.to)return false;this.viewport=viewport;let startLen=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from,to}=this.skipped[i];if(from<viewport.to&&to>viewport.from){this.fragments=cutFragments(this.fragments,from,to);this.skipped.splice(i--,1);}}if(this.skipped.length>=startLen)return false;this.reset();return true;}/**\n  @internal\n  */reset(){if(this.parse){this.takeTree();this.parse=null;}}/**\n  Notify the parse scheduler that the given region was skipped\n  because it wasn't in view, and the parse should be restarted\n  when it comes into view.\n  */skipUntilInView(from,to){this.skipped.push({from,to});}/**\n  Returns a parser intended to be used as placeholder when\n  asynchronously loading a nested parser. It'll skip its input and\n  mark it as not-really-parsed, so that the next update will parse\n  it again.\n  \n  When `until` is given, a reparse will be scheduled when that\n  promise resolves.\n  */static getSkippingParser(until){return new class extends Parser{createParse(input,fragments,ranges){let from=ranges[0].from,to=ranges[ranges.length-1].to;let parser={parsedPos:from,advance(){let cx=currentContext;if(cx){for(let r of ranges)cx.tempSkipped.push(r);if(until)cx.scheduleOn=cx.scheduleOn?Promise.all([cx.scheduleOn,until]):until;}this.parsedPos=to;return new Tree(NodeType.none,[],[],to-from);},stoppedAt:null,stopAt(){}};return parser;}};}/**\n  @internal\n  */isDone(upto){upto=Math.min(upto,this.state.doc.length);let frags=this.fragments;return this.treeLen>=upto&&frags.length&&frags[0].from==0&&frags[0].to>=upto;}/**\n  Get the context for the current parse, or `null` if no editor\n  parse is in progress.\n  */static get(){return currentContext;}constructor(parser,state,fragments=[],tree,treeLen,viewport,skipped,scheduleOn){this.parser=parser;this.state=state;this.fragments=fragments;this.tree=tree;this.treeLen=treeLen;this.viewport=viewport;this.skipped=skipped;this.scheduleOn=scheduleOn;this.parse=null;this.tempSkipped=[];}};function cutFragments(fragments,from,to){return TreeFragment.applyChanges(fragments,[{fromA:from,toA:to,fromB:from,toB:to}]);}var LanguageState=class _LanguageState{apply(tr){if(!tr.docChanged&&this.tree==this.context.tree)return this;let newCx=this.context.changes(tr.changes,tr.state);let upto=this.context.treeLen==tr.startState.doc.length?void 0:Math.max(tr.changes.mapPos(this.context.treeLen),newCx.viewport.to);if(!newCx.work(20,upto))newCx.takeTree();return new _LanguageState(newCx);}static init(state){let vpTo=Math.min(3e3,state.doc.length);let parseState=ParseContext.create(state.facet(language).parser,state,{from:0,to:vpTo});if(!parseState.work(20,vpTo))parseState.takeTree();return new _LanguageState(parseState);}constructor(context){this.context=context;this.tree=context.tree;}};Language.state=/* @__PURE__ */StateField.define({create:LanguageState.init,update(value,tr){for(let e of tr.effects)if(e.is(Language.setState))return e.value;if(tr.startState.facet(language)!=tr.state.facet(language))return LanguageState.init(tr.state);return value.apply(tr);}});var requestIdle=callback=>{let timeout=setTimeout(()=>callback(),500);return()=>clearTimeout(timeout);};if(typeof requestIdleCallback!=\"undefined\")requestIdle=callback=>{let idle=-1,timeout=setTimeout(()=>{idle=requestIdleCallback(callback,{timeout:500-100});},100);return()=>idle<0?clearTimeout(timeout):cancelIdleCallback(idle);};var isInputPending=typeof navigator!=\"undefined\"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null;var parseWorker=/* @__PURE__ */ViewPlugin.fromClass(class ParseWorker{update(update){let cx=this.view.state.field(Language.state).context;if(cx.updateViewport(update.view.viewport)||this.view.viewport.to>cx.treeLen)this.scheduleWork();if(update.docChanged){if(this.view.hasFocus)this.chunkBudget+=50;this.scheduleWork();}this.checkAsyncSchedule(cx);}scheduleWork(){if(this.working)return;let{state}=this.view,field=state.field(Language.state);if(field.tree!=field.context.tree||!field.context.isDone(state.doc.length))this.working=requestIdle(this.work);}work(deadline){this.working=null;let now=Date.now();if(this.chunkEnd<now&&(this.chunkEnd<0||this.view.hasFocus)){this.chunkEnd=now+3e4;this.chunkBudget=3e3;}if(this.chunkBudget<=0)return;let{state,viewport:{to:vpTo}}=this.view,field=state.field(Language.state);if(field.tree==field.context.tree&&field.context.isDone(vpTo+1e5))return;let endTime=Date.now()+Math.min(this.chunkBudget,100,deadline&&!isInputPending?Math.max(25,deadline.timeRemaining()-5):1e9);let viewportFirst=field.context.treeLen<vpTo&&state.doc.length>vpTo+1e3;let done=field.context.work(()=>{return isInputPending&&isInputPending()||Date.now()>endTime;},vpTo+(viewportFirst?0:1e5));this.chunkBudget-=Date.now()-now;if(done||this.chunkBudget<=0){field.context.takeTree();this.view.dispatch({effects:Language.setState.of(new LanguageState(field.context))});}if(this.chunkBudget>0&&!(done&&!viewportFirst))this.scheduleWork();this.checkAsyncSchedule(field.context);}checkAsyncSchedule(cx){if(cx.scheduleOn){this.workScheduled++;cx.scheduleOn.then(()=>this.scheduleWork()).catch(err=>logException(this.view.state,err)).then(()=>this.workScheduled--);cx.scheduleOn=null;}}destroy(){if(this.working)this.working();}isWorking(){return!!(this.working||this.workScheduled>0);}constructor(view){this.view=view;this.working=null;this.workScheduled=0;this.chunkEnd=-1;this.chunkBudget=-1;this.work=this.work.bind(this);this.scheduleWork();}},{eventHandlers:{focus(){this.scheduleWork();}}});var language=/* @__PURE__ */Facet.define({combine(languages){return languages.length?languages[0]:null;},enables:language2=>[Language.state,parseWorker,EditorView.contentAttributes.compute([language2],state=>{let lang=state.facet(language2);return lang&&lang.name?{\"data-language\":lang.name}:{};})]});var LanguageSupport=class{/**\n  Create a language support object.\n  */constructor(language2,support=[]){this.language=language2;this.support=support;this.extension=[language2,support];}};var LanguageDescription=class _LanguageDescription{/**\n  Start loading the the language. Will return a promise that\n  resolves to a [`LanguageSupport`](https://codemirror.net/6/docs/ref/#language.LanguageSupport)\n  object when the language successfully loads.\n  */load(){return this.loading||(this.loading=this.loadFunc().then(support=>this.support=support,err=>{this.loading=null;throw err;}));}/**\n  Create a language description.\n  */static of(spec){let{load,support}=spec;if(!load){if(!support)throw new RangeError(\"Must pass either 'load' or 'support' to LanguageDescription.of\");load=()=>Promise.resolve(support);}return new _LanguageDescription(spec.name,(spec.alias||[]).concat(spec.name).map(s=>s.toLowerCase()),spec.extensions||[],spec.filename,load,support);}/**\n  Look for a language in the given array of descriptions that\n  matches the filename. Will first match\n  [`filename`](https://codemirror.net/6/docs/ref/#language.LanguageDescription.filename) patterns,\n  and then [extensions](https://codemirror.net/6/docs/ref/#language.LanguageDescription.extensions),\n  and return the first language that matches.\n  */static matchFilename(descs,filename){for(let d of descs)if(d.filename&&d.filename.test(filename))return d;let ext=/\\.([^.]+)$/.exec(filename);if(ext){for(let d of descs)if(d.extensions.indexOf(ext[1])>-1)return d;}return null;}/**\n  Look for a language whose name or alias matches the the given\n  name (case-insensitively). If `fuzzy` is true, and no direct\n  matchs is found, this'll also search for a language whose name\n  or alias occurs in the string (for names shorter than three\n  characters, only when surrounded by non-word characters).\n  */static matchLanguageName(descs,name,fuzzy=true){name=name.toLowerCase();for(let d of descs)if(d.alias.some(a=>a==name))return d;if(fuzzy)for(let d of descs)for(let a of d.alias){let found=name.indexOf(a);if(found>-1&&(a.length>2||!/\\w/.test(name[found-1])&&!/\\w/.test(name[found+a.length])))return d;}return null;}constructor(name,alias,extensions,filename,loadFunc,support=void 0){this.name=name;this.alias=alias;this.extensions=extensions;this.filename=filename;this.loadFunc=loadFunc;this.support=support;this.loading=null;}};var indentService=/* @__PURE__ */Facet.define();var indentUnit=/* @__PURE__ */Facet.define({combine:values=>{if(!values.length)return\"  \";let unit=values[0];if(!unit||/\\S/.test(unit)||Array.from(unit).some(e=>e!=unit[0]))throw new Error(\"Invalid indent unit: \"+JSON.stringify(values[0]));return unit;}});function getIndentUnit(state){let unit=state.facet(indentUnit);return unit.charCodeAt(0)==9?state.tabSize*unit.length:unit.length;}function indentString(state,cols){let result=\"\",ts=state.tabSize,ch=state.facet(indentUnit)[0];if(ch==\"\t\"){while(cols>=ts){result+=\"\t\";cols-=ts;}ch=\" \";}for(let i=0;i<cols;i++)result+=ch;return result;}function getIndentation(context,pos){if(context instanceof EditorState)context=new IndentContext(context);for(let service of context.state.facet(indentService)){let result=service(context,pos);if(result!==void 0)return result;}let tree=syntaxTree(context.state);return tree?syntaxIndentation(context,tree,pos):null;}function indentRange(state,from,to){let updated=/* @__PURE__ */Object.create(null);let context=new IndentContext(state,{overrideIndentation:start=>{var _a2;return(_a2=updated[start])!==null&&_a2!==void 0?_a2:-1;}});let changes=[];for(let pos=from;pos<=to;){let line=state.doc.lineAt(pos);pos=line.to+1;let indent=getIndentation(context,line.from);if(indent==null)continue;if(!/\\S/.test(line.text))indent=0;let cur=/^\\s*/.exec(line.text)[0];let norm=indentString(state,indent);if(cur!=norm){updated[line.from]=indent;changes.push({from:line.from,to:line.from+cur.length,insert:norm});}}return state.changes(changes);}var IndentContext=class{/**\n  Get a description of the line at the given position, taking\n  [simulated line\n  breaks](https://codemirror.net/6/docs/ref/#language.IndentContext.constructor^options.simulateBreak)\n  into account. If there is such a break at `pos`, the `bias`\n  argument determines whether the part of the line line before or\n  after the break is used.\n  */lineAt(pos,bias=1){let line=this.state.doc.lineAt(pos);let{simulateBreak,simulateDoubleBreak}=this.options;if(simulateBreak!=null&&simulateBreak>=line.from&&simulateBreak<=line.to){if(simulateDoubleBreak&&simulateBreak==pos)return{text:\"\",from:pos};else if(bias<0?simulateBreak<pos:simulateBreak<=pos)return{text:line.text.slice(simulateBreak-line.from),from:simulateBreak};else return{text:line.text.slice(0,simulateBreak-line.from),from:line.from};}return line;}/**\n  Get the text directly after `pos`, either the entire line\n  or the next 100 characters, whichever is shorter.\n  */textAfterPos(pos,bias=1){if(this.options.simulateDoubleBreak&&pos==this.options.simulateBreak)return\"\";let{text,from}=this.lineAt(pos,bias);return text.slice(pos-from,Math.min(text.length,pos+100-from));}/**\n  Find the column for the given position.\n  */column(pos,bias=1){let{text,from}=this.lineAt(pos,bias);let result=this.countColumn(text,pos-from);let override=this.options.overrideIndentation?this.options.overrideIndentation(from):-1;if(override>-1)result+=override-this.countColumn(text,text.search(/\\S|$/));return result;}/**\n  Find the column position (taking tabs into account) of the given\n  position in the given string.\n  */countColumn(line,pos=line.length){return countColumn(line,this.state.tabSize,pos);}/**\n  Find the indentation column of the line at the given point.\n  */lineIndent(pos,bias=1){let{text,from}=this.lineAt(pos,bias);let override=this.options.overrideIndentation;if(override){let overriden=override(from);if(overriden>-1)return overriden;}return this.countColumn(text,text.search(/\\S|$/));}/**\n  Returns the [simulated line\n  break](https://codemirror.net/6/docs/ref/#language.IndentContext.constructor^options.simulateBreak)\n  for this context, if any.\n  */get simulatedBreak(){return this.options.simulateBreak||null;}/**\n  Create an indent context.\n  */constructor(state,options={}){this.state=state;this.options=options;this.unit=getIndentUnit(state);}};var indentNodeProp=/* @__PURE__ */new NodeProp;function syntaxIndentation(cx,ast,pos){return indentFrom(ast.resolveInner(pos).enterUnfinishedNodesBefore(pos),pos,cx);}function ignoreClosed(cx){return cx.pos==cx.options.simulateBreak&&cx.options.simulateDoubleBreak;}function indentStrategy(tree){let strategy=tree.type.prop(indentNodeProp);if(strategy)return strategy;let first=tree.firstChild,close;if(first&&(close=first.type.prop(NodeProp.closedBy))){let last=tree.lastChild,closed=last&&close.indexOf(last.name)>-1;return cx=>delimitedStrategy(cx,true,1,void 0,closed&&!ignoreClosed(cx)?last.from:void 0);}return tree.parent==null?topIndent:null;}function indentFrom(node,pos,base){for(;node;node=node.parent){let strategy=indentStrategy(node);if(strategy)return strategy(TreeIndentContext.create(base,pos,node));}return null;}function topIndent(){return 0;}var TreeIndentContext=class _TreeIndentContext extends IndentContext{/**\n  @internal\n  */static create(base,pos,node){return new _TreeIndentContext(base,pos,node);}/**\n  Get the text directly after `this.pos`, either the entire line\n  or the next 100 characters, whichever is shorter.\n  */get textAfter(){return this.textAfterPos(this.pos);}/**\n  Get the indentation at the reference line for `this.node`, which\n  is the line on which it starts, unless there is a node that is\n  _not_ a parent of this node covering the start of that line. If\n  so, the line at the start of that node is tried, again skipping\n  on if it is covered by another such node.\n  */get baseIndent(){return this.baseIndentFor(this.node);}/**\n  Get the indentation for the reference line of the given node\n  (see [`baseIndent`](https://codemirror.net/6/docs/ref/#language.TreeIndentContext.baseIndent)).\n  */baseIndentFor(node){let line=this.state.doc.lineAt(node.from);for(;;){let atBreak=node.resolve(line.from);while(atBreak.parent&&atBreak.parent.from==atBreak.from)atBreak=atBreak.parent;if(isParent(atBreak,node))break;line=this.state.doc.lineAt(atBreak.from);}return this.lineIndent(line.from);}/**\n  Continue looking for indentations in the node's parent nodes,\n  and return the result of that.\n  */continue(){let parent=this.node.parent;return parent?indentFrom(parent,this.pos,this.base):0;}constructor(base,pos,node){super(base.state,base.options);this.base=base;this.pos=pos;this.node=node;}};function isParent(parent,of){for(let cur=of;cur;cur=cur.parent)if(parent==cur)return true;return false;}function bracketedAligned(context){let tree=context.node;let openToken=tree.childAfter(tree.from),last=tree.lastChild;if(!openToken)return null;let sim=context.options.simulateBreak;let openLine=context.state.doc.lineAt(openToken.from);let lineEnd=sim==null||sim<=openLine.from?openLine.to:Math.min(openLine.to,sim);for(let pos=openToken.to;;){let next=tree.childAfter(pos);if(!next||next==last)return null;if(!next.type.isSkipped)return next.from<lineEnd?openToken:null;pos=next.to;}}function delimitedIndent({closing,align=true,units=1}){return context=>delimitedStrategy(context,align,units,closing);}function delimitedStrategy(context,align,units,closing,closedAt){let after=context.textAfter,space=after.match(/^\\s*/)[0].length;let closed=closing&&after.slice(space,space+closing.length)==closing||closedAt==context.pos+space;let aligned=align?bracketedAligned(context):null;if(aligned)return closed?context.column(aligned.from):context.column(aligned.to);return context.baseIndent+(closed?0:context.unit*units);}var flatIndent=context=>context.baseIndent;function continuedIndent({except,units=1}={}){return context=>{let matchExcept=except&&except.test(context.textAfter);return context.baseIndent+(matchExcept?0:units*context.unit);};}var DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(tr=>{if(!tr.docChanged||!tr.isUserEvent(\"input.type\")&&!tr.isUserEvent(\"input.complete\"))return tr;let rules=tr.startState.languageDataAt(\"indentOnInput\",tr.startState.selection.main.head);if(!rules.length)return tr;let doc=tr.newDoc,{head}=tr.newSelection.main,line=doc.lineAt(head);if(head>line.from+DontIndentBeyond)return tr;let lineStart=doc.sliceString(line.from,head);if(!rules.some(r=>r.test(lineStart)))return tr;let{state}=tr,last=-1,changes=[];for(let{head:head2}of state.selection.ranges){let line2=state.doc.lineAt(head2);if(line2.from==last)continue;last=line2.from;let indent=getIndentation(state,line2.from);if(indent==null)continue;let cur=/^\\s*/.exec(line2.text)[0];let norm=indentString(state,indent);if(cur!=norm)changes.push({from:line2.from,to:line2.from+cur.length,insert:norm});}return changes.length?[tr,{changes,sequential:true}]:tr;});}var foldService=/* @__PURE__ */Facet.define();var foldNodeProp=/* @__PURE__ */new NodeProp;function foldInside(node){let first=node.firstChild,last=node.lastChild;return first&&first.to<last.from?{from:first.to,to:last.type.isError?node.to:last.from}:null;}function syntaxFolding(state,start,end){let tree=syntaxTree(state);if(tree.length<end)return null;let inner=tree.resolveInner(end,1);let found=null;for(let cur=inner;cur;cur=cur.parent){if(cur.to<=end||cur.from>end)continue;if(found&&cur.from<start)break;let prop=cur.type.prop(foldNodeProp);if(prop&&(cur.to<tree.length-50||tree.length==state.doc.length||!isUnfinished(cur))){let value=prop(cur,state);if(value&&value.from<=end&&value.from>=start&&value.to>end)found=value;}}return found;}function isUnfinished(node){let ch=node.lastChild;return ch&&ch.to==node.to&&ch.type.isError;}function foldable(state,lineStart,lineEnd){for(let service of state.facet(foldService)){let result=service(state,lineStart,lineEnd);if(result)return result;}return syntaxFolding(state,lineStart,lineEnd);}function mapRange(range,mapping){let from=mapping.mapPos(range.from,1),to=mapping.mapPos(range.to,-1);return from>=to?void 0:{from,to};}var foldEffect=/* @__PURE__ */StateEffect.define({map:mapRange});var unfoldEffect=/* @__PURE__ */StateEffect.define({map:mapRange});function selectedLines(view){let lines=[];for(let{head}of view.state.selection.ranges){if(lines.some(l=>l.from<=head&&l.to>=head))continue;lines.push(view.lineBlockAt(head));}return lines;}var foldState=/* @__PURE__ */StateField.define({create(){return Decoration.none;},update(folded,tr){folded=folded.map(tr.changes);for(let e of tr.effects){if(e.is(foldEffect)&&!foldExists(folded,e.value.from,e.value.to))folded=folded.update({add:[foldWidget.range(e.value.from,e.value.to)]});else if(e.is(unfoldEffect))folded=folded.update({filter:(from,to)=>e.value.from!=from||e.value.to!=to,filterFrom:e.value.from,filterTo:e.value.to});}if(tr.selection){let onSelection=false,{head}=tr.selection.main;folded.between(head,head,(a,b)=>{if(a<head&&b>head)onSelection=true;});if(onSelection)folded=folded.update({filterFrom:head,filterTo:head,filter:(a,b)=>b<=head||a>=head});}return folded;},provide:f=>EditorView.decorations.from(f),toJSON(folded,state){let ranges=[];folded.between(0,state.doc.length,(from,to)=>{ranges.push(from,to);});return ranges;},fromJSON(value){if(!Array.isArray(value)||value.length%2)throw new RangeError(\"Invalid JSON for fold state\");let ranges=[];for(let i=0;i<value.length;){let from=value[i++],to=value[i++];if(typeof from!=\"number\"||typeof to!=\"number\")throw new RangeError(\"Invalid JSON for fold state\");ranges.push(foldWidget.range(from,to));}return Decoration.set(ranges,true);}});function foldedRanges(state){return state.field(foldState,false)||RangeSet.empty;}function findFold(state,from,to){var _a2;let found=null;(_a2=state.field(foldState,false))===null||_a2===void 0?void 0:_a2.between(from,to,(from2,to2)=>{if(!found||found.from>from2)found={from:from2,to:to2};});return found;}function foldExists(folded,from,to){let found=false;folded.between(from,from,(a,b)=>{if(a==from&&b==to)found=true;});return found;}function maybeEnable(state,other){return state.field(foldState,false)?other:other.concat(StateEffect.appendConfig.of(codeFolding()));}var foldCode=view=>{for(let line of selectedLines(view)){let range=foldable(view.state,line.from,line.to);if(range){view.dispatch({effects:maybeEnable(view.state,[foldEffect.of(range),announceFold(view,range)])});return true;}}return false;};var unfoldCode=view=>{if(!view.state.field(foldState,false))return false;let effects=[];for(let line of selectedLines(view)){let folded=findFold(view.state,line.from,line.to);if(folded)effects.push(unfoldEffect.of(folded),announceFold(view,folded,false));}if(effects.length)view.dispatch({effects});return effects.length>0;};function announceFold(view,range,fold=true){let lineFrom=view.state.doc.lineAt(range.from).number,lineTo=view.state.doc.lineAt(range.to).number;return EditorView.announce.of(`${view.state.phrase(fold?\"Folded lines\":\"Unfolded lines\")} ${lineFrom} ${view.state.phrase(\"to\")} ${lineTo}.`);}var foldAll=view=>{let{state}=view,effects=[];for(let pos=0;pos<state.doc.length;){let line=view.lineBlockAt(pos),range=foldable(state,line.from,line.to);if(range)effects.push(foldEffect.of(range));pos=(range?view.lineBlockAt(range.to):line).to+1;}if(effects.length)view.dispatch({effects:maybeEnable(view.state,effects)});return!!effects.length;};var unfoldAll=view=>{let field=view.state.field(foldState,false);if(!field||!field.size)return false;let effects=[];field.between(0,view.state.doc.length,(from,to)=>{effects.push(unfoldEffect.of({from,to}));});view.dispatch({effects});return true;};function foldableContainer(view,lineBlock){for(let line=lineBlock;;){let foldableRegion=foldable(view.state,line.from,line.to);if(foldableRegion&&foldableRegion.to>lineBlock.from)return foldableRegion;if(!line.from)return null;line=view.lineBlockAt(line.from-1);}}var toggleFold=view=>{let effects=[];for(let line of selectedLines(view)){let folded=findFold(view.state,line.from,line.to);if(folded){effects.push(unfoldEffect.of(folded),announceFold(view,folded,false));}else{let foldRange=foldableContainer(view,line);if(foldRange)effects.push(foldEffect.of(foldRange),announceFold(view,foldRange));}}if(effects.length>0)view.dispatch({effects:maybeEnable(view.state,effects)});return!!effects.length;};var foldKeymap=[{key:\"Ctrl-Shift-[\",mac:\"Cmd-Alt-[\",run:foldCode},{key:\"Ctrl-Shift-]\",mac:\"Cmd-Alt-]\",run:unfoldCode},{key:\"Ctrl-Alt-[\",run:foldAll},{key:\"Ctrl-Alt-]\",run:unfoldAll}];var defaultConfig={placeholderDOM:null,placeholderText:\"…\"};var foldConfig=/* @__PURE__ */Facet.define({combine(values){return combineConfig(values,defaultConfig);}});function codeFolding(config){let result=[foldState,baseTheme$1];if(config)result.push(foldConfig.of(config));return result;}var foldWidget=/* @__PURE__ */Decoration.replace({widget:/* @__PURE__ */new class extends WidgetType{toDOM(view){let{state}=view,conf=state.facet(foldConfig);let onclick=event=>{let line=view.lineBlockAt(view.posAtDOM(event.target));let folded=findFold(view.state,line.from,line.to);if(folded)view.dispatch({effects:unfoldEffect.of(folded)});event.preventDefault();};if(conf.placeholderDOM)return conf.placeholderDOM(view,onclick);let element=document.createElement(\"span\");element.textContent=conf.placeholderText;element.setAttribute(\"aria-label\",state.phrase(\"folded code\"));element.title=state.phrase(\"unfold\");element.className=\"cm-foldPlaceholder\";element.onclick=onclick;return element;}}});var foldGutterDefaults={openText:\"⌄\",closedText:\"›\",markerDOM:null,domEventHandlers:{},foldingChanged:()=>false};var FoldMarker=class extends GutterMarker{eq(other){return this.config==other.config&&this.open==other.open;}toDOM(view){if(this.config.markerDOM)return this.config.markerDOM(this.open);let span=document.createElement(\"span\");span.textContent=this.open?this.config.openText:this.config.closedText;span.title=view.state.phrase(this.open?\"Fold line\":\"Unfold line\");return span;}constructor(config,open){super();this.config=config;this.open=open;}};function foldGutter(config={}){let fullConfig=Object.assign(Object.assign({},foldGutterDefaults),config);let canFold=new FoldMarker(fullConfig,true),canUnfold=new FoldMarker(fullConfig,false);let markers=ViewPlugin.fromClass(class{update(update){if(update.docChanged||update.viewportChanged||update.startState.facet(language)!=update.state.facet(language)||update.startState.field(foldState,false)!=update.state.field(foldState,false)||syntaxTree(update.startState)!=syntaxTree(update.state)||fullConfig.foldingChanged(update))this.markers=this.buildMarkers(update.view);}buildMarkers(view){let builder=new RangeSetBuilder;for(let line of view.viewportLineBlocks){let mark=findFold(view.state,line.from,line.to)?canUnfold:foldable(view.state,line.from,line.to)?canFold:null;if(mark)builder.add(line.from,line.from,mark);}return builder.finish();}constructor(view){this.from=view.viewport.from;this.markers=this.buildMarkers(view);}});let{domEventHandlers}=fullConfig;return[markers,gutter({class:\"cm-foldGutter\",markers(view){var _a2;return((_a2=view.plugin(markers))===null||_a2===void 0?void 0:_a2.markers)||RangeSet.empty;},initialSpacer(){return new FoldMarker(fullConfig,false);},domEventHandlers:Object.assign(Object.assign({},domEventHandlers),{click:(view,line,event)=>{if(domEventHandlers.click&&domEventHandlers.click(view,line,event))return true;let folded=findFold(view.state,line.from,line.to);if(folded){view.dispatch({effects:unfoldEffect.of(folded)});return true;}let range=foldable(view.state,line.from,line.to);if(range){view.dispatch({effects:foldEffect.of(range)});return true;}return false;}})}),codeFolding()];}var baseTheme$1=/* @__PURE__ */EditorView.baseTheme({\".cm-foldPlaceholder\":{backgroundColor:\"#eee\",border:\"1px solid #ddd\",color:\"#888\",borderRadius:\".2em\",margin:\"0 1px\",padding:\"0 1px\",cursor:\"pointer\"},\".cm-foldGutter span\":{padding:\"0 1px\",cursor:\"pointer\"}});var HighlightStyle=class _HighlightStyle{/**\n  Create a highlighter style that associates the given styles to\n  the given tags. The specs must be objects that hold a style tag\n  or array of tags in their `tag` property, and either a single\n  `class` property providing a static CSS class (for highlighter\n  that rely on external styling), or a\n  [`style-mod`](https://github.com/marijnh/style-mod#documentation)-style\n  set of CSS properties (which define the styling for those tags).\n  \n  The CSS rules created for a highlighter will be emitted in the\n  order of the spec's properties. That means that for elements that\n  have multiple tags associated with them, styles defined further\n  down in the list will have a higher CSS precedence than styles\n  defined earlier.\n  */static define(specs,options){return new _HighlightStyle(specs,options||{});}constructor(specs,options){this.specs=specs;let modSpec;function def(spec){let cls=StyleModule.newName();(modSpec||(modSpec=/* @__PURE__ */Object.create(null)))[\".\"+cls]=spec;return cls;}const all=typeof options.all==\"string\"?options.all:options.all?def(options.all):void 0;const scopeOpt=options.scope;this.scope=scopeOpt instanceof Language?type=>type.prop(languageDataProp)==scopeOpt.data:scopeOpt?type=>type==scopeOpt:void 0;this.style=tagHighlighter(specs.map(style=>({tag:style.tag,class:style.class||def(Object.assign({},style,{tag:null}))})),{all}).style;this.module=modSpec?new StyleModule(modSpec):null;this.themeType=options.themeType;}};var highlighterFacet=/* @__PURE__ */Facet.define();var fallbackHighlighter=/* @__PURE__ */Facet.define({combine(values){return values.length?[values[0]]:null;}});function getHighlighters(state){let main=state.facet(highlighterFacet);return main.length?main:state.facet(fallbackHighlighter);}function syntaxHighlighting(highlighter,options){let ext=[treeHighlighter],themeType;if(highlighter instanceof HighlightStyle){if(highlighter.module)ext.push(EditorView.styleModule.of(highlighter.module));themeType=highlighter.themeType;}if(options===null||options===void 0?void 0:options.fallback)ext.push(fallbackHighlighter.of(highlighter));else if(themeType)ext.push(highlighterFacet.computeN([EditorView.darkTheme],state=>{return state.facet(EditorView.darkTheme)==(themeType==\"dark\")?[highlighter]:[];}));else ext.push(highlighterFacet.of(highlighter));return ext;}function highlightingFor(state,tags2,scope){let highlighters=getHighlighters(state);let result=null;if(highlighters)for(let highlighter of highlighters){if(!highlighter.scope||scope&&highlighter.scope(scope)){let cls=highlighter.style(tags2);if(cls)result=result?result+\" \"+cls:cls;}}return result;}var TreeHighlighter=class{update(update){let tree=syntaxTree(update.state),highlighters=getHighlighters(update.state);let styleChange=highlighters!=getHighlighters(update.startState);if(tree.length<update.view.viewport.to&&!styleChange&&tree.type==this.tree.type){this.decorations=this.decorations.map(update.changes);}else if(tree!=this.tree||update.viewportChanged||styleChange){this.tree=tree;this.decorations=this.buildDeco(update.view,highlighters);}}buildDeco(view,highlighters){if(!highlighters||!this.tree.length)return Decoration.none;let builder=new RangeSetBuilder;for(let{from,to}of view.visibleRanges){highlightTree(this.tree,highlighters,(from2,to2,style)=>{builder.add(from2,to2,this.markCache[style]||(this.markCache[style]=Decoration.mark({class:style})));},from,to);}return builder.finish();}constructor(view){this.markCache=/* @__PURE__ */Object.create(null);this.tree=syntaxTree(view.state);this.decorations=this.buildDeco(view,getHighlighters(view.state));}};var treeHighlighter=/* @__PURE__ */Prec.high(/* @__PURE__ */ViewPlugin.fromClass(TreeHighlighter,{decorations:v=>v.decorations}));var defaultHighlightStyle=/* @__PURE__ */HighlightStyle.define([{tag:tags.meta,color:\"#404740\"},{tag:tags.link,textDecoration:\"underline\"},{tag:tags.heading,textDecoration:\"underline\",fontWeight:\"bold\"},{tag:tags.emphasis,fontStyle:\"italic\"},{tag:tags.strong,fontWeight:\"bold\"},{tag:tags.strikethrough,textDecoration:\"line-through\"},{tag:tags.keyword,color:\"#708\"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName],color:\"#219\"},{tag:[tags.literal,tags.inserted],color:\"#164\"},{tag:[tags.string,tags.deleted],color:\"#a11\"},{tag:[tags.regexp,tags.escape,/* @__PURE__ */tags.special(tags.string)],color:\"#e40\"},{tag:/* @__PURE__ */tags.definition(tags.variableName),color:\"#00f\"},{tag:/* @__PURE__ */tags.local(tags.variableName),color:\"#30a\"},{tag:[tags.typeName,tags.namespace],color:\"#085\"},{tag:tags.className,color:\"#167\"},{tag:[/* @__PURE__ */tags.special(tags.variableName),tags.macroName],color:\"#256\"},{tag:/* @__PURE__ */tags.definition(tags.propertyName),color:\"#00c\"},{tag:tags.comment,color:\"#940\"},{tag:tags.invalid,color:\"#f00\"}]);var baseTheme=/* @__PURE__ */EditorView.baseTheme({\"&.cm-focused .cm-matchingBracket\":{backgroundColor:\"#328c8252\"},\"&.cm-focused .cm-nonmatchingBracket\":{backgroundColor:\"#bb555544\"}});var DefaultScanDist=1e4;var DefaultBrackets=\"()[]{}\";var bracketMatchingConfig=/* @__PURE__ */Facet.define({combine(configs){return combineConfig(configs,{afterCursor:true,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist,renderMatch:defaultRenderMatch});}});var matchingMark=/* @__PURE__ */Decoration.mark({class:\"cm-matchingBracket\"});var nonmatchingMark=/* @__PURE__ */Decoration.mark({class:\"cm-nonmatchingBracket\"});function defaultRenderMatch(match){let decorations=[];let mark=match.matched?matchingMark:nonmatchingMark;decorations.push(mark.range(match.start.from,match.start.to));if(match.end)decorations.push(mark.range(match.end.from,match.end.to));return decorations;}var bracketMatchingState=/* @__PURE__ */StateField.define({create(){return Decoration.none;},update(deco,tr){if(!tr.docChanged&&!tr.selection)return deco;let decorations=[];let config=tr.state.facet(bracketMatchingConfig);for(let range of tr.state.selection.ranges){if(!range.empty)continue;let match=matchBrackets(tr.state,range.head,-1,config)||range.head>0&&matchBrackets(tr.state,range.head-1,1,config)||config.afterCursor&&(matchBrackets(tr.state,range.head,1,config)||range.head<tr.state.doc.length&&matchBrackets(tr.state,range.head+1,-1,config));if(match)decorations=decorations.concat(config.renderMatch(match,tr.state));}return Decoration.set(decorations,true);},provide:f=>EditorView.decorations.from(f)});var bracketMatchingUnique=[bracketMatchingState,baseTheme];function bracketMatching(config={}){return[bracketMatchingConfig.of(config),bracketMatchingUnique];}var bracketMatchingHandle=/* @__PURE__ */new NodeProp;function matchingNodes(node,dir,brackets){let byProp=node.prop(dir<0?NodeProp.openedBy:NodeProp.closedBy);if(byProp)return byProp;if(node.name.length==1){let index=brackets.indexOf(node.name);if(index>-1&&index%2==(dir<0?1:0))return[brackets[index+dir]];}return null;}function findHandle(node){let hasHandle=node.type.prop(bracketMatchingHandle);return hasHandle?hasHandle(node.node):node;}function matchBrackets(state,pos,dir,config={}){let maxScanDistance=config.maxScanDistance||DefaultScanDist,brackets=config.brackets||DefaultBrackets;let tree=syntaxTree(state),node=tree.resolveInner(pos,dir);for(let cur=node;cur;cur=cur.parent){let matches=matchingNodes(cur.type,dir,brackets);if(matches&&cur.from<cur.to){let handle=findHandle(cur);if(handle&&(dir>0?pos>=handle.from&&pos<handle.to:pos>handle.from&&pos<=handle.to))return matchMarkedBrackets(state,pos,dir,cur,handle,matches,brackets);}}return matchPlainBrackets(state,pos,dir,tree,node.type,maxScanDistance,brackets);}function matchMarkedBrackets(_state,_pos,dir,token,handle,matching,brackets){let parent=token.parent,firstToken={from:handle.from,to:handle.to};let depth=0,cursor=parent===null||parent===void 0?void 0:parent.cursor();if(cursor&&(dir<0?cursor.childBefore(token.from):cursor.childAfter(token.to)))do{if(dir<0?cursor.to<=token.from:cursor.from>=token.to){if(depth==0&&matching.indexOf(cursor.type.name)>-1&&cursor.from<cursor.to){let endHandle=findHandle(cursor);return{start:firstToken,end:endHandle?{from:endHandle.from,to:endHandle.to}:void 0,matched:true};}else if(matchingNodes(cursor.type,dir,brackets)){depth++;}else if(matchingNodes(cursor.type,-dir,brackets)){if(depth==0){let endHandle=findHandle(cursor);return{start:firstToken,end:endHandle&&endHandle.from<endHandle.to?{from:endHandle.from,to:endHandle.to}:void 0,matched:false};}depth--;}}}while(dir<0?cursor.prevSibling():cursor.nextSibling())return{start:firstToken,matched:false};}function matchPlainBrackets(state,pos,dir,tree,tokenType,maxScanDistance,brackets){let startCh=dir<0?state.sliceDoc(pos-1,pos):state.sliceDoc(pos,pos+1);let bracket=brackets.indexOf(startCh);if(bracket<0||bracket%2==0!=dir>0)return null;let startToken={from:dir<0?pos-1:pos,to:dir>0?pos+1:pos};let iter=state.doc.iterRange(pos,dir>0?state.doc.length:0),depth=0;for(let distance=0;!iter.next().done&&distance<=maxScanDistance;){let text=iter.value;if(dir<0)distance+=text.length;let basePos=pos+distance*dir;for(let pos2=dir>0?0:text.length-1,end=dir>0?text.length:-1;pos2!=end;pos2+=dir){let found=brackets.indexOf(text[pos2]);if(found<0||tree.resolveInner(basePos+pos2,1).type!=tokenType)continue;if(found%2==0==dir>0){depth++;}else if(depth==1){return{start:startToken,end:{from:basePos+pos2,to:basePos+pos2+1},matched:found>>1==bracket>>1};}else{depth--;}}if(dir>0)distance+=text.length;}return iter.done?{start:startToken,matched:false}:null;}function countCol(string,end,tabSize,startIndex=0,startValue=0){if(end==null){end=string.search(/[^\\s\\u00a0]/);if(end==-1)end=string.length;}let n=startValue;for(let i=startIndex;i<end;i++){if(string.charCodeAt(i)==9)n+=tabSize-n%tabSize;else n++;}return n;}var StringStream=class{/**\n  True if we are at the end of the line.\n  */eol(){return this.pos>=this.string.length;}/**\n  True if we are at the start of the line.\n  */sol(){return this.pos==0;}/**\n  Get the next code unit after the current position, or undefined\n  if we're at the end of the line.\n  */peek(){return this.string.charAt(this.pos)||void 0;}/**\n  Read the next code unit and advance `this.pos`.\n  */next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++);}/**\n  Match the next character against the given string, regular\n  expression, or predicate. Consume and return it if it matches.\n  */eat(match){let ch=this.string.charAt(this.pos);let ok;if(typeof match==\"string\")ok=ch==match;else ok=ch&&(match instanceof RegExp?match.test(ch):match(ch));if(ok){++this.pos;return ch;}}/**\n  Continue matching characters that match the given string,\n  regular expression, or predicate function. Return true if any\n  characters were consumed.\n  */eatWhile(match){let start=this.pos;while(this.eat(match)){}return this.pos>start;}/**\n  Consume whitespace ahead of `this.pos`. Return true if any was\n  found.\n  */eatSpace(){let start=this.pos;while(/[\\s\\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start;}/**\n  Move to the end of the line.\n  */skipToEnd(){this.pos=this.string.length;}/**\n  Move to directly before the given character, if found on the\n  current line.\n  */skipTo(ch){let found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true;}}/**\n  Move back `n` characters.\n  */backUp(n){this.pos-=n;}/**\n  Get the column position at `this.pos`.\n  */column(){if(this.lastColumnPos<this.start){this.lastColumnValue=countCol(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue);this.lastColumnPos=this.start;}return this.lastColumnValue;}/**\n  Get the indentation column of the current line.\n  */indentation(){var _a2;return(_a2=this.overrideIndent)!==null&&_a2!==void 0?_a2:countCol(this.string,null,this.tabSize);}/**\n  Match the input against the given string or regular expression\n  (which should start with a `^`). Return true or the regexp match\n  if it matches.\n  \n  Unless `consume` is set to `false`, this will move `this.pos`\n  past the matched text.\n  \n  When matching a string `caseInsensitive` can be set to true to\n  make the match case-insensitive.\n  */match(pattern,consume,caseInsensitive){if(typeof pattern==\"string\"){let cased=str=>caseInsensitive?str.toLowerCase():str;let substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true;}else return null;}else{let match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match;}}/**\n  Get the current token.\n  */current(){return this.string.slice(this.start,this.pos);}/**\n  Create a stream.\n  */constructor(string,tabSize,indentUnit2,overrideIndent){this.string=string;this.tabSize=tabSize;this.indentUnit=indentUnit2;this.overrideIndent=overrideIndent;this.pos=0;this.start=0;this.lastColumnPos=0;this.lastColumnValue=0;}};function fullParser(spec){return{name:spec.name||\"\",token:spec.token,blankLine:spec.blankLine||(()=>{}),startState:spec.startState||(()=>true),copyState:spec.copyState||defaultCopyState,indent:spec.indent||(()=>null),languageData:spec.languageData||{},tokenTable:spec.tokenTable||noTokens};}function defaultCopyState(state){if(typeof state!=\"object\")return state;let newState={};for(let prop in state){let val=state[prop];newState[prop]=val instanceof Array?val.slice():val;}return newState;}var IndentedFrom=/* @__PURE__ */new WeakMap;var StreamLanguage=class _StreamLanguage extends Language{/**\n  Define a stream language.\n  */static define(spec){return new _StreamLanguage(spec);}getIndent(cx,pos){let tree=syntaxTree(cx.state),at=tree.resolve(pos);while(at&&at.type!=this.topNode)at=at.parent;if(!at)return null;let from=void 0;let{overrideIndentation}=cx.options;if(overrideIndentation){from=IndentedFrom.get(cx.state);if(from!=null&&from<pos-1e4)from=void 0;}let start=findState(this,tree,0,at.from,from!==null&&from!==void 0?from:pos),statePos,state;if(start){state=start.state;statePos=start.pos+1;}else{state=this.streamParser.startState(cx.unit);statePos=0;}if(pos-statePos>1e4)return null;while(statePos<pos){let line2=cx.state.doc.lineAt(statePos),end=Math.min(pos,line2.to);if(line2.length){let indentation=overrideIndentation?overrideIndentation(line2.from):-1;let stream=new StringStream(line2.text,cx.state.tabSize,cx.unit,indentation<0?void 0:indentation);while(stream.pos<end-line2.from)readToken(this.streamParser.token,stream,state);}else{this.streamParser.blankLine(state,cx.unit);}if(end==pos)break;statePos=line2.to+1;}let line=cx.lineAt(pos);if(overrideIndentation&&from==null)IndentedFrom.set(cx.state,line.from);return this.streamParser.indent(state,/^\\s*(.*)/.exec(line.text)[1],cx);}get allowsNesting(){return false;}constructor(parser){let data=defineLanguageFacet(parser.languageData);let p=fullParser(parser),self;let impl=new class extends Parser{createParse(input,fragments,ranges){return new Parse(self,input,fragments,ranges);}};super(data,impl,[indentService.of((cx,pos)=>this.getIndent(cx,pos))],parser.name);this.topNode=docID(data);self=this;this.streamParser=p;this.stateAfter=new NodeProp({perNode:true});this.tokenTable=parser.tokenTable?new TokenTable(p.tokenTable):defaultTokenTable;}};function findState(lang,tree,off,startPos,before){let state=off>=startPos&&off+tree.length<=before&&tree.prop(lang.stateAfter);if(state)return{state:lang.streamParser.copyState(state),pos:off+tree.length};for(let i=tree.children.length-1;i>=0;i--){let child=tree.children[i],pos=off+tree.positions[i];let found=child instanceof Tree&&pos<before&&findState(lang,child,pos,startPos,before);if(found)return found;}return null;}function cutTree(lang,tree,from,to,inside){if(inside&&from<=0&&to>=tree.length)return tree;if(!inside&&tree.type==lang.topNode)inside=true;for(let i=tree.children.length-1;i>=0;i--){let pos=tree.positions[i],child=tree.children[i],inner;if(pos<to&&child instanceof Tree){if(!(inner=cutTree(lang,child,from-pos,to-pos,inside)))break;return!inside?inner:new Tree(tree.type,tree.children.slice(0,i).concat(inner),tree.positions.slice(0,i+1),pos+inner.length);}}return null;}function findStartInFragments(lang,fragments,startPos,editorState){for(let f of fragments){let from=f.from+(f.openStart?25:0),to=f.to-(f.openEnd?25:0);let found=from<=startPos&&to>startPos&&findState(lang,f.tree,0-f.offset,startPos,to),tree;if(found&&(tree=cutTree(lang,f.tree,startPos+f.offset,found.pos+f.offset,false)))return{state:found.state,tree};}return{state:lang.streamParser.startState(editorState?getIndentUnit(editorState):4),tree:Tree.empty};}var Parse=class{advance(){let context=ParseContext.get();let parseEnd=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt);let end=Math.min(parseEnd,this.chunkStart+2048);if(context)end=Math.min(end,context.viewport.to);while(this.parsedPos<end)this.parseLine(context);if(this.chunkStart<this.parsedPos)this.finishChunk();if(this.parsedPos>=parseEnd)return this.finish();if(context&&this.parsedPos>=context.viewport.to){context.skipUntilInView(this.parsedPos,parseEnd);return this.finish();}return null;}stopAt(pos){this.stoppedAt=pos;}lineAfter(pos){let chunk=this.input.chunk(pos);if(!this.input.lineChunks){let eol=chunk.indexOf(\"\\n\");if(eol>-1)chunk=chunk.slice(0,eol);}else if(chunk==\"\\n\"){chunk=\"\";}return pos+chunk.length<=this.to?chunk:chunk.slice(0,this.to-pos);}nextLine(){let from=this.parsedPos,line=this.lineAfter(from),end=from+line.length;for(let index=this.rangeIndex;;){let rangeEnd=this.ranges[index].to;if(rangeEnd>=end)break;line=line.slice(0,rangeEnd-(end-line.length));index++;if(index==this.ranges.length)break;let rangeStart=this.ranges[index].from;let after=this.lineAfter(rangeStart);line+=after;end=rangeStart+after.length;}return{line,end};}skipGapsTo(pos,offset,side){for(;;){let end=this.ranges[this.rangeIndex].to,offPos=pos+offset;if(side>0?end>offPos:end>=offPos)break;let start=this.ranges[++this.rangeIndex].from;offset+=start-end;}return offset;}moveRangeIndex(){while(this.ranges[this.rangeIndex].to<this.parsedPos)this.rangeIndex++;}emitToken(id,from,to,size,offset){if(this.ranges.length>1){offset=this.skipGapsTo(from,offset,1);from+=offset;let len0=this.chunk.length;offset=this.skipGapsTo(to,offset,-1);to+=offset;size+=this.chunk.length-len0;}this.chunk.push(id,from,to,size);return offset;}parseLine(context){let{line,end}=this.nextLine(),offset=0,{streamParser}=this.lang;let stream=new StringStream(line,context?context.state.tabSize:4,context?getIndentUnit(context.state):2);if(stream.eol()){streamParser.blankLine(this.state,stream.indentUnit);}else{while(!stream.eol()){let token=readToken(streamParser.token,stream,this.state);if(token)offset=this.emitToken(this.lang.tokenTable.resolve(token),this.parsedPos+stream.start,this.parsedPos+stream.pos,4,offset);if(stream.start>1e4)break;}}this.parsedPos=end;this.moveRangeIndex();if(this.parsedPos<this.to)this.parsedPos++;}finishChunk(){let tree=Tree.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet,topID:0,maxBufferLength:2048,reused:this.chunkReused});tree=new Tree(tree.type,tree.children,tree.positions,tree.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]);this.chunks.push(tree);this.chunkPos.push(this.chunkStart-this.ranges[0].from);this.chunk=[];this.chunkReused=void 0;this.chunkStart=this.parsedPos;}finish(){return new Tree(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance();}constructor(lang,input,fragments,ranges){this.lang=lang;this.input=input;this.fragments=fragments;this.ranges=ranges;this.stoppedAt=null;this.chunks=[];this.chunkPos=[];this.chunk=[];this.chunkReused=void 0;this.rangeIndex=0;this.to=ranges[ranges.length-1].to;let context=ParseContext.get(),from=ranges[0].from;let{state,tree}=findStartInFragments(lang,fragments,from,context===null||context===void 0?void 0:context.state);this.state=state;this.parsedPos=this.chunkStart=from+tree.length;for(let i=0;i<tree.children.length;i++){this.chunks.push(tree.children[i]);this.chunkPos.push(tree.positions[i]);}if(context&&this.parsedPos<context.viewport.from-1e5){this.state=this.lang.streamParser.startState(getIndentUnit(context.state));context.skipUntilInView(this.parsedPos,context.viewport.from);this.parsedPos=context.viewport.from;}this.moveRangeIndex();}};function readToken(token,stream,state){stream.start=stream.pos;for(let i=0;i<10;i++){let result=token(stream,state);if(stream.pos>stream.start)return result;}throw new Error(\"Stream parser failed to advance stream.\");}var noTokens=/* @__PURE__ */Object.create(null);var typeArray=[NodeType.none];var nodeSet=/* @__PURE__ */new NodeSet(typeArray);var warned=[];var defaultTable=/* @__PURE__ */Object.create(null);for(let[legacyName,name]of[[\"variable\",\"variableName\"],[\"variable-2\",\"variableName.special\"],[\"string-2\",\"string.special\"],[\"def\",\"variableName.definition\"],[\"tag\",\"tagName\"],[\"attribute\",\"attributeName\"],[\"type\",\"typeName\"],[\"builtin\",\"variableName.standard\"],[\"qualifier\",\"modifier\"],[\"error\",\"invalid\"],[\"header\",\"heading\"],[\"property\",\"propertyName\"]])defaultTable[legacyName]=/* @__PURE__ */createTokenType(noTokens,name);var TokenTable=class{resolve(tag){return!tag?0:this.table[tag]||(this.table[tag]=createTokenType(this.extra,tag));}constructor(extra){this.extra=extra;this.table=Object.assign(/* @__PURE__ */Object.create(null),defaultTable);}};var defaultTokenTable=/* @__PURE__ */new TokenTable(noTokens);function warnForPart(part,msg){if(warned.indexOf(part)>-1)return;warned.push(part);console.warn(msg);}function createTokenType(extra,tagStr){let tag=null;for(let part of tagStr.split(\".\")){let value=extra[part]||tags[part];if(!value){warnForPart(part,`Unknown highlighting tag ${part}`);}else if(typeof value==\"function\"){if(!tag)warnForPart(part,`Modifier ${part} used at start of tag`);else tag=value(tag);}else{if(tag)warnForPart(part,`Tag ${part} used as modifier`);else tag=value;}}if(!tag)return 0;let name=tagStr.replace(/ /g,\"_\"),type=NodeType.define({id:typeArray.length,name,props:[styleTags({[name]:tag})]});typeArray.push(type);return type.id;}function docID(data){let type=NodeType.define({id:typeArray.length,name:\"Document\",props:[languageDataProp.add(()=>data)]});typeArray.push(type);return type;}export{DocInput,HighlightStyle,IndentContext,LRLanguage,Language,LanguageDescription,LanguageSupport,ParseContext,StreamLanguage,StringStream,TreeIndentContext,bracketMatching,bracketMatchingHandle,codeFolding,continuedIndent,defaultHighlightStyle,defineLanguageFacet,delimitedIndent,ensureSyntaxTree,flatIndent,foldAll,foldCode,foldEffect,foldGutter,foldInside,foldKeymap,foldNodeProp,foldService,foldState,foldable,foldedRanges,forceParsing,getIndentUnit,getIndentation,highlightingFor,indentNodeProp,indentOnInput,indentRange,indentService,indentString,indentUnit,language,languageDataProp,matchBrackets,sublanguageProp,syntaxHighlighting,syntaxParserRunning,syntaxTree,syntaxTreeAvailable,toggleFold,unfoldAll,unfoldCode,unfoldEffect,};\nexport const __FramerMetadata__ = {\"exports\":{\"getIndentUnit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"delimitedIndent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldInside\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentRange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StreamLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightingFor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldService\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"unfoldAll\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"language\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StringStream\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defineLanguageFacet\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentNodeProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"continuedIndent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldCode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldGutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldedRanges\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"forceParsing\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldAll\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"toggleFold\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentService\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentUnit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sublanguageProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxHighlighting\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxTreeAvailable\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"bracketMatchingHandle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LRLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HighlightStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"flatIndent\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LanguageDescription\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxTree\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"matchBrackets\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"codeFolding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Language\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeIndentContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentOnInput\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"unfoldEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getIndentation\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxParserRunning\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"languageDataProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IndentContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldable\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ensureSyntaxTree\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LanguageSupport\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DocInput\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"unfoldCode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"bracketMatching\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultHighlightStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentString\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldNodeProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ParseContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/html/dist/index.es.js\nimport{ContextTracker,ExternalTokenizer,LRParser}from\"https://framerusercontent.com/modules/MiFWyNBz6FaRwOOEYJ4H/VH2xmlV2ZgVY4EG63Tp6/lezer_lr.js\";import{styleTags,tags}from\"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/YaHVqqT79imnSnw9WihN/lezer_highlight.js\";import{parseMixed}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/MGamyd2UebFXXyjBfB8y/lezer_common.js\";var scriptText=54;var StartCloseScriptTag=1;var styleText=55;var StartCloseStyleTag=2;var textareaText=56;var StartCloseTextareaTag=3;var EndTag=4;var SelfClosingEndTag=5;var StartTag=6;var StartScriptTag=7;var StartStyleTag=8;var StartTextareaTag=9;var StartSelfClosingTag=10;var StartCloseTag=11;var NoMatchStartCloseTag=12;var MismatchedStartCloseTag=13;var missingCloseTag=57;var IncompleteCloseTag=14;var commentContent$1=58;var Element=20;var TagName=22;var Attribute=23;var AttributeName=24;var AttributeValue=26;var UnquotedAttributeValue=27;var ScriptText=28;var StyleText=31;var TextareaText=34;var OpenTag=36;var CloseTag=37;var Dialect_noMatch=0;var Dialect_selfClosing=1;var selfClosers={area:true,base:true,br:true,col:true,command:true,embed:true,frame:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true,menuitem:true};var implicitlyClosed={dd:true,li:true,optgroup:true,option:true,p:true,rp:true,rt:true,tbody:true,td:true,tfoot:true,th:true,tr:true};var closeOnOpen={dd:{dd:true,dt:true},dt:{dd:true,dt:true},li:{li:true},option:{option:true,optgroup:true},optgroup:{optgroup:true},p:{address:true,article:true,aside:true,blockquote:true,dir:true,div:true,dl:true,fieldset:true,footer:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,header:true,hgroup:true,hr:true,menu:true,nav:true,ol:true,p:true,pre:true,section:true,table:true,ul:true},rp:{rp:true,rt:true},rt:{rp:true,rt:true},tbody:{tbody:true,tfoot:true},td:{td:true,th:true},tfoot:{tbody:true},th:{td:true,th:true},thead:{tbody:true,tfoot:true},tr:{tr:true}};function nameChar(ch){return ch==45||ch==46||ch==58||ch>=65&&ch<=90||ch==95||ch>=97&&ch<=122||ch>=161;}function isSpace(ch){return ch==9||ch==10||ch==13||ch==32;}var cachedName=null;var cachedInput=null;var cachedPos=0;function tagNameAfter(input,offset){let pos=input.pos+offset;if(cachedPos==pos&&cachedInput==input)return cachedName;let next=input.peek(offset);while(isSpace(next))next=input.peek(++offset);let name=\"\";for(;;){if(!nameChar(next))break;name+=String.fromCharCode(next);next=input.peek(++offset);}cachedInput=input;cachedPos=pos;return cachedName=name?name.toLowerCase():next==question||next==bang?void 0:null;}var lessThan=60;var greaterThan=62;var slash=47;var question=63;var bang=33;var dash=45;function ElementContext(name,parent){this.name=name;this.parent=parent;this.hash=parent?parent.hash:0;for(let i=0;i<name.length;i++)this.hash+=(this.hash<<4)+name.charCodeAt(i)+(name.charCodeAt(i)<<8);}var startTagTerms=[StartTag,StartSelfClosingTag,StartScriptTag,StartStyleTag,StartTextareaTag];var elementContext=new ContextTracker({start:null,shift(context,term,stack,input){return startTagTerms.indexOf(term)>-1?new ElementContext(tagNameAfter(input,1)||\"\",context):context;},reduce(context,term){return term==Element&&context?context.parent:context;},reuse(context,node,stack,input){let type=node.type.id;return type==StartTag||type==OpenTag?new ElementContext(tagNameAfter(input,1)||\"\",context):context;},hash(context){return context?context.hash:0;},strict:false});var tagStart=new ExternalTokenizer((input,stack)=>{if(input.next!=lessThan){if(input.next<0&&stack.context)input.acceptToken(missingCloseTag);return;}input.advance();let close=input.next==slash;if(close)input.advance();let name=tagNameAfter(input,0);if(name===void 0)return;if(!name)return input.acceptToken(close?IncompleteCloseTag:StartTag);let parent=stack.context?stack.context.name:null;if(close){if(name==parent)return input.acceptToken(StartCloseTag);if(parent&&implicitlyClosed[parent])return input.acceptToken(missingCloseTag,-2);if(stack.dialectEnabled(Dialect_noMatch))return input.acceptToken(NoMatchStartCloseTag);for(let cx=stack.context;cx;cx=cx.parent)if(cx.name==name)return;input.acceptToken(MismatchedStartCloseTag);}else{if(name==\"script\")return input.acceptToken(StartScriptTag);if(name==\"style\")return input.acceptToken(StartStyleTag);if(name==\"textarea\")return input.acceptToken(StartTextareaTag);if(selfClosers.hasOwnProperty(name))return input.acceptToken(StartSelfClosingTag);if(parent&&closeOnOpen[parent]&&closeOnOpen[parent][name])input.acceptToken(missingCloseTag,-1);else input.acceptToken(StartTag);}},{contextual:true});var commentContent=new ExternalTokenizer(input=>{for(let dashes=0,i=0;;i++){if(input.next<0){if(i)input.acceptToken(commentContent$1);break;}if(input.next==dash){dashes++;}else if(input.next==greaterThan&&dashes>=2){if(i>3)input.acceptToken(commentContent$1,-2);break;}else{dashes=0;}input.advance();}});function inForeignElement(context){for(;context;context=context.parent)if(context.name==\"svg\"||context.name==\"math\")return true;return false;}var endTag=new ExternalTokenizer((input,stack)=>{if(input.next==slash&&input.peek(1)==greaterThan){let selfClosing=stack.dialectEnabled(Dialect_selfClosing)||inForeignElement(stack.context);input.acceptToken(selfClosing?SelfClosingEndTag:EndTag,2);}else if(input.next==greaterThan){input.acceptToken(EndTag,1);}});function contentTokenizer(tag,textToken,endToken){let lastState=2+tag.length;return new ExternalTokenizer(input=>{for(let state=0,matchedLen=0,i=0;;i++){if(input.next<0){if(i)input.acceptToken(textToken);break;}if(state==0&&input.next==lessThan||state==1&&input.next==slash||state>=2&&state<lastState&&input.next==tag.charCodeAt(state-2)){state++;matchedLen++;}else if((state==2||state==lastState)&&isSpace(input.next)){matchedLen++;}else if(state==lastState&&input.next==greaterThan){if(i>matchedLen)input.acceptToken(textToken,-matchedLen);else input.acceptToken(endToken,-(matchedLen-2));break;}else if((input.next==10||input.next==13)&&i){input.acceptToken(textToken,1);break;}else{state=matchedLen=0;}input.advance();}});}var scriptTokens=contentTokenizer(\"script\",scriptText,StartCloseScriptTag);var styleTokens=contentTokenizer(\"style\",styleText,StartCloseStyleTag);var textareaTokens=contentTokenizer(\"textarea\",textareaText,StartCloseTextareaTag);var htmlHighlighting=styleTags({\"Text RawText\":tags.content,\"StartTag StartCloseTag SelfClosingEndTag EndTag\":tags.angleBracket,TagName:tags.tagName,\"MismatchedCloseTag/TagName\":[tags.tagName,tags.invalid],AttributeName:tags.attributeName,\"AttributeValue UnquotedAttributeValue\":tags.attributeValue,Is:tags.definitionOperator,\"EntityReference CharacterReference\":tags.character,Comment:tags.blockComment,ProcessingInst:tags.processingInstruction,DoctypeDecl:tags.documentMeta});var parser=LRParser.deserialize({version:14,states:\",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z\",stateData:\"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~\",goto:\"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp\",nodeNames:\"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl\",maxTerm:67,context:elementContext,nodeProps:[[\"closedBy\",-10,1,2,3,7,8,9,10,11,12,13,\"EndTag\",6,\"EndTag SelfClosingEndTag\",-4,21,30,33,36,\"CloseTag\"],[\"openedBy\",4,\"StartTag StartCloseTag\",5,\"StartTag\",-4,29,32,35,37,\"OpenTag\"],[\"group\",-9,14,17,18,19,20,39,40,41,42,\"Entity\",16,\"Entity TextContent\",-3,28,31,34,\"TextContent Entity\"]],propSources:[htmlHighlighting],skippedNodes:[0],repeatNodeCount:9,tokenData:\"#%g!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs4ysv-_vw5iwxJ^x}-_}!OKP!O!P-_!P!Q$q!Q![-_![!]!!O!]!^-_!^!_!&W!_!`#$o!`!a&X!a!c-_!c!}!!O!}#R-_#R#S!!O#S#T3V#T#o!!O#o#s-_#s$f$q$f%W-_%W%o!!O%o%p-_%p&a!!O&a&b-_&b1p!!O1p4U-_4U4d!!O4d4e-_4e$IS!!O$IS$I`-_$I`$Ib!!O$Ib$Kh-_$Kh%#t!!O%#t&/x-_&/x&Et!!O&Et&FV-_&FV;'S!!O;'S;:j!&Q;:j;=`4s<%l?&r-_?&r?Ah!!O?Ah?BY$q?BY?Mn!!O?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_1n!_!a&X!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/echSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0uXhSqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0pS1eP;=`<%l0p[1kP;=`<%l/^!U1wbhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!U3SP;=`<%l1n!V3bchS`P!a`!cpOq&Xqr3Vrs&}sv3Vvw0pwx(tx!P3V!P!Q&X!Q!^3V!^!_1n!_!a&X!a#s3V#s$f&X$f;'S3V;'S;=`4m<%l?Ah3V?Ah?BY&X?BY?Mn3V?MnO&X!V4pP;=`<%l3V!_4vP;=`<%l-_!Z5SV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_5rjhSkWc!ROX7dXZ8qZ[7d[^8q^p7dqr:crs8qst@Ttw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^/^!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!Z7ibkWOX7dXZ8qZ[7d[^8q^p7dqr7drs8qst+Ptw7dwx8qx!]7d!]!^9f!^!a8q!a#S7d#S#T8q#T;'S7d;'S;=`:]<%lO7d!R8tVOp8qqs8qt!]8q!]!^9Z!^;'S8q;'S;=`9`<%lO8q!R9`Oa!R!R9cP;=`<%l8q!Z9mYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z:`P;=`<%l7d!_:jjhSkWOX7dXZ8qZ[7d[^8q^p7dqr:crs8qst/^tw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^<[!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!_<echSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V=udhSOp8qqr=prs8qst0ptw=pwx8qx!P=p!P!Q8q!Q!]=p!]!^?T!^!_=p!_!a8q!a#s=p#s$f8q$f;'S=p;'S;=`?w<%l?Ah=p?Ah?BY8q?BY?Mn=p?MnO8q!V?[XhSa!Rqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0p!V?zP;=`<%l=p!_@QP;=`<%l:c!_@[ihSkWOXAyXZCTZ[Ay[^CT^pAyqrDrrsCTswDrwxCTx!PDr!P!QAy!Q!]Dr!]!^/^!^!_G|!_!aCT!a#SDr#S#TG|#T#sDr#s$fAy$f;'SDr;'S;=`JW<%l?AhDr?Ah?BYAy?BY?MnDr?MnOAy!ZBOakWOXAyXZCTZ[Ay[^CT^pAyqrAyrsCTswAywxCTx!]Ay!]!^Cu!^!aCT!a#SAy#S#TCT#T;'SAy;'S;=`Dl<%lOAy!RCWUOpCTq!]CT!]!^Cj!^;'SCT;'S;=`Co<%lOCT!RCoOb!R!RCrP;=`<%lCT!ZC|YkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZDoP;=`<%lAy!_DyihSkWOXAyXZCTZ[Ay[^CT^pAyqrDrrsCTswDrwxCTx!PDr!P!QAy!Q!]Dr!]!^Fh!^!_G|!_!aCT!a#SDr#S#TG|#T#sDr#s$fAy$f;'SDr;'S;=`JW<%l?AhDr?Ah?BYAy?BY?MnDr?MnOAy!_FqchSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VHRchSOpCTqrG|rsCTswG|wxCTx!PG|!P!QCT!Q!]G|!]!^I^!^!_G|!_!aCT!a#sG|#s$fCT$f;'SG|;'S;=`JQ<%l?AhG|?Ah?BYCT?BY?MnG|?MnOCT!VIeXhSb!Rqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0p!VJTP;=`<%lG|!_JZP;=`<%lDr!ZJgW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aK^lhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMU!O!P-_!P!Q$q!Q!^-_!^!_1n!_!a&X!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aMckhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_1n!_!`&X!`!a! W!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!T! cX`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!a!!_!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!O!!O!O!P!!O!P!Q$q!Q![!!O![!]!!O!]!^-_!^!_1n!_!a&X!a!c-_!c!}!!O!}#R-_#R#S!!O#S#T3V#T#o!!O#o#s-_#s$f$q$f$}-_$}%O!!O%O%W-_%W%o!!O%o%p-_%p&a!!O&a&b-_&b1p!!O1p4U!!O4U4d!!O4d4e-_4e$IS!!O$IS$I`-_$I`$Ib!!O$Ib$Je-_$Je$Jg!!O$Jg$Kh-_$Kh%#t!!O%#t&/x-_&/x&Et!!O&Et&FV-_&FV;'S!!O;'S;:j!&Q;:j;=`4s<%l?&r-_?&r?Ah!!O?Ah?BY$q?BY?Mn!!O?MnO$q!a!&TP;=`<%l!!O!V!&achS!a`!cpOq*Vqr!'lrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!b!Ey!b#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!'uhhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex}1n}!O!)a!O!P1n!P!Q*V!Q!_1n!_!a*V!a!f1n!f!g!,]!g#W1n#W#X!<y#X#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!)jdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex}1n}!O!*x!O!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!+TbhS!a`!cp!dPOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!,fdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!q1n!q!r!-t!r#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!-}dhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!e1n!e!f!/]!f#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!/fdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!v1n!v!w!0t!w#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!0}dhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!{1n!{!|!2]!|#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!2fdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!r1n!r!s!3t!s#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!3}dhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!g1n!g!h!5]!h#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!5fchS!a`!cpOq!6qqr!5]rs!7hsv!5]vw!;`wx!9[x!P!5]!P!Q!6q!Q!_!5]!_!`!6q!`!a!:j!a#s!5]#s$f!6q$f;'S!5];'S;=`!<s<%l?Ah!5]?Ah?BY!6q?BY?Mn!5]?MnO!6q!R!6xY!a`!cpOr!6qrs!7hsv!6qvw!8Swx!9[x!`!6q!`!a!:j!a;'S!6q;'S;=`!;Y<%lO!6qq!7mV!cpOv!7hvx!8Sx!`!7h!`!a!8q!a;'S!7h;'S;=`!9U<%lO!7hP!8VTO!`!8S!`!a!8f!a;'S!8S;'S;=`!8k<%lO!8SP!8kO{PP!8nP;=`<%l!8Sq!8xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!9XP;=`<%l!7ha!9aX!a`Or!9[rs!8Ssv!9[vw!8Sw!`!9[!`!a!9|!a;'S!9[;'S;=`!:d<%lO!9[a!:TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!:gP;=`<%l!9[!R!:sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;]P;=`<%l!6qT!;ebhSOq!8Sqr!;`rs!8Ssw!;`wx!8Sx!P!;`!P!Q!8S!Q!_!;`!_!`!8S!`!a!8f!a#s!;`#s$f!8S$f;'S!;`;'S;=`!<m<%l?Ah!;`?Ah?BY!8S?BY?Mn!;`?MnO!8ST!<pP;=`<%l!;`!V!<vP;=`<%l!5]!V!=SdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#c1n#c#d!>b#d#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!>kdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#V1n#V#W!?y#W#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!@SdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#h1n#h#i!Ab#i#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!AkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#m1n#m#n!By#n#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!CSdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#d1n#d#e!Db#e#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!DkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#X1n#X#Y!5]#Y#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!FSchS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!a!G_!a!b##T!b#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!R!GfY!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!a!G_!a!b!Lv!b;'S!G_;'S;=`!N]<%lO!G_q!HZV!cpOv!HUvx!Hpx!a!HU!a!b!Iq!b;'S!HU;'S;=`!Jp<%lO!HUP!HsTO!a!Hp!a!b!IS!b;'S!Hp;'S;=`!Ik<%lO!HpP!IVTO!`!Hp!`!a!If!a;'S!Hp;'S;=`!Ik<%lO!HpP!IkOxPP!InP;=`<%l!Hpq!IvV!cpOv!HUvx!Hpx!`!HU!`!a!J]!a;'S!HU;'S;=`!Jp<%lO!HUq!JdS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!JsP;=`<%l!HUa!J{X!a`Or!Jvrs!Hpsv!Jvvw!Hpw!a!Jv!a!b!Kh!b;'S!Jv;'S;=`!Lp<%lO!Jva!KmX!a`Or!Jvrs!Hpsv!Jvvw!Hpw!`!Jv!`!a!LY!a;'S!Jv;'S;=`!Lp<%lO!Jva!LaT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!LsP;=`<%l!Jv!R!L}Y!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!`!G_!`!a!Mm!a;'S!G_;'S;=`!N]<%lO!G_!R!MvV!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!N`P;=`<%l!G_T!NhbhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!a!Hp!a!b# p!b#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT# ubhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!`!Hp!`!a!If!a#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT##QP;=`<%l!Nc!V##^chS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!`!G_!`!a!Mm!a#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!V#$lP;=`<%l!Ey!V#$zXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X\",tokenizers:[scriptTokens,styleTokens,textareaTokens,endTag,tagStart,commentContent,0,1,2,3,4,5],topRules:{Document:[0,15]},dialects:{noMatch:0,selfClosing:485},tokenPrec:487});function getAttrs(openTag,input){let attrs=/* @__PURE__ */Object.create(null);for(let att of openTag.getChildren(Attribute)){let name=att.getChild(AttributeName),value=att.getChild(AttributeValue)||att.getChild(UnquotedAttributeValue);if(name)attrs[input.read(name.from,name.to)]=!value?\"\":value.type.id==AttributeValue?input.read(value.from+1,value.to-1):input.read(value.from,value.to);}return attrs;}function findTagName(openTag,input){let tagNameNode=openTag.getChild(TagName);return tagNameNode?input.read(tagNameNode.from,tagNameNode.to):\" \";}function maybeNest(node,input,tags2){let attrs;for(let tag of tags2){if(!tag.attrs||tag.attrs(attrs||(attrs=getAttrs(node.node.parent.firstChild,input))))return{parser:tag.parser};}return null;}function configureNesting(tags2=[],attributes=[]){let script=[],style=[],textarea=[],other=[];for(let tag of tags2){let array=tag.tag==\"script\"?script:tag.tag==\"style\"?style:tag.tag==\"textarea\"?textarea:other;array.push(tag);}let attrs=attributes.length?/* @__PURE__ */Object.create(null):null;for(let attr of attributes)(attrs[attr.name]||(attrs[attr.name]=[])).push(attr);return parseMixed((node,input)=>{let id=node.type.id;if(id==ScriptText)return maybeNest(node,input,script);if(id==StyleText)return maybeNest(node,input,style);if(id==TextareaText)return maybeNest(node,input,textarea);if(id==Element&&other.length){let n=node.node,open=n.firstChild,tagName=open&&findTagName(open,input),attrs2;if(tagName)for(let tag of other){if(tag.tag==tagName&&(!tag.attrs||tag.attrs(attrs2||(attrs2=getAttrs(n,input))))){let close=n.lastChild;return{parser:tag.parser,overlay:[{from:open.to,to:close.type.id==CloseTag?close.from:n.to}]};}}}if(attrs&&id==Attribute){let n=node.node,nameNode;if(nameNode=n.firstChild){let matches=attrs[input.read(nameNode.from,nameNode.to)];if(matches)for(let attr of matches){if(attr.tagName&&attr.tagName!=findTagName(n.parent,input))continue;let value=n.lastChild;if(value.type.id==AttributeValue){let from=value.from+1;let last=value.lastChild,to=value.to-(last&&last.isError?0:1);if(to>from)return{parser:attr.parser,overlay:[{from,to}]};}else if(value.type.id==UnquotedAttributeValue){return{parser:attr.parser,overlay:[{from:value.from,to:value.to}]};}}}}return null;});}export{configureNesting,parser};\nexport const __FramerMetadata__ = {\"exports\":{\"configureNesting\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/css/dist/index.es.js\nimport{ExternalTokenizer,LRParser}from\"https://framerusercontent.com/modules/MiFWyNBz6FaRwOOEYJ4H/VH2xmlV2ZgVY4EG63Tp6/lezer_lr.js\";import{styleTags,tags}from\"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/YaHVqqT79imnSnw9WihN/lezer_highlight.js\";var descendantOp=95;var Unit=1;var callee=96;var identifier=97;var VariableName=2;var space=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];var colon=58;var parenL=40;var underscore=95;var bracketL=91;var dash=45;var period=46;var hash=35;var percent=37;function isAlpha(ch){return ch>=65&&ch<=90||ch>=97&&ch<=122||ch>=161;}function isDigit(ch){return ch>=48&&ch<=57;}var identifiers=new ExternalTokenizer((input,stack)=>{for(let inside=false,dashes=0,i=0;;i++){let{next}=input;if(isAlpha(next)||next==dash||next==underscore||inside&&isDigit(next)){if(!inside&&(next!=dash||i>0))inside=true;if(dashes===i&&next==dash)dashes++;input.advance();}else{if(inside)input.acceptToken(next==parenL?callee:dashes==2&&stack.canShift(VariableName)?VariableName:identifier);break;}}});var descendant=new ExternalTokenizer(input=>{if(space.includes(input.peek(-1))){let{next}=input;if(isAlpha(next)||next==underscore||next==hash||next==period||next==bracketL||next==colon||next==dash)input.acceptToken(descendantOp);}});var unitToken=new ExternalTokenizer(input=>{if(!space.includes(input.peek(-1))){let{next}=input;if(next==percent){input.advance();input.acceptToken(Unit);}if(isAlpha(next)){do{input.advance();}while(isAlpha(input.next))input.acceptToken(Unit);}}});var cssHighlighting=styleTags({\"AtKeyword import charset namespace keyframes media supports\":tags.definitionKeyword,\"from to selector\":tags.keyword,NamespaceName:tags.namespace,KeyframeName:tags.labelName,KeyframeRangeName:tags.operatorKeyword,TagName:tags.tagName,ClassName:tags.className,PseudoClassName:tags.constant(tags.className),IdName:tags.labelName,\"FeatureName PropertyName\":tags.propertyName,AttributeName:tags.attributeName,NumberLiteral:tags.number,KeywordQuery:tags.keyword,UnaryQueryOp:tags.operatorKeyword,\"CallTag ValueName\":tags.atom,VariableName:tags.variableName,Callee:tags.operatorKeyword,Unit:tags.unit,\"UniversalSelector NestingSelector\":tags.definitionOperator,MatchOp:tags.compareOperator,\"ChildOp SiblingOp, LogicOp\":tags.logicOperator,BinOp:tags.arithmeticOperator,Important:tags.modifier,Comment:tags.blockComment,ColorLiteral:tags.color,\"ParenthesizedContent StringLiteral\":tags.string,\":\":tags.punctuation,\"PseudoOp #\":tags.derefOperator,\"; ,\":tags.separator,\"( )\":tags.paren,\"[ ]\":tags.squareBracket,\"{ }\":tags.brace});var spec_callee={__proto__:null,lang:32,\"nth-child\":32,\"nth-last-child\":32,\"nth-of-type\":32,\"nth-last-of-type\":32,dir:32,\"host-context\":32,url:60,\"url-prefix\":60,domain:60,regexp:60,selector:134};var spec_AtKeyword={__proto__:null,\"@import\":114,\"@media\":138,\"@charset\":142,\"@namespace\":146,\"@keyframes\":152,\"@supports\":164};var spec_identifier={__proto__:null,not:128,only:128};var parser=LRParser.deserialize({version:14,states:\"8`QYQ[OOO#_Q[OOOOQP'#Cd'#CdOOQP'#Cc'#CcO#fQ[O'#CfO$YQXO'#CaO$aQ[O'#ChO$lQ[O'#DPO$qQ[O'#DTOOQP'#Ee'#EeO$vQdO'#DeO%bQ[O'#DrO$vQdO'#DtO%sQ[O'#DvO&OQ[O'#DyO&WQ[O'#EPO&fQ[O'#EROOQS'#Ed'#EdOOQS'#ET'#ETQYQ[OOO&mQXO'#CdO'bQWO'#DaO'gQWO'#EkO'rQ[O'#EkQOQWOOOOQP'#Cg'#CgOOQP,59Q,59QO#fQ[O,59QO'|Q[O'#EWO(hQWO,58{O(pQ[O,59SO$lQ[O,59kO$qQ[O,59oO'|Q[O,59sO'|Q[O,59uO'|Q[O,59vO({Q[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)SQWO,59SO)XQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)^Q`O,59oOOQS'#Cp'#CpO$vQdO'#CqO)fQvO'#CsO*sQtO,5:POOQO'#Cx'#CxO)XQWO'#CwO+XQWO'#CyOOQS'#Eh'#EhOOQO'#Dh'#DhO+^Q[O'#DoO+lQWO'#ElO&WQ[O'#DmO+zQWO'#DpOOQO'#Em'#EmO(kQWO,5:^O,PQpO,5:`OOQS'#Dx'#DxO,XQWO,5:bO,^Q[O,5:bOOQO'#D{'#D{O,fQWO,5:eO,kQWO,5:kO,sQWO,5:mOOQS-E8R-E8RO$vQdO,59{O,{Q[O'#EYO-YQWO,5;VO-YQWO,5;VOOQP1G.l1G.lO.PQXO,5:rOOQO-E8U-E8UOOQS1G.g1G.gOOQP1G.n1G.nO)SQWO1G.nO)XQWO1G.nOOQP1G/V1G/VO.^Q`O1G/ZO.wQXO1G/_O/_QXO1G/aO/uQXO1G/bO0]QWO,59zO0bQ[O'#DOO0iQdO'#CoOOQP1G/Z1G/ZO$vQdO1G/ZO0pQpO,59]OOQS,59_,59_O$vQdO,59aO0xQWO1G/kOOQS,59c,59cO0}Q!bO,59eO1VQWO'#DhO1bQWO,5:TO1gQWO,5:ZO&WQ[O,5:VO&WQ[O'#EZO1oQWO,5;WO1zQWO,5:XO'|Q[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2]QWO1G/|O2bQdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO2mQtO1G/gOOQO,5:t,5:tO3TQ[O,5:tOOQO-E8W-E8WO3bQWO1G0qOOQP7+$Y7+$YOOQP7+$u7+$uO$vQdO7+$uOOQS1G/f1G/fO3mQXO'#EjO3tQWO,59jO3yQtO'#EUO4nQdO'#EgO4xQWO,59ZO4}QpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5VQWO1G/PO$vQdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5[QWO,5:uOOQO-E8X-E8XO5jQXO1G/vOOQS7+%h7+%hO5qQYO'#CsOOQO'#EO'#EOO5|Q`O'#D}OOQO'#D}'#D}O6XQWO'#E[O6aQdO,5:hOOQS,5:h,5:hO6lQtO'#EXO$vQdO'#EXO7jQdO7+%ROOQO7+%R7+%ROOQO1G0`1G0`O7}QpO<<HaO8VQWO,5;UOOQP1G/U1G/UOOQS-E8S-E8SO$vQdO'#EVO8_QWO,5;ROOQT1G.u1G.uOOQP<<Ha<<HaOOQS7+$k7+$kO8gQdO7+%ZOOQO7+%b7+%bOOQO,5:i,5:iO2eQdO'#E]O6XQWO,5:vOOQS,5:v,5:vOOQS-E8Y-E8YOOQS1G0S1G0SO8nQtO,5:sOOQS-E8V-E8VOOQO<<Hm<<HmOOQPAN={AN={O9lQdO,5:qOOQO-E8T-E8TOOQO<<Hu<<HuOOQO,5:w,5:wOOQO-E8Z-E8ZOOQS1G0b1G0b\",stateData:\":O~O#VOSROS~OUXOXXO]UO^UOtVOxWO!Y`O!ZYO!gZO!i[O!k]O!n^O!t_O#TQO#YSO~OQeOUXOXXO]UO^UOtVOxWO!Y`O!ZYO!gZO!i[O!k]O!n^O!t_O#TdO#YSO~O#Q#_P~P!ZO#TiO~O]nO^nOplOtoOxpO|qO!PsO#RrO#YkO~O!RtO~P#kO`zO#SwO#TvO~O#T{O~O#T}O~OQ!WOb!QOf!WOh!WOn!VO#S!TO#T!PO#]!RO~Ob!YO!b![O!e!]O#T!XO!R#`P~Oh!bOn!VO#T!aO~Oh!dO#T!dO~Ob!YO!b![O!e!]O#T!XO~O!W#`P~P%bO]WX]!UX^WXpWXtWXxWX|WX!PWX!RWX#RWX#YWX~O]!iO~O!W!jO#Q#_X!Q#_X~O#Q#_X!Q#_X~P!ZOUXOXXO]UO^UOtVOxWO#TQO#YSO~OplO!RtO~O`!sO#SwO#TvO~O!Q#_P~P!ZOb!zO~Ob!{O~Ov!|Oz!}O~OP#PObgXjgX!WgX!bgX!egX#TgXagXQgXfgXhgXngXpgX!VgX#QgX#SgX#]gXvgX!QgX~Ob!YOj#QO!b![O!e!]O#T!XO!W#`P~Ob#TO~Ob!YO!b![O!e!]O#T#UO~Op#YO!`#XO!R#`X!W#`X~Ob#]O~Oj#QO!W#_O~O!W#`O~Oh#aOn!VO~O!R#bO~O!RtO!`#XO~O!RtO!W#eO~O!W!|X#Q!|X!Q!|X~P!ZO!W!jO#Q#_a!Q#_a~O]nO^nOtoOxpO|qO!PsO#RrO#YkO~Op!za!R!zaa!za~P-eOv#lOz#mO~O]nO^nOtoOxpO#YkO~Op{i|{i!P{i!R{i#R{ia{i~P.fOp}i|}i!P}i!R}i#R}ia}i~P.fOp!Oi|!Oi!P!Oi!R!Oi#R!Oia!Oi~P.fO!Q#nO~Oa#^P~P'|Oa#ZP~P$vOa#uOj#QO~O!W#wO~Oh#xOo#xO~O]!^Xa![X!`![X~O]#yO~Oa#zO!`#XO~Op#YO!R#`a!W#`a~O!`#XOp!aa!R!aa!W!aaa!aa~O!W$PO~O!Q$WO#T$RO#]$QO~Oj#QOp$YO!V$[O!W!Ti#Q!Ti!Q!Ti~P$vO!W!|a#Q!|a!Q!|a~P!ZO!W!jO#Q#_i!Q#_i~Oa#^X~P#kOa$`O~Oj#QOQ!xXa!xXb!xXf!xXh!xXn!xXp!xX#S!xX#T!xX#]!xX~Op$bOa#ZX~P$vOa$dO~Oj#QOv$eO~Oa$fO~O!`#XOp!}a!R!}a!W!}a~Oa$hO~P-eOP#POpgX!RgX~O#]$QOp!qX!R!qX~Op$jO!RtO~O!Q$nO#T$RO#]$QO~Oj#QOQ!{Xb!{Xf!{Xh!{Xn!{Xp!{X!V!{X!W!{X#Q!{X#S!{X#T!{X#]!{X!Q!{X~Op$YO!V$qO!W!Tq#Q!Tq!Q!Tq~P$vOj#QOv$rO~OplOa#^a~Op$bOa#Za~Oa$uO~P$vOj#QOQ!{ab!{af!{ah!{an!{ap!{a!V!{a!W!{a#Q!{a#S!{a#T!{a#]!{a!Q!{a~Oa!yap!ya~P$vO#VoR#]j!Pj~\",goto:\",z#bPPPPP#cP#l#{P#l$[#lPP$bPPP$h$q$qP%TP$qP$q%o&RPPP&k&q#lP&wP#lP&}P#lP#l#lPPP'T'j'wPP#cPP(O(O(Y(OP(OP(O(OP#cP#cP#cP(]#cP(`(c(f(m#cP#cP(r)R)a)g)q)w*R*X*_PPPPPP*e*nP+Z+^P,S,V,],f_aOPcgt!j#hkXOPcglqrst!j!z#]#hkROPcglqrst!j!z#]#hQjSR!mkQxUR!qnQ!qzQ#S!UR#k!sq!WY[!Q!i!{!}#Q#f#m#r#y$Y$Z$b$g$sp!WY[!Q!i!{!}#Q#f#m#r#y$Y$Z$b$g$sU$T#b$V$jR$i$Sq!UY[!Q!i!{!}#Q#f#m#r#y$Y$Z$b$g$sp!WY[!Q!i!{!}#Q#f#m#r#y$Y$Z$b$g$sQ!b]R#a!cQyUR!rnQ!qyR#k!rQ|VR!toQ!OWR!upQuTQ!pmQ#^!_Q#d!fQ#e!gQ$l$UR$x$kSfPtQ!lgQ#g!jR$]#hZePgt!j#ha!^Z_`!S!Y![#X#YR#V!YR!c]R!e^R#c!eS$U#b$VR$v$jV$S#b$V$jQcOSgPtU!hcg#hR#h!jQ#r!{U$a#r$g$sQ$g#yR$s$bQ$c#rR$t$cQmTS!om$_R$_#oQ$Z#fR$p$ZQ!kfS#i!k#jR#j!lQ#Z!ZR#}#ZQ$V#bR$m$VQ$k$UR$w$k_bOPcgt!j#h^TOPcgt!j#hQ!nlQ!vqQ!wrQ!xsQ#o!zR$O#]R#s!{Q!SYQ!`[Q#O!QQ#f!i[#q!{#r#y$b$g$sQ#t!}Q#v#QS$X#f$ZQ$^#mR$o$YR#p!zQhPR!ytQ!_ZQ!g`R#R!SU!ZZ`!SQ!f_Q#W!YQ#[![Q#{#XR#|#Y\",nodeNames:\"⚠ Unit VariableName Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee CallLiteral CallTag ParenthesizedContent , PseudoClassName ArgList IdSelector # IdName ] AttributeSelector [ AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp } { Block Declaration PropertyName Important ; ImportStatement AtKeyword import KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports AtRule Styles\",maxTerm:109,nodeProps:[[\"openedBy\",17,\"(\",48,\"{\"],[\"closedBy\",18,\")\",49,\"}\"]],propSources:[cssHighlighting],skippedNodes:[0,3],repeatNodeCount:9,tokenData:\"Lq~R!^OX$}X^%u^p$}pq%uqr)Xrs.Rst/utu6duv$}vw7^wx7oxy9^yz9oz{9t{|:_|}?Q}!O?c!O!P@Q!P!Q@i!Q![Cu![!]Dp!]!^El!^!_$}!_!`E}!`!aF`!a!b$}!b!cG[!c!}$}!}#OHt#O#P$}#P#QIV#Q#R6d#R#T$}#T#UIh#U#c$}#c#dJy#d#o$}#o#pK`#p#q6d#q#rKq#r#sLS#s#y$}#y#z%u#z$f$}$f$g%u$g#BY$}#BY#BZ%u#BZ$IS$}$IS$I_%u$I_$I|$}$I|$JO%u$JO$JT$}$JT$JU%u$JU$KV$}$KV$KW%u$KW&FU$}&FU&FV%u&FV;'S$};'S;=`Lk<%lO$}W%QSOy%^z;'S%^;'S;=`%o<%lO%^W%cSoWOy%^z;'S%^;'S;=`%o<%lO%^W%rP;=`<%l%^~%zh#V~OX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^~'mh#V~oWOX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^^)[UOy%^z#]%^#]#^)n#^;'S%^;'S;=`%o<%lO%^^)sUoWOy%^z#a%^#a#b*V#b;'S%^;'S;=`%o<%lO%^^*[UoWOy%^z#d%^#d#e*n#e;'S%^;'S;=`%o<%lO%^^*sUoWOy%^z#c%^#c#d+V#d;'S%^;'S;=`%o<%lO%^^+[UoWOy%^z#f%^#f#g+n#g;'S%^;'S;=`%o<%lO%^^+sUoWOy%^z#h%^#h#i,V#i;'S%^;'S;=`%o<%lO%^^,[UoWOy%^z#T%^#T#U,n#U;'S%^;'S;=`%o<%lO%^^,sUoWOy%^z#b%^#b#c-V#c;'S%^;'S;=`%o<%lO%^^-[UoWOy%^z#h%^#h#i-n#i;'S%^;'S;=`%o<%lO%^^-uS!VUoWOy%^z;'S%^;'S;=`%o<%lO%^~.UWOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o<%lO.R~.sOh~~.vRO;'S.R;'S;=`/P;=`O.R~/SXOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o;=`<%l.R<%lO.R~/rP;=`<%l.R_/zYtPOy%^z!Q%^!Q![0j![!c%^!c!i0j!i#T%^#T#Z0j#Z;'S%^;'S;=`%o<%lO%^^0oYoWOy%^z!Q%^!Q![1_![!c%^!c!i1_!i#T%^#T#Z1_#Z;'S%^;'S;=`%o<%lO%^^1dYoWOy%^z!Q%^!Q![2S![!c%^!c!i2S!i#T%^#T#Z2S#Z;'S%^;'S;=`%o<%lO%^^2ZYfUoWOy%^z!Q%^!Q![2y![!c%^!c!i2y!i#T%^#T#Z2y#Z;'S%^;'S;=`%o<%lO%^^3QYfUoWOy%^z!Q%^!Q![3p![!c%^!c!i3p!i#T%^#T#Z3p#Z;'S%^;'S;=`%o<%lO%^^3uYoWOy%^z!Q%^!Q![4e![!c%^!c!i4e!i#T%^#T#Z4e#Z;'S%^;'S;=`%o<%lO%^^4lYfUoWOy%^z!Q%^!Q![5[![!c%^!c!i5[!i#T%^#T#Z5[#Z;'S%^;'S;=`%o<%lO%^^5aYoWOy%^z!Q%^!Q![6P![!c%^!c!i6P!i#T%^#T#Z6P#Z;'S%^;'S;=`%o<%lO%^^6WSfUoWOy%^z;'S%^;'S;=`%o<%lO%^Y6gUOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^Y7QSzQoWOy%^z;'S%^;'S;=`%o<%lO%^X7cSXPOy%^z;'S%^;'S;=`%o<%lO%^~7rWOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W<%lO7o~8_RO;'S7o;'S;=`8h;=`O7o~8kXOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W;=`<%l7o<%lO7o~9ZP;=`<%l7o_9cSbVOy%^z;'S%^;'S;=`%o<%lO%^~9tOa~_9{UUPjSOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^_:fWjS!PPOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^^;TUoWOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^^;nYoW#]UOy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^^<cYoWOy%^z{%^{|=R|}%^}!O=R!O!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^^=WUoWOy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^^=qUoW#]UOy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^^>[[oW#]UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^_?VSpVOy%^z;'S%^;'S;=`%o<%lO%^^?hWjSOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^_@VU#YPOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjSOy%^z{@}{;'S%^;'S;=`%o<%lO%^~ASUoWOy@}yzAfz{Bm{;'S@};'S;=`Co<%lO@}~AiTOzAfz{Ax{;'SAf;'S;=`Bg<%lOAf~A{VOzAfz{Ax{!PAf!P!QBb!Q;'SAf;'S;=`Bg<%lOAf~BgOR~~BjP;=`<%lAf~BrWoWOy@}yzAfz{Bm{!P@}!P!QC[!Q;'S@};'S;=`Co<%lO@}~CcSoWR~Oy%^z;'S%^;'S;=`%o<%lO%^~CrP;=`<%l@}^Cz[#]UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^XDuU]POy%^z![%^![!]EX!];'S%^;'S;=`%o<%lO%^XE`S^PoWOy%^z;'S%^;'S;=`%o<%lO%^_EqS!WVOy%^z;'S%^;'S;=`%o<%lO%^YFSSzQOy%^z;'S%^;'S;=`%o<%lO%^XFeU|POy%^z!`%^!`!aFw!a;'S%^;'S;=`%o<%lO%^XGOS|PoWOy%^z;'S%^;'S;=`%o<%lO%^XG_WOy%^z!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHO[!YPoWOy%^z}%^}!OGw!O!Q%^!Q![Gw![!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHySxPOy%^z;'S%^;'S;=`%o<%lO%^^I[SvUOy%^z;'S%^;'S;=`%o<%lO%^XIkUOy%^z#b%^#b#cI}#c;'S%^;'S;=`%o<%lO%^XJSUoWOy%^z#W%^#W#XJf#X;'S%^;'S;=`%o<%lO%^XJmS!`PoWOy%^z;'S%^;'S;=`%o<%lO%^XJ|UOy%^z#f%^#f#gJf#g;'S%^;'S;=`%o<%lO%^ZKeS!RROy%^z;'S%^;'S;=`%o<%lO%^_KvS!QVOy%^z;'S%^;'S;=`%o<%lO%^ZLXU!PPOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^WLnP;=`<%l$}\",tokenizers:[descendant,unitToken,identifiers,0,1,2,3],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:96,get:value=>spec_callee[value]||-1},{term:56,get:value=>spec_AtKeyword[value]||-1},{term:97,get:value=>spec_identifier[value]||-1}],tokenPrec:1142});export{parser};\nexport const __FramerMetadata__ = {\"exports\":{\"parser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/lang-css/dist/index.js\nimport{parser}from\"https://framerusercontent.com/modules/baxvQBtmpZ5GFXZ1GP2Q/TUZD3P9t64XVB0jIXYAe/lezer_css.js\";import{syntaxTree,LRLanguage,indentNodeProp,continuedIndent,foldNodeProp,foldInside,LanguageSupport}from\"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/r60pzPp0bOIae0tDcSfS/codemirror_language.js\";import{NodeWeakMap,IterMode}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/MGamyd2UebFXXyjBfB8y/lezer_common.js\";var _properties=null;function properties(){if(!_properties&&typeof document==\"object\"&&document.body){let{style}=document.body,names=[],seen=/* @__PURE__ */new Set;for(let prop in style)if(prop!=\"cssText\"&&prop!=\"cssFloat\"){if(typeof style[prop]==\"string\"){if(/[A-Z]/.test(prop))prop=prop.replace(/[A-Z]/g,ch=>\"-\"+ch.toLowerCase());if(!seen.has(prop)){names.push(prop);seen.add(prop);}}}_properties=names.sort().map(name=>({type:\"property\",label:name}));}return _properties||[];}var pseudoClasses=/* @__PURE__ */[\"active\",\"after\",\"any-link\",\"autofill\",\"backdrop\",\"before\",\"checked\",\"cue\",\"default\",\"defined\",\"disabled\",\"empty\",\"enabled\",\"file-selector-button\",\"first\",\"first-child\",\"first-letter\",\"first-line\",\"first-of-type\",\"focus\",\"focus-visible\",\"focus-within\",\"fullscreen\",\"has\",\"host\",\"host-context\",\"hover\",\"in-range\",\"indeterminate\",\"invalid\",\"is\",\"lang\",\"last-child\",\"last-of-type\",\"left\",\"link\",\"marker\",\"modal\",\"not\",\"nth-child\",\"nth-last-child\",\"nth-last-of-type\",\"nth-of-type\",\"only-child\",\"only-of-type\",\"optional\",\"out-of-range\",\"part\",\"placeholder\",\"placeholder-shown\",\"read-only\",\"read-write\",\"required\",\"right\",\"root\",\"scope\",\"selection\",\"slotted\",\"target\",\"target-text\",\"valid\",\"visited\",\"where\"].map(name=>({type:\"class\",label:name}));var values=/* @__PURE__ */[\"above\",\"absolute\",\"activeborder\",\"additive\",\"activecaption\",\"after-white-space\",\"ahead\",\"alias\",\"all\",\"all-scroll\",\"alphabetic\",\"alternate\",\"always\",\"antialiased\",\"appworkspace\",\"asterisks\",\"attr\",\"auto\",\"auto-flow\",\"avoid\",\"avoid-column\",\"avoid-page\",\"avoid-region\",\"axis-pan\",\"background\",\"backwards\",\"baseline\",\"below\",\"bidi-override\",\"blink\",\"block\",\"block-axis\",\"bold\",\"bolder\",\"border\",\"border-box\",\"both\",\"bottom\",\"break\",\"break-all\",\"break-word\",\"bullets\",\"button\",\"button-bevel\",\"buttonface\",\"buttonhighlight\",\"buttonshadow\",\"buttontext\",\"calc\",\"capitalize\",\"caps-lock-indicator\",\"caption\",\"captiontext\",\"caret\",\"cell\",\"center\",\"checkbox\",\"circle\",\"cjk-decimal\",\"clear\",\"clip\",\"close-quote\",\"col-resize\",\"collapse\",\"color\",\"color-burn\",\"color-dodge\",\"column\",\"column-reverse\",\"compact\",\"condensed\",\"contain\",\"content\",\"contents\",\"content-box\",\"context-menu\",\"continuous\",\"copy\",\"counter\",\"counters\",\"cover\",\"crop\",\"cross\",\"crosshair\",\"currentcolor\",\"cursive\",\"cyclic\",\"darken\",\"dashed\",\"decimal\",\"decimal-leading-zero\",\"default\",\"default-button\",\"dense\",\"destination-atop\",\"destination-in\",\"destination-out\",\"destination-over\",\"difference\",\"disc\",\"discard\",\"disclosure-closed\",\"disclosure-open\",\"document\",\"dot-dash\",\"dot-dot-dash\",\"dotted\",\"double\",\"down\",\"e-resize\",\"ease\",\"ease-in\",\"ease-in-out\",\"ease-out\",\"element\",\"ellipse\",\"ellipsis\",\"embed\",\"end\",\"ethiopic-abegede-gez\",\"ethiopic-halehame-aa-er\",\"ethiopic-halehame-gez\",\"ew-resize\",\"exclusion\",\"expanded\",\"extends\",\"extra-condensed\",\"extra-expanded\",\"fantasy\",\"fast\",\"fill\",\"fill-box\",\"fixed\",\"flat\",\"flex\",\"flex-end\",\"flex-start\",\"footnotes\",\"forwards\",\"from\",\"geometricPrecision\",\"graytext\",\"grid\",\"groove\",\"hand\",\"hard-light\",\"help\",\"hidden\",\"hide\",\"higher\",\"highlight\",\"highlighttext\",\"horizontal\",\"hsl\",\"hsla\",\"hue\",\"icon\",\"ignore\",\"inactiveborder\",\"inactivecaption\",\"inactivecaptiontext\",\"infinite\",\"infobackground\",\"infotext\",\"inherit\",\"initial\",\"inline\",\"inline-axis\",\"inline-block\",\"inline-flex\",\"inline-grid\",\"inline-table\",\"inset\",\"inside\",\"intrinsic\",\"invert\",\"italic\",\"justify\",\"keep-all\",\"landscape\",\"large\",\"larger\",\"left\",\"level\",\"lighter\",\"lighten\",\"line-through\",\"linear\",\"linear-gradient\",\"lines\",\"list-item\",\"listbox\",\"listitem\",\"local\",\"logical\",\"loud\",\"lower\",\"lower-hexadecimal\",\"lower-latin\",\"lower-norwegian\",\"lowercase\",\"ltr\",\"luminosity\",\"manipulation\",\"match\",\"matrix\",\"matrix3d\",\"medium\",\"menu\",\"menutext\",\"message-box\",\"middle\",\"min-intrinsic\",\"mix\",\"monospace\",\"move\",\"multiple\",\"multiple_mask_images\",\"multiply\",\"n-resize\",\"narrower\",\"ne-resize\",\"nesw-resize\",\"no-close-quote\",\"no-drop\",\"no-open-quote\",\"no-repeat\",\"none\",\"normal\",\"not-allowed\",\"nowrap\",\"ns-resize\",\"numbers\",\"numeric\",\"nw-resize\",\"nwse-resize\",\"oblique\",\"opacity\",\"open-quote\",\"optimizeLegibility\",\"optimizeSpeed\",\"outset\",\"outside\",\"outside-shape\",\"overlay\",\"overline\",\"padding\",\"padding-box\",\"painted\",\"page\",\"paused\",\"perspective\",\"pinch-zoom\",\"plus-darker\",\"plus-lighter\",\"pointer\",\"polygon\",\"portrait\",\"pre\",\"pre-line\",\"pre-wrap\",\"preserve-3d\",\"progress\",\"push-button\",\"radial-gradient\",\"radio\",\"read-only\",\"read-write\",\"read-write-plaintext-only\",\"rectangle\",\"region\",\"relative\",\"repeat\",\"repeating-linear-gradient\",\"repeating-radial-gradient\",\"repeat-x\",\"repeat-y\",\"reset\",\"reverse\",\"rgb\",\"rgba\",\"ridge\",\"right\",\"rotate\",\"rotate3d\",\"rotateX\",\"rotateY\",\"rotateZ\",\"round\",\"row\",\"row-resize\",\"row-reverse\",\"rtl\",\"run-in\",\"running\",\"s-resize\",\"sans-serif\",\"saturation\",\"scale\",\"scale3d\",\"scaleX\",\"scaleY\",\"scaleZ\",\"screen\",\"scroll\",\"scrollbar\",\"scroll-position\",\"se-resize\",\"self-start\",\"self-end\",\"semi-condensed\",\"semi-expanded\",\"separate\",\"serif\",\"show\",\"single\",\"skew\",\"skewX\",\"skewY\",\"skip-white-space\",\"slide\",\"slider-horizontal\",\"slider-vertical\",\"sliderthumb-horizontal\",\"sliderthumb-vertical\",\"slow\",\"small\",\"small-caps\",\"small-caption\",\"smaller\",\"soft-light\",\"solid\",\"source-atop\",\"source-in\",\"source-out\",\"source-over\",\"space\",\"space-around\",\"space-between\",\"space-evenly\",\"spell-out\",\"square\",\"start\",\"static\",\"status-bar\",\"stretch\",\"stroke\",\"stroke-box\",\"sub\",\"subpixel-antialiased\",\"svg_masks\",\"super\",\"sw-resize\",\"symbolic\",\"symbols\",\"system-ui\",\"table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row\",\"table-row-group\",\"text\",\"text-bottom\",\"text-top\",\"textarea\",\"textfield\",\"thick\",\"thin\",\"threeddarkshadow\",\"threedface\",\"threedhighlight\",\"threedlightshadow\",\"threedshadow\",\"to\",\"top\",\"transform\",\"translate\",\"translate3d\",\"translateX\",\"translateY\",\"translateZ\",\"transparent\",\"ultra-condensed\",\"ultra-expanded\",\"underline\",\"unidirectional-pan\",\"unset\",\"up\",\"upper-latin\",\"uppercase\",\"url\",\"var\",\"vertical\",\"vertical-text\",\"view-box\",\"visible\",\"visibleFill\",\"visiblePainted\",\"visibleStroke\",\"visual\",\"w-resize\",\"wait\",\"wave\",\"wider\",\"window\",\"windowframe\",\"windowtext\",\"words\",\"wrap\",\"wrap-reverse\",\"x-large\",\"x-small\",\"xor\",\"xx-large\",\"xx-small\"].map(name=>({type:\"keyword\",label:name})).concat(/* @__PURE__ */[\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"grey\",\"green\",\"greenyellow\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"lightsteelblue\",\"lightyellow\",\"lime\",\"limegreen\",\"linen\",\"magenta\",\"maroon\",\"mediumaquamarine\",\"mediumblue\",\"mediumorchid\",\"mediumpurple\",\"mediumseagreen\",\"mediumslateblue\",\"mediumspringgreen\",\"mediumturquoise\",\"mediumvioletred\",\"midnightblue\",\"mintcream\",\"mistyrose\",\"moccasin\",\"navajowhite\",\"navy\",\"oldlace\",\"olive\",\"olivedrab\",\"orange\",\"orangered\",\"orchid\",\"palegoldenrod\",\"palegreen\",\"paleturquoise\",\"palevioletred\",\"papayawhip\",\"peachpuff\",\"peru\",\"pink\",\"plum\",\"powderblue\",\"purple\",\"rebeccapurple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\"].map(name=>({type:\"constant\",label:name})));var tags=/* @__PURE__ */[\"a\",\"abbr\",\"address\",\"article\",\"aside\",\"b\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"figcaption\",\"figure\",\"footer\",\"form\",\"header\",\"hgroup\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"legend\",\"li\",\"main\",\"meter\",\"nav\",\"ol\",\"output\",\"p\",\"pre\",\"ruby\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"tr\",\"u\",\"ul\"].map(name=>({type:\"type\",label:name}));var identifier=/^(\\w[\\w-]*|-\\w[\\w-]*|)$/;var variable=/^-(-[\\w-]*)?$/;function isVarArg(node,doc){var _a;if(node.name==\"(\"||node.type.isError)node=node.parent||node;if(node.name!=\"ArgList\")return false;let callee=(_a=node.parent)===null||_a===void 0?void 0:_a.firstChild;if((callee===null||callee===void 0?void 0:callee.name)!=\"Callee\")return false;return doc.sliceString(callee.from,callee.to)==\"var\";}var VariablesByNode=/* @__PURE__ */new NodeWeakMap;var declSelector=[\"Declaration\"];function astTop(node){for(let cur=node;;){if(cur.type.isTop)return cur;if(!(cur=cur.parent))return node;}}function variableNames(doc,node,isVariable){if(node.to-node.from>4096){let known=VariablesByNode.get(node);if(known)return known;let result=[],seen=/* @__PURE__ */new Set,cursor=node.cursor(IterMode.IncludeAnonymous);if(cursor.firstChild())do{for(let option of variableNames(doc,cursor.node,isVariable))if(!seen.has(option.label)){seen.add(option.label);result.push(option);}}while(cursor.nextSibling())VariablesByNode.set(node,result);return result;}else{let result=[],seen=/* @__PURE__ */new Set;node.cursor().iterate(node2=>{var _a;if(isVariable(node2)&&node2.matchContext(declSelector)&&((_a=node2.node.nextSibling)===null||_a===void 0?void 0:_a.name)==\":\"){let name=doc.sliceString(node2.from,node2.to);if(!seen.has(name)){seen.add(name);result.push({label:name,type:\"variable\"});}}});return result;}}var defineCSSCompletionSource=isVariable=>context=>{let{state,pos}=context,node=syntaxTree(state).resolveInner(pos,-1);let isDash=node.type.isError&&node.from==node.to-1&&state.doc.sliceString(node.from,node.to)==\"-\";if(node.name==\"PropertyName\"||(isDash||node.name==\"TagName\")&&/^(Block|Styles)$/.test(node.resolve(node.to).name))return{from:node.from,options:properties(),validFor:identifier};if(node.name==\"ValueName\")return{from:node.from,options:values,validFor:identifier};if(node.name==\"PseudoClassName\")return{from:node.from,options:pseudoClasses,validFor:identifier};if(isVariable(node)||(context.explicit||isDash)&&isVarArg(node,state.doc))return{from:isVariable(node)||isDash?node.from:pos,options:variableNames(state.doc,astTop(node),isVariable),validFor:variable};if(node.name==\"TagName\"){for(let{parent}=node;parent;parent=parent.parent)if(parent.name==\"Block\")return{from:node.from,options:properties(),validFor:identifier};return{from:node.from,options:tags,validFor:identifier};}if(!context.explicit)return null;let above=node.resolve(pos),before=above.childBefore(pos);if(before&&before.name==\":\"&&above.name==\"PseudoClassSelector\")return{from:pos,options:pseudoClasses,validFor:identifier};if(before&&before.name==\":\"&&above.name==\"Declaration\"||above.name==\"ArgList\")return{from:pos,options:values,validFor:identifier};if(above.name==\"Block\"||above.name==\"Styles\")return{from:pos,options:properties(),validFor:identifier};return null;};var cssCompletionSource=/* @__PURE__ */defineCSSCompletionSource(n=>n.name==\"VariableName\");var cssLanguage=/* @__PURE__ */LRLanguage.define({name:\"css\",parser:/* @__PURE__ */parser.configure({props:[/* @__PURE__ */indentNodeProp.add({Declaration:/* @__PURE__ */continuedIndent()}),/* @__PURE__ */foldNodeProp.add({Block:foldInside})]}),languageData:{commentTokens:{block:{open:\"/*\",close:\"*/\"}},indentOnInput:/^\\s*\\}$/,wordChars:\"-\"}});function css(){return new LanguageSupport(cssLanguage,cssLanguage.data.of({autocomplete:cssCompletionSource}));}export{css,cssCompletionSource,cssLanguage,defineCSSCompletionSource};\nexport const __FramerMetadata__ = {\"exports\":{\"defineCSSCompletionSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"cssLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"cssCompletionSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/javascript/dist/index.es.js\nimport{ContextTracker,ExternalTokenizer,LRParser,LocalTokenGroup}from\"https://framerusercontent.com/modules/MiFWyNBz6FaRwOOEYJ4H/VH2xmlV2ZgVY4EG63Tp6/lezer_lr.js\";import{styleTags,tags}from\"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/YaHVqqT79imnSnw9WihN/lezer_highlight.js\";var noSemi=302;var incdec=1;var incdecPrefix=2;var insertSemi=303;var spaces=305;var newline=306;var LineComment=3;var BlockComment=4;var space=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];var braceR=125;var semicolon=59;var slash=47;var star=42;var plus=43;var minus=45;var trackNewline=new ContextTracker({start:false,shift(context,term){return term==LineComment||term==BlockComment||term==spaces?context:term==newline;},strict:false});var insertSemicolon=new ExternalTokenizer((input,stack)=>{let{next}=input;if((next==braceR||next==-1||stack.context)&&stack.canShift(insertSemi))input.acceptToken(insertSemi);},{contextual:true,fallback:true});var noSemicolon=new ExternalTokenizer((input,stack)=>{let{next}=input,after;if(space.indexOf(next)>-1)return;if(next==slash&&((after=input.peek(1))==slash||after==star))return;if(next!=braceR&&next!=semicolon&&next!=-1&&!stack.context&&stack.canShift(noSemi))input.acceptToken(noSemi);},{contextual:true});var incdecToken=new ExternalTokenizer((input,stack)=>{let{next}=input;if(next==plus||next==minus){input.advance();if(next==input.next){input.advance();let mayPostfix=!stack.context&&stack.canShift(incdec);input.acceptToken(mayPostfix?incdec:incdecPrefix);}}},{contextual:true});var jsHighlight=styleTags({\"get set async static\":tags.modifier,\"for while do if else switch try catch finally return throw break continue default case\":tags.controlKeyword,\"in of await yield void typeof delete instanceof\":tags.operatorKeyword,\"let var const function class extends\":tags.definitionKeyword,\"import export from\":tags.moduleKeyword,\"with debugger as new\":tags.keyword,TemplateString:tags.special(tags.string),super:tags.atom,BooleanLiteral:tags.bool,this:tags.self,null:tags.null,Star:tags.modifier,VariableName:tags.variableName,\"CallExpression/VariableName TaggedTemplateExpression/VariableName\":tags.function(tags.variableName),VariableDefinition:tags.definition(tags.variableName),Label:tags.labelName,PropertyName:tags.propertyName,PrivatePropertyName:tags.special(tags.propertyName),\"CallExpression/MemberExpression/PropertyName\":tags.function(tags.propertyName),\"FunctionDeclaration/VariableDefinition\":tags.function(tags.definition(tags.variableName)),\"ClassDeclaration/VariableDefinition\":tags.definition(tags.className),PropertyDefinition:tags.definition(tags.propertyName),PrivatePropertyDefinition:tags.definition(tags.special(tags.propertyName)),UpdateOp:tags.updateOperator,LineComment:tags.lineComment,BlockComment:tags.blockComment,Number:tags.number,String:tags.string,Escape:tags.escape,ArithOp:tags.arithmeticOperator,LogicOp:tags.logicOperator,BitOp:tags.bitwiseOperator,CompareOp:tags.compareOperator,RegExp:tags.regexp,Equals:tags.definitionOperator,Arrow:tags.function(tags.punctuation),\": Spread\":tags.punctuation,\"( )\":tags.paren,\"[ ]\":tags.squareBracket,\"{ }\":tags.brace,\"InterpolationStart InterpolationEnd\":tags.special(tags.brace),\".\":tags.derefOperator,\", ;\":tags.separator,\"@\":tags.meta,TypeName:tags.typeName,TypeDefinition:tags.definition(tags.typeName),\"type enum interface implements namespace module declare\":tags.definitionKeyword,\"abstract global Privacy readonly override\":tags.modifier,\"is keyof unique infer\":tags.operatorKeyword,JSXAttributeValue:tags.attributeValue,JSXText:tags.content,\"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag\":tags.angleBracket,\"JSXIdentifier JSXNameSpacedName\":tags.tagName,\"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName\":tags.attributeName,\"JSXBuiltin/JSXIdentifier\":tags.standard(tags.tagName)});var spec_identifier={__proto__:null,export:14,as:19,from:27,default:30,async:35,function:36,extends:46,this:50,true:58,false:58,null:70,void:74,typeof:78,super:96,new:130,delete:146,yield:155,await:159,class:164,public:221,private:221,protected:221,readonly:223,instanceof:242,satisfies:245,in:246,const:248,import:280,keyof:335,unique:339,infer:345,is:381,abstract:401,implements:403,type:405,let:408,var:410,interface:417,enum:421,namespace:427,module:429,declare:433,global:437,for:456,of:465,while:468,with:472,do:476,if:480,else:482,switch:486,case:492,try:498,catch:502,finally:506,return:510,throw:514,break:518,continue:522,debugger:526};var spec_word={__proto__:null,async:117,get:119,set:121,declare:181,public:183,private:183,protected:183,static:185,abstract:187,override:189,readonly:195,accessor:197,new:385};var spec_LessThan={__proto__:null,\"<\":137};var parser=LRParser.deserialize({version:14,states:\"$6[O`QUOOO%QQUOOO'TQWOOP(bOSOOO*pQ(CjO'#CfO*wOpO'#CgO+VO!bO'#CgO+eO07`O'#DZO-vQUO'#DaO.WQUO'#DlO%QQUO'#DvO0[QUO'#EOOOQ(CY'#EW'#EWO0uQSO'#ETOOQO'#Ei'#EiOOQO'#Ib'#IbO0}QSO'#GkO1YQSO'#EhO1_QSO'#EhO3aQ(CjO'#JcO6QQ(CjO'#JdO6nQSO'#FWO6sQ#tO'#FoOOQ(CY'#F`'#F`O7OO&jO'#F`O7^Q,UO'#FvO8tQSO'#FuOOQ(CY'#Jd'#JdOOQ(CW'#Jc'#JcOOQQ'#KO'#KOO8yQSO'#IOO9OQ(C[O'#IPOOQQ'#JP'#JPOOQQ'#IT'#ITQ`QUOOO%QQUO'#DnO9WQUO'#DzO%QQUO'#D|O9_QSO'#GkO9dQ,UO'#ClO9rQSO'#EgO9}QSO'#ErO:SQ,UO'#F_O:qQSO'#GkO:vQSO'#GoO;RQSO'#GoO;aQSO'#GrO;aQSO'#GsO;aQSO'#GuO9_QSO'#GxO<QQSO'#G{O=cQSO'#CbO=sQSO'#HXO={QSO'#H_O={QSO'#HaO`QUO'#HcO={QSO'#HeO={QSO'#HhO>QQSO'#HnO>VQ(C]O'#HtO%QQUO'#HvO>bQ(C]O'#HxO>mQ(C]O'#HzO9OQ(C[O'#H|O>xQ(CjO'#CfO?zQWO'#DfQOQSOOO@bQSO'#EPO9dQ,UO'#EgO@mQSO'#EgO@xQ`O'#F_OOQQ'#Cd'#CdOOQ(CW'#Dk'#DkOOQ(CW'#Jg'#JgO%QQUO'#JgOOQO'#Jk'#JkOOQO'#I_'#I_OAxQWO'#E`OOQ(CW'#E_'#E_OBtQ(C`O'#E`OCOQWO'#ESOOQO'#Jj'#JjOCdQWO'#JkODqQWO'#ESOCOQWO'#E`PEOO?MpO'#C`POOO)CDn)CDnOOOO'#IU'#IUOEZOpO,59ROOQ(CY,59R,59ROOOO'#IV'#IVOEiO!bO,59RO%QQUO'#D]OOOO'#IX'#IXOEwO07`O,59uOOQ(CY,59u,59uOFVQUO'#IYOFjQSO'#JeOHlQbO'#JeO+sQUO'#JeOHsQSO,59{OIZQSO'#EiOIhQSO'#JsOIsQSO'#JrOIsQSO'#JrOI{QSO,5;VOJQQSO'#JqOOQ(CY,5:W,5:WOJXQUO,5:WOLYQ(CjO,5:bOLyQSO,5:jOMdQ(C[O'#JpOMkQSO'#JoO:vQSO'#JoONPQSO'#JoONXQSO,5;UON^QSO'#JoO!!fQbO'#JdOOQ(CY'#Cf'#CfO%QQUO'#EOO!#UQ`O,5:oOOQO'#Jl'#JlOOQO-E<`-E<`O9_QSO,5=VO!#lQSO,5=VO!#qQUO,5;SO!%tQ,UO'#EdO!'XQSO,5;SO!(qQ,UO'#DpO!(xQUO'#DuO!)SQWO,5;]O!)[QWO,5;]O%QQUO,5;]OOQQ'#FO'#FOOOQQ'#FQ'#FQO%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^OOQQ'#FU'#FUO!)jQUO,5;oOOQ(CY,5;t,5;tOOQ(CY,5;u,5;uO!+mQSO,5;uOOQ(CY,5;v,5;vO%QQUO'#IfO!+uQ(C[O,5<cO!%tQ,UO,5;^O!,dQ,UO,5;^O%QQUO,5;rO!,kQ#tO'#FeO!-hQ#tO'#JwO!-SQ#tO'#JwO!-oQ#tO'#JwOOQO'#Jw'#JwO!.TQ#tO,5;}OOOO,5<Z,5<ZO!.fQUO'#FqOOOO'#Ie'#IeO7OO&jO,5;zO!.mQ#tO'#FsOOQ(CY,5;z,5;zO!/^Q7[O'#CrOOQ(CY'#Cv'#CvO!/qQSO'#CvO!/vO07`O'#CzO!0dQ,UO,5<`O!0kQSO,5<bO!2QQMhO'#GQO!2_QSO'#GRO!2dQSO'#GRO!2iQMhO'#GVO!3hQWO'#GZO!4ZQ7[O'#J^OOQ(CY'#J^'#J^O!4eQSO'#J]O!4sQSO'#J[O!4{QSO'#CqOOQ(CY'#Ct'#CtOOQ(CY'#DO'#DOOOQ(CY'#DQ'#DQO0xQSO'#DSO!'^Q,UO'#FxO!'^Q,UO'#FzO!5TQSO'#F|O!5YQSO'#F}O!2dQSO'#GTO!'^Q,UO'#GYO!5_QSO'#EjO!5|QSO,5<aO`QUO,5>jOOQQ'#JX'#JXOOQQ,5>k,5>kOOQQ-E<R-E<RO!7{Q(CjO,5:YO!:iQ(CjO,5:fO%QQUO,5:fO!=SQ(CjO,5:hOOQ(CW'#Co'#CoO!=sQ,UO,5=VO!>RQ(C[O'#JYO8tQSO'#JYO!>dQ(C[O,59WO!>oQWO,59WO!>wQ,UO,59WO9dQ,UO,59WO!?SQSO,5;SO!?[QSO'#HWO!?mQSO'#KSO%QQUO,5;wO!?uQWO,5;yO!?zQSO,5=qO!@PQSO,5=qO!@UQSO,5=qO9OQ(C[O,5=qO!@dQSO'#EkO!A^QWO'#ElOOQ(CW'#Jq'#JqO!AeQ(C[O'#KPO9OQ(C[O,5=ZO;aQSO,5=aOOQO'#Cr'#CrO!ApQWO,5=^O!AxQ,UO,5=_O!BTQSO,5=aO!BYQ`O,5=dO>QQSO'#G}O9_QSO'#HPO!BbQSO'#HPO9dQ,UO'#HRO!BgQSO'#HROOQQ,5=g,5=gO!BlQSO'#HSO!BtQSO'#ClO!ByQSO,58|O!CTQSO,58|O!E]QUO,58|OOQQ,58|,58|O!EjQ(C[O,58|O%QQUO,58|O!EuQUO'#HZOOQQ'#H['#H[OOQQ'#H]'#H]O`QUO,5=sO!FVQSO,5=sO`QUO,5=yO`QUO,5={O!F[QSO,5=}O`QUO,5>PO!FaQSO,5>SO!FfQUO,5>YOOQQ,5>`,5>`O%QQUO,5>`O9OQ(C[O,5>bOOQQ,5>d,5>dO!JmQSO,5>dOOQQ,5>f,5>fO!JmQSO,5>fOOQQ,5>h,5>hO!JrQWO'#DXO%QQUO'#JgO!KaQWO'#JgO!LOQWO'#DgO!LaQWO'#DgO!NrQUO'#DgO!NyQSO'#JfO# RQSO,5:QO# WQSO'#EmO# fQSO'#JtO# nQSO,5;WO# sQWO'#DgO#!QQWO'#EROOQ(CY,5:k,5:kO%QQUO,5:kO#!XQSO,5:kO>QQSO,5;RO!>oQWO,5;RO!>wQ,UO,5;RO9dQ,UO,5;RO#!aQSO,5@RO#!fQ!LQO,5:oOOQO-E<]-E<]O##lQ(C`O,5:zOCOQWO,5:nO##vQWO,5:nOCOQWO,5:zO!>dQ(C[O,5:nOOQ(CW'#Ec'#EcOOQO,5:z,5:zO%QQUO,5:zO#$TQ(C[O,5:zO#$`Q(C[O,5:zO!>oQWO,5:nOOQO,5;Q,5;QO#$nQ(C[O,5:zPOOO'#IS'#ISP#%SO?MpO,58zPOOO,58z,58zOOOO-E<S-E<SOOQ(CY1G.m1G.mOOOO-E<T-E<TO#%_Q`O,59wOOOO-E<V-E<VOOQ(CY1G/a1G/aO#%dQbO,5>tO+sQUO,5>tOOQO,5>z,5>zO#%nQUO'#IYOOQO-E<W-E<WO#%{QSO,5@PO#&TQbO,5@PO#&[QSO,5@^OOQ(CY1G/g1G/gO%QQUO,5@_O#&dQSO'#I`OOQO-E<^-E<^O#&[QSO,5@^OOQ(CW1G0q1G0qOOQ(CY1G/r1G/rOOQ(CY1G0U1G0UO%QQUO,5@[O#&xQ(C[O,5@[O#'ZQ(C[O,5@[O#'bQSO,5@ZO:vQSO,5@ZO#'jQSO,5@ZO#'xQSO'#IcO#'bQSO,5@ZOOQ(CW1G0p1G0pO!)SQWO,5:qO!)_QWO,5:qOOQO,5:s,5:sO#(jQSO,5:sO#(rQ,UO1G2qO9_QSO1G2qOOQ(CY1G0n1G0nO#)QQ(CjO1G0nO#*VQ(ChO,5;OOOQ(CY'#GP'#GPO#*sQ(CjO'#J^O!#qQUO1G0nO#,{Q,UO'#JhO#-VQSO,5:[O#-[QbO'#JiO%QQUO'#JiO#-fQSO,5:aOOQ(CY'#DX'#DXOOQ(CY1G0w1G0wO%QQUO1G0wOOQ(CY1G1a1G1aO#-kQSO1G0wO#0SQ(CjO1G0xO#0ZQ(CjO1G0xO#2tQ(CjO1G0xO#2{Q(CjO1G0xO#5VQ(CjO1G0xO#5mQ(CjO1G0xO#8gQ(CjO1G0xO#8nQ(CjO1G0xO#;XQ(CjO1G0xO#;`Q(CjO1G0xO#=WQ(CjO1G0xO#@WQ$IUO'#CfO#BUQ$IUO1G1ZO#B]Q$IUO'#JdO!+pQSO1G1aO#BmQ(CjO,5?QOOQ(CW-E<d-E<dO#CaQ(CjO1G0xOOQ(CY1G0x1G0xO#ElQ(CjO1G1^O#F`Q#tO,5<RO#FhQ#tO,5<SO#FpQ#tO'#FjO#GXQSO'#FiOOQO'#Jx'#JxOOQO'#Id'#IdO#G^Q#tO1G1iOOQ(CY1G1i1G1iOOOO1G1t1G1tO#GoQ$IUO'#JcO#GyQSO,5<]O!)jQUO,5<]OOOO-E<c-E<cOOQ(CY1G1f1G1fO#HOQWO'#JwOOQ(CY,5<_,5<_O#HWQWO,5<_OOQ(CY,59b,59bO!%tQ,UO'#C|OOOO'#IW'#IWO#H]O07`O,59fOOQ(CY,59f,59fO%QQUO1G1zO!5YQSO'#IhO#HhQSO,5<sOOQ(CY,5<p,5<pOOQO'#Gf'#GfO!'^Q,UO,5=POOQO'#Gh'#GhO!'^Q,UO,5=RO!%tQ,UO,5=TOOQO1G1|1G1|O#HvQ`O'#CoO#IZQ`O,5<lO#IbQSO'#J{O9_QSO'#J{O#IpQSO,5<nO!'^Q,UO,5<mO#IuQSO'#GSO#JQQSO,5<mO#JVQ`O'#GPO#JdQ`O'#J|O#JnQSO'#J|O!%tQ,UO'#J|O#JsQSO,5<qO#JxQWO'#G[O!3cQWO'#G[O#KZQSO'#G^O#K`QSO'#G`O!2dQSO'#GcO#KeQ(C[O'#IjO#KpQWO,5<uOOQ(CY,5<u,5<uO#KwQWO'#G[O#LVQWO'#G]O#L_QWO'#G]OOQ(CY,5=U,5=UO!'^Q,UO,5?wO!'^Q,UO,5?wO#LdQSO'#IkO#LoQSO,5?vO#LwQSO,59]O#MhQ,UO,59nOOQ(CY,59n,59nO#NZQ,UO,5<dO#N|Q,UO,5<fO?rQSO,5<hOOQ(CY,5<i,5<iO$ WQSO,5<oO$ ]Q,UO,5<tO$ mQSO'#JoO!#qQUO1G1{O$ rQSO1G1{OOQQ1G4U1G4UOOQ(CY1G/t1G/tO!+mQSO1G/tO$#qQ(CjO1G0QOOQQ1G2q1G2qO!%tQ,UO1G2qO%QQUO1G2qO$$bQSO1G2qO$$mQ,UO'#EdOOQ(CW,5?t,5?tO$$wQ(C[O,5?tOOQQ1G.r1G.rO!>dQ(C[O1G.rO!>oQWO1G.rO!>wQ,UO1G.rO$%YQSO1G0nO$%_QSO'#CfO$%jQSO'#KTO$%rQSO,5=rO$%wQSO'#KTO$%|QSO'#KTO$&XQSO'#IsO$&gQSO,5@nO$&oQbO1G1cOOQ(CY1G1e1G1eO9_QSO1G3]O?rQSO1G3]O$&vQSO1G3]O$&{QSO1G3]OOQQ1G3]1G3]O:vQSO'#JrO:vQSO'#EmO%QQUO'#EmO:vQSO'#ImO$'QQ(C[O,5@kOOQQ1G2u1G2uO!BTQSO1G2{O!%tQ,UO1G2xO$']QSO1G2xOOQQ1G2y1G2yO!%tQ,UO1G2yO$'bQSO1G2yO$'jQWO'#GwOOQQ1G2{1G2{O!3cQWO'#IoO!BYQ`O1G3OOOQQ1G3O1G3OOOQQ,5=i,5=iO$'rQ,UO,5=kO9_QSO,5=kO#K`QSO,5=mO8tQSO,5=mO!>oQWO,5=mO!>wQ,UO,5=mO9dQ,UO,5=mO$(QQSO'#KRO$(]QSO,5=nOOQQ1G.h1G.hO$(bQ(C[O1G.hO?rQSO1G.hO$(mQSO1G.hO9OQ(C[O1G.hO$*rQbO,5@pO$+SQSO,5@pO$+_QUO,5=uO$+fQSO,5=uO:vQSO,5@pOOQQ1G3_1G3_O`QUO1G3_OOQQ1G3e1G3eOOQQ1G3g1G3gO={QSO1G3iO$+kQUO1G3kO$/lQUO'#HjOOQQ1G3n1G3nO$/yQSO'#HpO>QQSO'#HrOOQQ1G3t1G3tO$0RQUO1G3tO9OQ(C[O1G3zOOQQ1G3|1G3|OOQ(CW'#GW'#GWO9OQ(C[O1G4OO9OQ(C[O1G4QO$4VQSO,5@RO!)jQUO,5;XO:vQSO,5;XO>QQSO,5:RO!)jQUO,5:RO!>oQWO,5:RO$4[Q$IUO,5:ROOQO,5;X,5;XO$4fQWO'#IZO$4|QSO,5@QOOQ(CY1G/l1G/lO$5UQWO'#IaO$5`QSO,5@`OOQ(CW1G0r1G0rO!LaQWO,5:ROOQO'#I^'#I^O$5hQWO,5:mOOQ(CY,5:m,5:mO#![QSO1G0VOOQ(CY1G0V1G0VO%QQUO1G0VOOQ(CY1G0m1G0mO>QQSO1G0mO!>oQWO1G0mO!>wQ,UO1G0mOOQ(CW1G5m1G5mO!>dQ(C[O1G0YOOQO1G0f1G0fO%QQUO1G0fO$5oQ(C[O1G0fO$5zQ(C[O1G0fO!>oQWO1G0YOCOQWO1G0YO$6YQ(C[O1G0fOOQO1G0Y1G0YO$6nQ(CjO1G0fPOOO-E<Q-E<QPOOO1G.f1G.fOOOO1G/c1G/cO$6xQ`O,5<cO$7QQbO1G4`OOQO1G4f1G4fO%QQUO,5>tO$7[QSO1G5kO$7dQSO1G5xO$7lQbO1G5yO:vQSO,5>zO$7vQ(CjO1G5vO%QQUO1G5vO$8WQ(C[O1G5vO$8iQSO1G5uO$8iQSO1G5uO:vQSO1G5uO$8qQSO,5>}O:vQSO,5>}OOQO,5>},5>}O$9VQSO,5>}O$ mQSO,5>}OOQO-E<a-E<aOOQO1G0]1G0]OOQO1G0_1G0_O!+pQSO1G0_OOQQ7+(]7+(]O!%tQ,UO7+(]O%QQUO7+(]O$9eQSO7+(]O$9pQ,UO7+(]O$:OQ(CjO,59nO$<WQ(CjO,5<dO$>cQ(CjO,5<fO$@nQ(CjO,5<tOOQ(CY7+&Y7+&YO$CPQ(CjO7+&YO$CsQ,UO'#I[O$C}QSO,5@SOOQ(CY1G/v1G/vO$DVQUO'#I]O$DdQSO,5@TO$DlQbO,5@TOOQ(CY1G/{1G/{O$DvQSO7+&cOOQ(CY7+&c7+&cO$D{Q$IUO,5:bO%QQUO7+&uO$EVQ$IUO,5:YO$EdQ$IUO,5:fO$EnQ$IUO,5:hOOQ(CY7+&{7+&{OOQO1G1m1G1mOOQO1G1n1G1nO$ExQ#tO,5<UO!)jQUO,5<TOOQO-E<b-E<bOOQ(CY7+'T7+'TOOOO7+'`7+'`OOOO1G1w1G1wO$FTQSO1G1wOOQ(CY1G1y1G1yO$FYQ`O,59hOOOO-E<U-E<UOOQ(CY1G/Q1G/QO$FaQ(CjO7+'fOOQ(CY,5?S,5?SO$GTQSO,5?SOOQ(CY1G2_1G2_P$GYQSO'#IhPOQ(CY-E<f-E<fO$G|Q,UO1G2kO$HoQ,UO1G2mO$HyQ`O1G2oOOQ(CY1G2W1G2WO$IQQSO'#IgO$I`QSO,5@gO$I`QSO,5@gO$IhQSO,5@gO$IsQSO,5@gOOQO1G2Y1G2YO$JRQ,UO1G2XO!'^Q,UO1G2XO$JcQMhO'#IiO$JsQSO,5@hO!%tQ,UO,5@hO$J{Q`O,5@hOOQ(CY1G2]1G2]OOQ(CW,5<v,5<vOOQ(CW,5<w,5<wO$ mQSO,5<wOBoQSO,5<wO!>oQWO,5<vOOQO'#G_'#G_O$KVQSO,5<xOOQ(CW,5<z,5<zO$ mQSO,5<}OOQO,5?U,5?UOOQO-E<h-E<hOOQ(CY1G2a1G2aO!3cQWO,5<vO$K_QSO,5<wO#KZQSO,5<xO!3cQWO,5<wO$KjQ,UO1G5cO$KtQ,UO1G5cOOQO,5?V,5?VOOQO-E<i-E<iOOQO1G.w1G.wO!?uQWO,59pO%QQUO,59pO$LRQSO1G2SO!'^Q,UO1G2ZO$LWQ(CjO7+'gOOQ(CY7+'g7+'gO!#qQUO7+'gOOQ(CY7+%`7+%`O$LzQ`O'#J}O#![QSO7+(]O$MUQbO7+(]O$9hQSO7+(]O$M]Q(ChO'#CfO$MpQ(ChO,5<{O$NbQSO,5<{OOQ(CW1G5`1G5`OOQQ7+$^7+$^O!>dQ(C[O7+$^O!>oQWO7+$^O!#qQUO7+&YO$NgQSO'#IrO$N{QSO,5@oOOQO1G3^1G3^O9_QSO,5@oO$N{QSO,5@oO% TQSO,5@oOOQO,5?_,5?_OOQO-E<q-E<qOOQ(CY7+&}7+&}O% YQSO7+(wO9OQ(C[O7+(wO9_QSO7+(wO?rQSO7+(wO% _QSO,5;XOOQ(CW,5?X,5?XOOQ(CW-E<k-E<kOOQQ7+(g7+(gO% dQ(ChO7+(dO!%tQ,UO7+(dO% nQ`O7+(eOOQQ7+(e7+(eO!%tQ,UO7+(eO% uQSO'#KQO%!QQSO,5=cOOQO,5?Z,5?ZOOQO-E<m-E<mOOQQ7+(j7+(jO%#aQWO'#HQOOQQ1G3V1G3VO!%tQ,UO1G3VO%QQUO1G3VO%#hQSO1G3VO%#sQ,UO1G3VO9OQ(C[O1G3XO#K`QSO1G3XO8tQSO1G3XO!>oQWO1G3XO!>wQ,UO1G3XO%$RQSO'#IqO%$^QSO,5@mO%$fQWO,5@mOOQ(CW1G3Y1G3YOOQQ7+$S7+$SO?rQSO7+$SO9OQ(C[O7+$SO%$qQSO7+$SO%QQUO1G6[O%QQUO1G6]O%$vQUO1G3aO%$}QSO1G3aO%%SQUO1G3aO%%ZQ(C[O1G6[OOQQ7+(y7+(yO9OQ(C[O7+)TO`QUO7+)VOOQQ'#KW'#KWOOQQ'#It'#ItO%%eQUO,5>UOOQQ,5>U,5>UO%QQUO'#HkO%%rQSO'#HmOOQQ,5>[,5>[O:vQSO,5>[OOQQ,5>^,5>^OOQQ7+)`7+)`OOQQ7+)f7+)fOOQQ7+)j7+)jOOQQ7+)l7+)lO%%wQWO1G5mO%&]Q$IUO1G0sO%&gQSO1G0sOOQO1G/m1G/mO%&rQ$IUO1G/mO>QQSO1G/mO!)jQUO'#DgOOQO,5>u,5>uOOQO-E<X-E<XOOQO,5>{,5>{OOQO-E<_-E<_O!>oQWO1G/mOOQO-E<[-E<[OOQ(CY1G0X1G0XOOQ(CY7+%q7+%qO#![QSO7+%qOOQ(CY7+&X7+&XO>QQSO7+&XO!>oQWO7+&XOOQO7+%t7+%tO$6nQ(CjO7+&QOOQO7+&Q7+&QO%QQUO7+&QO%&|Q(C[O7+&QO!>dQ(C[O7+%tO!>oQWO7+%tO%'XQ(C[O7+&QO%'gQ(CjO7++bO%QQUO7++bO%'wQSO7++aO%'wQSO7++aOOQO1G4i1G4iO:vQSO1G4iO%(PQSO1G4iOOQO7+%y7+%yO#![QSO<<KwO$MUQbO<<KwO%(_QSO<<KwOOQQ<<Kw<<KwO!%tQ,UO<<KwO%QQUO<<KwO%(gQSO<<KwO%(rQ(CjO1G2kO%*}Q(CjO1G2mO%-YQ(CjO1G2XO%/kQ,UO,5>vOOQO-E<Y-E<YO%/uQbO,5>wO%QQUO,5>wOOQO-E<Z-E<ZO%0PQSO1G5oOOQ(CY<<I}<<I}O%0XQ$IUO1G0nO%2cQ$IUO1G0xO%2jQ$IUO1G0xO%4nQ$IUO1G0xO%4uQ$IUO1G0xO%6jQ$IUO1G0xO%7QQ$IUO1G0xO%9eQ$IUO1G0xO%9lQ$IUO1G0xO%;pQ$IUO1G0xO%;wQ$IUO1G0xO%=oQ$IUO1G0xO%>SQ(CjO<<JaO%?XQ$IUO1G0xO%@}Q$IUO'#J^O%CQQ$IUO1G1^O%C_Q$IUO1G0QO!)jQUO'#FlOOQO'#Jy'#JyOOQO1G1p1G1pO%CiQSO1G1oO%CnQ$IUO,5?QOOOO7+'c7+'cOOOO1G/S1G/SOOQ(CY1G4n1G4nO!'^Q,UO7+(ZO%CxQSO,5?RO9_QSO,5?ROOQO-E<e-E<eO%DWQSO1G6RO%DWQSO1G6RO%D`QSO1G6RO%DkQ,UO7+'sO%D{Q`O,5?TO%EVQSO,5?TO!%tQ,UO,5?TOOQO-E<g-E<gO%E[Q`O1G6SO%EfQSO1G6SOOQ(CW1G2c1G2cO$ mQSO1G2cOOQ(CW1G2b1G2bO%EnQSO1G2dO!%tQ,UO1G2dOOQ(CW1G2i1G2iO!>oQWO1G2bOBoQSO1G2cO%EsQSO1G2dO%E{QSO1G2cO!'^Q,UO7+*}OOQ(CY1G/[1G/[O%FWQSO1G/[OOQ(CY7+'n7+'nO%F]Q,UO7+'uO%FmQ(CjO<<KROOQ(CY<<KR<<KRO!%tQ,UO'#IlO%GaQSO,5@iO!%tQ,UO1G2gOOQQ<<Gx<<GxO!>dQ(C[O<<GxO%GiQ(CjO<<ItOOQ(CY<<It<<ItOOQO,5?^,5?^O%H]QSO,5?^O$%|QSO,5?^OOQO-E<p-E<pO%HbQSO1G6ZO%HbQSO1G6ZO9_QSO1G6ZO?rQSO<<LcOOQQ<<Lc<<LcO%HjQSO<<LcO9OQ(C[O<<LcO%HoQSO1G0sOOQQ<<LO<<LOO% dQ(ChO<<LOOOQQ<<LP<<LPO% nQ`O<<LPO%HtQWO'#InO%IPQSO,5@lO!)jQUO,5@lOOQQ1G2}1G2}O%IXQUO'#JgOOQO'#Ip'#IpO9OQ(C[O'#IpO%IcQWO,5=lOOQQ,5=l,5=lO%IjQWO'#E`O%JOQSO7+(qO%JTQSO7+(qOOQQ7+(q7+(qO!%tQ,UO7+(qO%QQUO7+(qO%J]QSO7+(qOOQQ7+(s7+(sO9OQ(C[O7+(sO#K`QSO7+(sO8tQSO7+(sO!>oQWO7+(sO%JhQSO,5?]OOQO-E<o-E<oOOQO'#HT'#HTO%JsQSO1G6XO9OQ(C[O<<GnOOQQ<<Gn<<GnO?rQSO<<GnO%J{QSO7++vO%KQQSO7++wOOQQ7+({7+({O%KVQSO7+({O%K[QUO7+({O%KcQSO7+({O%QQUO7++vO%QQUO7++wOOQQ<<Lo<<LoOOQQ<<Lq<<LqOOQQ-E<r-E<rOOQQ1G3p1G3pO%KhQSO,5>VOOQQ,5>X,5>XO%KmQSO1G3vO:vQSO7+&_O!)jQUO7+&_OOQO7+%X7+%XO%KrQ$IUO1G5yO>QQSO7+%XOOQ(CY<<I]<<I]OOQ(CY<<Is<<IsO>QQSO<<IsOOQO<<Il<<IlO$6nQ(CjO<<IlO%QQUO<<IlOOQO<<I`<<I`O!>dQ(C[O<<I`O%K|Q(C[O<<IlO%LXQ(CjO<<N|O%LiQSO<<N{OOQO7+*T7+*TO:vQSO7+*TOOQQANAcANAcO%LqQSOANAcO!%tQ,UOANAcO#![QSOANAcO$MUQbOANAcO%QQUOANAcO%LyQ(CjO7+'sO& [Q(CjO7+'uO&#mQbO1G4cO&#wQ$IUO7+&YO&$UQ$IUO,59nO&&XQ$IUO,5<dO&([Q$IUO,5<fO&*_Q$IUO,5<tO&,TQ$IUO7+'fO&,bQ$IUO7+'gO&,oQSO,5<WOOQO7+'Z7+'ZO&,tQ,UO<<KuOOQO1G4m1G4mO&,{QSO1G4mO&-WQSO1G4mO&-fQSO7++mO&-fQSO7++mO!%tQ,UO1G4oO&-nQ`O1G4oO&-xQSO7++nOOQ(CW7+'}7+'}O$ mQSO7+(OO&.QQ`O7+(OOOQ(CW7+'|7+'|O$ mQSO7+'}O&.XQSO7+(OO!%tQ,UO7+(OOBoQSO7+'}O&.^Q,UO<<NiOOQ(CY7+$v7+$vO&.hQ`O,5?WOOQO-E<j-E<jO&.rQ(ChO7+(ROOQQAN=dAN=dO9_QSO1G4xOOQO1G4x1G4xO&/SQSO1G4xO&/XQSO7++uO&/XQSO7++uO9OQ(C[OANA}O?rQSOANA}OOQQANA}ANA}OOQQANAjANAjOOQQANAkANAkO&/aQSO,5?YOOQO-E<l-E<lO&/lQ$IUO1G6WO&1|QbO'#CfOOQO,5?[,5?[OOQO-E<n-E<nOOQQ1G3W1G3WO%IXQUO,5<xOOQQ<<L]<<L]O!%tQ,UO<<L]O%JOQSO<<L]O&2WQSO<<L]O%QQUO<<L]OOQQ<<L_<<L_O9OQ(C[O<<L_O#K`QSO<<L_O8tQSO<<L_O&2`QWO1G4wO&2kQSO7++sOOQQAN=YAN=YO9OQ(C[OAN=YOOQQ<= b<= bOOQQ<= c<= cOOQQ<<Lg<<LgO&2sQSO<<LgO&2xQUO<<LgO&3PQSO<= bO&3UQSO<= cOOQQ1G3q1G3qO>QQSO7+)bO&3ZQSO<<IyO&3fQ$IUO<<IyOOQO<<Hs<<HsOOQ(CYAN?_AN?_OOQOAN?WAN?WO$6nQ(CjOAN?WOOQOAN>zAN>zO%QQUOAN?WOOQO<<Mo<<MoOOQQG26}G26}O!%tQ,UOG26}O#![QSOG26}O&3pQSOG26}O$MUQbOG26}O&3xQ$IUO<<JaO&4VQ$IUO1G2XO&5{Q$IUO1G2kO&8OQ$IUO1G2mO&:RQ$IUO<<KRO&:`Q$IUO<<ItOOQO1G1r1G1rO!'^Q,UOANAaOOQO7+*X7+*XO&:mQSO7+*XO&:xQSO<= XO&;QQ`O7+*ZOOQ(CW<<Kj<<KjO$ mQSO<<KjOOQ(CW<<Ki<<KiO&;[Q`O<<KjO$ mQSO<<KiOOQO7+*d7+*dO9_QSO7+*dO&;cQSO<= aOOQQG27iG27iO9OQ(C[OG27iO!)jQUO1G4tO&;kQSO7++rO%JOQSOANAwOOQQANAwANAwO!%tQ,UOANAwO&;sQSOANAwOOQQANAyANAyO9OQ(C[OANAyO#K`QSOANAyOOQO'#HU'#HUOOQO7+*c7+*cOOQQG22tG22tOOQQANBRANBRO&;{QSOANBROOQQAND|AND|OOQQAND}AND}OOQQ<<L|<<L|O!)jQUOAN?eOOQOG24rG24rO$6nQ(CjOG24rO#![QSOLD,iOOQQLD,iLD,iO!%tQ,UOLD,iO&<QQSOLD,iO&<YQ$IUO7+'sO&>OQ$IUO7+'uO&?tQ,UOG26{OOQO<<Ms<<MsOOQ(CWANAUANAUO$ mQSOANAUOOQ(CWANATANATOOQO<<NO<<NOOOQQLD-TLD-TO&@UQ$IUO7+*`OOQQG27cG27cO%JOQSOG27cO!%tQ,UOG27cOOQQG27eG27eO9OQ(C[OG27eOOQQG27mG27mO&@`Q$IUOG25POOQOLD*^LD*^OOQQ!$(!T!$(!TO#![QSO!$(!TO!%tQ,UO!$(!TO&@jQ(CjOG26{OOQ(CWG26pG26pOOQQLD,}LD,}O%JOQSOLD,}OOQQLD-PLD-POOQQ!)9Eo!)9EoO#![QSO!)9EoOOQQ!$(!i!$(!iOOQQ!.K;Z!.K;ZO&B{Q$IUOG26{O!)jQUO'#DvO0uQSO'#ETO&DqQbO'#JcO!)jQUO'#DnO&DxQUO'#DzO!)jQUO'#D|O&EPQbO'#CfO&GgQbO'#CfO&GwQUO,5;SO!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO'#IfO&IzQSO,5<cO&JSQ,UO,5;^O&KgQ,UO,5;^O!)jQUO,5;rO0xQSO'#DSO0xQSO'#DSO!%tQ,UO'#FxO&JSQ,UO'#FxO!%tQ,UO'#FzO&JSQ,UO'#FzO!%tQ,UO'#GYO&JSQ,UO'#GYO!)jQUO,5:fO!)jQUO,5@_O&GwQUO1G0nO&KnQ$IUO'#CfO!)jQUO1G1zO!%tQ,UO,5=PO&JSQ,UO,5=PO!%tQ,UO,5=RO&JSQ,UO,5=RO!%tQ,UO,5<mO&JSQ,UO,5<mO&GwQUO1G1{O!)jQUO7+&uO!%tQ,UO1G2XO&JSQ,UO1G2XO!%tQ,UO1G2ZO&JSQ,UO1G2ZO&GwQUO7+'gO&GwQUO7+&YO!%tQ,UOANAaO&JSQ,UOANAaO&KxQSO'#EhO&K}QSO'#EhO&LVQSO'#FWO&L[QSO'#ErO&LaQSO'#JsO&LlQSO'#JqO&LwQSO,5;SO&L|Q,UO,5<`O&MTQSO'#GRO&MYQSO'#GRO&M_QSO,5<aO&MgQSO,5;SO&MoQ$IUO1G1ZO&MvQSO,5<mO&M{QSO,5<mO&NQQSO,5<oO&NVQSO,5<oO&N[QSO1G1{O&NaQSO1G0nO&NfQ,UO<<KuO&NmQ,UO<<KuO7^Q,UO'#FvO8tQSO'#FuO@mQSO'#EgO!)jQUO,5;oO!2dQSO'#GRO!2dQSO'#GRO!2dQSO'#GTO!2dQSO'#GTO!'^Q,UO7+(ZO!'^Q,UO7+(ZO$HyQ`O1G2oO$HyQ`O1G2oO!%tQ,UO,5=TO!%tQ,UO,5=T\",stateData:\"' v~O'mOS'nOSROS'oRQ~OPYOQYOV!TO^pOaxObwOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!XXO!csO!hZO!kYO!lYO!mYO!otO!quO!tvO!x]O#p}O$QzO$UfO%`{O%b!OO%d|O%e|O%h!PO%j!QO%m!RO%n!RO%p!SO%|!UO&S!VO&U!WO&W!XO&Y!YO&]!ZO&c![O&i!]O&k!^O&m!_O&o!`O&q!aO'tSO'vTO'yUO(RVO(a[O(niO~OPYOQYOa!gOb!fOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!X!cO!csO!hZO!kYO!lYO!mYO!otO!quO!t!eO$Q!hO$UfO't!bO'vTO'yUO(RVO(a[O(niO~O^!sOl!kO|!lO![!uO!]!rO!^!rO!x9mO!|!mO!}!mO#O!tO#P!mO#Q!mO#T!vO#U!vO'u!iO'vTO'yUO(U!jO(a!pO~O'o!wO~OPYXXYX^YXkYXyYXzYX|YX!VYX!eYX!fYX!hYX!lYX#XYX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX'kYX(RYX(bYX(iYX(jYX~O!a$zX~P(gO[!yO'v!{O'w!yO'x!{O~O[!|O'x!{O'y!{O'z!|O~Oq#OO!O#PO(S#PO(T#RO~OPYOQYOa!gOb!fOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!X!cO!csO!hZO!kYO!lYO!mYO!otO!quO!t!eO$Q!hO$UfO't9rO'vTO'yUO(RVO(a[O(niO~O!U#VO!V#SO!S(XP!S(fP~P+sO!W#_O~P`OPYOQYOa!gOb!fOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!X!cO!csO!hZO!kYO!lYO!mYO!otO!quO!t!eO$Q!hO$UfO'vTO'yUO(RVO(a[O(niO~Oi#iO!U#eO!x]O#b#hO#c#eO't9sO!g(cP~P._O!h#kO't#jO~O!t#oO!x]O%`#pO~O#d#qO~O!a#rO#d#qO~OP$YOX$aOk#}Oy#vOz#wO|#xO!V$^O!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO#u$UO#v$VO(RVO(b$WO(i#yO(j#zO~O^(VX'k(VX'i(VX!g(VX!S(VX!X(VX%a(VX!a(VX~P1gO#X$bO#{$bOP(WXX(WXk(WXy(WXz(WX|(WX!V(WX!e(WX!h(WX!l(WX#g(WX#h(WX#i(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#q(WX#s(WX#u(WX#v(WX(R(WX(b(WX(i(WX(j(WX!X(WX%a(WX~O^(WX!f(WX'k(WX'i(WX!S(WX!g(WXo(WX!a(WX~P3}O#X$bO~O$W$dO$Y$cO$a$iO~O!X$jO$UfO$d$kO$f$mO~Oi%POk$qOl$pOm$pOs%QOu%ROw%SO|$xO!X$yO!c%XO!h$uO#c%YO$Q%VO$m%TO$o%UO$r%WO't$oO'vTO'yUO'}%OO(R$rOd(OP~O!h%ZO~O!a%]O~O^%^O'k%^O~O'u!iO~P%QO't%eO~O!h%ZO't%eO'u!iO'}%OO~Ob%lO!h%ZO't%eO~O#o$PO~Oy%qO!X%nO!h%pO%b%tO't%eO'u!iO'vTO'yUO](vP~O!t#oO~O|%vO!X%wO't%eO~O|%vO!X%wO%j%{O't%eO~O't%|O~O#p}O%b!OO%d|O%e|O%h!PO%j!QO%m!RO%n!RO~Oa&VOb&UO!t&SO%`&TO%r&RO~P;fOa&YObwO!X&XO!tvO!x]O#p}O%`{O%d|O%e|O%h!PO%j!QO%m!RO%n!RO%p!SO~O_&]O#X&`O%b&ZO'u!iO~P<eO!h&aO!q&eO~O!h#kO~O!XXO~O^%^O'j&mO'k%^O~O^%^O'j&pO'k%^O~O^%^O'j&rO'k%^O~O'iYX!SYXoYX!gYX&QYX!XYX%aYX!aYX~P(gO!['PO!]&xO!^&xO'u!iO'vTO'yUO~Ol&vO|&uO!U&yO(U&tO!W(YP!W(hP~P?fOg'SO!X'QO't%eO~Ob'XO!h%ZO't%eO~Oy%qO!h%pO~Ol!kO|!lO!x9mO!|!mO!}!mO#P!mO#Q!mO'u!iO'vTO'yUO(U!jO(a!pO~O!['_O!]'^O!^'^O#O!mO#T'`O#U'`O~PAQO^%^O!a#rO!h%ZO'k%^O'}%OO(b'bO~O!l'fO#X'dO~PB`Ol!kO|!lO'vTO'yUO(U!jO(a!pO~O!XXOl(_X|(_X![(_X!](_X!^(_X!x(_X!|(_X!}(_X#O(_X#P(_X#Q(_X#T(_X#U(_X'u(_X'v(_X'y(_X(U(_X(a(_X~O!]'^O!^'^O'u!iO~PCOO'p'jO'q'jO'r'lO~O[!yO'v'nO'w!yO'x'nO~O[!|O'x'nO'y'nO'z!|O~Oq#OO!O#PO(S#PO(T'rO~O!U'tO!S&|X!S'SX!V&|X!V'SX~P+sO!V'vO!S(XX~OP$YOX$aOk#}Oy#vOz#wO|#xO!V'vO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO#u$UO#v$VO(RVO(b$WO(i#yO(j#zO~O!S(XX~PFrO!S'{O~O!S(eX!V(eX!a(eX!g(eX(b(eX~O#X(eX#d#]X!W(eX~PHxO#X'|O!S(gX!V(gX~O!V'}O!S(fX~O!S(QO~O#X$bO~PHxO!W(RO~P`Oy#vOz#wO|#xO!f#tO!h#uO(RVOP!jaX!jak!ja!V!ja!e!ja!l!ja#g!ja#h!ja#i!ja#j!ja#k!ja#l!ja#m!ja#n!ja#o!ja#q!ja#s!ja#u!ja#v!ja(b!ja(i!ja(j!ja~O^!ja'k!ja'i!ja!S!ja!g!jao!ja!X!ja%a!ja!a!ja~PJ`O!g(SO~O!a#rO#X(TO(b'bO!V(dX^(dX'k(dX~O!g(dX~PMOO|%vO!X%wO!x]O#b(YO#c(XO't%eO~O!V(ZO!g(cX~O!g(]O~O|%vO!X%wO#c(XO't%eO~OP(WXX(WXk(WXy(WXz(WX|(WX!V(WX!e(WX!f(WX!h(WX!l(WX#g(WX#h(WX#i(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#q(WX#s(WX#u(WX#v(WX(R(WX(b(WX(i(WX(j(WX~O!a#rO!g(WX~PNlOy(^Oz(_O!f#tO!h#uO!x!wa|!wa~O!t!wa%`!wa!X!wa#b!wa#c!wa't!wa~P!!pO!t(cO~OPYOQYOa!gOb!fOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!XXO!csO!hZO!kYO!lYO!mYO!otO!quO!t!eO$Q!hO$UfO't!bO'vTO'yUO(RVO(a[O(niO~Oi%POk$qOl$pOm$pOs%QOu%ROw:VO|$xO!X$yO!c;aO!h$uO#c:]O$Q%VO$m:XO$o:ZO$r%WO't(gO'vTO'yUO'}%OO(R$rO~O#d(iO~Oi%POk$qOl$pOm$pOs%QOu%ROw%SO|$xO!X$yO!c%XO!h$uO#c%YO$Q%VO$m%TO$o%UO$r%WO't(gO'vTO'yUO'}%OO(R$rO~Od([P~P!'^O!U(mO!g(]P~P%QO(U(oO(a[O~O|(qO!h#uO(U(oO(a[O~OP9lOQ9lOa;]Ob!fOikOk9lOlkOmkOskOu9lOw9lO|WO!QkO!RkO!X!cO!c9oO!hZO!k9lO!l9lO!m9lO!o9pO!q9qO!t!eO$Q!hO$UfO't)PO'vTO'yUO(RVO(a[O(n;ZO~Oz)SO!h#uO~O!V$^O^$ka'k$ka'i$ka!g$ka!S$ka!X$ka%a$ka!a$ka~O#p)WO~P!%tOy)ZO!a)YO!X$XX$T$XX$W$XX$Y$XX$a$XX~O!a)YO!X(kX$T(kX$W(kX$Y(kX$a(kX~Oy)ZO~P!-SOy)ZO!X(kX$T(kX$W(kX$Y(kX$a(kX~O!X)]O$T)aO$W)[O$Y)[O$a)bO~O!U)eO~P!)jO$W$dO$Y$cO$a)iO~Og$sXy$sX|$sX!f$sX(i$sX(j$sX~OdfXd$sXgfX!VfX#XfX~P!.xOl)kO~Oq)lO(S)mO(T)oO~Og)xOy)qO|)rO(i)tO(j)vO~Od)pO~P!0ROd)yO~Oi%POk$qOl$pOm$pOs%QOu%ROw:VO|$xO!X$yO!c;aO!h$uO#c:]O$Q%VO$m:XO$o:ZO$r%WO'vTO'yUO'}%OO(R$rO~O!U)}O't)zO!g(oP~P!0pO#d*PO~O!h*QO~O!U*VO't*SO!S(pP~P!0pOk*cO|*ZO![*aO!]*YO!^*YO!h*QO#T*bO%W*]O'u!iO(U!jO~O!W*`O~P!2vO!f#tOg(QXy(QX|(QX(i(QX(j(QX!V(QX#X(QX~Od(QX#y(QX~P!3oOg*fO#X*eOd(PX!V(PX~O!V*gOd(OX~O't%|Od(OP~O!h*nO~O't(gO~Oi*rO|%vO!U#eO!X%wO!x]O#b#hO#c#eO't%eO!g(cP~O!a#rO#d*sO~OP$YOX$aOk#}Oy#vOz#wO|#xO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO#u$UO#v$VO(RVO(b$WO(i#yO(j#zO~O^!ba!V!ba'k!ba'i!ba!S!ba!g!bao!ba!X!ba%a!ba!a!ba~P!6UOy#vOz#wO|#xO!f#tO!h#uO(RVOP!naX!nak!na!V!na!e!na!l!na#g!na#h!na#i!na#j!na#k!na#l!na#m!na#n!na#o!na#q!na#s!na#u!na#v!na(b!na(i!na(j!na~O^!na'k!na'i!na!S!na!g!nao!na!X!na%a!na!a!na~P!8oOy#vOz#wO|#xO!f#tO!h#uO(RVOP!paX!pak!pa!V!pa!e!pa!l!pa#g!pa#h!pa#i!pa#j!pa#k!pa#l!pa#m!pa#n!pa#o!pa#q!pa#s!pa#u!pa#v!pa(b!pa(i!pa(j!pa~O^!pa'k!pa'i!pa!S!pa!g!pao!pa!X!pa%a!pa!a!pa~P!;YOg*{O!X'QO%a*zO'}%OO~O!a*}O^'|X!X'|X'k'|X!V'|X~O^%^O!XXO'k%^O~O!h%ZO'}%OO~O!h%ZO't%eO'}%OO~O!a#rO#d(iO~O%b+ZO't+VO'vTO'yUO!W(wP~O!V+[O](vX~O(U(oO~OX+`O~O]+aO~O!X%nO't%eO'u!iO](vP~O|%vO!U+eO!V'}O!X%wO't%eO!S(fP~Ol&|O|+gO!U+fO'vTO'yUO(U(oO~O!W(hP~P!@xO!V+hO^(sX'k(sX~O#X+lO'}%OO~Og+oO!X$yO'}%OO~O!X+qO~Oy+sO!XXO~O!t+xO~Ob+}O~O't#jO!W(uP~Ob%lO~O%b!OO't%|O~P<eOX,TO],SO~OPYOQYOaxObwOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!csO!hZO!kYO!lYO!mYO!otO!quO!tvO!x]O$UfO%`{O'vTO'yUO(RVO(a[O(niO~O!X!cO$Q!hO't!bO~P!C]O],SO^%^O'k%^O~O^,XO#p,ZO%d,ZO%e,ZO~P%QO!h&aO~O&S,`O~O!X,bO~O&e,dO&g,eOP&baQ&baV&ba^&baa&bab&bai&bak&bal&bam&bas&bau&baw&ba|&ba!Q&ba!R&ba!X&ba!c&ba!h&ba!k&ba!l&ba!m&ba!o&ba!q&ba!t&ba!x&ba#p&ba$Q&ba$U&ba%`&ba%b&ba%d&ba%e&ba%h&ba%j&ba%m&ba%n&ba%p&ba%|&ba&S&ba&U&ba&W&ba&Y&ba&]&ba&c&ba&i&ba&k&ba&m&ba&o&ba&q&ba'i&ba't&ba'v&ba'y&ba(R&ba(a&ba(n&ba!W&ba&Z&ba_&ba&`&ba~O't,jO~O!V{X!V!_X!W{X!W!_X!a{X!a!_X!h!_X#X{X'}!_X~O!a,oO#X,nO!V#aX!V(ZX!W#aX!W(ZX!a(ZX!h(ZX'}(ZX~O!a,qO!h%ZO'}%OO!V!ZX!W!ZX~Ol!kO|!lO'vTO'yUO(U!jO~OP9lOQ9lOa;]Ob!fOikOk9lOlkOmkOskOu9lOw9lO|WO!QkO!RkO!X!cO!c9oO!hZO!k9lO!l9lO!m9lO!o9pO!q9qO!t!eO$Q!hO$UfO'vTO'yUO(RVO(a[O(n;ZO~O't:bO~P!LrO!V,uO!W(YX~O!W,wO~O!a,oO#X,nO!V#aX!W#aX~O!V,xO!W(hX~O!W,zO~O!],{O!^,{O'u!iO~P!LaO!W-OO~P'TOg-RO!X'QO~O!S-WO~Ol!wa![!wa!]!wa!^!wa!|!wa!}!wa#O!wa#P!wa#Q!wa#T!wa#U!wa'u!wa'v!wa'y!wa(U!wa(a!wa~P!!pO!l-]O#X-ZO~PB`O!]-_O!^-_O'u!iO~PCOO^%^O#X-ZO'k%^O~O^%^O!a#rO#X-ZO'k%^O~O^%^O!a#rO!l-]O#X-ZO'k%^O(b'bO~O'p'jO'q'jO'r-dO~Oo-eO~O!S&|a!V&|a~P!6UO!U-iO!S&|X!V&|X~P%QO!V'vO!S(Xa~O!S(Xa~PFrO!V'}O!S(fa~O|%vO!U-mO!X%wO't%eO!S'SX!V'SX~O#X-oO!V(da!g(da^(da'k(da~O!a#rO~P#&xO!V(ZO!g(ca~O|%vO!X%wO#c-sO't%eO~Oi-xO|%vO!U-uO!X%wO!x]O#b-wO#c-uO't%eO!V'VX!g'VX~Oz-|O!h#uO~Og.PO!X'QO%a.OO'}%OO~O^#[i!V#[i'k#[i'i#[i!S#[i!g#[io#[i!X#[i%a#[i!a#[i~P!6UOg;gOy)qO|)rO(i)tO(j)vO~O#d#Wa^#Wa#X#Wa'k#Wa!V#Wa!g#Wa!X#Wa!S#Wa~P#)tO#d(QXP(QXX(QX^(QXk(QXz(QX!e(QX!h(QX!l(QX#g(QX#h(QX#i(QX#j(QX#k(QX#l(QX#m(QX#n(QX#o(QX#q(QX#s(QX#u(QX#v(QX'k(QX(R(QX(b(QX!g(QX!S(QX'i(QXo(QX!X(QX%a(QX!a(QX~P!3oO!V.YOd([X~P!0ROd.[O~O!V.]O!g(]X~P!6UO!g.`O~O!S.bO~OP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO(RVOX#fi^#fik#fi!V#fi!e#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi'k#fi(b#fi(i#fi(j#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~O#g#fi~P#-pO#g#{O~P#-pOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O(RVOX#fi^#fi!V#fi!e#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi'k#fi(b#fi(i#fi(j#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~Ok#fi~P#0bOk#}O~P#0bOP$YOk#}Oy#vOz#wO|#xO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO(RVO^#fi!V#fi#q#fi#s#fi#u#fi#v#fi'k#fi(b#fi(i#fi(j#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~OX#fi!e#fi#l#fi#m#fi#n#fi#o#fi~P#3SOX$aO!e$PO#l$PO#m$PO#n$`O#o$PO~P#3SOP$YOX$aOk#}Oy#vOz#wO|#xO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO(RVO^#fi!V#fi#s#fi#u#fi#v#fi'k#fi(b#fi(j#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~O(i#fi~P#6TO(i#yO~P#6TOP$YOX$aOk#}Oy#vOz#wO|#xO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO(RVO(i#yO^#fi!V#fi#u#fi#v#fi'k#fi(b#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~O(j#fi~P#8uO(j#zO~P#8uOP$YOX$aOk#}Oy#vOz#wO|#xO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO#u$UO(RVO(i#yO(j#zO~O^#fi!V#fi#v#fi'k#fi(b#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~P#;gOPYXXYXkYXyYXzYX|YX!eYX!fYX!hYX!lYX#XYX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX(RYX(bYX(iYX(jYX!VYX!WYX~O#yYX~P#>QOP$YOX:TOk9wOy#vOz#wO|#xO!e9yO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO#l9yO#m9yO#n:SO#o9yO#q9zO#s9|O#u:OO#v:PO(RVO(b$WO(i#yO(j#zO~O#y.dO~P#@_O#X:UO#{:UO#y(WX!W(WX~PNlO^'Ya!V'Ya'k'Ya'i'Ya!g'Ya!S'Yao'Ya!X'Ya%a'Ya!a'Ya~P!6UOP#fiX#fi^#fik#fiz#fi!V#fi!e#fi!f#fi!h#fi!l#fi#g#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi'k#fi(R#fi(b#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~P#)tO^#zi!V#zi'k#zi'i#zi!S#zi!g#zio#zi!X#zi%a#zi!a#zi~P!6UO$W.iO$Y.iO~O$W.jO$Y.jO~O!a)YO#X.kO!X$^X$T$^X$W$^X$Y$^X$a$^X~O!U.lO~O!X)]O$T.nO$W)[O$Y)[O$a.oO~O!V:QO!W(VX~P#@_O!W.pO~O!a)YO$a(kX~O$a.rO~Oq)lO(S)mO(T.uO~Ol.xO!S.yO'vTO'yUO~O!VcX!acX!gcX!g$sX(bcX~P!.xO!g/PO~P#)tO!V/QO!a#rO(b'bO!g(oX~O!g/VO~O!U)}O't%eO!g(oP~O#d/XO~O!S$sX!V$sX!a$zX~P!.xO!V/YO!S(pX~P#)tO!a/[O~O!S/^O~Ok/bO!a#rO!h%ZO'}%OO(b'bO~O't/dO~O!a*}O~O^%^O!V/hO'k%^O~O!W/jO~P!2vO!]/kO!^/kO'u!iO(U!jO~O|/mO(U!jO~O#T/nO~O't%|Od'_X!V'_X~O!V*gOd(Oa~Od/sO~Oy/tOz/tO|/uOgva(iva(jva!Vva#Xva~Odva#yva~P#L|Oy)qO|)rOg$la(i$la(j$la!V$la#X$la~Od$la#y$la~P#MrOy)qO|)rOg$na(i$na(j$na!V$na#X$na~Od$na#y$na~P#NeO#d/wO~Od$|a!V$|a#X$|a#y$|a~P!0RO!a#rO~O#d/zO~Oy#vOz#wO|#xO!f#tO!h#uO(RVOP!niX!nik!ni!V!ni!e!ni!l!ni#g!ni#h!ni#i!ni#j!ni#k!ni#l!ni#m!ni#n!ni#o!ni#q!ni#s!ni#u!ni#v!ni(b!ni(i!ni(j!ni~O^!ni'k!ni'i!ni!S!ni!g!nio!ni!X!ni%a!ni!a!ni~P$ wOg.PO!X'QO%a.OO~Oi0RO't0QO~P!0sO!a*}O^'|a!X'|a'k'|a!V'|a~O#d0XO~OXYX!VcX!WcX~O!V0YO!W(wX~O!W0[O~OX0]O~O't+VO'vTO'yUO~O!X%nO't%eO]'gX!V'gX~O!V+[O](va~O!g0bO~P!6UOX0eO~O]0fO~O!V+hO^(sa'k(sa~O#X0lO~Og0oO!X$yO~O(U(oO!W(tP~Og0xO!X0uO%a0wO'}%OO~OX1SO!V1QO!W(uX~O!W1TO~O]1VO^%^O'k%^O~O't#jO'vTO'yUO~O#X$bO#{$bOP(WXX(WXk(WXy(WXz(WX|(WX!V(WX!e(WX!h(WX!l(WX#g(WX#h(WX#i(WX#j(WX#k(WX#l(WX#m(WX#n(WX#q(WX#s(WX#u(WX#v(WX(R(WX(b(WX(i(WX(j(WX~O#o1YO&Q1ZO^(WX!f(WX~P$(xO#X$bO#o1YO&Q1ZO~O^1[O~P%QO^1^O~O&Z1bOP&XiQ&XiV&Xi^&Xia&Xib&Xii&Xik&Xil&Xim&Xis&Xiu&Xiw&Xi|&Xi!Q&Xi!R&Xi!X&Xi!c&Xi!h&Xi!k&Xi!l&Xi!m&Xi!o&Xi!q&Xi!t&Xi!x&Xi#p&Xi$Q&Xi$U&Xi%`&Xi%b&Xi%d&Xi%e&Xi%h&Xi%j&Xi%m&Xi%n&Xi%p&Xi%|&Xi&S&Xi&U&Xi&W&Xi&Y&Xi&]&Xi&c&Xi&i&Xi&k&Xi&m&Xi&o&Xi&q&Xi'i&Xi't&Xi'v&Xi'y&Xi(R&Xi(a&Xi(n&Xi!W&Xi_&Xi&`&Xi~O_1hO!W1fO&`1gO~P`O!XXO!h1jO~O&g,eOP&biQ&biV&bi^&bia&bib&bii&bik&bil&bim&bis&biu&biw&bi|&bi!Q&bi!R&bi!X&bi!c&bi!h&bi!k&bi!l&bi!m&bi!o&bi!q&bi!t&bi!x&bi#p&bi$Q&bi$U&bi%`&bi%b&bi%d&bi%e&bi%h&bi%j&bi%m&bi%n&bi%p&bi%|&bi&S&bi&U&bi&W&bi&Y&bi&]&bi&c&bi&i&bi&k&bi&m&bi&o&bi&q&bi'i&bi't&bi'v&bi'y&bi(R&bi(a&bi(n&bi!W&bi&Z&bi_&bi&`&bi~O!S1pO~O!V!Za!W!Za~P#@_Ol!kO|!lO!U1vO(U!jO!V&}X!W&}X~P?fO!V,uO!W(Ya~O!V'TX!W'TX~P!@xO!V,xO!W(ha~O!W1}O~P'TO^%^O#X2WO'k%^O~O^%^O!a#rO#X2WO'k%^O~O^%^O!a#rO!l2[O#X2WO'k%^O(b'bO~O^%^O'k%^O~P!6UO!V$^Oo$ka~O!S&|i!V&|i~P!6UO!V'vO!S(Xi~O!V'}O!S(fi~O!S(gi!V(gi~P!6UO!V(di!g(di^(di'k(di~P!6UO#X2^O!V(di!g(di^(di'k(di~O!V(ZO!g(ci~O|%vO!X%wO!x]O#b2cO#c2bO't%eO~O|%vO!X%wO#c2bO't%eO~Og2jO!X'QO%a2iO~Og2jO!X'QO%a2iO'}%OO~O#dvaPvaXva^vakva!eva!fva!hva!lva#gva#hva#iva#jva#kva#lva#mva#nva#ova#qva#sva#uva#vva'kva(Rva(bva!gva!Sva'ivaova!Xva%ava!ava~P#L|O#d$laP$laX$la^$lak$laz$la!e$la!f$la!h$la!l$la#g$la#h$la#i$la#j$la#k$la#l$la#m$la#n$la#o$la#q$la#s$la#u$la#v$la'k$la(R$la(b$la!g$la!S$la'i$lao$la!X$la%a$la!a$la~P#MrO#d$naP$naX$na^$nak$naz$na!e$na!f$na!h$na!l$na#g$na#h$na#i$na#j$na#k$na#l$na#m$na#n$na#o$na#q$na#s$na#u$na#v$na'k$na(R$na(b$na!g$na!S$na'i$nao$na!X$na%a$na!a$na~P#NeO#d$|aP$|aX$|a^$|ak$|az$|a!V$|a!e$|a!f$|a!h$|a!l$|a#g$|a#h$|a#i$|a#j$|a#k$|a#l$|a#m$|a#n$|a#o$|a#q$|a#s$|a#u$|a#v$|a'k$|a(R$|a(b$|a!g$|a!S$|a'i$|a#X$|ao$|a!X$|a%a$|a!a$|a~P#)tO^#[q!V#[q'k#[q'i#[q!S#[q!g#[qo#[q!X#[q%a#[q!a#[q~P!6UOd'OX!V'OX~P!'^O!V.YOd([a~O!U2rO!V'PX!g'PX~P%QO!V.]O!g(]a~O!V.]O!g(]a~P!6UO!S2uO~O#y!ja!W!ja~PJ`O#y!ba!V!ba!W!ba~P#@_O#y!na!W!na~P!8oO#y!pa!W!pa~P!;YO!X3XO$UfO$_3YO~O!W3^O~Oo3_O~P#)tO^$hq!V$hq'k$hq'i$hq!S$hq!g$hqo$hq!X$hq%a$hq!a$hq~P!6UO!S3`O~Ol.xO'vTO'yUO~Oy)qO|)rO(j)vOg%Xi(i%Xi!V%Xi#X%Xi~Od%Xi#y%Xi~P$GeOy)qO|)rOg%Zi(i%Zi(j%Zi!V%Zi#X%Zi~Od%Zi#y%Zi~P$HWO(b$WO~P#)tO!U3cO't%eO!V'ZX!g'ZX~O!V/QO!g(oa~O!V/QO!a#rO!g(oa~O!V/QO!a#rO(b'bO!g(oa~Od$ui!V$ui#X$ui#y$ui~P!0RO!U3kO't*SO!S']X!V']X~P!0pO!V/YO!S(pa~O!V/YO!S(pa~P#)tO!a#rO#o3sO~Ok3vO!a#rO(b'bO~Od(Pi!V(Pi~P!0RO#X3yOd(Pi!V(Pi~P!0RO!g3|O~O^$iq!V$iq'k$iq'i$iq!S$iq!g$iqo$iq!X$iq%a$iq!a$iq~P!6UO!V4QO!X(qX~P#)tO!f#tO~P3}O^$sX!X$sX%UYX'k$sX!V$sX~P!.xO%U4SO^hXghXyhX|hX!XhX'khX(ihX(jhX!VhX~O%U4SO~O%b4ZO't+VO'vTO'yUO!V'fX!W'fX~O!V0YO!W(wa~OX4_O~O]4`O~O!S4dO~O^%^O'k%^O~P#)tO!X$yO~P#)tO!V4iO#X4kO!W(tX~O!W4lO~Ol!kO|4mO![!uO!]!rO!^!rO!x9mO!|!mO!}!mO#O!mO#P!mO#Q!mO#T4rO#U!vO'u!iO'vTO'yUO(U!jO(a!pO~O!W4qO~P%!VOg4wO!X0uO%a4vO~Og4wO!X0uO%a4vO'}%OO~O't#jO!V'eX!W'eX~O!V1QO!W(ua~O'vTO'yUO(U5QO~O]5UO~O!g5XO~P%QO^5ZO~O^5ZO~P%QO#o5]O&Q5^O~PMOO_1hO!W5bO&`1gO~P`O!a5dO~O!a5fO!V(Zi!W(Zi!a(Zi!h(Zi'}(Zi~O!V#ai!W#ai~P#@_O#X5gO!V#ai!W#ai~O!V!Zi!W!Zi~P#@_O^%^O#X5pO'k%^O~O^%^O!a#rO#X5pO'k%^O~O!V(dq!g(dq^(dq'k(dq~P!6UO!V(ZO!g(cq~O|%vO!X%wO#c5wO't%eO~O!X'QO%a5zO~Og5}O!X'QO%a5zO~O#d%XiP%XiX%Xi^%Xik%Xiz%Xi!e%Xi!f%Xi!h%Xi!l%Xi#g%Xi#h%Xi#i%Xi#j%Xi#k%Xi#l%Xi#m%Xi#n%Xi#o%Xi#q%Xi#s%Xi#u%Xi#v%Xi'k%Xi(R%Xi(b%Xi!g%Xi!S%Xi'i%Xio%Xi!X%Xi%a%Xi!a%Xi~P$GeO#d%ZiP%ZiX%Zi^%Zik%Ziz%Zi!e%Zi!f%Zi!h%Zi!l%Zi#g%Zi#h%Zi#i%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#q%Zi#s%Zi#u%Zi#v%Zi'k%Zi(R%Zi(b%Zi!g%Zi!S%Zi'i%Zio%Zi!X%Zi%a%Zi!a%Zi~P$HWO#d$uiP$uiX$ui^$uik$uiz$ui!V$ui!e$ui!f$ui!h$ui!l$ui#g$ui#h$ui#i$ui#j$ui#k$ui#l$ui#m$ui#n$ui#o$ui#q$ui#s$ui#u$ui#v$ui'k$ui(R$ui(b$ui!g$ui!S$ui'i$ui#X$uio$ui!X$ui%a$ui!a$ui~P#)tOd'Oa!V'Oa~P!0RO!V'Pa!g'Pa~P!6UO!V.]O!g(]i~O#y#[i!V#[i!W#[i~P#@_OP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO(RVOX#fik#fi!e#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi#y#fi(b#fi(i#fi(j#fi!V#fi!W#fi~O#g#fi~P%0fO#g9uO~P%0fOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO(RVOX#fi!e#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi#y#fi(b#fi(i#fi(j#fi!V#fi!W#fi~Ok#fi~P%2qOk9wO~P%2qOP$YOk9wOy#vOz#wO|#xO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO(RVO#q#fi#s#fi#u#fi#v#fi#y#fi(b#fi(i#fi(j#fi!V#fi!W#fi~OX#fi!e#fi#l#fi#m#fi#n#fi#o#fi~P%4|OX:TO!e9yO#l9yO#m9yO#n:SO#o9yO~P%4|OP$YOX:TOk9wOy#vOz#wO|#xO!e9yO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO#l9yO#m9yO#n:SO#o9yO#q9zO(RVO#s#fi#u#fi#v#fi#y#fi(b#fi(j#fi!V#fi!W#fi~O(i#fi~P%7hO(i#yO~P%7hOP$YOX:TOk9wOy#vOz#wO|#xO!e9yO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO#l9yO#m9yO#n:SO#o9yO#q9zO#s9|O(RVO(i#yO#u#fi#v#fi#y#fi(b#fi!V#fi!W#fi~O(j#fi~P%9sO(j#zO~P%9sOP$YOX:TOk9wOy#vOz#wO|#xO!e9yO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO#l9yO#m9yO#n:SO#o9yO#q9zO#s9|O#u:OO(RVO(i#yO(j#zO~O#v#fi#y#fi(b#fi!V#fi!W#fi~P%<OO^#wy!V#wy'k#wy'i#wy!S#wy!g#wyo#wy!X#wy%a#wy!a#wy~P!6UOg;hOy)qO|)rO(i)tO(j)vO~OP#fiX#fik#fiz#fi!e#fi!f#fi!h#fi!l#fi#g#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi#y#fi(R#fi(b#fi!V#fi!W#fi~P%>vO!f#tOP(QXX(QXg(QXk(QXy(QXz(QX|(QX!e(QX!h(QX!l(QX#g(QX#h(QX#i(QX#j(QX#k(QX#l(QX#m(QX#n(QX#o(QX#q(QX#s(QX#u(QX#v(QX#y(QX(R(QX(b(QX(i(QX(j(QX!V(QX!W(QX~O#y#zi!V#zi!W#zi~P#@_O#y!ni!W!ni~P$ wO!W6ZO~O!V'Ya!W'Ya~P#@_O!a#rO(b'bO!V'Za!g'Za~O!V/QO!g(oi~O!V/QO!a#rO!g(oi~Od$uq!V$uq#X$uq#y$uq~P!0RO!S']a!V']a~P#)tO!a6bO~O!V/YO!S(pi~P#)tO!V/YO!S(pi~O!S6fO~O!a#rO#o6kO~Ok6lO!a#rO(b'bO~O!S6nO~Od$wq!V$wq#X$wq#y$wq~P!0RO^$iy!V$iy'k$iy'i$iy!S$iy!g$iyo$iy!X$iy%a$iy!a$iy~P!6UO!V4QO!X(qa~O^#[y!V#[y'k#[y'i#[y!S#[y!g#[yo#[y!X#[y%a#[y!a#[y~P!6UOX6sO~O!V0YO!W(wi~O]6yO~O!a5fO~O(U(oO!V'bX!W'bX~O!V4iO!W(ta~OikO't7QO~P._O!W7TO~P%!VOl!kO|7UO'vTO'yUO(U!jO(a!pO~O!X0uO~O!X0uO%a7WO~Og7ZO!X0uO%a7WO~OX7`O!V'ea!W'ea~O!V1QO!W(ui~O!g7dO~O!g7eO~O!g7fO~O!g7fO~P%QO^7hO~O!a7kO~O!g7lO~O!V(gi!W(gi~P#@_O^%^O#X7tO'k%^O~O!V(dy!g(dy^(dy'k(dy~P!6UO!V(ZO!g(cy~O!X'QO%a7wO~O#d$uqP$uqX$uq^$uqk$uqz$uq!V$uq!e$uq!f$uq!h$uq!l$uq#g$uq#h$uq#i$uq#j$uq#k$uq#l$uq#m$uq#n$uq#o$uq#q$uq#s$uq#u$uq#v$uq'k$uq(R$uq(b$uq!g$uq!S$uq'i$uq#X$uqo$uq!X$uq%a$uq!a$uq~P#)tO#d$wqP$wqX$wq^$wqk$wqz$wq!V$wq!e$wq!f$wq!h$wq!l$wq#g$wq#h$wq#i$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#q$wq#s$wq#u$wq#v$wq'k$wq(R$wq(b$wq!g$wq!S$wq'i$wq#X$wqo$wq!X$wq%a$wq!a$wq~P#)tO!V'Pi!g'Pi~P!6UO#y#[q!V#[q!W#[q~P#@_Oy/tOz/tO|/uOPvaXvagvakva!eva!fva!hva!lva#gva#hva#iva#jva#kva#lva#mva#nva#ova#qva#sva#uva#vva#yva(Rva(bva(iva(jva!Vva!Wva~Oy)qO|)rOP$laX$lag$lak$laz$la!e$la!f$la!h$la!l$la#g$la#h$la#i$la#j$la#k$la#l$la#m$la#n$la#o$la#q$la#s$la#u$la#v$la#y$la(R$la(b$la(i$la(j$la!V$la!W$la~Oy)qO|)rOP$naX$nag$nak$naz$na!e$na!f$na!h$na!l$na#g$na#h$na#i$na#j$na#k$na#l$na#m$na#n$na#o$na#q$na#s$na#u$na#v$na#y$na(R$na(b$na(i$na(j$na!V$na!W$na~OP$|aX$|ak$|az$|a!e$|a!f$|a!h$|a!l$|a#g$|a#h$|a#i$|a#j$|a#k$|a#l$|a#m$|a#n$|a#o$|a#q$|a#s$|a#u$|a#v$|a#y$|a(R$|a(b$|a!V$|a!W$|a~P%>vO#y$hq!V$hq!W$hq~P#@_O#y$iq!V$iq!W$iq~P#@_O!W8RO~O#y8SO~P!0RO!a#rO!V'Zi!g'Zi~O!a#rO(b'bO!V'Zi!g'Zi~O!V/QO!g(oq~O!S']i!V']i~P#)tO!V/YO!S(pq~O!S8YO~P#)tO!S8YO~Od(Py!V(Py~P!0RO!V'`a!X'`a~P#)tO^%Tq!X%Tq'k%Tq!V%Tq~P#)tOX8_O~O!V0YO!W(wq~O#X8cO!V'ba!W'ba~O!V4iO!W(ti~P#@_OPYXXYXkYXyYXzYX|YX!SYX!VYX!eYX!fYX!hYX!lYX#XYX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX(RYX(bYX(iYX(jYX~O!a%RX#o%RX~P&/vO!X0uO%a8gO~O'vTO'yUO(U8lO~O!V1QO!W(uq~O!g8oO~O!g8oO~P%QO!g8qO~O!g8rO~O#X8tO!V#ay!W#ay~O!V#ay!W#ay~P#@_O!X'QO%a8yO~O#y#wy!V#wy!W#wy~P#@_OP$uiX$uik$uiz$ui!e$ui!f$ui!h$ui!l$ui#g$ui#h$ui#i$ui#j$ui#k$ui#l$ui#m$ui#n$ui#o$ui#q$ui#s$ui#u$ui#v$ui#y$ui(R$ui(b$ui!V$ui!W$ui~P%>vOy)qO|)rO(j)vOP%XiX%Xig%Xik%Xiz%Xi!e%Xi!f%Xi!h%Xi!l%Xi#g%Xi#h%Xi#i%Xi#j%Xi#k%Xi#l%Xi#m%Xi#n%Xi#o%Xi#q%Xi#s%Xi#u%Xi#v%Xi#y%Xi(R%Xi(b%Xi(i%Xi!V%Xi!W%Xi~Oy)qO|)rOP%ZiX%Zig%Zik%Ziz%Zi!e%Zi!f%Zi!h%Zi!l%Zi#g%Zi#h%Zi#i%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#q%Zi#s%Zi#u%Zi#v%Zi#y%Zi(R%Zi(b%Zi(i%Zi(j%Zi!V%Zi!W%Zi~O#y$iy!V$iy!W$iy~P#@_O#y#[y!V#[y!W#[y~P#@_O!a#rO!V'Zq!g'Zq~O!V/QO!g(oy~O!S']q!V']q~P#)tO!S9QO~P#)tO!V0YO!W(wy~O!V4iO!W(tq~O!X0uO%a9XO~O!g9[O~O!X'QO%a9aO~OP$uqX$uqk$uqz$uq!e$uq!f$uq!h$uq!l$uq#g$uq#h$uq#i$uq#j$uq#k$uq#l$uq#m$uq#n$uq#o$uq#q$uq#s$uq#u$uq#v$uq#y$uq(R$uq(b$uq!V$uq!W$uq~P%>vOP$wqX$wqk$wqz$wq!e$wq!f$wq!h$wq!l$wq#g$wq#h$wq#i$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#q$wq#s$wq#u$wq#v$wq#y$wq(R$wq(b$wq!V$wq!W$wq~P%>vOd%]!Z!V%]!Z#X%]!Z#y%]!Z~P!0RO!V'bq!W'bq~P#@_O!V#a!Z!W#a!Z~P#@_O#d%]!ZP%]!ZX%]!Z^%]!Zk%]!Zz%]!Z!V%]!Z!e%]!Z!f%]!Z!h%]!Z!l%]!Z#g%]!Z#h%]!Z#i%]!Z#j%]!Z#k%]!Z#l%]!Z#m%]!Z#n%]!Z#o%]!Z#q%]!Z#s%]!Z#u%]!Z#v%]!Z'k%]!Z(R%]!Z(b%]!Z!g%]!Z!S%]!Z'i%]!Z#X%]!Zo%]!Z!X%]!Z%a%]!Z!a%]!Z~P#)tOP%]!ZX%]!Zk%]!Zz%]!Z!e%]!Z!f%]!Z!h%]!Z!l%]!Z#g%]!Z#h%]!Z#i%]!Z#j%]!Z#k%]!Z#l%]!Z#m%]!Z#n%]!Z#o%]!Z#q%]!Z#s%]!Z#u%]!Z#v%]!Z#y%]!Z(R%]!Z(b%]!Z!V%]!Z!W%]!Z~P%>vOo(VX~P1gO'u!iO~P!)jO!ScX!VcX#XcX~P&/vOPYXXYXkYXyYXzYX|YX!VYX!VcX!eYX!fYX!hYX!lYX#XYX#XcX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX(RYX(bYX(iYX(jYX~O!acX!gYX!gcX(bcX~P&E^OP9lOQ9lOa;]Ob!fOikOk9lOlkOmkOskOu9lOw9lO|WO!QkO!RkO!XXO!c9oO!hZO!k9lO!l9lO!m9lO!o9pO!q9qO!t!eO$Q!hO$UfO't)PO'vTO'yUO(RVO(a[O(n;ZO~O!V:QO!W$ka~Oi%POk$qOl$pOm$pOs%QOu%ROw:WO|$xO!X$yO!c;bO!h$uO#c:^O$Q%VO$m:YO$o:[O$r%WO't(gO'vTO'yUO'}%OO(R$rO~O#p)WO~P&JSO!WYX!WcX~P&E^O#d9tO~O!a#rO#d9tO~O#X:UO~O#o9yO~O#X:`O!V(gX!W(gX~O#X:UO!V(eX!W(eX~O#d:aO~Od:cO~P!0RO#d:hO~O#d:iO~O!a#rO#d:jO~O!a#rO#d:aO~O#y:kO~P#@_O#d:lO~O#d:mO~O#d:nO~O#d:oO~O#d:pO~O#d:qO~O#y:rO~P!0RO#y:sO~P!0RO$U~!f!|!}#P#Q#T#b#c#n(n$m$o$r%U%`%a%b%h%j%m%n%p%r~'oR$U(n#h!R'm'u#il#g#jky'n(U'n't$W$Y$W~\",goto:\"$%Z({PPPP(|P)PP)aP*p.rPPPP5SPP5iP;d>iP>|P>|PPP>|P@lP>|P>|P>|P@pPP@uPA`PFUPPPFYPPPPFYIXPPPI_JYPFYPLgPPPPNuFYPPPFYPFYP!#TFYP!&g!'i!'rP!(e!(i!(ePPPPP!+r!'iPP!,`!-YP!/|FYFY!0R!3Z!7n!7n!;cPPP!;jFYPPPPPPPPPPP!>uP!@WPPFY!AePFYPFYFYFYFYPFY!BwPP!E}P!IPP!IT!I_!Ic!IcP!EzP!Ig!IgP!LiP!LmFYFY!Ls# t>|P>|P>|>|P##O>|>|#$x>|#'V>|#(y>|>|#)g#+c#+c#+g#+o#+c#+wP#+cP>|#,a>|#-i>|>|5SPPP#.tPP#/^#/^P#/^P#/s#/^PP#/yP#/pP#/p#0]#/p#0w#0}5P)P#1Q)PP#1X#1X#1XP)PP)PP)PP)PPP)PP#1_#1bP#1b)PP#1fP#1iP)PP)PP)PP)PP)PP)P)PPP#1o#1u#2P#2V#2]#2c#2i#2w#2}#3T#3_#3e#3o#4O#4U#4u#5X#5_#5e#5s#6Y#7j#7x#8O#8U#8[#8b#8l#8r#8x#9S#9f#9lPPPPPPPPPP#9rPPPPPPP#:f#=mP#>|#?T#?]PPPP#Cg#F]#Lr#Lu#Lx#Mq#Mt#Mw#NO#NWPP#N^#Nb$ Z$!Z$!_$!sPP$!w$!}$#RP$#U$#Y$#]$$R$$i$$n$$q$$t$$z$$}$%R$%VR!xRmpOXr!X#`%]&d&f&g&i,],b1b1eY!rQ'Q,}0u4pQ%ctQ%kwQ%rzQ&[!TS&x!c,uQ'W!fS'^!o!uS*Y$y*_Q+T%lQ+b%tQ+|&UQ,{'PQ-V'XQ-_'_Q/k*aQ1P+}R:_9p$zdOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s+g,X,],b-R-Z-i-o.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2r4m4w5Z5]5^5p7U7Z7h7tS#m]9m!r)R$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Q*j%SQ+Y%nQ,O&XQ,V&aQ.S:VQ0O*{Q0S*}Q0_+ZQ1X,TQ2f.PQ4Y0YQ5O1QQ5|2jQ6S:WQ6u4ZR7z5}&xkOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^t!kQ!o!r!u!v&x'P'Q'^'_'`,u,{,}-_0u4p4r$Y$pi#r#t$`$a$u$x%T%U%Y)l)u)w)x*P*V*e*f*z*}+l+o.O.Y/X/Y/[/w0l0o0w2i3a3k3s3y4Q4S4v5z6b6k7W7w8S8g8y9X9a:S:T:X:Y:Z:[:]:^:d:e:f:g:h:i:l:m:n:o:r:s;Z;c;d;g;hQ%uzQ&v!cS&|%w,xQ+Y%nS.x)r.zQ/v*nQ0_+ZQ0d+aQ1W,SQ1X,TQ4Y0YQ4c0fQ5R1SQ5S1VQ6u4ZQ6x4`Q7c5UQ8b6yR8m7`pmOXr!T!X#`%]&Z&d&f&g&i,],b1b1eR,Q&]&r^OPXYrstux!X!^!g!l#O#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u'S'd'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;];^[#XWZ#S#V&y'tQ%fvQ%jwS%oz%t!U%x|}#d#e#h%Z%v'}(X(Y(Z+e+f+h,Z,o-m-s-t-u-w1j2b2c5f5wQ&Q!RQ'T!eQ'V!fQ(b#oS)|$u*QS+S%k%lQ+W%nQ+w&SQ+{&US-U'W'XQ.R(cQ/U)}Q0W+TQ0^+ZQ0`+[Q0c+`Q0z+xS1O+|+}Q2S-VQ3b/QQ4X0YQ4]0]Q4b0eQ4}1PQ6_3cQ6t4ZQ6w4_Q8^6sR9S8_v$wi#t%T%U%Y)u)w*P*e*f.Y/X/w3a3y8S;Z;c;d!S%hw!f!q%j%k%l&w'V'W'X']'g*X+S+T,r-U-V-^/c0W1{2S2Z3uQ*|%fQ+m%}Q+p&OQ+z&UQ.Q(bQ0y+wU0}+{+|+}Q2k.RQ4x0zS4|1O1PQ7_4}!z;_#r$`$a$u$x)l)x*V*z*}+l+o.O/Y/[0l0o0w2i3k3s4Q4S4v5z6b6k7W7w8g8y9X9a:X:Z:]:d:f:h:l:n:r;g;hg;`:S:T:Y:[:^:e:g:i:m:o:sW$|i%O*g;ZS%}!O&ZQ&O!PQ&P!QR+k%{$Z${i#r#t$`$a$u$x%T%U%Y)l)u)w)x*P*V*e*f*z*}+l+o.O.Y/X/Y/[/w0l0o0w2i3a3k3s3y4Q4S4v5z6b6k7W7w8S8g8y9X9a:S:T:X:Y:Z:[:]:^:d:e:f:g:h:i:l:m:n:o:r:s;Z;c;d;g;hT)m$r)nV*k%S:V:WU&|!c%w,xS(p#v#wQ+_%qS-z(^(_Q0p+qQ3z/tR6}4i&xkOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^$i$]c#U#a%a%b%d's'y(e(l(t(u(v(w(x(y(z({(|(})O)Q)T)X)c*x+^,s-b-g-l-n.X._.c.e.f.g.v/x1q1t2U2]2q2v2w2x2y2z2{2|2}3O3P3Q3R3S3V3W3]4O4V5i5o5t6Q6R6W6X7P7n7r7{8P8Q8v9U9]9n;QT#PV#Q&ykOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Q&z!cR1w,uv!kQ!c!o!r!u!v&x'P'Q'^'_'`,u,{,}-_0u4p4rS*X$y*_S/c*Y*aQ/l*bQ0r+sQ3u/kR3x/nlpOXr!X#`%]&d&f&g&i,],b1b1eQ&k![Q'h!tS(d#q9tQ+Q%iQ+u&QQ+v&RQ-S'UQ-a'aS.W(i:aS/y*s:jQ0U+RQ0t+tQ1i,dQ1k,eQ1s,pQ2Q-TQ2T-XS4P/z:pQ4T0VS4W0X:qQ5h1uQ5l2RQ5q2YQ6r4UQ7o5jQ7p5mQ7s5rR8s7l$d$[c#U#a%b%d's'y(e(l(t(u(v(w(x(y(z({(|(})O)Q)T)X)c*x+^,s-b-g-l-n.X._.c.f.g.v/x1q1t2U2]2q2v2w2x2y2z2{2|2}3O3P3Q3R3S3V3W3]4O4V5i5o5t6Q6R6W6X7P7n7r7{8P8Q8v9U9]9n;QS(a#l'ZU*d$z(h3US*w%a.eQ2g0OQ5y2fQ7y5|R8z7z$d$Zc#U#a%b%d's'y(e(l(t(u(v(w(x(y(z({(|(})O)Q)T)X)c*x+^,s-b-g-l-n.X._.c.f.g.v/x1q1t2U2]2q2v2w2x2y2z2{2|2}3O3P3Q3R3S3V3W3]4O4V5i5o5t6Q6R6W6X7P7n7r7{8P8Q8v9U9]9n;QS(`#l'ZS(r#w$[S*v%a.eS-{(_(aQ.h)SQ/{*wR2d-|&xkOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^S#m]9mQ&f!VQ&g!WQ&i!YQ&j!ZR1a,`Q'R!eQ*y%fQ-Q'TS-}(b*|Q2O-PW2h.Q.R/}0PQ5k2PU5x2e2g2kS7v5y5{S8x7x7yS9_8w8zQ9g9`R9j9hU!sQ'Q,}T4n0u4p!O_OXZ`r!T!X#`#d%Z%]&Z&]&d&f&g&i(Z,],b-t1b1e]!mQ!o'Q,}0u4pT#m]9m%UyOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&a&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7tS(p#v#wS-z(^(_!s:w$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Y!qQ'Q,}0u4pQ']!oS'g!r!uS'i!v4rS-^'^'_Q-`'`R2Z-_Q'f!qS(V#c1_S-]']'iQ/T)|Q/a*XQ2[-`Q3g/US3p/b/lQ6^3bS6i3v3xQ8U6_R8]6lQ#sbQ'e!qS(U#c1_S(W#i*rQ*t%[Q+O%gQ+U%mU-[']'f'iQ-p(VQ/S)|Q/`*XQ/f*[Q0T+PQ0{+yS2X-]-`Q2a-xS3f/T/US3o/a/lQ3r/eQ3t/gQ4z0|Q5s2[Q6]3bQ6a3gS6e3p3xQ6j3wQ7]4{S8T6^6_Q8X6fQ8Z6iQ8j7^Q9O8UQ9P8YQ9R8]Q9Z8kQ9c9QQ:z:uQ;V;OR;W;PV!sQ'Q,}%UaOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&a&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7tS#sx!g!r:t$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^R:z;]%UbOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&a&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7tQ%[j!S%gw!f!q%j%k%l&w'V'W'X']'g*X+S+T,r-U-V-^/c0W1{2S2Z3uS%mx!gQ+P%hQ+y&UW0|+z+{+|+}U4{0}1O1PS7^4|4}Q8k7_!r:u$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Q;O;[R;P;]$xeOPXYrstu!X!^!l#O#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&d&f&g&i&m&u'S'd'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7tY#^WZ#S#V't!U%x|}#d#e#h%Z%v'}(X(Y(Z+e+f+h,Z,o-m-s-t-u-w1j2b2c5f5wQ,W&a!p:v$X$j)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^R:y&yS&}!c%wR1y,x$zdOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s+g,X,],b-R-Z-i-o.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2r4m4w5Z5]5^5p7U7Z7h7t!r)R$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Q,V&aQ0O*{Q2f.PQ5|2jR7z5}!f$Rc#U%a's'y(e(l({(|(})O)T)X+^-b-g-l-n.X._.v/x2U2]2q3S4O4V5o5t6Q7r8v9n!T9{)Q)c,s.e1q1t2v3O3P3Q3R3V3]5i6R6W6X7P7n7{8P8Q9U9];Q!b$Tc#U%a's'y(e(l(})O)T)X+^-b-g-l-n.X._.v/x2U2]2q3S4O4V5o5t6Q7r8v9n!P9})Q)c,s.e1q1t2v3Q3R3V3]5i6R6W6X7P7n7{8P8Q9U9];Q!^$Xc#U%a's'y(e(l)T)X+^-b-g-l-n.X._.v/x2U2]2q3S4O4V5o5t6Q7r8v9nQ3a/Oz;^)Q)c,s.e1q1t2v3V3]5i6R6W6X7P7n7{8P8Q9U9];QQ;c;eR;d;f&xkOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^S$kh$lR3Y.k'PgOPWXYZhrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j$l%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.k.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^T$gf$mQ$efS)[$h)`R)h$mT$ff$mT)^$h)`'PhOPWXYZhrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j$l%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.k.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^T$kh$lQ$nhR)g$l%UjOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&a&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7t!s;[$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^#alOPXZr!X!^!l#O#`#k#x$j%]&]&`&a&d&f&g&i&m&u'S(q)e*{+g,X,],b-R.P.l/u0x1Y1Z1[1^1b1e1g2j3X4m4w5Z5]5^5}7U7Z7hv$zi#t%T%U%Y)u)w*P*e*f.Y/X/w3a3y8S;Z;c;d!z(h#r$`$a$u$x)l)x*V*z*}+l+o.O/Y/[0l0o0w2i3k3s4Q4S4v5z6b6k7W7w8g8y9X9a:X:Z:]:d:f:h:l:n:r;g;hQ*o%WQ.w)qg3U:S:T:Y:[:^:e:g:i:m:o:sv$vi#t%T%U%Y)u)w*P*e*f.Y/X/w3a3y8S;Z;c;dQ*R$wS*[$y*_Q*p%XQ/g*]!z:|#r$`$a$u$x)l)x*V*z*}+l+o.O/Y/[0l0o0w2i3k3s4Q4S4v5z6b6k7W7w8g8y9X9a:X:Z:]:d:f:h:l:n:r;g;hf:}:S:T:Y:[:^:e:g:i:m:o:sQ;R;_Q;S;`Q;T;aR;U;bv$zi#t%T%U%Y)u)w*P*e*f.Y/X/w3a3y8S;Z;c;d!z(h#r$`$a$u$x)l)x*V*z*}+l+o.O/Y/[0l0o0w2i3k3s4Q4S4v5z6b6k7W7w8g8y9X9a:X:Z:]:d:f:h:l:n:r;g;hg3U:S:T:Y:[:^:e:g:i:m:o:slnOXr!X#`%]&d&f&g&i,],b1b1eQ*U$xQ,k&pQ,l&rR3j/Y$Y${i#r#t$`$a$u$x%T%U%Y)l)u)w)x*P*V*e*f*z*}+l+o.O.Y/X/Y/[/w0l0o0w2i3a3k3s3y4Q4S4v5z6b6k7W7w8S8g8y9X9a:S:T:X:Y:Z:[:]:^:d:e:f:g:h:i:l:m:n:o:r:s;Z;c;d;g;hQ+n&OQ0n+pQ4g0mR6|4hT*^$y*_S*^$y*_T4o0u4pS/e*Z4mT3w/m7UQ+O%gQ/f*[Q0T+PQ0{+yQ4z0|Q7]4{Q8j7^R9Z8kn)u$s(j*q/W/o/p2o3h3}6[6m8}:{;X;Y!W:d(f)V){*T.V.s/O/]/|0k0m2n3i3m4f4h6O6P6c6g6o6q8W8[9b;e;f]:e3T6V7|8{8|9kp)w$s(j*q.|/W/o/p2o3h3}6[6m8}:{;X;Y!Y:f(f)V){*T.V.s/O/]/|0k0m2l2n3i3m4f4h6O6P6c6g6o6q8W8[9b;e;f_:g3T6V7|7}8{8|9kpmOXr!T!X#`%]&Z&d&f&g&i,],b1b1eQ&W!SR,X&apmOXr!T!X#`%]&Z&d&f&g&i,],b1b1eR&W!SQ+r&PR0j+kqmOXr!T!X#`%]&Z&d&f&g&i,],b1b1eQ0v+wS4u0y0zU7V4s4t4xS8f7X7YS9V8e8hQ9d9WR9i9eQ&_!TR,R&ZR5R1SS%oz%tR0`+[Q&d!UR,]&eR,c&jT1c,b1eR,g&kQ,f&kR1l,gQ'k!wR-c'kQrOQ#`XT%`r#`Q!zTR'm!zQ!}UR'o!}Q)n$rR.t)nQ#QVR'q#QQ#TWU'w#T'x-jQ'x#UR-j'yQ,v&zR1x,vQ.Z(jR2p.ZQ.^(lS2s.^2tR2t._Q,}'QR1|,}Y!oQ'Q,}0u4pR'[!oS#ZW%vU(O#Z(P-kQ(P#[R-k'zQ,y&}R1z,yr`OXr!T!X#`%]&Z&]&d&f&g&i,],b1b1eS#dZ%ZU#n`#d-tR-t(ZQ([#fQ-q(WW-y([-q2_5uQ2_-rR5u2`Q)`$hR.m)`Q$lhR)f$lQ$_cU)U$_-f:RQ-f9nR:R)cQ/R)|W3d/R3e6`8VU3e/S/T/US6`3f3gR8V6a#m)s$s(f(j)V){*T*l*m*q.T.U.V.s.|.}/O/W/]/o/p/|0k0m2l2m2n2o3T3h3i3m3}4f4h6O6P6T6U6V6[6c6g6m6o6q7|7}8O8W8[8{8|8}9b9k:{;X;Y;e;fQ/Z*TU3l/Z3n6dQ3n/]R6d3mQ*_$yR/i*_Q*h$}R/r*hQ4R/|R6p4RQ+i%yR0i+iQ4j0pS7O4j8dR8d7PQ+t&QR0s+tQ4p0uR7S4pQ1R,OS5P1R7aR7a5RQ0Z+WW4[0Z4^6v8`Q4^0^Q6v4]R8`6wQ+]%oR0a+]Q1e,bR5a1eWqOXr#`Q&h!XQ*u%]Q,[&dQ,^&fQ,_&gQ,a&iQ1`,]S1c,b1eR5`1bQ%_oQ&l!]Q&o!_Q&q!`Q&s!aQ'c!qQ+Q%iQ+d%uQ+j%zQ,Q&_Q,i&nW-Y']'e'f'iQ-a'aQ/h*^Q0U+RS1U,R,UQ1m,hQ1n,kQ1o,lQ2T-XW2V-[-]-`-bQ4T0VQ4a0dQ4e0kQ4y0{Q5T1WQ5_1aU5n2U2X2[Q5q2YQ6r4UQ6z4cQ6{4fQ7R4oQ7[4zQ7b5SS7q5o5sQ7s5rQ8a6xQ8i7]Q8n7cQ8u7rQ9T8bQ9Y8jQ9^8vR9f9ZQ%iwQ'U!fQ'a!qU+R%j%k%lQ,p&wU-T'V'W'XS-X']'gQ/_*XS0V+S+TQ1u,rS2R-U-VQ2Y-^Q3q/cQ4U0WQ5j1{Q5m2SQ5r2ZR6h3uS$ti;ZR*i%OU$}i%O;ZR/q*gQ$siS(f#r*}Q(j#tS)V$`$aQ){$uQ*T$xQ*l%TQ*m%UQ*q%YQ.T:XQ.U:ZQ.V:]Q.s)lQ.|)uQ.})wQ/O)xQ/W*PQ/]*VQ/o*eQ/p*fh/|*z.O0w2i4v5z7W7w8g8y9X9aQ0k+lQ0m+oQ2l:dQ2m:fQ2n:hQ2o.YS3T:S:TQ3h/XQ3i/YQ3m/[Q3}/wQ4f0lQ4h0oQ6O:lQ6P:nQ6T:YQ6U:[Q6V:^Q6[3aQ6c3kQ6g3sQ6m3yQ6o4QQ6q4SQ7|:iQ7}:eQ8O:gQ8W6bQ8[6kQ8{:mQ8|:oQ8}8SQ9b:rQ9k:sQ:{;ZQ;X;cQ;Y;dQ;e;gR;f;hloOXr!X#`%]&d&f&g&i,],b1b1eQ!dPS#bZ#kQ&n!^U'Y!l4m7UQ'p#OQ(s#xQ)d$jS,U&]&`Q,Y&aQ,h&mQ,m&uQ-P'SQ.a(qQ.q)eQ0P*{Q0g+gQ1],XQ2P-RQ2g.PQ3[.lQ3{/uQ4t0xQ5V1YQ5W1ZQ5Y1[Q5[1^Q5c1gQ5y2jQ6Y3XQ7Y4wQ7g5ZQ7i5]Q7j5^Q7y5}Q8h7ZR8p7h#UcOPXZr!X!^!l#`#k#x%]&]&`&a&d&f&g&i&m&u'S(q*{+g,X,],b-R.P/u0x1Y1Z1[1^1b1e1g2j4m4w5Z5]5^5}7U7Z7hQ#UWQ#aYQ%asQ%btQ%duS's#S'vQ'y#VQ(e#qQ(l#uQ(t#{Q(u#|Q(v#}Q(w$OQ(x$PQ(y$QQ(z$RQ({$SQ(|$TQ(}$UQ)O$VQ)Q$XQ)T$^Q)X$bW)c$j)e.l3XQ*x%cQ+^%pS,s&y1vQ-b'dS-g't-iQ-l'|Q-n(TQ.X(iQ._(mQ.c9lQ.e9oQ.f9pQ.g9qQ.v)pQ/x*sQ1q,nQ1t,qQ2U-ZQ2]-oQ2q.]Q2v9tQ2w9uQ2x9vQ2y9wQ2z9xQ2{9yQ2|9zQ2}9{Q3O9|Q3P9}Q3Q:OQ3R:PQ3S.dQ3V:UQ3W:_Q3]:QQ4O/zQ4V0XQ5i:`Q5o2WQ5t2^Q6Q2rQ6R:aQ6W:cQ6X:jQ7P4kQ7n5gQ7r5pQ7{:kQ8P:pQ8Q:qQ8v7tQ9U8cQ9]8tQ9n#OR;Q;^R#WWR&{!cY!qQ'Q,}0u4pS&w!c,uQ']!oS'g!r!uS'i!v4rS,r&x'PS-^'^'_Q-`'`Q1{,{R2Z-_R(k#tR(n#uQ!dQT,|'Q,}]!nQ!o'Q,}0u4pQ#l]R'Z9mT#gZ%ZS#fZ%ZU%y|},ZU(W#d#e#hS-r(X(YQ-v(ZQ0h+hQ2`-sU2a-t-u-wS5v2b2cR7u5w`#YW#S#V%v't'}+e-mt#cZ|}#d#e#h%Z(X(Y(Z+h-s-t-u-w2b2c5wQ1_,ZQ1r,oQ5e1jQ7m5fT:x&y+fT#]W%vS#[W%vS'u#S'}S'z#V+eS,t&y+fT-h't-mT'O!c%wQ$hfR)j$mT)_$h)`R3Z.kT*O$u*QR*W$xQ/}*zQ2e.OQ4s0wQ5{2iQ7X4vQ7x5zQ8e7WQ8w7wQ9W8gQ9`8yQ9e9XR9h9alpOXr!X#`%]&d&f&g&i,],b1b1eQ&^!TR,Q&ZV%z|},ZR0q+qR,P&XQ%szR+c%tR+X%nT&b!U&eT&c!U&eT1d,b1e\",nodeNames:\"⚠ ArithOp ArithOp LineComment BlockComment Script ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem\",maxTerm:364,context:trackNewline,nodeProps:[[\"group\",-26,6,14,16,62,199,203,206,207,209,212,215,225,227,233,235,237,239,242,248,254,256,258,260,262,264,265,\"Statement\",-32,10,11,25,28,29,35,45,48,49,51,56,64,72,76,78,80,81,103,104,113,114,131,134,136,137,138,139,141,142,162,163,165,\"Expression\",-23,24,26,30,34,36,38,166,168,170,171,173,174,175,177,178,179,181,182,183,193,195,197,198,\"Type\",-3,84,96,102,\"ClassItem\"],[\"openedBy\",31,\"InterpolationStart\",50,\"[\",54,\"{\",69,\"(\",143,\"JSXStartTag\",155,\"JSXStartTag JSXStartCloseTag\"],[\"closedBy\",33,\"InterpolationEnd\",44,\"]\",55,\"}\",70,\")\",144,\"JSXSelfCloseEndTag JSXEndTag\",160,\"JSXEndTag\"]],propSources:[jsHighlight],skippedNodes:[0,3,4,268],repeatNodeCount:33,tokenData:\"$>y(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tu>PuvBavwDxwxGgxyMvyz! Qz{!![{|!%O|}!&]}!O!%O!O!P!'g!P!Q!1w!Q!R#0t!R![#3T![!]#@T!]!^#Aa!^!_#Bk!_!`#GS!`!a#In!a!b#N{!b!c$$z!c!}>P!}#O$&U#O#P$'`#P#Q$,w#Q#R$.R#R#S>P#S#T$/`#T#o$0j#o#p$4z#p#q$5p#q#r$7Q#r#s$8^#s$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$I|>P$I|$I}$<s$I}$JO$<s$JO$JT>P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(n%d_$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$d&j'z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU'z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$d&j'wpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'wpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$d&j'wp'z!b'm(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST'x#S$d&j'n(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$d&j'wp'z!b'n(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$d&j!l$Ip'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#q$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#q$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'v$(n$d&j'z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$d&j'z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$d&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$_#t$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$_#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$_#t$d&j'z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ'z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$_#t'z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hg$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}st%Ztu<Puw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}<P!}#O%Z#O#P&c#P#R%Z#R#S<P#S#T%Z#T#o<P#o#p*g#p$g%Z$g;'S<P;'S;=`=y<%lO<P#%|<[i$d&j(a!L^'wp'z!bOY%ZYZ&cZr%Zrs&}st%Ztu<Puw%Zwx(rx!Q%Z!Q![<P![!^%Z!^!_*g!_!c%Z!c!}<P!}#O%Z#O#P&c#P#R%Z#R#S<P#S#T%Z#T#o<P#o#p*g#p$g%Z$g;'S<P;'S;=`=y<%lO<P#%|=|P;=`<%l<P(CS>`k$d&j'wp'z!b(U!LY't&;d$W#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P+d@`k$d&j'wp'z!b$W#tOY%ZYZ&cZr%Zrs&}st%Ztu@Tuw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![@T![!^%Z!^!_*g!_!c%Z!c!}@T!}#O%Z#O#P&c#P#R%Z#R#S@T#S#T%Z#T#o@T#o#p*g#p$g%Z$g;'S@T;'S;=`BT<%lO@T+dBWP;=`<%l@T(CSB^P;=`<%l>P%#SBl`$d&j'wp'z!b#i$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SCy_$d&j#{$Id'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%DfETa(j%<v$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sv%ZvwFYwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SFe`$d&j#u$Id'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2bGp_'y$)`$d&j'wpOYHoYZIuZrHorsIuswHowxKVx!^Ho!^!_LX!_#OHo#O#PIu#P#oHo#o#pLX#p;'SHo;'S;=`Mp<%lOHo*QHv_$d&j'wpOYHoYZIuZrHorsIuswHowxKVx!^Ho!^!_LX!_#OHo#O#PIu#P#oHo#o#pLX#p;'SHo;'S;=`Mp<%lOHo)`IzX$d&jOwIuwx6cx!^Iu!^!_Jg!_#oIu#o#pJg#p;'SIu;'S;=`KP<%lOIu#tJjTOwJgwx7]x;'SJg;'S;=`Jy<%lOJg#tJ|P;=`<%lJg)`KSP;=`<%lIu*QK`]$_#t$d&j'wpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r$fL^Z'wpOYLXYZJgZrLXrsJgswLXwxMPx#OLX#O#PJg#P;'SLX;'S;=`Mj<%lOLX$fMWU$_#t'wpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r$fMmP;=`<%lLX*QMsP;=`<%lHo(*QNR_!h(!b$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'l! ]_!gM|$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h!!ib$d&j'wp'z!b'u#)d#j$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!#q{!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S!#|`$d&j'wp'z!b#g$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&-O!%Z`$d&j'wp'z!bk&%`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&C[!&h_!V&;l$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!'rc$d&j'wp'z!by'<nOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!(}!P!Q%Z!Q![!+g![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!)Wa$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!*]!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!*h_!UMt$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!+rg$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!+g![!^%Z!^!_*g!_!g%Z!g!h!-Z!h#O%Z#O#P&c#P#R%Z#R#S!+g#S#X%Z#X#Y!-Z#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!-dg$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!.{|}%Z}!O!.{!O!Q%Z!Q![!0a![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!0a#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!/Uc$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!0a![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!0a#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!0lc$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!0a![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!0a#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!2Sf$d&j'wp'z!b#h$IdOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}xz!3hz{#$s{!P!3h!P!Q#&Y!Q!^!3h!^!_!Mh!_!`#-x!`!a#/_!a!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h(r!3sb$d&j'wp'z!b!RSOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}x!P!3h!P!Q!Kh!Q!^!3h!^!_!Mh!_!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h(Q!5U`$d&j'z!b!RSOY!4{YZ&cZw!4{wx!6Wx!P!4{!P!Q!=o!Q!^!4{!^!_!?g!_!}!4{!}#O!Bn#O#P!<w#P#o!4{#o#p!?g#p;'S!4{;'S;=`!Cw<%lO!4{&n!6_^$d&j!RSOY!6WYZ&cZ!P!6W!P!Q!7Z!Q!^!6W!^!_!8g!_!}!6W!}#O!;U#O#P!<w#P#o!6W#o#p!8g#p;'S!6W;'S;=`!=i<%lO!6W&n!7ba$d&j!RSO!^&c!_#Z&c#Z#[!7Z#[#]&c#]#^!7Z#^#a&c#a#b!7Z#b#g&c#g#h!7Z#h#i&c#i#j!7Z#j#m&c#m#n!7Z#n#o&c#p;'S&c;'S;=`&w<%lO&cS!8lX!RSOY!8gZ!P!8g!P!Q!9X!Q!}!8g!}#O!9p#O#P!:o#P;'S!8g;'S;=`!;O<%lO!8gS!9^U!RS#Z#[!9X#]#^!9X#a#b!9X#g#h!9X#i#j!9X#m#n!9XS!9sVOY!9pZ#O!9p#O#P!:Y#P#Q!8g#Q;'S!9p;'S;=`!:i<%lO!9pS!:]SOY!9pZ;'S!9p;'S;=`!:i<%lO!9pS!:lP;=`<%l!9pS!:rSOY!8gZ;'S!8g;'S;=`!;O<%lO!8gS!;RP;=`<%l!8g&n!;Z[$d&jOY!;UYZ&cZ!^!;U!^!_!9p!_#O!;U#O#P!<P#P#Q!6W#Q#o!;U#o#p!9p#p;'S!;U;'S;=`!<q<%lO!;U&n!<UX$d&jOY!;UYZ&cZ!^!;U!^!_!9p!_#o!;U#o#p!9p#p;'S!;U;'S;=`!<q<%lO!;U&n!<tP;=`<%l!;U&n!<|X$d&jOY!6WYZ&cZ!^!6W!^!_!8g!_#o!6W#o#p!8g#p;'S!6W;'S;=`!=i<%lO!6W&n!=lP;=`<%l!6W(Q!=xi$d&j'z!b!RSOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!=o#[#]&}#]#^!=o#^#a&}#a#b!=o#b#g&}#g#h!=o#h#i&}#i#j!=o#j#m&}#m#n!=o#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!?nZ'z!b!RSOY!?gZw!?gwx!8gx!P!?g!P!Q!@a!Q!}!?g!}#O!Ap#O#P!:o#P;'S!?g;'S;=`!Bh<%lO!?g!f!@hb'z!b!RSOY'}Zw'}x#O'}#P#Z'}#Z#[!@a#[#]'}#]#^!@a#^#a'}#a#b!@a#b#g'}#g#h!@a#h#i'}#i#j!@a#j#m'}#m#n!@a#n;'S'};'S;=`(f<%lO'}!f!AuX'z!bOY!ApZw!Apwx!9px#O!Ap#O#P!:Y#P#Q!?g#Q;'S!Ap;'S;=`!Bb<%lO!Ap!f!BeP;=`<%l!Ap!f!BkP;=`<%l!?g(Q!Bu^$d&j'z!bOY!BnYZ&cZw!Bnwx!;Ux!^!Bn!^!_!Ap!_#O!Bn#O#P!<P#P#Q!4{#Q#o!Bn#o#p!Ap#p;'S!Bn;'S;=`!Cq<%lO!Bn(Q!CtP;=`<%l!Bn(Q!CzP;=`<%l!4{'`!DW`$d&j'wp!RSOY!C}YZ&cZr!C}rs!6Ws!P!C}!P!Q!EY!Q!^!C}!^!_!GQ!_!}!C}!}#O!JX#O#P!<w#P#o!C}#o#p!GQ#p;'S!C};'S;=`!Kb<%lO!C}'`!Eci$d&j'wp!RSOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#Z(r#Z#[!EY#[#](r#]#^!EY#^#a(r#a#b!EY#b#g(r#g#h!EY#h#i(r#i#j!EY#j#m(r#m#n!EY#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rt!GXZ'wp!RSOY!GQZr!GQrs!8gs!P!GQ!P!Q!Gz!Q!}!GQ!}#O!IZ#O#P!:o#P;'S!GQ;'S;=`!JR<%lO!GQt!HRb'wp!RSOY)rZr)rs#O)r#P#Z)r#Z#[!Gz#[#])r#]#^!Gz#^#a)r#a#b!Gz#b#g)r#g#h!Gz#h#i)r#i#j!Gz#j#m)r#m#n!Gz#n;'S)r;'S;=`*Z<%lO)rt!I`X'wpOY!IZZr!IZrs!9ps#O!IZ#O#P!:Y#P#Q!GQ#Q;'S!IZ;'S;=`!I{<%lO!IZt!JOP;=`<%l!IZt!JUP;=`<%l!GQ'`!J`^$d&j'wpOY!JXYZ&cZr!JXrs!;Us!^!JX!^!_!IZ!_#O!JX#O#P!<P#P#Q!C}#Q#o!JX#o#p!IZ#p;'S!JX;'S;=`!K[<%lO!JX'`!K_P;=`<%l!JX'`!KeP;=`<%l!C}(r!Ksk$d&j'wp'z!b!RSOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#Z%Z#Z#[!Kh#[#]%Z#]#^!Kh#^#a%Z#a#b!Kh#b#g%Z#g#h!Kh#h#i%Z#i#j!Kh#j#m%Z#m#n!Kh#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#W!Mq]'wp'z!b!RSOY!MhZr!Mhrs!?gsw!Mhwx!GQx!P!Mh!P!Q!Nj!Q!}!Mh!}#O#!U#O#P!:o#P;'S!Mh;'S;=`##U<%lO!Mh#W!Nse'wp'z!b!RSOY*gZr*grs'}sw*gwx)rx#O*g#P#Z*g#Z#[!Nj#[#]*g#]#^!Nj#^#a*g#a#b!Nj#b#g*g#g#h!Nj#h#i*g#i#j!Nj#j#m*g#m#n!Nj#n;'S*g;'S;=`+Z<%lO*g#W#!]Z'wp'z!bOY#!UZr#!Urs!Apsw#!Uwx!IZx#O#!U#O#P!:Y#P#Q!Mh#Q;'S#!U;'S;=`##O<%lO#!U#W##RP;=`<%l#!U#W##XP;=`<%l!Mh(r##e`$d&j'wp'z!bOY##[YZ&cZr##[rs!Bnsw##[wx!JXx!^##[!^!_#!U!_#O##[#O#P!<P#P#Q!3h#Q#o##[#o#p#!U#p;'S##[;'S;=`#$g<%lO##[(r#$jP;=`<%l##[(r#$pP;=`<%l!3h(CS#%Qb$d&j'wp'z!b'o(;d!RSOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}x!P!3h!P!Q!Kh!Q!^!3h!^!_!Mh!_!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h(CS#&e_$d&j'wp'z!bR(;dOY#&YYZ&cZr#&Yrs#'dsw#&Ywx#*tx!^#&Y!^!_#,s!_#O#&Y#O#P#(f#P#o#&Y#o#p#,s#p;'S#&Y;'S;=`#-r<%lO#&Y(Bb#'m]$d&j'z!bR(;dOY#'dYZ&cZw#'dwx#(fx!^#'d!^!_#)w!_#O#'d#O#P#(f#P#o#'d#o#p#)w#p;'S#'d;'S;=`#*n<%lO#'d(AO#(mX$d&jR(;dOY#(fYZ&cZ!^#(f!^!_#)Y!_#o#(f#o#p#)Y#p;'S#(f;'S;=`#)q<%lO#(f(;d#)_SR(;dOY#)YZ;'S#)Y;'S;=`#)k<%lO#)Y(;d#)nP;=`<%l#)Y(AO#)tP;=`<%l#(f(<v#*OW'z!bR(;dOY#)wZw#)wwx#)Yx#O#)w#O#P#)Y#P;'S#)w;'S;=`#*h<%lO#)w(<v#*kP;=`<%l#)w(Bb#*qP;=`<%l#'d(Ap#*}]$d&j'wpR(;dOY#*tYZ&cZr#*trs#(fs!^#*t!^!_#+v!_#O#*t#O#P#(f#P#o#*t#o#p#+v#p;'S#*t;'S;=`#,m<%lO#*t(<U#+}W'wpR(;dOY#+vZr#+vrs#)Ys#O#+v#O#P#)Y#P;'S#+v;'S;=`#,g<%lO#+v(<U#,jP;=`<%l#+v(Ap#,pP;=`<%l#*t(=h#,|Y'wp'z!bR(;dOY#,sZr#,srs#)wsw#,swx#+vx#O#,s#O#P#)Y#P;'S#,s;'S;=`#-l<%lO#,s(=h#-oP;=`<%l#,s(CS#-uP;=`<%l#&Y%#W#.Vb$d&j#{$Id'wp'z!b!RSOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}x!P!3h!P!Q!Kh!Q!^!3h!^!_!Mh!_!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h+h#/lb$T#t$d&j'wp'z!b!RSOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}x!P!3h!P!Q!Kh!Q!^!3h!^!_!Mh!_!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h$/l#1Pp$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!+g!P!Q%Z!Q![#3T![!^%Z!^!_*g!_!g%Z!g!h!-Z!h#O%Z#O#P&c#P#R%Z#R#S#3T#S#U%Z#U#V#6_#V#X%Z#X#Y!-Z#Y#b%Z#b#c#5T#c#d#9g#d#l%Z#l#m#<i#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#3`k$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!+g!P!Q%Z!Q![#3T![!^%Z!^!_*g!_!g%Z!g!h!-Z!h#O%Z#O#P&c#P#R%Z#R#S#3T#S#X%Z#X#Y!-Z#Y#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#5`_$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#6hd$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#7v!R!S#7v!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#7v#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#8Rf$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#7v!R!S#7v!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#7v#S#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#9pc$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#:{!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#:{#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#;We$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#:{!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#:{#S#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#<rg$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#>Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>fi$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#>Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#@b_!a$b$d&j#y%<f'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Al_^l$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS#Bz^'}!*v!e'.r'wp'z!b$U)d(nSOY*gZr*grs'}sw*gwx)rx!P*g!P!Q#Cv!Q!^*g!^!_#Dl!_!`#F^!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#DPX$f&j'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#DuZ#k$Id'wp'z!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Eh!`#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#EqX#{$Id'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#FgX#l$Id'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g%Gh#G_a#X%?x$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a#Hd!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#W#Ho_#d$Ih$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#I}adBf#l$Id$a#|$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`#KS!`!a#L^!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S#K__#l$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S#Lia#k$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`!a#Mn!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S#My`#k$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h$ Wc(b$Ip$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P$!c!P!^%Z!^!_*g!_!a%Z!a!b$#m!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+`$!n_z'#p$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$#x`$d&j#v$Id'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&^$%V_!x!Ln$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^$&a_|(8n$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$'eZ$d&jO!^$(W!^!_$(n!_#i$(W#i#j$(s#j#l$(W#l#m$*f#m#o$(W#o#p$(n#p;'S$(W;'S;=`$,q<%lO$(W(n$(_T[#S$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$(sO[#S(n$(x[$d&jO!Q&c!Q![$)n![!^&c!_!c&c!c!i$)n!i#T&c#T#Z$)n#Z#o&c#o#p$,U#p;'S&c;'S;=`&w<%lO&c(n$)sZ$d&jO!Q&c!Q![$*f![!^&c!_!c&c!c!i$*f!i#T&c#T#Z$*f#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$*kZ$d&jO!Q&c!Q![$+^![!^&c!_!c&c!c!i$+^!i#T&c#T#Z$+^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$+cZ$d&jO!Q&c!Q![$(W![!^&c!_!c&c!c!i$(W!i#T&c#T#Z$(W#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$,XR!Q![$,b!c!i$,b#T#Z$,b#S$,eS!Q![$,b!c!i$,b#T#Z$,b#q#r$(n(n$,tP;=`<%l$(W!'l$-S_!SM|$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$.^`#s$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&,v$/k_$d&j'wp'z!b(R&%WOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$0yk$d&j'wp'z!b(U!LY't&;d$Y#tOY%ZYZ&cZr%Zrs&}st%Ztu$0juw%Zwx(rx}%Z}!O$2n!O!Q%Z!Q![$0j![!^%Z!^!_*g!_!c%Z!c!}$0j!}#O%Z#O#P&c#P#R%Z#R#S$0j#S#T%Z#T#o$0j#o#p*g#p$g%Z$g;'S$0j;'S;=`$4t<%lO$0j+d$2yk$d&j'wp'z!b$Y#tOY%ZYZ&cZr%Zrs&}st%Ztu$2nuw%Zwx(rx}%Z}!O$2n!O!Q%Z!Q![$2n![!^%Z!^!_*g!_!c%Z!c!}$2n!}#O%Z#O#P&c#P#R%Z#R#S$2n#S#T%Z#T#o$2n#o#p*g#p$g%Z$g;'S$2n;'S;=`$4n<%lO$2n+d$4qP;=`<%l$2n(CS$4wP;=`<%l$0j!5p$5TX!X!3l'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g%Df$5{a(i%<v$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$#m#q;'S%Z;'S;=`+a<%lO%Z%#`$7__!W$I`o`$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(r$8i_!mS$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$9y|$d&j'wp'z!b'm(;d(U!LY't&;d$W#tOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$JT>P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(CS$=Uk$d&j'wp'z!b'n(;d(U!LY't&;d$W#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P\",tokenizers:[noSemicolon,incdecToken,2,3,4,5,6,7,8,9,10,11,12,13,insertSemicolon,new LocalTokenGroup(\"$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOq~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!O~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(T~~\",141,326),new LocalTokenGroup(\"j~RQYZXz{^~^O'q~~aP!P!Qd~iO'r~~\",25,308)],topRules:{Script:[0,5],SingleExpression:[1,266],SingleClassItem:[2,267]},dialects:{jsx:12686,ts:12688},dynamicPrecedences:{76:1,78:1,163:1,191:1},specialized:[{term:312,get:value=>spec_identifier[value]||-1},{term:328,get:value=>spec_word[value]||-1},{term:67,get:value=>spec_LessThan[value]||-1}],tokenPrec:12712});export{parser};\nexport const __FramerMetadata__ = {\"exports\":{\"parser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/autocomplete/dist/index.js\nimport{Annotation,StateEffect,EditorSelection,codePointAt,codePointSize,fromCodePoint,Facet,combineConfig,StateField,Prec,Text,Transaction,MapMode,RangeValue,RangeSet,CharCategory}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/TWvikt1kG1sKU5G0pMRF/codemirror_state.js\";import{Direction,logException,showTooltip,EditorView,ViewPlugin,getTooltip,Decoration,WidgetType,keymap}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/b3PAgW7qmQJC7rQUi9po/codemirror_view.js\";import{syntaxTree,indentUnit}from\"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/r60pzPp0bOIae0tDcSfS/codemirror_language.js\";var CompletionContext=class{/**\n  Get the extent, content, and (if there is a token) type of the\n  token before `this.pos`.\n  */tokenBefore(types){let token=syntaxTree(this.state).resolveInner(this.pos,-1);while(token&&types.indexOf(token.name)<0)token=token.parent;return token?{from:token.from,to:this.pos,text:this.state.sliceDoc(token.from,this.pos),type:token.type}:null;}/**\n  Get the match of the given expression directly before the\n  cursor.\n  */matchBefore(expr){let line=this.state.doc.lineAt(this.pos);let start=Math.max(line.from,this.pos-250);let str=line.text.slice(start-line.from,this.pos-line.from);let found=str.search(ensureAnchor(expr,false));return found<0?null:{from:start+found,to:this.pos,text:str.slice(found)};}/**\n  Yields true when the query has been aborted. Can be useful in\n  asynchronous queries to avoid doing work that will be ignored.\n  */get aborted(){return this.abortListeners==null;}/**\n  Allows you to register abort handlers, which will be called when\n  the query is\n  [aborted](https://codemirror.net/6/docs/ref/#autocomplete.CompletionContext.aborted).\n  \n  By default, running queries will not be aborted for regular\n  typing or backspacing, on the assumption that they are likely to\n  return a result with a\n  [`validFor`](https://codemirror.net/6/docs/ref/#autocomplete.CompletionResult.validFor) field that\n  allows the result to be used after all. Passing `onDocChange:\n  true` will cause this query to be aborted for any document\n  change.\n  */addEventListener(type,listener,options){if(type==\"abort\"&&this.abortListeners){this.abortListeners.push(listener);if(options&&options.onDocChange)this.abortOnDocChange=true;}}/**\n  Create a new completion context. (Mostly useful for testing\n  completion sources—in the editor, the extension will create\n  these for you.)\n  */constructor(state,pos,explicit,view){this.state=state;this.pos=pos;this.explicit=explicit;this.view=view;this.abortListeners=[];this.abortOnDocChange=false;}};function toSet(chars){let flat=Object.keys(chars).join(\"\");let words=/\\w/.test(flat);if(words)flat=flat.replace(/\\w/g,\"\");return`[${words?\"\\\\w\":\"\"}${flat.replace(/[^\\w\\s]/g,\"\\\\$&\")}]`;}function prefixMatch(options){let first=/* @__PURE__ */Object.create(null),rest=/* @__PURE__ */Object.create(null);for(let{label}of options){first[label[0]]=true;for(let i=1;i<label.length;i++)rest[label[i]]=true;}let source=toSet(first)+toSet(rest)+\"*$\";return[new RegExp(\"^\"+source),new RegExp(source)];}function completeFromList(list){let options=list.map(o=>typeof o==\"string\"?{label:o}:o);let[validFor,match]=options.every(o=>/^\\w+$/.test(o.label))?[/\\w*$/,/\\w+$/]:prefixMatch(options);return context=>{let token=context.matchBefore(match);return token||context.explicit?{from:token?token.from:context.pos,options,validFor}:null;};}function ifIn(nodes,source){return context=>{for(let pos=syntaxTree(context.state).resolveInner(context.pos,-1);pos;pos=pos.parent){if(nodes.indexOf(pos.name)>-1)return source(context);if(pos.type.isTop)break;}return null;};}function ifNotIn(nodes,source){return context=>{for(let pos=syntaxTree(context.state).resolveInner(context.pos,-1);pos;pos=pos.parent){if(nodes.indexOf(pos.name)>-1)return null;if(pos.type.isTop)break;}return source(context);};}var Option=class{constructor(completion,source,match,score2){this.completion=completion;this.source=source;this.match=match;this.score=score2;}};function cur(state){return state.selection.main.from;}function ensureAnchor(expr,start){var _a;let{source}=expr;let addStart=start&&source[0]!=\"^\",addEnd=source[source.length-1]!=\"$\";if(!addStart&&!addEnd)return expr;return new RegExp(`${addStart?\"^\":\"\"}(?:${source})${addEnd?\"$\":\"\"}`,(_a=expr.flags)!==null&&_a!==void 0?_a:expr.ignoreCase?\"i\":\"\");}var pickedCompletion=/* @__PURE__ */Annotation.define();function insertCompletionText(state,text,from,to){let{main}=state.selection,fromOff=from-main.from,toOff=to-main.from;return Object.assign(Object.assign({},state.changeByRange(range=>{if(range!=main&&from!=to&&state.sliceDoc(range.from+fromOff,range.from+toOff)!=state.sliceDoc(from,to))return{range};let lines=state.toText(text);return{changes:{from:range.from+fromOff,to:to==main.from?range.to:range.from+toOff,insert:lines},range:EditorSelection.cursor(range.from+fromOff+lines.length)};})),{scrollIntoView:true,userEvent:\"input.complete\"});}var SourceCache=/* @__PURE__ */new WeakMap;function asSource(source){if(!Array.isArray(source))return source;let known=SourceCache.get(source);if(!known)SourceCache.set(source,known=completeFromList(source));return known;}var startCompletionEffect=/* @__PURE__ */StateEffect.define();var closeCompletionEffect=/* @__PURE__ */StateEffect.define();var FuzzyMatcher=class{ret(score2,matched){this.score=score2;this.matched=matched;return this;}// Matches a given word (completion) against the pattern (input).\n// Will return a boolean indicating whether there was a match and,\n// on success, set `this.score` to the score, `this.matched` to an\n// array of `from, to` pairs indicating the matched parts of `word`.\n//\n// The score is a number that is more negative the worse the match\n// is. See `Penalty` above.\nmatch(word){if(this.pattern.length==0)return this.ret(-100,[]);if(word.length<this.pattern.length)return null;let{chars,folded,any,precise,byWord}=this;if(chars.length==1){let first=codePointAt(word,0),firstSize=codePointSize(first);let score2=firstSize==word.length?0:-100;if(first==chars[0]);else if(first==folded[0])score2+=-200;else return null;return this.ret(score2,[0,firstSize]);}let direct=word.indexOf(this.pattern);if(direct==0)return this.ret(word.length==this.pattern.length?0:-100,[0,this.pattern.length]);let len=chars.length,anyTo=0;if(direct<0){for(let i=0,e=Math.min(word.length,200);i<e&&anyTo<len;){let next=codePointAt(word,i);if(next==chars[anyTo]||next==folded[anyTo])any[anyTo++]=i;i+=codePointSize(next);}if(anyTo<len)return null;}let preciseTo=0;let byWordTo=0,byWordFolded=false;let adjacentTo=0,adjacentStart=-1,adjacentEnd=-1;let hasLower=/[a-z]/.test(word),wordAdjacent=true;for(let i=0,e=Math.min(word.length,200),prevType=0;i<e&&byWordTo<len;){let next=codePointAt(word,i);if(direct<0){if(preciseTo<len&&next==chars[preciseTo])precise[preciseTo++]=i;if(adjacentTo<len){if(next==chars[adjacentTo]||next==folded[adjacentTo]){if(adjacentTo==0)adjacentStart=i;adjacentEnd=i+1;adjacentTo++;}else{adjacentTo=0;}}}let ch,type=next<255?next>=48&&next<=57||next>=97&&next<=122?2:next>=65&&next<=90?1:0:(ch=fromCodePoint(next))!=ch.toLowerCase()?1:ch!=ch.toUpperCase()?2:0;if(!i||type==1&&hasLower||prevType==0&&type!=0){if(chars[byWordTo]==next||folded[byWordTo]==next&&(byWordFolded=true))byWord[byWordTo++]=i;else if(byWord.length)wordAdjacent=false;}prevType=type;i+=codePointSize(next);}if(byWordTo==len&&byWord[0]==0&&wordAdjacent)return this.result(-100+(byWordFolded?-200:0),byWord,word);if(adjacentTo==len&&adjacentStart==0)return this.ret(-200-word.length+(adjacentEnd==word.length?0:-100),[0,adjacentEnd]);if(direct>-1)return this.ret(-700-word.length,[direct,direct+this.pattern.length]);if(adjacentTo==len)return this.ret(-200+-700-word.length,[adjacentStart,adjacentEnd]);if(byWordTo==len)return this.result(-100+(byWordFolded?-200:0)+-700+(wordAdjacent?0:-1100),byWord,word);return chars.length==2?null:this.result((any[0]?-700:0)+-200+-1100,any,word);}result(score2,positions,word){let result=[],i=0;for(let pos of positions){let to=pos+(this.astral?codePointSize(codePointAt(word,pos)):1);if(i&&result[i-1]==pos)result[i-1]=to;else{result[i++]=pos;result[i++]=to;}}return this.ret(score2-word.length,result);}constructor(pattern){this.pattern=pattern;this.chars=[];this.folded=[];this.any=[];this.precise=[];this.byWord=[];this.score=0;this.matched=[];for(let p=0;p<pattern.length;){let char=codePointAt(pattern,p),size=codePointSize(char);this.chars.push(char);let part=pattern.slice(p,p+size),upper=part.toUpperCase();this.folded.push(codePointAt(upper==part?part.toLowerCase():upper,0));p+=size;}this.astral=pattern.length!=this.chars.length;}};var StrictMatcher=class{match(word){if(word.length<this.pattern.length)return null;let start=word.slice(0,this.pattern.length);let match=start==this.pattern?0:start.toLowerCase()==this.folded?-200:null;if(match==null)return null;this.matched=[0,start.length];this.score=match+(word.length==this.pattern.length?0:-100);return this;}constructor(pattern){this.pattern=pattern;this.matched=[];this.score=0;this.folded=pattern.toLowerCase();}};var completionConfig=/* @__PURE__ */Facet.define({combine(configs){return combineConfig(configs,{activateOnTyping:true,activateOnCompletion:()=>false,activateOnTypingDelay:100,selectOnOpen:true,override:null,closeOnBlur:true,maxRenderedOptions:100,defaultKeymap:true,tooltipClass:()=>\"\",optionClass:()=>\"\",aboveCursor:false,icons:true,addToOptions:[],positionInfo:defaultPositionInfo,filterStrict:false,compareCompletions:(a,b)=>a.label.localeCompare(b.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(a,b)=>a&&b,closeOnBlur:(a,b)=>a&&b,icons:(a,b)=>a&&b,tooltipClass:(a,b)=>c=>joinClass(a(c),b(c)),optionClass:(a,b)=>c=>joinClass(a(c),b(c)),addToOptions:(a,b)=>a.concat(b),filterStrict:(a,b)=>a||b});}});function joinClass(a,b){return a?b?a+\" \"+b:a:b;}function defaultPositionInfo(view,list,option,info,space,tooltip){let rtl=view.textDirection==Direction.RTL,left=rtl,narrow=false;let side=\"top\",offset,maxWidth;let spaceLeft=list.left-space.left,spaceRight=space.right-list.right;let infoWidth=info.right-info.left,infoHeight=info.bottom-info.top;if(left&&spaceLeft<Math.min(infoWidth,spaceRight))left=false;else if(!left&&spaceRight<Math.min(infoWidth,spaceLeft))left=true;if(infoWidth<=(left?spaceLeft:spaceRight)){offset=Math.max(space.top,Math.min(option.top,space.bottom-infoHeight))-list.top;maxWidth=Math.min(400,left?spaceLeft:spaceRight);}else{narrow=true;maxWidth=Math.min(400,(rtl?list.right:space.right-list.left)-30);let spaceBelow=space.bottom-list.bottom;if(spaceBelow>=infoHeight||spaceBelow>list.top){offset=option.bottom-list.top;}else{side=\"bottom\";offset=list.bottom-option.top;}}let scaleY=(list.bottom-list.top)/tooltip.offsetHeight;let scaleX=(list.right-list.left)/tooltip.offsetWidth;return{style:`${side}: ${offset/scaleY}px; max-width: ${maxWidth/scaleX}px`,class:\"cm-completionInfo-\"+(narrow?rtl?\"left-narrow\":\"right-narrow\":left?\"left\":\"right\")};}function optionContent(config2){let content=config2.addToOptions.slice();if(config2.icons)content.push({render(completion){let icon=document.createElement(\"div\");icon.classList.add(\"cm-completionIcon\");if(completion.type)icon.classList.add(...completion.type.split(/\\s+/g).map(cls=>\"cm-completionIcon-\"+cls));icon.setAttribute(\"aria-hidden\",\"true\");return icon;},position:20});content.push({render(completion,_s,_v,match){let labelElt=document.createElement(\"span\");labelElt.className=\"cm-completionLabel\";let label=completion.displayLabel||completion.label,off=0;for(let j=0;j<match.length;){let from=match[j++],to=match[j++];if(from>off)labelElt.appendChild(document.createTextNode(label.slice(off,from)));let span=labelElt.appendChild(document.createElement(\"span\"));span.appendChild(document.createTextNode(label.slice(from,to)));span.className=\"cm-completionMatchedText\";off=to;}if(off<label.length)labelElt.appendChild(document.createTextNode(label.slice(off)));return labelElt;},position:50},{render(completion){if(!completion.detail)return null;let detailElt=document.createElement(\"span\");detailElt.className=\"cm-completionDetail\";detailElt.textContent=completion.detail;return detailElt;},position:80});return content.sort((a,b)=>a.position-b.position).map(a=>a.render);}function rangeAroundSelected(total,selected,max){if(total<=max)return{from:0,to:total};if(selected<0)selected=0;if(selected<=total>>1){let off2=Math.floor(selected/max);return{from:off2*max,to:(off2+1)*max};}let off=Math.floor((total-selected)/max);return{from:total-(off+1)*max,to:total-off*max};}var CompletionTooltip=class{mount(){this.updateSel();}showOptions(options,id){if(this.list)this.list.remove();this.list=this.dom.appendChild(this.createListBox(options,id,this.range));this.list.addEventListener(\"scroll\",()=>{if(this.info)this.view.requestMeasure(this.placeInfoReq);});}update(update){var _a;let cState=update.state.field(this.stateField);let prevState=update.startState.field(this.stateField);this.updateTooltipClass(update.state);if(cState!=prevState){let{options,selected,disabled}=cState.open;if(!prevState.open||prevState.open.options!=options){this.range=rangeAroundSelected(options.length,selected,update.state.facet(completionConfig).maxRenderedOptions);this.showOptions(options,cState.id);}this.updateSel();if(disabled!=((_a=prevState.open)===null||_a===void 0?void 0:_a.disabled))this.dom.classList.toggle(\"cm-tooltip-autocomplete-disabled\",!!disabled);}}updateTooltipClass(state){let cls=this.tooltipClass(state);if(cls!=this.currentClass){for(let c of this.currentClass.split(\" \"))if(c)this.dom.classList.remove(c);for(let c of cls.split(\" \"))if(c)this.dom.classList.add(c);this.currentClass=cls;}}positioned(space){this.space=space;if(this.info)this.view.requestMeasure(this.placeInfoReq);}updateSel(){let cState=this.view.state.field(this.stateField),open=cState.open;if(open.selected>-1&&open.selected<this.range.from||open.selected>=this.range.to){this.range=rangeAroundSelected(open.options.length,open.selected,this.view.state.facet(completionConfig).maxRenderedOptions);this.showOptions(open.options,cState.id);}if(this.updateSelectedOption(open.selected)){this.destroyInfo();let{completion}=open.options[open.selected];let{info}=completion;if(!info)return;let infoResult=typeof info===\"string\"?document.createTextNode(info):info(completion);if(!infoResult)return;if(\"then\"in infoResult){infoResult.then(obj=>{if(obj&&this.view.state.field(this.stateField,false)==cState)this.addInfoPane(obj,completion);}).catch(e=>logException(this.view.state,e,\"completion info\"));}else{this.addInfoPane(infoResult,completion);}}}addInfoPane(content,completion){this.destroyInfo();let wrap=this.info=document.createElement(\"div\");wrap.className=\"cm-tooltip cm-completionInfo\";if(content.nodeType!=null){wrap.appendChild(content);this.infoDestroy=null;}else{let{dom,destroy}=content;wrap.appendChild(dom);this.infoDestroy=destroy||null;}this.dom.appendChild(wrap);this.view.requestMeasure(this.placeInfoReq);}updateSelectedOption(selected){let set=null;for(let opt=this.list.firstChild,i=this.range.from;opt;opt=opt.nextSibling,i++){if(opt.nodeName!=\"LI\"||!opt.id){i--;}else if(i==selected){if(!opt.hasAttribute(\"aria-selected\")){opt.setAttribute(\"aria-selected\",\"true\");set=opt;}}else{if(opt.hasAttribute(\"aria-selected\"))opt.removeAttribute(\"aria-selected\");}}if(set)scrollIntoView(this.list,set);return set;}measureInfo(){let sel=this.dom.querySelector(\"[aria-selected]\");if(!sel||!this.info)return null;let listRect=this.dom.getBoundingClientRect();let infoRect=this.info.getBoundingClientRect();let selRect=sel.getBoundingClientRect();let space=this.space;if(!space){let docElt=this.dom.ownerDocument.documentElement;space={left:0,top:0,right:docElt.clientWidth,bottom:docElt.clientHeight};}if(selRect.top>Math.min(space.bottom,listRect.bottom)-10||selRect.bottom<Math.max(space.top,listRect.top)+10)return null;return this.view.state.facet(completionConfig).positionInfo(this.view,listRect,selRect,infoRect,space,this.dom);}placeInfo(pos){if(this.info){if(pos){if(pos.style)this.info.style.cssText=pos.style;this.info.className=\"cm-tooltip cm-completionInfo \"+(pos.class||\"\");}else{this.info.style.cssText=\"top: -1e6px\";}}}createListBox(options,id,range){const ul=document.createElement(\"ul\");ul.id=id;ul.setAttribute(\"role\",\"listbox\");ul.setAttribute(\"aria-expanded\",\"true\");ul.setAttribute(\"aria-label\",this.view.state.phrase(\"Completions\"));ul.addEventListener(\"mousedown\",e=>{if(e.target==ul)e.preventDefault();});let curSection=null;for(let i=range.from;i<range.to;i++){let{completion,match}=options[i],{section}=completion;if(section){let name=typeof section==\"string\"?section:section.name;if(name!=curSection&&(i>range.from||range.from==0)){curSection=name;if(typeof section!=\"string\"&&section.header){ul.appendChild(section.header(section));}else{let header=ul.appendChild(document.createElement(\"completion-section\"));header.textContent=name;}}}const li=ul.appendChild(document.createElement(\"li\"));li.id=id+\"-\"+i;li.setAttribute(\"role\",\"option\");let cls=this.optionClass(completion);if(cls)li.className=cls;for(let source of this.optionContent){let node=source(completion,this.view.state,this.view,match);if(node)li.appendChild(node);}}if(range.from)ul.classList.add(\"cm-completionListIncompleteTop\");if(range.to<options.length)ul.classList.add(\"cm-completionListIncompleteBottom\");return ul;}destroyInfo(){if(this.info){if(this.infoDestroy)this.infoDestroy();this.info.remove();this.info=null;}}destroy(){this.destroyInfo();}constructor(view,stateField,applyCompletion2){this.view=view;this.stateField=stateField;this.applyCompletion=applyCompletion2;this.info=null;this.infoDestroy=null;this.placeInfoReq={read:()=>this.measureInfo(),write:pos=>this.placeInfo(pos),key:this};this.space=null;this.currentClass=\"\";let cState=view.state.field(stateField);let{options,selected}=cState.open;let config2=view.state.facet(completionConfig);this.optionContent=optionContent(config2);this.optionClass=config2.optionClass;this.tooltipClass=config2.tooltipClass;this.range=rangeAroundSelected(options.length,selected,config2.maxRenderedOptions);this.dom=document.createElement(\"div\");this.dom.className=\"cm-tooltip-autocomplete\";this.updateTooltipClass(view.state);this.dom.addEventListener(\"mousedown\",e=>{let{options:options2}=view.state.field(stateField).open;for(let dom=e.target,match;dom&&dom!=this.dom;dom=dom.parentNode){if(dom.nodeName==\"LI\"&&(match=/-(\\d+)$/.exec(dom.id))&&+match[1]<options2.length){this.applyCompletion(view,options2[+match[1]]);e.preventDefault();return;}}});this.dom.addEventListener(\"focusout\",e=>{let state=view.state.field(this.stateField,false);if(state&&state.tooltip&&view.state.facet(completionConfig).closeOnBlur&&e.relatedTarget!=view.contentDOM)view.dispatch({effects:closeCompletionEffect.of(null)});});this.showOptions(options,cState.id);}};function completionTooltip(stateField,applyCompletion2){return view=>new CompletionTooltip(view,stateField,applyCompletion2);}function scrollIntoView(container,element){let parent=container.getBoundingClientRect();let self=element.getBoundingClientRect();let scaleY=parent.height/container.offsetHeight;if(self.top<parent.top)container.scrollTop-=(parent.top-self.top)/scaleY;else if(self.bottom>parent.bottom)container.scrollTop+=(self.bottom-parent.bottom)/scaleY;}function score(option){return(option.boost||0)*100+(option.apply?10:0)+(option.info?5:0)+(option.type?1:0);}function sortOptions(active,state){let options=[];let sections=null;let addOption=option=>{options.push(option);let{section}=option.completion;if(section){if(!sections)sections=[];let name=typeof section==\"string\"?section:section.name;if(!sections.some(s=>s.name==name))sections.push(typeof section==\"string\"?{name}:section);}};let conf=state.facet(completionConfig);for(let a of active)if(a.hasResult()){let getMatch=a.result.getMatch;if(a.result.filter===false){for(let option of a.result.options){addOption(new Option(option,a.source,getMatch?getMatch(option):[],1e9-options.length));}}else{let pattern=state.sliceDoc(a.from,a.to),match;let matcher=conf.filterStrict?new StrictMatcher(pattern):new FuzzyMatcher(pattern);for(let option of a.result.options)if(match=matcher.match(option.label)){let matched=!option.displayLabel?match.matched:getMatch?getMatch(option,match.matched):[];addOption(new Option(option,a.source,matched,match.score+(option.boost||0)));}}}if(sections){let sectionOrder=/* @__PURE__ */Object.create(null),pos=0;let cmp=(a,b)=>{var _a,_b;return((_a=a.rank)!==null&&_a!==void 0?_a:1e9)-((_b=b.rank)!==null&&_b!==void 0?_b:1e9)||(a.name<b.name?-1:1);};for(let s of sections.sort(cmp)){pos-=1e5;sectionOrder[s.name]=pos;}for(let option of options){let{section}=option.completion;if(section)option.score+=sectionOrder[typeof section==\"string\"?section:section.name];}}let result=[],prev=null;let compare=conf.compareCompletions;for(let opt of options.sort((a,b)=>b.score-a.score||compare(a.completion,b.completion))){let cur2=opt.completion;if(!prev||prev.label!=cur2.label||prev.detail!=cur2.detail||prev.type!=null&&cur2.type!=null&&prev.type!=cur2.type||prev.apply!=cur2.apply||prev.boost!=cur2.boost)result.push(opt);else if(score(opt.completion)>score(prev))result[result.length-1]=opt;prev=opt.completion;}return result;}var CompletionDialog=class _CompletionDialog{setSelected(selected,id){return selected==this.selected||selected>=this.options.length?this:new _CompletionDialog(this.options,makeAttrs(id,selected),this.tooltip,this.timestamp,selected,this.disabled);}static build(active,state,id,prev,conf,didSetActive){if(prev&&!didSetActive&&active.some(s=>s.isPending))return prev.setDisabled();let options=sortOptions(active,state);if(!options.length)return prev&&active.some(a=>a.isPending)?prev.setDisabled():null;let selected=state.facet(completionConfig).selectOnOpen?0:-1;if(prev&&prev.selected!=selected&&prev.selected!=-1){let selectedValue=prev.options[prev.selected].completion;for(let i=0;i<options.length;i++)if(options[i].completion==selectedValue){selected=i;break;}}return new _CompletionDialog(options,makeAttrs(id,selected),{pos:active.reduce((a,b)=>b.hasResult()?Math.min(a,b.from):a,1e8),create:createTooltip,above:conf.aboveCursor},prev?prev.timestamp:Date.now(),selected,false);}map(changes){return new _CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:changes.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled);}setDisabled(){return new _CompletionDialog(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,true);}constructor(options,attrs,tooltip,timestamp,selected,disabled){this.options=options;this.attrs=attrs;this.tooltip=tooltip;this.timestamp=timestamp;this.selected=selected;this.disabled=disabled;}};var CompletionState=class _CompletionState{static start(){return new _CompletionState(none,\"cm-ac-\"+Math.floor(Math.random()*2e6).toString(36),null);}update(tr){let{state}=tr,conf=state.facet(completionConfig);let sources=conf.override||state.languageDataAt(\"autocomplete\",cur(state)).map(asSource);let active=sources.map(source=>{let value=this.active.find(s=>s.source==source)||new ActiveSource(source,this.active.some(a=>a.state!=0)?1:0);return value.update(tr,conf);});if(active.length==this.active.length&&active.every((a,i)=>a==this.active[i]))active=this.active;let open=this.open,didSet=tr.effects.some(e=>e.is(setActiveEffect));if(open&&tr.docChanged)open=open.map(tr.changes);if(tr.selection||active.some(a=>a.hasResult()&&tr.changes.touchesRange(a.from,a.to))||!sameResults(active,this.active)||didSet)open=CompletionDialog.build(active,state,this.id,open,conf,didSet);else if(open&&open.disabled&&!active.some(a=>a.isPending))open=null;if(!open&&active.every(a=>!a.isPending)&&active.some(a=>a.hasResult()))active=active.map(a=>a.hasResult()?new ActiveSource(a.source,0):a);for(let effect of tr.effects)if(effect.is(setSelectedEffect))open=open&&open.setSelected(effect.value,this.id);return active==this.active&&open==this.open?this:new _CompletionState(active,this.id,open);}get tooltip(){return this.open?this.open.tooltip:null;}get attrs(){return this.open?this.open.attrs:this.active.length?baseAttrs:noAttrs;}constructor(active,id,open){this.active=active;this.id=id;this.open=open;}};function sameResults(a,b){if(a==b)return true;for(let iA=0,iB=0;;){while(iA<a.length&&!a[iA].hasResult())iA++;while(iB<b.length&&!b[iB].hasResult())iB++;let endA=iA==a.length,endB=iB==b.length;if(endA||endB)return endA==endB;if(a[iA++].result!=b[iB++].result)return false;}}var baseAttrs={\"aria-autocomplete\":\"list\"};var noAttrs={};function makeAttrs(id,selected){let result={\"aria-autocomplete\":\"list\",\"aria-haspopup\":\"listbox\",\"aria-controls\":id};if(selected>-1)result[\"aria-activedescendant\"]=id+\"-\"+selected;return result;}var none=[];function getUpdateType(tr,conf){if(tr.isUserEvent(\"input.complete\")){let completion=tr.annotation(pickedCompletion);if(completion&&conf.activateOnCompletion(completion))return 4|8;}let typing=tr.isUserEvent(\"input.type\");return typing&&conf.activateOnTyping?4|1:typing?1:tr.isUserEvent(\"delete.backward\")?2:tr.selection?8:tr.docChanged?16:0;}var ActiveSource=class _ActiveSource{hasResult(){return false;}get isPending(){return this.state==1;}update(tr,conf){let type=getUpdateType(tr,conf),value=this;if(type&8||type&16&&this.touches(tr))value=new _ActiveSource(value.source,0);if(type&4&&value.state==0)value=new _ActiveSource(this.source,1);value=value.updateFor(tr,type);for(let effect of tr.effects){if(effect.is(startCompletionEffect))value=new _ActiveSource(value.source,1,effect.value);else if(effect.is(closeCompletionEffect))value=new _ActiveSource(value.source,0);else if(effect.is(setActiveEffect)){for(let active of effect.value)if(active.source==value.source)value=active;}}return value;}updateFor(tr,type){return this.map(tr.changes);}map(changes){return this;}touches(tr){return tr.changes.touchesRange(cur(tr.state));}constructor(source,state,explicit=false){this.source=source;this.state=state;this.explicit=explicit;}};var ActiveResult=class _ActiveResult extends ActiveSource{hasResult(){return true;}updateFor(tr,type){var _a;if(!(type&3))return this.map(tr.changes);let result=this.result;if(result.map&&!tr.changes.empty)result=result.map(result,tr.changes);let from=tr.changes.mapPos(this.from),to=tr.changes.mapPos(this.to,1);let pos=cur(tr.state);if(pos>to||!result||type&2&&(cur(tr.startState)==this.from||pos<this.limit))return new ActiveSource(this.source,type&4?1:0);let limit=tr.changes.mapPos(this.limit);if(checkValid(result.validFor,tr.state,from,to))return new _ActiveResult(this.source,this.explicit,limit,result,from,to);if(result.update&&(result=result.update(result,from,to,new CompletionContext(tr.state,pos,false))))return new _ActiveResult(this.source,this.explicit,limit,result,result.from,(_a=result.to)!==null&&_a!==void 0?_a:cur(tr.state));return new ActiveSource(this.source,1,this.explicit);}map(mapping){if(mapping.empty)return this;let result=this.result.map?this.result.map(this.result,mapping):this.result;if(!result)return new ActiveSource(this.source,0);return new _ActiveResult(this.source,this.explicit,mapping.mapPos(this.limit),this.result,mapping.mapPos(this.from),mapping.mapPos(this.to,1));}touches(tr){return tr.changes.touchesRange(this.from,this.to);}constructor(source,explicit,limit,result,from,to){super(source,3,explicit);this.limit=limit;this.result=result;this.from=from;this.to=to;}};function checkValid(validFor,state,from,to){if(!validFor)return false;let text=state.sliceDoc(from,to);return typeof validFor==\"function\"?validFor(text,from,to,state):ensureAnchor(validFor,true).test(text);}var setActiveEffect=/* @__PURE__ */StateEffect.define({map(sources,mapping){return sources.map(s=>s.map(mapping));}});var setSelectedEffect=/* @__PURE__ */StateEffect.define();var completionState=/* @__PURE__ */StateField.define({create(){return CompletionState.start();},update(value,tr){return value.update(tr);},provide:f=>[showTooltip.from(f,val=>val.tooltip),EditorView.contentAttributes.from(f,state=>state.attrs)]});function applyCompletion(view,option){const apply=option.completion.apply||option.completion.label;let result=view.state.field(completionState).active.find(a=>a.source==option.source);if(!(result instanceof ActiveResult))return false;if(typeof apply==\"string\")view.dispatch(Object.assign(Object.assign({},insertCompletionText(view.state,apply,result.from,result.to)),{annotations:pickedCompletion.of(option.completion)}));else apply(view,option.completion,result.from,result.to);return true;}var createTooltip=/* @__PURE__ */completionTooltip(completionState,applyCompletion);function moveCompletionSelection(forward,by=\"option\"){return view=>{let cState=view.state.field(completionState,false);if(!cState||!cState.open||cState.open.disabled||Date.now()-cState.open.timestamp<view.state.facet(completionConfig).interactionDelay)return false;let step=1,tooltip;if(by==\"page\"&&(tooltip=getTooltip(view,cState.open.tooltip)))step=Math.max(2,Math.floor(tooltip.dom.offsetHeight/tooltip.dom.querySelector(\"li\").offsetHeight)-1);let{length}=cState.open.options;let selected=cState.open.selected>-1?cState.open.selected+step*(forward?1:-1):forward?0:length-1;if(selected<0)selected=by==\"page\"?0:length-1;else if(selected>=length)selected=by==\"page\"?length-1:0;view.dispatch({effects:setSelectedEffect.of(selected)});return true;};}var acceptCompletion=view=>{let cState=view.state.field(completionState,false);if(view.state.readOnly||!cState||!cState.open||cState.open.selected<0||cState.open.disabled||Date.now()-cState.open.timestamp<view.state.facet(completionConfig).interactionDelay)return false;return applyCompletion(view,cState.open.options[cState.open.selected]);};var startCompletion=view=>{let cState=view.state.field(completionState,false);if(!cState)return false;view.dispatch({effects:startCompletionEffect.of(true)});return true;};var closeCompletion=view=>{let cState=view.state.field(completionState,false);if(!cState||!cState.active.some(a=>a.state!=0))return false;view.dispatch({effects:closeCompletionEffect.of(null)});return true;};var RunningQuery=class{constructor(active,context){this.active=active;this.context=context;this.time=Date.now();this.updates=[];this.done=void 0;}};var MaxUpdateCount=50;var MinAbortTime=1e3;var completionPlugin=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){let cState=update.state.field(completionState);let conf=update.state.facet(completionConfig);if(!update.selectionSet&&!update.docChanged&&update.startState.field(completionState)==cState)return;let doesReset=update.transactions.some(tr=>{let type=getUpdateType(tr,conf);return type&8||(tr.selection||tr.docChanged)&&!(type&3);});for(let i=0;i<this.running.length;i++){let query=this.running[i];if(doesReset||query.context.abortOnDocChange&&update.docChanged||query.updates.length+update.transactions.length>MaxUpdateCount&&Date.now()-query.time>MinAbortTime){for(let handler of query.context.abortListeners){try{handler();}catch(e){logException(this.view.state,e);}}query.context.abortListeners=null;this.running.splice(i--,1);}else{query.updates.push(...update.transactions);}}if(this.debounceUpdate>-1)clearTimeout(this.debounceUpdate);if(update.transactions.some(tr=>tr.effects.some(e=>e.is(startCompletionEffect))))this.pendingStart=true;let delay=this.pendingStart?50:conf.activateOnTypingDelay;this.debounceUpdate=cState.active.some(a=>a.isPending&&!this.running.some(q=>q.active.source==a.source))?setTimeout(()=>this.startUpdate(),delay):-1;if(this.composing!=0)for(let tr of update.transactions){if(tr.isUserEvent(\"input.type\"))this.composing=2;else if(this.composing==2&&tr.selection)this.composing=3;}}startUpdate(){this.debounceUpdate=-1;this.pendingStart=false;let{state}=this.view,cState=state.field(completionState);for(let active of cState.active){if(active.isPending&&!this.running.some(r=>r.active.source==active.source))this.startQuery(active);}if(this.running.length&&cState.open&&cState.open.disabled)this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig).updateSyncTime);}startQuery(active){let{state}=this.view,pos=cur(state);let context=new CompletionContext(state,pos,active.explicit,this.view);let pending=new RunningQuery(active,context);this.running.push(pending);Promise.resolve(active.source(context)).then(result=>{if(!pending.context.aborted){pending.done=result||null;this.scheduleAccept();}},err=>{this.view.dispatch({effects:closeCompletionEffect.of(null)});logException(this.view.state,err);});}scheduleAccept(){if(this.running.every(q=>q.done!==void 0))this.accept();else if(this.debounceAccept<0)this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(completionConfig).updateSyncTime);}// For each finished query in this.running, try to create a result\n// or, if appropriate, restart the query.\naccept(){var _a;if(this.debounceAccept>-1)clearTimeout(this.debounceAccept);this.debounceAccept=-1;let updated=[];let conf=this.view.state.facet(completionConfig),cState=this.view.state.field(completionState);for(let i=0;i<this.running.length;i++){let query=this.running[i];if(query.done===void 0)continue;this.running.splice(i--,1);if(query.done){let pos=cur(query.updates.length?query.updates[0].startState:this.view.state);let limit=Math.min(pos,query.done.from+(query.active.explicit?0:1));let active=new ActiveResult(query.active.source,query.active.explicit,limit,query.done,query.done.from,(_a=query.done.to)!==null&&_a!==void 0?_a:pos);for(let tr of query.updates)active=active.update(tr,conf);if(active.hasResult()){updated.push(active);continue;}}let current=cState.active.find(a=>a.source==query.active.source);if(current&&current.isPending){if(query.done==null){let active=new ActiveSource(query.active.source,0);for(let tr of query.updates)active=active.update(tr,conf);if(!active.isPending)updated.push(active);}else{this.startQuery(current);}}}if(updated.length||cState.open&&cState.open.disabled)this.view.dispatch({effects:setActiveEffect.of(updated)});}constructor(view){this.view=view;this.debounceUpdate=-1;this.running=[];this.debounceAccept=-1;this.pendingStart=false;this.composing=0;for(let active of view.state.field(completionState).active)if(active.isPending)this.startQuery(active);}},{eventHandlers:{blur(event){let state=this.view.state.field(completionState,false);if(state&&state.tooltip&&this.view.state.facet(completionConfig).closeOnBlur){let dialog=state.open&&getTooltip(this.view,state.open.tooltip);if(!dialog||!dialog.dom.contains(event.relatedTarget))setTimeout(()=>this.view.dispatch({effects:closeCompletionEffect.of(null)}),10);}},compositionstart(){this.composing=1;},compositionend(){if(this.composing==3){setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(false)}),20);}this.composing=0;}}});var windows=typeof navigator==\"object\"&&/* @__PURE__ *//Win/.test(navigator.platform);var commitCharacters=/* @__PURE__ */Prec.highest(/* @__PURE__ */EditorView.domEventHandlers({keydown(event,view){let field=view.state.field(completionState,false);if(!field||!field.open||field.open.disabled||field.open.selected<0||event.key.length>1||event.ctrlKey&&!(windows&&event.altKey)||event.metaKey)return false;let option=field.open.options[field.open.selected];let result=field.active.find(a=>a.source==option.source);let commitChars=option.completion.commitCharacters||result.result.commitCharacters;if(commitChars&&commitChars.indexOf(event.key)>-1)applyCompletion(view,option);return false;}}));var baseTheme=/* @__PURE__ */EditorView.baseTheme({\".cm-tooltip.cm-tooltip-autocomplete\":{\"& > ul\":{fontFamily:\"monospace\",whiteSpace:\"nowrap\",overflow:\"hidden auto\",maxWidth_fallback:\"700px\",maxWidth:\"min(700px, 95vw)\",minWidth:\"250px\",maxHeight:\"10em\",height:\"100%\",listStyle:\"none\",margin:0,padding:0,\"& > li, & > completion-section\":{padding:\"1px 3px\",lineHeight:1.2},\"& > li\":{overflowX:\"hidden\",textOverflow:\"ellipsis\",cursor:\"pointer\"},\"& > completion-section\":{display:\"list-item\",borderBottom:\"1px solid silver\",paddingLeft:\"0.5em\",opacity:.7}}},\"&light .cm-tooltip-autocomplete ul li[aria-selected]\":{background:\"#17c\",color:\"white\"},\"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]\":{background:\"#777\"},\"&dark .cm-tooltip-autocomplete ul li[aria-selected]\":{background:\"#347\",color:\"white\"},\"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]\":{background:\"#444\"},\".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after\":{content:'\"\\xb7\\xb7\\xb7\"',opacity:.5,display:\"block\",textAlign:\"center\"},\".cm-tooltip.cm-completionInfo\":{position:\"absolute\",padding:\"3px 9px\",width:\"max-content\",maxWidth:`${400}px`,boxSizing:\"border-box\",whiteSpace:\"pre-line\"},\".cm-completionInfo.cm-completionInfo-left\":{right:\"100%\"},\".cm-completionInfo.cm-completionInfo-right\":{left:\"100%\"},\".cm-completionInfo.cm-completionInfo-left-narrow\":{right:`${30}px`},\".cm-completionInfo.cm-completionInfo-right-narrow\":{left:`${30}px`},\"&light .cm-snippetField\":{backgroundColor:\"#00000022\"},\"&dark .cm-snippetField\":{backgroundColor:\"#ffffff22\"},\".cm-snippetFieldPosition\":{verticalAlign:\"text-top\",width:0,height:\"1.15em\",display:\"inline-block\",margin:\"0 -0.7px -.7em\",borderLeft:\"1.4px dotted #888\"},\".cm-completionMatchedText\":{textDecoration:\"underline\"},\".cm-completionDetail\":{marginLeft:\"0.5em\",fontStyle:\"italic\"},\".cm-completionIcon\":{fontSize:\"90%\",width:\".8em\",display:\"inline-block\",textAlign:\"center\",paddingRight:\".6em\",opacity:\"0.6\",boxSizing:\"content-box\"},\".cm-completionIcon-function, .cm-completionIcon-method\":{\"&:after\":{content:\"'ƒ'\"}},\".cm-completionIcon-class\":{\"&:after\":{content:\"'○'\"}},\".cm-completionIcon-interface\":{\"&:after\":{content:\"'◌'\"}},\".cm-completionIcon-variable\":{\"&:after\":{content:\"'𝑥'\"}},\".cm-completionIcon-constant\":{\"&:after\":{content:\"'𝐶'\"}},\".cm-completionIcon-type\":{\"&:after\":{content:\"'𝑡'\"}},\".cm-completionIcon-enum\":{\"&:after\":{content:\"'∪'\"}},\".cm-completionIcon-property\":{\"&:after\":{content:\"'□'\"}},\".cm-completionIcon-keyword\":{\"&:after\":{content:\"'🔑︎'\"}},\".cm-completionIcon-namespace\":{\"&:after\":{content:\"'▢'\"}},\".cm-completionIcon-text\":{\"&:after\":{content:\"'abc'\",fontSize:\"50%\",verticalAlign:\"middle\"}}});var FieldPos=class{constructor(field,line,from,to){this.field=field;this.line=line;this.from=from;this.to=to;}};var FieldRange=class _FieldRange{map(changes){let from=changes.mapPos(this.from,-1,MapMode.TrackDel);let to=changes.mapPos(this.to,1,MapMode.TrackDel);return from==null||to==null?null:new _FieldRange(this.field,from,to);}constructor(field,from,to){this.field=field;this.from=from;this.to=to;}};var Snippet=class _Snippet{instantiate(state,pos){let text=[],lineStart=[pos];let lineObj=state.doc.lineAt(pos),baseIndent=/^\\s*/.exec(lineObj.text)[0];for(let line of this.lines){if(text.length){let indent=baseIndent,tabs=/^\\t*/.exec(line)[0].length;for(let i=0;i<tabs;i++)indent+=state.facet(indentUnit);lineStart.push(pos+indent.length-tabs);line=indent+line.slice(tabs);}text.push(line);pos+=line.length+1;}let ranges=this.fieldPositions.map(pos2=>new FieldRange(pos2.field,lineStart[pos2.line]+pos2.from,lineStart[pos2.line]+pos2.to));return{text,ranges};}static parse(template){let fields=[];let lines=[],positions=[],m;for(let line of template.split(/\\r\\n?|\\n/)){while(m=/[#$]\\{(?:(\\d+)(?::([^}]*))?|((?:\\\\[{}]|[^}])*))\\}/.exec(line)){let seq=m[1]?+m[1]:null,rawName=m[2]||m[3]||\"\",found=-1;let name=rawName.replace(/\\\\[{}]/g,m2=>m2[1]);for(let i=0;i<fields.length;i++){if(seq!=null?fields[i].seq==seq:name?fields[i].name==name:false)found=i;}if(found<0){let i=0;while(i<fields.length&&(seq==null||fields[i].seq!=null&&fields[i].seq<seq))i++;fields.splice(i,0,{seq,name});found=i;for(let pos of positions)if(pos.field>=found)pos.field++;}positions.push(new FieldPos(found,lines.length,m.index,m.index+name.length));line=line.slice(0,m.index)+rawName+line.slice(m.index+m[0].length);}line=line.replace(/\\\\([{}])/g,(_,brace,index)=>{for(let pos of positions)if(pos.line==lines.length&&pos.from>index){pos.from--;pos.to--;}return brace;});lines.push(line);}return new _Snippet(lines,positions);}constructor(lines,fieldPositions){this.lines=lines;this.fieldPositions=fieldPositions;}};var fieldMarker=/* @__PURE__ */Decoration.widget({widget:/* @__PURE__ */new class extends WidgetType{toDOM(){let span=document.createElement(\"span\");span.className=\"cm-snippetFieldPosition\";return span;}ignoreEvent(){return false;}}});var fieldRange=/* @__PURE__ */Decoration.mark({class:\"cm-snippetField\"});var ActiveSnippet=class _ActiveSnippet{map(changes){let ranges=[];for(let r of this.ranges){let mapped=r.map(changes);if(!mapped)return null;ranges.push(mapped);}return new _ActiveSnippet(ranges,this.active);}selectionInsideField(sel){return sel.ranges.every(range=>this.ranges.some(r=>r.field==this.active&&r.from<=range.from&&r.to>=range.to));}constructor(ranges,active){this.ranges=ranges;this.active=active;this.deco=Decoration.set(ranges.map(r=>(r.from==r.to?fieldMarker:fieldRange).range(r.from,r.to)));}};var setActive=/* @__PURE__ */StateEffect.define({map(value,changes){return value&&value.map(changes);}});var moveToField=/* @__PURE__ */StateEffect.define();var snippetState=/* @__PURE__ */StateField.define({create(){return null;},update(value,tr){for(let effect of tr.effects){if(effect.is(setActive))return effect.value;if(effect.is(moveToField)&&value)return new ActiveSnippet(value.ranges,effect.value);}if(value&&tr.docChanged)value=value.map(tr.changes);if(value&&tr.selection&&!value.selectionInsideField(tr.selection))value=null;return value;},provide:f=>EditorView.decorations.from(f,val=>val?val.deco:Decoration.none)});function fieldSelection(ranges,field){return EditorSelection.create(ranges.filter(r=>r.field==field).map(r=>EditorSelection.range(r.from,r.to)));}function snippet(template){let snippet2=Snippet.parse(template);return(editor,completion,from,to)=>{let{text,ranges}=snippet2.instantiate(editor.state,from);let{main}=editor.state.selection;let spec={changes:{from,to:to==main.from?main.to:to,insert:Text.of(text)},scrollIntoView:true,annotations:completion?[pickedCompletion.of(completion),Transaction.userEvent.of(\"input.complete\")]:void 0};if(ranges.length)spec.selection=fieldSelection(ranges,0);if(ranges.some(r=>r.field>0)){let active=new ActiveSnippet(ranges,0);let effects=spec.effects=[setActive.of(active)];if(editor.state.field(snippetState,false)===void 0)effects.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme]));}editor.dispatch(editor.state.update(spec));};}function moveField(dir){return({state,dispatch})=>{let active=state.field(snippetState,false);if(!active||dir<0&&active.active==0)return false;let next=active.active+dir,last=dir>0&&!active.ranges.some(r=>r.field==next+dir);dispatch(state.update({selection:fieldSelection(active.ranges,next),effects:setActive.of(last?null:new ActiveSnippet(active.ranges,next)),scrollIntoView:true}));return true;};}var clearSnippet=({state,dispatch})=>{let active=state.field(snippetState,false);if(!active)return false;dispatch(state.update({effects:setActive.of(null)}));return true;};var nextSnippetField=/* @__PURE__ */moveField(1);var prevSnippetField=/* @__PURE__ */moveField(-1);function hasNextSnippetField(state){let active=state.field(snippetState,false);return!!(active&&active.ranges.some(r=>r.field==active.active+1));}function hasPrevSnippetField(state){let active=state.field(snippetState,false);return!!(active&&active.active>0);}var defaultSnippetKeymap=[{key:\"Tab\",run:nextSnippetField,shift:prevSnippetField},{key:\"Escape\",run:clearSnippet}];var snippetKeymap=/* @__PURE__ */Facet.define({combine(maps){return maps.length?maps[0]:defaultSnippetKeymap;}});var addSnippetKeymap=/* @__PURE__ */Prec.highest(/* @__PURE__ */keymap.compute([snippetKeymap],state=>state.facet(snippetKeymap)));function snippetCompletion(template,completion){return Object.assign(Object.assign({},completion),{apply:snippet(template)});}var snippetPointerHandler=/* @__PURE__ */EditorView.domEventHandlers({mousedown(event,view){let active=view.state.field(snippetState,false),pos;if(!active||(pos=view.posAtCoords({x:event.clientX,y:event.clientY}))==null)return false;let match=active.ranges.find(r=>r.from<=pos&&r.to>=pos);if(!match||match.field==active.active)return false;view.dispatch({selection:fieldSelection(active.ranges,match.field),effects:setActive.of(active.ranges.some(r=>r.field>match.field)?new ActiveSnippet(active.ranges,match.field):null),scrollIntoView:true});return true;}});function wordRE(wordChars){let escaped=wordChars.replace(/[\\]\\-\\\\]/g,\"\\\\$&\");try{return new RegExp(`[\\\\p{Alphabetic}\\\\p{Number}_${escaped}]+`,\"ug\");}catch(_a){return new RegExp(`[w${escaped}]`,\"g\");}}function mapRE(re,f){return new RegExp(f(re.source),re.unicode?\"u\":\"\");}var wordCaches=/* @__PURE__ */Object.create(null);function wordCache(wordChars){return wordCaches[wordChars]||(wordCaches[wordChars]=/* @__PURE__ */new WeakMap);}function storeWords(doc,wordRE2,result,seen,ignoreAt){for(let lines=doc.iterLines(),pos=0;!lines.next().done;){let{value}=lines,m;wordRE2.lastIndex=0;while(m=wordRE2.exec(value)){if(!seen[m[0]]&&pos+m.index!=ignoreAt){result.push({type:\"text\",label:m[0]});seen[m[0]]=true;if(result.length>=2e3)return;}}pos+=value.length+1;}}function collectWords(doc,cache,wordRE2,to,ignoreAt){let big=doc.length>=1e3;let cached=big&&cache.get(doc);if(cached)return cached;let result=[],seen=/* @__PURE__ */Object.create(null);if(doc.children){let pos=0;for(let ch of doc.children){if(ch.length>=1e3){for(let c of collectWords(ch,cache,wordRE2,to-pos,ignoreAt-pos)){if(!seen[c.label]){seen[c.label]=true;result.push(c);}}}else{storeWords(ch,wordRE2,result,seen,ignoreAt-pos);}pos+=ch.length+1;}}else{storeWords(doc,wordRE2,result,seen,ignoreAt);}if(big&&result.length<2e3)cache.set(doc,result);return result;}var completeAnyWord=context=>{let wordChars=context.state.languageDataAt(\"wordChars\",context.pos).join(\"\");let re=wordRE(wordChars);let token=context.matchBefore(mapRE(re,s=>s+\"$\"));if(!token&&!context.explicit)return null;let from=token?token.from:context.pos;let options=collectWords(context.state.doc,wordCache(wordChars),re,5e4,from);return{from,options,validFor:mapRE(re,s=>\"^\"+s)};};var defaults={brackets:[\"(\",\"[\",\"{\",\"'\",'\"'],before:\")]}:;>\",stringPrefixes:[]};var closeBracketEffect=/* @__PURE__ */StateEffect.define({map(value,mapping){let mapped=mapping.mapPos(value,-1,MapMode.TrackAfter);return mapped==null?void 0:mapped;}});var closedBracket=/* @__PURE__ */new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;var bracketState=/* @__PURE__ */StateField.define({create(){return RangeSet.empty;},update(value,tr){value=value.map(tr.changes);if(tr.selection){let line=tr.state.doc.lineAt(tr.selection.main.head);value=value.update({filter:from=>from>=line.from&&from<=line.to});}for(let effect of tr.effects)if(effect.is(closeBracketEffect))value=value.update({add:[closedBracket.range(effect.value,effect.value+1)]});return value;}});function closeBrackets(){return[inputHandler,bracketState];}var definedClosing=\"()[]{}<>\\xab\\xbb\\xbb\\xab［］｛｝\";function closing(ch){for(let i=0;i<definedClosing.length;i+=2)if(definedClosing.charCodeAt(i)==ch)return definedClosing.charAt(i+1);return fromCodePoint(ch<128?ch:ch+1);}function config(state,pos){return state.languageDataAt(\"closeBrackets\",pos)[0]||defaults;}var android=typeof navigator==\"object\"&&/* @__PURE__ *//Android\\b/.test(navigator.userAgent);var inputHandler=/* @__PURE__ */EditorView.inputHandler.of((view,from,to,insert)=>{if((android?view.composing:view.compositionStarted)||view.state.readOnly)return false;let sel=view.state.selection.main;if(insert.length>2||insert.length==2&&codePointSize(codePointAt(insert,0))==1||from!=sel.from||to!=sel.to)return false;let tr=insertBracket(view.state,insert);if(!tr)return false;view.dispatch(tr);return true;});var deleteBracketPair=({state,dispatch})=>{if(state.readOnly)return false;let conf=config(state,state.selection.main.head);let tokens=conf.brackets||defaults.brackets;let dont=null,changes=state.changeByRange(range=>{if(range.empty){let before=prevChar(state.doc,range.head);for(let token of tokens){if(token==before&&nextChar(state.doc,range.head)==closing(codePointAt(token,0)))return{changes:{from:range.head-token.length,to:range.head+token.length},range:EditorSelection.cursor(range.head-token.length)};}}return{range:dont=range};});if(!dont)dispatch(state.update(changes,{scrollIntoView:true,userEvent:\"delete.backward\"}));return!dont;};var closeBracketsKeymap=[{key:\"Backspace\",run:deleteBracketPair}];function insertBracket(state,bracket){let conf=config(state,state.selection.main.head);let tokens=conf.brackets||defaults.brackets;for(let tok of tokens){let closed=closing(codePointAt(tok,0));if(bracket==tok)return closed==tok?handleSame(state,tok,tokens.indexOf(tok+tok+tok)>-1,conf):handleOpen(state,tok,closed,conf.before||defaults.before);if(bracket==closed&&closedBracketAt(state,state.selection.main.from))return handleClose(state,tok,closed);}return null;}function closedBracketAt(state,pos){let found=false;state.field(bracketState).between(0,state.doc.length,from=>{if(from==pos)found=true;});return found;}function nextChar(doc,pos){let next=doc.sliceString(pos,pos+2);return next.slice(0,codePointSize(codePointAt(next,0)));}function prevChar(doc,pos){let prev=doc.sliceString(pos-2,pos);return codePointSize(codePointAt(prev,0))==prev.length?prev:prev.slice(1);}function handleOpen(state,open,close,closeBefore){let dont=null,changes=state.changeByRange(range=>{if(!range.empty)return{changes:[{insert:open,from:range.from},{insert:close,from:range.to}],effects:closeBracketEffect.of(range.to+open.length),range:EditorSelection.range(range.anchor+open.length,range.head+open.length)};let next=nextChar(state.doc,range.head);if(!next||/\\s/.test(next)||closeBefore.indexOf(next)>-1)return{changes:{insert:open+close,from:range.head},effects:closeBracketEffect.of(range.head+open.length),range:EditorSelection.cursor(range.head+open.length)};return{range:dont=range};});return dont?null:state.update(changes,{scrollIntoView:true,userEvent:\"input.type\"});}function handleClose(state,_open,close){let dont=null,changes=state.changeByRange(range=>{if(range.empty&&nextChar(state.doc,range.head)==close)return{changes:{from:range.head,to:range.head+close.length,insert:close},range:EditorSelection.cursor(range.head+close.length)};return dont={range};});return dont?null:state.update(changes,{scrollIntoView:true,userEvent:\"input.type\"});}function handleSame(state,token,allowTriple,config2){let stringPrefixes=config2.stringPrefixes||defaults.stringPrefixes;let dont=null,changes=state.changeByRange(range=>{if(!range.empty)return{changes:[{insert:token,from:range.from},{insert:token,from:range.to}],effects:closeBracketEffect.of(range.to+token.length),range:EditorSelection.range(range.anchor+token.length,range.head+token.length)};let pos=range.head,next=nextChar(state.doc,pos),start;if(next==token){if(nodeStart(state,pos)){return{changes:{insert:token+token,from:pos},effects:closeBracketEffect.of(pos+token.length),range:EditorSelection.cursor(pos+token.length)};}else if(closedBracketAt(state,pos)){let isTriple=allowTriple&&state.sliceDoc(pos,pos+token.length*3)==token+token+token;let content=isTriple?token+token+token:token;return{changes:{from:pos,to:pos+content.length,insert:content},range:EditorSelection.cursor(pos+content.length)};}}else if(allowTriple&&state.sliceDoc(pos-2*token.length,pos)==token+token&&(start=canStartStringAt(state,pos-2*token.length,stringPrefixes))>-1&&nodeStart(state,start)){return{changes:{insert:token+token+token+token,from:pos},effects:closeBracketEffect.of(pos+token.length),range:EditorSelection.cursor(pos+token.length)};}else if(state.charCategorizer(pos)(next)!=CharCategory.Word){if(canStartStringAt(state,pos,stringPrefixes)>-1&&!probablyInString(state,pos,token,stringPrefixes))return{changes:{insert:token+token,from:pos},effects:closeBracketEffect.of(pos+token.length),range:EditorSelection.cursor(pos+token.length)};}return{range:dont=range};});return dont?null:state.update(changes,{scrollIntoView:true,userEvent:\"input.type\"});}function nodeStart(state,pos){let tree=syntaxTree(state).resolveInner(pos+1);return tree.parent&&tree.from==pos;}function probablyInString(state,pos,quoteToken,prefixes){let node=syntaxTree(state).resolveInner(pos,-1);let maxPrefix=prefixes.reduce((m,p)=>Math.max(m,p.length),0);for(let i=0;i<5;i++){let start=state.sliceDoc(node.from,Math.min(node.to,node.from+quoteToken.length+maxPrefix));let quotePos=start.indexOf(quoteToken);if(!quotePos||quotePos>-1&&prefixes.indexOf(start.slice(0,quotePos))>-1){let first=node.firstChild;while(first&&first.from==node.from&&first.to-first.from>quoteToken.length+quotePos){if(state.sliceDoc(first.to-quoteToken.length,first.to)==quoteToken)return false;first=first.firstChild;}return true;}let parent=node.to==pos&&node.parent;if(!parent)break;node=parent;}return false;}function canStartStringAt(state,pos,prefixes){let charCat=state.charCategorizer(pos);if(charCat(state.sliceDoc(pos-1,pos))!=CharCategory.Word)return pos;for(let prefix of prefixes){let start=pos-prefix.length;if(state.sliceDoc(start,pos)==prefix&&charCat(state.sliceDoc(start-1,start))!=CharCategory.Word)return start;}return-1;}function autocompletion(config2={}){return[commitCharacters,completionState,completionConfig.of(config2),completionPlugin,completionKeymapExt,baseTheme];}var completionKeymap=[{key:\"Ctrl-Space\",run:startCompletion},{mac:\"Alt-`\",run:startCompletion},{key:\"Escape\",run:closeCompletion},{key:\"ArrowDown\",run:/* @__PURE__ */moveCompletionSelection(true)},{key:\"ArrowUp\",run:/* @__PURE__ */moveCompletionSelection(false)},{key:\"PageDown\",run:/* @__PURE__ */moveCompletionSelection(true,\"page\")},{key:\"PageUp\",run:/* @__PURE__ */moveCompletionSelection(false,\"page\")},{key:\"Enter\",run:acceptCompletion}];var completionKeymapExt=/* @__PURE__ */Prec.highest(/* @__PURE__ */keymap.computeN([completionConfig],state=>state.facet(completionConfig).defaultKeymap?[completionKeymap]:[]));function completionStatus(state){let cState=state.field(completionState,false);return cState&&cState.active.some(a=>a.isPending)?\"pending\":cState&&cState.active.some(a=>a.state!=0)?\"active\":null;}var completionArrayCache=/* @__PURE__ */new WeakMap;function currentCompletions(state){var _a;let open=(_a=state.field(completionState,false))===null||_a===void 0?void 0:_a.open;if(!open||open.disabled)return[];let completions=completionArrayCache.get(open.options);if(!completions)completionArrayCache.set(open.options,completions=open.options.map(o=>o.completion));return completions;}function selectedCompletion(state){var _a;let open=(_a=state.field(completionState,false))===null||_a===void 0?void 0:_a.open;return open&&!open.disabled&&open.selected>=0?open.options[open.selected].completion:null;}function selectedCompletionIndex(state){var _a;let open=(_a=state.field(completionState,false))===null||_a===void 0?void 0:_a.open;return open&&!open.disabled&&open.selected>=0?open.selected:null;}function setSelectedCompletion(index){return setSelectedEffect.of(index);}export{CompletionContext,acceptCompletion,autocompletion,clearSnippet,closeBrackets,closeBracketsKeymap,closeCompletion,completeAnyWord,completeFromList,completionKeymap,completionStatus,currentCompletions,deleteBracketPair,hasNextSnippetField,hasPrevSnippetField,ifIn,ifNotIn,insertBracket,insertCompletionText,moveCompletionSelection,nextSnippetField,pickedCompletion,prevSnippetField,selectedCompletion,selectedCompletionIndex,setSelectedCompletion,snippet,snippetCompletion,snippetKeymap,startCompletion,};\nexport const __FramerMetadata__ = {\"exports\":{\"closeCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"insertBracket\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setSelectedCompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"nextSnippetField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"prevSnippetField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippetKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"moveCompletionSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"currentCompletions\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasNextSnippetField\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completionKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippet\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasPrevSnippetField\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completeFromList\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippetCompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"autocompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"pickedCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completeAnyWord\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearSnippet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"deleteBracketPair\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeBrackets\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"selectedCompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ifNotIn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"acceptCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"selectedCompletionIndex\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"startCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CompletionContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completionStatus\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"insertCompletionText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ifIn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeBracketsKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/lang-javascript/dist/index.js\nimport{parser}from\"https://framerusercontent.com/modules/2B1yVjX9TEUbuHzHLnih/rIoxaAPtfYjYU4yqzWHC/lezer_javascript.js\";import{syntaxTree,LRLanguage,indentNodeProp,continuedIndent,flatIndent,delimitedIndent,foldNodeProp,foldInside,defineLanguageFacet,sublanguageProp,LanguageSupport}from\"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/r60pzPp0bOIae0tDcSfS/codemirror_language.js\";import{EditorSelection}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/TWvikt1kG1sKU5G0pMRF/codemirror_state.js\";import{EditorView}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/b3PAgW7qmQJC7rQUi9po/codemirror_view.js\";import{snippetCompletion,ifNotIn,completeFromList}from\"https://framerusercontent.com/modules/iHAg5NNDzB38uLRZmObL/0BnFbmC8lLqbG7TMsUOO/codemirror_autocomplete.js\";import{NodeWeakMap,IterMode}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/MGamyd2UebFXXyjBfB8y/lezer_common.js\";var snippets=[/* @__PURE__ */snippetCompletion(\"function ${name}(${params}) {\\n\t${}\\n}\",{label:\"function\",detail:\"definition\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\\n\t${}\\n}\",{label:\"for\",detail:\"loop\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"for (let ${name} of ${collection}) {\\n\t${}\\n}\",{label:\"for\",detail:\"of loop\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"do {\\n\t${}\\n} while (${})\",{label:\"do\",detail:\"loop\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"while (${}) {\\n\t${}\\n}\",{label:\"while\",detail:\"loop\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"try {\\n\t${}\\n} catch (${error}) {\\n\t${}\\n}\",{label:\"try\",detail:\"/ catch block\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"if (${}) {\\n\t${}\\n}\",{label:\"if\",detail:\"block\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"if (${}) {\\n\t${}\\n} else {\\n\t${}\\n}\",{label:\"if\",detail:\"/ else block\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"class ${name} {\\n\tconstructor(${params}) {\\n\t\t${}\\n\t}\\n}\",{label:\"class\",detail:\"definition\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion('import {${names}} from \"${module}\"\\n${}',{label:\"import\",detail:\"named\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion('import ${name} from \"${module}\"\\n${}',{label:\"import\",detail:\"default\",type:\"keyword\"})];var cache=/* @__PURE__ */new NodeWeakMap;var ScopeNodes=/* @__PURE__ */new Set([\"Script\",\"Block\",\"FunctionExpression\",\"FunctionDeclaration\",\"ArrowFunction\",\"MethodDeclaration\",\"ForStatement\"]);function defID(type){return(node,def)=>{let id=node.node.getChild(\"VariableDefinition\");if(id)def(id,type);return true;};}var functionContext=[\"FunctionDeclaration\"];var gatherCompletions={FunctionDeclaration:/* @__PURE__ */defID(\"function\"),ClassDeclaration:/* @__PURE__ */defID(\"class\"),ClassExpression:()=>true,EnumDeclaration:/* @__PURE__ */defID(\"constant\"),TypeAliasDeclaration:/* @__PURE__ */defID(\"type\"),NamespaceDeclaration:/* @__PURE__ */defID(\"namespace\"),VariableDefinition(node,def){if(!node.matchContext(functionContext))def(node,\"variable\");},TypeDefinition(node,def){def(node,\"type\");},__proto__:null};function getScope(doc,node){let cached=cache.get(node);if(cached)return cached;let completions=[],top=true;function def(node2,type){let name=doc.sliceString(node2.from,node2.to);completions.push({label:name,type});}node.cursor(IterMode.IncludeAnonymous).iterate(node2=>{if(top){top=false;}else if(node2.name){let gather=gatherCompletions[node2.name];if(gather&&gather(node2,def)||ScopeNodes.has(node2.name))return false;}else if(node2.to-node2.from>8192){for(let c of getScope(doc,node2.node))completions.push(c);return false;}});cache.set(node,completions);return completions;}var Identifier=/^[\\w$\\xa1-\\uffff][\\w$\\d\\xa1-\\uffff]*$/;var dontComplete=[\"TemplateString\",\"String\",\"RegExp\",\"LineComment\",\"BlockComment\",\"VariableDefinition\",\"TypeDefinition\",\"Label\",\"PropertyDefinition\",\"PropertyName\",\"PrivatePropertyDefinition\",\"PrivatePropertyName\",\".\",\"?.\"];function localCompletionSource(context){let inner=syntaxTree(context.state).resolveInner(context.pos,-1);if(dontComplete.indexOf(inner.name)>-1)return null;let isWord=inner.name==\"VariableName\"||inner.to-inner.from<20&&Identifier.test(context.state.sliceDoc(inner.from,inner.to));if(!isWord&&!context.explicit)return null;let options=[];for(let pos=inner;pos;pos=pos.parent){if(ScopeNodes.has(pos.name))options=options.concat(getScope(context.state.doc,pos));}return{options,from:isWord?inner.from:context.pos,validFor:Identifier};}function pathFor(read,member,name){var _a;let path=[];for(;;){let obj=member.firstChild,prop;if((obj===null||obj===void 0?void 0:obj.name)==\"VariableName\"){path.push(read(obj));return{path:path.reverse(),name};}else if((obj===null||obj===void 0?void 0:obj.name)==\"MemberExpression\"&&((_a=prop=obj.lastChild)===null||_a===void 0?void 0:_a.name)==\"PropertyName\"){path.push(read(prop));member=obj;}else{return null;}}}function completionPath(context){let read=node=>context.state.doc.sliceString(node.from,node.to);let inner=syntaxTree(context.state).resolveInner(context.pos,-1);if(inner.name==\"PropertyName\"){return pathFor(read,inner.parent,read(inner));}else if((inner.name==\".\"||inner.name==\"?.\")&&inner.parent.name==\"MemberExpression\"){return pathFor(read,inner.parent,\"\");}else if(dontComplete.indexOf(inner.name)>-1){return null;}else if(inner.name==\"VariableName\"||inner.to-inner.from<20&&Identifier.test(read(inner))){return{path:[],name:read(inner)};}else if(inner.name==\"MemberExpression\"){return pathFor(read,inner,\"\");}else{return context.explicit?{path:[],name:\"\"}:null;}}function enumeratePropertyCompletions(obj,top){let options=[],seen=/* @__PURE__ */new Set;for(let depth=0;;depth++){for(let name of(Object.getOwnPropertyNames||Object.keys)(obj)){if(!/^[a-zA-Z_$][\\w$]*$/.test(name)||seen.has(name))continue;seen.add(name);let value;try{value=obj[name];}catch(_){continue;}options.push({label:name,type:typeof value==\"function\"?/^[A-Z]/.test(name)?\"class\":top?\"function\":\"method\":top?\"variable\":\"property\",boost:-depth});}let next=Object.getPrototypeOf(obj);if(!next)return options;obj=next;}}function scopeCompletionSource(scope){let cache2=/* @__PURE__ */new Map;return context=>{let path=completionPath(context);if(!path)return null;let target=scope;for(let step of path.path){target=target[step];if(!target)return null;}let options=cache2.get(target);if(!options)cache2.set(target,options=enumeratePropertyCompletions(target,!path.path.length));return{from:context.pos-path.name.length,options,validFor:Identifier};};}var javascriptLanguage=/* @__PURE__ */LRLanguage.define({name:\"javascript\",parser:/* @__PURE__ */parser.configure({props:[/* @__PURE__ */indentNodeProp.add({IfStatement:/* @__PURE__ */continuedIndent({except:/^\\s*({|else\\b)/}),TryStatement:/* @__PURE__ */continuedIndent({except:/^\\s*({|catch\\b|finally\\b)/}),LabeledStatement:flatIndent,SwitchBody:context=>{let after=context.textAfter,closed=/^\\s*\\}/.test(after),isCase=/^\\s*(case|default)\\b/.test(after);return context.baseIndent+(closed?0:isCase?1:2)*context.unit;},Block:/* @__PURE__ */delimitedIndent({closing:\"}\"}),ArrowFunction:cx=>cx.baseIndent+cx.unit,\"TemplateString BlockComment\":()=>null,\"Statement Property\":/* @__PURE__ */continuedIndent({except:/^{/}),JSXElement(context){let closed=/^\\s*<\\//.test(context.textAfter);return context.lineIndent(context.node.from)+(closed?0:context.unit);},JSXEscape(context){let closed=/\\s*\\}/.test(context.textAfter);return context.lineIndent(context.node.from)+(closed?0:context.unit);},\"JSXOpenTag JSXSelfClosingTag\"(context){return context.column(context.node.from)+context.unit;}}),/* @__PURE__ */foldNodeProp.add({\"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType\":foldInside,BlockComment(tree){return{from:tree.from+2,to:tree.to-2};}})]}),languageData:{closeBrackets:{brackets:[\"(\",\"[\",\"{\",\"'\",'\"',\"`\"]},commentTokens:{line:\"//\",block:{open:\"/*\",close:\"*/\"}},indentOnInput:/^\\s*(?:case |default:|\\{|\\}|<\\/)$/,wordChars:\"$\"}});var jsxSublanguage={test:node=>/^JSX/.test(node.name),facet:/* @__PURE__ */defineLanguageFacet({commentTokens:{block:{open:\"{/*\",close:\"*/}\"}}})};var typescriptLanguage=/* @__PURE__ */javascriptLanguage.configure({dialect:\"ts\"},\"typescript\");var jsxLanguage=/* @__PURE__ */javascriptLanguage.configure({dialect:\"jsx\",props:[/* @__PURE__ */sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]});var tsxLanguage=/* @__PURE__ */javascriptLanguage.configure({dialect:\"jsx ts\",props:[/* @__PURE__ */sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]},\"typescript\");var keywords=/* @__PURE__ */\"break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield\".split(\" \").map(kw=>({label:kw,type:\"keyword\"}));function javascript(config={}){let lang=config.jsx?config.typescript?tsxLanguage:jsxLanguage:config.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(lang,[javascriptLanguage.data.of({autocomplete:ifNotIn(dontComplete,completeFromList(snippets.concat(keywords)))}),javascriptLanguage.data.of({autocomplete:localCompletionSource}),config.jsx?autoCloseTags:[]]);}function findOpenTag(node){for(;;){if(node.name==\"JSXOpenTag\"||node.name==\"JSXSelfClosingTag\"||node.name==\"JSXFragmentTag\")return node;if(node.name==\"JSXEscape\"||!node.parent)return null;node=node.parent;}}function elementName(doc,tree,max=doc.length){for(let ch=tree===null||tree===void 0?void 0:tree.firstChild;ch;ch=ch.nextSibling){if(ch.name==\"JSXIdentifier\"||ch.name==\"JSXBuiltin\"||ch.name==\"JSXNamespacedName\"||ch.name==\"JSXMemberExpression\")return doc.sliceString(ch.from,Math.min(ch.to,max));}return\"\";}function isEndTag(node){return node&&(node.name==\"JSXEndTag\"||node.name==\"JSXSelfCloseEndTag\");}var android=typeof navigator==\"object\"&&/* @__PURE__ *//Android\\b/.test(navigator.userAgent);var autoCloseTags=/* @__PURE__ */EditorView.inputHandler.of((view,from,to,text)=>{if((android?view.composing:view.compositionStarted)||view.state.readOnly||from!=to||text!=\">\"&&text!=\"/\"||!javascriptLanguage.isActiveAt(view.state,from,-1))return false;let{state}=view;let changes=state.changeByRange(range=>{var _a;let{head}=range,around=syntaxTree(state).resolveInner(head,-1),name;if(around.name==\"JSXStartTag\")around=around.parent;if(around.name==\"JSXAttributeValue\"&&around.to>head);else if(text==\">\"&&around.name==\"JSXFragmentTag\"){return{range:EditorSelection.cursor(head+1),changes:{from:head,insert:`></>`}};}else if(text==\"/\"&&around.name==\"JSXFragmentTag\"){let empty=around.parent,base=empty===null||empty===void 0?void 0:empty.parent;if(empty.from==head-1&&((_a=base.lastChild)===null||_a===void 0?void 0:_a.name)!=\"JSXEndTag\"&&(name=elementName(state.doc,base===null||base===void 0?void 0:base.firstChild,head))){let insert=`/${name}>`;return{range:EditorSelection.cursor(head+insert.length),changes:{from:head,insert}};}}else if(text==\">\"){let openTag=findOpenTag(around);if(openTag&&!isEndTag(openTag.lastChild)&&state.sliceDoc(head,head+2)!=\"</\"&&(name=elementName(state.doc,openTag,head)))return{range:EditorSelection.cursor(head+1),changes:{from:head,insert:`></${name}>`}};}return{range};});if(changes.changes.empty)return false;view.dispatch(changes,{userEvent:\"input.type\",scrollIntoView:true});return true;});function esLint(eslint,config){if(!config){config={parserOptions:{ecmaVersion:2019,sourceType:\"module\"},env:{browser:true,node:true,es6:true,es2015:true,es2017:true,es2020:true},rules:{}};eslint.getRules().forEach((desc,name)=>{if(desc.meta.docs.recommended)config.rules[name]=2;});}return view=>{let{state}=view,found=[];for(let{from,to}of javascriptLanguage.findRegions(state)){let fromLine=state.doc.lineAt(from),offset={line:fromLine.number-1,col:from-fromLine.from,pos:from};for(let d of eslint.verify(state.sliceDoc(from,to),config))found.push(translateDiagnostic(d,state.doc,offset));}return found;};}function mapPos(line,col,doc,offset){return doc.line(line+offset.line).from+col+(line==1?offset.col-1:-1);}function translateDiagnostic(input,doc,offset){let start=mapPos(input.line,input.column,doc,offset);let result={from:start,to:input.endLine!=null&&input.endColumn!=1?mapPos(input.endLine,input.endColumn,doc,offset):start,message:input.message,source:input.ruleId?\"eslint:\"+input.ruleId:\"eslint\",severity:input.severity==1?\"warning\":\"error\"};if(input.fix){let{range,text}=input.fix,from=range[0]+offset.pos-start,to=range[1]+offset.pos-start;result.actions=[{name:\"fix\",apply(view,start2){view.dispatch({changes:{from:start2+from,to:start2+to,insert:text},scrollIntoView:true});}}];}return result;}export{autoCloseTags,completionPath,esLint,javascript,javascriptLanguage,jsxLanguage,localCompletionSource,scopeCompletionSource,snippets,tsxLanguage,typescriptLanguage,};\nexport const __FramerMetadata__ = {\"exports\":{\"tsxLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"esLint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completionPath\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"javascriptLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippets\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopeCompletionSource\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"jsxLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"autoCloseTags\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localCompletionSource\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"typescriptLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"javascript\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/lang-html/dist/index.js\nimport{parser,configureNesting}from\"https://framerusercontent.com/modules/GrkjcC7Ol5LkBvrp44De/Vb5Hv0G6B8zNbDJOywh9/lezer_html.js\";import{cssLanguage,css}from\"https://framerusercontent.com/modules/Gg5hLFaRxQ2EaXSWb101/LGV7NWX3g3E33bK8qNkf/codemirror_lang_css.js\";import{typescriptLanguage,jsxLanguage,tsxLanguage,javascriptLanguage,javascript}from\"https://framerusercontent.com/modules/YrJiUSsP9WZPvnJAGTTV/SOIRpSCxhIwgURHJoo8f/codemirror_lang_javascript.js\";import{EditorView}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/b3PAgW7qmQJC7rQUi9po/codemirror_view.js\";import{EditorSelection}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/TWvikt1kG1sKU5G0pMRF/codemirror_state.js\";import{syntaxTree,LRLanguage,indentNodeProp,foldNodeProp,bracketMatchingHandle,LanguageSupport}from\"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/r60pzPp0bOIae0tDcSfS/codemirror_language.js\";var Targets=[\"_blank\",\"_self\",\"_top\",\"_parent\"];var Charsets=[\"ascii\",\"utf-8\",\"utf-16\",\"latin1\",\"latin1\"];var Methods=[\"get\",\"post\",\"put\",\"delete\"];var Encs=[\"application/x-www-form-urlencoded\",\"multipart/form-data\",\"text/plain\"];var Bool=[\"true\",\"false\"];var S={};var Tags={a:{attrs:{href:null,ping:null,type:null,media:null,target:Targets,hreflang:null}},abbr:S,address:S,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:[\"default\",\"rect\",\"circle\",\"poly\"]}},article:S,aside:S,audio:{attrs:{src:null,mediagroup:null,crossorigin:[\"anonymous\",\"use-credentials\"],preload:[\"none\",\"metadata\",\"auto\"],autoplay:[\"autoplay\"],loop:[\"loop\"],controls:[\"controls\"]}},b:S,base:{attrs:{href:null,target:Targets}},bdi:S,bdo:S,blockquote:{attrs:{cite:null}},body:S,br:S,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:[\"autofocus\"],disabled:[\"autofocus\"],formenctype:Encs,formmethod:Methods,formnovalidate:[\"novalidate\"],formtarget:Targets,type:[\"submit\",\"reset\",\"button\"]}},canvas:{attrs:{width:null,height:null}},caption:S,center:S,cite:S,code:S,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:[\"command\",\"checkbox\",\"radio\"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:[\"disabled\"],checked:[\"checked\"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:[\"disabled\"],multiple:[\"multiple\"]}},datalist:{attrs:{data:null}},dd:S,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:[\"open\"]}},dfn:S,div:S,dl:S,dt:S,em:S,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:[\"disabled\"],form:null,name:null}},figcaption:S,figure:S,footer:S,form:{attrs:{action:null,name:null,\"accept-charset\":Charsets,autocomplete:[\"on\",\"off\"],enctype:Encs,method:Methods,novalidate:[\"novalidate\"],target:Targets}},h1:S,h2:S,h3:S,h4:S,h5:S,h6:S,head:{children:[\"title\",\"base\",\"link\",\"style\",\"meta\",\"script\",\"noscript\",\"command\"]},header:S,hgroup:S,hr:S,html:{attrs:{manifest:null}},i:S,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:[\"allow-top-navigation\",\"allow-same-origin\",\"allow-forms\",\"allow-scripts\"],seamless:[\"seamless\"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:[\"anonymous\",\"use-credentials\"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:[\"audio/*\",\"video/*\",\"image/*\"],autocomplete:[\"on\",\"off\"],autofocus:[\"autofocus\"],checked:[\"checked\"],disabled:[\"disabled\"],formenctype:Encs,formmethod:Methods,formnovalidate:[\"novalidate\"],formtarget:Targets,multiple:[\"multiple\"],readonly:[\"readonly\"],required:[\"required\"],type:[\"hidden\",\"text\",\"search\",\"tel\",\"url\",\"email\",\"password\",\"datetime\",\"date\",\"month\",\"week\",\"time\",\"datetime-local\",\"number\",\"range\",\"color\",\"checkbox\",\"radio\",\"file\",\"submit\",\"image\",\"reset\",\"button\"]}},ins:{attrs:{cite:null,datetime:null}},kbd:S,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:[\"autofocus\"],disabled:[\"disabled\"],keytype:[\"RSA\"]}},label:{attrs:{for:null,form:null}},legend:S,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:[\"all\",\"16x16\",\"16x16 32x32\",\"16x16 32x32 64x64\"]}},map:{attrs:{name:null}},mark:S,menu:{attrs:{label:null,type:[\"list\",\"context\",\"toolbar\"]}},meta:{attrs:{content:null,charset:Charsets,name:[\"viewport\",\"application-name\",\"author\",\"description\",\"generator\",\"keywords\"],\"http-equiv\":[\"content-language\",\"content-type\",\"default-style\",\"refresh\"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:S,noscript:S,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:[\"typemustmatch\"]}},ol:{attrs:{reversed:[\"reversed\"],start:null,type:[\"1\",\"a\",\"A\",\"i\",\"I\"]},children:[\"li\",\"script\",\"template\",\"ul\",\"ol\"]},optgroup:{attrs:{disabled:[\"disabled\"],label:null}},option:{attrs:{disabled:[\"disabled\"],label:null,selected:[\"selected\"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:S,param:{attrs:{name:null,value:null}},pre:S,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:S,rt:S,ruby:S,samp:S,script:{attrs:{type:[\"text/javascript\"],src:null,async:[\"async\"],defer:[\"defer\"],charset:Charsets}},section:S,select:{attrs:{form:null,name:null,size:null,autofocus:[\"autofocus\"],disabled:[\"disabled\"],multiple:[\"multiple\"]}},slot:{attrs:{name:null}},small:S,source:{attrs:{src:null,type:null,media:null}},span:S,strong:S,style:{attrs:{type:[\"text/css\"],media:null,scoped:null}},sub:S,summary:S,sup:S,table:S,tbody:S,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:S,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:[\"autofocus\"],disabled:[\"disabled\"],readonly:[\"readonly\"],required:[\"required\"],wrap:[\"soft\",\"hard\"]}},tfoot:S,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:[\"row\",\"col\",\"rowgroup\",\"colgroup\"]}},thead:S,time:{attrs:{datetime:null}},title:S,tr:S,track:{attrs:{src:null,label:null,default:null,kind:[\"subtitles\",\"captions\",\"descriptions\",\"chapters\",\"metadata\"],srclang:null}},ul:{children:[\"li\",\"script\",\"template\",\"ul\",\"ol\"]},var:S,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:[\"anonymous\",\"use-credentials\"],preload:[\"auto\",\"metadata\",\"none\"],autoplay:[\"autoplay\"],mediagroup:[\"movie\"],muted:[\"muted\"],controls:[\"controls\"]}},wbr:S};var GlobalAttrs={accesskey:null,class:null,contenteditable:Bool,contextmenu:null,dir:[\"ltr\",\"rtl\",\"auto\"],draggable:[\"true\",\"false\",\"auto\"],dropzone:[\"copy\",\"move\",\"link\",\"string:\",\"file:\"],hidden:[\"hidden\"],id:null,inert:[\"inert\"],itemid:null,itemprop:null,itemref:null,itemscope:[\"itemscope\"],itemtype:null,lang:[\"ar\",\"bn\",\"de\",\"en-GB\",\"en-US\",\"es\",\"fr\",\"hi\",\"id\",\"ja\",\"pa\",\"pt\",\"ru\",\"tr\",\"zh\"],spellcheck:Bool,autocorrect:Bool,autocapitalize:Bool,style:null,tabindex:null,title:null,translate:[\"yes\",\"no\"],rel:[\"stylesheet\",\"alternate\",\"author\",\"bookmark\",\"help\",\"license\",\"next\",\"nofollow\",\"noreferrer\",\"prefetch\",\"prev\",\"search\",\"tag\"],role:/* @__PURE__ */\"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer\".split(\" \"),\"aria-activedescendant\":null,\"aria-atomic\":Bool,\"aria-autocomplete\":[\"inline\",\"list\",\"both\",\"none\"],\"aria-busy\":Bool,\"aria-checked\":[\"true\",\"false\",\"mixed\",\"undefined\"],\"aria-controls\":null,\"aria-describedby\":null,\"aria-disabled\":Bool,\"aria-dropeffect\":null,\"aria-expanded\":[\"true\",\"false\",\"undefined\"],\"aria-flowto\":null,\"aria-grabbed\":[\"true\",\"false\",\"undefined\"],\"aria-haspopup\":Bool,\"aria-hidden\":Bool,\"aria-invalid\":[\"true\",\"false\",\"grammar\",\"spelling\"],\"aria-label\":null,\"aria-labelledby\":null,\"aria-level\":null,\"aria-live\":[\"off\",\"polite\",\"assertive\"],\"aria-multiline\":Bool,\"aria-multiselectable\":Bool,\"aria-owns\":null,\"aria-posinset\":null,\"aria-pressed\":[\"true\",\"false\",\"mixed\",\"undefined\"],\"aria-readonly\":Bool,\"aria-relevant\":null,\"aria-required\":Bool,\"aria-selected\":[\"true\",\"false\",\"undefined\"],\"aria-setsize\":null,\"aria-sort\":[\"ascending\",\"descending\",\"none\",\"other\"],\"aria-valuemax\":null,\"aria-valuemin\":null,\"aria-valuenow\":null,\"aria-valuetext\":null};var eventAttributes=/* @__PURE__ */\"beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload\".split(\" \").map(n=>\"on\"+n);for(let a of eventAttributes)GlobalAttrs[a]=null;var Schema=class{constructor(extraTags,extraAttrs){this.tags=Object.assign(Object.assign({},Tags),extraTags);this.globalAttrs=Object.assign(Object.assign({},GlobalAttrs),extraAttrs);this.allTags=Object.keys(this.tags);this.globalAttrNames=Object.keys(this.globalAttrs);}};Schema.default=/* @__PURE__ */new Schema;function elementName(doc,tree,max=doc.length){if(!tree)return\"\";let tag=tree.firstChild;let name=tag&&tag.getChild(\"TagName\");return name?doc.sliceString(name.from,Math.min(name.to,max)):\"\";}function findParentElement(tree,skip=false){for(;tree;tree=tree.parent)if(tree.name==\"Element\"){if(skip)skip=false;else return tree;}return null;}function allowedChildren(doc,tree,schema){let parentInfo=schema.tags[elementName(doc,findParentElement(tree))];return(parentInfo===null||parentInfo===void 0?void 0:parentInfo.children)||schema.allTags;}function openTags(doc,tree){let open=[];for(let parent=findParentElement(tree);parent&&!parent.type.isTop;parent=findParentElement(parent.parent)){let tagName=elementName(doc,parent);if(tagName&&parent.lastChild.name==\"CloseTag\")break;if(tagName&&open.indexOf(tagName)<0&&(tree.name==\"EndTag\"||tree.from>=parent.firstChild.to))open.push(tagName);}return open;}var identifier=/^[:\\-\\.\\w\\u00b7-\\uffff]*$/;function completeTag(state,schema,tree,from,to){let end=/\\s*>/.test(state.sliceDoc(to,to+5))?\"\":\">\";let parent=findParentElement(tree,true);return{from,to,options:allowedChildren(state.doc,parent,schema).map(tagName=>({label:tagName,type:\"type\"})).concat(openTags(state.doc,tree).map((tag,i)=>({label:\"/\"+tag,apply:\"/\"+tag+end,type:\"type\",boost:99-i}))),validFor:/^\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/};}function completeCloseTag(state,tree,from,to){let end=/\\s*>/.test(state.sliceDoc(to,to+5))?\"\":\">\";return{from,to,options:openTags(state.doc,tree).map((tag,i)=>({label:tag,apply:tag+end,type:\"type\",boost:99-i})),validFor:identifier};}function completeStartTag(state,schema,tree,pos){let options=[],level=0;for(let tagName of allowedChildren(state.doc,tree,schema))options.push({label:\"<\"+tagName,type:\"type\"});for(let open of openTags(state.doc,tree))options.push({label:\"</\"+open+\">\",type:\"type\",boost:99-level++});return{from:pos,to:pos,options,validFor:/^<\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/};}function completeAttrName(state,schema,tree,from,to){let elt=findParentElement(tree),info=elt?schema.tags[elementName(state.doc,elt)]:null;let localAttrs=info&&info.attrs?Object.keys(info.attrs):[];let names=info&&info.globalAttrs===false?localAttrs:localAttrs.length?localAttrs.concat(schema.globalAttrNames):schema.globalAttrNames;return{from,to,options:names.map(attrName=>({label:attrName,type:\"property\"})),validFor:identifier};}function completeAttrValue(state,schema,tree,from,to){var _a;let nameNode=(_a=tree.parent)===null||_a===void 0?void 0:_a.getChild(\"AttributeName\");let options=[],token=void 0;if(nameNode){let attrName=state.sliceDoc(nameNode.from,nameNode.to);let attrs=schema.globalAttrs[attrName];if(!attrs){let elt=findParentElement(tree),info=elt?schema.tags[elementName(state.doc,elt)]:null;attrs=(info===null||info===void 0?void 0:info.attrs)&&info.attrs[attrName];}if(attrs){let base=state.sliceDoc(from,to).toLowerCase(),quoteStart='\"',quoteEnd='\"';if(/^['\"]/.test(base)){token=base[0]=='\"'?/^[^\"]*$/:/^[^']*$/;quoteStart=\"\";quoteEnd=state.sliceDoc(to,to+1)==base[0]?\"\":base[0];base=base.slice(1);from++;}else{token=/^[^\\s<>='\"]*$/;}for(let value of attrs)options.push({label:value,apply:quoteStart+value+quoteEnd,type:\"constant\"});}}return{from,to,options,validFor:token};}function htmlCompletionFor(schema,context){let{state,pos}=context,around=syntaxTree(state).resolveInner(pos),tree=around.resolve(pos,-1);for(let scan=pos,before;around==tree&&(before=tree.childBefore(scan));){let last=before.lastChild;if(!last||!last.type.isError||last.from<last.to)break;around=tree=before;scan=last.from;}if(tree.name==\"TagName\"){return tree.parent&&/CloseTag$/.test(tree.parent.name)?completeCloseTag(state,tree,tree.from,pos):completeTag(state,schema,tree,tree.from,pos);}else if(tree.name==\"StartTag\"){return completeTag(state,schema,tree,pos,pos);}else if(tree.name==\"StartCloseTag\"||tree.name==\"IncompleteCloseTag\"){return completeCloseTag(state,tree,pos,pos);}else if(context.explicit&&(tree.name==\"OpenTag\"||tree.name==\"SelfClosingTag\")||tree.name==\"AttributeName\"){return completeAttrName(state,schema,tree,tree.name==\"AttributeName\"?tree.from:pos,pos);}else if(tree.name==\"Is\"||tree.name==\"AttributeValue\"||tree.name==\"UnquotedAttributeValue\"){return completeAttrValue(state,schema,tree,tree.name==\"Is\"?pos:tree.from,pos);}else if(context.explicit&&(around.name==\"Element\"||around.name==\"Text\"||around.name==\"Document\")){return completeStartTag(state,schema,tree,pos);}else{return null;}}function htmlCompletionSource(context){return htmlCompletionFor(Schema.default,context);}function htmlCompletionSourceWith(config){let{extraTags,extraGlobalAttributes:extraAttrs}=config;let schema=extraAttrs||extraTags?new Schema(extraTags,extraAttrs):Schema.default;return context=>htmlCompletionFor(schema,context);}var defaultNesting=[{tag:\"script\",attrs:attrs=>attrs.type==\"text/typescript\"||attrs.lang==\"ts\",parser:typescriptLanguage.parser},{tag:\"script\",attrs:attrs=>attrs.type==\"text/babel\"||attrs.type==\"text/jsx\",parser:jsxLanguage.parser},{tag:\"script\",attrs:attrs=>attrs.type==\"text/typescript-jsx\",parser:tsxLanguage.parser},{tag:\"script\",attrs(attrs){return!attrs.type||/^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type);},parser:javascriptLanguage.parser},{tag:\"style\",attrs(attrs){return(!attrs.lang||attrs.lang==\"css\")&&(!attrs.type||/^(text\\/)?(x-)?(stylesheet|css)$/i.test(attrs.type));},parser:cssLanguage.parser}];var defaultAttrs=/* @__PURE__ */[{name:\"style\",parser:/* @__PURE__ */cssLanguage.parser.configure({top:\"Styles\"})}].concat(/* @__PURE__ */eventAttributes.map(name=>({name,parser:javascriptLanguage.parser})));var htmlPlain=/* @__PURE__ */LRLanguage.define({name:\"html\",parser:/* @__PURE__ */parser.configure({props:[/* @__PURE__ */indentNodeProp.add({Element(context){let after=/^(\\s*)(<\\/)?/.exec(context.textAfter);if(context.node.to<=context.pos+after[0].length)return context.continue();return context.lineIndent(context.node.from)+(after[2]?0:context.unit);},\"OpenTag CloseTag SelfClosingTag\"(context){return context.column(context.node.from)+context.unit;},Document(context){if(context.pos+/\\s*/.exec(context.textAfter)[0].length<context.node.to)return context.continue();let endElt=null,close;for(let cur=context.node;;){let last=cur.lastChild;if(!last||last.name!=\"Element\"||last.to!=cur.to)break;endElt=cur=last;}if(endElt&&!((close=endElt.lastChild)&&(close.name==\"CloseTag\"||close.name==\"SelfClosingTag\")))return context.lineIndent(endElt.from)+context.unit;return null;}}),/* @__PURE__ */foldNodeProp.add({Element(node){let first=node.firstChild,last=node.lastChild;if(!first||first.name!=\"OpenTag\")return null;return{from:first.to,to:last.name==\"CloseTag\"?last.from:node.to};}}),/* @__PURE__ */bracketMatchingHandle.add({\"OpenTag CloseTag\":node=>node.getChild(\"TagName\")})]}),languageData:{commentTokens:{block:{open:\"<!--\",close:\"-->\"}},indentOnInput:/^\\s*<\\/\\w+\\W$/,wordChars:\"-._\"}});var htmlLanguage=/* @__PURE__ */htmlPlain.configure({wrap:/* @__PURE__ */configureNesting(defaultNesting,defaultAttrs)});function html(config={}){let dialect=\"\",wrap;if(config.matchClosingTags===false)dialect=\"noMatch\";if(config.selfClosingTags===true)dialect=(dialect?dialect+\" \":\"\")+\"selfClosing\";if(config.nestedLanguages&&config.nestedLanguages.length||config.nestedAttributes&&config.nestedAttributes.length)wrap=configureNesting((config.nestedLanguages||[]).concat(defaultNesting),(config.nestedAttributes||[]).concat(defaultAttrs));let lang=wrap?htmlPlain.configure({wrap,dialect}):dialect?htmlLanguage.configure({dialect}):htmlLanguage;return new LanguageSupport(lang,[htmlLanguage.data.of({autocomplete:htmlCompletionSourceWith(config)}),config.autoCloseTags!==false?autoCloseTags:[],javascript().support,css().support]);}var selfClosers=/* @__PURE__ */new Set(/* @__PURE__ */\"area base br col command embed frame hr img input keygen link meta param source track wbr menuitem\".split(\" \"));var autoCloseTags=/* @__PURE__ */EditorView.inputHandler.of((view,from,to,text)=>{if(view.composing||view.state.readOnly||from!=to||text!=\">\"&&text!=\"/\"||!htmlLanguage.isActiveAt(view.state,from,-1))return false;let{state}=view;let changes=state.changeByRange(range=>{var _a,_b,_c;let{head}=range,around=syntaxTree(state).resolveInner(head,-1),name;if(around.name==\"TagName\"||around.name==\"StartTag\")around=around.parent;if(text==\">\"&&around.name==\"OpenTag\"){if(((_b=(_a=around.parent)===null||_a===void 0?void 0:_a.lastChild)===null||_b===void 0?void 0:_b.name)!=\"CloseTag\"&&(name=elementName(state.doc,around.parent,head))&&!selfClosers.has(name)){let hasRightBracket=view.state.doc.sliceString(head,head+1)===\">\";let insert=`${hasRightBracket?\"\":\">\"}</${name}>`;return{range:EditorSelection.cursor(head+1),changes:{from:head+(hasRightBracket?1:0),insert}};}}else if(text==\"/\"&&around.name==\"OpenTag\"){let empty=around.parent,base=empty===null||empty===void 0?void 0:empty.parent;if(empty.from==head-1&&((_c=base.lastChild)===null||_c===void 0?void 0:_c.name)!=\"CloseTag\"&&(name=elementName(state.doc,base,head))&&!selfClosers.has(name)){let hasRightBracket=view.state.doc.sliceString(head,head+1)===\">\";let insert=`/${name}${hasRightBracket?\"\":\">\"}`;let pos=head+insert.length+(hasRightBracket?1:0);return{range:EditorSelection.cursor(pos),changes:{from:head,insert}};}}return{range};});if(changes.changes.empty)return false;view.dispatch(changes,{userEvent:\"input.type\",scrollIntoView:true});return true;});export{autoCloseTags,html,htmlCompletionSource,htmlCompletionSourceWith,htmlLanguage,htmlPlain,};\nexport const __FramerMetadata__ = {\"exports\":{\"html\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"htmlPlain\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"htmlCompletionSourceWith\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"htmlLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"autoCloseTags\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"htmlCompletionSource\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}